FastReport中国社区FastReport联系电话 联系电话:023-68661681

报表控件FastReport VCL 中的本地化和语言切换

来源:   发布时间:2024-11-26   浏览:次

在当今世界,向全球客户提供软件的能力至关重要。因此,FastReport VCL 支持大约 40 种最广泛使用的语言,用于本地化用户界面。

FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。

FastReport VCL下载 

从 2023.2 版开始, FastReport VCL中的本地化机制得到了显著改进——不再需要重新编译才能将 FastReport 翻译成其他语言。本地化包包含在所有 FastReport VCL 交付套件中。通过在报表设计器中从“视图 - 语言”菜单中选择所需的语言,可以“即时”执行本地化。此外,您可以直接从代码管理 FastReport VCL 的界面语言!

设计器中的语言选择(并非所有可用语言都已连接)
检查并安装本地化包

为了使本地化正常工作,IDE 必须安装本地化包 (frxLanguageXXX) 和本地化控制器包 (frLocalization)。在 Windows 操作系统中,Delphi 和 Lazarus IDE 会自动安装本地化包。如果本地化菜单不可用,您需要检查 IDE 中是否安装了这些包。在 Delphi 中,您将看到以下窗口:

在 Delphi 中安装的本地化包

Lazarus 中的本地化菜单如下所示:

在 Lazarus 中安装的本地化包

如果不需要任何翻译包,则可以将其从开发环境中删除。

使用 TfrLocalizationController 和语言选择

如前所述,在报表设计器中更改 FastReport 中的语言非常简单。转到“视图 — 语言”菜单并选择所需的语言。

要将 FastReport 本地化连接到应用程序,您需要使用 TfrLocalizationController 组件。只需将其放在应用程序的主窗体上即可。接下来,对于 Delphi,右键单击该组件,然后在下拉菜单中选择您需要 FastReport 在程序中支持的语言:

为程序添加本地化

之后,您需要选择 TfrLocalizationController 组件的语言,该组件将在应用程序启动时默认加载。您还可以将包含必要本地化的模块添加到主表单的使用部分。

需要注意的是,默认情况下,FastReport VCL 使用英语,因此如果您只需要英语,则无需执行其他操作。

要在 Lazarus 中连接本地化,您需要将语言包添加到项目中,然后添加该语言的模块。

从代码更改语言

在某些情况下,可能需要从程序代码中管理 FastReport VCL 本地化。具体操作如下:

frLocalizationController.Language := ‘German’;

以下代码将语言设置为德语。请不要忘记,您的程序必须使用您希望切换到的语言包进行编译。您可以使用以下代码找出程序使用哪些语言包进行编译。为此,您需要包含 Types 模块,将 TButton 和 TMemo 组件放置在窗体上,并在 Button.OnClick 事件处理程序中写入:

procedure TForm1.Button1Click(Sender: TObject);
var D:TStringDynArray;
I: Integer;
begin
Memo1.Lines.Add('Default Lang: '+TfrAvailableLanguagesController.GetDefaultLanguageName);
Memo1.Lines.Add('Current Lng: '+frLocalizationController1.Language);
Memo1.Lines.Add('Suppotred languages:');
D:=TfrAvailableLanguagesController.GetLanguages;
for I:=Low(D) to High(D) do begin
Memo1.Lines.Add(D[I]);
End;
end;

程序显示可用的本地化语言

请注意,英语不包含在支持的语言列表中,但默认情况下始终可用。

通过 Localizer 编辑本地化

您可以按如下方式打开本地化编辑器:

  • 在 Delphi IDE 中,转到菜单“工具… - 本地化编辑器…”
  • 在 Lazarus 中,导航到菜单“服务 - 本地化编辑器…”
本地化编辑器 (Delphi)

您可以使用以下代码从程序中调用“本地化编辑器”。但是,此方法并非在所有版本中都可用。

frLocalizationController1.ShowLocalizationEditor;

本地化编辑器中控件的用途:

本地化编辑器 (Delphi)

“本地化编辑器”允许您将FastReport VCL资源逐行翻译成各种语言。

本地化编辑器

编辑器的中心是一个带有可翻译值的网格。

第一列显示要翻译的元素的标识符。它始终是一个字符串,即使某些行可能包含数字,因为它们使用字符串表示。

第二列显示该元素的原始英文值。

第三列包含该元素的另一种语言的翻译值。

让我们继续了解本地化编辑器的工作原理。加载后,编辑器会检查它所嵌入的应用程序可以使用哪些本地化。然后,它会填充可用语言列表(用于输入目标语言的组合框)。当前设置的本地化可供编辑。您可以选择和编辑任何可用语言的翻译,并将其保存到 XML 文件中。如果您已经有包含翻译的 XML 文件,则可以加载它进行编辑。

在本地化编辑器中,您可以切换显示模式。例如,您可以只显示翻译与英文原文一致的元素,或者相反,只显示翻译与英文版本不同的元素。但需要注意的是,并非所有元素都需要翻译。

您可以对网格中的条目应用过滤器。仅当任何列中存在过滤器值时,才会显示网格元素。您还可以通过单击任何列的标题按字母顺序升序或降序对网格进行排序。

如果您修改了翻译文件,则可以将其连接到应用程序而不是标准文件。为此,您需要使用以下代码在 uses 子句中包含 frResources 模块:

frStringResources.LoadFromFile('mylanguage.xml');

我们建议在编辑文件后重新启动应用程序,以便正确显示所有翻译的资源。还应考虑到加载的翻译会立即生效,但仅在第一次切换语言之前有效。切换回同一语言后,将从与程序相关的资源中提取本地化。

此外,您可以自己编译带有翻译文件的资源。将其放在具有相应语言模块的目录中,并在您的程序中使用它。要让此翻译出现在 IDE 中,请运行安装程序并选择重新编译模式,或者只需重新编译所需语言的包。在 Lazarus 中,您需要随后重建 IDE;在 Delphi 中,您需要重新启动环境。

如果您希望每次更新后都保留翻译,您可以将本地化文件发送给我们:support@fast-report.com。我们将审核收到的文件并将其添加到安装程序中。

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3672.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


扫码咨询
电话咨询
023-68661681
返回
顶部