2016-08-11 3 views
0

Я хочу настроить мое приложение на использование value-th \ string.xml (который у меня есть все строковое значение в тайском). Это то, что я буду делать. -app старт. проверьте язык значений sharepreference (в данном случае английский/тайский), если тай, я запустим тай. У меня есть эта функция, однако, я замечаю в Locale, у меня нет вариантов для тай.установить мое приложение на тайский язык

public static void updateLanguageResources(Context context, String language) { 
     Locale locale = new Locale(language); 
     Locale.setDefault(locale); 

     Resources resources = context.getResources(); 

     android.content.res.Configuration configuration = resources.getConfiguration(); 
     configuration.locale = locale; 

     resources.updateConfiguration(configuration, resources.getDisplayMetrics()); 



    } 

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

Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS); 
      startActivity(intent); 

Любые предложения приветствуются. Заранее спасибо.

+0

попробовать это демо: http://www.androidhive.info/2014/07/android-building-multi-language-supported-app/ –

+0

@Damini это то, что Намерение умысел = новый Intent (Настройки .ACTION_LOCALE_SETTINGS); startActivity (намерение); делает. Я могу изменить язык устройства на thai, однако это повлияет на все приложение в телефоне. Я только хочу, чтобы в моем приложении. – kggoh

+0

нашел это [ссылка] http://stackoverflow.com/questions/2264874/changing-locale-within-the-app-itself?rq=1 позвольте мне попробовать сначала – kggoh

ответ

0

Я нашел ответ на свой вопрос. Надеюсь, это может помочь другим в будущем.

первой необходимости подготовить значения \ string.xml (по умолчанию английский), второй язык значения-й \ string.xml

public static void changeLocale(Context context, Locale locale) { 
     Configuration conf = context.getResources().getConfiguration(); 
     conf.locale = locale; 
     Locale.setDefault(locale); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
      conf.setLayoutDirection(conf.locale); 
     } 

     System.out.println("changeLocale"); 
     context.getResources().updateConfiguration(conf, context.getResources().getDisplayMetrics()); 
    } 

затем вызвать функцию ... убедитесь, что файл для тайского языка -м

Utils.changeLocale(MyApplication.getInstance(), new Locale("th")); 
Смежные вопросы