我使用的國際化支持Angular2(4.0.3)記錄here。我已經生成了xlf
文件,並且一切都很順利。如何在Angular中重用i18n翻譯密鑰?
但是,讓我們說,我有一個菜單按鈕鏈接到我的主頁。我使用屬性i18n="@@homeTitle"
創建DOM節點。現在,在我的主頁組件,我想用相同的轉換ID在我<h1>
標籤,讓我得到相同的轉換,而不必維持與xlf
文件中的內容相同的多個條目。
我希望做這樣的事情的下方,有它的自動填充我<a>
節點與適當的翻譯。
// home.component.html
<h1 i18n="@@homeTitle">Home</h1>
// menu.component.html
<a routerLink="/" i18n="@@homeTitle"></a>
但是,這是行不通的。節點<a>
顯示爲空文本,而不是翻譯目標。 (此外,默認情況下,在自動生成的messages.xlf
文件中沒有翻譯目標。)
該文檔實際上爲call out this situation,但未提供解決方案。這個問題也被稱爲了由普通字符串用戶on GitHub像週一和取消,但這個問題的主題不覆蓋解決這個特殊的問題。
如何在多個節點上重複使用在我的xlf
文件中定義的i18n翻譯?
編輯:這是通過使用ng-xi18n --i18nFormat=xlf
產生的xlf
:分別
<?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="homeTitle" datatype="html">
<source>Home</source>
<target/>
</trans-unit>
</body>
</file>
</xliff>
如果兩個@@homeTitle
節點的解析順序進行切換,<source>
變化。
你能否展示關聯的xlf? 還有什麼你用來提取翻譯鍵和生成xlf? – Romain
@Romain我已經添加了'xlf',但我不確定它會有多大用處。 – Eric