【Android】PreferenceCategoryのtitleが多言語化できない・・・とほほ話
どーもー。ブンブン丸です。
今回はAndroid アプリ開発時のお話です。
「おあいそ(回転寿司計算機)」がバージョンアップします
来月の消費税増税に向けて「おあいそ(回転寿司計算機)」のバージョンアップを予定しています。
バージョンアップでの機能追加はいくつかあるのですが、その中に英語対応がありましてその時のとほほ話です。
多言語対応させる一番簡単な方法はリソースを各言語に対応したフォルダを作ってその中に入れておくことです。
日本語がデフォルトで、英語に対応させるなら
values/string.xml
values-en/string.xml
と言った感じです。
アプリ内で表示される文字は全てstring.xml内の値を参照するように作っておきます。
(他のxmlからは@string/tohoho、プログラム内からはR.string.tohohoみたいな感じで参照させておきます)
「おあいそ」もだいぶ前から多言語化計画があったのでEclipse内にあるプロジェクトには「values-en」フォルダもありました。
そして時間の経過とともに順調に日本語→英語翻訳も済んで行きます。
しかし、なぜか今回の記事のタイトルにもある通りPreferenceCategoryのtitleが英語になりません。
PreferenceCategoryを使用しているのはアプリの設定を行う部分です。
Xmlはこんな感じでした。
<!-- xml/settinglist.xml --> <PreferenceCategory android:title="@string/preferencecategorytitle"> <PreferenceScreen android:title="@string/chainstorescreen" android:key="defaultSetFlag" android:summary=""> </PreferenceScreen> <PreferenceScreen android:title="@string/startshouninscreen" android:key="displayFlag" android:summary=""> </PreferenceScreen> </PreferenceCategory>
ここから参照しているvalues/string.xmlとvalues-en/string.xmlはこんな感じでした。
<!-- values/string.xml --> <string name="preferencecategorytitle">各設定画面の表示</string>
<!-- values-en/string.xml --> <string name="preferencecategorytitle">Display for each setting screen</string>
この状態でアプリを起動してみるとなぜかタイトルが日本語です。
当然、スマホ本体の言語設定は英語にしてあります。
このタイトル以外はきちんと英語で表示されています。
なぜ日本語のまま? 悩む。
参照先のスペルが違っているのかと確認してみましたが間違っていません。
次に確認したのがソースです。
もしや直接setTitleメソッドか何かでタイトルを指定してしまっているのではないかと。
全てのソースを調べましたが該当部分はありません。
なぜだ?
さらに悩む。
(一応、ググってみましたが理由が判るわけもなく・・・)
そして原因が判明・・・
・
・・
・・・
ふと気付く。
アホな自分に気付く。
なんてことはない、Eclipseのプロジェクトをよ~く見るとxml-enフォルダがあるではないですか!
そしてその中にはsettinglist.xmlが!
xmlファイルを開いてみると、そこには
<PreferenceCategory android:title="各設定画面の表示">
という表示が・・・
これか…orz
こんなフォルダを作ったの誰だ!
私です。
すっかり忘れておりました。はい。
xml-enフォルダは削除しました。
おしまい。
コメントをどうぞ