简介
Mondrian提供了国际化支持,Saiku只需要把参数传递给Mondirian即可。
配置步骤
1、修改mondrian.properties文件
mondrian.rolap.localePropFile=locale
2、在WEB-INF/classes添加locale_zh_CN.properties
test.dimension.date.caption=日期 test.dimension.date.allMemberCaption=全部 test.dimension.date.allLevelName=全部 test.dimension.date.year.caption=年 test.dimension.date.quarter.caption=季度 test.dimension.date.month.caption=月份 test.dimension.date.day.caption=日 test.cube.test.measure.member_count=会员数量 test.cube.test.measure.order_count=订单数量
这里的中文是unicode编码
3、在schema文件里面引用,用%{属性名}
<Dimension name="date" caption="%{test.dimension.date.caption}">
<Hierarchy hasAll="true" primaryKey="dateKey" allLevelName="%{test.dimension.date.allLevelName}">
<View alias="vDate">
<SQL><![CDATA[select * from DimDate where dateKey>=20120101 and dateKey<curdate() ]]></SQL>
</View>
<Level name="year" column="year" uniqueMembers="true" caption="%{test.dimension.date.year.caption}" />
<Level name="quarter" column="quarter" uniqueMembers="true" caption="%{test.dimension.date.quarter.caption}" />
<Level name="month" column="month" uniqueMembers="true" caption="%{test.dimension.date.month.caption}" />
<Level name="date" column="dateKey" uniqueMembers="true" caption="%{test.dimension.date.day.caption}" />
</Hierarchy>
</Dimension>
<Cube name="test">
<Table schema="test" name="test" />
<DimensionUsage name="date" source="date" foreignKey="allotDate" />
<DimensionUsage name="salary" source="salary" foreignKey="salary" />
<Measure name="member count" column="memberId" aggregator="distinct-count" caption="%{test.cube.test.measure.member_count}" />
<Measure name="order count" column="memberId" aggregator="count" caption="%{test.cube.test.measure.order_count}" />
</Cube>
4、添加数据源
type=OLAP name=test driver=mondrian.olap4j.MondrianOlap4jDriver Locale=zh_CN DynamicSchemaProcessor=mondrian.i18n.LocalizingDynamicSchemaProcessor location=jdbc:mondrian:Jdbc=jdbc:mysql://10.10.10.128:3306/zhenai_warehouse;Catalog=res:test/test.xml; username=etl password=etl@123456
5、修改类org.saiku.datasources.connection.SaikuOlapConnection,并更新到saiku-service-2.5.jar中
Class.forName(driver);
OlapConnection connection;
//connection = (OlapConnection) DriverManager.getConnection(url, username, password);
connection = (OlapConnection) DriverManager.getConnection(url, props);
final OlapWrapper wrapper = connection;
OlapConnection tmpolapConnection = (OlapConnection) wrapper.unwrap(OlapConnection.class);
6、效果见附件

本文介绍如何为Mondrian OLAP服务器配置国际化支持,包括修改配置文件、添加本地化资源文件、引用属性以及更新数据源设置等步骤。
906

被折叠的 条评论
为什么被折叠?



