我正在开发多语言的Android应用程序。如何在Android Studio中使用指定语言启动App?
我想从指定语言的Android Studio运行按钮启动应用程序。 这可能吗?
我期待(在Xcode运行选项像应用程序语言)的任何选项。
我为什么要这样?
我想检查我的应用程序的布局和单词,但启动“设置应用程序”是恼人的。所以我正在寻找简单的方法来更改设备语言设置或Android Studio运行应用程序选项,可以指定每种运行语言。
谢谢。
我正在开发多语言的Android应用程序。如何在Android Studio中使用指定语言启动App?
我想从指定语言的Android Studio运行按钮启动应用程序。 这可能吗?
我期待(在Xcode运行选项像应用程序语言)的任何选项。
我想检查我的应用程序的布局和单词,但启动“设置应用程序”是恼人的。所以我正在寻找简单的方法来更改设备语言设置或Android Studio运行应用程序选项,可以指定每种运行语言。
谢谢。
这其实很简单。您只需要为语言标识符的字符串创建自定义资源目录,Android将自动选择正确的资源目录。
创建区域设置目录和资源文件添加支持更多的语言环境 ,创建内部RES /附加目录。每个目录的 名称应遵循以下格式:
-b + [+]例如, 值-B + ES /包含字符串资源的语言 码ES语言环境。类似地,mipmap-b + es + ES /包含语言代码和ES国家/地区代码的区域设置图标 。 Android在运行时根据设备 的区域设置加载适当的资源 。有关更多信息,请参阅提供替代资源。
确定要支持的语言环境后,请创建资源 子目录和文件。例如:
MyProject的/ RES/ 值/ 的strings.xml 值-B + ES/ 的strings.xml mip映射/ country_flag.png Mip映射B + ES + ES/ country_flag.png例如,以下是一些不同的资源文件针对不同的语言:
英文字符串(默认语言环境),/values/strings.xml:
的Hello World!西班牙语字符串(es locale),/values-es/strings.xml:
Hola Mundo!美国国旗图标(默认语言环境),/mipmap/country_flag.png:
用于 默认(EN_US)区域
西班牙的国旗图标美国图2.图标的标志的图标( es_ES区域设置),/mipmap-b+es+ES/country_flag.png:
西班牙国旗图标图3。用于es_ES图标区域设置
注意:您可以在任何资源类型使用的语言环境预选赛(或任何配置 预选赛),例如,如果您想为您的位图绘制的 本地化版本。有关更多信息,请参阅 本地化。
使用的资源在App
由于从Android的开发者页面:https://developer.android.com/training/basics/supporting-devices/languages.html
如果你不想让Android系统自动选择你的资源的语言,您可以以编程方式更改语言(不建议)。但是,你需要改变语言的每个活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String languageToLoad = "fa"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
//setContentView...
}
或者你通过ADB设置语言,如果它只是用于测试目的(但是通过设置大概是接近那么快,这个解决方案):
adb shell "setprop persist.sys.language en; setprop persist.sys.country CA; setprop ctl.restart zygote"
感谢您快速回复。但这不是我想要的答案。 我知道这个如何。 我有时想用英文/日文启动应用程序,而不使用Android设置应用程序。 – sekitaka
不清楚你的问题.....但无论如何,我编辑我的问题 –
通用文件/values/strings.xml
将在语言环境与您应用中的语言环境不匹配时使用。要创建语言环境,请参阅这些示例。
请注意,您必须为每种语言环境创建文件夹,例如德语为value-de
,然后在里面创建strings.xml
文件。
通用strings.xml
文件:
app/src/main/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" translatable="false">Spin The Bottle</string>
<string name="text_hint">Tap on screen to spin the bottle</string>
</resources>
对于阿拉伯语:
app/src/main/res/values-ar/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="text_hint">اضغط على الشاشة لتدور الزجاجة</string>
</resources>
对于德语:
app/src/main/res/values-de/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="text_hint">Tippen Sie auf den Bildschirm, um die Flasche zu drehen</string>
备注
<string>
内strings.xml
。translatable="false"
放在app_name
上,因为我希望我的应用程序名称在所有语言环境中都显示相同。app_name
不包含在除通用values
文件夹之外的任何其他语言环境中。
相关:http://stackoverflow.com/questions/21712205/change-device-language-via-adb –
哦这个链接非常相关。但我没有扎根... – sekitaka