多言語サポート ( /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.xml、styles.xmlなどがある場合も同じことが起こります
Android でstrings.xmlを使用して言語処理を非常にうまく行うには、このマルチテーマとマルチ言語をより適切な方法で機能させるための他の回避策はありますか?
ありがとうございました。