我想用英语和本地语言显示位置名称,例如android中的Maps应用程序显示。
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private final static String TAG = MapsActivity.class.getSimpleName();
private GoogleMap mMap;
private SupportMapFragment mapFragment;
private String language = "bn";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
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());
}
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng dhaka = new LatLng(23.8103, 90.4125);
mMap.addMarker(new MarkerOptions().position(dhaka));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(dhaka,10f));
}
}
但是当我运行此代码时,地图中的所有位置名称都是英文。但是我想要这样的输出
here,位置名称同时使用英语和孟加拉语。
答案 0 :(得分:1)
您需要使用所需的Locale
添加新配置。
检出this
答案 1 :(得分:0)
关于本地化Google Map SDK的方法,没有确定的方法,目前还没有可以调用的类或引用来更改Google Maps SDK的语言,因此Map的本地化是目前仅适用于Maps Javascript API,作为解决方法,您可以在Android设备的Settings
中更改设备的语言,因为这会影响地图中的结果。但是,这并不总是适用于每个地方。希望这可以帮助。
如果您希望拥有可以显着影响Android Maps SDK的功能,建议您向Google Issue Tracker提出功能请求,以便他们的工程师检查您的可行性。请求。