swift 如何本地化标题和描述?(LocalizedStringResource)

cnh2zyt3  于 2022-12-22  发布在  Swift
关注(0)|答案(2)|浏览(281)

我正在处理SwiftUI项目,并为快捷方式应用添加了一些AppIntent。目前我无法本地化标题和描述。标题和描述的类型为LocalizedStringResource(可从iOS16+获得)。
我试着将下面的代码本地化为德语,但是我不知道如何去做。

struct Add_Memory_Shortcut: AppIntent {
    // The name of the action in Shortcuts
    // TODO: Localization
    static var title : LocalizedStringResource = "Create Memory"
    
    // Description of the action in Shortcuts
    // Category name allows you to group actions - shown when tapping on an app in the Shortcuts library
    static var description: IntentDescription = IntentDescription("Create a new memory", categoryName: "Creating")
}

任何帮助或链接,不胜感激。谢谢:)

sd2nnvve

sd2nnvve1#

我尝试了所有方法,只有一个方法有效,将您的本地化字符串添加到

Localizable.strings

如果你想用parameter本地化字符串

//Localizable.strings
        "hello_user%@" = "Hello %@";
//Your AppIntents
        let welcomeMSG = LocalizedStringResource("hello_user\(userName)")
kd3sttzy

kd3sttzy2#

LocalizedStringResource没有大量可用的文档,但请看一下https://developer.apple.com/documentation/foundation/localizedstringresource/3988421-init

init(
    _ keyAndValue: String.LocalizationValue,
    table: String? = nil,
    locale: Locale = .current,
    bundle: LocalizedStringResource.BundleDescription = .main,
    comment: StaticString? = nil
)

对于table,它表示:“包含键-值对的表的名称。如果未提供、为nil或为空字符串,则此值默认为Localizable. strings。”根据我的经验,目前这不是真的,您可能需要显式地将其指向您的翻译,例如:

let myString = LocalizedStringResource("Hello, big world!", table: "Localizable.strings")

如果您这样做,提供适当的翻译,并设置匹配的语言环境,您将看到本地化版本--至少在SwiftUI视图中:

Text(myString)

相关问题