在Android中使用不同语言的大型文本文件

时间:2013-04-11 08:00:09

标签: android multilingual

在我正在构建的应用程序中,我使用多种语言。通过添加新文件夹(例如:values-fr)并在其中添加新的strings.xml文件,可以轻松地将不同的语言添加到应用程序中。但是我需要添加相当大的文本文件(完整的文章)。这些文章也用不同的语言编写。将它们添加到我的应用程序的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

我会考虑使用res/raw-<qualifiers>作为资产的替代品。 raw文件夹可以存储任意文件 - 您猜对了 - 原始格式。例如,用法语和英语写的“Hello World”文章将存储在:

  • res/raw-fr
  • res/raw-en

然后可以通过在资源对象上调用openRawResource(int id)来打开原始资源,类似于它对其他资源(如drawable,string等)的工作方式。框架生成的id将采用熟悉的{{ {1}}(没有文件扩展名)。

使用这种方法的好处是,您可以充分利用Android的本地化系统,这意味着作为开发人员,您基本上不必担心任何这一点。您还可以轻松添加更多限定符以进一步过滤设备特征(例如屏幕大小,密度,平台版本等等 - see here for a full overview)。缺点是它在原始文件名/扩展名方面存在一些限制,并且不支持正确的文件夹/文件层次结构。

“更好”的方法(/ raw vs / assets)可能取决于项目的要求。

答案 1 :(得分:3)

我可能会使用资产 - 也就是说,创建 assets / data / fr / 并将 fr 文件存储在那里。请注意,资产需要显式提取 - 这可能是好的,因为您可以节省只安装了一组文章的内存。

另一种可能性是将所有内容放在http服务器上,从而使文章保持和访问其他人的问题:)。

顺便说一句,如果文件非常大,则必须在没有文件的情况下安装应用程序,然后再下载文章。 (对apk大小有限制。)