mondrian --schema国际化

来源:互联网 发布:alex淘宝店怎么没了 编辑:程序博客网 时间:2024/05/16 17:28

在用OLAP引擎Mondrian开发的过程中,会出现一个国际化(Internationalization)的问题。每个schema 对象(schema、cube、dimension、level、measure)都有一个caption 属性,表现层如Jpivot 显示的是caption 而不是真正的name。

  因此我们可以自caption上做国际化处理,格式为:caption="%{}"

通过以下几个步骤便可实现国际化  :

1.将caption按格式caption="%{}"处理;

2.创建对应的国际化文件,命名如下locale_zh_CN.properties【假设原来已有locale.properties】 根据java国际化标准填写内容

3.在mondrian.properties文件(一般是在WEB-INF下),并添加下面两个属性
   Locale:用于指定要使用的语言
   mondrian.rolap.localePropFile:国际化文件绝对路径 

例如:
Locale=zh_CN
mondrian.rolap.localePropFile=【此处可以用绝对路径和相对路径】locale.properties 

4.在显示的页面上的<jp:mondrianQuery>标签里添加dynLocale="zh_CN" dynResolver="mondrian.i18n.LocalizingDynamicSchemaProcessor"

<jp:mondrianQuery id="query01"  jdbcDriver="com.mysql.jdbc.Driver"  jdbcUrl="jdbc:mysql://*IP地址*/*数据库名*?user=*用户名*&password=*密码*" catalogUri="/WEB-INF/queries/*mondrian schema文件*.xml" dynLocale="zh_CN" dynResolver="mondrian.i18n.LocalizingDynamicSchemaProcessor"> 

select {[Measures].[aaa],[Measures].[bbb],[Measures].[ccc]} ON columns,
{([ddd],[eee], [fff]) } on rows
FROM [fact_table]
</jp:mondrianQuery>

5.到此就可以了

6.   关于国际化功能实现相关代码在LocalizingDynamicSchemaProcessor和MondrianProperties两个类里。

原创粉丝点击