mirror of https://github.com/allinssl/allinssl
42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
国际化匹配,基于路由和文件拆分,生成国际化文件
|
||
1、vite插件编写,仅项目运行前扫描一次,并处理国际化文件
|
||
2、定义配置参数
|
||
-- 需要扫描的目录
|
||
-- 需要扫描的文件类型
|
||
-- 需要扫描的文件名称
|
||
3、基于正则进行匹配,提取正则表达式中的翻译内容,进入翻译队列和路径匹配数据。
|
||
4、进入翻译队列后,要进行去重处理,如果内容相同,则不进行翻译,直接调用队列表。
|
||
4、基于GLM-4-Plus模型进行翻译
|
||
5、将重复的翻译内容进行合并,生成队列表
|
||
6、队列表拆分成国际化文件
|
||
|
||
项目模块划分:
|
||
1、翻译模块-用于翻译内容
|
||
2、扫描模块-扫描文件信息,进行匹配,支持国际化常用的几种方式
|
||
3、队列模块-用于存储翻译内容
|
||
4、文件模块-用于生成国际化文件和相关的配置文件
|
||
5、插件模块-用于处理vite插件项目周期
|
||
6、文件对比模块-用于对比文件内容
|
||
|
||
队列表格式如下:
|
||
[{
|
||
path: '/src/views/user/index.vue',
|
||
i18n: 'user.components.0', // 生成国际化id,"路由_当前下标"
|
||
content: 't("用户",{ name: "zhang san" })'
|
||
lang:{
|
||
zh: '用户管理',
|
||
en: 'User Management'
|
||
}
|
||
}]
|
||
|
||
语言翻译列表如下:
|
||
[
|
||
{lang: 'zh', content: '中文'}, // 中文
|
||
{lang: 'en', content: 'English'}, // 英文
|
||
{lang: 'fr', content: 'Français'}, // 法语
|
||
{lang: 'de', content: 'Deutsch'}, // 德语
|
||
{lang: 'es', content: 'Español'}, // 西班牙语
|
||
{lang: 'it', content: 'Italiano'}, // 意大利语
|
||
{lang: 'ja', content: '日本語'}, // 日语
|
||
]
|