A while ago, I wrote an article a while describing my SharePoint’s best practices, but one thing I failed to mention was proper localization of the lists, names, and other information. One of my colleagues showed me how to do it, so I want, to show you also how to translate and make a better experience to your users
First a reminder
When you create a SharePoint list column, you should always do the following:
- Create it in lowercase with no spaces
- Don’t pluralize it, unless the columns allow multiple selections
- Make it as clear as possible, even if the name becomes big.
Why all of this? Again, I go into detail in my article, but the gist is that spaces are not your friends making URLs quite ugly and, if you want to use Power Automate, for example, you’ll have a tough time writing the field’s names in formulas for example. It’s better to start with these names and then translate and re-name them properly.
Let’s start with a simple example. Let’s say that you have people around the world controlling the number of licenses for all the products that the team needs. You would create a SharePoint list with the name of the product and the number of licenses (I know it’s simple, but it’s enough for now). You would get something like this:
Since this we manage it worldwide, you would want to name it a little bit differently so that they know the meaning behind each column.
You don’t need to do this for all columns. SharePoint translates the default columns for you automatically. As you can see above, I have my Office 365 definition in English, so it’s displaying the Title in English as well
To rename a column is quite simple. You can go to List Settings:
Pick the column you want to change:
And then change the name to something more readable.
But this is where the tricky part starts. You can check your configurations in SharePoint and see what’s your default language. To do so, go to settings:
And then settings again:
Change the language to your preferred language, mine being Portuguese and see what happens:
Since the Title is the only column translated correctly, it’s the only one that changes. Now let’s change the name to a more user-friendly name.
Going back to the list:
Excellent, now our Portuguese colleagues will see the information correctly. Let’s change it back to English, and check back what we get.
Still the same name. Why?
Dealing with languages
SharePoint is smart enough to recognize that you’re changing the column name for the defined language in your account. But if you don’t have any translated column set, it will always default back to the first column’s name.
Let’s change the column’s name to something more user-friendly like we did before in Portuguese and we’ll get:
The column will now show the correct name.
What if I only want a subset of languages?
Let’s say that you want German and French speakers to see the English language translation, but don’t see the first name that we created.
To do that, you need to define what languages are “available” in your SharePoint site. To do so, go to “site information.”
View all site settings.
Here you’ll get all the available languages.
Microsoft, if you’re listening, a select/deselect all checkbox here would be excellent!
Now let’s remove all that we don’t want to translate.
Now our site is only available in English and Portuguese. Since English is the default, all other options default to English.
I know what you’re thinking. How about my sites with a lot of lists and columns? How can I translate in bulk, even better, send a structured file so that another person/company can work on the translation? SharePoint has you covered.
In the same site settings you have an option to export translations:
Since you removed all the languages that you don’t support this screen will only contain two.
Export the file and send it to the translator. After that, you can import it by using the import option:
It will be exported in a ResX format. You can find here an open-source project that can help you open these files and parse them correctly. Ensure that the translation company that you may use accepts this type of file.
That’s it! Nice looking column names with support for multiple columns.