Как установить текст диалога Google API на язык приложения по умолчанию

Я установил язык своего приложения по умолчанию на хинди (т. е. отличный от языка системы по умолчанию) и использовал API Google (PlaceAutocomplete, GoogleSignIn).

Оба показывают текст на английском языке (язык системы по умолчанию), а не на хинди или любом другом языке приложения по умолчанию.

Есть ли способ заставить их загружать язык приложения по умолчанию, или я могу передать язык моего приложения по умолчанию.

Спасибо. Это было бы очень полезно. Ищу любое обновление.


person UMESH0492    schedule 12.09.2016    source источник
comment
Похоже, что в настоящее время это может быть невозможно с собственным API: stackoverflow.com/questions/34321356/   -  person Demonsoul    schedule 22.09.2016


Ответы (1)


вы не можете установить язык системы по умолчанию. Если вы хотите указать несколько языков. Затем из Locale вы можете установить язык. По умолчанию это английский, если вы изменили, сделайте его таким, как этот. Пожалуйста, проверьте ниже код.

Выбор языка и сохранение значения языка в SharedPreferences. После каждого запуска приложения проверяйте значение языковых настроек, а затем выбирайте их.

Убедитесь, что все строки должны быть добавлены в папку значений в виде этого.

Для английского по умолчанию поместите все строки в values. Для хинди вам нужно установить values-hi. То же самое произойдет и для другого языка, поместите свою строку с кодом страны. Для кода страны перейдите здесь.

 SharedPreferences sharedPreferences = getSharedPreferences(Common.MYPREFERENCE_LANGUAGE, Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
            if (parent.getSelectedItem().equals("English")) {
                Utils.updateLanguage(activity, "en");
                editor.putString("language", "en");

            } else {
                Utils.updateLanguage(activity, "hi");
                editor.putString("language", "hi");
            }
            editor.apply();

public static void updateLanguage (контекстный контекст, язык строки) {

    String mlanguage = getlanguage(lang);
    PurplkiteLogs.logError("", " language update " + mlanguage);
    Locale locale = null;
    Configuration config;

    try {
        if (mlanguage.equals("en")) {
            locale = Locale.ENGLISH;

        } else if (mlanguage.equals("hi")) {
             locale = setLocale(context,"hi");

        } else {
            locale = new Locale(mlanguage);
        }

        Locale.setDefault(locale);
        config = new Configuration();
        config.locale = locale;
        context.getResources().updateConfiguration(config,
                context.getResources().getDisplayMetrics());
    } catch (Exception e) {

    } finally {
        mlanguage = null;
        config = null;
        locale = null;
        context = null;
    }
}

private static String getlanguage(String lang) {
    String mlang = null;
    if (lang != null) {
        if (lang.trim().equalsIgnoreCase("hi")) {
            mlang = "hi";
        } else {
            mlang = "en";
        }
    }
    return mlang;
}

public static Locale setLocale(Context context ,String lang ) {
    Locale myLocale = new Locale(lang);
    Resources res = context.getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
    return conf.locale;
}

Спасибо, надеюсь, это поможет вам решить вашу проблему и прояснить вашу концепцию.

person Saveen    schedule 20.09.2016
comment
Вы не поняли мой вопрос ясно. Я уже сделал это. Нужно знать, как сделать эти Google API локализованными на основе языка моего приложения. - person UMESH0492; 22.09.2016