中学社会667457 views
教育149067 views
いろは2993462 views
高校化学2915516 views
高校倫理1434987 views
高校日本史190006 views
数学講師2862298 views
LaTeX958345 views
MathPython493120 views
中学数学622001 views

SwiftUI Text のローカライズ

SwiftUI の Text は、ローカライズを強力にサポートしています。文字列リテラルを渡すと、自動的にローカライズキーとして扱われます。

自動ローカライズ

Text に文字列リテラルを渡すと、Localizable.strings ファイルから対応する翻訳を探します。

Text("Hello")  // "Hello" をキーとして翻訳を検索

Localizable.strings(日本語):

"Hello" = "こんにちは";

LocalizedStringKey

明示的に LocalizedStringKey を使うこともできます。

let key: LocalizedStringKey = "greeting"
Text(key)

文字列補間

LocalizedStringKey は文字列補間もサポートしています。

let name = "田中"
Text("Hello, \(name)!")

Localizable.strings:

"Hello, %@!" = "こんにちは、%@さん!";

verbatim でローカライズを無効化

ローカライズさせたくない動的な文字列は verbatim: を使います。

let userInput = "何かのテキスト"
Text(verbatim: userInput)

String(localized:) を使う方法

iOS 15 以降では String(localized:) でローカライズした文字列を取得できます。

let message = String(localized: "welcome_message")

テーブルを指定する場合:

let message = String(localized: "greeting", table: "Onboarding")

コメントの追加

翻訳者向けのコメントを追加できます。

Text("Order", comment: "Button title for placing an order")
let text = String(
    localized: "Order",
    comment: "Button title for placing an order"
)

ローカライズを意識した実装をしておくと、多言語対応がスムーズに進みます。