[Swift] StoryBoardを使用しない - 多言語対応

多言語対応してます! って言えるとカッコイイかも? と思い、
必要ないかもしれませんが、仕組みを組み込んでみました。(笑

手順

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)






コメント

このブログの人気の投稿

[Music] DTM初心者のためのドラム打ち込み その2

[Swift] StoryBoardを使用しない - UITextFieldで編集不可にする方法

[Swift] UISliderをカスタマイズしてみる