如何翻译一个Gambas工程

1. 标记所有需要翻译的字符串

默认情况下:
  • 控件的Text属性将会被翻译.

  • 代码的字符串将不会被翻译.

为标记一个将会被翻译的字符串,你必须使用括号将字符串包围起来:

示例

PRINT "本字符串不可以翻译"
PRINT ("本字符串可以翻译!")

将被翻译的字符串通常是用户将会读到的所有文本.

注意不要直接顺次连接翻译后的字符串,因为词语的顺序会随着翻译后的语言而改变。可用Subst()函数来代替。

2. 检查你是否正确地启用了工程的国际化

在工程属性对话框中做下面的检查:

默认语言允许翻译行家知悉未翻译的字符串所使用的语言。

3. 进行翻译

为此,在*工程*菜单中单击*翻译*。

如果 IDE 控诉 msgmerge,确保你已经在你的计算机上安装了GNU gettext工具。

接下来,在左边的列表中选择你要翻译的语言。

如果左边列表中现在没有出现你要翻译的语言,单击*新建*按钮并且选择一个新的翻译语言。

如果在*新建翻译*对话框中不存在你需要翻译到的语言,写信给我,我将添加它。

在表中选择一个未翻译的字符串。

然后,将它的翻译输入对话框底部的文本字段中。

你可以通过输入一个减号符号来作为翻译后的字符串来标示一个字符串不需要翻译。

重复这个过程,直到所有的字符串都被翻译完成。在你翻译完成后,单击*关闭*按钮。

可以将工程翻译成多种语言。

可以用工具条图标帮助翻译工作。

从左到右,这些图标允许你:
  • 清除当前翻译的字符串。

  • 标记一个字符串无须翻译。

  • 复制原文字符串到翻译结果。

  • 通过检查每个保留标志字符来校验当前翻译。

  • 寻找下一个原文字符串。

  • 寻找上一个原文字符串。

  • 在原文字符串和翻译字符串中搜索文本。

对话框按钮提供其他的功能。

从左到右,这些按钮允许你:
  • 在左边的列表中插入新的翻译。

  • 重载当前翻译,你做的修改将全部丢失。

  • 删除当前翻译。

  • 导入并合并一个翻译文件到当前翻译。

  • 导出当前翻译到一个文件。

当改变当前语言或者关闭翻译对话框时,翻译结果会自动保存。

翻译结果存储于工程的.lang目录下的一个=*.po=文件中,文件的名称依赖于翻译的语言。例如,简体中文翻译的名称是=zh.po=。

每次生成工程的新版本,原文的字符串可能改变。不要担心,你翻译的字符串会被保留下来。

  • 如果原文字符串消失,翻译字符串也随之消失。

  • 如果添加了新的原文字符串,翻译字符串为空。

  • 其他所有原文字符串保持其翻译字符串不变。

4. 如何使用自动翻译

  • You MUST have translate-shell installed. https://translate-shell.readthedocs.io/en/latest/
    eg. with apt type sudo apt install translate-shell

  • In the main Gambas IDE Preferences in the "Project" tab the "Automatic translation with translate-shell" option must be selected.

Then...
  • Open the translation dialog.

  • Press "New" and select a language.

  • Then with the menubutton to the right of "New" you will find options to select the translation engine "google" by default.

  • With the same menubutton is the "Automatic translation" option that will ask to start translating ALL the strings.

  • Press yes and wait.

Depending on the amount of strings and the length the translation may be quick or a very long time.

  • Alternatively you can select a single translation string and hit the "Automatic translation" button below the list to translate only 1 text.