2017-05-29 97 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