Проверка локали массива строк Android - PullRequest
22 голосов
/ 12 октября 2011

Мне было интересно, кто-нибудь сталкивался с хорошим способом проверки строковых массивов в каталоге res / values.

Я создаю с помощью кода, используя локаль по умолчанию, и может иметь ресурс, похожий на

<string-array name="array_example1">
    <item>One</item>
    <item>Two</item>
    <item>Three</item>
</string-array>

Затем, когда переводчики для приложения делают свои переводы, они также создают массив строк.Иногда, если один перевод отстает от другого, один из файлов ресурсов может иметь не так много записей в массиве (возможно, только «Один» и «Два» из приведенного выше примера)

Есть ли простой способ проверить,есть несоответствие в количестве записей?Несовпадение может вызвать проблемы в коде, но поскольку в приложении есть десятки строковых массивов на нескольких языках, проверка того, что все они совпадают, занимает много времени.

Какой подход для этого есть у других?

1 Ответ

50 голосов
/ 13 октября 2011

Я нашел лучший способ остановить сбои. Я не осознавал, что строковые массивы могут ссылаться на строковые ресурсы следующим образом:

<string-array name="array_example1">
    <item>@string/resOne</item>
    <item>@string/resTwo</item>
    <item>@string/resThree</item>
</string-array>

Затем добавьте

<string name="resOne">One</string>
<string name="resTwo">Two</string>
<string name="resThree">Three</string>

Следовательно, таким образом, если есть несоответствие, язык по умолчанию просто будет показан для этой опции и остановит сбои из-за списков разных размеров

...