[Swift] StoryBoardを使用しない - 多言語対応
多言語対応してます! って言えるとカッコイイかも? と思い、
必要ないかもしれませんが、仕組みを組み込んでみました。(笑
先ほど追加した「Localizable.string」を選択。
書式は、"任意のID" = "テキスト"; となります。
セミコロン(;)で区切らないと、コンパイルが通りませんので注意です。
Localizable(English)
Localizable(Japanese)
NSLocalizedStringでIDに対応するテキストが取得できます。
こんな感じです。
これで、英語と日本語に対応できました。
必要ないかもしれませんが、仕組みを組み込んでみました。(笑
手順
1. Stringファイルを追加する
ファイル名は「Localizable.string」とします。2. プロジェクトのプロパティを開く
3. Localizationsで言語を追加
+ ボタンを押して、言語を選択する。先ほど追加した「Localizable.string」を選択。
4. Stringファイルが言語ごとに用意されていることを確認
Localizable.stringを編集
言語ごとにファイルが用意されているので、言語に合わせてテキストを編集します。書式は、"任意のID" = "テキスト"; となります。
セミコロン(;)で区切らないと、コンパイルが通りませんので注意です。
Localizable(English)
"label-RoundUnit" = "Round Unit"; "label-Rounding" = "Rounding"; "label-TotalAmount" = "Total Amount"; "label-CalcTotal" = "Calc.Total"; "label-CalcResult" = "Calc.Result"; "CalcTypeDIF" = "Difference"; "CalcTypeFIX" = "Fix";
Localizable(Japanese)
"label-RoundUnit" = "丸め単位"; "label-Rounding" = "端数処理"; "label-TotalAmount" = "合計金額"; "label-CalcTotal" = "計算合計"; "label-CalcResult" = "計算結果"; "CalcTypeDIF" = "差額"; "CalcTypeFIX" = "固定";
コーディング
NSLocalizedStringでIDに対応するテキストが取得できます。
こんな感じです。
let lblAmount = UILabel() lblAmount.text = NSLocalizedString("label-TotalAmount", comment: "")
これで、英語と日本語に対応できました。
日本語(Japanese) | 英語(English) |
コメント
コメントを投稿