本文是Pentaho国际化的第二部分----CDE,原理性的东东已经在第一部分做了简介,不懂得童鞋请阅读我之前写的文章:https://my.oschina.net/TaoPengFeiBlog/blog/797072
一、描述
假设我们要实现中英文的国际化,我们通过I18n会写出3个特殊的属性文件。且它们放置在与你所做的Dashboard相同的目录下。
1、任何资源文件都应该遵循以下3个规则之一:
- messages.properties
一个没有任何语言特定定义的基本资源文件;
- messages<underscore><language>.properties
小写形式的语言格式的资源文件,譬如: 'messages_en.properties', 'messages_zh.properties';
- messages<underscore><language><hyphen><COUNTRY>.properties
小写形式+大写形式的语言格式的资源文件,譬如:'messages_zh-CN.properties';
2、资源文件之间共享key的覆盖规则:
- 所有在messages<underscore><language>.properties文件里的key消息将会覆盖掉所有在messages.properties文件里的key值;
- 所有在messages<underscore><language><hyphen><COUNTRY>.properties文件里的key消息将会覆盖掉所有在messages<underscore><language>.properties或messages.properties文件里的key值;
3、资源文件的树结构
messages.properties
+
+ ----- messages_en.properties
+ ------------ +
+ ------------ + ----- messages_en-US.properties
+ ------------ +
+ ------------ + ----- messages_en-GB.properties
+
+
+ ----- messages_zh.properties
+ ------------ +
+ ------------ + ----- messages_zh-CN.properties
+ ------------ +
+ ------------ + ----- messages_zh-TW.properties
+
+
+ ----- messages_fr.properties
+
(...)
二、CDE dashboard使用i18n实现国际化
假设我想通过CDE在页面写这些字段:资源文件导入测试、开始日期、结束日期、刷新;相应的英文字段为: Resource File Loading Test 、StartDay、EndDay 、 Refresh ;如何通过i18n实现根据浏览器的语言去进行切换喃?
- 准备相应的资源文件;
建立messages_zh-CN.properties文件
#简体中文
my.message.title=资源文件导入测试
my.message.text_1=开始日期
my.message.text_2=结束日期
my.message.text_3=刷新
建立messages_en.properties文件
#英文
my.message.title=Resource File Loading Test
my.message.text_1=StartDay
my.message.text_2=EndDay
my.message.text_3=Refresh
- 创建一个Dashboard文件,并将上述2个资源文件放在在相同的文件夹下;
- CDE页面布局的简单设计;
- 添加相应的组件;
- 利用i18n从资源文件获取对应语言的字段;
代码如下:
function f(){
return Dashboards.i18nSupport.prop('my.message.title');
}
在每个组件的相同位置写上类似的代码。
- 运行实例之前要做的事:清除服务器的缓存文件夹;
方法一:
进入到\biserver-ce\pentaho-solutions\system\pentaho-cdf-dd\tmp目录下,删除原先的.cache文件夹,有心的童鞋可以对这个文件夹做个深入的研究,在这里小编就不对这个文件夹做过多的说明。
方法二:
通过url地址刷新缓存文件: [GET] /pentaho/plugin/pentaho-cdf-dd/api/renderer/refresh
- 测试
相关文档:http://redmine.webdetails.org/projects/cde/wiki/How_to_i18n_in_CDE_Dashboards?version=19
Pentaho Report Designer6.1通过资源文件实现国际化 :https://my.oschina.net/TaoPengFeiBlog/blog/797072