英語607877 views
ヒストリア284143 views
いろは2986023 views
MathPython491378 views
雑学1472593 views
高校化学2913383 views
高校物理158224 views
世界の国560595 views
教育148875 views
高校倫理1433119 views
Help
Tools

English

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"
)

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