XCodeでのInfoのローカライズ(多言語対応)方法がコロコロ変わるので正解を見つけるのに苦労した話

Appleいいかげんにしろよ!

で終わりたいところですが、X15.3での最新のローカライズ方法がどこにも欠かれておらず苦労したのでメモしておきます。

ローカライズ手順

まず、XCodeのターゲットのInfo(旧Info.plist)にいれるKeyを追加し、デフォルトの言語で表示する言葉をを入力します(NSUserTrackingUsageDescription、Advertisements will become more beneficial.など)

次にローカライズのためにString Catalogを生成します。File>New>FileからString Catalogを選び、InfoPlistという名前にします。この名前でないとローカライズはできません!!
(これがわかるまでにかなり時間がかかった)

その後、Productで、Clean Buildを選択後、Buildします。

すると、アプリ名と追加したKeyのInfoPlistができ、その他の言語を追加して翻訳を格納してできあがりです。これで端末に表示されるアプリ名もローカライズできるのでうれしいですね(全部やると大変ですがw)

制約事項

String Catalogの名称を前出のとおりInfoPlistにすることもしかりですが(どうやらキーなどのローカライズは、”Localiable”というファイル名にするらしい)、Infoの値として変数名(${NSUserTrackingUsageDescription})を入れてはだめで、必ずデフォルト言語で表示したい値を入れることが必要です。

以前は変数名を入れていたようですが、変数名を入れてしまうと初期値に何もはいらず「編集すらできなくなる」という罠に陥ります。

インターネット上には過去の実装方法などの撹乱情報が沢山ころがっており、AIもそれに流されてしまうのでなかなか正解がわからず苦労しました。

とりあえず実装できそうなのでよかったですが、しかしあとでKeyを追加したいときどうすればいいのでしょうかね(知らんがな)。
=> Product>Clean Build FileのあとでProduct>Buildで反映されますね。

この話、いったいどこに載ってるんやろね。いいけど。

この記事が気に入ったらサポートをしてみませんか?