FAQ


General Questions

Does Transifex have translators?

Transifex is a software platform – we don't provide any translation services ourselves. Companies that use Transifex usually work with a third-party translation agency, hire freelancers, translate in house, or crowdsource translations with the help of their community. You also have the option of ordering translations from one of our translation partners: e2f, Gengo, Lionbridge, and TextMaster. Orders can be placed from within the Transifex platform using a credit card; finished translations are delivered back to you inside Transifex.

What's the difference between a public and private project?

Public projects are visible to everyone. They show up in Transifex's Explore page and get indexed by Google. And non-Transifex users can see the public pages for a public project. That said, you still have control over who can translate your content and what user role each person involved in your project plays.

If you're crowdsourcing translations, we recommend making your project public. It's extremely easy to bring onboard translators since they can find your project and request to join a translation team.

Private projects are only visible to the people who were invited to work on them. They won't appear in the Explore page and Google will not index any of your pages. This is the recommended route if you have proprietary content that you don't want everyone to see. When your project is private, you'll need to manually invite people to work on the project.

What is considered an Open Source project?

Open Source projects are ones with publicly available source codes licensed under an OSI-approved license, such as GPL or BSD. In order to translate an Open Source project on Transifex, you'll be asked to provide the following:

  • A link to your project's code repository.
  • The repository must contain a LICENSE file stating your project's license type.

For example, your project might be hosted on GitHub and have a LICENSE file stating that it's released under the GNU General Public License (GPL).

One important thing to note is that even if your content or software is openly available or free to use, it doesn't mean it is Open Source. Projects are only Open Source if it has an OSI-approved license. If you're unsure, consult with a legal advisor.

How does Transifex assure translation quality?

Transifex provides tools that help your translations deliver the best translations possible. To name a few:

Beyond tools, it's important work with qualified translators and communicate clearly with them about the context of your content.

Can I translate directly from my database?

No, there's currently no way to translate data directly from a database.

You'll need to extract strings from your database (e.g. by running a script) and put them into a localization file using a tool like gettext. You can then upload these files to Transifex and when the translations are finished, download the files and reimport them into your database.

Does Transifex support Right-To-Left (RTL) languages?

Yes! When translating to a RTL language such as Arabic or Hebrew, the Editor will automatically switch the input box to RTL for you. You can override this and use LTR by clicking RTL in the translation box.

Managing Projects

During which phase of development should I begin localizing?

This topic is a matter of preference, but we suggest keeping the following in mind:

Most software products are distributed incrementally in releases, with release dates and upcoming features announced in advance. Before the release, developers make sure the product is bug-free and well documented. And if the product is to be offered in other languages, teams will announce a ‘string freeze' on the product.

For developers, this means they can no longer change the code in a way that affects the source strings (bug fixes and improvements, however, are acceptable). For translators, the string freeze provides them adequate time to work.

When the release day arrives, developers get the translations for their target languages, compile them into the product and release it.

Effectively using branches

  1. Let's say you have a new feature that is under development in a separate branch. When it's ready, it is merged with the master branch and deployed. After the launch, you can push your resources to Transifex and when the translations are completed, pull them and deploy. That way, you'll only need to use a single resource for that feature in Transifex.

  2. If you want to deploy a new feature with completed translations, you should push all resources to Transifex. When the development is done and the translations are 100% completed, you can pull them from Transifex, merge both the code and translations into your master branch and go live!

You may also find this integration guide with GitHub quite helpful.

How do I add my own language?

CHECK FOR EXISTING SUPPORT

Transifex identifies more than 290 languages and associates them with a locale code. These languages adhere to the ISO 639-1 standard of language names and locales. You might fallback to 639-2 or 639-3 if your language is not covered in 639-1. For a full list of supported languages, please refer to our Languages section.

If your language isn't in the Languages page and your files appear in a shortened version like ‘xx_YY', then you can help us providing the necessary information in order to add your language into Transifex.

SHORT VERSION

Check the Unicode standard for Language Plural Rules and check that the rules for your language are correct. If so, let us know. Otherwise, try to find an authoritative source for the correct data and point us to that.

