Managed Multi Lingual (Localised )Metadata & Content Type

12/26/2010


Multi Lingual Metadata support along with Fast Search were the ‘WOW’ when I saw the first demo of SharePoint 2010 last year.  From then onwards I always wanted to write this blog but the sheer length of it got the best of me. Come Christmas, three days of absolutely holiday and what better a blog to talk about Metadata?  But before you read this, I suggest taking the beer of your choice and fire up the SharePoint machine to practically do what the article does…I assure you, otherwise you would get bogged down with all the information written here…

The backbone of Multilingual Metadata is the Content Type syndication feature introduced in the new version. I won’t be going into details of it but simply put, content types can now be stored in a centralized location and then shared across multiple farms /web application all across the organization. Earlier content types were limited to site collection boundaries, which seriously limited the usage on a pan organizational level.

In this example we will create a content type called ‘DaysOfWeek’ consisting of a Metadata column, having predefined values (i.e. Monday, Tuesday etc)...You created the metadata term store, add a metadata column to content type and then use in a site collection… Simple isn’t so?  Yes, pretty much, but only until your manager chips in and wants all the name of the days in Dutch (in my case…). There you are ….how to support the multilingual feature for all the metadata?

Huhn...good question and enough of theory… lets now get to the meat of how to not only create these metadata columns but also to localize them in any language you want…

 1.    Install Language Pack

Download the language packs from here and run the installer. You can select the language of your choice before downloading the pack. Once the installer is over, it would automatically open the SharePoint configuration wizard again. Go ahead and run the config wizard in its default settings.

For demo purposes I am using the Dutch language pack on Server 2008 OS. Unlike Server 2008, on Windows 7 you need to individually download the OS language files (Grr…? Check Google on how to download these for win 7.  Otherwise I strongly suggest using Server OS, see my article for this.

2.    Create Managed Metadata Service

In Central Admin > Application Management> Manage Service Applications

  • Create a new managed metadata service instance if not already created. Name it as Metadata Service.

 



 

 

Note that while creating this service instance, you can configure a centralized location where all the content types will be syndicated. Go ahead and mention the full path of that site collection wherein you would like to store all the content types of your organization. For ease of demo I suggest using the same path as in the image above.

  • Once service is created a new entry will be added to Service Application page. Click on empty space before the text ‘Managed Metadata Service connection’ (don’t click on the service name, it would open the entry). This will select the particular row. Once selected click on ‘Properties’ in the ribbon above. This will open a new modal box. Go ahead and make sure the box ‘Consume Content Types from …’ is selected.

  • Once done, go to service application page and click on the service instance link. It will take you to screen below… In the Working languages box select Dutch. This would enable us to specify different language texts for every metadata terms ( i.e. Dutch names for Monday, Tuesday…etc)

  • Start creating the Term Store, Term Group and Term… (FYI, each Term Store can have at the max 1 million terms. Every Term Group can hold 1000 Term sets and there can be 1000 terms per Term set.)  

 

For Term group you can specify the Group Managers as well as the contributors for terms in this group. This is called Taxonomy ie only selected people can contribute to the terms in the group. The cousin of Taxonomy is Folksonomy wherein every user can contribute ( i.e. something aka ‘Like’ and ‘dislike’ linksin YouTube). Folksonomy can be enabled by selecting ‘Submission Policy’ to open while creating the term set as shown in figure below.                 

  • Next comes the Terms, the actual values which shall be used while tagging the contents. While creating the Terms you can also specify the Synonymous. Therefore, in case a user falsely types in ‘Mon’ or ‘Mond’, SharePoint will automatically set it to correct Monday.

               

  • Configure the terms in Dutch

Ok now comes the interesting part. To satisfy the manger’s requirement for being able to create a Content type created in U.S. to be used in Brussels office, we need to provide the Dutch equivalent of days …

Go back to the Terms on the left pan and select one of them. Notice that the right hand side of the window has a language drop down. Select Dutch and provide the Dutch for Monday in the Label field as shown in the figure below

Go ahead and provide the labels for each day. For demo I am using two days in a week.. Monday and Tuesday as terms ( yes I know…I am lazy )

3.       Content type Syndication

Let’s now go to our Content type hub and created a content type whose one of the columns will contain the information about the day of the week. Unlike the previous version of SharePoint, there is a metadata column now available will shall pull the information from the instance of the Metadata service we created in step 2.

Open the browser and go to the site collection specified as hub in figure 2. Create a new content type ‘Day Of Weak ContentType

 

  • Add a new column to this content type by clicking ‘Add from new site column’  link of the settings page. Name the column as ‘Day Name’ and set it to type Metadata.



 For the possible value of this column, select the Term Group as shown in figure

  •  Publish content type

Go to the Content Type settings and click on ‘Manage Publishing for this content type’.



This will take you to another screen as shown below. Select Publish and press enter.

 Note: If you do not see this link in the setting, please activate the ‘Content Type Syndication Hub’ feature in the site collection feature gallery

 4.       Create consuming Site Collection

Once the meat of the work past us, now is the time to satiate ourselves with the splendid feature. Create a new site collection from the Central Admin. In the site collection screen select “Dutch” as the language (so that day names should appear in Dutch and not English)

 

Go to the site content type gallery and you would find the Days Of week content type listed. You can go and modify the content type if you wish, but the changes won’t be reflected back to the hub.

Note:
 There are two scheduled jobs which a) publish the content type from hub b) Pushes these published content types to the consuming site collection. In case you do not find the new content type in the consuming site collection then Go to Central Admin > Monitoring > Review Job Status and run the Content Type hub and Content Type subscriber jobs. You may need to wait for half an hour before the jobs are executed and the content type appears in the consuming site collection.




