Translation workflow for marketing website
Last updated: January 31, 2018
Notes on working with translations for the FareHarbor marketing website.
To work with translation files, you’ll need the Poedit app, which can be downloaded for free.
Organization of translation files
- The translation files live in a FareHarbor Dropbox folder entitled “Marketing Website Translations.”
- That folder contains sub-folders organized by date in the format
Year-Month-Day(YYYY-MM-DD). - Always work on translations in the folder from the latest (most recent) date. The others are kept just as a record.
Naming of translation files
Translation files should have the .po extension. This is Poedit’s default file format.
The translation files should be named for the “Locale” they represent. A locale refers to a language plus a country. For example, Spanish as spoken in Spain differs somewhat from Spanish spoken in Mexico, so we might have two locales: es_ES for “Spanish (Spain)” and es_MX for “Spanish (Mexico)”.
Locales currently supported
en_US: English (United States) This is the default locale so we don’t need a translation file for it.de_DE: German (Germany)es_ES: Spanish (Spain)fr_FR: French (France)it_IT: Italian (Italy)
Creating a new translation
- Open the latest
fh.potfile in Poedit (the one in the most recentYYYY-MM-DDfolder). This file is a translation template: it includes all the English that needs to be translated. - Click the Create New Transation button in the bottom of the window:

- Select the correct locale (language and country):

- Save the new translation file in the same folder that the
fh.potfile lives in. This should be the latestYYYY-MM-DDfolder. You should use the exact filename provided by Poedit, which should match the locale. For example, for “Spanish (Spain),” the filename should bees_ES.po. - Translate!
- Select Catalog > Validate Translations and make sure no translations show an error (red hexagon with exclamation point) or warning (yellow triangle with exclamation point). See “Ensuring your translations are valid” below.
- Proofread, please.
- Let the Product Team know when your translation is ready!
Updating an existing translation
When content changes are required on the marketing website, the Product Team will place an updated fh.pot template file in a new YYYY-MM-DD folder in the shared “Marketing Website Translations” Dropbox folder. Here is the process for updating an existing translation with the changes required by the new template. Suppose we are working with es_ES.po for Spanish (Spain).
- Copy (i.e., duplicate, not move) the
es_ES.pofile from the second most recentYYYY-MM-DDfolder into the newYYYY-MM-DDfolder. - Open the new
es_ES.pofile in Poedit. - In Poedit, select Catalog > Update from POT File… in the menu bar:

- Select the
fh.potthat lives in the same folder as your newes_ES.pofile. This should be the latest translation template file in the most recentYYYY-MM-DDfolder (the one the Product Team just created). - Enter any missing translations in the Translation column in Poedit and save the file.
- Select Catalog > Validate Translations and make sure no translations show an error (red hexagon with exclamation point) or warning (yellow triangle with exclamation point). See “Ensuring your translations are valid” below.
- Proofread, please.
- Let the Product Team know when your translation is ready!
Tip: Select View > Untranslated Entries First so that all the missing translations will be moved to the top of the list. View > Entries with Errors First may also be useful.

Ensuring your translations are valid
This section is not about verifying the accuracy of translations. We’re counting on you, the translator, to translate things correctly! Please take the time you need to proofread your translations—we can’t do it (literally, we don’t speak all these languages). The quality of the marketing website can completely shape a customer’s impression of FareHarbor.
Because these translations are used to generate a website, a small amount of HTML code exists in some of the content that must be translated. This code must be preserved verbatim in the translated text.
Always use Poedit’s validation
Poedit can check from some of these errors. Always use this functionality and fix all errors and warnings before finalizing a translation file.
- Select Catalog > Validate Translations from the menu:

- The popup will either say “N issues with the translation found” or “No problems with the translation found”. Even in the latter case, there may be some warnings (as opposed to errors).
Warnings and errors are indicated by these icons in the list of translations, directly to the left of the Source text.
- Error:

- Warning:

Select an invalid translation in the list to see Poedit’s message describing the problem:

Code that must be preserved verbatim
Use your best judgement for the ideal placement of each of these things in the translated text.
%dor%s: These are “placeholders”. On the website,%dwill be replaced with a number, and%swill be replaced with other text (often a link to a different page on the site).- The Poedit error that corresponds with a missing placeholder reads, “a format specification for argument N doesn’t exist in ‘msgstr'”.
<b>and</b>. These wrap text that should be bold.<i>and</i>. These wrap text that should be italicized.<a %s>and</a>. These wrap text that will become a link.
Example with a link (<a %s> and </a>)
Source text:
The highest-rated reservation system across all categories, with <a %s>client stories</a> to prove it.
On the website, this looks like this. Notice how the “client stories” part becomes a link to another page.
The highest-rated reservation system across all categories, with client stories to prove it.
Invalid translation: Missing all of <a %s> and </a>
Il sistema con le recensioni migliori in tutte le categorie, supportate da testimonianze di clienti.
On the website, the link will be missing, and the user will not be able to get to the “client stories” page.
Invalid translation: Missing the %s
Il sistema con le recensioni migliori in tutte le categorie, supportate da <a>testimonianze di clienti</a>.
On the website, this will become a link to nowhere!
Valid translation:
Il sistema con le recensioni migliori in tutte le categorie, supportate da <a %s>testimonianze di clienti</a>.
Now things will be correct on the website:
Il sistema con le recensioni migliori in tutte le categorie, supportate da testimonianze di clienti.
Example using <b> and </b> and %d
Source text:
Rated <b>5/5</b> start based on %d+ Capterra reviews
On the website, this might become
Rated 5/5 based on 500+ Capterra reviews
Invalid translation: Missing the %d
Recensioni <b>5 stelle</b> su Capterra.
Invalid translation: Missing the <b> and </b>
Recensioni 5 stelle con %d recensioni su Capterra
Valid translation:
Recensioni <b>5 stelle</b> con %d recensioni su Capterra
Note: Inline links and %d and %s placeholders are essential, whereas <b> and <i> for bold and italics are nice, but inessential.