アプリのインターフェースを英語にすると日本人に馴染まないけど、かと言って日本語にして海外を完全に無視するわけにもいかない、と思うなら、ローカライズする時です!
ローカライズとはシステムの設定に応じて、インターフェースの言語を変えることです。Xcode 6からXLIFFというフォマットに出力することができたから、ローカライズは以前より簡単になりました。
ユーザー向けの文字列をNSLocalizedString
というマクロを使えばローカライズされます、例えば:
// これを
NSString *title = @“Hello”;
// こうするのじゃ
NSString *title = NSLocalizedString(@“Hello”, @“title in alert”);
// これを
let title = “Hello”
// こうするのじゃ
let title = NSLocalizedString(“Hello”, comment: “title in alert”)
二番目の引数はコメントっていう、実際の動きに影響はしないが、翻訳者に見せるコメントとしては役に立ちます。例えばこの文字列はボタンなのか、タイトルなのかを書けば、翻訳者にとっても便利でしょう。
コードよりも、storyboardやxibファイルの方がローカライズが必要な場合も多いです、そしてこういうインターフェースファイルも簡単にローカライズできます。
プロジェクトの準備が終わったら、いよいよXLIFFファイルを出力できます。
ここがローカライズの肝、翻訳です。XLIFFファイルを開けるアプリやサイトはいくつもありますが、ここは私が作ったアプリ Xliffie を紹介させていただきたいと思います。
ファイルを開くとさっきの文字列を全て編集できます、右のサイドバーからコメントが表示されます。
インターフェースファイルから文字を抽出する時、XcodeはUILabelなど情報を入れるので、翻訳に役に立つはずです。
+ [NSString stringWithFormat:]
で使われる文字列は翻訳する時気を付けないとバグになりえます、アプリが落ちたりもします。例えば「%@」がある文字列を%d変わったら、アプリは落ちます。
文字列が多い場合、簡単な文字列をとりあえず Google / Bing 翻訳に任せる場合も多いです、Xliffie はこの二つのサービスと連携していて、ローカライズをスピードアップできます。ところが、こういうサービスも完璧ではないです、例えば「%@」を Google 翻訳に翻訳してもらうと、全角の「%」が返され、stringWithFormat:
などを使う時に問題が起こります。こういうところも気を付けましょう。
翻訳し終わったら、いよいよ最終のステップ、インポートです。
Editor
-> Import For Localization…
を押す。
変わった文字列が表示されます、問題がなければOKを押す、それであなたのアプリのローカライズは完了です!
Xliffie は開発者向けの XLIFF ファイルエディターです。翻訳サービスとの連携、フォマットのチェック、正規表現で検索などの機能が付いてます。