国际化步骤:

1.在mondrian.properties同路径下加上locale_zh_CN.properties资源文件,内容例如:schema.name.K12UserAnalysis=K12用户分析(utf-8编码汉字)

2.mondrian.properties增加下面一行,通知mondrian处理类要读取locale_zh_CN的国际化文件

mondrian.rolap.localePropFile=locale_zh_CN

3.schema文件加上配置

<Schema name="%{schema.name.K12UserAnalysis}">

(Schema无caption属性,故直接加在name属性中,其他有caption属性的节点最好加在caption属性上如:<Cube name="APPAZLTJ" caption="%{cube.name.APPAZLTJ}">,若schema的name属性使用中文,会使header的长度过长,导致jetty6下报错header full error,改为jetty7即可,或者在jetty.xml文件中添加requestHeaderSize属性并设置大小)

4.数据源文件中加上

  1. type=OLAP
  2. name=test
  3. driver=mondrian.olap4j.MondrianOlap4jDriver
  4. Locale=zh_CN
  5. DynamicSchemaProcessor=mondrian.i18n.LocalizingDynamicSchemaProcessor
  6. location=jdbc:mondrian:Jdbc=jdbc:mysql://****:3306/zhenai_warehouse;Catalog=res:test/test.xml;
  7. username=etl
  8. password=etl@123456

5.修改类org.saiku.datasources.connection.SaikuOlapConnection

SaikuOlapConnection中本来只使用username,password的方法修改成使用properties,因为需要调用mondrian国际化的标识会在properties里面

connection = (OlapConnection) DriverManager.getConnection(url, props);

DONE~!

数据的国际化:

1.在数据库中表中新增一列翻译后的数据,例如原先显示的数据内容为codedesc的内容,新增列为codedesc_zh

codedesc  codedesc_zh

football    足球

baseball    棒球

2.在locale_zh_CN.properties文件中增加内容如:i18n.codedesc=codedesc_zh

3.动态更改level的nameColumn属性,在schema文件中更改level的nameColumn:

<Level name="XB" visible="true" table="f_jcjy_code_xb" column="code" nameColumn="%{i18n.codedesc}" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="%{common.name.XB}">/Level>

Saiku国际化总结的更多相关文章

  1. saiku中默认级别all的国际化

    在制作saiku的schema文件的时候,当你选择层次的属性hasAll为true的时候,系统默认会为你的层次添加一个“(all)”级别,你无法给它增加一个caption属性来国际化它,因为他不是你创 ...

  2. Hello Web API系列教程——Web API与国际化

    软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法.这在很多成熟的软件开发平台中非常常见.对于.net开发 ...

  3. JS魔法堂:不完全国际化&本地化手册 之 理論篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  4. Struts2入门(六)——国际化

    一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...

  5. JavaWeb的国际化

    国际化 1.国际化开发概述 1.1.软件的国际化 软件开发时,要使它能同时应对世界不同地区和国家的方法,并针对不同地区和国家的方法,提供相应的,符合来访者阅读习惯的页面或数据 国际化简称:i18n : ...

  6. struts2国际化

    struts2国际化 1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素 ...

  7. 学习SpringMVC——国际化+上传+下载

    每个星期一道菜,这个星期也不例外~~~ 一个软件,一个产品,都是一点点开发并完善起来的,功能越来越多,性能越来越强,用户体验越来越好……这每个指标的提高都需要切切实实的做点东西出来,好比,你的这个产品 ...

  8. JS魔法堂:不完全国际化&本地化手册 之 实战篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  9. JS魔法堂:不完全国际化&本地化手册 之 拓展篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

随机推荐

  1. Es分析

    http://my.oschina.net/lxbzj/blog/138587 http://donlianli.iteye.com/blog/1923017 http://tangzhaohui.n ...

  2. BuildSigar

    https://support.hyperic.com/display/SIGAR/Home;jsessionid=7436F86CA13B66BCE1A827043E159F34#Home-down ...

  3. 如何修改被编译后DLL文件

    原文 http://www.cnblogs.com/wujy/p/3275855.html 我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL ...

  4. editplus使用:非法字符: \65279

    众所周知,在跨程序的工程中,统一编码是至关重要的,而目前最普遍的则是统一采用“utf8”编码方案. 但是在采用utf8方案的时候,请注意编辑器的自作聪明. 比如editplus. 原因就在于某些编辑器 ...

  5. poj2924---高斯求和

    #include <stdio.h> #include <stdlib.h> int main() { ; long long ans,a,b; scanf("%d& ...

  6. #include <iomanip>

    1 setfill 2 setprecision 3 setw 1 setfill setfill( 'c' ) 设填充字符为c ▲setfill(char c) 用法 : 就是在预设宽度中如果已存在 ...

  7. hdu 5578 Friendship of Frog(multiset的应用)

    Problem Description N frogs . Two frogs are friends if they come from the same country. The closest ...

  8. 最短路(dijskra+SPFA+Bellman)

    最短路 Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...

  9. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  10. 关于c++primer的一个代码错误

    近期看c++primer第四版的标准容器vector.讲到对vector容器的插入删除元素会使得end()的迭代器失效的问题,所以不建议程序猿对end()的存储. vector<int> ...