SharePoint is a Microsoft platform launched in 2001 and designed primarily to handle intranet documentation management tasks. Over time SharePoint functionality has been extended to handle not only intranet but also internet related content management tasks and content localization becomes a very important requirement to handle clients’ needs all over the world.
SharePoint language packs
In order to enable SharePoint multilingual features, the first step is to download and install the language pack of the target languages from the Microsoft Download Center:
Language packs allow the creation of multilingual websites without need for a separate instance of SharePoint platform to be installed per language. By installing a language pack on a web server, administrators can create websites based on the language-specific templates which include the localized strings. Thus, deployment of a multilingual SharePoint website is made easy by deploying the multilingual website from one SharePoint platform.
How SharePoint handles multiple languages
By default, SharePoint uses the default language of the installed SharePoint version but administrators can set a different language for a website and the platform can recognize the selected language by its ID.
In SharePoint 2013, even if a language pack for a target language, such as Arabic, is installed and selected some user-interface items are not displayed in that language (e.g. warnings, errors, dialogs, etc.). For these types of elements, SharePoint depends on other technologies to handle them such as .NET Framework, ASP.NET, SQL SERVER, among others.
Localizing SharePoint features using Microsoft Visual Studio
A multilingual SharePoint solution should cover different areas of the platform such as Features, WebParts, ASPX interface pages and functional code because all of these items are providing output for users. SharePoint uses the Resources File, which is a repository to store localized strings in different languages following a standard naming convention (for example: base name such as SiteResource.resx and a culture-specific code such as se-SE).
Furthermore, in SharePoint Resource Files should be found in a specific location based on usage. The following are the available locations to store Resource files:
1. TemplateFeatures<Feature Name>Resources
4. <Virtual Directory>App_GlobalResources
SharePoint Features can be localized in visual studio by selecting the Feature Resource, then select Add Resource Feature, then select Culture:
Once done, a resource file will be created for that feature. You can then open the resource files, add Keys and from the Manifest you can add the Key Values.
To add new Culture, the above steps should be repeated again for the new one. It is not possible to copy the resx file and rename it like the case in asp.net websites.
SharePoint WebParts can be localized using the following steps:
– Add anew Mapped Folder to the solution and from next screen select the Resource Folder
– Right click the Resources folder, add new item, select Resource File.
– Finally add your localized strings into the new Resource File you just created:
SharePoint ASPX pages are localized by setting a specific Resource File within the page and then point the page to the correct file to retrieve the localized content using the following structure: <%Resources: Resource file name, Resource Key %>. In order to able to use the the resource file in the above expression, the resx file should be located at the App_GlobalResources folder of the application.
SharePoint Custom Code can be localized by accessing the Global resource files using syntax listed below and by setting the method parameters such as Resource and Key Names.
SharePoint localization best practices
In addition to the techniques used above, there are a number of best practices that can be employed to optimize the content localization process.
– Prior to developing a multilingual Sharepoint website, establish a clear design vision to facilitate the localization process. Specifically, determine what needs to be set up in the Sharepoint Features architecture and flowchart a best localization approach (for example: using Global Resource Files or a local resource).
– Create clear separation between Code and Interface.
– Externalize all static content like labels,link names, page titles, and descriptons
– Implement a good routine to handle URLs between languages.
– Engage a professionl globalization consultant to review all of the internationalization factors are present to faciliate the localization process for the website.