Create a new list and add the content type to the list. (Make sure you have enabled Allow content Type checkbox in the Advanced Settingslink of the page for add content type to be enabled in the content settings page.)



Now the real thing…go ahead creating a new item in the list and you can see the metadata column showing the predefined days name in Dutch…

 

Caveat 

Since the content type and metadata are available at the centralized location does not mean each and every site content type/metadata should be defined there. Rule of thumb is to create only those items in centralized hub which is to be used all across the organization’s IT footprint or at least which shall be used in more than one site collection.

E.g. marketing site for an organization, to syndicates a marketing content type and corresponding metadata is not really a good choice since it won’t be used anywhere... Just create the metadata/content type inside the site collection itself….

As for me, its two past mid night, but luckily tomorrow is a holiday... "goede nacht"...

 

Name

Email

WebSite

Hi Akshay, Great article! Having multi-lingual meta tags is such a no brainer in this global village. Can you create meta data for multiple languages at once? Or do you have to do them one at a time?Posted 13-Jan-2011 by Claire

Hi Claire
You can probably use the Object Model to create the metadata automatically. This way you wont have to use the web page time and again...

Let me know in case you need to code for that...

thanks

Hello! Thank you for your article!

We have some problem with multilanguage managed metadata and may be You tell us your opinion :-)?

We downloaded 2010-7a VHD from Microsoft site, intalled Russian language pack and try to configure 2-language terms WITHOUT creating new managed metadata service instance.

We defined term BOY in English and "ПАЦАН" as russian variant of this term. After this we created doclib with metadata column and published one doc.

Results was strange:

1. In Russian interface metadata column value doesn't display. View and Edit properties windows doesn't display metadata too.

2. In English interface in column (and View properties window) displays "ПАЦАН" instead of BOY!

3. In English interface in Edit properties windows displays BOY!

4. Metadata filter services works good in both variant of user interface.

What do u think about this problem? Thank you for any help.

ILYA Zevelev

Your article in good but i want below things so is that possible???
If yes than how please tell me any good link or steps how to implement it?

I’m working on sharepoint site which is learning tool and I want to make it multilingual..

First approach
I installed language pack in my machine ,I can change language for site ,
but my problem is that all words convert in selected language I want just custom list content change in selected language.

I also take second approach “variation”
In that I create one source site which is in English language and other target site which is in German language,
but here problem is that
1) If I create custom list in source site than this not display in target site
2) If I put list in page than it display but if I enter data in source site list than this also affect in target site list which I don’t want
3) If I change simple html page in target site and I change same page from source site than target site page content overwrite which I don’t want

So any configuration I have to set to solve my issues??

If u know about this than please reply me with steps or link…..

Any approach implement but my 3 points must include in selected approach.

Hi Akshay,

Excellent article, wish I'd read it about 3 months ago! I'm running a single site collection with Variations enabled (english and french) as well as the MUI. English is the default language for the root and EN variation source site, french is the default of the FR target site. We already have a number of (standard / tradidtional) content types defined at the root (english and french translated columns) that are being applied against documents etc.. in a live envirionment.

Currently, the Multilingual user interface (or variations) is unable to propogate custom column titles, descriptions etc... of our content types to the FR site. The managed metadata pieces move over nicely, but users have to manually rename column titles etc.. of each column within a content type whenever a new publishing site is created.

Any idea if the use of a content type hub would improve our situation? Or would we still need to manually input the column titles. Also, in your opinion is it feasible to run a content type hub out of the same root site collection? I've tried but have had no success in publishing a content type thus far.

I'd be curious as to your thoughts as this appears to be the best documentation available on the web with regards to the use of the content type hub in a multilingual environment.

Jamie

I am very happy that now we can have such linguistic tools!!! Very useful !

Thanks for the screen shots, very helpful. I am interested in using the application for the Maltese language.

Can you show us the code for Claire's question above?

Hi Cayenne
Sure I shall upload the source code too in few days.

cheers
akki