Инструмент для проверки переменных Android strings.xml?

Простая опечатка в переменной локализации 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*

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

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

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

1
05 марта '12 в 13:01
источник поделиться
1 ответ

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

1
09 марта '12 в 15:56
источник

Посмотрите другие вопросы по меткам или Задайте вопрос