Get support for your localization project

Use this software localization guide to improve your translation workflow on POEditor


When you sign in to your account, the first page you reach is your Dashboard. The empty circle with the + inside is where you can add new projects. Click on it and fill in thelocalization project's details, then press Add. All the projects you are a member of, regardless of your role in them, appear in your Dashboard (the ones hosted on your account don't have the 'Shared' tag).

Next to the name of each project you can see the languages to which you have access. Their total percentage of completion is illustrated with a colored progress circle.

Project options

Hover your mouse over any project in your Dashboard to see some details about it. Click on a project to access it or on a language to directly go to its corresponding Translations page.

In each project you own or administrate, you will find the following options: Languages, Import, Terms, Stats and Settings.

  • In Languages, you can see listed the languages available in the project and, foreach language, the contributors assigned to it, its percentage of completion and three buttons: Add Contributor, Change Language and Remove Language.

    Keep in mind that, in case you change a language in your project, POEditor deletes the translations of the terms with plurals forms.

    To add more languages, use the Add language button.

  • Import (Terms and Translations) lets you add strings to your POEditor project from localization files stored on your computer. You can choose to add terms only, to add terms and translations, and to overwrite old translations. The supported localization formats are the following: Gettext (.po, .pot), Excel (.xls, .xlsx), Android Resources (.xml), Apple Strings (.strings), iOS Xliff (.xliff), Microsoft Resource (.resx, .resw), Java Properties (.properties), JSON (.json), INI(.ini), CSV (.csv), YAML (yml), Angular XMB and XTB (.xmb, .xtb).
    To group strings on import according to specific localization needs, you can use the POEditor tagging system. Setting tags on import is useful during translation, because it offers personalized term filtering options, and also on export, because it lets you download language files with specific groups of localized strings from your POEditor translation project.
    The POEditor localization management platform makes it possible to localize files on GitHub, Bitbucket, GitLab and Azure DevOps. Go directly to the corresponding integration page by clicking on the links in the Import page.
  • In Terms you can view, edit or delete the terms in a project, or addnew ones (individually). You can also see/edit terms' attributes (plural forms, reference, context) and the comments and translations in all the languages.
  • Stats opens a different page where you can find all the statistics for your project: number of terms, total number of words and characters in terms and in translations and total number of languages.

    The Reports by Languages tab contains a diagram with the percentage of completed translations and a list of the translated languages containing a summary of the number of translations and the percentage of completion.

    The Reports by Contributors tab shows a chart and a summary of the activity of all the project's contributors, the number of translations each of them made and the percentage of completion.
  • Settings opens a page with options regarding your software localization project, divided into three sections: Project Details, Access to Project and Advanced Settings.
    In Project Details, you can set the name of the localization project, its description (in Markdown format), the Default Reference Language and what language to Export Empty Translations from. Use the Edit Project Details button to change these settings. The project Description appears in the invitation emails sent to contributors and on the join page for public projects.

    The Default Reference Language option lets you choose one of the languages in the localization project to appear above the initial terms, across all languages in the project, for all contributors to see and be guided by it. It is recommended to activate this option when using language files with labels in the localization process.

    The Export Empty Translations from option allows you to fill in the empty translation fields of the localization file you are exporting with translations from another language of your choice in the localization project.

    In the Access to Project section, you can see what administrators the projects has, and what proofreaders, as well as Add Administrators (if you're the project owner) and Add Proofreaders (if you're the owner or an admin). Administrators have the same attributes as project owners, except for that of adding or removing administrators or deleting the project.

    The last option in the Settings page is Code hosting service integration. By following the links next to it, one can connect a POEditor account to repositories on GitHub, Bitbucket, GitLab and Azure DevOps, to more easily manage the localization file import/export process.

    In the Advanced Settings, you can grant Read Access to All Languages to the contributors, to give them the possibility to use any of the available languages with the Set Reference Language option, which is for their individual localization efforts. The reference language set by a contributor will always override the Default Reference Language set by an owner or an admin.

    You can set the Automatic Translation option to Everyone, to allow all contributors to translate automatically, or you can set it to Limited, allowing only owners and administrators to use this function.

    The Enable Proofreading option allows owners, administrators and other contributors with proofreading rights to exercise their proofreader roles. Once proofreading is enabled, a button will appear on the settings page, which will make it possible for owners and admins to assign new proofreaders to the project from the current list of contributors. Any contributor added as a proofreader will be able to proofread the translations made for any of the languages he is assigned to. If the contributor is removed from the contributor list, he will also lose his proofreader role in the localization project.

    If Enable Proofreading is on, you can also enable the Lock Proofread Translations option. This will prevent contributors without proofreading rights from editing or removing proofread strings.

    When filing a request for an Open Source Project, you have to prove that the project you want to localize is as such by providing the type of OSI approved license, a project description and a link to your project's page.

    Set a project status to Public to allow contributors to self-enroll. The link next to the option Public Project leads to your project's public join page.
    When a POEditor localization project is public, a few specific features appear in the Advanced Settings: New Contributors Require Moderation, Contributors Can Add New Languages and Lock Completed Languages.

    The New Contributors Require Moderation option lets owners and moderators control the access to the public project. This implies the need for approval in the case of contributors that reached the public project through the Join page.

    The Contributors Can Add New Languages option allows users to add languages to a public project in the Join page, at the moment they become a contributor.

    The Lock Completed Languages option offers the possibility of hiding the 100% translated languages from the public project's Join page so that new contributors can't enroll anymore.

    In Project Settings you can also delete the project (only if you are the user hosting it).

  • Notify Contributors sends a reminder email to all the contributors assigned to the respective language in a standard format, to which you can add a personal message.


