[英]How to localize a node.js app with different word positioning per locale mixing static & dynamic localized text?
我有一個node.js express 4網絡應用程序,我需要翻譯和顯示幾種語言。 我正在學習在車把中使用i18n-node包。 一些本地化的文本數據來自db(動態數據),一些來自使用i18n-node的靜態文本json文件。 作為參考,我將使用以下句子:“嘿{Londoners}!在{March 29}開始的下一個春季假期去{Paris},結識一些{parisians},學習如何煮{parisian }甜點?” 我的問題是:您如何處理各種語言的不同語法,這些語法會同時改變靜態詞和動態注入詞的順序?
一個好的本地化庫應該支持這一點,通常,您應該能夠配置/傳遞一些東西:鍵,值,變量等等(復數,上下文等)。
鍵在所有不同的語言文件中應保持一致,但是值可以是您想要的任何值。
語言文件:
en.js:
{"Hello {name}, you have {points} points": "Hello {name}, you have {points} points"}
{"HELLO_MSG": "Hello {name}, you have {points} points"}
other-lang.js:
{"Hello {name}, you have {points} points": "{points}, xxx, {name} yyyy yyy"}
{"HELLO_MSG": "{points}, xxx, {name} yyyy yyy"}
然后,在您的代碼中,您應該執行以下操作:
en:
var hello1 = translate("Hello {name}, you have {points} points", {name: "John", points: 3}; // Hello John, you have 3 points
var hello2 = translate("HELLO_MSG", {name: "John", points: 3}; // Hello John, you have 3 points
other-lang:
var hello1 = translate("Hello {name}, you have {points} points", {name: "John", points: 3}; // 3, xxx, John yyyy yyy
var hello2 = translate("HELLO_MSG", {name: "John", points: 3}; // 3, xxx, John yyyy yyy
您可以在此處看到一個很好的示例: http : //i18next.com/pages/doc_features.html#interpolation
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.