国际化步骤:

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. CreateFile函数详解(确实很详细)

    CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...

  2. cdoj 791 Frozen Rose-Heads

    //本来想做白书上一题 结果发现又要二染色 又要dp的 想了两个小时没想通 然后做了个傻逼题安慰自己 解:不多说,就是递归到叶节点,然后回来的时候在解决子树和直接删边的代价中间取个最小值 #inclu ...

  3. poj1922

    Ride to School Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18704   Accepted: 7552 D ...

  4. floodlight 学习(一)

    其实这个控制器应该没有多少人用了吧,一年多都没更新了,鉴于最近无论如何都要用这个,将学习笔记贴出来吧. 1.FloodlightProvider(Dev) 1.1简介:FloodlightProvid ...

  5. Mac 下 Chrome 快捷键大全

    1. 标签页和窗口快捷键 ⌘-N 打开新窗口. ⌘-T 打开新标签页. ⌘-Shift-N 在隐身模式下打开新窗口. 按 ⌘-O,然后选择文件. 在 Chrome 浏览器中打开计算机中的文件. 按住  ...

  6. aui

    #encoding:utf-8import wximport wx.auiclass MyFrame(wx.Frame): def __init__(self, *args, **kwargs): w ...

  7. 用Meta 取消流量器缓存实现每次访问都刷新页面方便调试

    如果想禁止浏览器从本地缓存中调阅页面,可以设置网页不保存在缓存中,每次访问都刷新页面,下面是Meta在这方便的用法,需要的朋友可以参考下: <!-- 禁止浏览器从本地缓存中调阅页面.--> ...

  8. C#中dynamic的正确用法【转】

    dynamic是FrameWork4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性.比如,即使你 ...

  9. Acdream1084 寒假安排 求n!中v因子个数

    题目链接:pid=1084">点击打开链接 寒假安排 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 128000/64000 ...

  10. OAuthBase.cs

    using System; using System.Security.Cryptography; using System.Collections.Generic; using System.Tex ...