Machine translation in app and website localization

The idea of Machine Translation may be traced back to the 17th century, in the work of René Descartes. It first started being used for its actual purpose many years later, in the late 1970s, in institutions like the European Comission and then at big corporations such as Caterpillar and General Motors. With the advent of the Internet, the evolution of Machine Translation significantly sped up, resulting in advanced technologies like today’s Statistical Machine Translation.

In software localization, Machine Translation (or Automatic Translation) can be used in a number of processes.

Google and Bing machine translation engines for automatic translation- POEdtior localization platform

Machine Translation as a pseudolocalization technique

Pseudolocalization means simulating the localization process before beginning the real translation work. It is done for testing purposes, without involving any human translators, to see what the localized software would look like in the target language. Pseudolocalization helps avoid issues related to text expansion, character encoding, string hard-coding and other aspects. Out of the available pseudolocalization techniques, Machine Translation is probably the best to imitate what would happen during the actual human translation process.

Machine Translation as part of the post-editing process

Although controversial among some translators, companies around the world are increasingly seeking the use of translation technologies like Google Translate or Bing Translator to localize apps or websites. They couple the input from these technologies with post-editing, with the aim of speeding up translation turnaround time and decreasing translation cost. There are different levels of post-editing, from light, which only ensures readability and factual correctness of the translated content, to full, which produces translated content that complies with established grammar and style rules and terminology.

POEditor’s Automatic Translation feature

At POEditor, we offer our users the possibility to automatically translate software strings using the Machine Translation APIs from either Google (Google Translate) or Microsoft (Bing Translator).

Both Google Translate and Bing Translator use Statistical Machine Translation, a translation algorithm based on language pattern matching. While Machine Translation can provide satisfactory results when translating words or single sentences, it is well known that translation accuracy can dramatically decrease as the complexity of the text to be translated increases.

We always recommend using human translation when you localize a website or an app, if you want to provide a high quality experience to the user. In case you’re on a budget and can’t hire professional translators, you can always use POEditor to crowdsource translation or maybe use a mix of Automatic Translation and translation crowdsourcing.

Free localization with the POEditor translation platform

The online localization platform POEditor is free to use to translate software projects collaboratively in the following circumstances:

With Free Accounts

If you register to the POEditor, you get an account with a Free plan by default. The free account can accomodate software localization projects summing up to 1000 strings, which is usually enough to translate a small app or a WordPress theme into a few languages.

Also, you can use your free account to contribute without any limitation to localization projects owned by other users. The strings you translate for others are counted against their account.

Free plans, like all the other POEditor plans, can host an unlimited number of projects, languages and contributors. But, unlike accounts with paid plans, free accounts don’t come with a Translation Memory feature.

For Open Source Software Project Localization

POEditor is perfect online translation platform for localizing open source software projects. We don’t limit you in any way, not even regarding the number of strings you can store in your localization project. Also, you can choose between localizing the open source software in a private project and crowdsourcing translations from your community using a public project. Not to mention that we have both a GitHub integration and a Bitbucket integration.

To set up your free localization project, all you need to do is file an OS project request in Project Settings and briefly wait for our approval.

Requesting a Free Open Source Software Localizaiton Project (Project Page) - POEditor Localization Tool



Crowdsourcing translation for a software localization project: how to manage everything

So there’s a software product you want to localize into some languages, and you decided on crowdsourcing translation to achieve this.

If you’re working with any of these localization files, you can easily set up a crowdsourcing project at POEditor. Just create an account, and you’ll have access immediately to awesome localization management features that will automate your workflow like never before.

This article is an overview of the steps to creating a crowdsourced translation project and the essential features to manage it.

A public join page for crowdsourcing translators - POEditor localization platform

Setting up the software localization project

Step 1. Create the project . In your account’s Dashboard, click on ‘Add a new project’. Give the project a name and, optionally, a description (which will be featured in the project’s join page).

Step 2. Add languages to the project. In the Project Page, use any of the buttons available to add the languages you want to have your software localized in. It’s recommended you also add the base/source language (the language your software strings are in right now).

Step 3. Import strings from language file. In the Project Page, click on ‘Import terms’ in the side menu. Browse for your localization file and select to ‘Also import translations in…’ your base language. If your localization file contains labels/keys, set the language where you imported the translations as Default Reference Language.

Step 4. Make the localization project public. Go to the Project Page and click on ‘Project Settings’ in the side menu. In Advanced Settings, set Public Project to Yes.

Step 5. Share the crowdsourcing project’s join page. At the bottom of the Project Page, as well as in Project Settings, you’ll find a link to your public join page. Share it wherever you find appropriate: websites, forums, social media pages etc. People will be able to join the project’s translation team by accessing it.

Public Project Page - POEditor Localization Platform

Assigning roles

In Project Settings, you can add administrators and proofreaders to your crowdsourced translation project.

Administrators can do pretty much everything the project owner can do. Pretty much, because he/she can’t delete projects, access the Bitbucket/GitHub integration pages or add/delete other admins.

Proofreaders are contributors who can mark a translation as proofread or not in the languages they’re assigned to. To grant a contributor proofreading rights, enable Proofreading in Project Settings > Advanced Settings. Then use the Add Proofreader button under the Add Administrator button.

You can revoke these roles in Projects Settings also, by clicking on the x next to the user’s name.

Add administrators or proofreaders in Project Settings - POEditor Localization Platform


Controlling access to the crowdsourcing project

You have some options to control the access to your crowdsourced localization project.

In Project Settings > Advanced Settings, you have the following:

  • New Contributors Require Moderation: makes everyone who joins the translation project through the public join page require your approval (the owner) or an admin’s, before being able to access the project.
  • Contributors Can Add New Languages: lets people add new languages to the project in the public join page.
  • Lock Completed Languages: hides any 100% localized language from the join page, so new volunteers can no longer join it.

In your upper navigation bar, you can find a link to the Contributors’ page. Here, you can control each contributor’s access to the project, after they have joined it.

Control access to language in Contributors Page - POEditor Localization Platform

Next to each contributor, you’ll see a list of your projects to which he/she is contributing, as well as the languages to which he/she has access. Use the buttons described below to control their access.

  • Block: restricts the contributor’s access to the language.
  • Revoke: removes the contributors from the language.
  • Approve: unblocks the contributor’s access to the languages.

Now that you know how to set up a crowdsourcing project, assign roles to your volunteers and control the access they have to the project, maybe it’s time to go one step further with improving the localization process. This article on how to automate localization will offer more insights regarding the ways POEditor can help maximize productivity for your localization team.



Translator’s guide to software localization

If you want to help with the localization of a software product using the POEditor translation platform, but you’re not quite sure what you should do, you can browse this article to gain insights into how our collaborative interface works.

How to join a localization project

Joining depends on the project type. If the project is private, the project owner or an administrator must add you, and you’ll be informed by email of this. If it is a crowdsourced localization project, you’ll have to go to the public join page and select the language(s) you want to contribute to.

Join public localization project - POEditor translation management platform

How to add translations

This is as easy as it gets. All you have to do is access the Language page (by clicking on the project in your Dashboard), and type in the translation in the empty boxes on the right, corresponding to the texts in the left column. Your work is saved automatically.

Add Translation in Language Page - POEditor Translation Management Platform

Marking translations as fuzzy

To make it easy for your team to see the translations that require reviewing, just hit the F button (Fuzzy). All project members with access to the language will be able to filter the fuzzy translations using the Order and the Show menus.

Visual guidance during translation

Sometimes, when translating software strings, you will come across some technical stuff that has to be preserved, in order for the localized software to work properly. POEditor shows visual notifications whenever you encounter placeholders, newlines and whitespaces, and when your translation exceeds the length of the original string.

