3. 开发者指南

HOWTO 的这一部分主要面向开发者——尽管对内部原理感兴趣的用户也可以阅读 ;-)。但是,开发者不应从这里开始——他/她应首先阅读前面的章节,为孟加拉语支持设置系统。

3.1. 一般开发流程

开发中心是 www.Bengalinux.org 网站。 遵循的模型是通用的 FLOSS 类型的“集市”模型(稍微本地化的版本 ;-),您可以获得所有好东西(CVS、shell 访问权限、scp、电子邮件列表等)。如果您有兴趣参与开发,请发送邮件至声明您的意图。

开发者必须订阅他或她正在从事的项目邮件列表——请参阅 Bengalinux.org 的 Projects 部分。

通常的网络礼仪适用于所有列表——保持礼貌/温和,不要发送 HTML 邮件,不要大喊大叫等。

3.2. 先决条件

3.3. 翻译者指南

3.3.1. 程序指南

翻译非常简单——您需要编辑*.po(可移植对象)文件。要获取 PO 文件——从 http://developer.gnome.org/projects/gtp/status/gnome-2.2/bn/index.html 检查哪些文件未翻译。下载任何未翻译的文件,并在支持孟加拉语的编辑器中打开它(抱歉——vi/emacs 在这里不起作用)。我个人使用 Yudit ——其他可能的选择是 Lekho 和优秀的旧版 Gedit2

Note

在您开始处理某项内容之前,请确保您在宣布您正在处理的文件。这可以节省很多麻烦和挫败感 ;-)。

在文件开头,您将看到一些字段,用于填写翻译者的姓名、电子邮件、翻译时间、软件包名称等。填写它们,然后继续下一部分。

您会找到一些像这样的行

#: atk/atkobject.c:1183
msgid "invalid"
msgstr ""

        

第一行指定文件名以及第二行中的字符串出现的位置。第二行包含要翻译的实际字符串,第三行是孟加拉语翻译字符串的占位符。因此,在翻译后的文件中,这组行将如下所示

#: atk/atkobject.c:1183
msgid "invalid"
msgstr "bhul"

        

Tip

在这里,由于当今技术的限制,我用英语写了单词 bhul 。但是,当您进行实际翻译时,您需要用孟加拉语而不是英语写出翻译后的字符串。

您必须翻译 po 文件中的所有行组,然后才能认为它已完成。完成后,将其邮寄到翻译列表,以便其他开发者也可以查看它。

Important

在将翻译作为最终版本提交之前——请使用命令检查文件

bash$ msgfmt -c filename_bn.po -o /dev/null

其中filename_bn.po是您正在处理的文件。

3.3.2. 风格指南

翻译时,请记住不要扼杀语言 ;-)。不要过度翻译——不要使用 Sadhu Basha (古典孟加拉语)。此外,当计算机向用户讲话时,使用 samman-shuchak (karun, balun, etc)(敬语,例如:请做,请说等),而当用户向计算机讲话时,使用 karo, balo, etc(非敬语,例如:做,说等)。如果孟加拉语的等价词听起来太不寻常——保留英语单词(用孟加拉语脚本)——以后总是可以更改/改进。不要过度做任何事情。

此外,保持专有名词和商标/品牌名称不变。(Bourne Again Shell (BASH) 不应称为 Aabaar Bourne Shell)。

使用更常用的词(jaanlaa (窗户)而不是 gabaakhya(窗户,较正式的词))。还要始终记住,这些词不一定非常适用于实际操作——十九世纪的英国人甚至无法猜到 “Save” 在计算机中能做什么 ;-)。

如果您对某个翻译后的字符串有意见,请写下(用 “#” 注释掉),以便我们稍后可以查看。如果您心中有多个等效的字符串,请写下所有字符串,并注释掉除您认为最好的字符串之外的所有字符串。

但是,在注释时,请记住您不能msgidmsgstr 行之间有任何注释。

这意味着

#: atk/atkobject.c:1183
msgid "invalid"
# yadayadayada
msgstr "bhul"

        

是无效的。相反,您应该写——

#: atk/atkobject.c:1183
msgid "invalid"
msgstr "bhul"
# yadayadayada

        

还有...最后但同样重要的是,拼写检查,拼写检查,拼写检查。在翻译会话期间——始终带着您的字典,甚至更好的是,孟加拉国孟加拉学院的 Bangla Baanaan Abhidhan (孟加拉语拼写词典)。来自 Bengalinuxbspeller 在这里可能很有用。

另一本推荐的书是 Sahitya Samsad 出版的 Ashok Mukherjee 的 Samartha-ShabdaKosh (孟加拉语同义词词典)。

3.3.3. 测试翻译

对于翻译者来说,最棘手的事情之一是理解上下文。例如,仅通过查看 pofile,翻译者将不知道 Open 是指 Kholo (打开)还是 Khola (已打开)。为了进行上下文相关的翻译,翻译者必须在实际操作中检查他/她的翻译,即在应用程序界面中。本节介绍了一种无需重新编译程序即可查看翻译的技巧。

Note

此过程适用于大多数使用 GDM 作为登录管理器的系统。但是,我不能保证这在您的系统上有效。

首先,为孟加拉语设置区域设置安装一些孟加拉语字体。

完成后,将所有翻译后的 pofile 放在机器上的一个文件夹中(以避免混乱),并使用命令逐个将它们转换为 MO 文件

bash$ msgfmt -o file.mo file.version.gnomeversion_bn.po

Caution

执行此操作时,请记住从 mo 文件的名称中删除所有版本和语言信息,即,gnome-games.gnome-2-4.bn.po应转换为gnome-games.mo.

如果您不确定软件包,请执行 rpm -ql packagename,您将获得软件包的命名方案。例如,rpm -ql gdm 的部分输出读取

          /usr/share/locale/ru/LC_MESSAGES/gdm-2.4.mo
          /usr/share/locale/sk/LC_MESSAGES/gdm-2.4.mo
          /usr/share/locale/sl/LC_MESSAGES/gdm-2.4.mo
          /usr/share/locale/sv/LC_MESSAGES/gdm-2.4.mo
          /usr/share/locale/ta/LC_MESSAGES/gdm-2.4.mo
          

由此,很明显,必须为 GDM 软件包发出命令 msgfmt -o gdm-2.4.mo gdm2.gnome-2-2.bn.po

完成后,将 MO 文件复制到/usr/share/locale/bn_IN.UTF-8/usr/share/locale/bn_BD.UTF-8,具体取决于您如何设置区域设置。

现在,打开/etc/X11/gdm/locale.alias并将以下行添加到其中。

        Bengali                 bn_IN.UTF-8,bn_IN
        

之后,重新启动 X,在语言菜单中选择孟加拉语,然后重新登录到 GNOME。您将看到一个孟加拉语系统。

Note

要测试单个应用程序,您不必完成所有这些操作。只需设置区域设置,安装字体并将 MO 文件放在正确的位置。现在,启动 xterm,并发出命令 export LANG=bn_IN.UTF-8export LANG=bn_BD.UTF-8。之后,从 xterm 本身启动您要检查的程序,它将以孟加拉语界面启动。