# extract_cn **Repository Path**: WuFengYeWuQing/extract_cn ## Basic Information - **Project Name**: extract_cn - **Description**: 提取android和ios代码里面的中文 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-16 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # extract_cn #### 介绍 提取android和ios代码里面的中文 #### 软件架构 原理:通过匹配代码里面的中文字符串,提取翻译成拼音生成变量并替换原来的中文字符串,同时自动生成变量。如果拼音太长则省略为拼音声母,如果还太长,则使用拼音首字母。特殊字符替换为_。工程通过当前代码目录的config.ini配置,配置包含ios配置和android配置(配置说明见使用说明)。 工程里面主要对应ios目录和android目录,对应各种语言的处理方式(字符串匹配和变量生成规则有差异) #### 安装教程 1. 配置config.ini //主要是目录和enable 2. cd [代码目录] //进入到代码目录 3. npm install //安装依赖 4. npm run.js //运行脚本,生成代码和文件 #### 使用说明 1. config.ini配置说明 >ios:ios代码的配置 >>enable:是否启用,配置为false或0,则此ios配置忽略不执行 >>srcdir:代码目录 >>dstdir:生成的代码和变量,报告放于此目录 >>filter:匹配路径最后以此来结尾的文件(非文件夹) >>ignores:忽略路径最后字符在此列表中文件及文件夹,注意:包含文件夹 >android:同ios >>language_pakage:语言处理工具类的包名,用于自动导入此包。此类应有静态函数:LanguageUtil.getString(Object ctx,int resid),用于判断this类型来返回resid对应字符串 2. 生成结果分析 >ios: >>:与srcdir同目录级的代码结构 >>err.log:如果匹配的文字字数太长(30+)或者生成的变量长度太长(30+)则记录到此文件 >>language.h:生成的变量的声明头文件 >>language.m:生成变量对应的字符串 >>Localizable.strings:对应的语言配置(需手动合到项目代码) >android: >>:与srcdir同目录级的代码结构 >>err.log:同ios >>strings.xml:语言配置(需手动合到项目代码) 3. 代码生成规则 >ios:使用宏定义来替换原来的中文字符串,见[project]/ios/worker.js,函数run(locate)内。宏定义获取通过字符串变量(language.h/m)获取字符串,然后匹配Localizable.strings获得对应文字 >android:中文替换为LanguageUtil.getString(this,R.string.[名字]),通过一个语言工具类中文替换为LanguageUtil,通过传入this,判断this类型来确定获取字符串(如this为context,则return getResorces().getString([变量名]))。生成的代码自动导入了LanguageUtil的包名(需要配置),但是没有自动导入R(资源文件),可自行修改代码添加。同时,由于无法准确判断是否静态函数里面,因此静态函数里面需要自行修改this为null #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)