LONGER VERSION

Each language available in Transifex requires a set of information that are used along with the system. Let's take for example the Brazilian Portuguese language.

Each language Transifex requires a set of rules that are integrated into the system. For example, here are the rules for Brazilian Portuguese:

  • name: Portuguese (Brazillian)
  • code: pt_BR
  • code_aliases: pt-br pt-BR
  • nplurals: 2
  • pluralequation: (n > 1)
  • rule_zero: -
  • rule_one: n is one
  • rule_two: -
  • rule_few: -
  • rule_many: -
  • rule_other: -

In detail:

  • name is the language name in the 'Language (Nationality)' format. You can omit the nationality for general languages like 'pt'.
  • code is ISO 639-1 language code. You might fallback to 639-2 or 639-3 if your language is not covered in 639-1.
  • code_aliases are aliases separated with spaces (e.g pt-br pt-BR).
  • nplurals is the number of plurals allowed by the language. These are quite common in .po files.
  • pluralequation is an equation to distinguish the plural rules for the available nplurals. These are also quite common in .po files, too.

The rule fields MUST reflect the exact number of nplural set to the language. This means that if your language has nplural = 2, then only 2 of the rule fields must be filled in.

The rule_other is considered the general rule. All languages must this rule — even those that do not have plurals (such as Japanese). The rule_other is considered a general fallback, like an ‘else' statement for all other possible rules. If there is a case that doesn't fit into the pluralequation, rule_other will be used.

Examples can be found here. We usually get rule information from unicode.org.

When we add support for a language we follow the BCP47 standard. The multiple language locales are based on region subtags.

Is it possible to change my project's source language?

No, this isn't supported. If you need to change your source language, create a new project with the desired source language.

How do I delete a project if I sign in using Google, GitHub, or LinkedIn?

Before you can delete a project, you'll need to set a password for your account. You can do this by clicking the Forgot password link on the Signin page and completing the password reset, or by contacting us.

Is it possible to edit source strings directly in Transifex?

Unfortunately, you can't edit your source strings online because we use them to assure its uniqueness in our databases.

As a workaround, you can add a new target language as an intermediary and make your edits in that language. For example, if your source language is English (en), add English (United Kingdom) (en_GB), then use your edited strings as the "translation" for English (UK). When you're done with the edits, download/pull the "translations" from Transifex, delete the existing online content and upload/push the "translations" back to Transifex as English (en). From there, you can translate the strings to your target languages.

How can I create a new version of strings based on the current source file?

You have a master source file which you want to translate into multiple languages. However you also want to create a new form of English (based on the tone or the different levels of formality) that is not currently available. So, you want to create a new source file, based on the master one, using just Transifex.

All you need to do is to follow the steps below:

  1. Upload your master source file on Transifex.

  2. Add all the desired translation languages to your project in order to translate your content.

  3. Use one of the supported English language codes (en_US or en_GB or en_GR etc..) as a target language by simply adding this to your project as well. Note that this language code will be related to the new form of English regardless geographical, political, or cultural criteria.

  4. Use Transifex to "translate" the master source file to your new version of English.

  5. When the above "translations" are completed, download the "translation" file from Transifex.

  6. Create a new project and under this, upload the new English file as a source file.

You can use Transifex Client or API in order to automate the above process.

What's the difference using a .po and .pot file as a source file?

With .pot files, translators will see the msgid value in the editor. Thus msgid must contain the string in the source language.

If you need to preserve the key defined by your developers for each entry, you can use .po files as your source file format. You'll need to generate the .po file form the .pot file in the source language of your project. Translators will see the msgstr value in the editor, so msgstr should contain the string in the source language. The msgid can be the the key of the entry.

Can I lock a string and prevent it from being translated?

Transifex supports two smart tags in the Editor which let you lock a string and prevent it from being translated. Only Admins and Project Maintainers can set them; here's how they work:

  • notranslate: When you tag a string with notranslate, the translator will only be able to copy the source string into the translation box.
  • locked: When you tag a string with locked, the translator can't make edits to translations in the translation box.​

