Я перевел проект в CyanogenMod (приложение электронной почты) на иврит, добавив папку-значения и скомпилировал весь репозиторий (make). Я убедился, что полный языковой файл содержит ивритский язык.
Однако, когда я загрузил обновление zip на телефон и переключил язык на иврит, я все равно получил английские строки. Я уверен, что мне не хватает шага.
Любая идея, пожалуйста?
EDIT: Опять же, мой телефон поддерживает иврит - как это видно из других приложений, которые переключают язык в соответствии с содержимым содержимого папки. Это просто для приложения электронной почты, что оно не работает.
Ответ 1
Согласно ISO 639, он является правильным кодом ISO 639-1 для иврита. В то время как iw был устаревшим в 1989 году. Причина, по которой некоторые устройства Android используют iw, - это спасибо для Sun вы можете прочитать информацию.
Устройства, такие как Nexus S, продаваемые в США, используют iw. Если вы поедете в Израиль и проверьте местонахождение на телефоне, проданном там (например, Galaxy S), язык, скорее всего, будет сообщаться как "He IL N/A עברית", поэтому он правильно использует he а не устаревший iw.
Если вы хотите полностью поддержать это, вы должны включить оба варианта для учета этих различий.
Ответ 2
Причина, по которой это происходит, заключается в том, что Android выполняет устаревшие локальные коды Java: иврит - это локаль IW - не HE. Измените его, и он, скорее всего, сработает. Надеюсь, это полезно для тех, кто находит этот вопрос...
Ответ 3
Возможно, ваш языковой стандарт телефона не настроен на использование иврита. В этом случае используется папка значений по умолчанию. Возможно, вам удастся удалить strings.xml(и все, что еще имеет имя, которое содержится в значениях-he) из папки, не содержащей иврита.