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

2023-12-08

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


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

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

然后可以通过调用打开原始资源openRawResource(int id)在资源对象上,类似于它对其他资源(如可绘制对象、字符串等)的工作方式。框架生成的 id 将采用熟悉的格式R.raw.filename(没有文件扩展名)。

使用这种方法的好处是您可以充分利用 Android 的本地化系统,这意味着作为开发人员您基本上不必担心任何这些问题。您还可以轻松添加更多限定符以进一步过滤设备特征(例如屏幕尺寸、密度、平台版本等)请参阅此处了解完整概述)。缺点是它对原始文件名/扩展名施加了一些限制,并且不支持正确的文件夹/文件层次结构。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 如何从单个数据框中创建多个具有不同内容的 PDF?

    Problem 我想从一个数据框中编织多个 PDF 因此我尝试了各种解决方案 但我对 R R Studio LaTex knitr 的了解非常有限 所以我无法适应一些解决方案方法 最后自己尝试了 我实际上认为我的代码绝对不是你实际用来实现我
  • Google Analytics for Shiny 仪表板应用程序

    我有一个整理良好的 R闪亮 shinydashboard 应用程序 在服务器上运行 我希望能够跟踪它的使用情况 并知道谷歌分析是一个很好的解决方案 但我在设置它时遇到了问题 我尝试按照此处描述的说明进行操作https shiny rstud
  • Shiny 中的多个下拉底部作为数据过滤器

    我想在 Shiny 中应用多个下拉底部作为数据过滤器 我找到了下面的例子 本例中加载固定数据 即mpg from ggplot2 但我想首先动态读取输入文件 然后将下拉选项应用为过滤器 因此我更改了代码 GUI fluidPage titl
  • 通过 raw.githubusercontent.com 访问 git LFS 文件下载

    我最近将我的存储库中的视频从 480p 升级到了 720p 为此 我必须使用 git LFS 因为 720p 视频超过 100 MB 这是 Github 对文件存储的限制 升级之前 我可以通过类似以下的链接下载视频 https raw gi
  • 通过 ADB 发送带有字符串附加内容的启动 Activity 的意图

    我想看看是否可以模拟从斑马线扫描仪扫描的条形码 并将该扫描广播到我们内置有扫描仪存储库的应用程序之一 我一直在尝试使用 adb 广播 如下所示 adb shell am broadcast a com package app ACTION
  • XPath - 如何从一个文本节点中提取文本的特定部分

    我只想从 td 中提取文本的一部分 例如 FLAC 使用 XPath 如何完成 我尝试过 text contains FLAC 但它返回了整个文本 tr td class left Format plik w td td AVI FLV R
  • 尝试定义 1,024 位(128 字节)位字段时出错

    我想定义一个大的位字段 以便快速监视非常大的元素结构的状态 这是我到目前为止所拥有的 define TOTAL ELEMENTS 1021 typedef struct UINT1024 tag UINT8 byte 128 UINT102
  • gnuplot:传感器故障有时读数为 0.00 - 如何将它们转换为缺失?

    我有一个 RPi Arduino 组合 可以从多个 DHT 22 湿度 温度传感器获取读数 其中一个传感器的电线松动 并且连续 10 20 分钟偶尔给出 0 00 的温度读数 由于同时收集了其他数据 我实际上无法选择删除整行数据 就像它是唯
  • 为什么我收到:错误:“HTTP 请求响应断言:测试失败:文本预计包含 /302/”

    08 nov 608 nov 508 nov 408 nov 308 nov 1 08 nov 2 为什么我得到 HTTP 请求响应断言 测试失败 文本预计在 断言结果 中包含 302 错误 这是因为您没有在断言中检查正确的 要测试的字段
  • 如何从数组中获取下一个N个元素?

    需要一个函数 它返回给定数组中的下一个 N 个元素 具有给定的偏移量 但是当偏移量大于数组长度时 它必须返回数组开头的元素 界面 slice2 array chunk offset 例子 var array 1 2 3 4 5 slice2
  • wcstombs:字符编码?

    厕所坟墓文档说 它 将宽字符代码序列转换为多字节字符串 但它从来没有说什么是 宽字符 它是隐式的 比如它将 utf 16 转换为 utf 8 或者转换是由某个环境变量定义的 wcstombs 的典型用例是什么 您使用setlocale 标准
  • 无法将 BLOB 转换为字符串

    在我的代码中 用户应该添加产品的详细信息 包括名称 图像 类别和其他详细信息 但输入数据并保存后 却无法查看自己输入的数据 相反 它显示 无法将 BLOB 转换为字符串 我用于添加数据的编码 items Item new items db
  • Quartz:如何使用 org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin 重新加载作业和触发器?

    我想在我的小而简单的网络应用程序中使用quartz Quartz 2 1 6 和 tomcat 7 0 22 我想更改触发器 cron 表达式而不重新启动我的应用程序 我将作业放入 xml 文件中quartz jobs xml并设置XMLS
  • 在不知情的情况下恢复 Couchbase 密码

    我正在研究一个mac 下载了 mac 社区版 启动应用程序 并打开管理控制台 到目前为止一切顺利 直到我退出 现在我无法再次登录 因为我从来不需要设置密码 它可能已经在以前的版本上设置了一段时间 但我不确定 重装了也没用 我总是被弹回到登录
  • 通过代码配置 RavenDB 版本控制

    是否可以通过代码在新的 RavenDB 数据库上配置版本控制 我正在使用以下代码 基于http ravendb net docs 2 0 server extending bundles versioning Store DatabaseC
  • .htaccess ,如何将任何 .jpg 页面重定向到其附件页面 (HTML)

    我想重定向 www domain com images Apple jpg to www domain com Apple html 这是实时工作示例 这正是我想要的 http more sky com data out 2 IMG 213
  • Jquery 前置点击处理程序

    如果您知道更好的方法 请告诉我 对了 我有一个页面 其中包含很多按钮 图表和表格 我读过有关停止事件传播的内容 这就是我将要使用的内容 我想启用某些元素的帮助 我有一个复选框可以更改启用帮助的 div 上的光标 我想要做的是在正常的点击行为
  • 为 Secure Gateway 的 Bluemix 应用程序创建 IP 表规则

    Bluemix 文档中有关于安全网关服务的新部分 为 Bluemix 应用程序创建 IP 表规则 不幸的是我不明白我应该做什么 例如文本显示以这种形式进行 API 调用 PUT v1 sgconfig
  • 有没有办法禁用Extjs中模型的“idProperty”?

    我有一个简单的模型 代理 当我创建一个模型对象通过 REST 发送到服务器时 ExtJs 生成 Id 并将其值放入我的 id 字段中 这与我的数据冲突 有什么办法可以阻止这种行为或解决这个问题吗 我读过了idProperty Sencha
  • 在 Android 中使用不同语言的大型文本文件

    在我正在构建的应用程序中 我使用多种语言 通过添加新文件夹 例如 values fr 并在其中添加新的 strings xml 文件 可以轻松地将不同的语言添加到应用程序中 但我有相当大的文本文件 完整的文章 需要添加 这些文章也是用不同的