はじめに
本記事は Swift Advent Calendar 2022 の2日目の記事です。
昨日も私で iOS 15.0+ではNSLocalizedStringよりString(localized:)を使おう(Swift) でした。
LocalizedStringKey について簡単に説明します。
環境
- OS:macOS Ventura 13.0.1
- Xcode:14.1 (14B47b)
- Swift:5.7.1
「LocalizedStringKey」とは?
文字列ファイル内のエントリの検索に使うキーのことです。
以下の文字列ファイルがある場合、 LocalizedStringKey に "Uhooi" を渡すことで "ウホーイ" を取得できます。
"Uhooi" = "ウホーイ";
Viewのイニシャライザが LocalizedStringKey に対応していると、 String(localized:) などを使ってローカライズされた文字列を取得する必要がなく、そのままキーを渡せるので、記述がスッキリします。
例えば 前日の記事 で私が紹介した記述は、実はもう少しスッキリさせることができます。
import SwiftUI
struct FooView: View {
var body: some View {
VStack {
- Text(String(localized: "Set \(Int(3) + 1)", bundle: .module))
+ Text("Set \(Int(3) + 1)", bundle: .module)
}
}
}
これは Text のイニシャライザが String のみでなく LocalizedStringKey も受け付けているためです。
おわりに
LocalizedStringKey の簡単な説明でした。
以上 Swift Advent Calendar 2022 の2日目の記事でした。
明日も私で何か書きます。