Structure
This is the structure of the WordPress package that you can download fom http://wordpress.org/

If a user were to download the standard WordPress package from http://wordpress.org, his site would be installed in English (United States), including the two default themes, Twenty Ten and Twenty Eleven, where the latter is the one that is activated by default. In order to have a completely translated version of WordPress to another language, he would need to indicate which language he wants to use and provide the appropriate language files.
This is usually a simple a matter of:
- Editing the
wp-config.phpfile and specifying a valid language code for the WPLANG constant, and - Providing the actual translation files in the directories where WordPress expects to find them
WordPress uses 5 different language files, for different areas of the software. These files need to be present in specific locations within a site’s directory structure (Note that the language code pt_PT, used below, is just an example. Choosing the appropriate code for your language is explained further down on this page):

Each file contains the strings that will be shown instead of the original strings in English:
- 1 – /wp-content/languages/pt_PT.mo (and pt_PT.po) – All strings used in the dashboard of a single site installation are here.
- 2 – /wp-content/languages/continents-cities-pt_PT.mo (and continents-cities-pt_PT.po) – Used by the timezones dropdown, contains a list of continents, cities and timezones.
- 3 – /wp-content/languages/ms-pt_PT.mo (and ms-pt_PT.po) – All strings used in the dashboard of multisite installations of WordPress, in other words, the whole Network Administration area.
- 4 - /wp-content/themes/twentyten/languages/pt_PT.mo (and pt_PT.po), and
- 5- /wp-content/themes/twentyeleven/languages/pt_PT.mo (and pt_PT.po) – Strings belonging to the themes. If you end up not using any one of these two themes in your WordPress site, the theme you do use will need similar files. Check that specific theme’s documentation for instructions on how to translate it.
Creating localized WordPress packages
All of the above steps can be skipped if you provide a completely localized package for download, on a wordpress.org site tailored for your language.
These are called the ‘rosetta’ sites, where tools are available to not only generate the language files in their correct location on WordPress’ directory structure, but also to create completely localized packages for download. The advantage of this approach is that the core software is aware of these sites and can thus auto-update a specific language’s WordPress installation.
In order to make this happen, you will need to complete the following steps:
Setting up
- Prepare your team – It is, of course, possible to translate and maintain that translation on your own, but it can be overwhelming, at times. It is strongly recommended that you organize a team of 2 or 3 people to help out. The good news is that this translation team can either be recruited from an existing WordPress community for your language or, if such a community does not exist yet, this team is the most probable core of a future community. All team members working on the translation need to have a WordPress.org username. If they don’t have one already, they need to create one here.
Many start with the mere objective of translating WordPress, and evolve into a full-fledged community, discussing other issues, organizing meetups and even WordCamps sometimes. Most teams organize normally around two “official” sites: one for announcements, news and so forth, and another one for discussions concerning the translations, usually using the P2 theme. When and if you choose to setup this way, please make sure to not use ‘wordpress’ in your domain name, as per the WordPress Foundation’s trademark usage policy.
You are free to go the easier way, which using your future xx.wordpress.org website as the news and announcements site and the future xx.forums.wordpress.org as the place for discussions.
- Choose a language code — Keep in mind that it is indeed a language code, not a country code. The first thing you should check is the list of locales that GlotPress supports. If your language code is there, that’s the one you should be using. If not, try Wikipedia, to find your language and the appropriate ISO 639-1, ISO 639-2 and ISO 639-3 codes. ISO 639-1 is normally used for language subdomains, but ISO 369-2 and -3 can sometimes be used for disambiguation.
- Choose a country code — This is only relevant if you’re planning to translate a language that varies from country to country, like French (which varies in Canada, Belgium, Switzerland, France and many more). If such a variation exists, the country code will be appended to your subdomain, as in fr-ca for Canadian French.
- Request the creation of a Subversion repository, support for your language on the translation platform, the creation of your locale’s rosetta site and the creation of your locale’s support forum — Go to the Polyglots’ blog and use this format (the example below is for French from Belgium), to request support for your language:
- WordPress.org username of the administrator: your username
- Language code: fr
- Language name, both the English and the native name: French, Français (note that in this case ‘Belgium French, Français de Belgique’ would be acceptable too)
- (if applicable) Country code: be
- (if applicable) Country name, both the English and the native name: Belgium, Belgique
Note that the above codes and names needn’t be specified in your request if they already exist in GlotPress. In that case, it is enough to indicate the variable in the file. Once your request is fulfilled, you will then have at your disposal the following sites and resources:
- A Subversion repository: http://i18n.svn.wordpress.org/fr_BE/
- A rosetta site: http://fr-be.wordpress.org
- A forum: http://fr-be.support.wordpress.org
- Support for translating all GlotPress’ projects
All of the above will be under the control of the WordPress.org user you have specified.
Translating
The general process of using GlotPress for translation is documented on its Getting Started Guide. If you have any further questions, make sure to ask them on the Polyglots’ blog. (GlotPress is also a community-driven, open source project. Its development is discussed here, and tracked here)
- Fundamental WordPress files/projects- In order to be able to build a localized WordPress package in your language, you’ll need to make sure that the following strings in the translation platform are translated:
- Forum’s strings — if you plan on having a support forum for your language, you will also need to translate the forum’s strings, theme and plugins. One thing to keep in mind is that simply translating those strings isn’t enough to make your forum show up in your language, they need to be deployed first. To request a deploy, post it on the Polyglots’ blog, making sure you’re using the correct tags.
- Rosetta files — the same logic applies to the strings used in your xx.wordpress.org site. Unlike the forums’ strings, however, deploys are requested from your site’s dashboard, under Tools → Deploy Requests
- Other projects — the translation platform host a few other projects, such as the WordPress Importers, bbPress, BuddyPress and all the mobile WordPress apps. The logic is the same as for all the projects mentioned above, with one notable exception: unlike for WordPress self, there are no tools to build localized packages of these projects, i.e their maintainers choose when and how to include the translations in the packages they release.
Building and releasing packages
- Build a package from SVN
- Build a package from Translate WordPress.org
Other
- Adding showcase sites
- Updating rosetta’s translations
- Adding/removing users