是否可以为单个jrxml报告使用多个资源包?

时间:2017-02-07 06:46:49

标签: java jasper-reports

我使用Jasper生成PDF报告。在jrxml文件中,我可以读取单个属性文件作为资源包,但在这里我需要读取2个属性文件以生成报告为BiLingual(两种语言标签,一种是英文,另一种是本地语言)报告。可以在JasperReport中使用多个属性文件。或者还有其他方法可以做到吗?

1 个答案:

答案 0 :(得分:0)

拥有单个资源包的主要原因是它封装了一种语言的所有文本。运行报告时,会提供报告的区域设置(国家/地区和语言)。这会导致报告选择特定语言的资源包。由于报告模板引用了包密钥而不是它们的值,因此生成的报告以特定语言输出。

如果报告是双语的(一个不寻常的要求,因为将Locale对象传递到报表以生成单一语言,这会增加可用的页面空间),请创建资源包正常,但更新标签以包含两种语言。这可能类似于:

header.label.greeting = Hello / Bonjour
footer.label.page = Page / Page
body.label.name = Name / Nom

如果英文标签总是第一个,那么只需默认使用英文区域设置并相应地命名资源包文件。

这是灵活的,因为如果将来需求发生变化,它可以提供超过双语资源包的可能性,例如单独的英文和法文标签:

header.label.greeting = Hello
footer.label.page = Page
body.label.name = Name
header.label.greeting = Bonjour
footer.label.page = Page
body.label.name = Nom

如果您感到特别热情,可以编写一些代码来合并来自不同语言的两个资源包。也就是说,考虑到上面显示的两组键,您可以生成一个资源包,它使用斜杠组合每个标签。

对于这种工作方法,您必须有一个约定,允许合并代码区分双语标签和非双语标签,如果存在的话。