翻译文档

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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

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