我正在開發多語言的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