将 localizable.strings 添加到 Swift 包?
Add localizable.strings to Swift Package?
在我以前的框架中,我有一个 localizable.strings 文件,其中包含一些用于本地化的全局条目。在左侧车道上,Xcode 中有一个“本地化”按钮可以执行此操作。
如何使用 Swift 包管理器执行此操作?
SPM 从 5.3 开始支持资源。如果仍有问题,请检查 , and 。
(已过时)
这里有一些可能适合某些用例的临时解决方法。
如果您的框架仅随应用程序分发,您可以将本地化资源移动到应用程序并通过其包引用它们。
在应用程序中添加 Localization.strings
文件,包 ID my.app.bundle
。
从您的框架中编写:
let bundle = Bundle(identifier: "my.app.bundle")!
NSLocalizedString("SomeKey", tableName: "Localization", bundle: bundle, value: "SomeKey", comment: "")
您可以对图像做类似的事情。
另一种选择是将您的资源作为源代码存储在框架中。这需要编码,例如,Base64,然后解码以访问资源。 Base64 使用更多 space,但这可能不是问题,具体取决于您的情况。
要在 SPM 中添加可本地化的字符串文件,可以从 swift-tools-version: 5.3
、
Package.swift
的变化,
需要设置 defaultLocalization: "en"
然后在目标中添加资源,如
包结构应该是这样的,
并通过包中的代码访问可本地化的字符串,
在我以前的框架中,我有一个 localizable.strings 文件,其中包含一些用于本地化的全局条目。在左侧车道上,Xcode 中有一个“本地化”按钮可以执行此操作。
如何使用 Swift 包管理器执行此操作?
SPM 从 5.3 开始支持资源。如果仍有问题,请检查
(已过时)
这里有一些可能适合某些用例的临时解决方法。
如果您的框架仅随应用程序分发,您可以将本地化资源移动到应用程序并通过其包引用它们。
在应用程序中添加
Localization.strings
文件,包 IDmy.app.bundle
。从您的框架中编写:
let bundle = Bundle(identifier: "my.app.bundle")!
NSLocalizedString("SomeKey", tableName: "Localization", bundle: bundle, value: "SomeKey", comment: "")
您可以对图像做类似的事情。
另一种选择是将您的资源作为源代码存储在框架中。这需要编码,例如,Base64,然后解码以访问资源。 Base64 使用更多 space,但这可能不是问题,具体取决于您的情况。
要在 SPM 中添加可本地化的字符串文件,可以从 swift-tools-version: 5.3
、
Package.swift
的变化,
需要设置 defaultLocalization: "en"
然后在目标中添加资源,如
包结构应该是这样的,
并通过包中的代码访问可本地化的字符串,