惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
Y
Y Combinator Blog
博客园_首页
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
B
Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
WordPress大学
WordPress大学
L
LangChain Blog
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Help Net Security

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
Twine by SwiftGG—学习Apple技术文档的好帮手 - 少数派
2023-08-03 · via 少数派

We Are SwiftGG

2014 年 6 月 3 日,Swift 语言发布正式发布。9 天后,SwiftGG 翻译组翻译的《The Swift Programming Language》中文版也带着中国开发者的热忱在 Github 上正式发布。

眨眼间,9 年过去了,SwiftGG 翻译组仍然在持续维护这份文档,期间,有 230+ 名社区成员参与过这个项目,平均每周都会有 1-2 个 commit 被提交以帮助这个项目保持活力。这本教程也从 1.0 版本走到了现在的 5.8 版本。得益于中国各位热心于 Swift 语言事业的开发者的帮助,这共计 71W+ 的文字,带来的不仅有 GitHub 上 2W + 的 Star 数量,还有 Swift 官网的正式推荐!

最开始,我们发起这个项目的初衷非常简单——希望帮助更多的中国开发者学习这门语言,现在看来,它已经达到了我们的目标——在这些年与社区开发者的交流过程中,我们发现很多人都是通过这本电子书完成了 Swift 语言的入门,这让我们感到十分的自豪和骄傲。

虽然取得了这些成绩,我们还是在思考一个问题:如何进一步帮助 Apple 生态内的开发者更好的学习新技术?

我们发现的问题

Apple 这几年在开发者体验上做了很多改进,比如全新 Session 的呈现方式,堪比教科书内容的 Activities(原先叫做 Digital Lounge),还有全新版本的文档中心,都让我们觉得 Apple 变得更加亲切了,不过在我们的观察与交流中发现,对于大部分中国开发者而言,英语仍然是学习新技术的门槛之一。

那么我们应当如何去更好的帮助他们呢?当然,如果保持传统的模式,即一个英文网站对应一个中文网站,或者一个英文文档对应一个中文文档,似乎也能解决问题,但我们认为它并不优雅,为什么这么说?

  • 对于一个英文网站对应一个中文网站的模式,我们认为这种阅读体验是非常糟糕的,不光是要在两个网页间穿梭游走,而且如果维护者没有声明更新日期的话,你极有可能读到最后才发现这份中文文档已经过时很久了,除了这些情况,对于维护者而言也非常麻烦,尤其在后期,把中文网站做的跟英文网站一模一样就会成为一个很重要的课题,这会占用非常多的时间,甚至超过校对技术内容本身的时间,非常低效。
  • 对于一个英文文档对应一个中文文档的模式,我们同样认为它的体验同样不够优雅,除了前面提到的种种问题,这种分布式的文档传播方式,让读者很难感知当前的版本是否有更新,甚至这些文档会被一些渠道进行篡改,进而误导用户,再加上近些年 Apple 推出的交互式教程,例如 SwiftUI 的三个入门教程,这种内容很难用纯静态文档进行呈现,这也会让此种模式的学习体验会进一步变差。

所以在有了这些思考后,我们打算跳出现有的模式,用一种更优雅的方式来帮助开发者打破语言的障碍,学习新的技术!

我们想到的解决方案

Twine by SwiftGG 是我们提出的一套全新的,可拓展的,不以英语为母语的,让开发者能够更优雅的学习 Apple 相关技术的解决方案。

图片

macOS Safari 版本

图片

iOS Safari 版本

在介绍这个方案前,我们先说说这个方案的由来!

大概在几个月前,翻译组内部进行了一次关于如何高效学习 Apple 技术文档的讨论,轻舟提到了一个叫做《沉浸式翻译》(英文名叫做:immersive translate)的浏览器插件,让我们可以试试,果不其然,在试用了这款插件以后,大家都觉得双语展示的效果非常惊艳,阅读体验直接拉满,不过虽然这款插件支持了 OpenAI,DeepL,Google Translate 等翻译工具,但它在 Apple 技术文档的这个垂直领域内,呈现的效果还是不够通俗易懂,经常会出现明显的错误。

但我们认为翻译出来的内容不达标并不是这个工具自身的问题,而是受限于这些翻译工具自身的能力所限,抛开这些翻译内容,我们都觉得这款工具的解决思路是非常值得借鉴的,所以我在第一时间就联系了沉浸式翻译的作者 Owen,并在 Telegram 上跟他深入的沟通了好几次。

也正是基于这几次的沟通,我们才有了 Twine by SwiftGG 的方向,这里非常感谢 Owen 对我们项目的支持和帮助,甚至 Owen 还提出过把《沉浸式翻译》的源代码无偿开源给我们,真的非常感谢他对我们社区工作的支持!

最终我们并没有直接采用 Owen 的代码,一方面是想表达对 Owen 的尊重,另一方面也是考虑到《沉浸式翻译》在未来商业化的可能性,但不管怎样,我们还是真心的感谢 Owen 老师,也预祝他早日财富自由!

