Reading new users’ posts on the Polyglots blog has made it clear that the structure and processes by which languages are supported in WordPress isn’t obvious to everyone. I hope this post will help to shed some light on how it’s done and how you can play a part.
Downloading a translated version of WordPress
WordPress.org is the website where you can download the latest version of WordPress, in American English. Depending on your browser’s language settings, however, you may notice a message saying that “WordPress is also available in (language name)”. Click that, you will be taken to a site similar to WordPress.org, where you can download WordPress, this time fully translated to the language you’ve clicked.
Try it! Here’s the page for English of the United Kingdom (yes, it’s supported! Is it not awesome grand?). Or, for a more exotic experience, take a look at WordPress in Uyghur.
Where do the translated versions come from?
WordPress’s strings are all automatically loaded to an installation of an online translation tool, called GlotPress. This installation lives at Translate WordPress. If you visit that site, you’ll notice that there are several projects listed there besides WordPress. More on that later on.
Each language team translates those strings and when a new version of WordPress is released, they build a downloadable package, for their respective, translated wordpress.org sites.
These sites (such as http://en-gb.wordpress.org/ and http://ug.wordpress.org/) are called Rosetta sites. They have special tools available to not only generate the language files in their correct location on WordPress’s directory structure, but also to create completely translated 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.
To get an idea of how many languages are supported right now, take a look at this page on Translate WordPress. Of course, not all of them are active or complete, but it should give you an idea of how popular WordPress has become in other languages.
Your language is already supported, and you want to help with translation
You should definitely help out if you can. Considering that WordPress’s strings can easily run into the several thousands, an extra hand is almost always welcome.
The first step is to get in touch with the current team. This is generally done by visiting the corresponding language site’s contact page (usually <languagecode>.wordpress.org/contact) and sending the team a message. Each team works in a different way of course, but the process of suggesting either new or corrected translations is documented on Translate WordPress’s Getting Started page. It is proper etiquette to introduce yourself to the team before starting to contribute, so that other members can contact you with guidance.
Should you notice that the WordPress translation to your language is dormant or hasn’t been maintained in a while, you should first try to get in touch with the team to enquire about the status of the translation effort. Keep in mind that translating WordPress is a voluntary endeavour and as such, you should refrain from making demands. Everyone has lives with different priorities and translating WordPress might not always be at the top of that list. If having WordPress in language x is crucial to you, consider taking over the lead of the translation team (but only after you’ve made absolutely sure that the previous team is aware of it).
Even though it’s rare, it is possible that sometimes teams or team leads disappear from the radar and are impossible to reach. Please be aware that this is one of the very few circumstances in which the leads of the Polyglots’ community will intervene directly in substituting one team’s lead for another. Teams should organize themselves, without the need for chaperons. Also, the leads cannot conceivably be familiar with the dynamics of more than a hundred languages and cultures currently active.
I hope that the above introduction can at the very least make it clear that we polyglots like to think of ourselves as a very polite and civil group of people 🙂
Prepare your request
- Gather your team – It is, of course, possible to translate and maintain a translation on your own, but it will be overwhelming, at times (trust me). It is important to note that 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. I 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 will probably form the core of a future community. 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. I’ll be covering strategies and tips for organizing translation teams on part II of this series.
- 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 your locale’s rosetta site — 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 a Rosetta site, such as http://fr-be.wordpress.org and support for translating all of Translate WordPress’s projects
All of the above will be under the control of the WordPress.org user you have specified.
First steps: translating the Rosetta site
Everything is ready and you’re eager to start translating. Not so fast; there are a few steps you should complete first, to make sure that your language’s site shines in all its deserved glory.
1. Add your teams to your Rosetta site
The first thing you should do is add your team members to your brand new site. Unlike a standard WordPress installation, Rosetta sites have an additional user role, called a validator, which is integrated with Translate WordPress’s user permissions, and which will give that user the right to approve suggestions and corrections. Note that there is no need to add collaborators. Anyone logged in with a WordPress.org username is a potential collaborator by default.
2. Translate your Rosetta site
Now, you need to translate the Rosetta site’s strings, or, in other words, the Rosetta project.
A string is a message displayed to users, each of which is translated individually. This could be a paragraph, sentence or single word. In WordPress these strings are generated, translated and used by the WordPress PHP files.
3. Deploy your translation
Don’t forget to request its deployment by navigating to Tools > Deploy Requests on your site’s dashboard. Do this as often as you need, but be aware that the process is not automated so a) it can take a little while to go live and b) it doesn’t make sense to request several deploys in rapid sequence.
4. Set up your site
Configure your site’s pages and menus, to be found under the Pages menu and the Appearance > Menus items on your WordPress Admin Screens. Some pages need a specific page template to work, so please don’t change that.
Also, whenever you see “Please, neither delete this page, nor change its slug! The contents of this page are filled automatically, you don’t need to spend time here. Just change the title.” as the content of a page, well, don’t delete it and don’t change its slug.
5. Customise your look
Under Appearance > Header, upload the image that will show up on the left hand-side of your site. This image should be exactly 466 × 303 pixels, but if not, you can always crop a larger image immediately after uploading it. Feel free to take a look at the other Rosetta sites for inspiration.
If you like, create a showcase
Optionally, there’s a cool little feature on Rosetta sites that will let you add notable WordPress sites in your language. Navigate to the Showcase menu on your Admin Screens and add their URLs. A screenshot will be automatically generated.
Translating WordPress
Finally!
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 trac’ed here)
In order to be able to build a localized WordPress package in your language, you’ll need to make sure that the following projects are translated:
Note: the translation platform hosts 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 itself, there are no tools to build localized packages of these projects, i.e their maintainers choose if, when, and how to include the translations in the packages they release.
Building and releasing packages
All dressed up and nowhere to go? Fear not, let’s talk about how you can make your team’s hours of selfless work available to the world.
The process has two steps: building and releasing. The reason behind this is to allow you to build a translated version of WordPress that you can download from your Admin Screens, without releasing it to the general public, for testing purposes.
Navigate to Tools > Translations on your Admin Screens to access the build and release page.
Now, all you need to do is to choose the ingredients of your package and have Rosetta build them for you. The different options should be self-explanatory, but if they are not do not hesitate to ask for help on the polite and civil people’s blog.
Once the package is built and you’re happy with the results, you can release your masterwork to the world by clicking the Release link of the version you’ve just built. A download link will be automatically generated for your package, visible on the front-end of your site.
Please make absolutely sure that this release is correct and tested: all dozens, hundreds or even thousands of WordPress sites running your language’s version of WordPress will immediately see an upgrade notice on their dashboards. You wouldn’t want to break the web, would you?
Final notes
If your language is brand new, it is very likely that no sites are using it yet. You should start a campaign to have the administrators of those sites change their language settings to your language code so that they’ll be automatically notified of future updates.
The WordPress Codex has a list of translation teams, both existing and forming. Those pages aren’t always accurate, but since the Codex is a wiki, you are free and encouraged to keep them updated.
In part II of this series, I’ll be looking at some tips and strategies for organizing a translation team, with input from current, more established translators. Make sure to come back and read it!
Given the extent of the subject, it’s possible that some points may be less clear or even inaccurate; don’t hesitate to point them out in the comments’ section below, so that we can keep this information updated.
Also, Klingon. We need it. Here’s the ISO code.