Инструмент для проверки переменных Android strings.xml? - PullRequest
1 голос
/ 05 марта 2012

Простая опечатка в переменной локализации Android (например, %1d вместо %1$d в strings.xml) может привести к краху .

Мы не можем позволить себе исчерпывающее тестирование (многие экраны, некоторые очень редко показываются, десятки языков, очень частые выпуски, нет дохода), поэтому мы должны найти более разумный способ. Эти ошибки не отображаются в 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*

ПРОБЛЕМА: не может обнаружить ошибки в файлах арабской локализации.

ВОПРОС: вместо того, чтобы заново изобретать колесо, уже существует такой инструмент проверки? (не Затмение)
Если нет: какие чеки я забыл?

Примечание: этот скрипт с открытым исходным кодом

1 Ответ

1 голос
/ 09 марта 2012

Это звучит как то, что должно быть включено в инструмент Lint в ADT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...