我正在按照教程尝试使用之前创建的数据库:
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我计划使用数据库来存储类似问答游戏的问题。一张表的基本设计:
CREATE TABLE QUESTIONS (
answer TEXT, --text for answer
create_by_user NUMERIC, --boolean flag, true if question created by user
_id INTEGER PRIMARY KEY, --required by Android
l10n TEXT, --ISO 3-letter code for localization
question TEXT --text for question
);
并将字段 l10n 用于 l10n/i18n 目的,但我不确定 Android 如何使用 android_metadata
表。在本教程中,插入了带有“en_US”值的行,
- 这张表是 Android 使用的一种内置 l10n 吗?
- 建议使用 l10n 表 android_metadata 而不是我自己的 l10n 字段?
- 如果我希望数据库存储不同语言的数据并为用户提供检索不同语言问题的选项怎么办?
- 我是否需要或最好为每种语言配备一个数据库?
最佳答案
每次您将数据库打开到当前默认语言环境时,Android 都会更新该字段。这应该是系统语言,除非您更改应用程序中的默认设置。
db.setLocale(Locale.getDefault());
使用该字段应该是省事的,但我从未测试过。
据我所知,该表的目的是让您使用 COLLATE LOCALIZED在你的陈述中 - 或者如果你指定 NO_LOCALIZED_COLLATORS
如果你想要一个不同语言的文本数据库,那么考虑使用你自己的语言表作为你的文本表的外键。
关于Android l10n/i18n 数据库。表 android_metadata 是否用于此目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372860/