我正在使用google-play-service-lib
。如何更改谷歌地图的语言,即以韩语或印地语显示位置。
我正在使用google-play-service-lib
。如何更改谷歌地图的语言,即以韩语或印地语显示位置。
@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();
}
在美国的手机上,代码中将语言设置为中文(没有手动更改)的结果:
我也成功地让它显示了韩文,使用这个Locale代码:
String languageToLoad = "ko_KR";
结果:
注意
看起来Google Maps支持的语言在这里列出: https://developers.google.com/maps/faq#languagesupport
setContentView()
或任何其他类型的布局填充之前,务必先调用它。 - Daniel Nugent @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());
}
...
...
需要强调的是并不支持所有语言,以下是俄语的示例:
我们可以从以下网址获取编码语言:
只需在设备上更改语言环境。如果有可用的翻译,它们将自动显示。
美国手机语言环境切换为韩语的屏幕截图:
private fun setUpMapLocale() {
val languageToLoad = "iw_IL" // your desired language locale
val locale = Locale(languageToLoad)
Locale.setDefault(locale)
baseContext.resources.configuration.setLocale(locale)
}
baseContext
资源的现有配置上调用setLocale()
。现在有了新的Google地图渲染支持,你可以得到这个,只需要按照几个步骤操作:
更新Google地图依赖项
implementation 'com.google.android.gms:play-services-maps:18.1.0'
创建一个扩展应用程序的新类,并初始化一个新的地图渲染器。
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
MapsInitializer.initialize(
applicationContext,
MapsInitializer.Renderer.LATEST,
object : OnMapsSdkInitializedCallback {
override fun onMapsSdkInitialized(p0: MapsInitializer.Renderer) {
Log.e("MapsInitializer", p0.name)
}
})
}
}
在清单中注册MyApplication类。
<application
android:name="com.extra.MyApplication"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme">