新聞中心
使用翻譯文件
準備好要翻譯的組件后,使用 Angular CLI 的 ?extract-i18n? 命令將組件中的標記文本提取到源語言文件中。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的扶風(fēng)網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
已標記的文本包括標記為 ?i18n ?的文本、標記為 ?i18n-?屬性的屬性和標記為 ?$localize? 的文本。
完成以下步驟為你的項目創(chuàng)建和更新翻譯文件。
- 提取源語言文件
- (可選)更改位置、格式和名稱
- 復(fù)制源語言文件以便為每種語言創(chuàng)建一個翻譯文件
- 翻譯每個翻譯文件
- 分別翻譯復(fù)數(shù)和替代表達式
- 翻譯復(fù)數(shù)
- 翻譯替代表達式
- 翻譯嵌套表達式
提取源語言文件
要提取源語言文件,請完成以下操作。
- 打開終端窗口。
- 切換到你的項目根目錄。
- 運行以下 CLI 命令。
ng extract-i18n
?extract-i18n? 命令在項目的根目錄中創(chuàng)建一個名為 ?messages.xlf? 的源語言文件。有關(guān) XML 本地化交換文件格式(XLIFF,版本 1.2)的更多信息,請參閱 XLIFF。
使用以下 ?extract-i18n? 命令選項更改源語言文件位置、格式和文件名。
|
命令選項 |
詳情 |
|---|---|
--format |
設(shè)置輸出文件的格式 |
--outFile |
設(shè)置輸出文件的名稱 |
--output-path |
設(shè)置輸出目錄的路徑 |
更改源語言文件的位置
要在 ?src/locale? 目錄中創(chuàng)建文件,請將輸出路徑指定為選項。
extract-18n --output-path 示例
以下示例將輸出路徑指定給選項。
ng extract-i18n --output-path src/locale
更改源語言文件格式
?extract-i18n? 命令會創(chuàng)建如下翻譯格式的文件。
|
翻譯格式 |
詳情 |
文件擴展名 |
|---|---|---|
| ARB |
應(yīng)用資源包 |
.arb |
| JSON |
JavaScript 對象表示法 |
.json |
| XLIFF 1.2 |
XML 本地化交換文件格式,版本 1.2 |
.xlf |
| XLIFF 2 |
XML 本地化交換文件格式,版本 2 |
.xlf |
| XMB |
XML 消息包 |
.xmb (.xtb) |
使用 ?--format? 命令選項明確指定轉(zhuǎn)換格式。
XMB 格式生成 ?
.xmb? 擴展名的源語言文件,但生成 ?.xtb? 擴展名的翻譯文件。
extract-18n --format 示例
以下示例演示了幾種翻譯格式。
ng extract-i18n --format=xlf
ng extract-i18n --format=xlf2
ng extract-i18n --format=xmb
ng extract-i18n --format=json
ng extract-i18n --format=arb
更改源語言文件名
要更改提取工具生成的源語言文件的名稱,請使用 ?--outFile? 命令選項。
extract-18n --out-file 示例
以下示例演示命名輸出文件。
ng extract-i18n --out-file source.xlf
為每種語言創(chuàng)建一個翻譯文件
要為語言環(huán)境或語言創(chuàng)建翻譯文件,請完成以下操作。
- 提取源語言文件。
- 復(fù)制源語言文件,為每種語言創(chuàng)建一個翻譯文件。
- 重命名翻譯文件以添加語言環(huán)境標識。
- 在你的項目根目錄創(chuàng)建一個名為 ?
locale?的新目錄。 - 將翻譯文件移到新目錄。
- 將翻譯文件發(fā)送給你的翻譯人員。
- 對要添加到應(yīng)用程序中的每種語言重復(fù)上述步驟。
messages.xlf --> message.{locale}.xlf
src/locale
法語的 extract-i18n 示例
比如,要創(chuàng)建法語翻譯文件,請完成以下操作。
- 運行 ?
extract-18n? 命令。 - 復(fù)制 ?
messages.xlf? 源語言文件。 - 將副本重命名為 ?
messages.fr.xlf? 以進行法語 ( ?fr? ) 翻譯。 - 將 ?
fr? 翻譯文件移動到 ?src/locale? 目錄。 - 將 ?
fr? 翻譯文件發(fā)送給翻譯人員。
翻譯每個翻譯文件
除非你精通該語言并有時間編輯翻譯,否則你可能會完成以下步驟。
- 將每個翻譯文件發(fā)送給翻譯人員。
- 翻譯人員使用 XLIFF 文件編輯器完成以下操作。
- 創(chuàng)建翻譯。
- 編輯翻譯。
法語翻譯流程示例
要演示該過程,請查看 Angular 國際化應(yīng)用范例中的 ?messages.fr.xlf? 文件。Angular 國際化應(yīng)用范例中就包含法語翻譯文件,你無需特殊的 XLIFF 編輯器或法語知識即可進行編輯。
以下操作描述了法語的翻譯過程。
- 打開 ?
messages.fr.xlf? 并找到第一個 ?? 元素。這是一個翻譯單元,也稱為文本節(jié)點,表示之前用 ?i18n?屬性標記的 ?? 問候標簽的翻譯。 - 復(fù)制文本節(jié)點中的 ?
? 元素,將其重命名為 ?... target?,然后將內(nèi)容替換為法語文本。 - 翻譯其他文本節(jié)點。以下示例顯示了翻譯方式。
Hello i18n!
An introduction header for this sample
User welcome
?id="introductionHeader"? 是自定義 ID,但沒有源 HTML 中所需的 ?@@? 前綴。
Hello i18n!
Bonjour i18n !
An introduction header for this sample
User welcome
在更復(fù)雜的翻譯中,描述和含義元素中的信息和上下文可幫助你選擇正確的詞進行翻譯。
I don't output any element
Je n'affiche aucun élément
Angular logo
Logo d'Angular
不要更改這些翻譯單元的 ID。每個 ?
id?屬性由 Angular 生成,它取決于組件文本的內(nèi)容和所指定的含義。如果你更改了文本或含義,則 ?id?屬性就會更改。
翻譯復(fù)數(shù)
根據(jù)需要為每種語言添加或刪除復(fù)數(shù)分支。
語言復(fù)數(shù)規(guī)則,參見 CLDR 復(fù)數(shù)規(guī)則。
minute plural 例子
要翻譯 ?plural?,就要翻譯 ICU 格式的匹配值。
- ?
just now? - ?
one minute ago? - ?
?minutes ago
以下示例顯示了翻譯方式。
{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other { minutes ago} }
{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a minutes} }
翻譯替代表達式
Angular 還會提取備用的 ?select ?ICU 表達式作為單獨的翻譯單元。
gender select 示例
以下示例在組件模板中顯示了一個 ?select ?ICU 表達式。
The author is {gender, select, male {male} female {female} other {other}}
在這個例子中,Angular 將表達式提取到兩個翻譯單元中。第一個包含 ?select ?子句之外的文本,并為 ?select ?使用占位符(??):
The author is
L'auteur est
翻譯文本時,如有必要,請移動占位符,但不要將其刪除。如果刪除占位符,將從翻譯完的應(yīng)用程序中刪除此 ICU 表達式。
以下示例顯示包含 ?select ?子句的第二個翻譯單元。
{VAR_SELECT, select, male {male} female {female} other {other} }
{VAR_SELECT, select, male {un homme} female {une femme} other {autre} }
以下示例顯示了翻譯完的兩個翻譯單元。
The author is
L'auteur est
{VAR_SELECT, select, male {male} female {female} other {other} }
{VAR_SELECT, select, male {un homme} female {une femme} other {autre} }
翻譯嵌套表達式
Angular 按照與替代表達式相同的方式處理嵌套表達式。Angular 會將表達式提取到兩個翻譯單元中。
嵌套 plural 示例
以下示例顯示包含嵌套表達式之外的文本的第一個翻譯單元。
Updated:
Mis à jour:
以下示例展示了包含完整嵌套表達式的第二個翻譯單元。
{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other { minutes ago by {VAR_SELECT, select, male {male} female {female} other {other} }} }
{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a minutes par {VAR_SELECT, select, male {un homme} female {une femme} other {autre} }} }
以下示例會在翻譯后顯示兩個翻譯單元。
Updated:
Mis à jour:
{VAR_PLURAL, plural, =0 {just now} =1 {one minute ago} other { minutes ago by {VAR_SELECT, select, male {male} female {female} other {other} }} }
{VAR_PLURAL, plural, =0 {à l'instant} =1 {il y a une minute} other {il y a minutes par {VAR_SELECT, select, male {un homme} female {une femme} other {autre} }} }
文章名稱:創(chuàng)新互聯(lián)Angular教程:Angular處理翻譯文件
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/cdejose.html


咨詢
建站咨詢
