1

我们有大量使用 ActiveReport(*.rdlx 文件)创建的页面报告,我们在 ASP.NET MVC Web 应用程序中使用它们。

所有字幕和其他内容最初都是用英语创建的

现在我们需要在那里添加多语言支持,所以我们需要将所有现有文本插入到资源文件中,然后我们可以添加翻译

有没有办法快速完成这项任务,而无需进入每个报告字段并手动将其提取到资源文件中?文档说,一旦您更改 Language 属性,将创建资源文件,但似乎它不适用于 XML 报告,或者应该有一个技巧

对于使用 Code-behind 设计的报告,资源文件的创建与创建 Windows 表单几乎相同……但我不知道如何为 XML 报告执行此操作。

4

2 回答 2

3

页面报告支持本地化;但是它不会对资源文件执行此操作。

这在关于使用 ActiveReports 7 进行本地化的页面上的一句话中提到了这一点。

在页面报告中设置本地化值的方式与在部分报告中的设置相同。只需更改报告的Language属性,然后设置新的文本框值。在报告运行时,将使用文本框的适当值。

正如我上面提到的,这不会生成单独的 .resx 文件;相反,如果您检查生成的 .rdlx,您会发现dd:LocalizationResources创建了一个自定义元素,该元素指定了报告元素的语言设置和新值。

于 2013-08-17T15:42:00.817 回答
1

您在文档和代码隐藏报告中引用的 Localize 属性适用于基于代码的“部分布局”报告,但不适用于基于 XML 的“页面布局”报告如果您查看生成的代码对于报告,您会看到设计器只是生成了一堆代码来本地化报告)。

由于代码隐藏报告支持自定义代码,或者您可以添加对另一个 DLL 的引用,您可以编写一个简单的函数来本地化字幕。这里有一个很好的本地化 .rdl 报告的示例,您可以对 ActiveReports 的 .rdlx 文件使用完全相同的方法。

在将报告初始配置为可本地化期间,您必须手动将每个静态字符串更改为Code.LocalizedValue调用,或者您可以编写一个简单的脚本来查找每个//Textbox/Value 元素并将其替换为类似的调用。一个结合了 xpath 和 regex 的简单脚本可以帮助您自动执行报告的初始配置。要在报表中本地化文本框值以外的内容(例如报表参数、标签/书签),您需要替换与文本框值不同的元素的文本,但概念是相同的。

当然,我假设您正在本地化报告中的静态字符串。如果您想本地化数据库中的值,那么您必须以不同的方式执行此操作(如果您需要帮助,请发表评论,我会解释)。

于 2013-08-09T04:17:29.283 回答