是否可以在使用Android资源的同时以编程方式更改应用程序的语言?
如果没有,是否可以请求特定语言的资源?
我想让用户从应用程序更改应用程序的语言.
可能重复:
在Android中以编程方式更改语言
我是Android新手.在我的应用程序中,用户可以选择三种语言的语言.根据用户选择的语言,应该更改整个应用程序的语言.我怎样才能做到这一点?
我需要从国家/地区代码中获取完整的国家/地区名称.例如荷兰,我需要the Netherlands来自国家代码NL.
我以为我可以这样做Locale:
Locale loc = new Locale("NL");
loc.getCountry();
Run Code Online (Sandbox Code Playgroud)
但是loc.getCountry();空的.
请问有关怎么做的想法?提前致谢!
我有一个语言代码列表(如"en","es"......)我需要用这样的语言显示:
English
Español
Français
Deutsch
???
Run Code Online (Sandbox Code Playgroud)
是否有任何内置的API可以在Android中获取这些API,或者我应该自己映射它们?
什么是Android资源中希伯来语的语言环境代码,如字符串(values-XX)?哪里可以找到其他代码?
提前致谢.
我在用google-play-service-lib.如何更改Google地图的语言,即以korian语言或印地语显示位置.
如果要在Android中添加特定于语言环境的资源,则必须将该语言的小写ISO-3166-1代码添加到资源文件夹的名称中.到现在为止还挺好.
现在我想在我的应用程序中添加加泰罗尼亚语和巴斯克语字符串.根据ISO列表,我将不得不添加values-ca和values-eu.但这会有效吗?
编辑:使用应用程序中的自定义语言选择器,即使语言不在设备的设置菜单中,也可以为语言提供支持.我已经在GitHub上创建了我用的库:https: //github.com/delight-im/Android-Languages
我不知道Android是否支持所有ISO代码,是否会显示这些"次要"语言.如果Android没有这些语言版本,那么该设备可能甚至不会将此语言识别为其默认语言环境,而只是es用于西班牙语.
有人可以帮忙吗?
我有一个支持葡萄牙语的应用程序,包括葡萄牙和巴西地区.我创建了一个values-pt(包含葡萄牙语翻译)和values-pt-rBR(包含巴西语翻译).然后我尝试将应用程序语言更改为Potuguese(Portugal),并且应用程序语言正确更改.当我把它设置为葡萄牙语(巴西)时,它没有.我尝试将手机默认语言更改为葡萄牙语(巴西语),但仍然无效.它适用于葡萄牙语(葡萄牙)两种情况(编程和系统).有谁知道问题是什么?以编程方式更改应用程序的语言环境的代码如下:
Locale locale = new Locale(strLocale);
Locale.setDefault(locale);
config.locale = locale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)
对于葡萄牙语和巴西语,strLocale分别设置为"pt"或"pt_BR".
我正在阅读新Android N预览的更改日志.locales有一些有趣的东西:
除了多语言环境支持,Android N还扩展了用户可用的语言范围.它为英语,西班牙语,法语和阿拉伯语等常用语言提供了超过25种变体.它还增加了对100多种新语言的部分支持.
资料来源:https://developer.android.com/preview/api-overview.html#multi-locale_languages
你们找到了这100种新语言的清单吗?
实际上,我需要读取一个utf8格式的字符串,但它的字符使用可变长度编码,所以我有问题将它们编码为字符串,打印时我得到奇怪的字符,字符似乎是韩文这是我使用的代码,但没有结果:
public static String byteToUTF8(byte[] bytes) {
try {
return (new String(bytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Charset UTF8_CHARSET = Charset.forName("UTF-8");
return new String(bytes, UTF8_CHARSET);
}
Run Code Online (Sandbox Code Playgroud)
我也使用了UTF-16并获得了更好的结果,但是它给了我奇怪的字符,根据上面提供的文档,我应该使用utf8.
在此先感谢您的帮助.
编辑:
android ×9
locale ×5
java ×2
localization ×2
resources ×2
bluetooth ×1
encoding ×1
google-maps ×1
utf-8 ×1