使用SSAS的翻译功能实现报表的国际化

一、SSAS翻译功能简介

翻译是 Analysis Services 对象的名称在特定语言中的表示形式。对象包括度量值组、度量值、维度、属性、层次结构、KPI、操作和计算成员。

翻译为可支持多种语言的客户端应用程序提供了服务器支持。通过使用这样的客户端,客户端就可以将区域设置标识符 (LCID) 传递给 Analysis Services 实例,该实例则使用 LCID 来确定在为 Analysis Services 对象提供元数据时要使用哪一组翻译。如果 Analysis Services 对象不包含该语言的翻译或不包含指定对象的翻译,则在将该对象元数据返回给客户端时使用默认语言。例如,如果一个法国的业务用户从使用法语区域设置的工作站访问多维数据集,则存在法语翻译时,此业务用户将看到法语的成员标题和成员属性值。但是,如果一个德国的业务用户从使用德语区域设置的工作站上访问同一个多维数据集,则此业务用户将看到德语的成员标题和成员属性值。

二、如何定义翻译

1.如图1所示,我们在打开维度编辑页面,选择"翻译"(Translations)选项卡。右击鼠标,在弹出菜单中选择"新建翻译"。

图 1

2.在选择语言对话框,我们选择要翻译的语言。如图2所示。

图 2

3.在图3中,我们将看到新建的中文翻译栏,通过单击表格,我们可以输入对应属性的中文翻译文本。如果我们想对属性的数据内容也进行翻译,可以点击表格右边的按钮,如图3红框位置,将弹出图4的对话框,在图4红框中选择翻译对应的表项。

图 3

 

图 4

以下是MSDN基于Adventure Works DW建立多维数据集维度翻译的具体教程,可供参考:http://msdn.microsoft.com/en-us/library/ms166708(SQL.100).aspx

三、如何选择Cube(多维数据集)的翻译版本

客户端可以通过连接字符串中的"Locale Identifier"字段将区域设置标识符 (LCID)传递给 Analysis Services 实例,实例将根据这个LCID判断使用哪一组翻译。连接字符串例子如图5所示:

图 5

5中的1036代表的是法语的意思,1033是美国英语,2052代表简体中文。这样实例将返回法语翻译后的数据源。其他语言的代码可以参考:http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx

1.如何根据浏览器的区域语言,实现报表的国际化

上面我们提到可以通过Cube的连接字符串进行对翻译版本的选择。那么我们在实现报表的国际化时就可以利用这一点,先判断浏览器的区域语言,再将该语言的LCID修改连接字符串,从而修改数据源的语言版本。

在报表中,我们可以通过内置的参数User!Language获得浏览器的区域语言。通过Switch进行区域语言与LCID的映射。从而建立了如下的连接字符串表达式:

="Data Source=localhost;Initial Catalog='Adventure Works DW 2008R2';Locale Identifier="+Switch(User!Language="en-US","1033", ="fr-FR","1036")

通过这个表达式,我们就能根据各个客户端浏览器的需求动态的更改用户显示的报表语言了。通过IETools/Internet Options/Languages,我们将想要查看的语言Move Up到列表的第一行,这样就完成浏览器的区域语言设置,如图6所示。

图 6

78是最终的展示效果。标题显示的是User!Language的值。

图 7

图 8

posted @ 2011-01-18 20:48  Will-SharePoint  阅读(2142)  评论(0编辑  收藏  举报