1

多言語サポート ( /res/values- ** の方法を使用) を成功させたアプリを開発しています。次に、Holo と落下中のレガシー デバイス (たとえば 2.3.*) を使用して、デフォルトのものを使用したいと考えています ( /res/values-v11 の方法を使用)。

そのため、次のような構造になります (言語のないものはデフォルトで EN です)。

  • /res/values
  • /res/values-v11
  • /res/values-de
  • /res/values-de-v11
  • /res/values-es
  • /res/values-es-v11

...それぞれに次のものがあります。

  • 文字列.xml
  • themes.xml

... ここで、strings.xmlはローカライズされたテキストが定義されている場所であり、themes.xmlには次のものがあります。

v11 以外のディレクトリ (レガシー デバイス)の場合

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="MyTheme" parent="@android:style/Theme">
        <!-- Any customizations for your app running on pre-3.0 devices here -->
    </style>
</resources>

-v11ディレクトリ (+3.0 デバイス)の場合

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="MyTheme" parent="@android:style/Theme.Holo">
        <!-- Any customizations for your app running on devices with Theme.Holo here -->
    </style>
</resources>

AndroidManifest.xml の application タグにこの属性を忘れずに追加してください。

android:theme   ="@style/MyTheme"

これは、現在および従来のすべての言語およびすべてのデバイスで、正しいテーマの選択とすべてで機能します。複数の物理デバイスでテスト済み。

だから、質問:

これは保守性が高いと思いませんか?つまり、言語ごとにまったく同じ 2 つの string.xml ファイルがありますが、新しいテキストごとに 2 回入力する必要があるため、タイプミスのリスクが高くなります。内部にanalytics.xmlstyles.xmlなどがある場合も同じことが起こります

Android でstrings.xmlを使用して言語処理を非常にうまく行うには、このマルチテーマとマルチ言語をより適切な方法で機能させるための他の回避策はありますか?

ありがとうございました。

4

1 に答える 1

1

なぜ次のようなものが必要なのかわかりません

values-de-v11

私はちょうどこのようなものを使用します:

values
values-de
values-fr
values-es
values-cat
...

そして、すべてのstrings.xmlファイルに翻訳を入れます。一方、フォルダーを追加することもできます。

values
values-v11

内部にテーマを追加できます。

フォルダーの値には、既定の言語 (通常は英語) 用の strings.xml と、ホロを使用しないデバイス用のフォールバック テーマ ファイルの両方が含まれている必要があります。

ドキュメントですべての可能性を確認できます。

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

于 2013-01-15T09:42:46.753 に答える