The Realtime Translation System shows you if another contributor is on the Language page. It also shows in real time if a translation is added, edited or deleted. The system will mark the translation fields that are being worked on by coloring their borders and, in case someone else is editing the same translation as you, a notification bubble will pop up.

Realtime Translation System - POEditor Translation Management Platform

How to add comments on strings

If you have something to say to your team regarding a translation, hit the button with a speech bubble icon next to it. It will open the comment section corresponding to the term-translation pair at hand, where you can type in your comment or view the comments made by other team members. The comment button will be green if an admin or the project owner last commented on the string, and yellow if a contributor last posted a comment.
Add comment on string- POEditor Translation Management Platform


How to filter specific translations

Using the Order and Show menus, you can choose to see in the Language page only certain strings.

Filter strings - POEditor Translation Management Platform

To see the untranslated terms only and also strip down the interface to the most essential features for translation, hit the Productivity mode switch to ON. This should speed up the translation process.

Downloading translations to a file

To save the strings to your computer in one of the supported file formats, push the Export button in the right-hand Options Menu. In Advanced Options, you can filter specific groups of strings and to edit the filename.

Download strings to file - POEditor Translation Management Platform

Uploading translations from a file

To add translations from a file to a language in the localization project, use the Import translation from file button in the Options Menu. If you check the box to overwrite old translations, all the translations in the project will be updated with those in the file. Otherwise, only the empty translation fields will be filled in.

Import Translations from File - POEditor Translation Management Platform

How to view your translation progress

Clicking on the Translation Stats button in the Language page, you’ll be able to see your contribution to the language localization process: Words, Chars, Translations (number of translated strings) and the Percentage of completion. If you’re working on a software localization projects with labels, which has a Reference Language set, Reference Words (RC) and Reference Chars (RC) will also visible.

Under Translation Stats, you can find the Translation forecast feature, which estimates the date of completion for the language localization, based on your translation pace.

Setting a Reference Language

This feature only appears if the project owner or an admin has granted you read access to all the languages in the project. The translations in the Reference Language you choose will be displayed above the original terms.

Set Reference Language - POEditor Translation Management Platform

Versioning and translation recovery

To view previous translation versions, use the History link next to each term. This link will not appear if the string was never translated on POEditor.

If the project owner has granted you access to the Translation Memory, you can use this feature to fill in the empty translation fields with the most frequently used translations saved in the database. Translations can also be loaded individually using Translation Memory suggestions (must be turned on by the project owner).

Once you’re aware of the features POEditor has to offer, you should be able to ace your translation job without any effort.

Automating your localization workflow with POEditor: features overview

POEditor Integrations PageWhether you’re a localization manager or a translator in a software localization project, you will find the right tools at POEditor to simplify your workflow. Below are presented some of the features our localization management platform offers for improving automation.

Automating the file management

When managing files with POEditor, the typical scenario would be to use the Import and Export buttons in the user interface to upload and download localization files.

But, if you use GitHub or Bitbucket, you can always connect these code hosting platforms to automate the file management in your localization process.

Also, there is a WordPress localization plugin that you can use if you want to connect the language files in your WordPress instance to the languages in your POEditor projects, to speed up the import and export of strings.

Beyond any specific integration with third party services, there is our localization API, which can automate everything regarding the localization management process and lets you handle things from your end.

Automating the translation process

POEditor is mainly designed as a localization platform where you can bring your own localization team (including translators) to collaborate on translating software strings, in order to make multilingual apps, websites or other software products.

But, if you need to speed up the translation process for any reason, there are a couple of options.

For instances when you don’t require high quality translations, such as doing some quick localization testing, there is the Automatic Translation feature, which uses machine translation provided by Google or Bing to instantly translate your software strings.

If you do need high quality human translation and don’t have your own translators, you can always order translations from Gengo directlty from your POEditor account.

