使用Localization更改android中的语言

时间:2013-07-17 04:15:59

标签: android localization

我需要在我的应用中更改标签的本地化。我为英语和印地语创建了两个字符串文件夹。当我更改本地化时,它工作正常,所有标签显示在印地文。

private void setLanguage(Boolean changeLang) {
    if (changeLang) {
        Locale.setDefault(new Locale("hi", "IN"));
        Configuration config = new Configuration();
        config = viewDashboard.getBaseContext().getResources().getConfiguration();
        config.locale = new Locale("hi", "IN");
        viewDashboard
                .getBaseContext()
                .getResources()
                .updateConfiguration(
                        config,
                        viewDashboard.getBaseContext().getResources()
                                .getDisplayMetrics());

    } else {
        Locale.setDefault(new Locale("en", "EN"));
        Configuration config = new Configuration();
        config = viewDashboard.getBaseContext().getResources().getConfiguration();
        config.locale = new Locale("en", "EN");
        viewDashboard
                .getBaseContext()
                .getResources()
                .updateConfiguration(
                        config,
                        viewDashboard.getBaseContext().getResources()
                                .getDisplayMetrics());

    }
}

但它也将日期选择器语言改为印地语,我不需要。 同样地,很少有文本视图也显示印地语字体,即我从日期选择器设置日期或显示计算后的总金额和对话框'确定'和'取消'转换为我不想要的印地语。 我的问题是如何在以编程方式更改本地化后防止日期选择器和对话框按钮标签转换为印地语。

1 个答案:

答案 0 :(得分:0)

我已经这样做了,我认为这对你来说是完全有用的。只需将两个参数传递给这个方法,一个是语言,另一个是你调用这个方法的活动。

public static void setLocale(String language, Activity activity)
{
    Locale locale= new Locale(language);
    Locale.setDefault(locale);

    Configuration config = new Configuration();
    config.locale = locale;

    thisActivity = activity;

    thisActivity.getBaseContext().getResources().updateConfiguration(config, thisActivity.getBaseContext().getResources().getDisplayMetrics());
}