Pentaho6.1实现国际化二:Pentaho CDE通过资源文件实现国际化

原创
2016/12/02 13:19
阅读数 1.2K

本文是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

展开阅读全文
打赏
0
7 收藏
分享
加载中
更多评论
打赏
0 评论
7 收藏
0
分享
返回顶部
顶部