为了本地化 Android 应用程序(逆向工程),我比较了三个 XML 文件值(英语、法语和阿拉伯语),以将缺失值翻译为法语和阿拉伯语。 作为反编译 APK 后的第一步,我必须在一个 Excel 工作表中制作 XML 文件,其中包含四列“名称、英语、法语、阿拉伯语”
英语
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="cancel_action">Cancel</string>
<string name="dialog_title">Dialog Title</string>
<string name="application_title">Application Title</string>
<string name="confirm_action">Confirm</string>
...
</resources>
法语
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="dialog_title">Titre dialogue</string>
<string name="application_title">Titre Application</string>
<string name="cancel_action">Annuler</string>
<string name="confirm_action">Confirmer</string>
...
</resources>
我的问题是如何实用地导入和组织它们而不是 Excel 过滤器?因为变量名有不同的位置?我希望这个想法很清楚!
最佳答案
我会使用 Notepad++ 和比较插件:
Notepad++
Compare for Notepad++
- 编辑 3 个 XML 文件,使所有
字符串名称
标签的顺序相同 - 在需要的地方添加缺失的
name
标签以及空值 - 使用 Notepad++ 与 ALT+D 进行比较,更轻松地查看名称顺序中的任何差异
- 将每个 XML 复制到 this stringconvert tool ,在右侧绿色框中
- 按“<<转换”仅获取键值对(底部的文本框)并将其复制粘贴到 Excel 中
此外,如果您不想手动将所有 string name
标记按正确的顺序排列,并且顺序并不重要,那么您可以通过执行以下操作按字母顺序对它们进行排序以下。
将 XML 复制到备份文件中,删除 ?xml
、resources
标记等,以便仅保留 string name
标记。通过选择所有文本,然后选择 TextFX -> TextFX 工具 -> 对行进行排序,对 Notepad++ 中的行进行排序。然后复制/粘贴回原始 XML。
关于android - 在 Android Studio 之外比较两个字符串 xml 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159947/