iOS(およびMac OS ..およびNextStep)はすべて、ファイルのローカライズに同じ基本的なトリックを使用します。ローカライズ可能なアセットは、ファイルが対応する言語バリアントにちなんで名付けられた接尾辞.lprojの付いたフォルダーに配置されます。たとえば、開発システムが英語に設定されている場合、このフォルダーはen.lprojと呼ばれます。他の言語とローカリゼーションのバリエーションは同じ形式に従います:es.lproj(スペイン語)、zh-Hant.lproj(繁体字中国語)、zh-Hans(簡体字中国語)、en-GB(イギリス英語)など。 -'ではなく'_'!。
XCodeは、これらのファイルが.lprojフォルダーにあるという事実を隠すことで役立つように努めています。Info-plist.stringsやLocalizable.stringsなど、特定のファイルはen.lprojで自然に作成されます。通常、プロジェクトに新しいローカリゼーションを追加するには、問題のファイルを選択し、ファイルインスペクターでその情報を確認し、[ローカリゼーション]セクションを見つけて、ため息をつき、言語を選択すると、ファイルがコピーされます。適切な.lprojフォルダに入れます。これは、ほとんどの場合、単一のファイルで機能します。ただし、多くの実験を行った結果、同じ方法でフォルダを追加しても機能せず、XCodeが混乱することがわかりました。たくさんのアセットを個別に追加するのではなく、フォルダーに入れて見つけやすくするのが好きです。ローカライズされたフォルダーをプロジェクトに追加するための私のテクニックは次のとおりです。
- 最初にen.lprojにフォルダを作成します
- プロジェクトナビゲーター(「ファイルの追加」)を使用して、フォルダーをビルドに追加します。「追加されたフォルダのフォルダ参照を作成する」を選択していることを確認してください。最も重要なのは、「アイテムを宛先グループのフォルダにコピーする」をチェックしないことです。
- 他の.lprojフォルダーがまだない場合は、上記のようにInfo-plist.stringsをローカライズすることで作成できます。
- フォルダをen.lprojから相互にコピーします。.lprojフォルダ
- プロジェクトナビゲータを使用して、これらの各フォルダを追加します。
フォルダの選択やファイルインスペクタでのローカリゼーションシステムの使用など、他の方法では、新しいフォルダが階層の間違った部分に配置され、フォルダの内容の一部のみがコピーされ、一般的に大混乱を引き起こす傾向があることがわかりました。また、[フォルダにコピー]ボタンは特に誤解を招く恐れがあります。
これらの手順を実行した後でも、ターゲットの[ビルドフェーズ]タブに移動して[設定の検証]をクリックして、ビルドスクリプトをクリーンアップする必要がある場合があります。重複がある場合に備えて、リストをクリーンアップしましょう。Info.plistにローカリゼーションキーを追加することもできます。これは、iOSまたはMacOSから、これらの.lprojファイルが利用可能であるというヒントになると思います。
つまり、これは実際には質問ではありませんが、StackOverflowコミュニティが読むための一種の答えです。これをもう少し要約できれば、レーダーレポートを提出します。私が本当に望んでいるのは、XCodeが、ファイルがインターフェースの.lprojにあるという事実を隠すのをやめることです。