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

本文是Pentaho国际化的第二部分----CDE,原理性的东东已经在第一部分作了简介,不懂得童鞋请阅读我以前写的文章:https://my.oschina.net/TaoPengFeiBlog/blog/797072web

1、描述

        假设咱们要实现中英文的国际化,咱们经过I18n会写出3个特殊的属性文件。且它们放置在与你所作的Dashboard相同的目录下。api

    一、任何资源文件都应该遵循如下3个规则之一:

  • messages.properties

                一个没有任何语言特定定义的基本资源文件;浏览器

  • messages<underscore><language>.properties

           小写形式的语言格式的资源文件,譬如:  'messages_en.properties', 'messages_zh.properties';缓存

  • messages<underscore><language><hyphen><COUNTRY>.properties

            小写形式+大写形式的语言格式的资源文件,譬如:'messages_zh-CN.properties';服务器

    二、资源文件之间共享key的覆盖规则:

  • 全部在messages<underscore><language>.properties文件里的key消息将会覆盖掉全部在messages.properties文件里的key值;
  • 全部在messages<underscore><language><hyphen><COUNTRY>.properties文件里的key消息将会覆盖掉全部在messages<underscore><language>.properties或messages.properties文件里的key值;

    三、资源文件的树结构

                             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 
                             +
                            (...)布局

2、CDE dashboard使用i18n实现国际化

假设我想经过CDE在页面写这些字段:资源文件导入测试、开始日期、结束日期、刷新;相应的英文字段为: Resource File Loading Test 、StartDay、EndDay 、 Refresh ;如何经过i18n实现根据浏览器的语言去进行切换喃?测试

  • 准备相应的资源文件;

创建messages_zh-CN.properties文件url

#简体中文 
my.message.title=资源文件导入测试
my.message.text_1=开始日期
my.message.text_2=结束日期
my.message.text_3=刷新

创建messages_en.properties文件spa

#英文
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从资源文件获取对应语言的字段;

代码以下:.net

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

相关文章
相关标签/搜索