iPhone アプリで文字列の一部がローカライズされなくなる

SPECIAL


ローカライズしたはず文字列の中で置き換わらないものがある

iPhone アプリを制作していたとき、NSLocalizedString でローカライズしたはずの文字列が、うまく変換できないことがありました。

それも 1 つや 2 つならまだしも、Localizable.strings の最初の方で定義したものは上手く変換されるものの、ある程度より下に定義したものが軒並み変換されないという状況でした。

 

今まで変換できていたものも、いつの間にか変換できなくなっていて、不思議に思って原因を調べていたところ、変なところにセミコロン ( ; ) がひとつ紛れ込んでいたことが原因でした。

"Localized String"; = "ローカライズされた文字列";

このような感じで、本来は行末だけにしか存在しないはずのセミコロンが、最初の文字列のところにもセミコロンが記載されています。

こうなると、この行より下に定義されているローカライズ文字列が正常に機能しないようでした。ビルド時にもエラーがいっさいでなかったので気づきにくいところですけど、もしも文字列の一部がローカライズされくなるような不可思議な現象が発生したら、この辺りも疑ってみると良いかもしれないです。