Мультиязычность в MOSS (WSS 3.0)
Мультиязычность в MOSS
Многие интересуются – возможна ли такая настройка MOSS которая бы позволила менять язык интерфейса портала (меню, и.т.п) «на лету» - или в зависимости от language settings internet explorer, например как в OWA или Project Server 2003. Возможно. Метод этот реализуем на динамической подмене ресурсов. При этом можно поддерживать хоть 20 языков.
Реализуется это с помощью ASP.NET runtime, некоторого шаманства, возможностей хинта resourceProviderFactoryType и подмены expressionBuilders. Само собой разумеется, нужно самим написать имплементирующие классы, взяв за основу родные expression builders которые есть в sharepoint. Замена производится в web.config того узла, которому нужно обеспечить мультиязычность, и некоторых других web приложений которые работают в wss и moss (в TEMPLATE\LAYOUTS\web.config например)
Подменить нужно следующие expressionbuilders:
- Resources (Microsoft.SharePoint.SPResourceExpressionBuilder)
- SPHtmlEncodedResources (Microsoft.SharePoint.SPHtmlEncodedResourceExpressionBuilder)
- SPSimpleFormattingEncodedResources (Microsoft.SharePoint.SPSimpleFormattingEncodedResourceExpressionBuilder)
- SPUrl (Microsoft.SharePoint.Publishing.WebControls.SPUrlExpressionBuilder)
Заменив эти классы, можно реализовать логику динамической подгрузки ресурсов в зависимости от ASP.NET хидера приходящего со стороны клиента, или пользовательских настроек локали Microsoft.SharePoint.SPContext.Current.Web.CurrentUser.RegionalSettings.LocaleId.
Подгружать ресурсные файлы можно с помощью файлового ресурсного менеджера ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(…)
К сожалению, более подробно сейчас у меня возможности описать это нет, чуть позже я вернусь к этой теме. Пока – скриншоты, чтобы вы убедились что это действительно работает.
Comments
- Anonymous
August 18, 2008
PingBack from http://butaji.wordpress.com/2008/08/18/how-to-provide-multilingual-menus-for-microsoft-office-12-server/