スポンサーリンク

【iOS】NSLocalizedString Localizable.strings が反映されない

NSLocalizedString Localizable.strings が反映されない

Localizable.strings 内にゴミがあると正常に NSLocalizedString で
指定したキーが読み込めない。

先日、何気なくいつものようにローカライズ作業をしていると
とある設定だけ反映されない。
NSLogで中身を参照すると、
NSLog(NSLocalizedString(@”TEST002″, nil));

ただ、
「 TEST002 」と表示される(Localizable.strings にキーが存在しない場合はキーがそのまま表示される仕様)。
いくら見なおしてもキーはある・・・

結論を言ってしまうと下記のようになっていた、
“AAA001” = “あああ001”;
“AAA002” = “あああ002”;
“AAA003” = “あああ003”;;

“TEST001” = “テスト001”;
“TEST002” = “テスト001”;
“TEST003” = “テスト001”;
“TEST004” = “テスト001”;

イメージは3行目に「;」が2つある。
コンパイルではエラーにならないためまさかこれが悪さしているとはなかなか気づくことができなかった。
あと、今回はローカライズする量が多かったため少し上の方でセミコロンが重複していたので気付きにかったのも原因。

恐らく内部的にはこのファイルをパースしていて内部でイレギュラーなことが起こっているのですかね?

あとコンパイル時の挙動かもしれないので、xcode のバージョンによっては動作が異なるかもしれません。
xcode 5.0.2 で発生しました。

タイトルとURLをコピーしました