簡體   English   中英

使用RequireJS-i18next-plugin時的i18next特殊功能

[英]i18next special features when using RequireJS-i18next-plugin

我正在使用i18next處理項目上的翻譯。 它具有很多不錯的功能,例如以下兩個功能:

// pluralization (http://i18next.com/translate/pluralSimple/):
i18next.t('apple', {count: 5}); // apples

// translation context (http://i18next.com/translate/context/):
i18next.t('friend', {context: 'male'}); // A boyfriend

但是,我的項目也使用RequireJS及其i18next插件,如文檔( http://requirejs.org/docs/api.html#i18n )所述,該插件的工作方式如下:

我將翻譯聲明為RequireJS模塊:

//Contents of my/nls/translations.js
define({
    "root": {
        "friend": "A friend",
        "friend_male": "A boyfriend",
        "friend_female": "A girlfriend",

        "apple": "apple",
        "apple_plural": "apples"
    },
    "fr-fr": {
        "friend": "Un ami",
        "friend_male": "Un petit ami",
        "friend_female": "Un petite amie",

        "apple": "pomme",
        "apple_plural": "pommes"
    }
});

然后我以這種方式加載和使用它們:

//Content of my/logic.js
var translations = require("i18n!my/nls/translations.js");
console.log(translations.friend); // logs "Un ami" (in my French browser!)

但是,在這樣的上下文中,我不了解如何使用上面提到的i18next的各種功能(復數化,上下文等)。 這沒有出現在插件的文檔中。 我有點迷路了...

RequireJS i18n插件不適用於i18next。 使用require-i18next插件

RequireJS i18n插件是一個簡單的key=>val映射器。 i18next是功能強大的工具。

我個人不使用require-i18next插件。 我使用domready插件和以下代碼:

domReady(function () {
  i18n.init({
    fallbackLng: 'en',
    shortcutFunction: 'sprintf',
    nsseparator: ':::',
    keyseparator: '::'
  }, initApp);
});

其中, initApp是運行我的應用程序的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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