Lazarus 消息框:如何本地化按钮
Lazarus messagebox: how to localize buttons
我想本地化 MesssageBox
、MessageDlg
、InputQuery
等按钮。
我在 lclstrconsts
中看到 resourcestring
存在:"OK"/"Cancel"...但我想使用分配设置按钮字符串。
怎么做?
我在 Win32 上需要它。我看到 German/Rus OS 显示 En 按钮。
这就是 MessageDlg
的做法:http://delphi.xcjc.net/viewthread.php?tid=47562。
应定义带有 rs
前缀的变量。
其他组件也可以用同样的方式本地化。
wiki 中有几篇关于本地化的文章:
Translating/Internationalization/Localization
简而言之:
- 在项目选项-> i18n中设置"Enable i18n",设置PO输出目录(例如
locale
)
- 重新编译项目
- 将创建的
yourproject.po
文件复制到 yourproject.de.po
、yourproject.it.po
,以此类推将所需语言复制到同一目录中。
- 将
lazarus/lcl/languages
中的项目 *.po
文件复制到 locale
目录以翻译 LCL。
- 将单元
LCLTranslator
添加到主窗体的 uses
子句中。
- 在某处调用
SetDefaultLang('it');
以设置所需的翻译(本例中为意大利语)。通过检查 GetDefaultLang
函数结果检查一切正常。
请注意 (3) 是必需的。
您可能会发现可以在其他第三方库中使用 PO(如果有的话)。
我想本地化 MesssageBox
、MessageDlg
、InputQuery
等按钮。
我在 lclstrconsts
中看到 resourcestring
存在:"OK"/"Cancel"...但我想使用分配设置按钮字符串。
怎么做?
我在 Win32 上需要它。我看到 German/Rus OS 显示 En 按钮。
这就是 MessageDlg
的做法:http://delphi.xcjc.net/viewthread.php?tid=47562。
应定义带有 rs
前缀的变量。
其他组件也可以用同样的方式本地化。
wiki 中有几篇关于本地化的文章:
Translating/Internationalization/Localization
简而言之:
- 在项目选项-> i18n中设置"Enable i18n",设置PO输出目录(例如
locale
) - 重新编译项目
- 将创建的
yourproject.po
文件复制到yourproject.de.po
、yourproject.it.po
,以此类推将所需语言复制到同一目录中。 - 将
lazarus/lcl/languages
中的项目*.po
文件复制到locale
目录以翻译 LCL。 - 将单元
LCLTranslator
添加到主窗体的uses
子句中。 - 在某处调用
SetDefaultLang('it');
以设置所需的翻译(本例中为意大利语)。通过检查GetDefaultLang
函数结果检查一切正常。
请注意 (3) 是必需的。
您可能会发现可以在其他第三方库中使用 PO(如果有的话)。