A user can have one of six roles:
Each role gives her different permissions in the organization. You can read more about the roles and their permissions, here.
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.
As long as your source file is accessible from a public URL, such as this raw file on GitHub, Transifex will periodically check the URL for updates. You can also use a file from a private repo in Github as long as the URL has the respective token that Github provides. If there are updates in the file, Transifex automatically fetches the file and updates your content.
You can find this option under Project Details → Resources → Auto-update Resources.
It is important to note this solution depends on Transifex polling for updates. As a result, there will a delay between the moment you update your file and Transifex picking up the changes. If you would rather update your content in Transifex as soon as your files change, use the client or API instead.
Here’s how differences in the content will be handled:
However, old translations are kept in the project's Translation Memory.
If you want to disable the auto-update feature for a resource then you should remove the URL. After doing so, you are going to receive three warning e-mails letting you know that the auto-update will fail. This is normal since the task that runs in the background checks three times for the URL and it notifies the user that something is going wrong. These notification e-mails are useful in cases where the URL is not working due to a variety of reasons and the user needs to know about the upcoming outcomes.
Transifex supports two special "smart" tags: the "notranslate" tag and the "locked" log. Only Project Maintainers can set them and here's how they work:
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.
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.
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.
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. 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.
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.
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: -
nameis the language name in the 'Language (Nationality)' format. You can omit the nationality for general languages like 'pt'.
codeis ISO 639-1 language code. You might fallback to 639-2 or 639-3 if your language is not covered in 639-1.
code_aliasesare aliases separated with spaces (e.g pt-br pt-BR).
npluralsis the number of plurals allowed by the language. These are quite common in .po files.
pluralequationis 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.
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
rule_other will be used.
No, this functionality is not supported. If for any reason you need another source language, you should create a new project with the desired source language.
If you use .pot files, translators will see the
msgid value in the editor. Therefore,
msgid must contain the string in the source language.
If you need to preserve the key that's defined by your developers for each entry, you can use .po files as source files. You will need to generate the .po file from the .pot file in the source language of your project. Translators will see the
msgstr value in the editor. So
msgstr must contain the string in the source language. The
msgid can be the the key of the entry.
Transifex has built-in quality assurance tools to help your translators deliver the best possible results.
Firstly, Transifex has a set of customizable translation checks available for every file format. These checks follow the rules stated in the official documentation of each format. You can read more about them in our blog.
Additionally, our Web Editor offers collaborative tools for translators to report issues on translations, ask questions, or use suggestions from the Translation Memory in order to keep the translations consistent throughout the project. You can also attach screenshots to provide extra context for translators.
Last but not least, there is the role of the Reviewer. This person proofreads the translations, and once approved, translators are unable to edit the string.
A common dilemma for organizations with lots of projects is how to handle the ones which are no longer actively maintained. By deleting these projects, all of their settings are gone, forever. Just imagine having to re-configure automatic updates for hundreds of source files. But, by keeping them, these projects add to the organization's overall word count.
Instead of deleting an inactive project, organization Administrators can archive it which results in the following actions:
You can archive or restore a project by going to Dashboard → Settings → Archive:
Transifex lets you preview the word count reduction if you archive a project:
Open source projects do not contribute to the overall word count of an organization. This means archiving an open source will put it into "freeze" mode, but will not affect the total word count.
You can directly send a message to any user in Transifex through the messaging system, all you need is the recipient's username.
You can find your Messages Folder within the dropdown menu by clicking your username, located in the top right corner of the Transifex interface. At this time, you can only send a message to a single recipient.
Team Discussions is, in essence, a forum for project activity which quickly and easily allows team members to brainstorm. When a thread is updated the rest of the team will be notified by email. Discussions can be created and viewed by going to the Teams tab and clicking on the speech bubble icon next to the desired team.
Last but not least, in the Web Editor You'll find a Comments tab at the bottom of each string which will allow you to ask questions, discuss the translation, and report an issue. If you would like a specific person to see a comment, simply use the "@" to mention them in a comment using their Transifex username and they will be notified by email (e.g. @username).
If the user has a Transifex account:
If the user doesn’t have a Transifex account:
In both cases, the user will be assigned a role. They will see the organization in their Dashboard and be able to start contributing.
If your project is private, you will need to manually add or invite each person.
A source language file is essentially a collection of strings. When you push or update a resource, Transifex finds the subset of common source strings in both files and keeps all translations preserved.
Source strings that are only in the old resource won't appear in your updated resource, but:
All translations ever submitted to a project in Transifex are saved in the project’s Translation Memory (this happens automatically as soon as they’re submitted).
Old translations are compared to the new strings. If there is a high-enough similarity between the old and new strings, Transifex doesn't delete the old string. Instead, it with update to a new version of it. As a result your Translation Memory will find the existing translations and presents them as suggestions in the Web Editor.
So, when Transifex tries to insert a new source string into a resource, one of the following outcomes takes place:
New strings are added to Transifex with no available translations or suggestions.
Modified strings as treated as new strings and added to Transifex as well.
If the Translation Memory match is not 100%, but still high enough, it will use all similar translations as suggestions for that specific string in the Web Editor. This means if existing translations are still appropriate, translators will be able to use them with a single mouse-click.
Strings from the old resource that don't appear in the new source file will be removed from your project (along with their translations).
Remember, the Translation Memory will keep the old pairs of source strings and their translations for future use.
Identical strings between the old and new source file will remain in your project along with their existing translations.
If a 100% match from the Translation Memory occurs and if the setting "Fill up resources from TM" is enabled in the project settings (Manage tab), Transifex will automatically fill in all the the existing translations in all the available languages.
Because all modern web browsers and operating systems have built in spell checkers, we decided to leave this functionality to them.
To delete a project, you will first need to set a password for you account.
This can be done by either contacting our support center or by clicking on “Forgot you password” link that appears on the login form and completing the password reset process.
At the moment, Transifex doesn't have professional translators available on-demand. Companies that use Transifex either work with third-party Localization Service Providers, hire freelancers, translate in-house, or crowdsource translations through their community. You also have the option of ordering translations from our partners, Gengo and TextMaster, directly within the Transifex platform. Finished translations are delivered back to you in Transifex.
Some translators sign up because they're translating content for a client that uses Transifex. Other translators sign up because they love a public or open source project and just want to contribute.
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.
In both cases, you need an enthusiastic community in order for your crowdsourcing efforts to be successful.
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.
You can start a project by marking all strings as "Reviewed" so that only your trusted reviewers can modify them. All translators can then suggest and vote on the suggestions using the Comments section in the Web Editor. The reviewers can then pick and submit the best / most voted on translation.
No. They do not get paid by Transifex, but by the company they are working for.
If you are looking for an open project, you can visit the explore pages and browse or search for a project there. As soon as you find a project, click on it, and you will be redirected to all of the supported languages for the project.
If the language you want to translate is in this list, all you have to do is click on it. From there, you'll be redirected to the language team page, where there’s a “Join team” button.
If the language is not in the list, then you can request it from the maintainers of the project, by clicking the button “Request language”. If the language is not supported by Transifex you can request it by e-mailing our support center.
If the project is not open source, you should contact the maintainers and tell them to add you as a translator to the project.
Yes, in the editor there is an option for displaying a secondary already-translated language as the source language.
For example, if a project is being translated to both Portuguese and Brazilian Portuguese, it would be helpful to have the Portuguese translations displayed as the source language for the Brazilian Portuguese translations.
By hovering your cursor over the Portuguese translation, you can still see the original English string. And if there’s no Portuguese translation for a string, English is shown instead.
To add a secondary language, click the gear icon on the top right corner of the editor and choose to have a secondary language displayed instead of the source language.
No, unfortunately there's currently no way to translate data from a database.
In most cases you must find a way to extract the strings from the database (e.g running a script that does that) and putting them in a file using a tool like gettext to create proper files for localization.
You can then upload these files to Transifex, and once the translations are finished, you can download the files and reimport them into your database.
Transifex's Web Editor's can help you rapidly accelerate the translation process.
In short 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!
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)
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
And many other things!
Transifex allows users to follow projects they help translate and receive email notifications, whenever:
You can find a link "Watch project" on the project's main page.
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.
There are three solutions to this error:
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".
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.
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.
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%""
Transifex counts the words across all your projects and sums them up. If you're an organization administrator, you can see a detailed breakdown of your word count under Dashboard → Manage → Billing.
The total word count is calculated by multiplying the number of words in your source language, by the number of languages Transifex hosts translations for. For example, consider the following scenario:
Total Word Count = 40,000 × 5 = 200,000
Every sequence of characters and numbers between whitespace (spaces, tabs and newlines) is considered a word. For example, the word count of the following phrase is 8.
Today I've read that Mars has 2 %(moon)s.
The total word count is calculated by multiplying half the number of symbols in your source language by the number of languages Transifex hosts translations for.
For example, consider the following scenario:
Total Word Count = (40,000 / 2) × 5 = 100,000
Sometimes, you might happen to have English characters within a Japanese, Chinese or Korean string. In such cases, any sequence of characters between whitespaces that can be converted to ASCII (digits included) is considered a word and as one in the final counter.
For example, the word count of the following phrase is 9 (5 characters and 4 words).
今日 sunny です。 outdoors １２３ %(day)s
To delete your account, click your username in the top left. From the dropdown, select "Account", then in the "Edit Profile" tab, scroll to the bottom of the page and click the "Deactivate my account".
**WARNING: This process cannot be undone!**
When a project is set to be public everyone can find your project on the Transifex website. It can also be found on Transifex’s Explore page. It is also indexed by Google and even non-Transifex users can see its public pages.
However, you will always be able to decide who can participate by assigning a role to a user, as well as who will have access the Web Editor for translating.
This is extremely important when you choose to crowdsource translations or for projects that need a large community for the translation process. It also requires a significant amount of effort to control the translator's activity and the translation quality. It is extremely easy to bring onboard translators since they can find the project and request to join a translation team.
When a project is set to be private, this means the project will be visible only by your Transifex team. Google will not index any of your pages and the project will not be found in Transifex’s Explore page.
This is the recommended solution for when you want to assure privacy and have absolute control over the complete development process. You will need to invite or manually add everyone who will participate in your Transifex project.
To continue using a our free open source plan, your project must be public and using the appropriate license type. If you would like to create a private project, you will need to upgrade to a paid plan to support the private project's word count.
No. For technical reasons, usernames cannot be changed.
A workaround is to delete your current account (see above question) and to sign up again in Transifex using the same e-mail address.
The history and statistics of the old user are not transfered to the newly created one and the process is irreversible.
We're proud to offer Transifex free to open source projects. An open source project is one licensed under an OSI-approved license, such as GPL or BSD, with publicly available source code.
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).
For projects marked as open source in Transifex, we request a link to your repository to verify its license. There needs to be clear legal text showing the license type of the material.
Please note, that if your content or software is openly available and/or free (eg. a blog or website), this does not necessarily make it an open source project. Only mark your project as open source if it has an OSI-approved license. If you're unsure, we suggest consulting with a legal advisor.
If you signed up for Transifex using one of the Social Login options, then there is no password stored for your account.
You can e-mail our support center and we will set a password for you. Clicking on “Forgot you password” link that appears on the login form and following the process you will also allow you to change your password.
If you signed up for Transifex, but when you try to login for the first time and the system does not accept your username or password, you need to double check that you have activated your account via our confirmation email.
Other symptoms can include: when you try to create a new account, it says "the username and password are already in use". When you try to recover your password, there is still a message that says that "your email is not registered".
To solve this, please check your inbox and spam folder for the activation email.
If would like us to resend it, visit the Reactivate page and resubmit the e-mail which you used to signed up with.