Winkel-i18n-Winkel-6 Internationalisierung : der richtige Umgang mit Variablen

Ich habe gelesen, die gesamte doc hier : https://angular.io/guide/i18n

Ich kann mir keinen Reim drauf machen, wie ich die handhaben soll ein html-tag dieser Art :

<div i18n="@@myId" class="title-text">{{currentPage}}</div>

oder einer wie dieser :

<div i18n="@@myId" class="title-text" [innerHTML]="currentPage"></div>

er erwähnt nicht, dass jede variable, die text, als ob Sie einfach annehmen, wir hätten alle unsere Namen und die Texte hart codiert in den html-Code.

einer Sprache, die Datei soll wie folgt Aussehen :

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="myId" datatype="html">
        <source>Hello</source>
        <target>Bonjour</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Bin ich, etwas zu tun, wie diese zu handhaben, die mehrere Möglichkeiten der var?

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="myId" datatype="html">
        <source>Title 1</source>
        <target>Titre 1</target>
        <source>Help 2</source>
        <target>Aide 2</target>
        <source>New 3</source>
        <target>Nouveau 3</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Ich glaube nicht, dass wird funktionieren. Wie gehe ich mit Variablen?

UPDATE :

wenn ich Ihre Sprach-Datei-generation-tool :

ng xi18n --output-path locale --out-file english.xlf --i18n-locale fr

Bekomme ich :

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="fr" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="9f3e56faa6da73b83f4646a1e074b970891894da" datatype="html">
        <source><x id="INTERPOLATION" equiv-text="{{currentPage}}"/></source>
        <context-group purpose="location">
          <context context-type="sourcefile">app/logged.in/top.bar/top.bar.component.ts</context>
          <context context-type="linenumber">85</context>
        </context-group>
        <note priority="1" from="description">the title of the current route</note>
      </trans-unit>
    </body>
  </file>
</xliff>

ziemlich sicher, dass equiv-text="{{currentPage}}" ist Müll. aber Es kann noch arbeiten müssen, um zu testen.
in der Zwischenzeit bekomme ich keine ng dienen, um zu akzeptieren die neuen configs.

WIEDER EIN UPDATE :

bekommen ng serve --configuration=fr arbeiten

müssen Sie Bearbeiten angular.json weiter, es ist nicht in den offiziellen docs aber Sie sprechen über es hier : https://github.com/angular/angular-cli/wiki/stories-internationalization

Gut, ich habe eine <target>Title</target> und es funktioniert, aber das bedeutet natürlich, dass jetzt jeder einzelne Wert für den var liefert "Titel" egal was passiert.

auch nach der Platzierung des i18n tags überall, ich lief in dieses, in mein code :

 <dropzone [message]="valid? '' : 'Placez ici votre fichier Excel csv à Ajouter aux lignes ci-dessous. (Ces lignes apparaîtront à la fin de la table)'" (success)="uploaded()"></dropzone>

also was jetzt? wie übersetze ich die Nachricht übergeben, um die dropzone?

  • Warum muss ein element ohne eigentliche text müssen übersetzt werden?
InformationsquelleAutor tatsu | 2018-06-13
Schreibe einen Kommentar