iOS(iPhone)アプリのローカライズ方法
はじめに
iOSアプリケーション(iPhone, iPad, iPod)の国際化には、Apple strings形式(拡張子は.string)のローカライゼーションファイルが必要です。このファイルには、キーと値のペアが含まれていて、最初のエントリ(キー)は検索用で、次のエントリ(値)はキーに関連づけられた値となっています。
例を見てみましょう。 英語ローカライゼーションのstringsファイル:
“Father” = “Dad”;
“Mother” = “Mom”;
日本語ローカライゼーションのstringsファイル:
“Father” = “お父さん”;
“Mother” = “お母さん”;
上の例では、”Father”キーは英語では”Dad”を返し、日本語では”お父さん”を返します。同じように、”Mother”キーは英語では”Mom”を返し、日本語では”お母さん”を返します。
このガイドでは、XcodeのStoryboardとユーザーが定義した文字列で、ローカライゼーションファイルを抽出、作成する方法をご案内します。
Storyboardのローカライズ
StoryboardはXcode 4.2で導入され、iOSアプリケーションのユーザーインターフェースを視覚的に編集することができます。それ以前のXcodeのInterface Builderでは、開発者は一度に一つのビューを編集することしかできませんでしたが、Storyboardでは、アプリケーションのビュー全体を編集することができるようになりました。
”Use Base internationalization”を選択(Xcode 4.5以上)
- 左側のプロジェクトナビゲーターでプロジェクトファイルを選択する。
- プロパティ画面で“Use Base internationalization”のチェックボックスを選択する。
言語の追加
- ‘+’ボタンをクリックし、言語を追加する。
プロジェクトのStoryboard(左側のプロジェクトナビゲーターの.storyboardファイル)は、ドロップダウンメニューで複数のStoryboardを切り替えられるようになります。
ローカライズ可能な文字列に変換
- 作成した新しい言語のStoryboardを選択します。
- ファイルインスペクタでLocalizationセクションを探します。
- ビュータイプを”Localizable Strings”にセットします。
これで、Storyboardの.stringsファイルが抽出されました。
翻訳を追加
Conyacで.stringsファイルをアップロードすれば、選択した言語へ、早く、正確に翻訳を行うことができます。
ユーザー定義された文字列のローカライズ
アプリケーションに含まれる文字列は、Storyboard内だけでなく、ユーザー定義された文字列が存在します。ユーザー定義された文字列をローカライズするには、新しいstringsロケールファイルと、NSLocalizedStringヘルパーマクロが必要です。
ロケールファイルの作成
- メインメニューのFile -> New -> File… から新しいstringsロケールファイルを作成します。
- iOS -> Resource -> Strings FIleを選択します。
- ファイル名を標準のLocalizable.stringsから場合に応じて変更します。
- プロジェクトナビゲーターでLocalizable.stringsファイルを選択します。
- ファイルインスペクタで”Localize…”ボタンをクリックします。
- 標準ローカライズ言語を選択します。
- もう一度プロジェクトナビゲーターからLocalizable.stringsファイルを選択します。
- ファイルインスペクタのLocalizationセクションからアプリケーションでサポートする言語のチェックボックスを選択します。
これで、Localizable.stringsファイルに複数の言語が含まれました。ロケールの項目を追加する前に、ローカライゼーションマクロについて知る必要がありますので、次に説明します。
NSLocalizeHelperマクロの使用
文字列は次のようにして作成されるのを思い出しましょう。
NSString *title = @"Harry Potter";
NSString *desc = [NSString stringWithFormat:@" uses magic"];
上記の文字列をローカライズできるようにするためには、NSLocalizedStringマクロが必要です。
NSString * title = [[NSString alloc] initWithFormat:NSLocalizedString(@"Harry Potter", nil)];
NSString * desc = [[NSString alloc] initWithFormat:NSLocalizedString(@"magic", nil)];
NSLocalizedString(@“Harry Potter”, nil)は、前節で作成したLocalizable.stringsファイルの”Harry Potter”キーを探して、対応した値を代入します。
たとえば、Localizable.stringsファイルが以下のようになっている場合:
Localizable.strings (English):
“Harry Potter” = “Harry Potter”;
“magic” = “ uses magic”;
Localizable.strings (Japanese):
“Harry Potter” = “ハリーポッター”;
“magic” = “は魔法使い”;
NSLocalizedString(@“Harry Potter”,nil)が使われたとき、iOSデバイスの言語設定によって、以下のように表示されます。
- Englishに設定されているとき…”Harry Potter”
- 日本語に設定されているとき…”ハリーポッター”
翻訳の追加
Conyacで.stringsファイルをアップロードすれば、選択した言語へ、早く、正確に翻訳を行うことができます。
まとめ
本ガイドでは、iOSアプリケーションにローカライゼーションを追加する方法を説明しました。あなたのアプリケーションのローカライズの手助けとなることを願います。もし、ご質問やご感想がありましたら、support@conyac.cc宛までよろしくお願いします。
ローカライズファイルを翻訳するのに経験豊富な翻訳者が必要ですか? Conyacは最適なソリューションです。
早く、低価格で頼れるサービスです。