设置
我有 2 个 swift 软件包,我尝试使用 Stirng 目录来管理你的本地化
我想使用这些包中的一些特定键和一些常见键(例如“ok_button_tittle”)
问题陈述
我真的不喜欢在这些包中创建单独(但相同)翻译的想法
我尝试过使用类似的东西
String(
localized: "ok_button_title",
table: "Localizable",
bundle: .main,
comment: "Ok button title"
)
这确实使用了主包的翻译,但是这不会自动在字符串目录中创建键
问题
是否有可能重用主包中的翻译? 也许有一个技巧可以让密钥自动出现在正确的包中?还是bug?
为了使用字符串目录
.xcstrings
在 Swift 包中进行翻译,您必须使用捆绑包 .module
。
如果您还想使用
String(localized:table:bundle:comment)
,您的 Swift 包必须使用 // swift-tools-version: 6.0
在 Package.swift
文件中设置。
因此,例如,您必须使用表名称创建一个
.xcstrings
文件。对于此示例,我们将使用表名称 Shared
。
Shared.xcstrings
enum L10n {
static let okButtonTitle = String(
localized: "ok_button_title",
table: "Shared", // The name of the table that must match the name of the `.xcstrings` file.
bundle: .module, // The bundle is module for Swift Package.
comment: "Ok button title"
)
}
因此,要检索项目中的值,请调用
L10n
。
let buttonTitle = L10n.okButtonTitle