When you click on one of the languages available for a POEditor project, you are taken to a corresponding Translations Page, where the actual translation work is performed.

Some choices are available for organizing your translation work: you can choose to order your translations by Updated ASC, Updated DESC, Untranslated First or Automatic First and you can also order by terms (ASC/DESC). You can also choose what strings to show: untranslated, translated, automatic, not automatic, fuzzy, not fuzzy, proofread or not proofread (only available when Proofreading is set to "Yes" in Project Settings).
On the right side of each term – translation pair, there is comment button, where you can add screenshots and comments and a fuzzy button that lets you mark the translations that seem wrong or inadequate.

If you turn ON the Productivity mode POEditor generates a worksheet where all the untranslated terms are listed on a single page and all the other buttons are removed, so you can focus on translating the strings only.

Other options available for each language:

  • Export allows you to download the languages translated in a POEditor project in a localization format of your choice (PO, POT, PHP Array, Excel, Apple Strings, iOS XLIFF, Android String, Microsoft Resx, Microsoft Resw, Java Properties, JSON, INI, Angular XMB and XTB, YAML, CSV).
  • Import (Translations) lets you import translations from a localization file of your choice: Gettext (.po, .pot), Excel (.xls, .xlsx), Android Resources (.xml), Apple Strings (.strings), iOS Xliff (.xliff), Microsoft Resource (.resx, .resw), Java Properties (.properties), JSON (.json), Angular message formats (.xmb, .xtb), INI (.ini), Comma-Separated Values (.csv). You can choose to overwrite old translations or not.
    You can also import translations from your GitHub account by clicking on the small GitHub icon located at the bottom left corner of the Import translations from file box. The same applies to importing from Bitbucket, importing from GitLab and importing from Azure DevOps.
  • Automatic Translation is a feature that uses the Google or Microsoft translation engines to fill in all the empty translation fields in a language.
  • Translation Memory searches for identical terms in all the translations you performed, either as owner or contributor, and creates a list of these terms and their translations. You can choose to eliminate the translations you do not need from this list and to keep the adequate ones.
    Project owners can choose to allow or restrict the access of contributors and administrators to their personal Translation Memory from Account Settings.
    Contributors benefit from their own Translation Memory anytime, and from the one belonging to the owner of the project they're working on (if access is granted).
  • Copy Terms to Translations copies the text in the terms to their corresponding translation fields, if these translation field appear to be empty.
  • Set Reference Language allows you to choose one of the languages in your POEditor project as a translation reference. The translations in the selected reference language will appear above the original terms that were imported from the localization file.
  • Flush All Translations permanently deletes all the translations done so far in the project for that language.
  • Notify Contributors sends an email to all the contributors assigned to a language in a standard format, to which a personal message can be added.


Contributors in the upper navigation bar opens the list of users assigned to your localization projects.

There is an icon next to each contributor, which displays that user's email address, the number of translations performed and the time of the last contribution.

Next to each contributor there is a list of your projects to which he is contributing and also his role in them. Next to the name of the project you have the options to Approve, Block or Revoke the access of the contributor to the project.

User Settings

Clicking on your username in the right corner of the upper navigation bar, a drop down menu will appear with three buttons: Account settings, Billing, Translation Orders and Log out.

The Account Settings page is split into three sections:

  • The Profile section, where you can purchase more Automatic Translation characters, change your password and Edit your profile info. On the Edit page you will also find the option to remove your account.

    Translation Memory is a feature that stores all the translations you made, either as owner or as contributor. You can give access to your translation memory to administrators and/or contributors using the switches in the Profile tab of your Account's Settings.

    TM Suggestions can be enabled here, if you want the Translation Memory to show translation suggestions above the translation fields in your project's language pages.

    Notification Bubbles are alerts that pop up each time a translation exceeds twice the length of the initial string, and when the symbol which marks a white space appears in a translation.

    Notifications on Comments allows you to select the way you want to be notified when someone makes a comment in your localization project. It can be either None, Every Comment or Daily.
  • The API Access section, where you can change the status of your account's API. When choosing to unlock API access, a token is generated, which serves as your key to access the API. If you feel your key is compromised in any way, you can use the Regenerate button and receive a new token. More information about API can be found in the support section below.
  • The Integrations section, where you can connect your POEditor account to GitHub, Bitbucket, GitLab, Azure DevOps, WordPress or Slack.
  • The Logs section, where you have an Activity Log, an API Log, a Webhooks Log and a Callbacks Log.

