2011-03-07 81 views
3

我開發一個Android應用程序,Android應用程序的語言變化

在該應用程序我需要使用5種語言,

應用程序讓用戶選擇不同的語言。根據用戶選擇語言

爲什麼我要做的?

給我這個任何建議.....

回答

0

您可以提供本地化。請參考site

+0

是的馬修我明白了。但是當我們使用50種語言時,它會佔用更多的尺寸。在那個時候我們必須創建50個不同的string.xml文件,我們必須爲每種語言創建不同的可繪製文件夾,這是不可行的解決方案,當我們想使用更多的語言 – dilipkaklotar 2011-03-07 09:39:09

+0

好吧..將不得不搜索然後..在你的問題,它是5種語言.. :) – Mathew 2011-03-07 09:51:35

+0

你可以給我這個樣本代碼,如果可能 – dilipkaklotar 2011-03-07 11:56:49

0

我覺得你應該去在你的應用程序菜單,以改變(即選擇)的語言。

單擊該菜單按鈕時,您將更改該特定語言的相應strings.xml。

對於此請參閱我的回答以下thread。我認爲菜單是最好的選擇。

+0

你有一個小的應用程序代碼,這將幫助我解決這個問題 – dilipkaklotar 2011-03-07 11:56:24

1

這很容易做..例如使用微調選擇一種語言。請看下面的代碼...

public void onCreate(Bundle savedInstanceState) { 

    mTts = new TextToSpeech(this, new TextToSpeech.OnInitListener() { 
} 
      public void onInit(int status) { 
       if (status != TextToSpeech.ERROR) { 
        ttsIsInit = true; 
       } 
      } 
     }); 


read.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       if (mTts != null && ttsIsInit) { 
        mTts.speak(exitTextFound, TextToSpeech.QUEUE_FLUSH, null); 
       } 
      } 
     }); 


public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 

     language = language_array[spinner.getSelectedItemPosition()]; 

     if (language.equals("English US")) { 
      mTts.setLanguage(Locale.US); 
     } else if (language.equals("Francais")) { 
      mTts.setLanguage(Locale.FRANCE); 
     } else if (language.equals("Espanol")) { 
      mTts.setLanguage(new Locale("es")); 
     } 
    } 
+0

這是工作的文字sppech,好的,但寫什麼文字? – ocramot 2015-04-30 13:36:29

0

我遇到了同樣的問題:我需要我的語言設置爲我的應用程序選擇的語言。

我的修復是這樣的:

  1. 保持你的字符串在XML文件中,不要將其解壓到資源
  2. 讓XML的精確副本,並改名爲_languagecode,像 _fr(使用小寫!)
  3. 解決您的翻譯在你的XML副本
  4. 在代碼中,您瞭解您的應用層次的語言和膨脹相關 XML

例子:

String languageInitials = MyAppconfig.currentLanguageInitials(); 
     if (languageInitials.equals("NL")) { 
      view = inflater.inflate(R.layout.mylayout_nl, container, false); 
     } else { 
      view = inflater.inflate(R.layout.fragment_mylayout_fr, container, false); 
     } 

從這些XML的,你仍然可以提取所需的字符串資源。