2017-05-29 98 views
0

我有下面的代碼,但只有幾種語言,葡萄牙語不是其中之一,如何纔有可能獲得葡萄牙語?獲取葡萄牙語 - Android

if(Locale.ENGLISH.equals(Locale.getDefault().getLanguage())){ 

} 
+0

你可以造出來。 https://docs.oracle.com/javase/tutorial/i18n/locale/create.html或者請參閱http://www.localeplanet.com/java/pt-PT/ –

回答

1

沒有保證這將工作,但值得一試。

巴西和葡萄牙是我知道的唯一國家,對不起

List<String> ptLocales = Arrays.asList("pt_BR", "pt_PT"); 
if(ptLocales.contains(Locale.getDefault().getLanguage())){ 

} 

http://www.localeplanet.com/java/

+0

謝謝,但它沒有工作 – Felipe

+0

我是不確定你的Locale.getDefault()返回什麼 –

1

採取試試這個(我使用泰語)爲自己有所有的字符串一個string.xml文件葡萄牙語enter image description here

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); 
     context.getResources().updateConfiguration(conf, context.getResources().getDisplayMetrics()); 
    } 

LocaleUtils.changeLocale(上下文,新的區域設置( 「日」));

1

這是葡萄牙的語言環境的列表

pt  Portuguese português 
pt_AO Portuguese (Angola) português (Angola) 
pt_BR Portuguese (Brazil) português (Brasil) Brazilian Portuguese 
pt_GW Portuguese (Guinea-Bissau) português (Guiné Bissau)  
pt_MZ Portuguese (Mozambique) português (Moçambique) 
pt_PT Portuguese (Portugal) português (Portugal) Iberian Portuguese 
pt_ST Portuguese (São Tomé and Príncipe) português (São Tomé e Príncipe) 

價值觀夾,只是右鍵 - >創造價值的資源文件

filename = strings.xml 
directory name = values-pt 

源代碼

這就是我要做的設置語言環境

LanguageLocalHelper.setLocale(this,"pt"); 

然後我用這個包裝類更改地區獲得更多信息國際IDS設置

public class LanguageLocalHelper { 

    public static void onCreate(Context context) { 
     String lang = getPersistedData(context, Locale.getDefault().getLanguage()); 
     setLocale(context, lang); 
    } 

    public static void onCreate(Context context, String defaultLanguage) { 
     String lang = getPersistedData(context, defaultLanguage); 
     setLocale(context, lang); 
    } 

    public static String getLanguage(Context context) { 
     return getPersistedData(context, Locale.getDefault().getLanguage()); 
    } 

    public static void setLocale(Context context, String language) { 
     persist(context, language); 
     updateResources(context, language); 
    } 

    private static String getPersistedData(Context context, String defaultLanguage) { 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
     return preferences.getString(Constant.LANGUAGE_LOCALE, defaultLanguage); 
    } 

    private static void persist(Context context, String language) { 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
     SharedPreferences.Editor editor = preferences.edit(); 

     editor.putString(Constant.LANGUAGE_LOCALE, language); 
     editor.apply(); 
    } 

    @SuppressLint("NewApi") 
    private static void updateResources(Context context, String language) { 
     Locale locale = new Locale(language); 
     Locale.setDefault(locale); 

     Resources resources = context.getResources(); 

     Configuration configuration = resources.getConfiguration(); 
     configuration.setLocale(locale); 
     resources.updateConfiguration(configuration,null); 
    } 
} 

..看看這裏Local