android - 存储 diff 的数据。语
问题描述
我是安卓新手。我正在计划多种语言的测验应用程序。所有语言的图片都相同,但有问题、答案和添加。信息会有所不同。每种语言可以是 300 - 500 个句子。
我应该在 diff 目录中使用字符串 res 来表示不同的语言还是存在更好的方法?SQL之类的?
解决方案
您可以使用资源文件夹中的 string.xml 文件来执行此操作。为每种语言(values-en、values-es 等)创建不同的文件夹,并在这些文件夹中添加带有文本资源的 strings.xml 文件。在所有文件中使用相同的标签并为每种语言存储不同的值。然后根据需要使用相应的 xml 填充您的视图
示例:\res\values-en\strings.xml:
<resources>
<string name="greeting">Hello</string>
</resources>
\res\values-es\strings.xml:
<resources>
<string name="greeting">Hola</string>
</resources>
这就是您以编程方式更改语言“区域设置”的方式:
Locale locale = new Locale("es");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
确保在您的清单中,您的活动下包含以下内容:
android:configChanges="locale"
(来源)
推荐阅读
- python - Python中关于快速排序算法的解释
- javascript - 每次加载页面时,如何从后台向 Chrome 扩展程序中的弹出窗口发送消息?
- java - android中ProgressDialog的Robolectric测试
- c++ - Release() 和析构函数的区别?
- json - 在设置和测试期间,如何查看 zapier 通过 Webhook zap 发送到我的 CRM(当前 RMS)的 JSON 帖子正文的日志?
- c# - 如何在 wpf 数据网格视图列中禁用拖放
- javascript - 如何使用反应钩子useState在表单上显示/隐藏一些警报
- php - 提交表单后保留所选选项
- qtquickcontrols - QML FileDialog 断言失败
- c++ - scanf 读取错误,因为使用 %d 读取 bool