最佳实践

本文是作为开发者,写给Xliff Tool用户的最佳实践指南。本指南的目的是释放Xliff Tool的全部功能。参考本指南,并将其融入您的工作流程。

翻译最佳实践

翻译有两种模式,ML翻译、本地大模型翻译。首选是ML翻译。以下是两种翻译的特点:

ML翻译

  • 无额外费用。
  • 采用离线方式时翻译完全在本地进行,私密性强。
  • 翻译为直译,准确度高。
  • 翻译速度快。

本地大模型翻译

  • 无额外费用。
  • 翻译在本地进行,私密性强。
  • 翻译可以通过提示词润色,但受限于本地可以运行的大模型一般都是限缩的版本。翻译质量不稳定。有时甚至会出现无法翻译为目标语言的问题。
  • 不同的模型对不同语言的翻译的水准也各不相同,可能需要寻找才能找到适合的模型。
  • 翻译速度根据机器配置和选择的模型的大小而不同,相对ML更慢。

核对的最佳实践

核对有两种方式,一种是直接核对,一种是交叉核对。推荐交叉核对。

语法检查最佳实践

在使用Ollama进行语法检查时,需要注意所选择的模型是否支持所选择的语言。这个一般可以从模型的技术文档中查到。

推荐流程

翻译的一般流程:Xcode导出,翻译,验证翻译,Xcode导入。

  1. 对于熟悉的语言,可以使用ML翻译,然后人工审核验证。
  2. 对于不熟悉的语言,可以使用ML翻译,然后通过大模型进行验证。大模型验证可以通过交叉验证的方式,提高准确率。

大模型交叉验证是指通过已经验证通过的目标,来进行翻译验证,而不是使用源进行验证。

比如英文的check具有检查和支票两种意思。假设我们需要将英文的check翻译成日文。那么在验证时,仅仅通过源check,我们没法知道这个check翻译成日文的检查还是支票。此时,我们可以使用已经验证通过的第三方来进行验证。比如我们已经有英文到中文的翻译,那么我们就可以使用中文翻译来验证这个日文。比如中文是检查,但日文是支票。那就证明日文的翻译有误,需要手动修改。

下面详细叙述翻译的各个步骤。

1. Xcode导出多语言文件到iCloud下的Xliff Tool文件夹

Xliff Tool使用CloudKit同步内部数据库。这不包含Xcode导出的xcloc文件。因此,如果你也想同步这些文件,就需要将它们放入能够自动同步的文件夹内。Xliff Tool在iCloud文件夹下预先创建了一个应用专属文件夹,推荐用户使用。

你也可以使用其它同步类型的服务,比如Dropbox或者OneDrive之类的。

2. 打开需要翻译的文件

3. AI翻译

推荐在macOS下载常用的语言的离线翻译包。这样翻译的速度可以提高。具体的使用方法可以看这篇文章:使用ML翻译

大模型翻译有时会过多解释要翻译的内容。因此需要在验证时投入更多精力。

4. 检验翻译

对于熟悉的语言,建议用户使用手动审核。这样可以最大提高准确率。同时,手动审核的结果,还可以用于大模型交叉审核。从而提高用户不熟悉语言的翻译的准确率。

对于不熟悉的语言,可以使用大模型交叉审核。

在macOS中,用户可以使用cmd+回车来确认审核。
在iOS/iPadOS中,用户可以通过在目标文本编辑视图上方,向左滑动来确认审核。

5. 保存。

全部翻译完成后,用户就可以将结果保存。

保存可以随时进行。如果翻译的不全,则保存的结果就是部分结果。值得注意的是,即便没有全部确认,只要是翻译过的内容,就都会被保存。不过此时获得的,就只是翻译过的内容,而不是确认并修改完成的最终结果。

6. Xcode导入翻译好的多语言文件,翻译完成。

关于同步

Xliff Tool共有两部分的数据需要同步。一部分是Xcode导出的多语言文件;一部分是Xliff Tool存储于内部的数据库。

前一部分,Xliff Tool不负责同步,但Xliff Tool在iCloud Drive创建了专属的文件夹,你可以使用它,它是由iCloud自动同步的。你也可以使用其它的同步方案。

后一部分,Xliff Tool使用CloudKit进行同步。

如果你同时在多个设备上打开同一个文件,二者默认会按照相同的顺序提示你操作,并且你在其中一个进行翻译或确认,另一个的界面也会做出相应的改变。

语法检查

Xliff Tool 4.0版新增了语法检查功能。它包含两部分的功能。

逐字检查

逐字检查是指在所有语言下,源和目标都相同的翻译。这类词,我们应该从翻译文件中剔除。因为它们无需翻译。在SwiftUI下,可以使用类似Text(verbatim: "666")这样的方式来避免文本被翻译。

点击文本,可以将文本复制到剪贴板。

如果你已经采用了Xcode最新的String Catalog功能。那么在使用逐字检查的时候可能会遇到问题。你在Xcode改动过的代码如Text(verbatim: "666"),仍旧会在翻译中出现。根据我们的调查,这个String Catalog的问题。解决办法,就是删除掉String Catalog,然后重新导出多语言文件即可。

可选的方式还包括删除掉String Catalog,然后再重新添加一个。

长句检查

长句检查可以检查句子的拼写和语法。它使用大模型进行语法检查。未了提高准确性,Xliff Tool允许你同时使用3个不同的大模型来进行综合比较。

语言检查,查找的都是源的问题。因此,在查找到问题之后,需要在Xcode中对于源进行修改,然后再重新导出需要翻译的文件。

逐字检查需要在翻译完成后才能检查。
长句检查则需要要一开始就检查。