翻译文档

From Dolibarr Open Source ERP CRM Wiki

返回
用户手册

File Doc user.png

返回
首页

File Doc dev.png

Contents

Language.png 翻译 Dolibarr

Dolibarr语言文件已经用几种语言翻译了。 英语是默认的语言会首先完成翻译。其他语言依赖于自愿者的贡献。 本教程帮助您完成一个未译的或错译的语言。 Dolibarr可以用三种不同的方式翻译:

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

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

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

使用Web界面(译者)

如果你想用自己的语言帮助翻译Dolibarr,请检查项目的页面。 https://www.transifex.com/dolibarr-association/dolibarr/

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

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

欲了解更多信息,请检查Transifex“入门”介绍规范 http://docs.transifex.com/introduction/translators/ 和网络编辑器向导于 http://docs.transifex.com/tutorials/txeditor/

备注关于 en_US

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

任何更改都必须在Dolibarr源代码中完成,并在GitHub存储库上使用Pull请求提交。

使用TX 命令行客户端 (for Dolibarr Category:Yoda team)

这描述了如何从命令行中使用Transifex。然而,这是保留给Dolibarr管理员用户,以同步Transifex与Dolibarr主源码。

官方文档

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已经创建到您的主页目录,并且一个通用配置文件被创建于项目根目录中的.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: this is the source language of the resource.
source_file: this points to the source file directly.
file_filter: here we hold the expression used to identify translation files under the specific project. not mandatory
trans.<lang>: this is used for translation files that don’t follow a common naming schema and the file expression cannot be used to track them. not mandatory
host: in case the project doesn’t use the default Transifex server as specified in the [main] section, it can override it using this option. not mandatory

TX 客户端使用

tx 命令有用的信息。

tx status

显示翻译状态

tx push

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

TX推送命令的其他选项是:

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

tx pull

用于从Transifex服务器将更改拉到您的计算机上
TX拉动命令的其他选项是:

-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 翻译也与维护版本同步?

同步总是在开发和/或beta上完成。 因此,transifex更改出现在所有版本中,其分支是在transifex更改之后创建的(在创建新分支之前总是进行同步)。

一旦创建了一个分支,那么新的过渡到transifex将只适用于下一个分支。这是因为transifex无法管理分支/版本(还没有)。



手动翻译(不推荐)

要将DoiBARR翻译成另一种语言,请转到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 provided with Dolibarr in directory dev/translation.

This method is recommended when starting translation for a language not already initialized. If there is already a translation available but you need to add missing key or correct errors, try to use method using Transifex (see later).

To make or update all files of a language code, just run the script:

php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY

For example :

php autotranslator.php en_US pt_PT GOOGLEAPIKEY

to translate into Portuguese (pt_PT) using English (en_US) files.

All non existing files will be created, all existing files will be updated. The tool use Google translation service to find the translation value of a string, so a working Internet connection is required from station running the script. Also a GOOGLEAPIKEY is required and Google charges a fee for using this service (20 euros / 1 000 000 of translated chars). Your PHP must also have permissions to write into htdocs/langs directory and must have curl functions available.

Language.png 将你的翻译分发到核心资源中

Once you start translating, it's a smart decision to share it, so it can be included into the official code of Dolibarr. If you keep it for you, others will not be able to improve it when new terms are added or previous terms are modified, and you will still have to manage the translation on your own.

If you translated through the Transifex system, there's nothing to be done. Your translation will be included in the next version of Dolibarr. No additional work! In technical terms, the translation will be exported from Transifex and imported into Dolibarr by our developers, at least once every month.

If, however, you translated directly in Dolibarr files, then you will first have to transfer those translations to Transifex before they can be included. So, really, you should start translating into Transifex. If you send us your translation through a Pull Request on Github, sadly, it will be overwritten by the next import from Transifex, so it would be very short-lived.

Note:

The reference language is en_US and is always complete. You can find it in the htdocs/langs/en_US/ folder. All other language files are likely to be slightly or highly incomplete, depending on the language.

If you are developing a new module, you are likely going to need the addition of new language variables. This is done exclusively through the update of the en_US language (htdocs/langs/en_US/ folder). Just modify these files to add the variable you need and send the resulting folder as part of your Pull Request. Refer to the developer documentation to learn how to contribute code (you will need an account on http://www.github.com.

Language.png 翻译Wiki文档

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

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

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

Personal tools
  • Ask to contact@dolibarr.org to request an account to contribute to this documentation
  • Log in
In other languages
<multilanguagemanager_en><multilanguagemanager_fr><multilanguagemanager_es><multilanguagemanager_de>
&lt;multilanguagemanager_notranslation&gt;
<multilanguagemanager_it><multilanguagemanager_el>
&lt;multilanguagemanager_notranslation&gt;

Social networks
Follow us on Google+ Follow us on Facebook Follow us on LinkedIn Follow us on Twitter