cyou-i18n

1.1.5 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i cyou-i18n

Weekly Downloads

1

Version

1.1.5

License

MIT

Last publish

Collaborators

  • moyuyc
  • teeeemoji