Where do I start? The users demand support for multi lingual.
First step I see is to start supporting the languagepacks… but
which ones? You need to figure it out. You may not be best served
by simply installing all of them. What would happen if MS decided
to stop supporting one of them? I've found a few places that make
me sound smart when I recommend languages to support… It doesn't
have to be a guessing game. 1) Active Directory mailbox language
info 2) Language Usage Report on the Intranet 3) Looking at Top
languages of the Internet world (Useful for Internet Sites)
1. Look at stats of
msExchUserCulture - Starting with a survey was
stupid. There are systematic ways of getting this data, and very
few will admit they need translation. If they will, they won't tell
you in English. The first systematic way I found was to look in the
AD at a specific Exchange attribute... Specifically the
"msExchUserCulture" attribute in AD. With permissions.
One way to find out what language your users are speaking is to
find out what language the users are using for their mailboxes.
With Outlook Web Access there is an attribute that the Exchange
Servers group has write permissions called the msExchUserCulture
attribute. This attribute contains one or more preferred languages
and essentially when the users is using outlook web access it knows
what language to display the UI for the User. I dumped the data
"How it worked before Exchange 2007into excel and then did
subtotals on the columns. Then I normalized it further to collapse
all the english and spanish. Get the mailbox data out of exchange.
There is a field in Active Directory where it reports the mailbox
"msExchUserCulture"
In previous versions of Exchange Server, the language for a user
mailbox was determined by the language setting of the MAPI agent
(such as the Outlook client) and not by the Exchange server:
At the first connection of a MAPI agent (like Outlook client) to
a user mailbox, the language of the default folders (like inbox)
and system messages (like quota messages and non-delivery reports)
was set on the information store (PR_LOCALE_ID MAPI property) to
the language used by the MAPI agent.
And now with Exchange 2007/2010
In Microsoft Exchange Server 2007, you can specify the language
preferences for a mailbox, in order of preference, with the
Languages parameter by using the Exchange Management Shell and the
Set-Mailbox cmdlet. Several Exchange components display information
to the user using the preferred language, if that language is
supported. "
More info at
Language Setup for a mailbox on technet blogs
Set-Mailbox -Identity "Carlo Dupont" -Languages "fr-FR"
Does this mean that the administrators set all the languages?
No. There's this setting called "DefaultClientLanguage: The default
value for this setting is 0. This means the default client language
is not defined and users will be prompted to choose a language and
time zone the first time that they log on to OWA. If the value is
defined (different from 0 ) (for example 1036 for French (France)),
users will not be prompted to choose a language and the OWA time
zone will use the time zone of the Client Access server."
So the users essentially can configure both language and time
zone.
You can get a dump of the data with an LDAP query,
Windows Powershell or by running dsquery user. Be
careful. You could likely work with your directory team to get the
data, but really any Windows Server with DSQuery User you could
likely get the data you're looking for.
Understanding the Data
msExchUserCulture = en-US or pt-BR or es-MX or
en-US,fr-FR etc…
Here's a good
list of all of the language codes (Well actually it's missing
Turkish and Japanese, so refer to this
one if you can't find it) first two digits are language, and
the second two are country codes. I also found this
regional and language settings page helpful. It lists the
language codes which are very useful for older versions of
SharePoint and has a list of the various time zones around the
world. I'm considering adding that as a choice field on the profile
page. Great setting for a global audience. Just saying I'm in
Russia doesn't say when it's cool to call me.
Some of the Chinese codes were a little more challenging, so I'm
listing those here:
zh-tw Chinese (Taiwan) zh-cn
Chinese (PRC)
zh-hk Chinese (Hong Kong) zh-sg
Chinese (Singapore)
EN-US is English-United States. PT-PT is Portuguese-Portugal and
PT-BR is Portuguese-Brazilian. In SharePoint there are really only
one language where the country code is important. (All the language
packs are listed further down in this document.) Portuguese for
SharePoint has both a Brazillian and a Portuguese version. So,
essentially all of those Spanish variations don't really result in
any difference in SharePoint itself. It's the same diff with
English. They are all dumped into 1. There are two types of
Chinese, but those are different in the codes themselves. Sorry no
French Canadian language pack. Just French. Would you be interested
in the Canadian English language pack, eh?
Ultimately I put together a list including counts per user
(omitted for privacy reasons):
Language
English
Spanish
Portuguese (Brazil)
German
Japanese
Russian
Korean
French
Simplified Chinese
Italian
In our case we looked at Portuguese and found that most of our
needs were for Brazilian Portuguese. That list represents our top
10 languages we want to support… but wait! Shouldn't we also verify
that those users are using the Intranet, and what about growth?
2. Now I jump into our web analytics software
and drill down on User browser language, and look at the data from
a recent month, and do some comparisons.
Language
English
Spanish
Portuguese
German
Japanese
Russian
Chinese
French
Italian
Korean
While it tells us that Chinese are more frequent users of the
Intranet and Koreans are less frequent users of the Intranet we
still ended up with the same list of 10, which is great news.
3. I think it's important to point out
the Top 10
Languages of the Internet.
Looking at this list we actually aren't that far off on our
language usage. The only difference I see is Italian vs.
Arabic.
Finally I look at the list of SharePoint Language Packs, and
start lining them up. … (As of this post 4/17/2012) more detail on
technet.
|
Language
|
Language ID
|
Top 10 for
Intranet/Internet
|
Language Codes
|
|
Arabic
|
1025
|
+
|
AR-*
|
|
Basque
|
1069
|
|
|
|
Bulgarian
|
1026
|
|
BG-*
|
|
Catalan
|
1027
|
|
CA-*
|
|
Chinese (Simplified)
|
2052
|
x
|
Zh-* (Taiwan, Hong Kong)
|
|
Chinese (Traditional)
|
1028
|
|
|
|
Croatian
|
1050
|
|
HR-*
|
|
Czech
|
1029
|
|
CS-*
|
|
Danish
|
1030
|
|
DA-*
|
|
Dutch
|
1043
|
|
NL-*
|
|
English
|
1033
|
x
|
EN-*
|
|
Estonian
|
1061
|
|
ET-*
|
|
Finnish
|
1035
|
|
FI-*
|
|
French
|
1036
|
x
|
FR-*
|
|
Galician
|
1110
|
|
GL-*
|
|
German
|
1031
|
x
|
DE-*
|
|
Greek
|
1032
|
|
EL-*
|
|
Hebrew
|
1037
|
|
HE-*
|
|
Hindi
|
1081
|
|
HI-*
|
|
Hungarian
|
1038
|
|
HU-*
|
|
Italian
|
1040
|
x
|
IT-*
|
|
Japanese
|
1041
|
x
|
JA-*
|
|
Kazakh
|
1087
|
|
KK-*
|
|
Korean
|
1042
|
x
|
KO-
|
|
Latvian
|
1062
|
|
LV-*
|
|
Lithuanian
|
1063
|
|
LT-*
|
|
Norwegian (Bokmål)
|
1044
|
|
NO-*
|
|
Polish
|
1045
|
|
PL-*
|
|
Portuguese (Brazil)
|
1046
|
x
|
PT-BR
|
|
Portuguese (Portugal)
|
2070
|
|
PT-PT
|
|
Romanian
|
1048
|
|
RO-*
|
|
Russian
|
1049
|
x
|
RU-*
|
|
Serbian (Latin)
|
2074
|
|
SR-*
|
|
Slovak
|
1051
|
|
SK-*
|
|
Slovenian
|
1060
|
|
SL-*
|
|
Spanish
|
3082
|
x
|
ES-*
|
|
Swedish
|
1053
|
|
SV-*
|
|
Thai
|
1054
|
|
TH-*
|
|
Turkish
|
1055
|
|
TR-*
|
|
Ukrainian
|
1058
|
|
UK-*
|
Other considerations are who are supporting the servers. I've
talked to plenty of Admins and ops guys with years of SharePoint
and Microsoft experience. I've been hearing a tune that says…
Install English SharePoint servers even if you don't speak English
as your first language. Why? That's arrogant. Well, it is, but it's
also the language of the product team and the common language of
the community where you'll be getting your support. If you try to
translate your error message if it doesn't match up, you will
likely have problems with searches on the Internet to find those
errors and error codes. I'm just passing on some best practices
from the middle east. I thought it was clever, and sad but makes
sense. Wish it was as simple as having my blog come up in various
languages as well. I wish you could read this blog in your native
tongue.
I hope this information is useful. Saw a Facebook comment about
me recently that said I haven't posted anything useful in a while.
I'm posting this in spite of what that guy wrote, not because of
it. Dude, that's not motivating.
Joel Oleson was a speaker at the European
SharePoint Conference 2011. Check out his conference presentation
by clicking
here>>
Why not keep up to date with his amazing work
by joining our community or by
following us on twitter or facebook!