fix voerkai18n init
This commit is contained in:
parent
7e9e4b7ed8
commit
c11e9690c3
@ -1,4 +1,11 @@
|
||||
# 更新日志
|
||||
## 2023/1/28
|
||||
|
||||
- 修复`voerkai18n init`生成`index.js`时的`i18nScope`拼写错误
|
||||
- `voerkai18n init`添加`--typescript`参数支持
|
||||
- 修复`voerkai18n init`的`moduleType=auto`时生成文件类型的问题
|
||||
- 更新文档
|
||||
|
||||
## 2023/1/27
|
||||
|
||||
- 修复`voerkai18n init`生成的初始文件不完整的问题
|
||||
|
@ -49,7 +49,9 @@ Arguments:
|
||||
Options:
|
||||
-D, --debug 输出调试信息
|
||||
-r, --reset 重新生成当前项目的语言配置
|
||||
-m, --moduleType [types] 输出模块类型,取值auto(默认),esm,cjs
|
||||
-lngs, --languages <languages...> 支持的语言列表 (default: ["zh","en"])
|
||||
-t, --typescript 输出typescript代码
|
||||
-d, --defaultLanguage 默认语言
|
||||
-a, --activeLanguage 激活语言
|
||||
-h, --help display help for command
|
||||
@ -72,7 +74,9 @@ Options:
|
||||
languages
|
||||
<small>多语言目录</small>
|
||||
<ul>
|
||||
<li>settings.json</li>>
|
||||
<li>settings.json</li>
|
||||
<li>index.(js|ts)</li>
|
||||
<li>idMap.(js|ts)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.md</li>
|
||||
@ -107,21 +111,21 @@ module.exports = {
|
||||
|
||||
**说明:**
|
||||
|
||||
- 您也可以手动自行创建`languages/settings.json`文件。这样就不需运行`voerkai18n init`命令了。
|
||||
|
||||
- 如果你的源码放在`src`文件夹,则`init`命令会自动在在`src`文件夹下创建`languages`文件夹。
|
||||
|
||||
- `voerkai18n init`是可选的,直接使用`extract`时也会自动创建相应的文件。
|
||||
|
||||
- `-m`参数用来指定生成的`settings.json`的模块类型:
|
||||
- 当`-m=auto`时,会自动读取前工程`package.json`中的`type`字段
|
||||
- 当`-m=auto`时,会自动根据前工程`package.json`中的`type`字段等信息来决定源码的模块类型
|
||||
- 当`-m=esm`时,会生成`ESM`模块类型的`settings.json`。
|
||||
- 当`-m=cjs`时,会生成`commonjs`模块类型的`settings.json`。
|
||||
|
||||
- `location`参数是可选的,如果没有指定则采用当前目录。
|
||||
- `voerkai18n init`能识别当前是否是`typescript`工程,方法是通过检查是否存在`tsconfig.json`来判断。也可以显式指定`voerkai18n init --typescript`来生成对应的`typescript`源码。
|
||||
|
||||
如果你想将`languages`安装在`src/languages`下,则可以指定`voerkai18n init ./src`
|
||||
|
||||
- 生成在`idMap`文件是一个空文件,后续会自动更新,不需要修改。
|
||||
- `index.(js|ts)`也是一个占位文件,后续执行`compile`时会覆盖重新生成
|
||||
|
||||
## 提取文本 - extract
|
||||
|
||||
扫描提取当前项目中的所有源码,提取出所有需要翻译的文本内容并保存在到`<工程源码目录>/languages/translates/*.json`。
|
||||
@ -239,24 +243,38 @@ Options:
|
||||
|
||||
`voerkai18n compile`执行后会在`langauges`文件夹下输出:
|
||||
|
||||
```javascript | pure
|
||||
myapp
|
||||
|--- langauges
|
||||
|-- index.js // 当前作用域的源码
|
||||
|-- idMap.js // 翻译文本与id的映射文件
|
||||
|-- formatters // 自定义格式化器
|
||||
|-- zh.js // 中文格式化器定义
|
||||
|-- en.js // 英文格式化器定义
|
||||
|-- xx.js // 其他语言格式化器定义
|
||||
|-- zh.js // 中文语言包
|
||||
|-- en.js // 英文语言包
|
||||
|-- xx.js // 其他语言包
|
||||
|-- ...
|
||||
```
|
||||
<Tree title="myapp">
|
||||
<ul>
|
||||
<li>
|
||||
languages<small>多语言目录</small>
|
||||
<ul>
|
||||
<li>settings.json</li>
|
||||
<li>index.(js|ts)</li>
|
||||
<li>idMap.(js|ts)</li>
|
||||
<li>zh.(js|ts)</li>
|
||||
<li>en.(js|ts)</li>
|
||||
<li>xx.(js|ts)</li>
|
||||
<li>
|
||||
formatters<small>格式化器</small>
|
||||
<ul>
|
||||
<li>zh.(js|ts)</li>
|
||||
<li>en.(js|ts)</li>
|
||||
<li>xx.(js|ts)</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.md</li>
|
||||
<li>package.json</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</Tree>
|
||||
|
||||
|
||||
**说明:**
|
||||
|
||||
- 在当前工程目录下,一般不需要指定参数就可以反复多次进行编译。
|
||||
- 您每次修改了源码并`extract`后,均应该再次运行`compile`命令。
|
||||
- 如果您修改了`formatters.js`,执行`compile`命令不会重新生成和修改该文件。
|
||||
- 默认情况下,`compile`命令当发现当前工程存在`ts.config.ts`时,会生成`languages/**/*.ts`。也可以显式指定`voerkai18n compile --typescript`来生成`ts`源码,或者显式指定`voerkai18n compile --typescript=false`来禁用生成`ts`源码。
|
||||
- 默认情况下,`compile`命令当发现当前工程存在`ts.config.ts`时,会生成`languages/**/*.ts`。也可以显式指定`voerkai18n compile --typescript`来生成`ts`源码,或者显式指定`voerkai18n compile --typescript=false`来禁用生成`ts`源码。
|
||||
- **注意**,`compile`命令会重新覆盖`languages/index.(js|ts)`。
|
@ -29,6 +29,7 @@ program
|
||||
.option('-D, --debug', t('输出调试信息'))
|
||||
.option('-m, --moduleType [types]', t('输出模块类型,取值auto,esm,cjs'), 'auto')
|
||||
.option('-r, --reset', t('重新生成当前项目的语言配置'))
|
||||
.option('-t, --typescript',t("输出typescript代码"))
|
||||
.option('-lngs, --languages <languages...>', t('支持的语言列表'), ['zh','en'])
|
||||
.option('-d, --defaultLanguage <name>', t('默认语言'), 'zh')
|
||||
.option('-a, --activeLanguage <name>', t('激活语言'), 'zh')
|
||||
@ -89,7 +90,7 @@ program
|
||||
.command('compile')
|
||||
.description(t('编译指定项目的语言包'))
|
||||
.option('-D, --debug', t('输出调试信息'))
|
||||
.option('-t, --typescript')
|
||||
.option('-t, --typescript',t("输出typescript代码"))
|
||||
.option('-m, --moduleType [types]', t('输出模块类型,取值auto,esm,cjs'), 'esm')
|
||||
.argument('[location]', t('工程项目所在目录'),"./")
|
||||
.hook("preAction",async function(location){
|
||||
@ -133,6 +134,4 @@ program
|
||||
|
||||
|
||||
program.parseAsync(process.argv);
|
||||
|
||||
const options = program.opts();
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
/**
|
||||
* 注意:执行compile命令会生新后成本文件,所以请不要修改本文件
|
||||
*/
|
||||
{{if moduleType === "esm"}}
|
||||
import messageIds from "./idMap.js" // 语言ID映射文件
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
|
@ -1,3 +1,6 @@
|
||||
/**
|
||||
* 注意:执行compile命令会生新后成本文件,所以请不要修改本文件
|
||||
*/
|
||||
import messageIds from "./idMap" // 语言ID映射文件
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
|
@ -1,9 +1,9 @@
|
||||
/**
|
||||
* 初始化入口
|
||||
*
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数引用
|
||||
*
|
||||
*/
|
||||
*
|
||||
* 注意:执行compile命令会生新后成本文件,所以请不要修改本文件
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数占位引用
|
||||
*/
|
||||
{{if moduleType === "esm"}}
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
|
@ -1,9 +1,7 @@
|
||||
/**
|
||||
* 初始化入口
|
||||
*
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数引用
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* 注意:执行compile命令会生新后成本文件,所以请不要修改本文件
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数占位引用
|
||||
*/
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user