2013-07-24 2 views
7

Я создал каталог values-zh_CN в своей папке res для упрощенной китайской локализации. Eclipse не принимает это имя папки, он отмечает его как ошибку, сам каталог.Значения китайских локалей-zh_CN выдает ошибку на Eclipse

Проблема, безусловно, связана с именем каталога, если я меняю имя каталога на values-nl, например, ошибка отключается.

Единственное имя, которое принимает Eclipse, это values-zh-rCN, который компилируется отлично, но фактическая локаль не загружается (вместо этого загружается по умолчанию en).

ответ

8

Если вы назвали dir, например values-zh, он будет загружен только в том случае, если китайский язык выбран в настройках системного языка. Вы должны знать об этом.

Значение zh-rCN является правильным, и все должно работать правильно. Прочтите мое извещение выше.

+2

Значения-zh отлично работают, но мне нужно различать упрощенный китайский и традиционный китайский. Я попытался загрузить локаль вручную, используя Locale и getBaseContext(). GetResources(). UpdateConfiguration(). Но все же, если значения находятся в значениях-zh-rCN, они не загружаются. по какой-то причине они игнорируются. любая идея почему? – aviran

+0

Вы читали эту статью: http://stackoverflow.com/questions/2264874/changing-locale-within-the-app-itself? – TN888

+0

@aviran использовать zh_CN, если вы хотите загрузить содержимое zh_rCN, если вы установили локаль вручную. – steven0529

1

Правильные локали - zh-rCN и zh-rTW, поэтому любое программное обеспечение для Android, используемое вами, неправильно устанавливает языковые значения.

Зайдите в настройки -> Язык & Ввод, чтобы проверить, что Язык находится на китайском языке, и если это не удается найти на рынке для приложения под названием MoreLocales2, оно позволяет обойти некоторые из этих программных продуктов Samsung, которые предотвращают локализацию переход от работы.

+0

он даже не работает на эмуляторе ... – aviran

+3

Это неверно. Вы должны поместить свои китайские (традиционные) переводы в значения-zh, чтобы локали, отличные от zh-TW, по-прежнему получали традиционный китайский перевод. Если ваш пользователь имеет форму Macau (zh_MO) или Гонконг (zh_HK), и вы не включаете каталог значений-zh, вместо обычного китайского языка будет отображаться текст на английском языке. Поместите ваш упрощенный китайский перевод в значения-zh-rCN, потому что упрощенный китайский язык используется в меньшем количестве мест. –

+0

Пользователь попросил упрощенного и традиционного, который я предоставил. В OP не упоминалось об использовании 'values-zh' или чего-то подобного, поэтому спасибо за -1. –

9

Используйте следующий код, который он работает для меня для традиционного и упрощенного китайского языка.

if(selectedLanguage.equals("zh_CN")) 
    locale = Locale.SIMPLIFIED_CHINESE; 
else if(selectedLanguage.equals("zh_TW")) 
    locale = Locale.TRADITIONAL_CHINESE; 
else 
    locale = new Locale(selectedLanguage); 

Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
baseContext.getResources().updateConfiguration(config, baseContext.getResources().getDisplayMetrics()); 
+0

++++ @ Сунил Пармар спасибо! –