簡體   English   中英

如何通過混合靜態和動態本地化文本的語言環境來本地化具有不同單詞定位的node.js應用程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM