多语言前端页面批量替换工具
//第一步,遍历_0目录下所有jsp、js文件,过滤掉注释代码,输出到_1临时目录
CommentFilter.traverseFolder(Constant.ORIGIN_PROJECT_PATH);
//第二步,遍历_1临时目录下所有文件,查找文件中的中文字符,输出到chineseCharInSourceFile.txt
SearchChineseCharacter.traverseFolder(Constant.TEMP_PROJECT1_PATH);
//第三步,去除chineseCharInSourceFile.txt文件中的重复中文,输出到chineseCharNotRepeated.txt,准备翻译
Deduplicator.doDeduplice(Constant.CHINESE_CHAR_IN_SOURCE_FILE);
//第四步,使用Google翻译chineseCharNotRepeated.txt文件中未翻译的内容,保存到zh_en_key_new.txt,
Translater.doTranslate("413450.2129291779");
//第五步,遍历_1临时目录下的文件,中文字符全部用key值获取,输出到_2临时目录下
ReplaceChineseText.traverseFolder(Constant.TEMP_PROJECT1_PATH);
//第六步,遍历_2临时目录下的文件,将变更与原来_0目录下的文件内容合并,输出到_3目录
WriteBackToSource.traverseFolder(Constant.TEMP_PROJECT2_PATH);
//第七步,根据zh_en_key_base.txt和zh_en_key_new.txt生成 properties文件
//PropertyFileGenerate.doGenerate(Constant.ZH_EN_KEY_NEW_TXT);
PropertyFileValidator.doValidator(Constant.ZH_EN_KEY_NEW_TXT);
代码附件:
i18n.zip
人工校验的过程:
1 注释掉第 5-7 步,执行 1-4 步,会生成 zh_en_key_new.txt,其中包含中文,英文,key 值,人工校验修改英文部分,其余不变
2 注释掉 1-4 步,继续执行 5-7 步
你好,第四步调用谷歌翻译的接口返回结果为 null,通过抓包获取最新的 TTK 值后,再调用就返回 403 了,请问这个问题怎么解决?
第四步 google 翻译是模拟的 web 端翻译,TTK 参数获取过程如下:
1 浏览器打开https://translate.google.cn/
2 F12 打开调试,定位到 Network 页签
3 翻译界面输入任何中文,翻译结果返回后回到调试 Network
4 找到如下请求 X:
https://translate.google.cn/translate_a/single?client=webapp&sl=zh-CN&tl=en&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&otf=1&ssel=3&tsel=3&kc=2&tk=322574.149415&q=%E4%B8%ADwe
5 tk=322574.149415 即为动态参数
6 如果请求返回异常,请检查代码中 Jsoup 请求与上述请求 X 是否一致
在大佬帮助下问题终于解决了,谢谢,除了 TTK 要获取最新版本外,Jsoup 的请求参数也要更新
后端 Java 文件里,还有大量的中文需要翻译,工具没有翻译 Java 文件中文的功能,能否加上这个功能。
目前的功能在使用过程中发现了三个问题
①同一个目录下会的 jsp 文件都已被扫描进 UniMax-A-1 文件夹,但是并没有被翻译,也就没有出现在 UniMax-A-2 和 UniMax-A-3 文件夹里
②
<m:gridcol label="xx" cellFormat="replaceText" cellFormatOptions="{'0':'未存入','1':'已存','3':''}">
cellFormatOptions 属性里的中文也没有翻译③jsp 文件内部 js 代码里的中文没有被替换,仍需手动替换