2009年5月4日,星期一

修复了我的多语言站点的语言商店框架

在上一篇文章中,我谈到了 修复我的配置存储框架 对于某些SharePoint版本中出现的问题,Windows 2008和最近的累积更新似乎是触发因素。你们中有些人可能知道我为此制作了一个姊妹项目,称为“语言商店”,旨在帮助构建多语言SharePoint网站-由于此框架是基于相同的基础XML和管道构建的,因此该解决方案也受到了影响。 因此,本文仅是简短的一句话,该修补程序现已应用于语言商店框架,新版本现已在Codeplex上提供,网址为: http://splanguagestore.codeplex.com.

问题方案

问题实际上是无法再编辑SharePoint列表中的项目-实际上,它们可以被更新 使用代码,但是列表表单.aspx页未正确显示字段,因此无法在UI中进行编辑。由于这有损SharePoint的要点,即必须编写代码来更新列表项(!),因此这对受影响的版本是一个大问题。有趣的是,一些用户报告了通过从浏览器的列表中删除/重新添加内容类型来解决此问题的方法,但是很高兴,由于根本问题已经解决,因此不再需要此操作。问题被追溯到我的FieldRef元素中的一些不正确的XML-请参阅最后一篇文章 修复我的Config Store框架和列表设置提示 有关完整信息。

概述-语言商店

如果您仍在阅读,我想有些人会喜欢有关语言商店实际功能的提醒/介绍- 有关替换多语言网站上常用的SharePoint变体功能的信息。我注意到 斯彭斯 在最近的一封电子邮件中给它起了一个更好的名字,他在电子邮件中将其描述为“术语库'用于多语言网站-实际上,它捕获的功能远胜于我的名字。有效的想法是为许多小的文本字符串提供一个框架 不属于创作页面内容的内容 需要翻译并以适当的语言显示。举例来说,这是BBC网站上的页面,我在其中突出显示了可能需要翻译但不属于特定页面的所有字符串:

英国广播公司的例子

在典型的多语言站点中,有很多这样的语言,为了帮助满足这一要求,语言存储框架提供了以下内容:

  • SharePoint列表/内容类型/网站列等
  • 使用单行代码检索项目的API
  • 细粒度缓存可实现高性能
  • 打包为.wsp,用于简单部署
  • 免费提供所有源代码/ XML

如果您想了解更多信息,请参见 建立多语言SharePoint网站-引入语言存储。该解决方案可从Codeplex网站下载,网址为: http://splanguagestore.codeplex.com.

向受到此问题影响的现有用户表示歉意。

5条评论:

纳格帕勒元帅说过...

干杯!克里斯(Chris)解决问题,我肯定会在以后的项目中同时使用这两家商店:) :)

纳拉扬 said...

克里斯,您好,请稍作澄清;可以将它用于本地化“开箱即用” WebPart标题字段吗?如果可以,您是否可以轻而易举地实现相同的目标。

问候

纳拉扬

克里斯·奥'Brien说过...

@Narayan,

不,恐怕语言商店对开箱即用的Web部件真的无济于事-它可在您的代码中使用(例如自定义Web部件等)

HTH,

克里斯。

MOSSBuddy said...

克里斯,你好
我在配置存储上做了一个关于缓存的简单查询&语言商店。据我了解,此缓存将在Web应用程序(应用程序池)的W3WP流程中完成,现在如果我们托管的话,可以说100个网站集全部使用语言存储,而其他一些做HTTP缓存的工作您认为会有记忆问题吗?还是我对缓存和w3wp进程的理解不正确?感谢您的建议,并再次感谢您为广大社区提供的所有最佳实用程序。

克里斯·奥'Brien说过...

@MOSSBuddy,

好问题。在我最近的一个项目中,我们在一个大约有90个站点的解决方案中使用了Config Store。'master'配置存储在一个网站集中,但是'override'Config在其他站点中存储。由于缓存仅存储较小的文本值,因此(累积)将需要成千上万个列表项开始引起内存问题。我们的测试表明,在数百个项目的情况下,每个服务器上使用的内存约为1MB-如果您的服务器具有4GB的内存,则占很小的一部分。

如果您有100个应用程序池,则可能会有所不同,但是SharePoint中的其他容量限制将始终阻止您使用这种设计。

HTH,

克里斯。