Internationalization 是否更改每个记录的报告区域设置?

Internationalization 是否更改每个记录的报告区域设置?,internationalization,jasper-reports,Internationalization,Jasper Reports,我有来自许多国家的客户,对于每个国家,我都需要生成一个包含数据的页面 在我的报告中,我有一个类似的查询:选择名称、地址、代码和语言。。。来自客户 对于此查询的每个记录,我希望在Jasper Reports中生成一个页面,其中包含客户数据,这些数据使用各自的语言,我通过此语言了解其语言。 我希望更改每个客户页面和每个记录的报告语言。我可以使用报表参数区域设置执行此操作吗?或者为每个记录更改一些变量?有人有过类似的情况吗?你知道能做什么吗 范例 我需要翻译标签:名称,地址,城市,电话号码和国家在10

我有来自许多国家的客户,对于每个国家,我都需要生成一个包含数据的页面

在我的报告中,我有一个类似的查询:选择名称、地址、代码和语言。。。来自客户

对于此查询的每个记录,我希望在Jasper Reports中生成一个页面,其中包含客户数据,这些数据使用各自的语言,我通过此语言了解其语言。 我希望更改每个客户页面和每个记录的报告语言。我可以使用报表参数区域设置执行此操作吗?或者为每个记录更改一些变量?有人有过类似的情况吗?你知道能做什么吗

范例

我需要翻译标签:名称,地址,城市,电话号码和国家在10种不同的语言,根据客户的国家语言。

这个例子只是一个简化。我将为每个客户生成3到6个报告页面,以及许多其他数据


谢谢

据我所知,这不可能使用任何标准资源引用:

$R{resource.bundle.property} 味精功能 str函数 对于每条记录,提供相应的地区或根据其他数据确定,如国家和城市-加拿大魁北克可能是法语[fr_-CA],而加拿大多伦多可能是英语[en_-CA]

一旦有了地区到地点的地图,使用or?转换特定标签的键

为各种标签创建多个带有翻译的标签。文件名必须具有与预定区域设置对应的后缀,例如Bundle\u fr\u CA.properties

将标签从静态文本更改为表达式。表达式实例化一个新的资源包,以查找关键字(例如city.name)的转换值,例如:

ResourceBundle.getBundle("Bundle", new Locale("en", $F{country})).getString("city.name")

如何确定en有点麻烦,除非您可以更改数据库以获得用户的语言首选项。这意味着您还必须为每种语言/国家/地区组合创建一个资源包,该资源包可以自动执行。

我希望更改每个客户页面和每条记录的报告语言。-你想要什么?是否要替换数据库数据字段中的文本?你的问题不清楚-你应该添加一些图片来说明你的任务/问题你在DB中有不同语言的所有这些名称吗?你可以阅读,但这有助于你只显示不同语言的标签。我需要国际化标签。不是在报告级别,而是到每个客户记录。我在DB中没有这些标签名称。看起来您对DB设计有更多疑问。你应该把问题修改清楚。这篇文章可能会帮助你: