Skip to content

Warmshowers Translation

Cyril Wendl edited this page Feb 7, 2018 · 144 revisions


There is a quick screencast demonstrating translation techniques.

Each language into which is translated has its own URL, such as "" for Spanish. That version tries to use as much information as it can to present itself to viewers.

To make things complicated, there are basically 3 kinds of translation that are handled completely separately.

  1. Content is articles or pieces of content that have been posted on the site using the site. An example would be, which has translations into Spanish, French, and Portuguese. If you visit you'll see it in Spanish; you see it in French. We have never tried to maintain all the content of Warmshowers in multiple languages. Our goal is just to maintain the key articles that describe the site or provide help for it.
  2. Interface is parts of the site that are provided by the Drupal code that runs the whole thing. So, for example, on the main page, the search facilities on the left are all interface. Menus are essentially interface.
  3. There are a few other things that fall through the cracks. We have separate menus for each language, so those require special handling. Emails that go out require special handling in odd configuration locations. Essentially, you'll need growing expertise in one-off things to figure these out.

Illustrations of content vs interface: first and second.

How to translate content

To translate content, you visit the content page (for example the rules and click the "Translate" tab, which will be available to you if you have translator privileges.

  1. Create a new translation if your language's translation does not exist. Or
  2. Edit your language's translation if it already exists
  3. Make sure that the "input format" is set to to "Full HTML (WYSIWYG)" (which lets you use an easy editor and not see HTML), and set the "URL Path settings' to turn off automatic URL and use the same path as the original English article used. For example, if the original article had the path pre_validation_member_warning, we'd want that for the translated article as well.
  4. Create or edit both the title and the body
  5. Make sure to keep the "URL path" the same in each language (configured toward the bottom of the edit screen). You need to open the "URL path settings" and deactivate the button "automatic aliasing". Then, you have to enter the last part of the URL, such as "the_rules" for instance (neither enter the whole address, nor the slash ["/"]).

There is a screencast explaining URL settings.

How to translate interface

Interface strings are done completely differently. There are two ways to do it:

Searching for interface "the easy way":

There is a block activated for translators which allows you to translate interface directly on the website. You’ll always find this rectangle saying "translate text" always at the bottom of the page. Here is a screencast that shows you how to use it. Please watch it before you start using it. Please note following things:

  • You just enter the word or string which you want to translate in the search box situated at the bottom at the left, translate it by entering the translation at the right and click "save translation".
  • This tool might not find everything you're searching for. If it doesn't work, search for interface the way explained as follows.
  • Please note: It is very important that you always work on the website in your language! If you work on the website in English, you'll change the English page. Please always make sure the URL begins with "" when you're translating interface.

Searching for interface "the old way" (sometimes the best way):

You visit the Translate Interface page and search for the original English language. When you find the exact string that you need to translate, add the correct translation and submit it. (I usually have the search page open in a different tab, and then reload the page I'm translating to see if the change takes effect properly.)

Note that in both ways, the search is case sensitive (sensitive to capitalized and small letters

Translating field labels

Drupal has the ability to add custom "fields" to "content types". This impacts translation wherever the member has to create a "node", or piece of content. Currently this only affects them when they create feedback and forum topics. In both cases, a translation supervisor with advanced privileges has to access the translation to update it.

To translate field labels, visit the "Manage fields" section for the content type (under "Structure -> Content Types"). For example, for feedback fields. Then "edit" the individual field, and click the "Translate" tab in the upper right, and you'll have access to translation for all languages for that field.

Translating Translatable Rules

Rules is a powerful Drupal concept - without writing PHP code a web developer can take a number of actions based on various conditions. So, for example, we send "You have received feedback" emails when someone receives feedback.

To translate an email or other message which is implemented in Rules, visit the Rules admin interface and choose the correct rule. Then click the "Translate" tab in the upper right. Please note that there may be more than one message that needs to be translated, but all appear on that one page.

Translating oddities like email messages and variables

There are a few things like email messages that are translated completely differently, and they're in various places in the Drupal administration interface. Please open a github issue to get a translation issue fixed for one of these things.

Dealing with problems

Please make a list of problems you encounter, and then provide the list to the translation team lead after you've worked through a number of things. It's normal that you'll have some problems, and it helps keep the number of emails down if you prepare a list of issues instead of sending an email for each one.

What to translate and what not to translate

There's really no reason to translate parts of the interface that normal users do not see. We're not trying to make the site administration accessible in multiple languages at this point.

There's no way that we can translate all user-generated content.

Content that explains to members how the site works like the FAQ is critical to translate, of course.

Maintaining translations

We hope that all of our translators are willing to keep at this job for the long term. Unfortunately, things change about the site, both in content and interface, and only a trained translator who actually uses the site will be able to keep it working right in their language. We ask you to visit and use the site in your own language regularly and to resolve the issues you find.

There may be conflicts in style between translators in the same language. For example, a Portuguese translator from Portugal and another from Brazil may use different techniques. If you can, try to do things consistently, but it's more important that the site be maintained than that it be maintained perfectly. So please don't hesitate. On the other hand, if you're aware of another translator working in your language, it's a nice thing to consult with them if you have a question or before you override the technique they're used.


  • Interface translation searches are case sensitive. So when you're searching for a piece of interface, use the exact case. If the English version is "Search by name", don't look for "**S**earch by Name" or "search by name". You also may want to look for smaller strings rather than larger. "Search by", for example.
  • Translating interface "the old way": Please note that when translating the interface, if there is an English translation, that's what appears on the English site. Please translate what's actually on the English site (the English translation) if there is one.
  • Translating interface "the easy (in-built) way": It is VERY important that you always work on the website in your language. If you work on the website in English, you'll change the English page. Please always make sure the URL begins with "" when you're translating interface.
  • When working the FAQ, each item in the FAQ is a separate article, a separate piece of content. To access each of those pieces. just right-click on the link and then open it in a new tab. Note that the pieces are listed individually on the translation/status page. (, but use your own language - click the flag representing your own language).
  • When creating a new translation of a node, you'll almost always want to use the input format "full html", which provides a nice WYSIWYG editor. In general, all the nodes to translate are in "full html" format.
  • The page/translation/status page in your language shows the nodes that are marked "important to translate" and shows the last-modified date of each. Visit the site in your language and go to translation/status. For example. If it has a link in the "Translated?" column, it means you already have a translation for that item. But it might need an update, as shown in the "Needs update?" column.
  • Please set the "url path" for the translated node to be the same as the source node. For example, the German translation of is By default the path is set automatically to the wrong thing.
  • The not-logged-in front page is cached, as are some blocks (like the search block on the logged-in front page). That means that when you fix the translation, your fix might not show up for 4 hours or so. You can clear the cache if you have privileges to do so, or ask an admin to clear it for you.
  • You should almost always be working with the site in your own language to avoid making big mistakes. If you're accidentally on and you translate something, you might change it for the English language version, for example. Interface translation is particularly susceptible to this.

Checklist of areas to translate

It takes some effort to visit all the pages or areas of the site that should be translated:

  • Main page (authenticated)
  • Main page (not logged in)
  • Profile pages
    • marked not available
    • not marked unavailable
    • with more than one feedback
    • with 1 feedback
    • with 0 feedbacks
  • Create new account (registration) form at /user/register
  • New password/lost password page at /user/password
  • Login form at /user/login
  • Errors on "create new account"/Edit account form. (Try entering less than the required number of words on "about me", enter an invalid URL for website, invalid email, unmatching emails, unmatching passwords, unset country/province/city, full name etc.)
  • Create feedback form
  • Generic Contact form (/contact)
  • Member contact form (*uid*/contact)
  • Profile "set location" page (/user/uid/location)
  • Make sure to do the entire registration process, usually several times. (The registration process is the absolutely most important thing to have right, because it brings people to the site. So please go through that entire process until it's completely right.)
  • All the pages at
  • (DEACTIVATED until #908 is resolved) The inactive user notification:
  • The pester message is sent manually to members who have not logged in for the previous year, and if they don't respond their account is deleted. It is just plain text with html markup, and the various languages are there for translation.

Specialty areas that must be translated using administrative forms (work on these in site of your own language!).

The following things are not accessible to translators and will be sent to them via email.

* User settings (contains the introduction when creating an account and all the emails), http://*countrycode* * *Inactive User Notification* (Deactivated until [#908]( is resolved) "Body of notification email", This is a crucial email. * Contact settings: http://*countrycode* * The title of the "Frequently Asked Questions" page must be put in translated form on * Menus have to be created or edited for each language. * To just edit an existing menu, visit, choose the right menu, and edit, add a link, etc. * To add the required menus for a new language * Clone related existing menus as a pattern with the "clone" tab, then change the name as you want, etc. * Update all the links in the menu as necessary * Add new contexts as necessary by cloning the related contexts at * The blocks for each of the menus added have to have their title set to ``. For example, at * Comment notifications (for forum posts) need to be translated at * The user picture guidelines really require three different things to be translated, * * * (picture guidelines), requires admin help


Here is a list of the existent translations and the responsible translators:

Translation Translator Translation Verification
Chinese Jie Lan
Czech Jiří Ropek Michal Bryxí
French Clarisse Iméneuraët Olivier Fourdrinoy
German Cyril Wendl Herbert Wegscheider
Italian Diana Grasso Michele Salmaso
Japanese Kenichi
Farsi Farid Hajiaqazade Ali Javadi
Portuguese Gonçalo Nuno Pais António Carlos Gonçalves
Brazilian Portuguese Francis de Mattos Jaqueline Gonçalves
Russian Alexander Wyatkin
Romanian Stefan Gheorghe
Serbian Dušan Starčević
Spanish Laura Juliá Alfonso Esteban De la Cruz Arboleda
Turkish Abdullah Pekel Buğra Canata

❌ = Open positions ❓ = TBC for 2018

Contact Cyril if you wish to continue the Polish translation or volunteer as a translation verifier

Becoming a translator

This section is for Warmshowers users who would like to create a new translation of the website and translate it to their mother tongue. There are several requirements for new translators, which are listed hereafter:

  • Language requirements: Firstly, the translation language which you'd like to add ought to be your mother tongue. This seems trivial, but it's important that you have a good grasp of your language not only orally but also that you commit few orthographic (spelling) mistakes. Otherwise, the quality of Warmshowers will suffer from it and other users will have to correct you. Secondly, you should speak English very well, which is quite evident.
  • You should like make a rather long-term commitment, since translations need regular updates. If translators decide to leave, it can be hard to find successors, and we might have to deactivate a translation, which is a pity, given the large amount of work invested in it.
  • You have to have some time at your hands. The initial translation will take you a considerable amount of time - 20 hours is probably a fair guess. Also, you should be able to invest approximately 2-3 hours per week to maintain the translation, once you've created it.
  • You should be somewhat at ease with some computer-related tasks, evidently. You don't have to be an IT engineer, but basic knowledge of HTML is useful. If you don't know this but think you're fine to learn a few tricks, that will do as well.

Translation Verification

This section aims at developing a guideline for verification and quality assurance of the existent translations. They are intended both for translators and language verifiers. Verification comprises namely the following areas:

  • Orthography and style
  • (Broken, missing or wrong) links
  • User emails
  • Conformity with original, English text

Each of these aspects shall be explained in more detail hereafter.

1. Orthography and style

Here is a list of pages you can browse through in order to find language-specific mistakes in terms of style and orthography:

  • Single strings of text, scattered over all pages, including "Edit Profile", "View Profile", the messaging pages, reference pages, forums etc;
  • Longer chunks of text, chiefly in the FAQ, blocks on the front page and content linked to in the footer menu (e.g. "Mobile Apps");
  • Everything else ranging from user emails to contact forms.

Keep in mind that there might be stylistic and orthographic differences within your language, for instance there might be differences between a Portuguese and a Brazilian or an English and an American translator. What matters most is the consistence of the translation.

A few questions you could ask yourself in terms of style are:

  • Is the message clear?
  • Does the text read reasonably smooth?
  • Is there any technical term that could be translated with a more appropriate word than the one currently used?
  • Is the text written in an appropriate linguistic register (neither too familiar, nor too sophisticated)?

2. Links

Links can be broken when translators change them. Here are a few categories of link problems, all of which should be reported or fixed, if possible:

  • Broken links: links leading to error pages;
  • Empty links: links that don't do anything;
  • Wrong links: links leading either to other pages than indicated or to the indicated page in another language (mostly English). The latter case is often due to a lacking translation of the linked page.

For translators only: It is recommended that you check all links every time you translate anything containing links.

3. User emails

All user emails should be checked regularly, following the following steps:

  • Create a new account in your language with the user name "[yourusername]_TEST" (so we can detect test accounts), your email address (works also if you're already using it on a different account) and set your account to "not currently available". You should receive the "welcome" email in your language.
  • Generate a "password recovery email" (click bottom menu link when not logged in)

If you receive all the aforementioned emails apart from the latter in your language, everything is basically good. Please check the formatting, style, orthography and links for all emails and report any irregularities.

4. Conformity with original, English text

This is perhaps one of the major difficulties for translations, since the original English texts may change, while translations become outdated. Apart from efforts to keep the site up to date via GitHub, you could occasionally do the following things:

  • Compare pages mentioned in this section to their English counterpart.
  • Translators: check [yourlanguage] and check the "needs update?" column.

Further advice

In order to report your findings in an ordered manner, you may simply send a text or Word file or an email to Cyril, the translations manager or. I (Cyril) propose that one create a Google Spreadsheet to be shared with the translator, so that he or she can check / remove done items and you (verifier) can report further issues to it.


Cyril, the translations manager, can be contacted here for questions, suggestions or other subjects concerning translation.

You can’t perform that action at this time.