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

标签 android xml excel localization translation

为了本地化 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++

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

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

将 XML 复制到备份文件中,删除 ?xmlresources 标记等,以便仅保留 string name 标记。通过选择所有文本,然后选择 TextFX -> TextFX 工具 -> 对行进行排序,对 Notepad++ 中的行进行排序。然后复制/粘贴回原始 XML。

关于android - 在 Android Studio 之外比较两个字符串 xml 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159947/

相关文章:

xml - 从横向 View 的结果创建 Hive 外部表

javascript - 使用 JQuery 迭代深层 XML 结构 - IE9

xml - 查找 XML 节点集的最低公共(public)祖先

Excel 整列连接函数

c# - 如何使用 Excel Add In Project 的 Sign Certificate 创建 visual studio 安装项目

excel - 使用 AVERAGE() 计算的 DAX 度量的 MDX 语法

java - 异步同步

Android: native /JNI 代码的性能从一部手机更改为另一部手机

java - 如何使一个 ImageView 在按下另一个 ImageView 时消失?

android - 在 fragment TabHost 中刷新 ListView