Transifex Native overview
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.
In the graph you see that with Transifex Native, new code is released to your application, while localization work is done in parallel
With this solution Transifex serves a development environment where parallel development and multiple releases are the norm, perfectly matching the current development flow (Continuous Iteration/Continuous Development). Localization becomes a seamless part of the development cycle. Engineers have no delays or additional steps to manage localization. Transifex Native runs in parallel with minimal supervision.
Transifex Native, offers a workflow to handle the localization part of your code. There is no need for developers to deploy code just for localization purposes. Source strings get translated while development is under-way.
The core parts of Transifex Native include:
- Framework specific SDKs that follow a universal localization syntax.
- Push and pull content between your development or production environment and Transifex.
- Unified content management in Transifex, forget about framework specific file formats; e.g. PO.
- Over the air (OTA) translation delivery using a Content Delivery Service (CDS).
In the core of Transifex Native lies an SDK architecture that applies to multiple frameworks. The goal of this architecture is to provide a common way of managing content in order to make it global. This occurs by following a unified syntax and formatting; which is the ICU syntax. By following ICU, Transifex Native homogenizes localization support across all supported frameworks. Using the Transifex Native syntax a set of metadata can be added to each phrase as helpers for the team localizing the application; e.g. character limitation for a phrase, tags for categorizing a phrase or additional context and instructions.
Transifex Native offers options to send new content from a development environment, or a developer's workstation, directly to a Transifex project. This way the content is instantly available for localization, leveraging all of the Transifex provided functionality.
When global content is available, it can be pulled back from Transifex to the application that uses it, either via a developer's workstation or directly on production.
All content added in a Transifex project using Transifex Native, is appended to a group of phrases for that project; a file of phrases is not required. The benefits stemming from this implementation include:
- Ability for multiple developers adding content in parallel, e.g. while working on different branches.
- Ability for multiple applications to add content in parallel to the same localization project, to leverage the same localization processes for the same strings, automated processes (e.g. Translation Memory fill-up), etc.
Transifex Native retrieves translated content via an intermediate service, called the Content Delivery Service (CDS). It works similarly to a CDN and serves all translations from a cache, so that the retrieval is fast. This service works as the final place where the latest translations are stored. It is responsible for fetching the latest global content from Transifex and to make that content available to your application once it is requested.
This Content Delivery Service is currently hosted by Transifex as part of the solution. In the near future an option to self-host this CDS server will be available, to further optimize translations delivery.
- In a Django web application
The toolkit is fully integrated in the Django framework. It contains utilities to map your source strings for translation, retrieve the translated strings and display translation in templates or views. It also provides special Command Line Interface (CLI) commands for pushing to Transifex and even migrating your existing template code to the new syntax.
- In a Python application
In other python applications or frameworks you can use the available Python library. The building blocks are there: you can push your source strings to Transifex and retrieve translations over the air in your application.
- Other frameworks, what comes next?
Transifex Native will be coming to more frameworks based on expressed interest and evaluation. Additionally, Transifex Native is developed as an open source project so that more people can contribute or expand the solution. We have setup a Native specifications document as a blueprint for building a Transifex Native SDK on new frameworks.