Reports by Languages - POEditor Localization PlatformAutomated localization tracking

Monitoring the activity in your software localization process and measuring the translation progress is also easy, as there is a dedicated section for translation stats. Here, you can see reports by languages and reports by contributors for specific time frames, and check valuable information like string, character and word counts, that is vital to all localization managers when it comes to rewarding translators for their efforts.

Other useful localization monitoring features are POEditor’s Realtime Translation System and our HipChat integration and Slack integration.

The Realtime Translation System shows, on a project level (for admins and project owners) what other users are connected to the project, and when they add or delete translations in the project languages.

The HipChat and Slack integrations notify the project owner (and anyone else who the project owner gives access to) about a wider variety of events taking place in the software localization project, like when when a language is added/deleted/completely translated, when strings are imported to the project and so forth.

As you can see, there are plenty of automation features to choose from when localizing software with POEditor. Most of them come with some degree of flexibility, making them suitable for localization projects of all shapes and sizes. Explore them to see how they fit your needs and let us know if you have any questions or suggestions.




How to integrate Slack or HipChat into your software localization workflow

Connectivity is essential to a flexibile and efficient localization workflow. Being connected to your team at all times and also being connected to the constant flow of events during the localization process, you can react on the spot whenever something needs attention, increasing productivity and saving a lot of resources on the way. With this in mind, and somehow as a logical step to offering you a better solution for collaborative localization, we’ve decided to add two more options to the list of integrations available with the POEditor localization management platform- Slack and HipChat.

The walkthroughs below will help you connect your POEditor account to Slack or to HipChat. Make sure you log in both to the POEditor localization platform and to your preferred communication service before you begin.

How do I integrate Slack?

Go to the Account Settings > Integrations page in your POEditor account, click on Slack, and then click on Connect.

Slack Integration - POEditor Localization Platform

On Slack’s authorization page, pick where you want to receive the notifications regarding your localization projects (Channels or Direct Messages), then authorize the POEditor localization app.

Slack Integration (Authorization Page) - POEditor Localization Tool

After connecting Slack to POEditor, you can send a test to see if the Slack integration works. If the test message appears where it should, your work here is done.

How do I integrate HipChat?

To connect your HipChat account with your POEditor account, go to the Account Settings > Integrations page in your POEditor account, click on HipChat, then click on Connect.

HipChat Integration Page - POEditor Localization Platform

On HipChat’s integration page for POEditor, pick a room where you want to receive the notifications regarding your software localization projects, then click Approve to install the integration.

Select room (HipChat Integration) - POEditor Localization Tool

Finally, press Connect to give access to the POEditor localization app.

Connect HipChat to POEditor

Optionally, you can send a test to see if the HipChat integration works.

What events in my localization projects will I be notified about?

Whether you use the Slack integration or the HipChat integration, you will be notified about the same events in your localization projects. These are:

Slack Integration - POEditor Localization Management Platform
  • when a project is added/deleted
  • when a language is added/deleted/fully translated
  • when translations are flushed
  • when strings are imported
  • when an administrator/contributor is added/removed
  • when a contributor joins a public project
  • when the string limit for the account is reached



As a final consideration, please note that the integrations page is only accessible to project owners, because all integrations are done on an account level.

You can now rest assured that you (and your localization team) will always be on the same page with the events taking place in your software localization projects.

How to get professional human translation services for your software localization project

The POEditor localization management platform is mainly designed as a productivity tool for localization teams that want to use their own translators in the process of localizing software strings.

Despite this, we know that not everyone who reaches our localization platform has translators to assign to their l10n projects, or a community to crowdsource translation. For them, we provide quick access to professional translation services. Following the steps described below, you can easily order translations for your software localization project, directly from your POEditor account.

Step 1: Go to the Translation Orders page, choose your values and get a quote

