• SharePoint程序中的多语言支持


    前些天 kaneboy 在博客中写了一篇关于SharePoint UI多语言支持的博客:《SharePoint 2010多语言UI,以及开发人员需要注意的》,本篇内容是对这篇Blog的一些补充和完善。

    涂总的blog中主要是在介绍关于列表名称、字段名称等这些内容的多语言设置,在用程序创建一个列表/字段的时候,为了能够支持多语言,应该使用XXXResource属性来代替XXX属性(例如TitleResource代替Title)。实际上,如果我们是在网站中直接创建的这个列表/字段,例如在中文网站中(默认语言),创建了一个叫“QQ号码”的字段;而当我们切换到另一种语言的时候(比如英文),我们直接对这个字段改名为“QQ Number”,这个时候并不会覆盖中文语言的名称,而是只改变当前语言下的字段名称设置。通过这种方式,我们也可以在不同的语言环境中对同一个字段使用不同的名称。

    需要注意的是,如果我们在网站设置 - 语言设置中,将“覆盖翻译”设置为“是”的时候,一旦我们在默认语言的网站中更改了字段名称,那么会覆盖掉其他语言网站的名称设置,我们需要重新切换语言,再进行一次设置。见下图:

    image

    下面介绍一些SharePoint中和多语言编程相关的对象模型

    1、如何获取不同语言下,网站中一些默认文本?

    通过使用SPResouce的静态方法GetString,该方法有两种重载:

       1: public static string GetString(string name, params Object[] values);
       2: public static string GetString(CultureInfo culture, string name, params Object[] values);

    第一种方法是获取当前语言下指定的字符串,第二种是获取指定语言下指定的字符串(通过第一个参数)。

    第二个参数就是资源字符串的名称,例如“LanguageNameInLocalizedLanguage”就是使用的语言,如果环境是简体中文,取到的就是“中文 - 简体”,如果环境是英文,取到的就是“English”。

    第三个参数是使用的值,如果第二个参数中的字符串包含诸如{0}、{1}这样的占位符,则在第三个参数中指定这些占位符的具体值。

    2、如何知道服务器上安装了哪些语言包?

    有两种方法可以取得:

       1: spRegionalSettings.InstalledLanguages;
       2: SPRegionalSettings.GlobalInstalledLanguages;

    第一种方法要先获取一个SPRegionalSettings对象,可以通过spWeb的RegionalSettings属性获取或者直接使用SPContext.Current.RegionalSettings;第二种方法是SPRegionalSettings的一个静态属性。

    两种方法返回的都是SPLanguageCollection类型的对象,在SPLanguage中包含了LCID属性和DisplayName属性可以分别取得语言的lcid和显示名称(经测试,这个显示名称好像就是在默认语言下的显示名称,不会跟着当前环境语言而改变)

    3、如何知道当前网站可以使用哪些语言?

    在网站设置 - 语言设置中,可以选择当前网站中可以使用的语言,包括默认语言,以及备用语言(如果这边不选中对应的备用语言的话,即使安装了语言包,在网站中也用不了这个语言)。

    通过使用spWeb的SupportedUICultures属性,可以获取到当前网站可以使用的语言,这个属性是一个IEnumerable<CultureInfo>类型的对象。需要注意的是,这个属性在沙盒解决方案中是不可用的。

    4、如何得知网站的默认语言?

    在后台程序中,可以通过spWeb的Language属性(int类型),获取默认语言的lcid。

    在前台JavaScript程序中,可以通过_spPageContextInfo.webLanguage来获取这个lcid。

    5、如何得知当前网站上正在使用哪种语言?

    在后台程序中,可以通过Thread.CurrentThread.CurrentUICulture来获取当前环境的语言地区设置。

    在前台JavaScript程序中,可以通过变量g_wsaLCID或者_spPageContextInfo.currentLanguage获取到当前语言的lcid。

    那么,SharePoint网站支持多语言有哪些方式呢?

    一种方式就是从2007沿用下来的,使用变体的方式(仅在server版中才有),这种方式是为每个语言创建一个独立的网站。

    另一种方式,就是2010新增的,在同一个网站中对多语言的支持(也是上文反复说明的)。在这种方式下,网站的标题、描述信息,列表的标题、描述信息,字段的标题、描述信息,导航结点,托管元数据都是有多语言支持的。如果想要让一个普通的列表字段内容也支持多语言(在不同语言环境中显示不同的值),那就需要开发自定义字段类型了(2010中,只有托管元数据字段类型是包含多语言支持的),下图是一个开发好的一个多语言单行文本的效果:

    编辑画面:

    image

    中文下的显示画面:

    image

    英文下的显示画面:

    image

  • 相关阅读:
    html5 canvas 像素随机百分之十显示
    html5 canvas防微博旋转
    html5 canvas 旋转扩大
    html5 canvas 钟表
    html5 canvas 移动小方块
    html5 canvas 鼠标绘制
    html5 拖放到购物车
    html5 拖拽
    js_sl 无缝切换
    HDU 2048 神、上帝以及老天爷( 错排 )
  • 原文地址:https://www.cnblogs.com/erucy/p/2416104.html
Copyright © 2020-2023  润新知