中文 | English
🌎 自动国际化项目代码,基于kiwi+google国内翻译
- 安装
npm install sultana-inter
- 在项目跟目录创建配置文件
i18n.json
,详细配置如下:
{
"include": ["src/**/*.(ts*|js*)"],
"exclude": ["**/i18n/**","**/test/*","**/*.test.*"],
"importPath":"./src/i18n/language",
"importFormat": {
"ts":"import {i18n_lang_package,i18n_lang_format} from \"{{importPath}}\";",
"js":"const {i18n_lang_package,i18n_lang_format} = reuqire(\"{{importPath}}\");",
"html":"<script src=\"{{importPath}}/index.js\"></script>"
},
"translate":{
"from":"zh",
"to":"en"
},
"templateFunction":"i18n_lang_format",
"templateObj":"i18n_lang_package",
"exportPath": "./src/i18n/{{lang}}/{{filename}}.js",
"ignoreComments": "@i18n-ignore",
"excludeDirName":["components","pages","constants","containers","models","services","src"],
"defaultDirName":"common"
}
- 执行翻译命令
su-inter -p /path/to/your/project/
-
include
string[]
包含的文件夹匹配符,符合
micromatch
语法。例
["src/**/*.(ts*|js*)"]
-
exclude
string[]
排除的文件夹匹配符,符合
micromatch
语法。例
["**/i18n/**","**/test/*"]
-
importPath
string
在代码中引用的路径或文件
例
"./src/i18n/language"
-
importFormat
-
ts
string
*.ts*
的文件引入模板,使用{{importPath}}
作为配置项importPath
的模板变量。例
"import {i18n_lang_package,i18n_lang_format} from \"{{importPath}}\";"
-
js
string``*.js*
文件的例
"const {i18n_lang_package,i18n_lang_format} = reuqire(\"{{importPath}}\");"
-
html
string
*.html
文件的例
"<script src=\"{{importPath}}/index.js\"></script>"
-
-
translate
-
templateFunction
string
用作格式化的函数名,如配置
"I18N.format"
将被编译成I18N.format(I18N.lang.xxx,{val1:xxx,val2:xxx}})
-
templateObj
string
使用时的语言包的变量名,如配置
"I18N.lang"
将被编译成I18N.lang.xxx
-
exportPath
string
输出的语言目录,使用
{{lang}}
和{{filename}}
作为语言文件夹名和文件名。例
"./src/i18n/{{lang}}/{{filename}}.js"
-
ignoreComments
string
注释忽略标志,当配置
"@i18n-ignore"
时,遇到如下情况会忽略翻译:// @i18n-ignore const title="我和我的祖国"
-
excludeDirName
string[]
该工具使用文件夹名做exportPath的{{filename}}。配置该项可以在递归寻找文件夹时忽略配置的文本。
例
["components","models","services","src"]
-
defaultDirName
string
当没有合适的文件夹名做{{filename}}时,用该配置项代替。
例
common
会导致google翻译接口报错
- ignoreComments
- importFomat html header