2011年2月20日日曜日

iPhoneアプリの多言語対応

世界に出せるiPhoneアプリ、英語など多言語対応すると可能性は大きく広がります。
というわけで、多言語対応は必須なことは言うまでもありません。

多言語対応は既に多くのホームページで紹介されていますがそのほとんどはnib、InfoPlist.stringsとLocalizable.stringsというファイルを作って、多言語対応をします。
ですが日本語と英語の文法は大きく異なるので、少し複雑になるとこの方法では対応できなくなってしまいます。
そこで、以下の方法を考えました。
よろしかったらご参照下さい。

まず日本語用の Localizable.stringsに
"言語" = "日本語";
と記述します。
次に実行ファイル中に

    NSString* Comp = NSLocalizedString(@"言語",@"");
    NSComparisonResult result = [Comp compare:@"日本語"];
   
    switch (result) {
        case NSOrderedSame:
・・・
            break;
        default:
・・・
            break;
    }

と記述します。
すると日本語のときには、Localizable.stringsにより@"言語"が"日本語"になって、
    NSComparisonResult result = [Comp compare:@"日本語"];
の条件文が
result = NSOrderedSame
となります。
結果下のスイッチ文が有効になって、自由に記述できるようになります。

いかがでしょうか。
お役に立てれば光栄です。

0 件のコメント:

コメントを投稿