🕌

xcode多言語化でちょっと悩んだ

2021/06/12に公開

xcode環境では多言語化作業はけっこう簡単で、翻訳対象とする文字列を

NSLocalizedString("翻訳対象の文字列", comment: "")

としておいて、後はxliffデータをExportしたりImportしたりで、なんとなく動いてくれるのですが、
 例えば、

// state: aho, baka, manuke
NSLocalizedString("Masa is \(state)", comment: "")

のような文字列埋め込み型だとうまく動作しなかった。
 Exportしたxliffデータもおかしいし、Importしてもうまく動作しない。localizable.stringをいじってみてもダメだったので、これはそういう仕様なんだろうと諦めた。
 で、より簡単に

NSLocalizedString("Masa is ", comment: "") + state

として、xliffを作成→翻訳→Importしたら問題なく動作した。はなからこうしておけばよかった。

コード中の文字列だけはなく、Storyboard上で作成したText Fieldのtextデータも同様で、xliffで翻訳文字列をImportしただけでは自動的に言語切り替えされなかった。
 んで、Text Fieldを表示しているViewController上で

TextField.text = NSLocalizedString("This is just a sample.", comment: "")

としておくと、上記の文字列埋め込みと同様にうまくいった。

しょうもないけど、ちょっと悩んだので覚書

Discussion