angular-i18n Internacionalização angular 6: como lidar com variáveis
Eu li o documento inteiro aqui:https://angular.io/guide/i18n
Não consigo entender como devo lidar com uma tag html dessa natureza:
<div i18n="@@myId" class="title-text">{{currentPage}}</div>
ou um como este:
<div i18n="@@myId" class="title-text" [innerHTML]="currentPage"></div>
ele não menciona nenhum texto variável como se eles simplesmente assumissem que teríamos todos os nossos nomes e textos codificados no html.
um arquivo de idioma deve ficar assim:
<?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>
Devo fazer algo assim para lidar com as múltiplas possibilidades do 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>
Eu não acho que isso funcione. Como eu manejo variáveis?
ATUALIZAÇÃO:
se eu usar a ferramenta de geração de arquivos de idiomas:
ng xi18n --output-path locale --out-file english.xlf --i18n-locale fr
Eu recebo :
<?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>
com certezaequiv-text="{{currentPage}}"
é lixo. mas ainda pode funcionar precisa testar. Enquanto isso, não consigo obter o serviço para aceitar as novas configurações.
ATUALIZAÇÃO NOVAMENTE:
para obterng serve --configuration=fr
trabalhar
você tem que editarangular.json
além disso, ele não está especificado nos documentos oficiais, mas eles falam sobre o assunto aqui:https://github.com/angular/angular-cli/wiki/stories-internationalization
Bem, eu adicionei um<target>Title</target>
e funciona, mas é claro que isso implica que, no momento, cada valor para o var retorne "title", não importa o quê.
também ao colocar oi18n
tags em todos os lugares, eu encontrei isso no meu código:
<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>
e agora? como traduzo a mensagem passada para o dropzone?