8

在 Delphi 中,查看项目属性时有一个选项VersionInfo->Language->Locale ID 。
我在徘徊如何为在 Free Pascal 下编译的程序设置此类属性。
欢迎任何解决方案:命令行参数预处理器指令,例如{$key value}; 相当于德尔福。

4

2 回答 2

8

如果您可以使用*.lpi文件构建项目,那么我会尝试将以下内容添加到您的项目Project.lpi文件中。下面的代码片段展示了如何将项目的区域设置 ID(对于 Windows 平台)设置为 0405(捷克语)。

<?xml version="1.0"?>
<CONFIG>
  <ProjectOptions>
    ...
    <VersionInfo>
      <UseVersionInfo Value="True"/>
      <Language Value="0405"/>
      <StringTable ProductVersion=""/>
    </VersionInfo>
    ...
  </ProjectOptions>
  ...
</CONFIG>

或者,如果您使用的是 Lazarus IDE,那么您可以使用与 Delphi 非常相似的设置选项卡,您可以从该选项卡中打开该选项卡,如果您将版本信息包含到项目中,则Project / Project Options ...在 Delphi 中转到可用Version Info的组合框。Language selection

于 2012-02-17T10:57:58.833 回答
5

不是 100% 确定这会起作用,如果这不起作用,请随时投票给我。

Lazarus 将继承它开始时的语言环境设置。您可以在Linux/OS X中使用命令行
启动 Lazarus 之前设置语言环境信息:

export LC_CTYPE="pt_BR"
export LANG="pt_BR"
export LANGUAGE="pt_BR"
./lazarus

您编译的应用程序应该继承这些设置。

答案的灵感来自此解决方法,该错误已得到修复。

我建议您也看看fpc 论坛并在那里提出问题。
不要忘记它包括平台(Linux/Windows/OS X)和您正在使用的 FPC 和 Lazarus 的确切版本以及您想要的实际语言环境等详细信息。

更好的答案
来自:http: //forum.lazarus.freepascal.org/index.php/topic,5924.0.html

最后,我设法找到了一种简单有效的方法来使我的应用程序可本地化。它只使用一个单元,没有代码。
1.将单位“defaulttranslator”添加到您的使用列表中。
2. 在“Project Options”中启用“i18n”,并将“PO output directory”设置为“locale”或“languages”。您可以将翻译文件直接放入应用程序文件夹,但这只会弄得一团糟。不要忘记创建一个适当的文件夹。
3. 向表单添加组件。如果您的表单上已经有所有组件,则必须稍微移动它,所以它被修改了。
4. 保存您的项目。
5. 现在您的“locale”或“languages”文件夹中应该有 .po 文件了。对于不同的语言文件,应该像“project1.XX.po”一样复制和重命名,其中XX 是语言代码(例如“en”、“de”等)。
6.用翻译软件翻译.po文件,生成.mo文件。我建议使用 POEdit。
7. 运行您的应用程序,要使用的翻译将由您的区域设置选择。如果您需要测试其他语言 - 只需使用以下命令行参数启动您的应用程序 - “-l XX”或“-lang XX”,其中 XX 是语言代码。
这种方法不是很通用,但它可以转换资源字符串和 LCL 组件属性。

于 2012-02-17T10:30:36.230 回答