Alternatively, you can stop a whole resource from accepting translations by doing the following:

  1. Select a project.
  2. Click on Resources.
  3. Click on the resource you want to lock.
  4. Hit Settings in the header.
  5. Uncheck the box next to "Your translators can translate resource strings" then hit Save settings.

Until you check the box again, this resource can't be translated into any languages.

As a final thing to note, whenever a translation is marked as reviewed, translators won't be able to edit the translation.

Translate

Do translators get paid by Transifex?

No, they don't get paid by Transifex. Professional translaotrs are paid by the company they work for.

How do I find a project to translate?

If you’re looking to translate a public project on Transifex, check out our Getting Started Guide for Translators.

If you’re looking to translate a private project, please contact the Project’s Maintainers and ask them to invite you to the team that’s translating the project.

Why was my language request for a project not accepted?

Requests to add a new language to a project are not always accepted. This is a decision made by the project's Maintainers and may have happened for a number of reasons. Here are some common ones:

  • A project maintainer decided to not support that language due to the lack of interest in the product from users who speak that language.
  • There were not enough translators who volunteered to translate the project to that language.
  • Another variant of that language is already in the project. In this case, a project maintainer might want to avoid translating the project to two similar languages, e.g. Danish and Danish (Denmark).

If you would still like to request a language be added, or better understand why the request was not accepted, please message the Project Maintainer or Organization Administrator directly.

What kind of notifications can I get for the projects I translate?

Transifex lets you watch (follow) projects you're working on and get notified whenever one of these events happen:

  • A new source file is added.
  • An existing source file has been updated.
  • A source file has been deleted.

To watch a project, select it from your dashboard and click the Watch icon in the header, above the Translate or Live button.

Can I use a language that is different from the source language as an intermediary when translating?

Yes, you can. To see how, please refer to our article on tools in the Editor.

Why is the Web Editor showing an error about the percentage sign (%)?

EXPLANATION

If you try to translate it in a target language you may get a message in Transifex's Web Editor that states:

Error: The expression "% o" is not present in the original phrase.

The pattern that triggers this message is a percentage sign followed by a whitespace and a letter that is different from the one in the source string.

Let's say you have a source string that is "99% done". Why does the editor think that the phrase is something that must be present in the translation?

The "%" symbol has a double usage. It can work as a variable substitution specifier or it can be a percentage.

In some file formats, a space between "%" and a valid format specifier does not cancel the variable place holder. That means that the phrase "99% done" is identical to "99%done".

In the first case "%" is used literally whereas in the second case it is used as a placeholder (%d). Unfortunately, there's no way to tell which is the case so it is always considered a placeholder. This is a known issue with formats specifiers in many programming languages.

A placeholder should preserved in the translation as is. So, since the phrase "% d" is considered to be a placeholder this is why the Web Editor complains and tries to tell you that you need to preserve it in order your translation to be correct.

SOLUTIONS for Administrators

There are three solutions to this error:

  1. If you're an Administrator, you can change the translation check "Variable substitution specifiers (like "%s") are preserved in the translations." to act as a Warning. From the Settings tab on the Dashboard → Translation checks. By doing so, you will be able to save the translation. If you use a PO file keep in mind that you are not able to disable that check if the string in your source file is flagged as "#, python-format".

  2. If you want to use the "%" literally as a percentage, you can explicitly escape it. That said, you just need to precede it with another percentage symbol in the source file.

    Example:

    "99%% done."

    Doing so the editor won't complain about the expression "% d", it will only complain if the expression "%%" is not present in the translation. Your framework probably supports "%" escaping.

  3. Finally, the last solution will let you use the "%" both as a placeholder and a literal symbol as desired each time. Additionally, the functionality of the translation check for the placeholder will not be affected. So it's a good solution regarding every aspect.

    You can try to modify the string in your source file with the following way:

    "%s done."" % "99%""

Does Transifex have a spell checker?

