基于Transifex平台的文档维护方案

前面这个帖子 Transifex翻译平台的使用 介绍了Transifex平台和翻译者的使用方法,这个帖子主要讨论文档编译,host等文档维护相关的方案。

现行方案

目前,JuliaZH.jl的翻译流程是基于GitHub的,翻译者通过提PR的方式直接向JuliaZH.jl提供翻译,当PR被merge到master之后,通过CI和Documenter.jl编译并部署文档,再同步境内服务器:

整个流程为:

  1. 翻译者提PR进行翻译工作
  2. master更新
  3. 触发Travis,测试
  4. Documenter.jl build 文档,推送到gh-pages分支
  5. 触发webhook,发送事件给境内服务器上的Git-Auto-Deploy (通过suprevisor监听,挂了后自动重启)
  6. 执行git pull逻辑,更新文档
  7. 用户请求docs.juliacn.com,nginx重定向到latest目录下

Transifex方案

此方案只有第一步与上述方案不同,翻译者通过Transifex进行翻译工作,由JuliaZH.jl的维护者从Transifex同步译文到本地,再向JuliaZH.jl提交PR,之后步骤与上面2-7一样:

  1. Transifex平台上的译文被翻译者更新
  2. 维护者定期同步Transifex上的译文到本地,并push到JuliaZH的transifex分支, 保持transifex分支与Transifex同步
  3. PR: merge transifex到master
  4. master更新,后续步骤一致

第二步同步Transifex上的译文到本地,使用Transifex客户端的tx pull即可,如果有必要可以做成自动的。Transifex方案相关PR:

1 个赞

这贴不知道为什么会倒计时被锁 @Roger

我清除了定时器,不知道为啥会冒出来。

同步那个地方可以稍微介绍详细点?
感觉一般没用过的不太熟悉,正在看文档中…

大致弄明白了,有些小问题:

$ tx pull       
tx ERROR: File filter 'doc/src/manual/arrays.md' does not contain the '<lang>' placeholder

如果能fix这个error之后,我的理解是,只需要切换到transifex分支,然后每天定时执行tx pull拉取更新,然后git push到远端,然后远端隔一段时间发起一次PR?

tx似乎强制用户在filter中添加<lang>的wild mark, 但如果这样做,就需要先tx pull到一个<lang>/…/…的路径下, 然后再cp到documenter要求的正确路径。

我试了一下,如果pull的时候本地没有doc/src/manual/arrays.md这个文件,那么tx pull就可以正常把文件拉到“不合法”的file filter路径。

明白了,我感觉得分开两个目录,也是可以的
只要现在同步好已经翻译好的文档即可。

好的,那我改一下配置文件,把路径前都加上<lang>, 然后在doc/make.jl里加一步cp应该就可以了。

哇,忽然觉得,如果你都写在make.jl里的话,可以设置一个daily的CI,然后后面就都自动同步了?

定时器应该只有没有分类才会有。

@Gnimuc tx pull 是这个的客户端?

嗯,客户端的命令 https://docs.transifex.com/client/introduction

感觉现在问题已答锁也不需要,因为论坛帖子多了才需要防挖坟,估计我们这短期内不会有太多人 :sweat_smile:

Done
已经关闭默认锁定

2 个赞

Localize.jl的docstring替换功能应该不受Transifex方案的影响吧?我有空先把那个匿名TypeVar的问题修了。

不影响的, 跟原方案的区别只是多了一个Transifex协作平台,替换了在GitHub review的过程

突然发现这平台给试用 15d ,貌似也没有免费版,收费还贼贵

不过好像可以认证为开源组织

What are the basic requirements to qualify as an Open Source account?

We are proud and humbled to be hosting the largest Open Source translation community in the world. We offer Transifex for free to Open Source projects that have no funding, revenue, and/or commercialization model. If you have a question whether your organization qualifies for our Open Source program, please contact us.

我们现在就是使用的开源版

1 个赞