TranslateKit SDK Logo

TranslateKit SDK

SF Symbols 之于图标,TranslateKit 之于文本!

使用 2000+ 预本地化的字符串和语义键生成,消除 Swift 应用中的本地化开销。让应用本地化变得简单、准确和愉快。

主要特性

1. 预本地化的常用字符串

访问四个类别中超过 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. 以浏览类别和模糊匹配字符串,并在文档弹出窗口中查看英文预览和使用提示

Showcasing Autocompletion in Xcode

2. 智能键生成

#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:) 调用

Macro Expansion in Xcode

您可以在图像中看到简单的 #tk 宏调用扩展为什么,添加一个自动派生的键。 这些语义键有助于对相关翻译进行分组,并为翻译人员和翻译工具(如 TranslateKit Mac 应用程序)提供关键上下文,从而实现更准确的翻译,同时使您的本地化文件更易于维护。

核心字符串 & 特定类别扩展

为了保持 TranslateKit 的轻量级,同时提供全面的覆盖,2,000 多个预本地化的字符串被组织成两个层级

  1. 核心字符串 (250+)
    包含在基本 TranslateKit 包中,这些字符串通常在各种应用程序中使用,使其具有普遍适用性。

  2. 特定类别扩展 (~100 每个类别)
    26 个 App Store 类别中的每一个都有一个额外的模块,其中包含针对该类别定制的字符串。 例如

    • 金融应用程序: import TranslateKitFinance
    • 效率应用程序: import TranslateKitProductivity
    • 健康与健身应用程序: import TranslateKitHealthAndFitness

    这些模块还包括核心字符串,因此您只需要导入与您的应用程序类别匹配的模块即可。

通过这种模块化方法,TranslateKit 保持轻量级,仅向您的应用程序添加约 1MB,使其适用于任何项目 – 无论大小。

Swift Package 用法

对于 Swift 包,使用 #tkm 代替 #tk 来引用正确的 String Catalog 文件

  1. defaultLocalization 添加到您的清单
let package = Package(
   name: "FormKit",
   defaultLocalization: "en",
   // ...
)
  1. Localizable.xcstrings 添加到您的模块(右键单击文件夹 > "New File from Template…" > String Catalog)

  2. #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