多语言
webERP 可以被翻译成任何语言，这样整个网络界面就会显示为任何用户的语言。系统可以为不同的用户显示不同的语言－－在同一时间－－根据个人用户设置中的语言设置。
创建翻译的建议程序如下：
1. Join the mailing list here 加入邮件列表
让这个列表知道你要帮助翻译－－有些人可能已经在为此工作了。
2.取得最新的 messages.po 文件，使用你喜欢的编辑器（或者 poedit)输入译文。最近的 messages.po 文件包含在最新的档案中：
www_root/webERP/locale/en_GB/LC_MESSAGES/message.po

编辑提供的文件，输入标记为 msgid 的字串的翻译，放在标记为 msgstr 的位置。注意字串中嵌入的 html 字符串，html 也要求翻译到译文里。并且确保每个译成的字串包裹在符号('')里。请也完成文件头信息—输入您的信息因此您可以为您的贡献得到适当认可。

尤其重要的是确保字符串“ISO-8859-1”（大约位于文件 messages.po 中 19400 行左右）被翻译成您希望译成的字符集。webERP 使用此字符集送出 html 头，因此您的网页浏览器知道如果翻译送出的字符集。

研究一下 poedit 软件是值得的，因它在创建 gettext 翻译文件时，有些节约时间功能。

将您的翻译文件发送到 submissions@weberp.org

在 sourceforge 上会为此新语言创建一个新的路径和说明档案供所有人访问。
技术概论
这是如何实现的
webERP 使用 GNU gettext 包作语言翻译。要使用 gettex 库，它必须装到网络服务器上，ＰＨＰ必须用 gettxt 函数编译。然而，从 3.01 版开始，由于 Briain Gomez 和 PHP-GETTEXT 作者 Danilo Segan 和 Nico Kaiser 的努力，他们的 php 类使翻译成为可能（尽管他们会比 gettex 库函数慢），与 webERP 绑定，所以甚至没有安装 gettext,翻译还是可以完成。
gettext 翻译文件储存在 locale 路径里，在这个路径下，有每种当地语言环境的次级目录。五位代码代表使用的语言。例如 en 代表英文，接着一个下划线，接着是另外两个大写字符代表语言版本，例如 US 代表 USA－－这样整个的语言环境代码变成 en_US. 对于大不列颠英语，完整的语言环境代码就变成 en_GB--这是编写 webERP 默认的语言。这个代码（en_GB)的语言环境要安装在 web- server 上。在 linux 网络服务器上，可以用命令行 #locale -a 检视所有安装的语言环境。（Ubuntu 下，在命令提示符后，直接输入 local3 -a 即可）
New directories will need to be made up if a translator wishes to have a local version for their language. Under the locale directory the five character locale abbreviation code directory there is a further sub-directory called LC_MESSAGES - this is where the translation files exist. There are two files in each of these directories:
如果翻译人员希望为他们自己的语言创建一个本地版本，需要设立一个新的路径。在语言环境目录 locale 下－－由五个字符的语言环境缩写代码表示的路径下，有一个更下层的路径叫做 LC_MESSAGES－－这是翻译文件所在的地方。在每个这样的路径下有两个文件：
1。messages.po 这个文件包含要翻译的所有字符串。这是翻译人员要考虑的唯一文件。
2. messages.mo 这是一个二进制的机器可以查询的翻译文件，被 gettext 引用。这个.mo 文件是 gettext 工具（msgfmt.exe 或者 msgfmt 在 ＊nix),使用 messages.po 文件（从命令行窗口的语法是 msgfmt.ext messages.po)自动产生的,.主要的努力在于将.po 文件翻译过来－－.mo 文件是由 webERP 项目管理员非常容易与开心地创建的。
任何的文字编辑器可以用来编辑.po 文件 （GNU Emacs 包含专业的功能编辑.po 文件，它含有一个特殊的 PO-模式）－－也有一个工具叫做 poedit，翻译人员经常建议使用这个工具。
理解 messages.po 文件
翻译就是把 messages.po 文件的字符串转换成其他语言。最重要的是最近的 CVS 文件中，路径 locale/en_GB/LC_MESSAGES/下的 messages.po 文件。当然，最新的模板文件可以电邮至 info@weberp.org 或者发一个信息给翻译清单索取。

