国际化


简介

nowa init 中主要的项目模板都推荐使用 环境变量注入 + i18n-helper 文案模板工具 来完成国际化的功能。

该方案会在 src/i18n 目录下存放各种语言资源文件(目录结构详见 新项目篇),例如 zh-cn.jsen.js… 然后由 index.js 来负责选择性加载某一种语言。

index.js 中主要代码如下:

var lang = require('./' + locale);
module.exports = require('i18n-helper')(lang);

其中 locale 由环境变量注入,lang 即是当前运行环境的语言资源包,模块返回一个文案模板工具。

使用

abc.json 中的配置:

abc.json

{
  "options": {
    "vars": {
      "locale": "en"
    },
    "buildvars": {
      "locale": [ "zh-cn", "en" ]
    }
  }
}

其中,vars 是运行时的注入变量,buildvars 是构建时的候选值,

当某个变量有多个候选值时,将会把该候选值作为输出文件的后缀。

在业务代码中使用:

html/index.html

<script src="app-en.js"></script>

src/i18n/en.js

module.exports = {
  key1: 'hello {1}',
  key2: 'test demo'
};

src/pages/PageXxx.js

const i18n = require('i18n'); // i18n 被定义为一个快捷路径,无论业务代码在何处都可通过此路径引用到 `src/i18n/index.js` 模块
...
i18n('key1', 'world'); // 'hello world'
i18n('key2'); // 'test demo'

results matching ""

    No results matching ""