{"id":6379,"date":"2013-02-18T00:00:00","date_gmt":"2013-02-18T00:00:00","guid":{"rendered":"https:\/\/www.globalizationpartners.com\/2013\/02\/18\/website-translation-for-microsoft-sharepoint\/"},"modified":"2019-01-21T21:53:03","modified_gmt":"2019-01-21T21:53:03","slug":"website-translation-for-microsoft-sharepoint","status":"publish","type":"post","link":"https:\/\/www.globalizationpartners.com\/2013\/02\/18\/website-translation-for-microsoft-sharepoint\/","title":{"rendered":"Website Translation for Microsoft SharePoint"},"content":{"rendered":"<p>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&#8217; needs all over the world.<\/p>\n<h4>SharePoint language packs<\/h4>\n<p>In order to enable SharePoint multilingual features, the first step is to download and install the language pack of the target languages from the <a href=\"https:\/\/www.microsoft.com\/en-us\/download\/default\">Microsoft Download Center<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/sharepoint-languages.jpg\" alt=\"sharepoint-languages\" width=\"702\" height=\"231\" \/><\/p>\n<p>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.<\/p>\n<h4>How SharePoint handles multiple languages<\/h4>\n<p>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.<\/p>\n<p>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.<\/p>\n<h4>Localizing SharePoint features using Microsoft Visual Studio<\/h4>\n<p>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 <em>Resources File<\/em>, which is a repository to store localized strings in different languages following a standard naming convention (for example: base name such as <strong>SiteResource.resx<\/strong> and a culture-specific code such as se-SE).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page2.jpg\" alt=\"Page2\" width=\"240\" height=\"77\" \/><\/p>\n<p>Furthermore, in SharePoint <em>Resource Files<\/em> should be found in a specific location based on usage. The following are the available locations to store Resource files:<\/p>\n<p><em>1.\u00a0 TemplateFeatures&lt;Feature Name&gt;Resources<\/em><\/p>\n<p><em>2.\u00a0 Resources<\/em><\/p>\n<p><em>3.\u00a0 ConfigResources<\/em><\/p>\n<p><em>4. &lt;Virtual Directory&gt;App_GlobalResources<\/em><\/p>\n<p><strong>SharePoint Features<\/strong> can be localized in visual studio by selecting the <em>Feature Resource<\/em>, then select <em>Add Resource Feature<\/em>, then select <em>Culture<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page202_2.jpg\" alt=\"Page 2_2\" width=\"155\" height=\"51\" \/><\/p>\n<p>Once done, a resource file will be created for that feature. You can then open the resource files, add <em>Keys<\/em> and from the <em>Manifest<\/em> you can add the <em>Key Values<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page202_3.jpg\" alt=\"Page 2_3\" width=\"379\" height=\"78\" \/><\/p>\n<p>To add new Culture, the above steps should be repeated again for the new one. It is not possible to copy the <strong>resx<\/strong> file and rename it like the case in <strong>asp.net<\/strong> websites.<\/p>\n<p><strong>SharePoint WebParts<\/strong> can be localized using the following steps:<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Add \u00a0anew <em>Mapped Folder<\/em> to the solution and from next screen select the <em>Resource Folder<\/em><\/p>\n<p style=\"padding-left: 30px;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page203_1.jpg\" alt=\"Page 3_1\" width=\"600\" height=\"181\" \/><\/p>\n<p style=\"padding-left: 30px;\">&#8211; Right click the <em>Resources<\/em> folder, add new item, select <em>Resource File<\/em>.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Finally add your localized strings into the new <em>Resource File<\/em> you just created:<\/p>\n<p style=\"padding-left: 30px;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page203_3_655x190.jpg\" alt=\"Page 3_3\" width=\"655\" height=\"190\" \/><\/p>\n<p><strong>SharePoint ASPX pages<\/strong> are localized by setting a specific <em>Resource File<\/em> within the page and then point the page to the correct file to retrieve the localized content using the following structure: <em>&lt;%Resources: Resource file name, Resource Key %&gt;.<\/em> In order to able to use the the resource file in the above expression, the <strong>resx<\/strong> file should be located at the <em>App_GlobalResources<\/em> folder of the application.<\/p>\n<p><strong>SharePoint Custom Code<\/strong> can be localized by accessing the Global resource files using syntax listed below and by setting the method parameters such as <em>Resource<\/em> and <em>Key Names<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.globalizationpartners.com\/wp-content\/uploads\/2018\/07\/page_3_4_717x88.jpg\" alt=\"Page_3_4\" width=\"717\" height=\"88\" \/><\/p>\n<h4>SharePoint localization best practices<\/h4>\n<p>In addition to the techniques used above, there are a number of best practices that can be employed to optimize the content localization process.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; 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 <em>Global Resource Files<\/em> or a local resource).<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Create clear separation between Code and Interface.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Externalize all static content like labels,link names, page titles, and descriptons<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Implement a good routine to handle URLs between languages.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Engage a professionl globalization consultant to review all of the internationalization factors are present to faciliate the localization process for the website.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217; needs all over the world. SharePoint language packs [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6380,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[530,1475,64],"_links":{"self":[{"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/posts\/6379"}],"collection":[{"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/comments?post=6379"}],"version-history":[{"count":3,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/posts\/6379\/revisions"}],"predecessor-version":[{"id":15984,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/posts\/6379\/revisions\/15984"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/media\/6380"}],"wp:attachment":[{"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/media?parent=6379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/categories?post=6379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.globalizationpartners.com\/wp-json\/wp\/v2\/tags?post=6379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}