Translation.io
Translation.io is a professional synchronization and collaboration platform that will assist your team in the translation of your Lingui application.
Website | GitHub | contact@translation.io
Features
Smooth Team Management
Invite collaborators using their email or username, and assign them a role and a target language. They will be brought on board and kept informed about any new activity in their language.
Learn more:
Elegant Translation Process
Our interface was designed to be the most ergonomic way to translate. It provides translation suggestions (from TM, Google Translate or DeepL), context, discussion and history.
Keyboard shortcuts allow translators to stay focused on their work, visual hints indicate when something went wrong, for example when an interpolated variable or HTML tag is missing.
Learn more:
Syntax Highlighting
Sometimes you have no choice but to confront your translators with HTML or interpolated variables. The problem is that translators do not necessarily know the meaning of these notations and may be tempted to translate them or may inadvertently alter them.
Hello {name}
should never be translated as Bonjour {nom}
, and several mechanisms are in place to ensure this, such as warnings and auto-completion:
Smart Plural Management
Lingui allows to write plurals using the ICU MessageFormat syntax that looks like this:
But you can't ask a translator to understand this syntax, and he or she would be tempted to translate one
or other
keywords in other languages, breaking your code at the same time.
That's why plural syntaxes are deconstructed to make translation easier, and then reconstructed in the local .po
files.
If the target language has more plural forms than the source language, examples are also provided to the translator, as it may be unclear which plural form the few
or other
keyword refers to in that specific target language (for instance, Czech has three plural forms).
Efficient Search
Our powerful search helps translators to maintain consistency of terms throughout their work. In addition, they are able to filter depending on a particular source file or context. To provide a more enjoyable experience, this lightning-fast search works without any page reloading.
Learn more:
Adaptive Workflows using Tags
Our interface is flexible enough to adapt to your own translation workflows. Add custom tags to your segments and you'll be directly able to filter them. Moreover, these tags will appear in the statistics page so you can use them for reporting.
Learn more:
Installation
Create your Lingui project
Create an account on Translation.io and create a new Lingui project.
Configure your application
Copy the .linguirc
configuration file that was generated for you to the root of your application.
The configuration file looks like this:
{
[...]
"format": "po",
"service": {
"name": "TranslationIO",
"apiKey": "abcdefghijklmnopqrstuvwxyz012345"
}
}
The synchronization will then be part of the extract
command.
Add the following scripts
Add these lines to your package.json
to make your life easier.
{
"scripts": {
"sync": "lingui extract --overwrite && lingui compile",
"sync_and_purge": "lingui extract --overwrite --clean && lingui compile"
}
}
Initialize your project
Initialize your project and upload your source text and potential existing translations with:
- npm
- Yarn
- pnpm
npm run sync
yarn sync
pnpm run sync
Usage
Sync
To send new translatable strings and get new translations from Translation.io, and at the same time generate the minified JavaScript catalog files, simply run:
- npm
- Yarn
- pnpm
npm run sync
yarn sync
pnpm run sync
Sync and Purge
If you need to remove unused strings from Translation.io, using the current branch as reference.
As the name says, this operation will also perform a sync at the same time.
Warning: all strings that are not present in the current local branch will be permanently deleted from Translation.io.
- npm
- Yarn
- pnpm
npm run sync_and_purge
yarn sync_and_purge
pnpm run sync_and_purge