Localization of Farm Solutions in SharePoint 2010
Published: February 2011
This topic provides some general information about the process of localizing a farm solution.
For information about localizing a sandboxed solution, see Localization of Sandboxed Solutions in SharePoint 2010.
Strictly speaking, a Microsoft SharePoint Foundation solution package (.wsp file) is not a language-relative file. A given solution package can be installed and deployed on any farm regardless of the languages that are being used on the farm.
However, the various components within the solution, including application pages, site definitions (webtemp*.xml files) strings in assemblies, and the various components within Features can all be localized. The process is not fundamentally different from the process of localizing any Microsoft ASP.NET or Windows-based application. You can include localized versions of images, CSS files, .aspx files, and any other files that have localizable content. In almost all scenarios, you will use .resx files for the languages into which you are localizing your solution. These can be deployed globally, for a specific web application, for a specific Feature, or for a specific Web Part.
All of these resources are included in the solution package file and are deployed to the appropriate places when the solution is deployed from a farm's solution store. The SharePoint development tools in Microsoft Visual Studio 2010 make this a simple process.
For two detailed examples, see Walkthrough: Localizing Columns, Content Types, and Lists and Walkthrough: Localizing a Web Part.
Frequently, you must release a SharePoint Foundation solution before it is localized into all the languages you intend. In such cases, one option is to distribute a new version of the solution after support for one or more additional languages is added to it. (For more information about upgrading a farm solution, see Upgrading a Farm Solution in SharePoint 2010.) But there is an alternative strategy. You can package the resources for each additional language into its own farm solution that has the same Solution ID as the original solution but is designated to be a language pack. This language pack solution can then be distributed and farm administrators can install it on farms where the original solution is installed. The effect is that the original solution is localized into the new language. For more information about creating and installing language packs, see Working with Language Pack Farm Solutions.