国际化步骤:

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. Log4j的应用实例(转)

    转自:http://www.cnblogs.com/eflylab/archive/2007/01/12/618080.html 在Log4J使用笔记中没有怎么写实例,那么在这篇中我将Log4j的一个 ...

  2. C语言的本质(1)——计算机与二进制

    人类的计数方式通常是"逢十进一",称为十进制(Decimal),大概因为人有十个手指,所以十进制是最自然的计数方式,各民族的文字中都有十个数字,而阿拉伯数字0-9是目前最广泛采用的 ...

  3. Windows Azure 社区新闻综述(#69 版)

    欢迎查看最新版本的每周综述,其中包含有关云计算和 WindowsAzure 的社区推动新闻.内容和对话. 以下是过去一周基于您的反馈汇集在一起的内容: 文章.视频和博客文章 ·     使用 Azur ...

  4. Linux下查找最大文件

    当我们应用一段时间以后,Linux可能会变得臃肿了,那么,怎么找出一个“path”下的最大文件呢? 可以使用du命令,如: du -sh [dirname|filename] 如:当前目录的大小: d ...

  5. C++ 之再继续

    1C++函数重载,内联函数(for程序性能优化),函数递归

  6. Cannot retrieve metalink for repository: epel.

    Error: Cannot retrieve metalink for repository: epel. Please verify its path and                     ...

  7. JS继承,原型继承,构造函数的继承,非构造函数"的继承

    a.原型继承 一.new运算符的缺点 用构造函数生成实例对象,有一个缺点,那就是无法共享属性和方法.比如,在DOG对象的构造函数中,设置一个实例对象的共有属性species. function DOG ...

  8. Guestinfo.hbm(1)The markup declarations contained or pointed to by the document type declaration must be well-formed

    今天启动ssh项目是居然报错了,还提示要联网启动,看了看错误信息发现,肯定是Hibernate映射文件的声明头出错了,仔细一下: hbm.xml中的dtd头直接是连接www.hibernate.org ...

  9. Linux命令学习之shift命令

          位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift ...

  10. 21个值得收藏的Javascript技巧

    1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如 ...