函数`gettext的设计,让整个操作系统的GNU / Linux的翻译。 正是因为这个原因它是100%,大量的编程语言和脚本语言兼容,ç+ +,ç#,Python的猛砸,GNU的clsip,Emacs Lisp中的GNU Smalltalk中,Java的,GNU awk的,帕斯卡尔,wxWidgets的,多糖YCP ,TCL,PHP,派克,和其他。

首先,让我们来看看如何使用`gettext的源代码内。 实施细则各不相同,取决​​于你的项目所使用的编程语言,但语法几乎是相同的,至少流行的编程语言:功能只包含消息的字符串被翻译。 应当指出的是,几乎总是使用的缩写形式,它只是对应一个下划线。 这样,下面的代码在C:

printf(gettext("My name is %s\n"), mio_nome);

变为:

printf(_("My name is %s\n"), mio_nome);

后来,命令xgettext的过滤代码,找到刚刚插入功能的gettext,创建模板文件。锅基础上从源提取的字符串。 例如一个文件代码,包含上述行锅。如下:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr ""

要开始翻译是在程序中使用“msginit。 移动文件。小`:`msginit是可以生成一个新的文件,其中包含新的。位在目标语言中的骨架。 例如,以翻译进入意大利en_EN.po文件,只要运行以下命令:

LOCALE = En_US的msginit-输入= en_EN.po

该计划将创造的的文件it_IT.po,其内容将类似于以下:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "My name is %s\n"

在这一点上,翻译没有做翻译msgstr字符串。 翻译可以做任何编辑器直接在命令行,或使用类似的具体方案poEdit的 结果会看起来如下:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "Mi chiamo %s\n"

宝当翻译文件必须编译成二进制文件,莫通过`msgfmt`。

msgfmt it_IT.po

分享这个内容:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter