1.1.5 • Published 6 years ago
cyou-i18n v1.1.5
cyou-i18n
matriks2 seed 工程的国际化小工具
##Introduction 就目前国际化方案, 我们的国际化工作流程有两个步骤:
###1. 提取字符串
从 *.js(代码源文件)
提取到 /extra/i18n/zh-CN/x.js(翻译资源文件)
####From
let configs = {
title: '百度一下,你就知道'
}
####To
/* eslint-disable */
var lang = {
'百度一下,你就知道': '百度一下,你就知道',
'百度两下,你就知道': '百度两下,你就知道',
'百度三下,你就知道': '百度三下,你就知道',
...
};
lang;
###2. 字符串 key 重命名
翻译资源文件
中的字符串键值对的 key, 必须按照 前端国际化字符串命名规范
全部重命名
####To
/* eslint-disable */
var lang = {
// good
'xPage_title_baidu_one': '百度一下,你就知道',
// good
'yPage_title_baidu_two': '百度两下,你就知道',
// bad
'BaiDu.标题1': '百度三下,你就知道',
...
};
lang;
并且使用 _i(key) 替换 代码源文件 中的字符串 ####To
let configs = {
title: _i('xPage_title_baidu_one')
}
##Installation npm install -g cyou-i18n
##Usage
1. 使用 cyou-i18n-step-one 命令处理某个路径,生成中间文件
2. 手动修改中间文件
3. 使用 cyou-i18n-step-two 命令修改代码源文件
并生成翻译资源文件
step one
重要!!! step one 仅仅做提取字符串的工作, 不会&修改代码源文件
$ cyou-i18n-step-one ./target/src/frontend/Home/IndexPage/
会在路径 ./target/src/frontend/Home/IndexPage/ 中生成一个中间文件 *./target/src/frontend/Home/IndexPage/*CyouI18n_middle_result.json
{ // 文件路径 "/Users/zhangtingcen/myproject/NpmProject/CyouI18n/testing/Home/IndexPage/index.js":[ { // 默认生成的 key (perfix + 文件路径后4层级 + 字符串序列) "defaultKey": "cyou_i18n_testing_home_indexpage_index.js_1", // 请输入符合命名规范的 key "targetKey": "", // 提取出来的字符串, 用于检查是否提取正确 "chineseString": "校招三方", // 字符串所在行信息, 用于检查是否提取正确 "lineInfo": { // 行号 "lineNumber": 74, // 行 "line": " title: type === 'TP' ? '校招三方' : 'Offer拒绝',", // 替换后的模样 "newLine": " title: type === 'TP' ? _i('cyou_i18n_testing_home_indexpage_index.js_1') : _i('cyou_i18n_testing_home_indexpage_index.js_2')," } }, { "defaultKey": "cyou_i18n_testing_home_indexpage_index.js_2", "targetKey": "", "chineseString": "Offer拒绝", "lineInfo": { "lineNumber": 74, "line": " title: type === 'TP' ? '校招三方' : 'Offer拒绝',", "newLine": " title: type === 'TP' ? _i('cyou_i18n_testing_home_indexpage_index.js_1') : _i('cyou_i18n_testing_home_indexpage_index.js_2')," } } ],
step two
重要!!! step two 会修改代码源文件
, 请确保当前代码已提交, 且代码环境是干净的
$ cyou-i18n-step-two ./target/src/frontend/Home/IndexPage/
找到该目录下的中间文件 *./target/src/frontend/Home/IndexPage/*CyouI18n_middle_result.json, 并直接修改源文件
再该目录生成翻译资源文件
*./target/src/frontend/Home/IndexPage/*CyouI18n_result.js