Since all modern web browsers and operating systems have built-in spell checkers, we've left this functionality to them.

To add spell checking for different langauges, please see the documention pages for Chrome, Firefox, and Internet Explorer.

Are there any auxiliary tools in the Web Editor?

Transifex's Web Editor is a full-featured work environment for translators which provides more than just a place to submit translations.

With the Editor, you can:

    * Search for specific source strings across all project files by using filters
    * Some of the many filters include: searching for words (in the source language or in translations), if they are translated/reviewed or not,  date translated/reviewed, key, comments, tags, translator and so many others!
    * Provide context to translators like links, screenshots, or other helpful material using the "Instructions" field or the "Comments" section
    * You can also mention them using the @ keyword which will trigger a notification to be sent to them.
    * Mark source strings using one or more tags (keywords)
    * You can use them to group together strings by relevance
    * Assign the translation of specific strings to users, e.g. "@John"
    * Assign priority on specific strings, e.g. "important"
    * Mark erroneous source strings, e.g. "typos", request for help on specific strings for a language, e.g. "help@fr".
    * Access a proof reading screen
    * Batch edit a group of strings
    * Make suggestions for a translation
    * See the translation history of a string
    * See the differences of past translations
    * Use the suggestions of the Glossary
    * Use the suggestions of the Translation Memory
    * Translate viewing another language than the source language.
    * Use multiple shortcuts.
    * Use Machine Translation.
    * Report issues for a string in a respective section.
    * See details about the source string concerning the original file such as key, size in words, occurrences describing where it appears, context etc.

  And many other things! [Master the Web Editor Tutorial!](/translation/translating-with-the-web-editor/)

Collaborate

How do I contact other users in Transifex?

There are a number of ways you can reach other users in Transifex:

  • Use the messaging system to send a message directly to another user. To send a message, click on your user profile in the main navigation, then select Messages from the dropdown. In the header, click Compose. Enter the Transifex username of the person you want to message, add a subject and message, and then hit Send message.
  • Start a team discussion and message everyone on a team. To learn how, please see our article on Announcements and Discussions.
  • @mention a user in a comment in the Editor. To learn more, refer to this article.

When do I receive notifications for Team Discussions?

Team discussions is a feature that lets you communicate with other members of a team. It's a forum for a team's activities and conversations. You can find discussions by going to the "Teams" tab of your Dashboard and clicking the speech bubble icon to the right of a team's name.

You will receive notifications about discussions in the following situations:

  • When you participate in a team discussion that is not assigned to a specific language ("All languages" is the default selection), you will receive notifications for every new post after your initial post.
  • When a team discussion is assigned to a language you are involved with, you'll receive notifications if you are a Coordinator, Reviewer, or Translator, regardless of whether you have participated in the discussions before. Team Managers won't receive notifications.

Please note: there's no option to disable notifications for the second scenario mentioned above. This is requested by the Team Managers to ensure that everyone involved is receiving the proper notifications.

How can I find strings with comments in the Editor?

There are several ways to find strings with comments in the Editor:

  • To find all the strings that have at least one comment, use the Comment filter followed by *.

  • To find a specific comment, use the Comment filter followed by a keyword or phrase in the comment. For example, "Comment: context".

  • To find all the strings that include comments that have been marked as issues, use the Issue filter and select the "yes" option.

Can a translator be assigned specific strings to translate?

By default, a translator can translate any unlocked string in a resource they have access to (see how to lock strings).

If you want a translator to work on a specific set of strings, use the batch edit mode to tag a group of strings with the name of the translator. Each translator can then find the strings they should work on by filtering for them, using the Tag filter and their name, e.g. TAG: John.

Crowdsourcing translations: preferred by whom and why?

Crowdsourcing translations is a solution mostly preferred by:

  • Open Source projects, where the translators are volunteers who want to see their favorite projects localized to their own languages.

  • Commercial products/services, like Waze or Disqus, that want to engage their community and let them handle the localization of their projects.

In both cases, you need an enthusiastic community in order for your crowdsourcing efforts to be successful.

What are the best crowdsourcing practices for translations?

