SharePoint 2010多语言UI,以及开发人员需要注意的

简介:

SharePoint 2010支持同一个网站呈现出不同语言的UI。比如,一个中文版的SharePoint 2010系统,管理员可以在服务器上安装SharePoint 2010英文语言包,然后在网站设置的“语言设置”中,选择“英语”为备用语言。

image

然后用户就可以随时使用页面右上角的用户菜单,将当前网站的显示UI,在多个语言之间进行切换。

image

如果你尝试一下这个功能,就会发现一个有趣的现象。对于SharePoint 2010的内置列表和文档库,它们的名称,以及所有字段的名称,都会根据当前的UI语言,显示成不同的语言文字。比如,这是“共享文档”在中文UI语言下所显示的样子:

image

如果这时将UI切换成英文,那么它就会变成:

image

嗯,就如你所见,无论是文档库的名称(“共享文档”->“Shared Documents”),还是字段的名称(“类型”->“Type”),它们都可以很好的适应当前的语言UI,自动显示成不同语言的文本。

那么,对于自定义的列表和文档库,它们也会具备这种能力吗?不用试就知道,除非我们进行额外的处理,SharePoint 2010不可能知道应该如何将自定义列表的名称和字段名称,显示成不同语言的文本。

假设我们有一个自定义列表,“公司客户”,它包含有一个自定义字段,“客户地址”,此列表在中文UI下显示成这样:

image

如果希望“公司客户”列表具备多语言显示能力,可以通过如下的代码实现:

image

上面代码的作用,就是将列表名称的英文版本(en-US),设置为“Company Customers”,并且将“客户地址”字段的英文版本,设置为“Customer’s Address”。下面的截图就是运行了上面的代码后,这个列表在英文UI下的显示:

image

通过代码你应该看出来了,SPList和SPField都有一个TitleResource属性,通过这个属性,我们可以获取或设置在不同语言中,列表或字段的Title值。那么如果在代码中直接获取或设置SPList和SPField的Title属性,会怎么样呢?答案就是,这时SharePoint对象模型会根据当前代码所在线程的UI Culture,来自动获取不同语言版本的Title值。下面的代码就示范了这个用法:

image

两次调用SPList.Title属性,由于分别为当前线程设置了不同的UI Culture,Title属性就会返回不同的值。

由于这个特性的存在,在某些事情,如果没有考虑周全,就会在你的自定义代码中产生一些bug。让我们想象这样的一个场景:你的SharePoint 2010是中文版,但是SharePoint服务器上的Windows Server是英文版本。你需要写一些代码,为某个列表添加一个字段:“QQ号码”。你非常清楚字段的显示名称(Title)和内部名称(InternalName)的区别,你不想SharePoint 2010自动为你的新字段生成一个稀奇古怪的内部名称,于是聪明的你决定这样来创建这个字段:

image

在你的设想中,这个新字段的显示名称将是“QQ号码”,它的内部名称将是“QQNumber”。于是,你兴高采烈的在一个Console程序中加上了如上代码,运行了它,然后惊奇的发现这个新字段的显示名称居然仍然显示为“QQNumber”:

image

发生错误的原因在于,代码运行在一个Console程序中,也就是说,它运行在SharePoint Context之外。在运行代码的线程中,UI Culture是英文(因为Windows Server是英文版),所以虽然代码通过SPField.Title属性将字段显示名称设置为“QQ号码”,但实际上它设置的是这个字段的英文版本显示名称。于是,在中文版本的SharePoint 2010网站上,这个字段的显示名称仍然保持为“QQNumber”。同时由于你的代码的作用,如果以后有人将UI切换成英文,会惊奇的发现这个字段居然在英文UI下显示成“QQ号码”。

正确的创建这个字段的代码应该是:

image

在第一行,代码将当前线程的UI Culture设置为了网站的UI Culture(SPWeb.UICulture),这样无论这个代码是在什么语言版本的Windows Server中运行,都会得到我们想要的结果。如果你的代码会运行在SharePoint Context之外,这一点非常重要。





本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/499161,如需转载请自行联系原作者

目录
相关文章
|
5月前
|
开发框架 前端开发 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发一
本文介绍了方舟开发框架(ArkUI)及其两种开发范式:基于ArkTS的声明式开发范式和类Web开发范式。ArkUI是用于构建HarmonyOS应用界面的UI框架,提供极简UI语法和基础设施。声明式开发范式使用ArkTS语言,以组件、动画和状态管理为核心,适合复杂团队协作;类Web开发范式采用HML、CSS、JavaScript三段式开发,适用于简单界面应用,贴近Web开发者习惯。文中还概述了两者的架构和基础能力,帮助开发者选择合适的范式进行高效开发。
167 15
|
5月前
|
编解码 前端开发 Java
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发三
本文介绍了基于声明式UI范式的图形绘制与动画效果实现方法,涵盖绘制图形、添加动画效果及常见组件说明三部分内容。在绘制图形部分,详细讲解了如何通过Circle组件为食物成分表添加圆形标签,以及使用Path组件结合SVG命令绘制自定义图形(如应用Logo)。动画效果部分则展示了如何利用animateTo实现闪屏动画,包括渐出、放大效果,并设置页面跳转;同时介绍了页面间共享元素转场动画的实现方式。最后,文章列举了声明式开发范式中的各类组件及其功能,帮助开发者快速上手构建复杂交互页面。
153 11
|
17天前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
138 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
4月前
|
JavaScript 前端开发 UED
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发四
本文介绍了Web组件开发与性能优化的相关内容。在Web组件开发部分,涵盖创建组件、设置样式与属性、添加事件和方法以及场景示例,如动态播放视频。性能提升方面,推荐使用数据懒加载、条件渲染替代显隐控制、Column/Row替代Flex、设置List组件宽高及调整cachedCount减少滑动白块等方法,以优化应用性能与用户体验。
179 56
|
4月前
|
编解码 UED 开发者
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发之常见布局
本文主要介绍了自适应布局与响应式布局的相关内容。自适应布局部分涵盖线性布局、层叠布局、弹性布局和网格布局,详细说明了各布局的特性及使用方法,例如线性布局中的排列、拉伸与缩放,弹性布局的方向、换行与对齐方式等。响应式布局则重点讲解了栅格系统和媒体查询,阐述如何通过栅格组件和媒体查询条件实现不同设备上的适配效果。这些技术帮助开发者灵活应对多尺寸屏幕的设计需求,提升用户体验。
211 55
|
8月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
404 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
5月前
|
存储 开发框架 API
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发二
本文详细介绍了基于声明式UI开发的健康饮食应用的设计与实现过程。内容涵盖从基础环境搭建到复杂功能实现的全流程,包括创建简单视图、构建布局(如Stack、Flex)、数据模型设计、列表与网格布局构建,以及页面跳转和数据传递等核心功能。 本文通过实际案例深入浅出地解析了声明式UI开发的关键技术和最佳实践,为开发者提供了宝贵的参考。
159 14
|
4月前
|
JavaScript 前端开发 开发者
09.HarmonyOS Next数据驱动UI开发:ForEach与动态渲染完全指南(上)
在现代前端开发中,数据驱动UI已成为主流开发范式。HarmonyOS Next的ArkTS语言和声明式UI框架完美支持这一理念,使开发者能够以更高效、更直观的方式构建复杂应用。
102 1
|
11月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
6月前
|
人工智能 物联网 编译器
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
170 11
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡

热门文章

最新文章