翻译文档

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search


Language.png 翻译 Dolibarr 应用程序

Dolibarr的语言文件已经被翻译成多种语言。 英语是其默认的语言,并且其内容会始终保持完整。其他语言的文档是否完整依赖于自愿者的贡献。 本教程帮助您针对未被翻译或者翻译错误的文档完成语言翻译工作。 Dolibarr可以用三种不同的方式翻译:

  1. 手动使用Transifex (官方和推荐的方法)
  2. 手动编辑语言文件
  3. 全自动:自动翻译机

使用Transifex在线服务进行手动翻译(推荐)

Transifex 是一个为翻译项目提供在线平台的Web应用程序。它包括团队和讨论工具、翻译记忆库、词汇表、校对和许多其他功能。 它非常容易使用,所有翻译都可以通过Web界面或者使用TX客户端终端上传或下载。 Transifex 是一个开源项目,“社区版”可以免费下载和安装,但我们将使用在线托管服务。

使用Web界面(适用于翻译人员)

如果你想帮忙把Dolibarr翻译成自己的语言,请进入该项目的页面 https://www.transifex.com/dolibarr-association/dolibarr/

然后,您可以注册一个帐户,并请求加入目标语言的项目团队。管理员会接受您的请求,所以请耐心等待。

一旦被接受,您就可以马上开始翻译了。

欲了解更多信息,请查阅网站 http://docs.transifex.com/introduction/translators/ 上的Transifex Getting Started(入门)介绍规范和网站 http://docs.transifex.com/tutorials/txeditor/ 上的web editor tutorial(编辑器向导)。

关于 en_US 的备注

这个Web界面不能用来翻译源代码的en_US语言。

对en_US语言的任何更改都必须在Dolibarr源代码中完成,并在我们的GitHub存储库上使用Pull Request提交。

使用TX 命令行客户端 (适用于管理员团队 Category:Yoda )

这部分描述了如何从命令行中使用Transifex。然而,这是保留给Dolibarr管理员用户(Yoda团队)的,用于将Transifex与Dolibarr主源码同步。

更多信息请参考Transifex 官方文档

TX 客户端设置

首先要安装 TX 客户端,操作系统使用 Debian/Ubuntu/Mint:

apt-get install python-pip
pip install transifex-client

然后你必须初始化你的TX环境。这是通过进入Dolibarr项目根目录运行 tx init 来完成的。

cd git/dolibarr
tx init

接受覆盖配置文件。保留Transifex实例的默认值,然后输入您的Transifex登录名和密码。

在此之后,一个.transifexrc文件已经创建到您的HOME目录,并且一个通用配置文件被创建为项目根目录中的.tx/config。 目录的内容看起来会是这样的:

