Saiku国际化总结

国际化步骤:

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>

posted @ 2015-10-23 17:11  大象踢足球  阅读(589)  评论(0编辑  收藏  举报