# VUEJS项目国际化说明文档
## 要点
1. 程序员仅维护简体中文（zh-cn）的资源文件
2. 国际化资源文件支持分模块 module/zh-cn/*.js
3. 对于词量较少的模块，建议直接合并写入zh-cn.js
4. 国际化key需保持可读性语义，并以英文小写、数字、及下划线组成，不同模块的key允许重复
5. 当有新增的词汇需用node i18n命令提交到服务器数据库sys_i18n_resource表中，后台定时任务会对新提交的key进行机器翻译(需要一定的时间)。
6. 目前除简体中文zh-cn.js外，项目不再生成其它语种的js资源文件。通过远程接口加载，后期考虑推送js资源文件到CDN。
7. html元素使用{{ $t('...') }}进行国际化，vue 的data节点需要国际化必须将其移入computed，否则切换语种时不会同步变更。
8. 本地化语言设置优先顺序：用户手动设置>URL的参数设置(lang)>用户浏览器>系统默认
## 示例
###  推送词汇
```angular2html
node i18n
```
### html元素国际化
```angular2html
<script>
import i18n from '@/locales/i18n'
</script>
<el-button type="primary">{{ $t('live.publish_announcement') }}</el-button>
<el-table-column width="160" align="left" :label="$t('common.head_portrait')" prop="id">
</el-table-column>
```
### vue 数据节点国际化
```angular2html
<script>
  import i18n from '@/locales/i18n'
</script>
computed: {
    accountRules() {
      return {
        name: [
          {
            required: true,
            message: i18n.t('live.please_enter_admin_nickname'),
            trigger: 'blur'
          },
          {
            min: 2,
            max: 10,
            message: i18n.t('live.nickname_2_10_characters'),
            trigger: 'blur'
          }
        ]
      }
    }
  }
```
### 切换语种
```angular2html
<script>
  import { setLocale } from '@/locales/i18n'
  setLocale('en-us')
</script>
```
