多言語に対応しよう

サルでき.jp > 97.サルでき本 原稿以前 > 多言語に対応しよう

2011/12/09 21:33 投稿先 97.サルでき本 原稿以前 投稿者 カワサキ タカシ

晩寒い寒い。さすがに暖房付けました。

「外資系企業で働くためには、英語が話せないとだめですか?」以前そんな質問を受けたことがある。わあー、なんて純粋(ピュア)な質問。オジサン少々ドキドキ。うーん、どうなんでしょう。お金を稼ぐ仕事というものは、一人では成り立たないものなので、相手次第で使うことになるし、もちろんそうじゃない場合もある。外資系企業は会社の中心が海外にあるので、その機会の絶対数が増える。だけのことだと、ワタシは思っている。経験談として、その昔在籍したことがある外資系企業でも、ひとつはまったく使わないところで、ひとつは自席の電話に出たら、「ヘロー」というところだった。一括りにしてしまえばどちらも同じ外資系企業なのだが、ところ変わればいろいろ変わるのである。

今アナタがiPhoneアプリを作っていたとして、そのアプリを、海外のユーザーに対して販売しよう。なんて大胆なことを考えたことがあるだろうか。金髪、リムジン、骨付きステーキ。いいね!アメリカンドリーム!…コホン。ま、それは横に置いておくとして。多少冷静に分析してしまうと、世界の中での日本のアプリマーケットは、それほど大きいものではない。日本自体は経済大国なのだが、それでもひとつの国はひとつの国なのだ。同じ言語が通じる人の数は限られていて、英語、なんていう共通世界の前には、どうしても小さい単位になってしまうのである。

日本を飛び出してぇ、広い世界で勝負してぇ。でも、日本のことは忘れたくねぇ(英語別に強くないし)。そんな迷える野心家のアナタにうってつけの機能が、iPhoneの多言語対応機能である。iPhoneは、最初から複数の国(言語圏)で使われることが前提になっているので、予めひとつのiPhoneの中に複数の言語が組み込まれていて、それをユーザーが自由に選べるようになっている。アプリの中でも、日本語環境で使っている人には日本語用の画面を、英語環境で使っている人には、英語用の画面を、それぞれ見せることができるのだ(多言語、と言いつつ、ここでは日本語と英語のふたつしか考えないことにする。それ以上の言語に対応する場合は、その分の設定を行ってくださいね)。

ただ、このアプリ内多言語対応。少々厄介なことに、その方法はひとつではない。基本的な考え方はひとつなのだが、プログラムの中で行う場合と、画面の設定(storyboard)で行う場合と、やり方が複数用意されているのである。めんどくさー。その組み合わせ方法とか、エラーがあったときの修正手続きとか、そういうことを考えると、うっかり金髪美女を諦めそうになってしまう。黒髪和服美女も、いいか。いやいや、そんな気持ちでどうする(とってもよくわかるけど)。困ったときの裏ルール。ワタシ流のやり方を伝授しておこう。

このやり方で使うただひとつのもの、それは「NSLocalizedString」である。こいつは、文字列を「そのiPhoneに設定されている言語」に変換してくれるもので、通常は、画面に表示している文字を多言語対応する際に使うのだが、これを画像にも使ってしまおう。日本語版と、英語版と、画像を二種類用意しておいて、「日本語」として、日本語版の画像のファイル名を、「英語」として、英語版の画像のファイル名を、設定してしまえばいいのである。「こんにちは」「hello」ができるのだ。「imageJ.png」「imageE.png」という変換だって、やってくれる。これで、storyboardは、ひとつでよくなった。骨付きステーキ、いただきます。

ほんの少しの勇気と、ほんの少しの手間をかけて、アナタのiPhoneアプリを海外で販売してみよう。もしかしたら、電話を取ったら「ヘロー」、そんなことが本当に起きるかも知れない。英語で話せない?それはそれでいい。ドッキドキが、面白いのだ。ただ、どうしても困ったときのために、こちらもワタシ流のやり方を伝授しておこう。”He is not at his desk.”(彼は席にいません)と言って、静かに受話器を置く。それだけだ。


※この記事は今度出す本の下書きの下書きです。
※全ボツになることもありますので、番外編としてお楽しみください。

【業務連絡】
NSLocalizedStringを使った画面の切り替え説明が続きます。

関連する記事:


Advertisement