Lazarus 消息框:如何本地化按钮

Lazarus messagebox: how to localize buttons

我想本地化 MesssageBoxMessageDlgInputQuery 等按钮。 我在 lclstrconsts 中看到 resourcestring 存在:"OK"/"Cancel"...但我想使用分配设置按钮字符串。

怎么做?

我在 Win32 上需要它。我看到 German/Rus OS 显示 En 按钮。

这就是 MessageDlg 的做法:http://delphi.xcjc.net/viewthread.php?tid=47562

应定义带有 rs 前缀的变量。

其他组件也可以用同样的方式本地化。

wiki 中有几篇关于本地化的文章:

Translating/Internationalization/Localization

简而言之:

  1. 在项目选项-> i18n中设置"Enable i18n",设置PO输出目录(例如locale
  2. 重新编译项目
  3. 将创建的 yourproject.po 文件复制到 yourproject.de.poyourproject.it.po,以此类推将所需语言复制到同一目录中。
  4. lazarus/lcl/languages 中的项目 *.po 文件复制到 locale 目录以翻译 LCL。
  5. 将单元 LCLTranslator 添加到主窗体的 uses 子句中。
  6. 在某处调用 SetDefaultLang('it'); 以设置所需的翻译(本例中为意大利语)。通过检查 GetDefaultLang 函数结果检查一切正常。

请注意 (3) 是必需的。

您可能会发现可以在其他第三方库中使用 PO(如果有的话)。