Introduction
This post describes how to localize the Zimbra Collaboration Server (ZCS) property files. The following are the files that must be localized for ZCS:
- AjxMsg.properties - Ajax Toolkit general messages
- ZmMsg.properties - These are the message for the collaboration client
- ZaMsg.properites - These are the messages for the Admin client
- ZMsg.properites - These are the error messages
The above files are attached to this post in a zip file.
Localization File Structure and Rules
The message property files follow the Java property file model. For specific locales the above files will follow the local specific _xx_YY notation. For example to localize to English United Kingdom (en_GB) there would be a AjxMsg_en_GB.properties version of AjxMsg.properties. For the fallback for English, it would be AjxMsg_en.properties and so on for each of the above files
Only messages that are different from the immediate fallback need be updated. So for example if the following are in the AjxMsg_en.properties file:
color=Color
save=Save the file now
help=Press F1 for help
And the AjxMsg_en_GB.properties file only needs to change the value of the "color" message, the the file would consist of a single entry:
color=Colour
Character Sets
All the properties
MUST be in ASCII which means that if the translations are in a different character set, then the file must be converted by escaping the Unicode characters to \uWXYZ. This can be done by using the native2ascii program that ships with every JDK. The general usage is the following: native2ascii -encoding name inputfile [outputfile]
Here's a specific example of the usage:
native2ascii -encoding UTF-8 AjxMsg_ja.utf8 AjxMsg_ja.properties
Testing
To test a localization perform the following steps:
- Copy the *.properties files to /zimbra/WEB-INF/classes/msgs/
- Restart the zimbra web application
Packaging
Packaging a localization is simply providing a "zip" archive of the files that have been localized.
Contributing to Zimbra
To contribute a localization for inclusion into the ZCS, the Zimbra contributor agreement must be completed and provided to Zimbra. The contributor agreement is available at:
http://www.zimbra.com/license/contri...agreement.html
All localizations that are to be hosted on the Zimbra site must carry the Zimbra Public License (ZPL). This license is available at:
http://www.zimbra.com/license/ Locales
af_ZA Afrikaans locale for South Africa
am_ET Amharic language locale for Ethiopia
ar_AE Arabic language locale for United Arab Emirates
ar_BH Arabic language locale for Bahrein
ar_DZ Arabic language locale for Algeria
ar_EG Arabic language locale for Egypt
ar_IN Arabic language locale for India
ar_IQ Arabic language locale for Iraq
ar_JO Arabic language locale for Jordan
ar_KW Arabic language locale for Kuwait
ar_LB Arabic language locale for Lebanon
ar_LY Arabic language locale for Libyan Arab Jamahiriya
ar_MA Arabic language locale for Morocco
ar_OM Arabic language locale for Oman
ar_QA Arabic language locale for Qatar
ar_SA Arabic locale for Saudi Arabia
ar_SD Arabic language locale for Sudan
ar_SY Arabic language locale for Syrian Arab Republic
ar_TN Arabic language locale for Tunisia
ar_YE Arabic language locale for Yemen
az_AZ Azeri language locale for Azerbaijan (latin)
be_BY Belarusian locale for Belarus
bg_BG Bulgarian locale for Bulgaria
bn_IN Bengali language locale for India
br_FR Breton language locale for France
bs_BA Bosnian language locale for Bosnia and Herzegowina
ca_ES Catalan locale for Catalonia
cs_CZ Czech locale for the Czech Republic
cy_GB Welsh language locale for Great Britain
da_DK Danish locale for Denmark
de_AT German locale for Austria
de_BE German locale for Belgium
de_CH German locale for Switzerland
de_DE German locale for Germany
de_LU German locale for Luxemburg
el_GR Greek locale for Greece
en_AU English locale for Australia
en_BW English locale for Botswana
en_CA English locale for Canada
en_DK English locale for Denmark
en_GB English locale for Britain
en_HK English locale for Hong Kong
en_IE English locale for Ireland
en_IN English language locale for India
en_NZ English locale for New Zealand
en_PH English language locale for Philippines
en_SG English language locale for Singapore
en_US English locale for the USA
en_ZA English locale for South Africa
en_ZW English locale for Zimbabwe
eo_EO Esperanto locale
es_AR Spanish locale for Argentina
es_BO Spanish locale for Bolivia
es_CL Spanish locale for Chile
es_CO Spanish locale for Colombia
es_CR Spanish locale for Costa Rica
es_DO Spanish locale for Dominican Republic
es_EC Spanish locale for Equador
es_ES Spanish locale for Spain
es_GT Spanish locale for Guatemala
es_HN Spanish locale for Honduras
es_MX Spanish locale for Mexico
es_NI Spanish locale for Nicaragua
es_PA Spanish locale for Panama
es_PE Spanish locale for Peru
es_PR Spanish locale for Puerto Rico
es_PY Spanish locale for Paraguay
es_SV Spanish locale for El Salvador
es_US Spanish locale for the USA
es_UY Spanish locale for Uruguay
es_VE Spanish locale for Venezuela
et_EE Estonian locale for Estonia
eu_ES Basque locale for Spain
fa_IR Persian locale for Iran
fi_FI Finnish locale for Finland
fo_FO Faroese locale for Faroe Islands
fr_BE French locale for Belgium
fr_CA French locale for Canada
fr_CH French locale for Switzerland
fr_FR French locale for France
fr_LU French locale for Luxemburg
ga_IE Irish locale for Ireland
gd_GB Scots Gaelic language locale for Great Britain
gl_ES Galician locale for Spain
gv_GB Manx Gaelic locale for Britain
he_IL Hebrew locale for Israel
hi_IN Hindi language locale for India
hr_HR Croatian locale for Croatia
hu_HU Hungarian locale for Hungary
hy_AM Armenian language locale for Armenia
id_ID Indonesian locale for Indonesia
is_IS Icelandic locale for Iceland
it_CH Italian locale for Switzerland
it_IT Italian locale for Italy
iw_IL Hebrew locale for Israel
ja_JP Japanese language locale for Japan
ka_GE Georgian language locale for Georgia
kl_GL Greenlandic locale for Greenland
ko_KR Korean locale for Republic of Korea
kw_GB Cornish locale for Britain
lt_LT Lithuanian locale for Lithuania
lv_LV Latvian locale for Latvia
mi_NZ Maori language locale for New Zealand
mk_MK Macedonian locale for Macedonia
mr_IN Marathi language locale for India
ms_MY Malay language locale for Malaysia
mt_MT Maltese language locale for Malta
nl_BE Dutch locale for Belgium
nl_NL Dutch locale for the Netherlands
nn_NO Nynorsk language locale for Norway
no_NO Norwegian locale for Norway
oc_FR Occitan Language Locale for France
pl_PL Polish locale for Poland
pt_BR Portuguese locale for Brasil
pt_PT Portuguese locale for Portugal
ro_RO Romanian locale for Romania
ru_RU Russian locale for Russia
ru_UA Russian locale for Ukraine
se_NO Northern Saami language locale for Norway
sk_SK Slovak locale for Slovak
sl_SI Slovenian locale for Slovenia
sq_AL Albanian language locale for Albania
sr_YU Serbian locale for Yugoslavia
sv_FI Swedish locale for Finland
sv_SE Swedish locale for Sweden
ta_IN Tamil language locale for India
te_IN Telgu language locale for India
tg_TJ Tajik language locale for Tajikistan
th_TH Thai locale for Thailand
ti_ER Tigrigna language locale for Eritrea
ti_ET Tigrigna language locale for Ethiopia
tl_PH Tagalog language locale for Philipines
tr_TR Turkish locale for Turkey map
tt_RU Tatar language locale for Tatarstan
uk_UA Ukrainian locale for Ukraine
ur_PK Urdu Language Locale for Pakistan
uz_UZ Uzbek locale for Uzbekistan
vi_VN Vietnamese language locale for Vietnam
wa_BE Walloon Language Locale for Belgium
yi_US Yiddish Language locale
zh_CN Chinese locale for Peoples Republic of China
zh_HK Chinese language locale for Hong Kong
zh_SG Chinese language locale for Singapore
zh_TW Chinese locale for Taiwan R.O.C.