You may have a community of translators or people willing to help manage the translations of your project, but you'd like to regulate the entire process.

Ideally, your translators will suggest translations and the "best" version is picked rather that having everyone translating the content directly.

Each string in Transifex has three states:

  • Untranslated: Translators (and reviewers) can translate it or suggest a phrase for translation.

  • Translated: Translators (and reviewers) can modify the translation or suggest an alternative translation. Reviewers can then mark the phrase as Reviewed.

  • Reviewed: The phrase is 'locked' (only reviewers can modify it). Translators can only add suggestions as comments and vote on suggestions.

With that being said, you can have as many translators as you would like, but the reviewers/proofreaders should be carefully selected. Each language will at least one Language Coordinator who can approve new members to join as translators. Translators can then directly translate, suggest translations and vote on them with ease.

If you would like to have more control over the translations, you can lock the source strings by assigning to them the smart tag "locked". This will prevent users from providing translations inside the translation area. You can guide them to leave their suggestions inside the Comments section in the Web Editor and vote the translation that they think is the best one. After that you can unlock the translation area and allow reviewers pick and submit the best / most voted translation.

When your translations are done, you can mark all strings as "Reviewed" so that only your trusted reviewers can modify them.

Accounts and Billing

How do I delete my account?

To delete your account, click on your profile icon at the top right corner of Transifex. From the dropdown menu, select User settings. Then scroll to the bottom of the page and click Deactivate my account.

WARNING: Once you delete your account, it cannot be undone!

Can I change my username?

For technical reasons, usernames cannot be changed. One workaround is to delete your current account (see question above) and sign up for another account using the same email address.

NOTE: None of the translation history and statistics from your old account will be transferred to the new account. You'll also need to rejoin or be re-invited to any teams which you were a part of before.

Why is there no password for my account?

If you signed up for Transifex using one of the social login options – GitHub, for example – then you won't have a password for your account.

To set a password for your account, click Forgot password on the [www.transifex.com/siginin] page and complete the password reset process or contact our support team.

I just signed up for Transifex, but I'm having trouble logging in. What should I do?

If this is the first time that you're trying to log in to Transifex, double check that you've activated your account by clicking the link in the confirmation email.

If you see a message that reads "The username and password are already in use" when you try to create a new account and at the same time see "Your email is not registered" when you try to recover your password, please check your inbox and spam folder for the activation email.

You can request a new activation link by visiting the Reactivate page and resubmitting the email address you used to sign up for your Transifex account.

How is my word count calculated?

Your word count is the total number of words in your projects, minus your source words. If you're an Organization Administrator, you can see a detailed breakdown of your word count from your organization's subscription page.

Each project's word count is calculated using the formula below. However, this does not apply to projects using Chinese, Korean, or Japanese as the source language.

Words = Source Words × Number of Target Languages

So if you have 40,000 Russian source words which you are translating into 5 languages, your word count is 40,000 × 5 = 200,000.

Every sequence of characters and numbers between whitespace (spaces, tabs and newlines) is considered a word. In the phrase below, the word count is 8.

Today I've read that Mars has 2 %(moon)s.

For projects with Chinese, Japanese, or Korean as a source language

A slightly different word count formula is used:

Words = Source Language Characters × 50% × Number of Target Languages

The word count is calculated by multiplying half the number of characters in your source language by the number of languages you're translating to.

For example, if you have 40,00 Japanese characters which you are translating into 5 languages, your word count is 40,000 / 2 × 5 = 100,000.

If you happen to have English characters within a Japanese, Chinese or Korean string, any sequence of characters between whitespaces that can be converted to ASCII (digits included) is considered a word and is counted as one in the final counter.

For example, the word count of the following phrase is 9 (5 characters and 4 words).

今日 sunny です。 outdoors 123 %(day)s

What happens when I am on the Open Source plan and I want a private project?

If you'd like to create a private project, you'll need to upgrade to one of our paid plans. Your Open Source words will not count against your plan's word limits as long as it's an Open Source project with an OSI-approved license.