messages.po 由几部分组成
例如，要翻译成法文
#: AccountGroups.php:8 index.php:890
msgid "An example string in English that needs to be translated"
msgstr="Une corde d'exemple dans le ce anglais doit 阾 re traduite "
这行#: AccountGroups.php:8 index.php:890
意味着跟随的字符串被使用在 AccountGroups.php 脚本第 8 行和 index.php 脚本的 890 行。 理解了脚本用于何处的文字可能会有用。在程序中使用了几次的脚本只需要翻译一次。在有些例子下，＃行显示的字符使用的地方，有时会是很长的脚本清单。
msgid "An example string in English that needs to be translated"
这行是在 msgstr 中要替代的英文字符串。如果 msgstr 的值是空白-"",gettext 会返回英文字符串。
翻译的努力在于编辑 messages.po 文件，并且把翻译的语言输入到 msgstr 的引号中去。
.po 文件标题
.po 文件的一些注释开头也应该翻译出来。
"SOME DESCRIPTIVE TITLE", - should be replaced with webERP - LANGUAGE Translation File - where LANGUAGE is the language being translated into
“SOME DESCRIPTIVE TITLE”，－－应该被用 webERP-语言翻译文件（这里的语言是指翻译成的语言）取代
# FIRST AUTHOR , YEAR. - 应该是你的名字和电子邮件地址－－连同工作完成的年份。
Project-Id-Version
应该是 webERP 的版本号
PO-Revision-Date
这是你最后一次编辑入文件的日期
Last-Translator
这是你的名字和电邮地址，用于当有些翻译不是很清楚时,使用这种语言的用户联络您。
Content-Type
用你用的文字编码取代‘CHARSET',这是你的语言环境或者 UTF-8.

在 GNU 系统中，下述的编码经常用于对应的语言：
* ISO-8859-1 for Afrikaans, Albanian, Basque, Catalan, Dutch, English, Estonian, Faroese, Finnish, French, Galician, German, Greenlandic, Icelandic, Indonesian, Irish, Italian, Malay, Norwegian, Portuguese, Spanish, Swedish,
* ISO-8859-2 for Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak, Slovenian,
* ISO-8859-3 for Maltese,
* ISO-8859-5 for Macedonian, Serbian,
* ISO-8859-6 for Arabic,
* ISO-8859-7 for Greek,
* ISO-8859-8 for Hebrew,
* ISO-8859-9 for Turkish,
* ISO-8859-13 for Latvian, Lithuanian,
* ISO-8859-15 for Basque, Catalan, Dutch, English, Finnish, French, Galician, German, Irish, Italian, Portuguese, Spanish, Swedish,
* KOI8-R for Russian,
* KOI8-U for Ukrainian,
* CP1251 for Bulgarian, Byelorussian,
*GB2312，GBK， GB18030 用于简体中文
*BIG5， BIG5－HKSCS 用于正体中文
*EUC－JP 用于日文
*EUC－KR 用于韩文
*TIS－620 用于泰文
*UTF－8 用于任何语言，包括上述列出的
由于在 utf-8 中有大量潜在字符，要嵌入 pdf 文件的字体文件导致这个 pdf 文件太大而不能通过拨号方式传输，因此为避免上述情况，最好使用以上特别指定的文字。
字符集的名称可以用大写或者小写字符。通常偏好大写。

Content-Transter-Encoding

设置为 8 字节
管理

一旦这个练习完成，文件必须传回给项目管理员：submissions@weberp.org，用来创建.mo 文件。会用压缩文件 zip 返回一个新的路径,用于从 web 路径中释放。这个语言会被加入到 webERP 系统从而让其他用户受益。
在每次登人系统时，系统通过查看用户信息，确定用户设定的语言，然后设定使用语言。用户可以改变设置的语言，通过点击左上角的用户名，会显示用户设定。变更语言设定会在储存设置时立即激活新语言。用户只被允许选择在 locale 路径下，设置在下级路径中语言。

其他资源
The GNU gettext manual
翻译工具
webERP 自身携带了一些在线工具来管理翻译－－使用这些工具维护翻译会有些问题－－尤其是某些文字对脚本造成问题，并且字符编码集可能丢失。所以不建议使用这些工具，除了有时最新的 messages.po 的备份放在其他的地方，而不得不作些特殊维护。
下面的文字解释了如何使用 webERP 提供的语言翻译工具来增加语言和维护他们的翻译。
总而言之，在使用这些工具前，你需要点击左上角你的用户名字，以打开用户参数。选择要翻译的语言，在点击修改 Modify.语言工具全部使用目前选择的用户语言。如果你希望使用的语言不在那里，那么可以使用‘Add a New Language'’增加一个新语言‘工具来开始新翻译－－参考后面。默认情形下，新安装的 webERP 只有英语-en_GB.最新提交的语言包可从这里得到 sourceforge webERP page。
翻译从工具菜单维护－－在主菜单没有独立的连接，由于这是只有系统管理员才可以获取的区域。对翻译文件未 授权的更改因此禁止。工具菜单是 Z_index.php-因此你可以变更主菜单的 URL（超连接），在它前面加上 Z_,这样就会出现工具菜单－－只有你的用户帐号里得到系统管理员的授 权。翻译管理可以通过“Maintain Language Files"维护语言文件”链接进行。
共有四个翻译工具：

