🌎
String Catalogを使って新規アプリをリリースした際にApp Store上で多言語化されなかった話
Xcode 15から使えるString Catalog、ローカライズが簡単にできて便利ですよね。ただ、これを利用して新規アプリをリリースした際にApp Store上で多言語化されなかったので、事象と解決策をメモしておきます。
事象
- SwiftUIでプロジェクトを新規作成
- Xcodeのプロジェクト設定のLocalizationsは、「English(Default)」と「Japanese」
- String Catalogで「English」と「Japanese」の2言語をローカライズ
- 「English」はすべてKey = Valueとしたため、Valueの個別設定はなし
- App Store Connectのプライマリ言語は「英語(アメリカ)」、他言語として「日本語」を追加
この内容で新規アプリをリリース後、App Storeでアプリ情報を見ると、言語が「日本語と英語」ではなく「日本語」と表示されました。 あれっ、英語どこいきました?
解決策
String Catalogでデフォルト言語としていた「English」の適当な1つのKeyにValueを設定すれば解決しました。
ここからは原因の推測です。String Catalogでデフォルト言語のValueに値を設定しない(Keyの値をそのまま利用する)と、Localizable.xcstrings
のlocalizations
にその言語が追加されません。そこで適当な1つのKeyにValueを設定すると、以下のようにlocalizations
にその言語が追加されます。App Storeの言語表示条件の1つに、Localizable.xcstrings
のlocalizations
に含まれている言語を表示する、があるのかもしれません(挙動的にはそのようでした)。
Localizable.xcstrings
{
"sourceLanguage" : "en",
"strings" : {
"About Backup" : {
"localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "About Backup"
+ }
+ },
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "バックアップについて"
}
}
}
},
まとめ
String Catalogを使うときにデフォルト言語をすべてKey = Valueとする場合、少なくとも1つのKeyにValueを個別設定しないとApp Storeで多言語化されないようです。
Discussion