CyanogenMod: перевести проект

Я перевел проект в CyanogenMod (приложение электронной почты) на иврит, добавив папку values ​​и скомпилировал весь репозиторий (make). Я убедился, что полный файл make включает язык иврит.

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

Есть идеи, пожалуйста?

РЕДАКТИРОВАТЬ: Опять же, мой телефон поддерживает иврит - как видно из других приложений, которые переключают языковой стандарт в соответствии со значениями содержимого папки. Это просто для приложения электронной почты не работает.


person Erez A. Korn    schedule 22.02.2011    source источник


Ответы (3)


Согласно ISO 639, он - правильный код ISO 639-1 для иврита. Принимая во внимание, что iw устарел еще в 1989. Причина, по которой некоторые устройства Android используют iw, заключается в том, что благодаря Sun вы можете прочтите подробности.

Такие устройства, как Nexus S, продаваемые в США, используют iw. Если вы поедете в Израиль и проверите регион на телефоне, который там продается (например, Galaxy S), язык, скорее всего, будет указан как «He IL N / A עברית», поэтому здесь правильно используется he а не устаревший iw.

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

person Error 454    schedule 12.12.2011
comment
есть ли способ избежать дублирования файлов, связав одну папку с другой? или поддержка более одного языка в папке values? - person thepoosh; 15.08.2013
comment
Цените ваш ответ действительно полезным - person PankajAndroid; 25.05.2015
comment
Я думаю, что начиная с какой-то версии Android все используют iw вместо he. Даже среда IDE начала советовать использовать вместо этого iw. Вы знаете, с какой версии Android он начался? - person android developer; 28.08.2019
comment
Я попытался создать символическую ссылку с values-iw на values-he, и, похоже, это сработало. Я что-то упускаю? - person haggai_e; 12.10.2019

Причина, по которой это происходит, заключается в том, что Android следует устаревшим локальным кодам Java: иврит - это локаль IW, а не HE. Измените его, и, скорее всего, он сработает. Надеюсь, это будет полезно для тех, кто найдет этот вопрос ...

person Yossi    schedule 28.06.2011

Возможно, языковой стандарт вашего телефона не настроен на использование иврита. В этом случае используется папка значений по умолчанию. Возможно, вам удастся удалить strings.xml (и все, что имеет имя, которое содержится в values-he) из папки значений, отличных от иврита.

person Jon Willis    schedule 22.02.2011
comment
Я вручную настроил свой телефон на языковой стандарт иврита, используя параметр меню «Установить язык». Я знаю, что он установлен правильно, потому что строки приложения ADW написаны на иврите. Однако это не работает для электронной почты или других приложений. - person Erez A. Korn; 22.02.2011
comment
Попробуйте удалить все остальные values-XX папки, кроме того, убедитесь, что вы не удаляете 'colors.xml', 'donottranslate.xml' или аналогичные файлы в папке значений по умолчанию. Просто удали strings.xml. - person Jon Willis; 22.02.2011
comment
Я не хочу делать приложение эксклюзивным на иврите :-) - person Erez A. Korn; 22.02.2011