💊
Stringカタログは意図しないものをLocalizable.xcstringsに色々書き出すので、あえてレギュラーメンバーから外す案
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カタログに関する他の記事
Discussion