- 重建系统默认语言文件，

- 为系统增加一个新语言，

- 编辑一个语言文件标题

- 编辑一个语言文件模块。

  注意：关于系统运作的讨论只是对维护系统和系统文件的人而言，如果您只是负责翻译，不一定必须了解。
  重建系统默认语言文件
  系统有一个默认语言文件。当一个新语言被创建，系统为这文件创建了一个副本，以用来编辑。重建系统默认语言文件包括这个副本，为创建一个新系统默认语言文件，它会查看每个系统编码文件（脚本）。通过这种方法，对字符串的任何的修改或者增加将会被包括在这个新创建的文件。为了使用最新的字符串，这步可以在创建一个新语言前完成。

为系统增加一个新语言
使用这个工具创建一个新语言。必须清楚只有在你的 web-server 网络服务器有适当的语言环境文件的语言才可被增加。语言的识别符必须与 web- server 网络服务器的语言文件相符。以 xx_XX 的格式输入语言，前两位字符是代表语言的小写标准代码,例如 en 代表英语，后两位是代表国家的大写标 准代码例如 US 代表美国。这个例子就是 en_US.下划线必须将语言和国家分开，总共 5 个字符。输入要创建的语言后，点击处理 Proceed 按钮。系统于 是创建一个新语言路径，位于 locale 语言环境路径下，并且在新语言路径下会有一个 LC_MESSAGES 路径。于是，在新的 locale/xx_XX /LC_MESSAGES 路径下，复制了默认语言文件（messages.po).开始时，在新的 messages.po 文件里没有翻译。
一旦创建了新语言，要用语言翻译工具来维护新的翻译（你要专用的新语言）。要变换语言，点击显示在 webERP 屏幕左上角的用户名，下拉菜单会显示上述创建的新语言。选择新的语言让你可以使用翻译工具操作。
如果使用提供的翻译工具，你不必了解语言文件的结构。下面提供的细节只是作为信息而已。语言文件－messages.po 包括：

- 标题，包含翻译人员的详细信息和要显示语言的字符的关键字符集。

- 信息识别字符串，以 msgid 开始，然后是要翻译的用引号因用的英语字符串，字符串被引用的脚本也被标明。

- 每个 msgid 声明的字符串例如 msgstr""--在一个新的 messages.po 文件中，他们都是“”。翻译工作就是要求输入新 语言的 msgstr 来代表 msgid 字符串中的文字。

  编辑一个语言文件标题
  可以用这个工具修改语言文件标题。修改标题的一个重要原因是变更适合这种语言环境的字符集。例如对 en,字符集通常设定为 8829-1,或者类似的。当编辑了标题的不同部分后，确保点击位于底部的输入信息 Enter Information 按钮以保存修改。
  编辑语言文件模块
  通过这个工具，大多的翻译工作就完成了。首先选择你要编辑的语言，然后就可以选择要翻译的模块。为完整翻译整个系统，所有的模块都必须被完成。很多人偏好 首先翻译 index.php 和 includes/header.php，为了将他们语言的主菜单翻译完成。从这点而言，最重要的模块可以首先翻译，其他的 可以安装字母顺序翻译。需要一些记忆系统，来记住后续需要翻译那些模块。
  一旦语言和模块被选择，点击 Proceed 处理。这时会弹出一个界面，它会列出模块里的所有的字符串，每个字符串旁边是输入你翻译的字符串的区域。右边是 一个列表，表示模垮中字符串出现在代码中的行号。输入一些翻译后，点击 Enter Information 输入信息来保存变更。
  如果你的 webERP 版本中有些开 发工作，将开发者新创建的字符与已经存在的语言文件合并，并且创建一个新的 messages.po 文件，它包括系统要求的全部字符串。如果有些信息还是显 示为英文，但是当你编辑那个屏幕的模块时，他们并没有出现，于是你知道您必须将已经存在的 messages.po 文件与任何新的信息合并。要保证所有的字 符串都被 gettext 工具摘取，首要确保首先运行"Rebuild the System Default Language File"重建系统默认语言。然后从“Edit a Language File Module"“编辑语言文件模块屏幕”，点击”Refresh Messages With Latest Strings"”用最近的字符串刷新信息“－－这完成了 Rebuild 新创建的主 messages.po 文件与你已有的翻译的合并。