0

我来自斯洛伐克,如果你们大多数人没有听说过,我不会感到惊讶。

然而,当涉及到报告时,这给我带来了麻烦。我们需要每个报告有 3 个(很快 4 个)语言版本:斯洛伐克语是主要语言,波兰语和英语是主要语言。

由于 pentaho 不支持波兰语和斯洛伐克语,所以将这些本地化对我来说真的很痛苦。

我要做的是:

  1. 用斯洛伐克语创建报告
  2. 写下报告中的所有短语
  3. 将短语发送给我们的一位合作伙伴进行翻译
  4. 在 pl/en 目录中创建其副本
  5. 在报表设计器中打开它并相应地编辑每个短语
  6. 另存为另一种语言版本

可以想象,这个过程非常耗时,而且容易出错。另外,每次我添加新参数来报告或更改其数据源(即 BeanShell 脚本)时,我都需要在 3 个单独的文件中执行此操作。因此,语言突变通常已经过时,远远落后于主要语言版本。

我尝试使用 OneSky 将其自动化,并做了一个执行 2 个阶段的 python 脚本:

第 1 阶段(提取和上传):

  1. *.prpt将文件后缀更改为*.zip
  2. 从文件中提取短语:~/datadefinition.xml, ~/layout.xml, ~/styles.xml,~/datasources/inline-ds.xml
  3. 将这些短语放入 *.po 文件中
  4. 将文件导出*.po到 OneSky

第 2 阶段(下载和导入):

  1. *.prpt将文件后缀更改为*.zip
  2. 从 OneSky 下载翻译后的 *.po 文件
  3. 遍历~/datadefinition.xml, ~/layout.xml, ~/styles.xml,~/datasources/inline-ds.xml文件并用翻译替换原始短语

虽然这种方法效果很好,但它并不能翻译所有内容。这个过程仍然存在缺陷。每次我对报告的数据源进行最轻微的更改或修复小错误时,我都需要通过它。即使我只是在 SQL 代码中做一个小六,我也需要在 3 个文件中做。这当然会增加犯错的机会。

Soo,我想知道,你们是如何通过翻译报告来解决这个问题的?

4

1 回答 1

0

我将分享我们正在遵循的非常简单的方法。

1)create a properties file with key value format for each language for resource labels(for static values)
2)put it into resources folder(report-designer/resources/)
3)Based on the parameter you can specify which properties file to select and you can specify keys into value field so that it can understand which value to display in which language.
4)if you need to convert the data which are coming from database,you have to design data warehouse specify all the mappings,accordingly it can fetch the data.
5)For converting dates and currency symbols or number format you can use inbuilt functions which can handle all this things,i am using mysql and mysql has translation functions which can handle all such things.

在这里很难解释整个过程,但如果你能从中获得灵感,它会对你有用。

于 2018-04-25T12:02:43.463 回答