簡体字・繁体字中国語と地域との比較
質問
私の Android アプリケーションに繁体字および簡体字の中国語サポートを実装している最中ですが、これがどのように機能することになっているのか混乱しています。
を読むと ドキュメントを読むと のようないくつかの議論と同様に この と この に簡体字の中国語を入れました。
- 値-zh
- 値-zh-rCN
- 値-zh-rSG
と繁体字中国語を
- 値-zh-rTW
- 値-zh-rHK
これはすべてうまく動作しますが、どういうわけか私には意味がありません(中国語の簡体字と繁体字の使用について十分に理解していない場合は申し訳ありません)。
エミュレーターのロケール設定ダイアログや、root 化された携帯電話で確認したところ、ユーザーはロケールを簡体字中国語または繁体字中国語に変更できることがわかりました。
さて、ここで疑問が生じます。システムは、簡体字中国語または繁体字中国語の strings.xml をどこで取得するのか、どのようにして知るのでしょうか。簡体字中国語を表示することになっている場合、values-zh からそれを取得し、values-zh-rTW から繁体字を取得するという、ある種の仮定が組み込まれているのでしょうか?
しかし、ユーザーが香港に住んでいて、簡体字中国語を表示するようにデバイスをセットアップした場合はどうでしょうか。あるいは、世界のどこかに移住している人が、自分のデバイスを繁体字中国語に設定し、その地域がたとえば米国やカリフォルニア州であった場合はどうでしょうか。
ユーザーが自分のロケールを設定し、私のアプリが正しいロケールで表示されるようにするには、何をしなければなりませんか。
更新しました。
さらなる調査の結果、Android 携帯電話のユーザーは、言語とは別に国を設定することはできないようです。UI でロケールと呼ばれるものを設定することしかできません。これは言語と国から構成されますが、リストが限られているため、多くの組み合わせはできません。
たとえば、繁体字中国語を使用したい米国在住の中国人は、言語を繁体字中国語に設定でき (少なくとも root 化された携帯電話では)、ロケールは zh-rTW になるでしょう。その場合、ロケールはzh-rTWになります。この場合、国を米国に設定することはできません。同様に、あらゆる種類の移住者は、母国語を現在住んでいる国に設定することはできません。
基本的に、言語と国の組み合わせの束だけがサポートされていることを意味します。問題は、それらがどれなのかをどうやって見つけるかです。
どのように解決するのですか?
だから私はさらに調査した後、マークスの答えと思う私は自分自身の答えを提供するつもりです。ここに行く。
箱から出したばかりの Android には、簡体字中国語の zh_rCN と繁体字中国語の zh_rTW という 2 つのロケールしかありません。設定] アプリからわかるように、これらが唯一の提供ロケールです。
https://android.googlesource.com/platform/packages/apps/Settings/+/master/res/
しかし、Android システムの他の作成者、たとえば、中国などで販売される携帯電話用に、追加するものを変更することができます。理論的にサポートされている全体的なセットは、icu4c アプリで見つかったロケールのリストを見ることによって見つけることができます。
https://android.googlesource.com/platform/external/icu4c.git/+/master/data/locales/ 中国語の場合、以下のようになります。
- zh.txt
- zh_CN.txt
- zh_HK.txt
- zh_Hans.txt
- zh_Hans_CN.txt
- zh_Hans_HK.txt
- zh_Hans_MO.txt
- zh_Hans_SG.txt
- zh_Hant.txt
- zh_Hant_HK.txt
- zh_Hant_MO.txt
- zh_Hant_TW.txt
- zh_MO.txt
- zh_SG.txt
- zh_TW.txt
Hant は繁体字中国語の ISO コードで、Hans は簡体字中国語の ISO コードです。つまり、理論的には、次のようになります。
- 中国、香港、マカオ、シンガポールの簡体字中国語
- 香港、マカオ、台湾の繁体字中国語
ただし、ロケールの異なる選択を行うには、設定アプリを変更する必要があることに留意してください。したがって、この段階では、簡体字中国語は zh_rCN に、繁体字中国語は zh_rTW に翻訳され、他のロケールをサポートするような変更済みの Android イメージを持っているユーザーは、離れている必要があります。
いずれにせよ、ロケールを取得するために設定クラスを使用することができます。例えば、アプリケーションクラスで getResources().getConfiguration().locale を使用します。
たとえば、ログを記録してデータをトラッキング システム (使用するものは何でも) に送信するか、サポートされているものをチェックして、メッセージ内のロケール設定で例外をスローし、それをマーケット インターフェースに表示することができます...ただし、アプリの最低 1 回のクラッシュを意味します (調子がよければ、数分後に公開および更新できます ...)。
要約すると、最小限の設定は、設定アプリ (zh-rCN と zh-rTW のみ) で行われていることのミラーリングですが、シンガポール、香港、マカオのデフォルト ロケールを提供し、デフォルトで繁体字中国語を提供したい場合は、そうすることもでき、それは機能するはずです。しかし、そのような設定がどこかで使用されているという証拠はありません...。
お役に立てれば幸いです。
関連
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] アンドロイドのクライアントでヒープアップデートを有効にする方法
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] react nativeアプリのバージョン番号を更新する方法
-
[解決済み] 中国語(簡体字・繁体字)の言語コード?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] Android APKファイルの中身を見るには?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio