I have created a site, installed my language packs, created the term store service and created some terms in multi-language (Persian and English). I then created a site, a new list, and a new managed metadata column on that list. I then used the term sets and it's working perfectly. I can switch to both Persian and English with no problem and the values of this list are changed as expected.

Despite the fact that the base template is able to switch names when I change the language, it doesn't seem to apply for user defined columns and list names. Is there a way for my user-defined column title (name) to switch language the same way the values can use the term store?

4 Answers 4


The problem is that when you create a column, the name you enter is just a constant string. SharePoint does not do translation based on known words. Internationalization is based on resource files.

And while I have used resource strings with custom list definitions, I wasn't sure if they would work on lists and columns created in the browser. So tried a quick test. I grabbed a resource string ($Resources:core,camlid2;), went to the List Settings of a list, selected a column, pasted the resource string into the Column name box, and clicked OK. Sure enough, when I returned to the List Settings page, the column name had changed to "Body".

Here are the steps I would take for creating international-able columns through the browser:

  • Create the column with the name you want as the internal name (ie, no spaces or symbols to avoid _x0020_ and other encoding replacements).
  • Edit the column by changing the column name to a resource string that you know if defined in each language you want to support.

Here's how to do it programatically:

// Assuming list contains a SPList object
string fieldID = "FieldUniqueID";
list.Fields.Add(fieldID, SPFieldType.Text, false);
list.Fields[fieldID].Title = "$Resources:Example,FieldUniqueID";

Note that you cannot stick "$Resources:Example,FieldNameI18N" right into Fields.Add() because hell breaks loose, since the string in Add() parameters is used for other SP stuff too, special characters get replaced, and so on.


I think this MSDN article can help you and show the easy that it is: http://msdn.microsoft.com/en-us/library/office/ff800886(v=office.14).aspx


Multilanguage SharePoint Website:

  1. I change the language in the Internet Explorer -> Gearwhell -> Internet Options -> Language to a specific language.
  2. Then I open the SharePoint Website and modify the columns for example in englisch.
  3. Then I change the language in the browser again and modify the columns for example in german.

SharePoint seems to save the value interally for the language that is in the settings of the browser.

Now when a users opens the page, depending on his browser language, he sees the Name of the columns in his language. Requirement is that you have activated the specific languages in the site Settings of the SharePoint page.

This can also be done with Name of the Website, Navigation nodes and list titles.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.