頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iPhoneにはなぜ中国語が2つあるの?

頭と尻尾はくれてやる! ローカライズでstringsファイルを作りたいんだが、、、
↑この続き。
ローカライズで英語、日本語対応はできることがわかったのですが、中国語はどうするのかではまったのでメモ。

単にzh.lprojを作ってやればいいのかな、と思っていたのですがそうじゃないみたい。
よく見れば、iPhoneの言語設定では中国語って2つあるし。

iPhoneの言語設定画面

↑なんじゃ、これ?
と思って調べると、
繁体文字と簡体文字を説明下さい - 外国語 - 教えて!goo

なるほど、そういうことですか、面白いなあ。

で、中国語対応は結局、
zh_CN.lproj(←簡体)
zh_TW.lproj(←繁体)
ってのを作ればOK。

iPhoneで中国語表示

↑ほー、できたできた!


ローカライズでstringsファイルを作りたいんだが、、、

だいぶ前にiPhoneアプリの多言語化(ローカライズ)を試そうとInfoPlist.stringsやLocalizable.stringsを作り、実際したいことができたのですが、今回再度やろうとしたらはまったので次回に備えてメモ。

いろいろとやり方はあるようですが、私は手動でやりました。
iPhone アプリケーションをローカライズする方法 - 夜の Discovery
このサイトが参考になりました(おそらくXcodeのバージョンが違うので細かいところは異なります)。
ファイル保存時にグループを指定しないとデフォルトだとうまくできません。
なお、コピーとかせずに全部手動でファイルを作成しました。

これでうまくいくはずなのに、なぜか意図通りに認識してくれない、、、
泣く泣くGoogle先生に聞いてみると、こんなページが。

A-Liaison BLOG: iPhoneアプリをローカライズ(国際化対応)してみた
それでも駄目な場合は、Finderでプロジェクトのディレクトリを開き、
buildディレクトリの中身を丸ごと消してから再度ビルドするとうま くいくと思います。
(以前のビルド結果が残って居るとうまくいかないみたいです)


大丈夫かー?と思いつつ恐る恐る削除してみると、シミュレーターでもiPhone実機でもうまくいきました。

と思ったけど、やっぱりうまくいかない場合もあるなあ、、、

やっぱり、
Finderで全然違う場所にxxx.lprojのフォルダーを作って、それをXcode上にドロップする。
その後必要なstringsファイルを作成するのがよさそう

というのが現時点での結論。


整数同士の割り算は整数になるのか!

危ない、危ない。
どうもおかしいと思ったら、そういうことだったのね。
int x = 3;
int y = 2;
float rate = x/y;
NSLog(@"%f",rate);//1.000000
単に割り算でありますが、、、
3÷2 = 1だと?

どうやらObjective-Cでは整数同士の割り算は整数にしかならないみたい。
片方がfloat型だと意図通りの結果になる。

元々整数型で今更型を変えるのが面倒だよ、というならキャストして、
float rate = (float)x/y;
もしくは
float rate = x/(float)y;
なんてやると意図通り1.5になる。

ふー、危ないところだったよ。


もうくら寿司も函館市場もいらない?!活魚寿司でOK

何ヶ月前だか、、、近所に「活魚寿司」って回転寿司屋ができたのです。
もともと「函館市場」って回転寿司屋があったのですが、国道26号線をはさんですぐ向かいにこの「活魚寿司」ができたのです。
すごいでしょ?
まるで、けんかを吹っかけているかのような出店。

先日、この「活魚寿司」に初めて行きました。
結論から言うと、「函館市場」も「くら寿司」ももう行かないな、って思うほどの満足度。

タッチパネルで注文したら、スペースシャトルみたいな乗り物に乗せてレール上を走ってくる、というアレですが、子供は大喜び。
これなら、取り間違えもないので安心です。
くら寿司のような音で知らせるだけだと間違えて取ったことがあったし、、、

残念なのは予約ができないことくらいかな。
くら寿司みたいな予約システムを導入して欲しいもんであります。

【おまけ】
一番最初にタッチパネルで注文した時、子供に「乗り物に乗ってやって来るよ」って期待させて待っていたら、なぜか店のお兄さんが手で運んで持って来て、親子共々目が点になりました。
故障かと思って聞いたら、そうでもなくて戻ってスペースシャトルに乗せてくれました、サンクス!


アプリ起動時に待ってもらう時の画面

iPhoneアプリでもユーザーを待たせる時に、
ちょっと待ってねー、作業してんだから!
ってことを意味する棒がクルクル回ってるような画像ってありますやん。

あれって簡単に使えるみたいですね。

無題メモランダム: [iPhone]UIActivityIndicatorViewでハマった件
↑このページなどが参考になりました。

UIActivityIndicatorView
とか
performSelectorInBackground:withObject:
あたりがキーワード。


やってみると、なるほど、バックグランドで作業している間、クルクルの表示は面倒見てくれてますやん!

ただ、アプリ起動時(Foregroundに帰って来た時ではない)に毎回これが表示されるってのはどうかなって気も、、、
ネットにつないでいる間の待ち時間でもないし(単にCore Dataのデータを整理しているだけ)。

起動時にはDefault.png画像を見せておいてその間に処理しちゃう、というのがやはり一番自然かなあ。
ガイドライン的には起動時に余計な画像はダメなことになっているので、、、とりあえず、こういう画像(320×460px)を作ってみました。

定番起動時画面

↑定番らしいですが、実装してみると、、、まあ、こんな感じなのかな。
一番ユーザーに"起動"を意識させないんでしょうね。
とりあえず、これで行くことにしようっと。




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.