2016-03-07 4 views
0

Я разрабатываю приложение, которое поддерживает три языкаANDROID: упрощенный китайский и традиционный китайский | Изменение языка внутри приложения

  1. Английский
  2. упрощенный китайский
  3. Традиционный китайский

    для этого я создал две дополнительные папки внутри папки Рез:

    • значения-zh-rCH (для упрощенного китайского)
    • значения-ж-RTW (для традиционной китайской)
    • быть по умолчанию значения для английского языка

Я использую ниже функции для изменения языков `

public void setLocale(String lang) { 
     Locale myLocale = new Locale(lang); 

     Resources res = getResources(); 

     DisplayMetrics dm = res.getDisplayMetrics(); 

     Configuration conf = res.getConfiguration(); 

     conf.locale = myLocale; 

     res.updateConfiguration(conf, dm); 

     Intent refresh = new Intent(this, StartMenuActivity.class); 

     finish(); 

     startActivity(refresh);` 

    } 

и Я перехожу ниже значений к функции

  • ан
  • zh_CN
  • zh_TW

я также попытался ниже значения

  • ан
  • zh_rCN
  • zh_rTW

но не работает. в чем проблема ? может ли кто-нибудь предложить мне?

Для целей тестирования я создал значение-ZH папки и передал ж к Setlocale в этом случае языке изменяется.

Что это не работает с традиционными и упрощенными китайцами?

+0

Любых решений, которые вы получили по этому вопросу ?, я тоже сталкиваюсь с теми же проблемами? – Brjv

+0

@Brjv, см. Ответ ниже, я только что отправил ответ. Пожалуйста, проголосуйте за вопрос и ответьте. если это поможет вам. благодаря! –

ответ

1

Вы можете использовать ниже фрагмент кода, чтобы решить вашу проблему

public void setLocale(String lang) { 
    Locale myLocale; 
    if (lang.equals("zh_CN")) { 
     myLocale = Locale.SIMPLIFIED_CHINESE; 
    } else if (lang.equals("zh_TW")) { 
     myLocale = Locale.TRADITIONAL_CHINESE; 
    } else { 
     myLocale = new Locale(lang); 
    } 

    Locale.setDefault(myLocale); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
} 
Смежные вопросы