In the Project page, click on the Translation Orders button to reach the New Order page. Here, select your desired values, then press Get Quote to find out what the translation price is.

You can choose to have translated all the software strings in a particular language or just the strings that don’t have translations in that language.

Step 2: Submit the translation order for your software strings

To place the translation order with Gengo, fill in the Payment Details and accept the terms and conditions.

Altough it is not compulsory, you are encouraged to also fill in the Comment for translator form. This can improve the translation accuracy, by making it clear for the translators what it is they are to translate and what tone should be used.

Step 3: Approve the translated strings and import them to the localization project

After you get the translations from Gengo, you can approve them in bulk or send them back individually for revision. Also, once a string is translated, you can communicate with its translator for whatever reason using the Comment feature next to any of the translated strings (see the speech bubble-shaped button). To send the string back for reviewing, check the box next to Also ask for revision when sending a comment to the translator. An email will be sent to you when a translator makes a comment on one of the strings.

Approve translations (Translation Order) - POEditor L10n Tool

After approving the completed translations, set your desired language for Import (and, if you want to overwrite the old translations, check the box next to this option) and make the final click on Import approved. You now have the translated strings that you’ve just purchased uploaded in your software localization project.

Import approved translations (Translation Order) - POEditor L10n Tool

It’s as easy as that. You don’t have to create any account anywhere else than on the POEditor localization platform, and you can have your software localized by professional translators.

All the orders that you make will stay listed in the Translation Order page, with their corresponding stats: Not started for when you’ve only requested a quote, Submitted for after making the payment, and Completed for when the submitted strings are translated.

Professional Translation Orders - POEditor Localization Tool

Finally, please note that there is a lower limit of $2.5 for any translation order placed with Gengo and that, if you cannot find in the language menu a particular language you want your strings translated into, it’s because it is not provided by our partner in pair with the source language you’ve selected.

Enjoy your improved localization prospects and do drop us a line if you have any feedback!

How to track the translation progress in a software localization project with POEditor’s rich statistics

Whether you’re translating something with a few strings, like a theme or an app, or dealing with something with a zillion strings, like a big website, there’s one thing that will always come in handy to the localization manager: statistics.

Statistics can be helpful for many things, among which evaluating the general translation progress of the software localization project and calculating fees for translators.

The POEditor localization management platform comes with two categories of stats: for project owners and administrators, and for contributors.

What stats pages look like

At the top of every Statistics page, some general information about the localization project is available, such as the project name, the amount of terms in it, and the total of words and characters these terms sum up. Some users can see more information in this area, as a result of their role in the localization project and the Stats page they are on.Date Range Picker (Statistics) - POEditor localization platform

The Date Range Picker, which can be found at the upper right side of any Stats page, allows you to choose the time frame for the displayed activity.

If you want to download the information generated  in your Statistics page, simply click the Export link at the bottom of the page, and you’ll be given an .xls file with all the details.

Statistics available for project owners and administratorsProject Stats Button (Project Page) - POEditor localization tool

Project-level stats can be accessed using the Stats button in the Project page, and are grouped under two tabs: Reports by Contributors and Reports by Languages.

On the Reports by Contributors page one can find the following information about contributors: name, email and the number of strings they’ve translated.

Clicking on the contributor’s name reveals more details regarding their translation work: the language(s) in which translations were made, the number of translated strings (Translations), how many words and characters these strings represent (Words, Chars) and what percentage of the language was translated (Percentage). Having a Reference Language set on the project will make two more columns appear: Reference Words (RC) and Reference Chars (RC).

In Reports by Languages, one can see all the languages in the localization project with translation activity, in the period selected with the Date Range Picker. The percentage of completion and the number of translated strings is also available for each localized language. To see who contributed to the languge localization and to what extent, just click on the language.

Statistics available for contributors/translators

