检查Android strings.xml变量的工具?

时间:2012-03-05 10:01:21

标签: android validation localization

Android本地化变量中的简单拼写错误(例如%1d而不是%1$d中的strings.xml)可能导致crash

我们无法进行彻底的测试(许多屏幕,一些很少显示,几十种语言,非常频繁的发布,没有收入)所以我们必须找到一种更聪明的方式。这些错误没有在Eclipse中显示,实际上我正在寻找一个非可视化工具,以便我们的自动发布工具可以调用它。

我编写了以下脚本来检查本地化文件:

#! /bin/sh
# Spot malformed string replacement patterns in Android localization files.

grep -R "%1$ s" values*
grep -R "%1$ d" values*

grep -R '%' values* |
 sed -e 's/%/\n%/g' | # Split lines that contain several expressions
 grep '%'           | # Filter out lines that do not contain expressions
 grep -v ' % '      | # Lone % character, not a variable
 grep -v '%<'       | # Same, at the end of the string
 grep -v '% '       | # Same, at the beginning of the string
 grep -v '%で'      | # Same, no spaces in Japanese
 grep -v '%s'       | # Single string variable
 grep -v '%d'       | # Single decimal variable
 grep -v '%[0-9][0-9]\?$s' | # Multiple string variable
 grep -v '%[0-9][0-9]\?$d' |  # Multiple decimal variable
 grep -v '%1$.1f'   | # ?
 grep -v '%.1f'

grep -R '%' values*

问题:它fails可以捕获阿拉伯语本地化文件中的问题。

问题:是否已经有这样的验证工具,而不是重新发明轮子? (不是Eclipse)
如果不是:我忘记了什么检查?

注意:this script is open source

1 个答案:

答案 0 :(得分:1)

这听起来应该被纳入ADT中的Lint工具。