2017-04-12 30 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文件夾之外的任何其他語言環境中。
相關問題