如何更改语言Google Map V2 android

时间:2014-04-04 12:48:28

标签: android google-maps google-play-services

我正在使用google-play-service-lib。如何更改Google地图的语言,即以korian语言或印地语显示位置。

4 个答案:

答案 0 :(得分:11)

您可以使用Locale对象更改使用Google Map API V2的Google地图的位置。但是,正在使用的设备需要支持该语言。

这是full list of supported languages

通过以下代码,我可以将地图上的语言更改为中文:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String languageToLoad = "zh_CN";
    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());

    setContentView(R.layout.activity_maps);

    setUpMapIfNeeded();

}

结果,在美国手机上的代码中设置为中文的语言(无手动更改):

Chinese Map

我也可以让它显示韩语,使用此语言环境代码:

 String languageToLoad = "ko_KR";

结果:

Korean Map

注意

此处列出了Google地图支持的语言: https://developers.google.com/maps/faq#languagesupport

答案 1 :(得分:3)

我们只需要更改应用程序中的位置,即可获得不同语言的Map描述。我们必须添加验证以避免使用已弃用的方法:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        String language= "hi"; //Hindi language!.
        Locale locale = new Locale(language);
        Locale.setDefault(locale);
        Configuration config = new Configuration();

        if(Build.VERSION.SDK_INT>Build.VERSION_CODES.JELLY_BEAN){
           config.setLocale(locale);
           getContext().createConfigurationContext(config);
        }else { //deprecated 
           config.locale = locale;
           getResources().updateConfiguration(config, getResources().getDisplayMetrics());
        }

...
...

...

非常重要的是,不支持所有语言,这是俄语的一个例子:

introducir la descripción de la imagen aquí

我们可以从以下网站获取代码语言:

https://www.transifex.com/explore/languages/

答案 2 :(得分:1)

只需更改设备上的区域设置即可。如果翻译可用,它们将自动显示。

我的美国手机的屏幕截图,其中语言区域已切换为韩语:

答案 3 :(得分:0)

希望这个更改地图语言的简单解决方案可以帮助某人:

只需在您的活动 setUpMapLocale() 中添加 call onCreate()

 private fun setUpMapLocale() {
        val languageToLoad = "iw_IL" // your desired language locale
        val locale = Locale(languageToLoad)
        Locale.setDefault(locale)
        baseContext.resources.configuration.setLocale(locale)
    }

所以我只需要对附加到 setLocale() 资源的现有配置调用 baseContext