LocalizedStringKeyで一部の文字列をローカライズしたい場合(ワイルドカード)

この記事は約2分で読めます。

Localizable.stringにおいて、ワイルドカード「%@」を使うことができます。

%@を使うことで、一部の文字列をローカライズしたい場合に対応することができます。

使い方

まずローカライズしたい文字列の内、動的に変化する可能性がある部分を「%@」と記述します。

/* 
  Localizable.strings
  samplecode
*/
"My favorite vegetable is %@" = "私が好きな野菜は %@ です";

すると、下の画像のように「My favorite vegetable is 」が「私の好きな野菜は%@です」にローカライズされ、にんじん、たまねぎ、じゃがいもの部分はそのまま表示されます。

import SwiftUI

struct SheetView: View {
    let vege = ["にんじん", "たまねぎ", "じゃがいも"]
    var body: some View {
        VStack {
            ForEach(vege, id: \.self) { item in
                Text(LocalizedStringKey("My favorite vegetable is \(item)"))
            }
        }
    }
}
タイトルとURLをコピーしました