構造体


LocalizedStringResource


別のプロセスからアクセスできる、ローカライズ可能な文字列への参照。



iOS 16.0+ iPadOS 16.0+ macOS 13.0+ Mac Catalyst 16.0+

tvOS 16.0+ watchOS 9.0+ visionOS 1.0+ Xcode 14.0+

struct LocalizedStringResource





概観


LocalizedStringResource を使用して、検索を後に延期するローカライズ可能な文字列を提供します。


String.LocalizationValue を受け取るイニシャライザを使用してローカライズされた文字列またはローカライズされた属性付き文字列を作成すると、それらのイニシャライザはローカライズされた文字列をすぐに検索します。後で検索を実行したい場合は、この LocalizedStringResource 型を使用してローカライズ可能な文字列を参照します。次に、ローカリゼーションを実行する必要がある場合は、次のように LocalizedStringResource パラメータを取るイニシャライザから String または AttributedString を作成します。



  • String: init(localized:) または init(localized:options:)

  • AttributedString: init(localized:), init(localized:including:), または init(localized:including:)

  • このアプローチにより、ローカライズ可能な文字列を、異なるロケールを使用するかもしれない完全に別個のプロセスに提供できます。たとえば、titledescription のプロパティに文字列ではなく LocalizedStringResource を使用する、UserAction というデータモデル型を持つアプリについて考えてみましょう。



    1. public protocol UserAction {
    2. static var title: LocalizedStringResource { get }
    3. static var description: LocalizedStringResource { get }
    4. }


    このアプリ (またはその埋め込まれたフレームワークの 1 つ) は、これらの LocalizedStringResource メンバーを使用して、ローカライズされた文字列の検索を延期します。通常、これは XPC 経由で別のプロセスを呼び出すときに発生します。


    1. public func perform(action: UserAction) {
    2. ...
    3. // Send text to another process via XPC or similar.
    4. performActionOutOfProcess(title: action.title, description: action.description)
    5. }


    その後、他のプロセスが呼び出しを受信すると、ローカライズされた文字列を解決する前に、LocalizedStringResource 内の locale を変更できます。


    1. func performActionOutOfProcess(title: LocalizedStringResource,
    2. description: LocalizedStringResource) {
    3. // Set resource locales to match the current locale
    4. // of the separate process.
    5. var fixedTitle = title
    6. fixedTitle.locale = .current
    7. var fixedDescription = description
    8. fixedDescription.locale = .current
    9. // Look up localized strings.
    10. let titleString = String(localized: fixedTitle)
    11. let descriptionString = String(localized: fixedDescription)
    12. // Use a correctly localized title/description.
    13. }


    App Intents (App Intents)フレームワークは LocalizedStringResource を使用して、ローカライズされた文字列の遅延した解決を実行します。これにより、Siri UI は、インテントを提供するアプリとは異なるローカリゼーション設定を使用できる可能性があります。





    トピックス


    ローカライズされた文字列リソースの作成


    init(String.LocalizationValue, table: String?, locale: Locale, bundle: LocalizedStringResource.BundleDescription, comment: StaticString?)

    ローカライズキーとそのバンドルプロパティからローカライズされた文字列リソースを作成します。


    init(StaticString, defaultValue: String.LocalizationValue, table: String?, locale: Locale, bundle: LocalizedStringResource.BundleDescription, comment: StaticString?)

    静的文字列とそのバンドルプロパティからローカライズされた文字列リソースを作成します。



    リテラル値からローカライズされた文字列リソースを作成


    init(stringLiteral: String)

    指定された文字列リテラルからローカライズされた文字列リソースを作成します。


    typealias LocalizedStringResource.StringLiteralType

    文字列リテラルイニシャライザが使用する型。


    init(unicodeScalarLiteral: String)

    与えられた値に初期化されたインスタンスを作成します。


    typealias LocalizedStringResource.UnicodeScalarLiteralType

    Unicode スカラーリテラルイニシャライザが使用する型。


    init(extendedGraphemeClusterLiteral: String)

    与えられた値に初期化されたインスタンスを作成します。


    typealias LocalizedStringResource.ExtendedGraphemeClusterLiteralType

    拡張書記素クラスターリテラルイニシャライザが使用する型。


    init(stringInterpolation: String.LocalizationValue.StringInterpolation)

    与えられた文字列補間からローカライズされた文字列リソースを作成します。


    typealias LocalizedStringResource.StringInterpolation

    ローカライズされた文字列リソースを作成するための文字列補間に使用する型。



    リソースプロパティにアクセス


    let key: String

    ローカライズされた文字列を検索するために使用するキー。


    let defaultValue: String.LocalizationValue

    リソースのデフォルト値。


    let table: String?

    キー値のペアを含む表の名前。


    var bundle: LocalizedStringResource.BundleDescription

    表の文字列ファイルを含むバンドル。


    enum LocalizedStringResource.BundleDescription

    ローカライズされた文字列の検索に使用するバンドルの場所であり、メインバンドル、または特定のファイル URL のバンドルなど。


    var locale: Locale

    文字列リソースからローカライズされた文字列を検索するために使用するロケール。



    リソースの説明


    var localizedStringResource: LocalizedStringResource

    インスタンスの説明を提供するのに役立つリソース。



    コード化と復号化


    init(from: any Decoder)

    与えられた復号器から復号して新しいインスタンスを作成します。


    func encode(to: any Encoder)

    この値を与えられたエンコーダにコード化します。



    ローカライズされた文字列リソースの比較


    static func == (LocalizedStringResource, LocalizedStringResource) -> Bool

    2 つの値が等しいかどうかを示すブール値を返します。


    static func != (LocalizedStringResource, LocalizedStringResource) -> Bool

    2 つの値が等しくないかどうかを示すブール値を返します。






    関連


    以下に準拠


    CustomLocalizedStringResourceConvertible


    Decodable


    Encodable


    ExpressibleByStringInterpolation






    以下も見よ


    ローカリゼーション


    struct Locale

    プレゼンテーション用のデータの書式設定に使用される言語的、文化的、および技術的な規約に関する情報。


    class NSOrthography

    自然言語テキストの言語内容の説明。通常はスペルチェックや文法チェックに使用されます。


    func NSLocalizedString(String, tableName: String?, bundle: Bundle, value: String, comment: String) -> String

    ローカライズをエクスポートするときに Xcode が生成する表からローカライズされた文字列を返します。


    protocol CustomLocalizedStringResourceConvertible

    プロセス外でローカライズ可能な説明を提供する型。


    struct URLResource

    バンドル内の特定のファイル URL にあるリソース。















    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