Xcode4でローカライズが上手くいかない。 [MacOSX]
ここ一週間、Xcodeで作られたアプリを日本語だけじゃなくて、英語にもローカライズしようとやってきた。でも、どうにも上手くいかない。Xcode4系統のバグである可能性が非常に高い気がしている。
状況はこんな感じ。
・既存のXcodeのプロジェクトに、元々Japanese.lprojがあった。
・Xcodeの設定で英語のリソースen.lprojを作る事が出来た。
・しかし、英語環境であろうとなかろうと、英語のリソースしか読んでこなくなり、日本語のリソースが無視。
・Language Switcherというツールで立ち上げる分には、日本語、英語ともに問題なくリソースが切り替えられる。
・Xcode4.3.3でプロジェクトを新規作成する分には、普通に英語と日本語のローカライズが出来ていて、実行の挙動にも問題無し。
試行錯誤の箇条書き。全部ダメだった。
・Xcode 4.3.3で新規プロジェクトを作成して、ソースコードやリソースをつっこみ、.xcodeplojのみを新しいものにして、コンパイルが通るように設定してみた。
・.nibファイルを.xibファイルに変換してみた。
・.nibや.xibファイルを、Xcodeの設定でInterface Builder Documentの項目の、Document Versioningを適宜変えてみた
・相当古いファイルをXcode3でローカライズして、ソースを最新のもので上書きした
これを読む感じでは、ソースコードが悪いんじゃないの?って言われそうだけど、そもそもリソースをいじるようなソースは書いたり改変したりはしてないんだよね。だから、.nibファイルと.xibファイルと.xcodeplojファイルの状態を疑ってみたんだけど、どうにもうまくいかない。何が悪いのかが全然見えてこない。Windowsプログラミングだと、そうやって突き詰めていけば大抵は解決するんだけど、IDEの問題だとこっちからは設定をいじる以外は何も手を出せないんだよね。
最終的におぼろげに考えられるのは、古いXcodeで作った.nibファイルが新しいXcode4以降に対応してないってことです。そのために、きちんとコンバートかけてくれてるんだかも怪しい感じだし、そもそも、アプリケーションバンドルを作る時に問題が出てそうなので、やはりXcode4のバグを考えざるを得ない状態です。
新しいXcode4でリソースを作り直せば良いじゃないか、と言われるかもしれませんが、正直言って手数が多過ぎてやる気がない。それまで少しずつ積み上げたものをもう一回ってのは苦痛です。それに、やっとのことでxibファイルが出来て、英語のリソースしか出てこなかったら最悪ですし。下手に手間を省こうとしてコピペで変な設定を拾ってきて不具合が出たりしたら、それこそいちから作る意味はないですしね。
Mountain Lionも出た事だし、Xcodeを4.3.3から4.4系に上げてみるってのも手かもしれませんが、ほぼβ版のソフトにマイナーバグが解消される見込みは薄いですね。Appleはどんどんバグを積み上げる技術者が多いから、OSX以前のMacOSが破綻をして他社の技術を取り入れざるを得なくなったわけですしね。
うわー、やればやるほどAppleが憎くなってくるんですけど。Macは開発をするんじゃなく、お仕着せのソフトを使っている方が気が楽ですね。開発するにしても、UNIX系のコマンドラインアプリだけにしておくのが無難かもしれません。僕はプログラマーとして、特に優秀な方じゃないですが、Windowsプログラミングで、IDEにここまで振り回された事ないですし、結局、AppleのIDEなんてGNUかLLVMのGUIラッパーでしかないのですが、Mac独自の技術のところで問題が出ていたのでは、サードパーティでさえなさそうな個人にはどうしようもないわけで。
進退を決めかねるなぁ…。ほんと勘弁してほしい。
状況はこんな感じ。
・既存のXcodeのプロジェクトに、元々Japanese.lprojがあった。
・Xcodeの設定で英語のリソースen.lprojを作る事が出来た。
・しかし、英語環境であろうとなかろうと、英語のリソースしか読んでこなくなり、日本語のリソースが無視。
・Language Switcherというツールで立ち上げる分には、日本語、英語ともに問題なくリソースが切り替えられる。
・Xcode4.3.3でプロジェクトを新規作成する分には、普通に英語と日本語のローカライズが出来ていて、実行の挙動にも問題無し。
試行錯誤の箇条書き。全部ダメだった。
・Xcode 4.3.3で新規プロジェクトを作成して、ソースコードやリソースをつっこみ、.xcodeplojのみを新しいものにして、コンパイルが通るように設定してみた。
・.nibファイルを.xibファイルに変換してみた。
・.nibや.xibファイルを、Xcodeの設定でInterface Builder Documentの項目の、Document Versioningを適宜変えてみた
・相当古いファイルをXcode3でローカライズして、ソースを最新のもので上書きした
これを読む感じでは、ソースコードが悪いんじゃないの?って言われそうだけど、そもそもリソースをいじるようなソースは書いたり改変したりはしてないんだよね。だから、.nibファイルと.xibファイルと.xcodeplojファイルの状態を疑ってみたんだけど、どうにもうまくいかない。何が悪いのかが全然見えてこない。Windowsプログラミングだと、そうやって突き詰めていけば大抵は解決するんだけど、IDEの問題だとこっちからは設定をいじる以外は何も手を出せないんだよね。
最終的におぼろげに考えられるのは、古いXcodeで作った.nibファイルが新しいXcode4以降に対応してないってことです。そのために、きちんとコンバートかけてくれてるんだかも怪しい感じだし、そもそも、アプリケーションバンドルを作る時に問題が出てそうなので、やはりXcode4のバグを考えざるを得ない状態です。
新しいXcode4でリソースを作り直せば良いじゃないか、と言われるかもしれませんが、正直言って手数が多過ぎてやる気がない。それまで少しずつ積み上げたものをもう一回ってのは苦痛です。それに、やっとのことでxibファイルが出来て、英語のリソースしか出てこなかったら最悪ですし。下手に手間を省こうとしてコピペで変な設定を拾ってきて不具合が出たりしたら、それこそいちから作る意味はないですしね。
Mountain Lionも出た事だし、Xcodeを4.3.3から4.4系に上げてみるってのも手かもしれませんが、ほぼβ版のソフトにマイナーバグが解消される見込みは薄いですね。Appleはどんどんバグを積み上げる技術者が多いから、OSX以前のMacOSが破綻をして他社の技術を取り入れざるを得なくなったわけですしね。
うわー、やればやるほどAppleが憎くなってくるんですけど。Macは開発をするんじゃなく、お仕着せのソフトを使っている方が気が楽ですね。開発するにしても、UNIX系のコマンドラインアプリだけにしておくのが無難かもしれません。僕はプログラマーとして、特に優秀な方じゃないですが、Windowsプログラミングで、IDEにここまで振り回された事ないですし、結局、AppleのIDEなんてGNUかLLVMのGUIラッパーでしかないのですが、Mac独自の技術のところで問題が出ていたのでは、サードパーティでさえなさそうな個人にはどうしようもないわけで。
進退を決めかねるなぁ…。ほんと勘弁してほしい。
タグ:freesoft
xibファイルをXcode 4.3.3でミニマムなメニューを作って、英語のリソースしか読み込まれない例のプロジェクトに組み込んで動くようにしたら、やっぱり英語しか出てこない。xibの問題じゃなく、プロジェクトかソースコードの問題らしい。ソースコードは読みたくない。プロジェクトは設定が多すぎる。あぁどぉしよぉ…。
by miff (2012-07-27 11:29)