Thursday, September 30, 2010

SharePoint Multilingual User Interface “MUI”

In a MOSS 2007 project, the customer requested from us to make the interface of the document library in the English site displayed in Arabic and vice versa based on the user choice, because the one who will manage the documents may not be able to understand the Arabic and another one may not be able to understand English.

I searched for a ready solution but I did not find any, and for sure I’ll not develop the same screens to make the same functionality just to add this feature. And working on client side, jQuery for example to replace the text based on an array will be also a long and should be done not just based on the text string.

Another solution is to change the UI culture of the response in a custom MasterPage based on the user selections, but this was the result:

Some text is translated and it seems that not all the text are came out of the recourse files.

Then it seems that this request is also requested from many people, Microsoft put it as a built in option in SharePoint 2010, which is known as Multilingual User Interface “MUI”, all what you need it to go to the Language Settings and select the alternate language:

Then the user will be able to see it in the personal menu, and he can swap between the languages as he wants to:

Then the page will be displayed as shown here: (note that the site name is “Home”)

And you can translate the site name by selecting the Overwrite translations from the Language Settings then change the site to the Arabic language, and from the site settings you will be able to change the site name to Arabic:

Wednesday, September 29, 2010

SharePoint IE8 Accelerator

I was working on a SharePoint project where part of the requirements is to revamp the user interface of the portal. One of the problems is that the development company that develop the portal in the beginning were using about 10 MasterPages and 160 PageLayout. But after studding the needed MasterPages and the actual needed PageLayouts with the customer we got out that we just need 1 MasterPage and 5 PageLayouts! About 3% only are needed.

Most pages are not linked to right PageLayout as it is referring to URLs on the development and testing servers, so the first step here is to find out how to update the PageLayouts of the pages to the new ones and to keep all the WebParts in each place in the corresponding Zone.

In the 160 old PageLayouts the Zones are not named with a descriptive name just the GUID, the WebParts are not named as well, so I need a tool that a user can use easily to migrate to the new PageLayouts in the proper zone.

And while I’m working on this tool, I figured out that many pages are including Closed WebParts that we will need to delete them for better performance (15 closed webpart in the homepage only, while the displayed are just 4 webparts). And some of them have no DLLs anywhere.

The Solution:
1. Make a sitemap for the portal, and decide what is the important sections to be migrated first
2. Break the inheritance for the MasterPages in the sub sites during the migration process
3. Make a list of all the pages in the portal with current PageLayout
4. Make a list of all the weparts and the current zones for each webpart
5. Save all the above information in a database
6. Make a page that takes the page URL as a parameter and displays the page information (PageLayout, Webparts (and the closed as well in red), Zones)
7. Make the page to be displayed as preview for an IE8 accelerator as you can see in the image below
8. Develop another page that takes the page URL as a parameter when clicking on the accelerator in case I need to change the PageLayout or the WebParts
9. From the managing page I can select the new PageLayout to the page just by selecting from the layouts list, but it will not be changed now.
10. After that select the new zone I want to add the webparts to, or I can select to delete it
11. I can also set the new PageLayout to all the similar pages that were taking the same old PageLayout
12. Also I can set the same new arrangements of the webparts to the similar pages that were using the same old layout and have the same new layout altered in the database
13. And I can see which webparts are not yet matched to a new zone, in case I have any webpart missing.
14. At the end I can just click on the button “Change” and the application will do it based on my settings

In this solution The IE8 Accelerator helped me a lot, thanks Microsoft! And the project completed on time and the customer is happy AlHamd Lellah.

And for sure, I want to thank all who was supporting this project. (Thank You All!)