Xuan Wu
Xuan Wu
在[初步统计](https://gist.github.com/nobodxbodon/5d805f067eadf2cb31adc3a790742e4b)下, 在9492个标识符中, 下面是前X个占总出现次数的比例(比如前71个占总出现次数的10%). 更全表(wiki渲染时间过长导致只能贴部分)[在此](https://github.com/program-in-chinese/overview/wiki/%E6%96%B9%E8%88%9F%E6%A0%87%E8%AF%86%E7%AC%A6%E7%BB%9F%E8%AE%A1): | 前几个 | 占总出现次数的比例 | | -- | -- 71 | 10% 224 | 20% 458 | 30% 796 | 40% 1305 | 50% 2039 |...
在尝试汉化MapleLogger为"日志"时, 发现编译错误, 推测时由于`maple_util`目录只有头文件, 编译时依靠现成的`src/deplibs/libmplutil.a`, 而.a文件并无"日志"接口, 导致错误. 想到之前的`StmtNode`命名为`声明节点类`时, 也碰到类似问题: ``` FAILED: /home/xw/git/OpenArkCompiler_cn/out/bin/maple /home/xw/git/OpenArkCompiler_cn/../OpenArkCompiler/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang++ -fPIC -std=c++11 -rdynamic -lpthread -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fPIE -o /home/xw/git/OpenArkCompiler_cn/out/bin/maple -Wl,--start-group obj/src/maple_driver/src/maple.compiler.o obj/src/maple_driver/src/maple.compiler_factory.o obj/src/maple_driver/src/maple.compiler_selector.o obj/src/maple_driver/src/maple.driver_runner.o obj/src/maple_driver/src/maple.file_utils.o obj/src/maple_driver/src/maple.jbc2mpl_compiler.o obj/src/maple_driver/src/maple.maple.o...
尝试用[批量替换+字典](https://github.com/program-in-chinese/ark_compiler_source_translation)的方式对源码标识符进行自动翻译. [字典](https://github.com/program-in-chinese/ark_compiler_source_translation/blob/master/src/com/codeinchinese/%E6%BA%90%E7%A0%81/%E7%BF%BB%E8%AF%91/%E6%BA%90%E7%A0%81%E5%A4%84%E7%90%86.java#L25)来源于[之前的手动提交](https://gitee.com/Program-in-Chinese/OpenArkCompiler/commits/master). 由于基本没有任何语法分析, 仅用简单的字符串替换+少量注释/字符串识别处理. 阶段小结如下. 处理的结果与之前的手动修改比较. 生成的diff大约30k, 大约60多处不同. 相对修改的上千处代码来说, 比例很小. ### 存在的几种问题 1. 同名标识符 有些本地标识符没有被替换的, 如`DefaultOption`中的`mplOptions`. 在汉化过程中, 同名标识符可能属于不同类, 不一定使用同一中文翻译, 这种情况暂时无法处理, 需要语法分析. 统计: 4 8 5 3 1 3 2 `ret`是否全都是"返回"的语义需逐个检查....
将楼上小结整理在[尝试自动批量翻译方舟编译器源码中的标识符](https://zhuanlan.zhihu.com/p/85085837). 暂时搁置, 希望找到合适的分析器. 打算重拾 #165 和 #97 .
方舟repo的issue[提到了](https://gitee.com/harmonyos/OpenArkCompiler/issues/I14O1F)下一步开源大概在明年上半年。可能测试框架也会[同时开源](https://gitee.com/harmonyos/OpenArkCompiler/issues/I14OIZ)。
更新的开源计划[在此](https://gitee.com/harmonyos/OpenArkCompiler#%E5%BC%80%E6%BA%90%E8%AE%A1%E5%88%92)。测试框架[已开源](https://gitee.com/harmonyos/OpenArkCompiler/tree/master/test)。
多谢分享! 很高兴看到大规模汉化API的实例. 看起来工作量很不小啊, 完成度也很高. 好奇请教一下项目由来?
请问有示例或者简单的使用说明吗? 一直没怎么关注Android开发, 一时不知如何上手.
APK/script/index.js 是指https://github.com/MikaGuraN/HL4A/blob/master/HL4A/src/main/java/script/index.js 吧? 包含了[这个帮助文件](https://github.com/MikaGuraN/HL4A/blob/master/HL4A/src/main/assets/help.txt) 才意识到这是真的"在Android上"写app. 感觉蛮独特. 之前看到过一些在手机上做某个编程语言的IDE的, 但第一次看到在手机环境里做app开发. 请教一下相比在pc上做开发, 有些什么优势呢? 这个库能否在pc上使用?
@MikaGuraN 多谢, 才了解Dalvik/JVM的区别. 手机上编写代码好像是个趋势, 毕竟现在手机屏够大, 性能也够. > 我是故意不用任何xml布局的,所以打包只用aapt和signer就可以了 刚想到, 是不是还有个优势, 就是开发时不用模拟器运行或者下载到手机运行的一步, 就可以直接在手机上运行看效果? 另外, 调试上是否也会更方便(记得当时开adb什么的有不少小麻烦)?