2012-07-16 27 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();