2017-04-12 179 views
3

我正在开发多语言的Android应用程序。如何在Android Studio中使用指定语言启动App?

我想从指定语言的Android Studio运行按钮启动应用程序。 这可能吗?

我期待(在Xcode运行选项像应用程序语言)的任何选项。

我为什么要这样?

我想检查我的应用程序的布局和单词,但启动“设置应用程序”是恼人的。所以我正在寻找简单的方法来更改设备语言设置或Android Studio运行应用程序选项,可以指定每种运行语言。

谢谢。

+0

相关:http://stackoverflow.com/questions/21712205/change-device-language-via-adb –

+0

哦这个链接非常相​​关。但我没有扎根... – sekitaka

回答

-1

这其实很简单。您只需要为语言标识符的字符串创建自定义资源目录,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" 
+0

感谢您快速回复。但这不是我想要的答案。 我知道这个如何。 我有时想用英文/日文启动应用程序,而不使用Android设置应用程序。 – sekitaka

+0

不清楚你的问题.....但无论如何,我编辑我的问题 –

-1

通用文件/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> 

备注

  1. 没有必要翻译每<string>strings.xml
  2. 注意我已将translatable="false"放在app_name上,因为我希望我的应用程序名称在所有语言环境中都显示相同。
  3. 另外app_name不包含在除通用values文件夹之外的任何其他语言环境中。
相关问题