首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择在android中以不同的语言查看文本?

选择在android中以不同的语言查看文本?
EN

Stack Overflow用户
提问于 2012-07-16 05:45:41
回答 2查看 1.3K关注 0票数 4

我正在开发一个应用程序,在这个应用程序中,我想给用户提供三种语言选项,比如英语、印地语和旁遮普语(区域语言)。

我想知道做这件事的最好方法是什么?我发现的一种方法是来制作英语、印地语和旁遮普语的三个不同的xml文件。然后解析这些xml文件。我已经知道如何用android显示旁遮普字体。但我必须在我的申请中使用4-5本书。所以那样看起来不合适。

还必须在我的应用程序中添加书签功能。那么,有谁能建议我用三种语言使用不同的书籍的最佳方法呢?书签特性的添加也很容易。

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2012-08-14 18:38:50

将每个版本存储为原始资源(在/res/ raw中)。把它拿出来

代码语言:javascript
运行
复制
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();
}

像这样叫:

代码语言:javascript
运行
复制
Resources resources = context.getResources();
String text = Utilities.getRawFile(R.raw.test_response, resources));
票数 1
EN

Stack Overflow用户

发布于 2012-08-14 19:07:48

我相信最好的答案是遵循支持多种语言的android文档,这里是ISO 639-1码的列表,所以您的项目如下所示:

代码语言:javascript
运行
复制
MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-pa/
           strings.xml
       values-hi/
           strings.xml

然后,每个strings.xml对于每种语言都有不同的值。这将涵盖您的用户界面等内容。

然后,根据您的问题,如果这是某种读取器,您可以下载适合用户语言设置的xml文件/book。

代码语言:javascript
运行
复制
Locale.getDefault().getDisplayLanguage();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11498680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档