Skip to content

A tool for automatically extracting Chinese text from Vue files and generating i18n translations.

License

Notifications You must be signed in to change notification settings

au-to/i18n-extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

i18n-extractor

A tool for automatically extracting Chinese text from Vue files and generating i18n translations.

项目功能与思路

1. 项目功能

这是一个名为 i18n-extractor 的工具,主要用于从 Vue 项目中自动提取中文文本并转换为国际化(i18n)格式。具体功能包括:

  • 扫描 Vue 文件中的模板和脚本部分,自动提取中文文本
  • 为提取到的中文文本生成合适的 i18n 键名(key)
  • 将提取的中文文本替换为国际化函数调用(如 $t('key')
  • 生成或更新国际化资源文件(如 zh-CN.json)
  • 支持文件备份、日志记录等辅助功能

2. 实现思路

项目采用模块化设计,主要实现思路如下:

  1. 配置驱动:通过配置文件定义扫描范围、输出路径等参数
  2. 文本提取:使用正则表达式匹配中文文本,并排除注释
  3. 键名生成:支持两种方式生成 i18n 键名
    • AI 辅助生成:调用大语言模型接口生成语义化的键名
    • 备选方案:基于文本内容自动生成简单键名
  4. 文本替换:在原文件中将中文文本替换为 i18n 函数调用
  5. 资源管理:生成或更新国际化资源文件,保留已有的翻译

技术栈与架构

1. 技术栈

  • 开发语言:JavaScript (Node.js)
  • 模块系统:ES Modules (使用 import/export)
  • 核心依赖
    • @vue/compiler-sfc:Vue 单文件组件解析器
    • glob:文件匹配工具
    • chalk:命令行输出美化工具
  • 运行环境:Node.js

2. 项目架构

项目采用简洁的类-模块架构:

  1. 入口文件index.js

    • 初始化提取器实例并运行主流程
  2. 核心模块src/extractor.js

    • I18nExtractor 类:实现主要的提取和转换逻辑
    • 核心方法包括:文件处理、文本提取、AI 键名生成、文本替换等
  3. 配置模块src/config.js

    • 定义各项配置参数:扫描目录、输出路径、过滤规则等
  4. 工具模块src/utils.js

    • 提供日志、文件备份、内容过滤等辅助功能
  5. 测试文件src/test/test-component.vue

    • 包含各种中文文本场景的测试用例
  6. 输出目录i18n/

    • 存放生成的国际化资源文件

3. 工作流程

  1. 初始化提取器,加载配置
  2. 扫描指定目录下的所有 Vue 文件
  3. 解析 Vue 单文件组件,提取模板和脚本中的中文文本
  4. 为提取的文本生成 i18n 键名(可选择 AI 辅助或自动生成)
  5. 替换原文件中的中文文本为 i18n 函数调用
  6. 更新或创建国际化资源文件
  7. 输出处理结果统计

About

A tool for automatically extracting Chinese text from Vue files and generating i18n translations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published