💊

Stringカタログは意図しないものをLocalizable.xcstringsに色々書き出すので、あえてレギュラーメンバーから外す案

2024/12/25に公開

Stringカタログにはソースコードの中からLocalizable.xcstringsに自動で書き出す機能がある。Localizable.xcstringsに無いものは、コンパイル時に勝手にLocalizable.xcstringsに追加するものである。

ただ、意図しない書き出しもあって

  • 他のxxx.xcstringsが指定されているのにエラー発生時に混乱してLocalizable.xcstringsに書き出す。
  • """ ""\(num)" のような、ソースを書いているときにローカライズを意識していないものを書き出す(←気を付ければ避けられる)。

ということがよくある。Localizable.xcstringsに正規のデータを持つ運用をしていると、正規データとこれらが混ざる。書き出しを無効にする設定もあるが、令和感を味わうために使いたい。
よって運用を、

Localizable.xcstringsはレギュラーメンバーから外し、勝手に書き出したもののチェックのみに使う

とする。
Stringカタログは各機能ごとにxxx.xcstringsという専用のものを作り、それをレギュラーメンバーとして使う。これでしばらくやってみようと思う。

.xcstringsの指定は次のようにする。Now画面に関するものはNow.xcstringsにまとめてある。

Text("PlaceChange", tableName: "Now")
String(localized:"MessageTooShortToGet1", table: "Now")

おまけ

Stringカタログに関する他の記事

https://zenn.dev/samekard_dev/articles/436b1adb3f7890

Discussion