SSブログ

Xcodeでのローカライズでハマってる [MacOSX]

それなりにレアケースっぽいので、あんまりみんなのためにならない。まだ解決してないし。

前回にXcode 4.3.3でローカライズをした話をしました。とりあえず、それで出来た気になっていたのですが、実際は出来てませんでした。ローカライズしてen.lprojフォルダができたのはいいものの、どういう状況にしてもnibで設定したのが英語設定で起動してしまい、en.lprojの中身を使ってしまう。

その他に、元々あった古そうなJapanese.lprojと、新しく作ったja-JP.lprojとか、en-US.lprojがあるのですが、環境に依存しないでen.lprojを見に行って無視されちゃう。環境っていうのは、システム環境設定で設定できる、言語とテキストの設定のところで変えられる、言語の優先順位の事です。

ためしにen.lprojを消してみると、ja-JP.lprojを見に行ってくれるけど、環境を英語設定にしてみても、当たり前だけどja-JP.lprojのリソースを使っちゃうのでした。まぁ英語設定で英語のリソースがないから、日本語設定を渋々使ってるだけの話で、今までJapanese.lprojしかなかった状態と同じ。


一応、Xcodeのやり方でやってるんだが、上手く切り替わってくれないのだ。始めはLanguage Switcherというツールで、英語と日本語は認識して言語の切り換えが出来たのだが、「システム環境設定>言語とテキスト」の優先順位に従って表示してくれないのだ。具体的には、どんな優先順位にしても、英語の設定であるen.lplojを使ってしまうという事である。iTunesのメニューとかは、そのシステムの言語設定で切り替わるのにね。アプリケーションの起動時に変な優先順位があるらしく、かなり意味不明だ。まだ何か設定が必要なのだろうか。

iTunesのバンドルの中身を見ても、フル言語名.lprojと、xx.lprojと、xx_XX.lprojという形式が混ざっていて、どう運用されてるんだかよく分からない。これを一つずつ言語変えて検証していくってのもなぁ。Xcodeをデバッグしてるわけじゃないんだし。とりあえず、Xcodeの変遷でフォルダの名前が変えられていても、きちんとシステム設定に対応してくれているってのはiTunesなどのバンドルの中身を見て分かった。

Xcodeに付属しているドキュメントは流し読みしかしてないけど、有用なものはなさそうな気がしたんだけど。英語だと見落としとかあったらヤだなぁ。


とにかく、今使っているnibが悪いんじゃないかと思って、xibに変換したりしたけど今のところダメです。ローカライズに問題が出ているnibを、新しく作った新規プロジェクトに放り込んで、リソースとして使ってみるんだけど、それだとen.lprojとja.lproj内のnibが環境によって正しく選択されているんだよね。もっとも、nib自体ソースコードとoutletなどのつながりが多くて、ほぼメニューだけのシンプルなnibに最終的になってしまっているという状況ではあるのだけど、nibが古くてうんぬんという話でもなさそう。

そもそも10年以上前のプロジェクトをひっぱり回しているので、互換性うんぬんはきちんと取れてなくてもおかしくはない。恐らく、プロジェクト全体の設定に問題があるのだとふんでいるが、その設定が半端無く多く存在しているので、何を直したらいいかが全然分からない。メニューが出る普通のアプリケーションじゃないので、それも問題があるのかもしれない。物事を簡単にするため、MailPeeper_Menuのソースをlocalizeというか、internationalizationしてみた方が、問題の把握が早いかもしれない。


最近のGUIアプリケーションは、ライブラリが最初の起動部分を隠蔽化しているので、リソースをどう読み込んでるとか全然分からないんだよね。IDEの指図に従うしかないので、こういう風に問題が出ると正直なところお手上げである。まぁやれるだけやってみますわ。というかMailPeeper_Menuよりも、本家MailPeeperのソースコードの方が欲しかったりする。そっちの方がソースの量が少ないだろうし。

問題は、英語の翻訳にあるのではなくて、Xcodeの仕様に問題があるのが口惜しい。またしてもヤラレたぜAppleさんよぉ。

nice!(0)  コメント(1) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 1

miff

MailPeeper_MenuをXcode 3.2.6でローカライズしてみたら、すんなり英語と日本語の設定が切り替わりやがった。mailpeeper-tlsって、元ネタのMenuから相当建て増ししたから、手戻りが相当痛い。っていうか、すんなりマージできる状態ではない。さて、どうしようか。
by miff (2012-07-24 14:56) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。