将我的应用程序设置为泰语

时间:2016-08-11 08:34:19

标签: android locale

我希望将我的应用设置为使用value-th \ string.xml(我拥有泰语中的所有字符串值)。这就是我要做的。 -app开始。检查共享偏好值语言(在这种情况下是英语/泰语)如果是泰语,我将运行泰语。我有这个功能,但是,我注意到在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);

欢迎任何建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了自己问题的答案。希望这可能在将来帮助其他人。

首先需要准备一个values \ string.xml(默认英文),第二语言值-th \ 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());
    }

然后调用函数...确保泰语的文件是-th

Utils.changeLocale(MyApplication.getInstance(), new Locale("th"));