2015-08-12 7 views
0

В многоязычном приложении, когда я использую язык по умолчанию (на английском языке), он извлекает файл strings.xml из папки по умолчанию (res/values). В то время как для канадского английского языка он также используется из той же папки (res/values). Согласно стандарту Android, он должен забрать из соответствующей папки (res/values-en-rCA).Язык Android: настройка языкового стандарта для канадского английского и обычного английского

Я не знаю, где я иду не так. Будет ли это соответствовать языку устройства?

код Locale используется:

Английский - ан

английский/Канада - en_CA

ответ

1
You need to set the locale in order to load the proper resources. 


DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics(); 
Configuration configuration = new Configuration(); 
Locale locale = new Locale("en_CA"); 
configuration.locale = locale; 
Locale.setDefault(locale); 
res.updateConfiguration(configuration, metrics); 
+0

Я использую только один и тот же код. Даже если я тоже так поступил. Локаль преобразует код (en_CA) в нижний регистр, например, en_ca. У меня много мероприятий. Я не могу изменить во всех этих классах. Есть ли другой путь ? –

+1

попробуйте изменить Locale locale = new Locale ("en_CA"); to Locale locale = Locale.CANADA; – Vlade087

+0

Любое обновление по этому вопросу? – Vlade087