714
edits
(翻译 Translator documentation) |
(翻译 Translator documentation) |
||
| Line 16: | Line 16: | ||
Dolibarr的语言文件已经被翻译成多种语言。 | Dolibarr的语言文件已经被翻译成多种语言。 | ||
英语是其默认的语言,并且其内容会始终保持完整。其他语言的文档是否完整依赖于自愿者的贡献。 本教程帮助您针对未被翻译或者翻译错误的文档完成语言翻译工作。 | |||
Dolibarr可以用三种不同的方式翻译: | Dolibarr可以用三种不同的方式翻译: | ||
| Line 44: | Line 44: | ||
===使用TX 命令行客户端 (for Dolibarr [[:Category:Yoda]] team)=== | ===使用TX 命令行客户端 (for Dolibarr [[:Category:Yoda]] team)=== | ||
这部分描述了如何从命令行中使用Transifex。然而,这是保留给Dolibarr管理员用户(Yoda团队)的,用于将Transifex与Dolibarr主源码同步。 | |||
[http://docs.transifex.com/developer/client/ 官方文档] | 更多信息请参考Transifex [http://docs.transifex.com/developer/client/ 官方文档] | ||
====TX 客户端设置==== | ====TX 客户端设置==== | ||
首先要安装 TX 客户端,操作系统使用 Debian/Ubuntu/Mint: | |||
<source lang="bash"> | <source lang="bash"> | ||
apt-get install python-pip | apt-get install python-pip | ||
pip install transifex-client | pip install transifex-client | ||
</source> | </source> | ||
然后你必须初始化你的TX环境。这是通过进入Dolibarr项目根目录运行 | 然后你必须初始化你的TX环境。这是通过进入Dolibarr项目根目录运行 tx init ''来完成的。'' | ||
<source lang="bash"> | <source lang="bash"> | ||
cd git/dolibarr | cd git/dolibarr | ||
tx init | tx init | ||
</source> | </source> | ||
接受覆盖配置文件。保留Transifex实例的默认值,然后输入您的Transifex登录名和密码。 | |||
在此之后,一个. | 在此之后,一个.transifexrc文件已经创建到您的HOME目录,并且一个通用配置文件被创建为项目根目录中的'''.tx/config'''。 | ||
目录的内容看起来会是这样的: | |||
<code><pre> | <code><pre> | ||
. | . | ||
| Line 88: | Line 86: | ||
</pre></code> | </pre></code> | ||
当前的配置文件可以从 https://github.com/Dolibarr/dolibarr/tree/develop/.tx 下载,将其放入.tx目录,覆盖由 tx init ''创建的配置文件。'' | |||
此项目配置文件用于存储项目的详细信息和文件到资源的映射。 | |||
这是配置文件包含的内容的示例: | |||
<source lang="ini"> | <source lang="ini"> | ||
| Line 106: | Line 104: | ||
</source> | </source> | ||
下面是配置文件中使用的片段和选项的说明: | |||
<nowiki>[main] section</nowiki> | <nowiki>[main] section</nowiki> | ||
在本片段中,我们有项目范围的选项,例如:所有项目的默认transifex主机。如果需要的话,这些可以被每个资源覆盖。 | |||
<nowiki>[dolibarr.resource]</nowiki> | <nowiki>[dolibarr.resource]</nowiki> | ||
source_lang: | source_lang: 这是资源的源语言<br /> | ||
source_file: | source_file: 这直接指向源文件<br /> | ||
file_filter: | file_filter: 在这里,我们保存用于标识特定项目下的翻译文件的表达式。''非强制性''<br /> | ||
trans.<lang>: | trans.<lang>: 这用于不遵循公共命名模式的翻译文件,并且文件表达式不能用于跟踪它们。''非强制性''<br /> | ||
host: | host: 如果项目不使用[main]片段中指定的默认Transifex服务器,它可以使用此选项覆盖它。''非强制性''<br /> | ||
====TX 客户端使用==== | ====TX 客户端使用==== | ||
'''tx''' | 一些有用的 '''tx''' 命令。 | ||
'''tx status''' | '''tx status''' | ||
| Line 129: | Line 127: | ||
'''tx push''' | '''tx push''' | ||
用于将更改从你的计算机推送到Transifex服务器。 | |||
tx push命令的其他选项包括: | |||
<code><pre> | <code><pre> | ||
| Line 145: | Line 143: | ||
'''tx pull''' | '''tx pull''' | ||
用于将更改从Transifex服务器拉到您的计算机上。<br />tx pull命令的其他选项包括: | |||
<code><pre> | <code><pre> | ||
-h - Shows the help screen for the command | -h - Shows the help screen for the command | ||
| Line 158: | Line 155: | ||
--minimum_perc=VALUE - Specify the minimum acceptable percentage of a translation in order to download it.</pre></code> | --minimum_perc=VALUE - Specify the minimum acceptable percentage of a translation in order to download it.</pre></code> | ||
''' | '''示例:''' | ||
要拉取翻译文档,可以使用: | |||
<source lang="bash"> | <source lang="bash"> | ||
| Line 167: | Line 164: | ||
</source> | </source> | ||
要推送源文件,只需键入: | |||
<source lang="bash"> | <source lang="bash"> | ||
| Line 174: | Line 171: | ||
</source> | </source> | ||
=== | ===关于transifex流程的其他问题=== | ||
这是一个简短的Q& | 这是一个简短的Q&A,你也可以询问transifex翻译进程: | ||
1) | 1) 同步是否按固定的时间间隔完成? | ||
不,只有在提交了足够的译文时才进行翻译。在创建最终发布包之前,它也会在beta分支上完成。 | |||
2) | 2) 是否所有的翻译都同步到git,还是仅仅同步经过审核的翻译。在同步完成之前我需要进行检查吗? | ||
当同步完成时,transifex文件将覆盖git中的文件,但前提是该文件至少有一条记录被修改。 | |||
在同步完成之前,您不必进行复查。最重要的是,要知道哪些行是手动审核的,哪些行是最初使用机器人翻译的。同步始终采用最后翻译的版本,即使新的翻译没有被审核。 | |||
3) | 3) 在哪些Dolibarr版本中提供翻译?Transifex翻译是否也同步到维护版本? | ||
同步总是在develop和/或beta版本上完成。 | |||
因此,transifex更改会出现在其分支在Transifex更改之后创建的所有版本中(在创建新分支之前总是进行同步)。 | |||
一旦创建了一个分支,对Transifex的新更改将仅适用于下一个分支。这样做的原因是我们不管理Transifex上的分支/版本(目前还没有)。 | |||
==手动翻译(不推荐)== | ==手动翻译(不推荐)== | ||
要将Dolibarr翻译成另一种语言,请转到Langs目录,并创建一个用要翻译的语言代码命名的文件夹/目录(遵循现有格式,例如en_US, en_GB, es_ES, de_DE, 等)。然后将文件从现有的语言目录(例如en_US/main.lang, en_GB/bills.lang)复制到您刚刚创建的新语言目录中。 | |||
这些文件在每行中具有键/值对的格式,如下所示: | 这些文件在每行中具有键/值对的格式,如下所示: | ||
| Line 209: | Line 202: | ||
</source> | </source> | ||
如上所述,翻译“=”右侧的短语(键/值对的值部分),“=”左侧的代码(键部分)应保持不变。 | |||
可以逐个翻译这些文件,而不必一次就把它们全部翻译出来。 | 可以逐个翻译这些文件,而不必一次就把它们全部翻译出来。 | ||
如果文件尚未被翻译成新的语言,Dolibarr将使用英语。 | |||
要将本地化(翻译)的字符串放入PHP代码中,您所要做的就是加载语言文件并使用下述方法来获取翻译后的值,如下所示: | |||
<source lang="php"> | <source lang="php"> | ||
| Line 224: | Line 217: | ||
</source> | </source> | ||
条目类型: | |||
<source lang="ini"> | <source lang="ini"> | ||
| Line 230: | Line 223: | ||
</source> | </source> | ||
必须存在或添加到myfile. | 必须存在或添加到myfile.lang文件中。 | ||
==使用autotranslator.php工具自动翻译== | ==使用autotranslator.php工具自动翻译== | ||
*Translator OS: All | *Translator OS: All | ||
*Tool: '''autotranslator.php''' | *Tool: '''autotranslator.php''' 随 Dolibarr 提供,位于目录 '''dev/translation''' 下 | ||
当刚开始翻译为尚未初始化的语言时,建议使用此方法。如果已经有一个可用的翻译,但您需要添加一个丢失的键或纠正错误,请尝试使用Transifex方法(见下文)。 | |||
要创建或更新语言代码的所有文件,只需运行脚本: | |||
<source lang="bash"> | <source lang="bash"> | ||
php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY | php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY | ||
</source> | </source> | ||
例如: | |||
<source lang="bash"> | <source lang="bash"> | ||
php autotranslator.php en_US pt_PT GOOGLEAPIKEY | php autotranslator.php en_US pt_PT GOOGLEAPIKEY | ||
</source> | </source> | ||
使用英语(en_US)文件翻译成葡萄牙语(pt_PT)。 | |||
此操作将创建所有不存在的文件,并更新所有现有文件。 该工具使用Google翻译服务来查找字符串的翻译值,因此需要从运行脚本的站点进行工作的Internet连接。此外,还需要GOOGLEAPIKEY,Google会收取使用此服务的费用(20欧元/1000000翻译字符)。 你的PHP还必须有写入'''htdocs/langs'''目录的权限,并且必须有可用的curl函数。 | |||
此操作将创建所有不存在的文件,并更新所有现有文件。 该工具使用 [http://translate.google.com Google translation] 翻译服务来查找字符串的翻译值,因此运行脚本的工作站点需要有Internet连接。此外,还需要GOOGLEAPIKEY,Google会收取使用此服务的费用(20欧元/1 000 000翻译字符)。 你的PHP还必须有写入'''htdocs/langs'''目录的权限,并且必须有可用的curl函数。 | |||
=[[File:Language.png]] 分发或将你的翻译纳入到核心源代码中= | |||
一旦你开始翻译,分享它将是一个明智的决定,因为它可以被包含在Dolibarr的官方代码中。 如果您保留它,当添加新术语或修改以前的术语时,其他人将无法改进它,并且您仍然必须自己管理翻译。 | |||
如果你是通过Transifex系统翻译的,那就没什么可做的了。您的翻译将被包含在Dolibarr的下一个版本中。没有额外的工作!从技术上讲,翻译将从Transifex导出,并由我们的开发人员导入Dolibarr,每月至少一次。 | |||
但是,如果您直接在Dolibarr文件中进行翻译,则必须首先将这些翻译传输到Transifex,然后才能将其包含在内。所以,真的,你应该一开始就翻译成Transifex。 如果你通过Github上的Pull Request向我们发送你的翻译,很遗憾,它会被Transifex的下一次导入所覆盖,所以它的生命周期将是非常短暂的。 | |||
注意事项: | |||
参考语言是en_US,并且其内容始终是完整的。您可以在htdocs/langs/en_US/文件夹中找到它。所有其他语言文件都可能是轻微或高度不完整的,具体取决于语言。 | |||
如果你正在开发一个新的模块,你可能需要添加新的语言变量。这完全通过更新en_US语言(htdocs/langs/en_US/文件夹)完成。只需修改这些文件以添加所需的变量,并将生成的文件夹作为Pull Request的一部分发送。请参阅开发人员文档以了解如何贡献代码(您需要在 https://github.com/Dolibarr/dolibarr 上创建一个帐户)。 | |||
=[[File:Language.png]] 翻译Wiki上的文档= | |||
wiki是用3种语言写成的:英语、法语和西班牙语。 | |||
如果你想增强这些语言中的一种语言的文档,你所要做的就是在wiki上创建一个帐户。 | |||
然后,您可以编辑现有的页面来纠正错误的翻译或翻译等待翻译的页面 [[:Category:Page_waiting_for_translation]]。 | |||
<br /> | |||
= | ==== 如何翻译现有页面? ==== | ||
===== 为翻译版本创建一个新页面。 ===== | |||
首先为翻译后的版本创建一个新页面。为此,您可以访问一个不存在的URL:例如 <code><nowiki>https://wiki.dolibarr.org/index.php/Ma_nouvelle_page_en_français</nowiki></code> | |||
选择的翻译版本的页面标题应该是原始英语页面标题的翻译。 | |||
edits