SF Symbols 之于图标,TranslateKit 之于文本!
使用 2000+ 预本地化的字符串和语义键生成,消除 Swift 应用中的本地化开销。让应用本地化变得简单、准确和愉快。
访问四个类别中超过 2,000 个即用型字符串,支持约 40 种 Apple 平台语言。 这些与 官方支持的 iOS 系统语言 相匹配,并尽可能利用 Apple 自己的翻译,确保与系统 UI 的一致性。
由于它们是预本地化的,因此不会向您的 String Catalog 添加条目 – 只需直接使用它们
// Actions: Interactive UI elements
Button(TK.Action.save) { saveData() } // "Save" → "Sichern" (German)
// Labels: Non-interactive text
Label(TK.Label.notifications, systemImage: "bell") // "Notifications" → "Benachrichtigungen"
// Placeholders: Temporary text
TextField(TK.Label.firstName, text: $firstName, // "First Name" → "Vorname"
prompt: TK.Placeholder.firstNameExample) // "e.g. Jane" → "z.B. Erika"
// Messages: Full sentences
Text(TK.Message.anErrorOccurred) // "An Error Occurred" → "Ein Fehler ist aufgetreten"
通过自动完成功能轻松发现正确的翻译 – 输入 TK.
以浏览类别和模糊匹配字符串,并在文档弹出窗口中查看英文预览和使用提示
#tk
宏通过根据代码上下文自动生成语义键,消除了手动键管理的繁琐工作
struct SettingsView: View {
let documentName: String
var body: some View {
// Generates key: SettingsView.Body.saveChanges
Button(#tk("Save Changes")) { handleSave() }
// Add context with 'c' parameter to help translators
Text(#tk("Save changes to \(documentName)?",
c: "e.g. 'Save changes to MyNumbers.csv'"))
}
}
String Catalogs 使维护 Strings 文件时代的最佳实践变得具有挑战性,当时使用语义键有助于对相关翻译进行分组。 该宏重新带来了这一优势,同时保留了 String Catalogs 的优点 - 您可以获得语义键,而无需编写冗长的 String(localized:defaultValue:comment:)
调用
您可以在图像中看到简单的 #tk
宏调用扩展为什么,添加一个自动派生的键。 这些语义键有助于对相关翻译进行分组,并为翻译人员和翻译工具(如 TranslateKit Mac 应用程序)提供关键上下文,从而实现更准确的翻译,同时使您的本地化文件更易于维护。
为了保持 TranslateKit 的轻量级,同时提供全面的覆盖,2,000 多个预本地化的字符串被组织成两个层级
核心字符串 (250+)
包含在基本 TranslateKit
包中,这些字符串通常在各种应用程序中使用,使其具有普遍适用性。
特定类别扩展 (~100 每个类别)
26 个 App Store 类别中的每一个都有一个额外的模块,其中包含针对该类别定制的字符串。 例如
import TranslateKitFinance
import TranslateKitProductivity
import TranslateKitHealthAndFitness
这些模块还包括核心字符串,因此您只需要导入与您的应用程序类别匹配的模块即可。
通过这种模块化方法,TranslateKit 保持轻量级,仅向您的应用程序添加约 1MB,使其适用于任何项目 – 无论大小。
对于 Swift 包,使用 #tkm
代替 #tk
来引用正确的 String Catalog 文件
defaultLocalization
添加到您的清单let package = Package(
name: "FormKit",
defaultLocalization: "en",
// ...
)
将 Localizable.xcstrings
添加到您的模块(右键单击文件夹 > "New File from Template…" > String Catalog)
将 #tkm
宏与可选的注释一起使用
struct FormValidator {
static func validatePassword(_ password: String) -> String? {
guard password.count >= 8 else {
return #tkm("Password must be at least 8 characters")
}
return nil
}
}
本地化 Swift 包的常见原因是它们可能包含 UI 元素(例如,模块化应用程序)或者它们可能提供错误描述,在大多数情况下应该进行本地化。
欢迎贡献 – 尤其是添加和更正!
请随时提交 Pull Request。 您不需要自己将添加的条目本地化为所有语言,只需提供您说的语言,我们将使用 TranslateKit 处理其他语言。 但是,在添加新条目时,请保持条目按字母顺序排列!
对于较大的更改,请先提出一个 issue 以讨论您想要更改的内容。
我为自己的独立应用程序创建了这个库(下载并评价它们以表达您的感谢)
App Icon | App Name & Description | 支持的平台 |
---|---|---|
![]() |
TranslateKit:应用本地化 由 AI 驱动的应用本地化,具有无与伦比的准确性。 快速且简单:AI 和校对,125+ 种语言,市场洞察。 预算友好,免费试用。 |
Mac |
![]() |
FreemiumKit:面向独立开发者的应用内购买 简单的应用内购买和订阅:自动化、付费墙、A/B 测试、实时通知、PPP 等。 |
iPhone, iPad, Mac, Vision |
![]() |
Pleydia Organizer:电影和连续剧重命名器 简单、快速和智能的媒体管理,适用于您的电影、电视节目和动漫收藏。 |
Mac |
![]() |
FreelanceKit:项目时间跟踪 简单且价格合理的时间跟踪,为所有设备提供原生体验。 包括 iCloud 同步和 CSV 导出。 |
iPhone, iPad, Mac, Vision |
![]() |
CrossCraft:自定义填字游戏 创建主题鲜明且个性化的填字游戏。 自己解决它们或分享它们以挑战其他人。 |
iPhone, iPad, Mac, Vision |
![]() |
FocusBeats:番茄工作法 + 音乐 通过经过验证的番茄工作法和精选的 Apple Music 播放列表和主题,实现深度专注。 在休息期间自动暂停音乐。 |
iPhone, iPad, Mac, Vision |
![]() |
Posters:在家发现电影 自动更新和交互式海报,适用于您的家庭,提供预告片、放映时间和流媒体服务链接。 |
Vision |