@onex2/js2json
v1.0.0
Published
将 locale 目录下的多语种 JS 文件转为 JSON,支持按 key 排序与格式化
Downloads
6
Readme
@onex2/js2json
将 locale 目录下的多语种 JS 文件转为 JSON,支持按 key 首字母排序与格式化。
使用
在项目根目录执行(会以当前目录为基准扫描):
npx @onex2/js2json- 自动扫描:先看项目根下的
locale/或locales/;若没有,则递归查找项目内任意位置的locale/locales目录(跳过node_modules、.git),再递归遍历其中的.js并生成同名.json。 - 自定义配置:若存在
.vscode/settings.json,可配置localeJs2json.files(指定文件列表)或localeJs2json.localeDir(指定 locale 目录路径,可不放在项目根)。
通过 .vscode/settings.json 指定文件或目录
在项目根目录的 .vscode/settings.json 中可配置:
方式一:指定要转换的文件列表
{
"localeJs2json.files": [
"locale/en-US.js",
"locale/zh-CN.js"
]
}方式二:指定 locale 目录路径(可不放在根目录)
{
"localeJs2json.localeDir": "src/locale"
}- 配置
localeJs2json.files时,只转换列出的文件。 - 配置
localeJs2json.localeDir时,递归扫描该目录下所有.js(路径相对项目根,如src/locale、packages/app/locales)。 - 都未配置时,默认先找项目根下的
locale/或locales/;若没有,则自动查找项目内任意层级的locale/locales目录并扫描。
项目结构示例
locale 在根目录时:
你的项目/
├── .vscode/
│ └── settings.json (可选)
├── locale/
│ ├── en-US.js
│ └── zh-CN.js
└── ...locale 不在根目录时,在 .vscode/settings.json 中配置 "localeJs2json.localeDir": "src/locale" 即可:
你的项目/
├── .vscode/
│ └── settings.json (配置 localeJs2json.localeDir)
├── src/
│ └── locale/
│ ├── en-US.js
│ └── zh-CN.js
└── ...运行 npx @onex2/js2json 后:
你的项目/
├── locale/
│ ├── en-US.js
│ ├── en-US.json
│ ├── zh-CN.js
│ └── zh-CN.json
└── ...语种 JS 格式
语种文件需为 ES 模块,并 export default 一个对象,例如:
// locale/zh-CN.js
export default {
common: { ok: "确定", cancel: "取消" },
home: { title: "首页" },
};发布到 npm
- 在 npm 登录:
npm login - 将
package.json中的repository.url改为你的仓库地址 - 发布:
npm publish
发布后即可在任意项目根目录执行 npx @onex2/js2json 使用。
