如何以应用程序的默认语言设置 google api 对话框的文本

Posted

技术标签:

【中文标题】如何以应用程序的默认语言设置 google api 对话框的文本【英文标题】:How to set text of google api's dialog in application's default language 【发布时间】:2017-01-19 20:25:16 【问题描述】:

我已将我的应用程序的默认语言设置为印地语(即系统默认语言以外的语言)并使用 google 的 api(PlaceAutocomplete、GoogleSignIn)。

两者都以英语(系统默认语言)显示文本,而不是印地语或任何应用程序的默认语言。

有什么办法,我可以强制它们以应用程序的默认语言加载,或者我可以传递我的默认应用程序的语言。

谢谢。这真的很有帮助。正在寻找任何更新。

【问题讨论】:

看起来这可能无法使用本机 API,目前:***.com/questions/34321356/… 【参考方案1】:

你不能设置系统默认语言。如果你想提供多种语言。然后从Locale你可以设置语言。如果你改变了默认它的英文然后让它像这样。请检查以下代码。

SharedPreferences中选择语言并保存语言的值。每当启动应用程序后,检查语言首选项的值,然后选择它们。

确保每个字符串都应该以 this 的形式添加到 value 文件夹中。

对于默认英语,然后将所有字符串放入 values。对于印地语,您需要设置 values-hi。对于其他语言也会发生同样的情况,将字符串与国家代码一起放入。对于国家/地区代码,请从 here 获取。

 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(Context context,String lang)

    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;

谢谢,希望这将帮助您解决问题并清除您的概念。

【讨论】:

你没有明白我的问题。我已经做了这些。需要知道,如何根据我的应用语言使这些 google api 本地化。

以上是关于如何以应用程序的默认语言设置 google api 对话框的文本的主要内容,如果未能解决你的问题,请参考以下文章

c语言程序如何设置默认路径

Google Maps Api v3:如何更改方向(设置)面板中的默认航点标记?

如何设置我的纬度和经度以使用 Google Chrome 调试 Geolocation API?

我如何注册Google Classroom API的推送通知?

如何为 Google Places API 自动完成文本框设置默认值

如何使用 Google Maps Javascript API V3 在加载时设置 infoWindow 内容