2012-07-16 33 views
4

我正在研究一個應用程序,我想給用戶提供三種語言選項,如英語,印地語和旁遮普語(區域語言)。選項在android中查看不同語言的文本?

我想知道什麼是最好的方法來做到這一點?我找到的一種方法是來製作英語,印地語和旁遮普語的三個不同的xml文件。然後解析這些xml文件。我已經知道如何在android中顯示旁遮普語字體。但我必須在我的應用程序中使用4-5本書。這樣看起來不合適。

此外,我必須在我的應用程序中添加書籤功能。因此,任何人都可以建議我以三種語言使用不同書籍的最佳方式,因爲書籤功能的添加也很容易。

任何幫助表示讚賞。

+0

Stackoverflow不是研究助理,請發佈您遇到的具體**編程相關的**問題。 – JoxTraex 2012-07-16 05:47:39

+0

好的,我會編輯我的問題@JoxTraex – 2012-07-16 05:48:23

+0

看看你是否可以使用谷歌翻譯API,如果它正在工作,那麼它很容易與翻譯API實現,你也可以使用谷歌翻譯應用程序。 http://stackoverflow.com/questions/2325547/how-to-have-a-translation-service-in-android-app – 2012-07-16 06:01:58

回答

1

將每個版本存儲爲原始資源(in/res/raw)。把它弄出來與

public static String getRawFile(int resourceId, Resources resources) { 

    Writer writer; 

    try { 
     InputStream is = resources.openRawResource(resourceId); 
     writer = new StringWriter(); 
     char[] buffer = new char[BUFFER_SIZE]; 
     try { 
      Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
      int n; 
      while ((n = reader.read(buffer)) != -1) { 
       writer.write(buffer, 0, n); 
      } 
     } finally { 
      is.close(); 
     } 
    } catch (Exception ex) { 
     Log.e(TAG, "Unable to read raw resource!", ex); 
     return null; 
    } 

    return writer.toString(); 
} 

這樣調用:

Resources resources = context.getResources(); 
String text = Utilities.getRawFile(R.raw.test_response, resources)); 
1

我認爲最好的答案是遵循supporting multiple languages這裏的Android文檔是ISO 639-1 Codes列表中,這樣你的項目將是這個樣子:

MyProject/ 
    res/ 
     values/ 
      strings.xml 
     values-es/ 
      strings.xml 
     values-pa/ 
      strings.xml 
     values-hi/ 
      strings.xml 

然後每個strings.xml會爲每種語言設置不同的值。這將涵蓋您的用戶界面和類似的東西。

然後根據你的問題,如果這是某種類型的讀者,你可以下載適合用戶語言設置的xml文件/書籍。

Locale.getDefault().getDisplayLanguage();