.
|-- build
|-- build.xml
|-- ChangeLog
|-- COPYING
|-- COPYRIGHT
|-- dev
|-- doc
|-- .gitignore
|-- htdocs
|-- INSTALL
|-- pom.xml
|-- quickbuild.xml
|-- README
|-- README-FR
|-- README.md
|-- robots.txt
|-- scripts
|-- test
`-- .tx

当前的配置文件可以从 https://github.com/Dolibarr/dolibarr/tree/develop/.tx 下载,将其放入.tx目录,覆盖由 tx init 创建的配置文件。

此项目配置文件用于存储项目的详细信息和文件到资源的映射。

这是配置文件包含的内容的示例:

[main]
host = https://www.transifex.com
lang_map = uz: uz_UZ

[dolibarr.admin]
file_filter = htdocs/langs/<lang>/admin.lang
source_file = htdocs/langs/en_US/admin.lang
source_lang = en_US
type = MOZILLAPROPERTIES

下面是配置文件中使用的片段和选项的说明:

[main] section

在本片段中,我们有项目范围的选项,例如:所有项目的默认transifex主机。如果需要的话,这些可以被每个资源覆盖。

[dolibarr.resource]

source_lang: 这是资源的源语言
source_file: 这直接指向源文件
file_filter: 在这里,我们保存用于标识特定项目下的翻译文件的表达式。非强制性
trans.<lang>: 这用于不遵循公共命名模式的翻译文件,并且文件表达式不能用于跟踪它们。非强制性
host: 如果项目不使用[main]片段中指定的默认Transifex服务器,它可以使用此选项覆盖它。非强制性

TX 客户端使用

一些有用的 tx 命令。

tx status

显示翻译状态

tx push

用于将更改从你的计算机推送到Transifex服务器。

tx push命令的其他选项包括:

-h - 显示命令行帮助
-l <lang> - 指定要推送哪些翻译(默认为所有)
-r <resource> - 指定要向其推送翻译的资源(默认为所有)
-f - 在不修改修改时间的情况下推送源文件
--skip - 错误时不要停止。当同时推多个文件时很有用。
-s - 将源文件推送到服务器
-t - 将翻译文件推送到服务器
--no-interactive - 强制推送时不需要用户输入。

tx pull

用于将更改从Transifex服务器拉到您的计算机上。
tx pull命令的其他选项包括:

-h - Shows the help screen for the command
-l <lang> - Specify which translations you want to pull (defaults to all)
-r <resource> - Specify the resource for which you want to pull the translations (defaults to all)
-a - Fetch all translation files from server (even new ones)
-s - Force the fetching of the source file (default: False)
-f - Force download of translations files
--skip - Don't stop on errors. Useful when pushing many files concurrently.
--disable-overwrite - By default Transifex will fetch new translations files and replace existing ones. Use this flag if you want to disable this feature.
--minimum_perc=VALUE - Specify the minimum acceptable percentage of a translation in order to download it.

示例:

要拉取翻译文档,可以使用:

tx -d pull -l it_IT  # Get italian language only
tx -d pull -a   # Get all languages

要推送源文件,只需键入:

tx -d push -t -l it_IT [-r dolibarr.file]   # To push only a specific translation file
tx -d push -s  # To push source file

关于transifex流程的其他问题

这是一个简短的Q&A,你也可以询问transifex翻译进程:

1) 同步是否按固定的时间间隔完成?

不,只有在提交了足够的译文时才进行翻译。在创建最终发布包之前,它也会在beta分支上完成。

2) 是否所有的翻译都同步到git,还是仅仅同步经过审核的翻译。在同步完成之前我需要进行检查吗?

当同步完成时,transifex文件将覆盖git中的文件,但前提是该文件至少有一条记录被修改。 在同步完成之前,您不必进行复查。最重要的是,要知道哪些行是手动审核的,哪些行是最初使用机器人翻译的。同步始终采用最后翻译的版本,即使新的翻译没有被审核。

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)复制到您刚刚创建的新语言目录中。

这些文件在每行中具有键/值对的格式,如下所示:

Code1 = translate phrase 1
Code2 = translate phrase 2
...
Coden = translate phrase n

如上所述,翻译“=”右侧的短语(键/值对的值部分),“=”左侧的代码(键部分)应保持不变。

可以逐个翻译这些文件,而不必一次就把它们全部翻译出来。

如果文件尚未被翻译成新的语言,Dolibarr将使用英语。

要将本地化(翻译)的字符串放入PHP代码中,您所要做的就是加载语言文件并使用下述方法来获取翻译后的值,如下所示:

$langs->load("myfile"); // or use $langs->load("myfile@mymodule") if myfile.lang is inside directory htdocs/mymodule/langs/xx_XX   

print $langs->trans("CodeX")

条目类型:

CodeX = phrase X

必须存在或添加到myfile.lang文件中。

使用autotranslator.php工具自动翻译

  • Translator OS: All
  • Tool: autotranslator.php 随 Dolibarr 提供,位于目录 dev/translation

当刚开始翻译为尚未初始化的语言时,建议使用此方法。如果已经有一个可用的翻译,但您需要添加一个丢失的键或纠正错误,请尝试使用Transifex方法(见下文)。

要创建或更新语言代码的所有文件,只需运行脚本:

php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY

例如:

php autotranslator.php en_US pt_PT GOOGLEAPIKEY

使用英语(en_US)文件翻译成葡萄牙语(pt_PT)。

此操作将创建所有不存在的文件,并更新所有现有文件。 该工具使用Google翻译服务来查找字符串的翻译值,因此需要从运行脚本的站点进行工作的Internet连接。此外,还需要GOOGLEAPIKEY,Google会收取使用此服务的费用(20欧元/1000000翻译字符)。 你的PHP还必须有写入htdocs/langs目录的权限,并且必须有可用的curl函数。

此操作将创建所有不存在的文件,并更新所有现有文件。 该工具使用 Google translation 翻译服务来查找字符串的翻译值,因此运行脚本的工作站点需要有Internet连接。此外,还需要GOOGLEAPIKEY,Google会收取使用此服务的费用(20欧元/1 000 000翻译字符)。 你的PHP还必须有写入htdocs/langs目录的权限,并且必须有可用的curl函数。

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 上创建一个帐户)。

Language.png 翻译Wiki上的文档

wiki是用3种语言写成的:英语、法语和西班牙语。

如果你想增强这些语言中的一种语言的文档,你所要做的就是在wiki上创建一个帐户。

然后,您可以编辑现有的页面来纠正错误的翻译或翻译等待翻译的页面 Category:Page_waiting_for_translation


如何翻译现有页面?
为翻译版本创建一个新页面。

首先为翻译后的版本创建一个新页面。为此,您可以访问一个不存在的URL:例如 https://wiki.dolibarr.org/index.php/Ma_nouvelle_page_en_français

选择的翻译版本的页面标题应该是原始英语页面标题的翻译。