我有两个不同语言的字符串xml,我想知道这些xml文件之间的差异。
例如,英语有一个xml,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Keep Accounts</string>
<string name="insertNewOne">Insert Accounts</string>
<string name="browseRecord">Browse Records</string>
<string name="set">Setting</string>
</resources>
另一种语言的xml,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Example</string>
<string name="insertNewOne">Example</string>
<string name="browseRecord">Example</string>
<string name="dateNoColon">Example</string>
</resources>
我们可以看到差异是英语的xml有元素字符串name="set"
,而另一个没有。另一方面,其他语言的xml文件具有元素字符串name="dateNoColon"
,但英语的xml没有。
在这种情况下,我想知道英文xml缺少元素字符串name="dateNoColon"
,而其他xml缺少元素字符串name =&#34; set&#34;。
答案 0 :(得分:2)
额外翻译如果字符串出现在特定语言翻译文件中,但默认语言环境中没有相应的字符串,则此字符串可能未使用。 (从技术上讲,您的应用程序只能在特定的区域设置中运行,但提供回退仍然是一个好主意。)。
不完整的翻译如果某个应用程序有多个语言环境,那么用一种语言声明的所有字符串也应该用所有其他语言翻译。
答案 1 :(得分:1)
假设设备设置为其他语言,Android将在value文件夹的otherlanguage.xml文件中查找标题。但如果该文件中不包含此类字符串,Android将回退到默认值,并将从english.xml文件中加载英文标题。
有关详情,请转至http://developer.android.com/guide/topics/resources/localization.html#using-framework
答案 2 :(得分:1)
我写了一个小工具:resdiff。 看看这个! https://github.com/danijoo/resdiff
答案 3 :(得分:0)
尝试使用一些perl或bash脚本或类似的东西对这两个文件进行排序,例如,使用bash:
VARIABLE addsal NUMBER
exec add_sal(1,:addsal);
然后使用sort temp.txt -o temp.txt
来查看差异。
答案 4 :(得分:0)
使用Android Lint查找不完整的翻译,即语言变体中缺少的字符串和额外的翻译,即在语言变体中引入但在默认语言环境中缺失的字符串。
在Android Studio中,您可以使用Analyze运行Lint(和其他一些分析工具) - &gt;检查代码。