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