Contributors can access their own statistics by clicking on the Translation Stats button in the Language page. Here, they can see their contribution to the language localization process: Words, Chars, Translations (number of translated strings) and the Percentage of completion. For software localization projects with labels, that have a Reference Language set, Reference Words (RC) and Reference Chars (RC) are also visible.

Recovering translations with the History module

The History module is one of the features that makes translating software strings with the POEditor localization management platform a safe and easy process. What the History module does is store translations that are one hour old in a database, so that they can later be recovered individually (with the History link), or in bulk, for a particular language (using the Recover from history feature). Below we will describe how the History module works.

Consulting previous translation versions for individual termsHistory link (Language page) - POEditor localization management platform

In any Languge page, you can find History links next to each previously translated string (remember – the translations must’ve been one hour old to be recorded). If you click on one of these links, you will see all the translations that have been made in that language for the corresponding term, as well as who made the translation and when.

Anyone can use the History link, from the owner of the software localization project to the contributor translating the strings.

Recovering translations for a languageRecover from History (Language page) - POEditor software localization tool

Localization project owners and administrators can also use the Recover from history feature to load the last translations stored in the History database to a particular language. When the system detects that there are empty translation fields in a language, it shows a notification at the top of the Language page. Clicking on “Yes, let’s do that” fills in all the empty translation fields in the language at hand, without affecting any other translations.


There is also another way to recover translations, other than with the History module. Using the Translation Memory, project owners with paid accounts (and their administrators and contributors, if they are granted acccess) can load the most frequently used translations to the languages where there are untranslated terms.

Updating translations in labels-based software localization projects

If you want to translate an app that uses language files such as .strings, .xliff, .resx, .xml or .properties with the software localization management platform POEditor, it’s very likely your localization process will be a little different than if you were using any of the other supported language files. This is because these language files contain labels.

As a developer/localization manager/someone else handling a labels-based project with POEditor, you will start your software localization process by importing strings from a language file and setting a Default Reference Language.

Because you may update your app from time to time, you may also need to update some translations in your localization project’s Default Reference Language, to keep the strings between the app and the POEditor localization platform synced. If this happens, you will want to inform contributors about this change, so they will check that the translations in the other languages still correspond to the updated texts (i.e. the translations in the Default Reference Language that you updated, that you display across the localization project as terms, instead of labels).

So, in case this happens, you can maintain a smooth localization workflow following these steps:

Step 1: Update the translations in the software localization project

You can do this in two ways:

  • Using the Import in the Project Page: On the Project Page, click on Import Terms in the side menu, pick the language file that you want to use, select the option Also import translations in…, select the Default Reference Language (English in the screenshot) and then check the box to overwrite old translations. Another option will immediately appear, to mark corresponding translations from the other languages as fuzzy for the updated values – also check that one and press Import File.

Import Terms and Translation in Project Page - POEditor Software Localization Platform

  • Using the Import in the Language Page: Go to the Language Page of the Default Reference Language set on your software localization project. Click on Import Translations from File in the side menu, Browse for the language file you want to use for import, mark that you want to overwrite old translations and to mark corresponding translations from the other languages as fuzzy for the updated values and press Import.

Import Language Page - POEditor Software Localization Platform


Step 2: Notify the contributors about the updated translations

Use the Notify Contributors button in the side menu on the Project Page to tell contributors on a project level to review the fuzzy translations in the languages they are assigned to. Contributors can then filter the translations in any Language Page so that the POEditor localization platform only shows the Fuzzy translations. This way, the updated translations in the Default Referance Language will be evident.

Notify Contributors Project Page - POEditor Localization Management Platform

After reviewing a fuzzy translation, any contributor (or anyone in the project) can use the Toggl Fuzzy Translation button (F button next to the translation) in the Language Page to remove the fuzzy flag.

As a final consideration, keep in mind that you must be the owner of the software localization project, or one of its admins, to be able to mark as fuzzy the translations for the updated values. If you’re a contributor, you will not see this option when using the Import in the Language Page.