1

チュートリアルに従って、以前に作成したデータベースを使用しようとしています。

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

雑学クイズのようなゲームの質問を保存するためにデータベースを使用する予定です。1つのテーブルの基本設計:

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
);

android_metadataまた、フィールドl10nをl10n / i18nの目的で使用していますが、Androidがテーブルをどのように使用するかはわかりません。チュートリアルでは、「en_US」値の行が挿入されます。

  1. このテーブルは、Androidで使用される一種の組み込みl10nですか?
  2. 私自身のl10nフィールドの代わりに、l10nにテーブルandroid_metadataを使用することをお勧めしますか?
  3. データベースにさまざまな言語のデータを保存し、さまざまな言語から質問を取得するオプションをユーザーに提供したい場合はどうすればよいですか?
  4. 言語ごとに1つのデータベースが必要ですか、それとも良いですか?
4

1 に答える 1

2

Androidは、データベースを現在のデフォルトロケールで開くたびに、そのフィールドを更新します。アプリのデフォルトを変更しない限り、これがシステム言語である必要があります。

SQLiteDatabase#openDatabase

db.setLocale(Locale.getDefault());

そのフィールドを使用するために保存する必要がありますが、私はそれをテストしたことがありません。

このテーブルの目的は、ステートメントでCOLLATELOCALIZEDを使用できるようにすることです。NO_LOCALIZED_COLLATORSを指定した場合は使用できません。

さまざまな言語のテキストのデータベースが必要な場合は、独自の言語テーブルをテキストテーブルの外部キーとして使用することを検討してください。

于 2012-04-29T14:36:46.283 に答える