The Billing page is split into two or more tabs, depending on the number of billings you are in charge of. These are:

  • Your Plan, where you can see you plan’s details and upgrade or downgrade your POEditor subscription.
  • Your Billing, where you fill in your billing info.
  • Alternative payer billings. Every time you accept the role of alternative payer for someone else's account, a new tab with a billing form for that account will be generated.

API Access

The POEditor API consists of a set of callable methods. You need to enable API Access from Account Settings in order to use POEditor's API.

To perform an action using the API, send a request to an API endpoint and a response will then be sent back to you. The request should be POST. The response you'll get will be a JSON encoded object.

Here's a set of methods you may use:

  • List Your Projects
  • View Project Details
  • List Project Languages
  • Add Language to Project
  • Delete Language from Project
  • List Project Terms
  • Add Terms or Translations to Project
  • Upload Files
  • Download Files

The technical documentation can be found here.

Supported Formats

As you may have already guessed, POEditor initially started as a localization tool designed to translate PO files. In the meantime, we have also developed support for the following popular localization files:

  • Flutter ARB (.arb): The Application Resource Bundle is a localization file format based on JSON, with localizable resources encoded as JSON objects. ARB files are used to localize apps built with Google's Mobile App SDK called Flutter.
  • CSV (.csv): In computing, a comma-separated values (CSV) file stores tabular data (numbers and text) in plain text. Each line of the file is a data record. Each record consists of one or more fields, separated by commas. The use of the comma as a field separator is the source of the name for this file format.
  • INI (.ini): INI files are simple text files with a basic structure composed of sections, properties, and values.
  • Key-Value JSON (.json): Used mainly in Javascript apps and frameworks. Every key is associated with a value, hierarchical data is supported. It's used by angular-translate, i18next, chrome extensions, i18n-node and many other libraries.
  • JSON (.json): A completely language independent data-interchange format, used primarily to transmit data between a server and a web application, as an alternative to XML.
  • Gettext (.po, .pot): PO files consist of a list of entries that describe the relationship between original terms or strings and their translations in one language, as part of a project. POEditor works perfectly with any PO files produced by a valid i18n configuration.
  • Java Properties (.properties): Properties files are simple file formats that consist in lines with keys and their associated values, which are used in Java apps for internalization purposes.
  • .NET Resources (.resw, .resx): RESX & RESW files are resource file formats which consist of XML entries in which you can find objects and strings of XML tags. These files can be read, modified and parsed in normal text editors.
  • Qt TS (.ts): Qt ts files are xml files which are used by the Qt Linguist application
  • Apple Strings (.strings): Apple Strings are used in the process of localization for Mac OS X and iPhone apps.
  • iOS XLIFF (.xliff): iOS XLIFF files are XCODE generated files, composed of one or more <file> elements. Each <file> element corresponds to an original file or source. Localizable data are stored in <trans-unit> elements.
  • XLIFF 1.2 (.xlf): XLIFF 1.2 files are made of one or more <file> elements. Each <file> element corresponds to an original file or source. Localizable data are stored in <trans-unit> elements. The <trans-unit> element holds a <source> element to store the source text, and a <target> element (that is not mandatory) to store the latest translated text.
  • Angular XLIFF (.xlf): XLIFF is a standard for the localization industry, specifying elements and attributes to store content extracted from various original file formats and its corresponding translation.
  • Angular XMB (.xmb): The XMB format is a key-value pair list, with no deeper structure. It has a mechanism for named placeholders, with descriptions and examples.
  • Angular XTB (.xtb): The XTB format is a key-value pair list, with no deeper structure. It has a mechanism for named placeholders, with descriptions and examples.
  • Rise 360 XLIFF (.xlf): Articulate uses the industry-standard XLIFF 1.2 for translation files. Course authors are given the option to include HTML formatting when exporting their courses for translation from Rise 360.
  • Excel (.xls, .xlsx): The Excel tables should contain the information in the following order: terms, translations, context, reference and comments, in order for POEditor to arrange them correctly.
  • Android String Resources (.xml): POEditor works with Android Strings in .xml formats, parsing single strings and quantity strings.
  • YAML (.yml): YAML is a human-readable data-serialization language for all programming languages, commonly used for configuration files. It targets many of the same communications applications as XML but has a minimal syntax.

Ready for a super-smooth software localization experience? In case you need more info, consider checking out our FAQ section or dropping us a line any time at

See also:

Start your software localization project now

Get 1000 strings, unlimited projects, languages and contributors for FREE or check out our affordable Pricing plans for large scale localization projects