2013-02-21 91 views
0

我想用兩種語言編寫應用程序。當應用程序啓動時,將會有兩個按鈕:第一個用於語言X的按鈕,第二個用於英語。當我點擊其中一個語言按鈕時,應用程序應該以相應的語言開始。但我不知道該怎麼做。可能嗎?兩種語言的應用程序

+0

這是一個非常寬泛的問題。我建議你看看Android對[本地化]的支持(http://developer.android.com/guide/topics/resources/localization.html) – Blumer 2013-02-21 22:16:29

+0

這是可能的。如果你想知道如何 - 堆棧溢出的答案會太長。熟悉Android上的本地化技術。 – 2013-02-21 22:19:03

+1

是否有什麼特別的原因讓你在應用中爲用戶提供選擇,而不是使用他們已經在系統範圍內選擇的選項?最佳做法是使用他們用於手機其餘部分的語言,[Android提供了簡單的方法來實現這一點](http://developer.android.com/guide/topics/resources/localization.html)。 – 2013-02-21 22:22:59

回答

0

當你點擊一個按鈕,你可以設置該按鈕的setOnClickListener()

new Locale('languageCode'),然後重新初始化文本元素在正確的區域

0

這裏是我的方法在此,將重新呈現,對我來說容易做到。

使用語言作爲限定詞創建一組資源(繪圖,字符串,佈局,菜單等)。

當您的主要活動以兩個按鈕開始時,在您的按鈕的點擊偵聽器的回調方法中操縱那裏的語言環境,我認爲系統會根據您的語言限定符找出要使用的資源。

0

本地化總是有可能的,但Android平臺和智能手機的概念同樣適用於計算機。如果手機本身設置爲以某種語言顯示,則應用程序也應以該語言顯示。您作爲開發人員的工作是確保您的解決方案和編程符合Unicode規範,並處理您可能期望對某些語言可能唯一的適當字符。

1

改變你的應用程序的語言環境可以做如下:

private void setLocale(Locale locale) { 
    Locale.setDefault(locale); 
    Resources res = getContext().getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    android.content.res.Configuration conf = res.getConfiguration(); 
    conf.locale = locale; 
    res.updateConfiguration(conf, dm); 
} 

最重要的是,你當然需要在最低限度,提供本地化strings.xml

雖然沒有更多的細節,但我會問你爲什麼要這樣做。用戶應該從Android的設置中選擇語言,並且您的應用應該遵循設備的語言。這是自動發生的 - 系統將選擇您提供的資源符合語言的資源。

我不會嘗試發佈關於如何在此處提供本地化資源的指南。詳情請參閱Android documentation

0

如果你想有不同的languagas,你應該儘量爲你想要的每種語言使用不同的字符串。例如:

values/strings.xml 
values/strings-de.xml 
values/strings-sk.xml 
values/strings-pl.xml