使用骨干中的i18n动态更改语言 - requirejs项目

时间:2015-02-14 18:33:11

标签: jquery backbone.js requirejs handlebars.js i18next

我正在尝试使用backbone和requirejs创建一个应用程序。 我正在尝试使用i18n(requirejs amd支持的插件)在项目中包含国际化。

我想为用户提供更改语言的选项。

那么,如何配置i18n以便任何人都可以根据自己的需要更改语言。

P.S。使用的模板引擎是把手。

推荐的任何其他国际化插件也没关系。

这是我的项目结构。

  • JS

    • 应用

      • 配置
        • appConfig.js
      • 初始化
        • App.js
        • AppInit.js
      • NLS

        • home.js(根文件)
        • FR-FR
          • home.js
      • 路由器

        • AppRouter.js
      • 模板
        • homeTmpl.html
      • 视图
        • homeView.js
  • LIB

这是我的index.html页面,其中包含更改语言的选项

<html>
<head>
<title>i18n test with backbone and requirejs</title>
<script type="text/javascript" src="lib/jquery-2.1.3.js"></script>
<script data-main="js/app/config/appConfig" type="text/javascript"
src="lib/require.js"></script>
<style>
#content{
    width: 800px;
    height: 400px;
    top:200px;
    left:100px;
    border: 3px dotted #0F0;
}
#lang{
    float:right;
}
</style>
</head>
<body>
<h3> Hello World , Good Morning</h3>

<div id ="lang">
    <a href="javascript:void(0);" class="lang" id="en">English</a>
    <a href="javascript:void(0);" class="lang" id="fr">French</a>
</div>

<a href='#home'>Home</a><br/>
<a href='#about'>About Us</a><br/>
<a href='#contact'>Contact</a><br/>

<div id="content"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

取自此处的文档:http://i18next.com/pages/doc_init.html

i18n.setLng('en-US', function(t) { /* loading done */ });

如果您想在示例中使用内联JavaScript,则可以执行以下操作:

<a href="javascript:i18n.setLng('en');" id="en">English</a>
<a href="javascript:i18n.setLng('fr');" id="fr">French</a>