报告(RDLC)本地化/全球化

7

[VS2010/ASP.NET Web Forms]

你好,

在一个报表(RDLC)中,我需要为以下元素提供两种语言(pt-BR和en-US)的本地化/全球化: - 标签/标题(固定文本) - 报表查看器UI界面(按钮和工具提示,如查找、下一个、上一个等控件)。 - 根据当前文化格式化字段

最佳实践是什么?

  • 对于翻译固定的标签/标题,我发现了一些解决方案,可以使用报表TextBox的LabelLocID作为辅助手段,手动翻译RDLC的XML定义。但这似乎非常丑陋和费力!

  • 对于翻译UI界面,我发现了一些解决方案,建议使用自定义IReportingViewerMessage MSDN。还有其他自动化的解决方案吗?

  • 对于格式化数据字段,我可以设置报告和文本框(在RDLC中)的语言属性,但需要根据当前文化设置。我该怎么做呢?

谢谢!

2个回答

10

通过将我想要显示的文化作为参数输入报告,我已经成功地进行了本地化。以下是基本概述:

  1. 设置一个报告参数,代表您想要显示的文化代码。我们称其为pReportCulture。我将一个静态值设置为默认值为“en-US”。

  2. 将报告的语言设置为参数的值:Language=Parameters!pReportCulture.Value。这应该设置报告中所有文本框等的文化。

  3. 确保在本地化字段上放置日期或货币格式。使用.toString("c")或其他有效格式。如果您进行任何自定义文本解析,则会失去来自文化设置的自动本地化。

这应该照顾到大多数的本地化显示。


Jellie,谢谢你的回答。我认为这个解决方案只处理了数据字段格式,对于固定标签/标题文本的全球化怎么办? - outlookrperson
@rperson,你是在谈论基于文化的多语言翻译吗?如果是,并且你只需要处理两种语言,那么你可以将所有字符串制成表格,并根据文化参数加载数据集。然后,您需要使用表达式从数据集中显示每个字符串。 - Tj Kellie
我已经按照您的建议,使用参数解决了字段格式化和字段标题的问题。我使用了IReportViewerMessages和资源(resx)来解决用户界面本地化的问题。谢谢! - outlookrperson
1
这种方法不适用于图表。图表标题、轴标题、分组... - Smith

0
在你的.rdlc报告中,右键单击(空白处)。 在属性中,将语言选项设置为你的国家文化。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接