Localisation Platform Research Summary 2022/Transifex
Initial Signup / Onboarding
- Sign up is possible via GitHub, Gmail etc
- Free for open source projects
- Create an organizations for your work and add projects under that
Adding project
- When adding a new project, you select the target languages to which the project can be translated.
- Following types of projects supported:
- File based: Upload a language file (eg. po, yml, xliff) with your contents
- Native: Add an SDK to your code, serve translations Over The Air
- Live: Set your website URL, add a snippet, and let Transifex auto-detect strings: Transifex Live is not available for organizations in Open Source plan.
- Requires installation of a Transifex integration on GitHub and then the maintainer can choose and decide which project to provide access to.
- Integrations for BitBucket is also available
- Under Integrations for the project/organization, add the GitHub integration.
- Link the repository and enter the YAML configuration. See related documentation here.
- It is possible to set a source language when creating the language
- It is possible to specify the language_mapping in case the language codes don’t match
- Specify when and how the translations (PR or direct commit) should be exported out. These settings are per language:
- 100% translated
- 100% translated or updated (for 100% translated)
- 100% reviewed
- 100% proofread (Premium plan only)
- ⚠ Lot of problems when importing the project via GitHub. (See changes here: https://github.com/Abijeet/ext-translate-i18n/pull/2/files)
- Empty msgid causing issues.
- The entry with msgid `Supported languages - Summary` includes an empty msgstr. Provide a value and try again
- The languages with translations that were already present were also imported.
- Marked the project as an open source project. Transifex verified this automatically from the GitHub URL given.
Pricing
Pricing is based on the number of words a project and features (Basic, Premium) has. See more info here: Transifex Pricing | Plans that scale with your localization needs
Project Management
Settings
General
Manage project name, description, logo, homepage and translation instructions.
Maintainers
The user who created the project is an Administrator. Managers can add collaborators who can be given the following roles:
- Maintainer
- Team manager
- Language Coordinator
- Reviewer
- Translator
More information is available here: Understanding User Roles in Transifex
Workflow
It's possible to customize the translation and export workflow for a project.
- Pre-translation stage
- Fillup translations via translation memory before handling it out to translators.
- (PREMIUM) Also automatically use machine translation whenever a message is added or updated
- Smart tags - Markup strings in tags to limit and lock translations. See: Preventing Translation Edits | Transifex Documentation
- Translation help
- Allow normal translations
- Crowdsource translations - Enabling this option lets your community translators suggest translations and vote on the ones they think are best. For each phrase, the suggestion with the most votes will be automatically used as the translation. To ensure quality, you can require a minimum number of votes before a suggestion is used.
- Allow Translation Memory suggestions from similar locales in the editor
- Quality Assurance - Configure what steps are involved here:
- Review - Always enabled
- (PREMIUM) Proofread - Additional step after Review.
- (PREMIUM) Check localized content - Get all errors or warnings in this project's localized content based on your translation check settings.
Webhooks
Transifex lets you specify a webhook and get notified whenever a target language of a resource has fully been translated, reviewed or proofread, as well as when translation fill ups are done. This way, you can pull translations as soon as they are ready without having to constantly check Transifex for updates. Webhooks can be added for the following events,
- Translation completed
- Review completed
- Fill-up completed
- Translations updated
Documentation: https://developers.transifex.com/docs/webhooks
Integration
Integrations are available with:
- GitHub - Automatically update files in Transifex when a change to a source translation file is committed to GitHub, and vice versa.
- BitBucket - Seamlessly integrate your Bitbucket repository with your projects to sync localization efforts across platforms.
- Slack - Localization teams can now interact with each other and monitor the progress of your localization projects directly from your communication center: Slack. More details here: Slack Integration - Transifex
- Zendesk - Easily sync content between Zendesk and your projects in Transifex, without leaving the Transifex interface. More details here: Zendesk Integration - Transifex
And others.
The GitHub integration requires authorization from GitHub and can be used to pull and push messages from GitHub into the project. Integration with GitHub itself was simple but getting Gettext files to work properly took quite some time. See commits: https://github.com/Abijeet/ext-translate-i18n/pull/2/files
Timeline
A logging of all activity related to the project. Eg:
- Administrator added / removed
- Collaborator added / removed
- Language added / removed
- Task assigned / completed etc
Activities can be filtered within a time period.
Imports & Exports
Imports happen via a webhook and strings are available in Transifex almost immediately after a commit is made in GitHub / BitBucket. Exports can be configured to happen based on when certain events occur,
- A language is translated 100%
- 100% translated or updated
- 100% reviewed
- 100% proofread (PREMIUM)
One commit per language will be made. The system can be configured to create a PR or commit directly. Exports can also be pushed out manually with a threshold percentage.
File formats
Transifex supports over 46 localization file formats. It supports plurals for all file formats that support them, e.g. Android, Apple strings, Apple stringsdict, Gettext, Java, JSON with ICU plurals, Structured JSON, XLIFF and YAML. Source: Introduction to Localization File Formats | Transifex Documentation
Translation checks
Administrators can configure translation checks based on the FFS. Administrators can specify whether a check failing should be turned off, or display a warning or error. See screen below: There is support for a large number of file formats. Premium accounts are also allowed to add checks for custom variables.
Related documentation: Setting Translation Checks | Transifex Documentation
Machine Translation Settings
It is possible to configure a machine translation service. The following services are available:
- Amazon Translate
- Google Translate
- DeepL
- KantanMT
- Microsoft Translator Text API
- Microsoft Translator (deprecated)
API Key and other configuration etc can be supplied via the UI.
Configuring a glossary
Glossaries can be added using a CSV file via the organization setting and can then be associated with multiple translation projects. Inside the translation editor, only words that exactly match a glossary term will be highlighted. Relevant documentation:
- Associating a Project to a Glossary | Transifex Documentation
- Uploading a Glossary | Transifex Documentation
Editor settings
It is possible to configure discussion / issue categories on an organization level. These would then appear in the editor when users are creating issues. Other Tools in the Editor | Transifex Documentation
SAML Single Sign-On
Enterprise plan allows configuration of a single sign on. See related documentation: SAML Single Sign-On (SSO) | Transifex Documentation
Translator
The dashboard for the project displays languages that are available for translation. Translators can select a language for translation.
The translation window
The translation window has a three pane layout:
- Left pane: List of messages to be translated and filters.
- Center pane: Actual editor to translate a message with some info about the key, number of words, context etc.
- Right pane: Contain translation aids: Suggestions, History, Glossary, Comments, Issues
If a project has multiple files for translation it can be chosen in the translation window. It’s easy to change the target language being translated to.
Translation filtering
A comprehensive filter exists in the translation window itself through which users can filter the messages they want to translate. Following filters are available via dropdowns:
- Source / translation text: contains, does not contain
- Status: Translated (yes / no), Reviewed (yes / no)
- Custom tags
- Users: Translated / Reviewed by
- Date: Translated before, after, reviewed before, after. Based on source updated
- Label: Open / Resolved Issues, Translation checks, Pluralized, Screenshot
- Others: comments, context, developer notes, instructions, based on key, user suggestions
The filters update the URI enabling users to bookmark the URL. Similar filtering is also available across projects in the organization.
Translation editor
The translation editor displays the source and the translation string. Additionally it has,
- Developer notes
- Source / translation string length
- UI to enter special characters
- Mark as reviewed or suggest a translation
- Character limit
Edit context / Message documentation
In the translation editor it is possible to add context for a message and specify a character limit. This window also allows translators to add tags to strings.
Translation aids
Following translation aids are available:
- Suggestions: From the translation memory
- History: History of changes made to the source and translation
- Glossary: If a glossary is configured, and the source contains strings present in the glossary, then the terms appear in this section
- Comments: Comments from translators regarding the string
Issues
Translators can create issues under categories specified by the organization. Issues also have priorities. These will be displayed to all translators based on which they can decide if they want to translate the string.
Editor settings
Various settings to customize the editor preferences:
- Dark mode
- Increase font size
- Character counters
- Customizing the message listing
- Change the source string language. It's possible to use another language as the source language.
Mobile interface
While the page appears to resize as per screen size, the font appears to be too small for mobile screens. The screen would scale well to large screens.
Notifications
Available via email and a Notification page. User can choose to receive notifications for the following high level categories:
- Messages - Get notified when you receive new project announcements, team discussions, and direct messages.
- Project and Language Activity - Get notified about project language requests, resources updates, and more.
- Team and Collaborators Activity - Get notified about requests to join a project and team changes in user role.
- Orders - Get updates about your translation orders
API
An API is available to interact with your organization: Introduction
Transifex Native
Transifex Native is a collection of tools that allow for easy localization of your applications. Install the provided SDK, push or pull content for localization directly with Transifex, without the need for a file. Source: https://developers.transifex.com/docs/native
Key Highlights
- Supports project glossary
- Easy to add projects to the system via integrations for GitHub and Bitbucket. No interaction with the Transifex team is needed.
- Discussions / Issues related to a message appear in the Translation interface. Users can create issues under categories that can be resolved by other users.
- Imports are almost immediate via webhooks, exports can be triggered based on events or manually based on thresholds.
- Support for a large number of file formats include Qt translation files.
- Translation of multiple plural forms is easier, and there is no possibility of translator’s making mistakes.
- The Translation screen makes good use of a large screen. Dividing information into a 3 pane window.
- [PREMIUM] Allows editing the source string directly in Transifex
- Possible to add collaborators to the projects with different roles to manage it.
- The timeline lists all the changes associated with the project.
- The translation workflow is configurable - Can add proofread step, autofill with machine translation or translation memory.
- Lots of filters for messages when translating messages.
Experience Review
As a translator
What is good
- The Translation screen makes good use of a large screen. Dividing information into a 3 pane window.
- Easier to translate multiple plural forms.
- It’s clear as a translator what languages are available for translation.
- Discussions or issues from other translators about a message are available on the translation screen.
- Translators can “find and replace” across translations from the translation editor window.
- Extensive options to filter messages on the translation window.
- Ability to add special characters to the translation editor via a tool on the translation window.
- Possible to select multiple strings to then make modifications to them,
- Instructions for translations
- Character limits
- Find & Replace
- Add a tag
- Mark translation as reviewed or unreviewed
- Certain items in the translation editor are configurable.
- Raw editing mode
- Increase font sizes
- Display spaces etc..
- Dark mode!
- For Gettext, the developer notes are displayed, these are comments on top of the strings.
- Easy to switch between languages to translate
- It’s possible to add tags for strings and then filter using those tags. This allows translators to organize strings. Tags are shared.
Hurdles
- The various columns of the translation window are not resizable.
- The translation editor column is rather small.
- When translating plural forms, even if a single word changes, entire translation has to be repeated.
As a project maintainer / developer
What is good
- Adding and configuration of a new project is fairly simple and does not require any Transifex staff to be involved.
- Clear and straightforward process for sending your open source project for review
- Wide range of integrations available.
- Add collaborators and provide fine grained responsibilities.
- Some sensible insertables / validators are pre-configured based on the file format system.
- Can track what language translations can be made to.
- Very easy for an open source project to use Transifex
- Allows creation of categories for issues
- Each organization / project can configure a translation service to use.
- Can customize translation checks for each file format system to be an error, warning or be ignored.
- Few other things,
- Integrations - APIs, Webhooks
- Notifications
Hurdles
- Not easy to identify who has been translating content and revert their translations
- Custom validators require a premium account
- The 3 columns on the translation editor window are not resizeable.