好了,我们来说说 Twine by SwiftGG 的方案到底有什么不同?

相比于其他的解决方案,我们认为 Twine by SwiftGG 是一个基于浏览器插件的工具,以社区提供的本地化内容为基础,可以识别 Apple 文档中的英文内容进行双语翻译,进而帮助开发者完成学习任务。

它的整个核心流程如下:

图片

这个方案不仅保留了沉浸式翻译里的用户体验,还融入了社区的力量,能让更多的人参与进来,这也意味着社区的力量会产生更多的语言版本,更高效的迭代速度和更有意思的交流与沟通。

目前你可以在 Safari 和 Chrome 里下载这款浏览器插件 Twine by SwiftGG

  • iOS Safari 插件地址:https://apps.apple.com/cn/app/twine-by-swiftgg/id6451390893
  • macOS Safari 插件地址:https://apps.apple.com/cn/app/twine-by-swiftgg/id6451390893
  • Chrome 插件地址:https://chrome.google.com/webstore/detail/twine-by-swiftgg/kelkibamnlfhadhkaonlpplfiidhbofk

目前我们支持了三个互动式的教学文档,它们分别是:

  • SwiftUI Tutorials:https://developer.apple.com/tutorials/swiftui
  • SwiftUI Concepts Tutorials:https://developer.apple.com/tutorials/swiftui-concepts/
  • Sample Apps Tutorials:https://developer.apple.com/tutorials/sample-apps

我们的野心

或许你会问,为什么只支持 3 个 SwiftUI 的教学文档呢?你们还有更大的想法么?

我们认为在未来,SwiftUI 会是 Apple 生态内非常重要的一项技术,它需要尽快被普及起来,所以在项目初期,我们就选定了 SwiftUI 的三个互动教程作为 Twine by SwiftGG 的试点内容,但我们的野心远不止这些!

我们想帮助更多不同语言的开发者,学习更多的 Apple 技术文档!

我们当然认为 Twine by SwiftGG 还可以做的更好,尤其在今年参加完在 Apple 总部的交流会后,我们认为 SwiftGG 应该承担更多的责任,把视野放的更大,更远,更高,为整个 Apple 生态做出更多的贡献,帮助更多的人来了解这个平台,所以当下,我们的目标有三个:

  • 支持更多的语言:因为前期的分离式设计,所以 Twine by SwiftGG 可以很容易的完成对其他语言的支持和扩展,比如日语,韩语等其他语言,作为内容贡献者,不需要关心建设网站,排版样式,分发渠道等,只需要关心教学内容本身即可。
  • 支持更多的技术文档:Twine by SwiftGG 这种直接基于浏览器的方式,可以很方便的完成对其他教学文档的兼容,还能保持良好的用户体验。比如近期 Apple 官网关于 visionOS 的学习页面。
  • 更高效的利用社区能力建设开发者生态:由于翻译内容完全开源且由技术社区进行驱动,避免了重复造轮子,还有闭门造车的情况,通过这种群策群力的方式,可以更好的建设 Apple 的开发者生态,让更多的人以一种更低的门槛学习技术,享受技术。

不过再大的野心,再好的目标,只有付诸行动才能实现,SwiftGG 翻译组里的小伙伴已经迈出了第一步,那么后面的路又该怎么走呢?

参与我们的项目

目前,Twine by SwiftGG 是一个完全开源的项目,由 3 个仓库构成,他们分别是

  • 浏览器插件仓库:https://github.com/SwiftGGTeam/swiftgg-trans-plugin
  • 数据后台仓库:https://github.com/SwiftGGTeam/swiftui-trans-api
  • 本地化文件库:https://github.com/SwiftGGTeam/swiftui-tutorial-chinese

下一阶段,我们要做的事情有:

  • 浏览器插件方面
    • 支持多语言,例如日语,韩语等
  • 数据后台仓库:
    • 使用 vapor (一款使用 Swift 语言的后端框架)对后台进行重构
    • 优化网页里英文内容的匹配规则,支持更多的页面,例如 visionOS 等内容
  • 本地化文件库
    • 提供更多学习资料的本地化文档
    • 优化翻译文档的格式和内容编辑体验

说了这么多,你可能也发现了,我们要做的事情还有很多,同时随着 visionOS 和 Apple Vision Pro 的发布,属于 Swifter 的春天又来了。不管你有没有经历过 2016 年 Swift 语言在国内社区的火热场景,我们都想诚挚地邀请你加入到 2023 年属于 Swift 语言的新时代。你可以从上面任意一个仓库开始,用你的一行行代码或者文字,为国内 Swift 开发者生态的繁荣添砖加瓦。

图片

我们相信,一个人可能走得很快,但只有一群人才能走得更远,所以让我们一起

Make Apple Developer Ecosystem Great Again!