iOSのアプリを国際化対応させる1

投稿者: | 2019年2月18日

iOSの国際化対応の1:開発地域、言語を日本に設定する方法

我々日本人がアプリを作る場合、まず日本語で作っておいて、それを国際化対応させる事が多いだろう。

ところがXcodeで既定の開発地域、言語設定はEnglishになっている。これがなぜ困ったことなのかというと、日本語のアプリを英語にローカライズしようとして追加言語で英語を選ぶと「既にBaseとして設定されている」旨のエラーで追加できず、もっと狭く例えばEnglish(United States)のような形で追加せざるを得なくなるのである。これは日本語(に限らず英語以外)のアプリを英語にローカライズしようとしなければ経験しない問題なのである。

状況確認

Xcodeでプロジェクトファイルを左クリックして出てくる情報のなかでPROJECT項目の中のinfoにあるLocalizationsの項目に

Languageとして
English — Development Language
の記載がある。

そこで今回の目標はこれを

Japanese — Development Language

とすること。そうすれば英語をUSとかUKのような地域指定ではなくて言語全体として指定できるようになるはずである。

作業手順

流れは次のようになる。oo

  1. 普通通りにProjectを作成、一旦閉じる
  2. VSCodeなどでproject.pbxprojを開き編集
  3. Projectを開き直して変更を確認する

と言ったものである。

1.の部分はいいだろう。問題は2.でどのような編集をするかである。

xcodeprojファイルを右クリックでコンテキストメニューからVisual Studio Codeで開くを選択。下の方にproject.pbxprojのファイルがあるのでそれをエディタで開く。

検索でregionを探すと次のような2箇所が出てくる。

    developmentRegion = en;
    hasScannedForEncodings = 0;
    knownRegions = (
        en,
        Base,
    );

それぞれのenをjaに変更する。つまり以下のように変更すればよい。

    developmentRegion = ja;
    hasScannedForEncodings = 0;
    knownRegions = (
        ja,
        Base,
    );

あとは確認。中央のスタンダードエディタをみるとLocalizationsの言語が「Japanese — Development Language」になっている。

そして言語としてEnglishを追加するとちゃんと追加できること、

左側のナビゲーターパネルを確認して、フォルダーが作られ.stringファイルができていることを確認する。

補足情報

言語コードはISOでフランス語ならfrスペイン語ならesなどと決められている。地域言語はWikipediaに記載がある。

もっとも、Xcodeでは言語と地域に関して選択肢が出てくるのでそれを参考にする方が早いだろう。

次回以降の予定

次回はソースコードレベルでの国際化対応、NSLocalizedStringやLocale(Swift)、NSLocale(Objective-C)について書く予定。

コメントを残す