发现了一款翻译平台 crowdin,相比于原有的平台有以下有点:
- 更少的 Markdown 解析错误;
- 在线编辑器是可视化的,不会被误翻译;
- 与 github 集成,可自动更新源文档并同步翻译结果;
- 可同时翻译多个分支(即多个版本),并将翻译结果同时在多个分支上应用。
官网地址:https://crowdin.com/
发现了一款翻译平台 crowdin,相比于原有的平台有以下有点:
官网地址:https://crowdin.com/
crowdin一票
我司国际化业务都是走crowdin的
我目前开了一个测试用的项目,大概已经摸清楚了合适的配置,大家可以上去测试一下。如果确定要迁移,所需准备工作主要有:
迁移后工作步骤如下(没有次序):
若使用 crowdin 提供的 github 集成服务,源文档和翻译后文档需在同一个存储库中,crowdin 会自动将更新后的翻译推送之指定分支。如果选择 JuliaZH.jl 为源文档的库,则需要在其中提供源文档,并可能需要手动更新它。
基线版本由我们自己确定,crowdin 会选择所有分支中最老的(不知道可不可以手动指定)。第 2.2 步中需翻译的词汇量远少于第 2.1 步的,但有一点需要特别注意:翻译被隐藏的词条只针对于当前版本,只应为了准确性才翻译它。在下文中将说明如何判断词条是否为被隐藏的词条。
TODO:关于翻译者和审阅者如何使用 crowdin 的介绍。
说一说这个怎么做吧,有没有什么要注意的地方?
或者说我就把现在的翻译都搬过去就行了?
最近时间比较零碎,想做点不费脑子的东西。
把现有翻译搬过去就行了,Markdown 标签要改一下,如果我们要从 1.0 版本开始翻译,那么是把 transifex 上的现有翻译移到 crowdin 中 1.0 对应的分支,并且要注意两版本间的不同,从 1.1 版本开始就不需要注意这一点。
发现一个小问题,<tag>
这种东西在 crowdin 中估计是有特殊含义。
导致文档显示不正确。
https://crowdin.com/translate/JuliaZH/1432/en-zhcn
另外 XPath 是 code
或 pre/code
的文本看能不能自动填充。
这里确实是有问题的,它好像被认为是某种 xml 标签了,翻译后的文件下载后是这样的(只截取相关部分):
和 `perl` 和 `ruby` 程序类似,还有很多种运行 Julia 代码的方式,运行代码时也有很多选项:
julia [switches] -- [programfile] [args...]将
<dir>
将
<dir>
设置为主项目/环境。 默认的 @. 选项将搜索父目录,直至找到 Project.toml 或 JuliaProject.toml 文件。</td> </tr>
<tr>
<td align="left">
<code>-J</code>, <code>--sysimage <file></code>
</td>
<td align="left">
用指定的镜像文件(system image file)启动
</td>
</tr>
<tr>
<td align="left">
<code>-H</code>, <code>--home <dir></code>
</td>
<td align="left">
设置 <code>julia</code> 可执行文件的路径
</td>
</tr>
<tr>
<td align="left">
<code>--startup-file={yes\|no}</code>
</td>
<td align="left">
是否载入 <code>~/.julia/config/startup.jl</code>
</td>
</tr>
<tr>
<td align="left">
<code>--handle-signals={yes\|no}</code>
</td>
<td align="left">
开启或关闭 Julia 默认的 signal handlers
</td>
</tr>
<tr>
<td align="left">
<code>--sysimage-native-code={yes\|no}</code>
</td>
<td align="left">
在可能的情况下,使用系统镜像里的原生代码
</td>
</tr>
<tr>
<td align="left">
<code>--compiled-modules={yes\|no}</code>
</td>
<td align="left">
开启或关闭 module 的增量预编译功能
</td>
</tr>
<tr>
<td align="left">
<code>-e</code>, <code>--eval <expr></code>
</td>
<td align="left">
执行 <code><expr></code>
</td>
</tr>
<tr>
<td align="left">
<code>-E</code>, <code>--print <expr></code>
</td>
<td align="left">
执行 <code><expr></code> 并显示结果
</td>
</tr>
<tr>
<td align="left">
<code>-L</code>, <code>--load <file></code>
</td>
<td align="left">
立即在所有进程中载入 <code><file></code>
</td>
</tr>
<tr>
<td align="left">
<code>-p</code>, <code>--procs {N\|auto}</code>
</td>
<td align="left">
这里的整数 N 表示启动 N 个额外的工作进程;<code>auto</code> 表示启动与 CPU 线程数目(logical cores)一样多的进程
</td>
</tr>
<tr>
<td align="left">
<code>--machine-file <file></code>
</td>
<td align="left">
在 <code><file></code> 中列出的主机上运行进程
</td>
</tr>
<tr>
<td align="left">
<code>-i</code>
</td>
<td align="left">
交互式模式;REPL 运行且 <code>isinteractive()</code> 为 true
</td>
</tr>
<tr>
<td align="left">
<code>-q</code>, <code>--quiet</code>
</td>
<td align="left">
安静的启动;REPL 启动时无横幅,不显示警告
</td>
</tr>
<tr>
<td align="left">
<code>--banner={yes\|no\|auto}</code>
</td>
<td align="left">
开启或关闭 REPL 横幅
</td>
</tr>
<tr>
<td align="left">
<code>--color={yes\|no\|auto}</code>
</td>
<td align="left">
开启或关闭文字颜色
</td>
</tr>
<tr>
<td align="left">
<code>--history-file={yes\|no}</code>
</td>
<td align="left">
载入或导出历史记录
</td>
</tr>
<tr>
<td align="left">
<code>--depwarn={yes\|no\|error}</code>
</td>
<td align="left">
开启或关闭语法弃用警告,<code>error</code> 表示将弃用警告转换为错误
</td>
</tr>
<tr>
<td align="left">
<code>--warn-overwrite={yes\|no}</code>
</td>
<td align="left">
开启或关闭“method overwrite”警告
</td>
</tr>
<tr>
<td align="left">
<code>-C</code>, <code>--cpu-target <target></code>
</td>
<td align="left">
设置 <code><target></code> 来限制使用 CPU 的某些特性;设置为 <code>help</code> 可以查看可用的选项
</td>
</tr>
<tr>
<td align="left">
<code>-O</code>, <code>--optimize={0,1,2,3}</code>
</td>
<td align="left">
设置编译器优化级别(若未配置此选项,则默认等级为2;若配置了此选项却没指定具体级别,则默认级别为3)。
</td>
</tr>
<tr>
<td align="left">
<code>-g</code>, <code>-g <level></code>
</td>
<td align="left">
设置编译器优化级别(若未配置此选项,则默认等级为2;若配置了此选项却没指定具体级别,则默认级别为3)。
</td>
</tr>
<tr>
<td align="left">
<code>--inline={yes\|no}</code>
</td>
<td align="left">
控制是否允许函数内联,此选项会覆盖源文件中的 <code>@inline</code> 声明
</td>
</tr>
<tr>
<td align="left">
<code>--check-bounds={yes\|no}</code>
</td>
<td align="left">
设置边界检查状态:始终检查或永不检查。永不检查时会忽略源文件中的相应声明
</td>
</tr>
<tr>
<td align="left">
<code>--math-mode={ieee,fast}</code>
</td>
<td align="left">
开启或关闭非安全的浮点数代数计算优化,此选项会覆盖源文件中的 @fastmath 声明
</td>
</tr>
<tr>
<td align="left">
<code>--code-coverage={none\|user\|all}</code>
</td>
<td align="left">
对源文件中每行代码执行的次数计数
</td>
</tr>
<tr>
<td align="left">
<code>--code-coverage</code>
</td>
<td align="left">
等价于 <code>--code-coverage=user</code>
</td>
</tr>
<tr>
<td align="left">
<code>--track-allocation={none\|user\|all}</code>
</td>
<td align="left">
对源文件中每行代码的内存分配计数,单位 byte
</td>
</tr>
<tr>
<td align="left">
<code>--track-allocation</code>
</td>
<td align="left">
等价于 <code>--track-allocation=user</code>
</td>
</tr></tbody> </table>
问了一下,给我的方法是在 <tag>
两边加上反引号,只要在源文档里加上就行了,可以先在 Julia 官方源里提个相关的 PR。