字符串目录不适用于 Swift 包

问题描述 投票:0回答:1

无法使新的 String Catalog 与我的 Swift 包(命令行应用程序)一起使用

这是我的

Package.swift

// swift-tools-version:5.9

import PackageDescription

let package = Package(
    name: "MyPackageName",
    defaultLocalization: "en",
    platforms: [.macOS(.v13)],
    targets: [
        .executableTarget(
            name: "MyPackageName",
            dependencies: [],
            resources: [
                .process("_Resources/Localizable.xcstrings")
            ])
    ]
)

这是我在代码中使用它的方法:

print(String(localized: "aaaa"))
// or
print(String(localized: "aaaa", table: "Localizable", bundle: .main, locale: Locale(identifier: "en"), comment: nil))
// or
print(String(localized: "aaaa", defaultValue: .init(stringLiteral: "b")))
// or
print(String(localized: "aaaa", table: "Localizable", bundle: .main, locale: Locale(identifier: "en"), comment: ""))
// or
// I've tried almost all combinations)

我确信该文件已正确链接,因为我可以在

Build
中的
MyPackageName_ MyPackageName.bundle
文件夹中找到本地化文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aaaa</key>
    <string>bbbb</string>
</dict>
</plist>

对此有什么想法吗?

swift xcode localization swift-package-manager swift-package
1个回答
0
投票

事实证明,答案非常简单。您只需要明确指定捆绑包)

String(localized: "key", bundle: .module)
© www.soinside.com 2019 - 2024. All rights reserved.