在 Android Studio 外比较两个字符串 xml 值

Compare two strings xml values outside Android Studio

为了本地化 android 应用程序(逆向工程),我正在比较三个 XML 文件值(英语、法语和阿拉伯语)以翻译法语和阿拉伯语中的缺失值。 作为反编译 APK 后的第一步,我必须将 XML 文件制作成一个 excel sheet 文件,其中包含四列 "Name, English,French,Arabic"

英语

<?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++

  1. 编辑 3 个 XML 文件,使所有 string name 标签的顺序相同
  2. 在需要的地方添加缺失的 name 个空值标签
  3. 使用 Notepad++ 与 ALT+D 比较,可以更轻松地查看名称顺序的差异
  4. 将每个XML复制到this stringconvert tool,在右边的绿框中
  5. 按“<< 转换”仅获取键值对(底部的文本框)并将其复制粘贴到 Excel

此外,如果您不想手动将所有 string name 标签按正确顺序排列,并且顺序不是很重要,那么您可以通过执行以下操作按字母顺序对它们进行排序。

将XMLs复制到备份文件中,删除?xmlresources标签等,只保留string name标签。通过选择所有文本,然后选择 TextFX -> TextFX 工具 -> 排序行,对 Notepad++ 中的行进行排序。然后 copy/paste 回到原来的 XML.