使用i18next翻译而不使用“key”作为字符串

时间:2014-01-03 14:46:24

标签: i18next

我遇到了一个奇怪的兼容性问题,我无法使用字符串作为我的JSON的关键。例如,如果以下JSON是我的翻译文件,

{
    "modules" : {
        "localization": {
          "modal" : "Modal localized (en-US)"
          }
    }
}

系统只能在没有键是字符串的情况下接受它,例如:

{
    modules : {
        localization: {
          modal : "Modal localized (en-US)"
          }
    }
}

是否可以配置i18next来实现这一目标?

1 个答案:

答案 0 :(得分:0)

来自http://i18next.com/pages/doc_init.html

<html>
    <head>
        <script type="text/javascript" src="jquery-1.11.1.js"></script>
        <script type="text/javascript" src="i18next-1.7.4.js"></script>
    </head>
    <body>
        <h1 data-i18n='key'>My First Heading</h1>
    </body>
    <script type="text/javascript">
        var resources = {
            dev: { translation: { key: 'value' } },
            en: { translation: { key: 'value' } },            
            'en-US': { translation: { key: 'value' } }
        };

        i18n.init({ 
            resStore: resources,
            lng: 'en-US'
        }, function(t) {
            $("h1").i18n();
        });
    </script>
</html>

如果对您来说效果更好,您可以将对象加载到资源中,这只是一个简单的演示。我无法找到任何与美国有关的方法。作为一个字符串 - 它抱怨&#39; - &#39;如果它没有引号。这可以防止它加载外部资源,所以我认为你必须自己处理从某个地方加载资源。