What Is Serge?

At its core, Serge is a command-line tool that can be either run manually on a developer's computer, or automatically (e.g. as a cron job) on a server, to achieve continuous localization integration. After you have it downloaded and installed, you can simply run it by saying `serge` in the command line, which will give you a quick help and a list of available commands.

All localization-related settings need to be described in configuration files. When run against a configuration file, Serge will perform one localization cycle, bring localized resources in sync with their source, generate new ones, and apply all known translations that came from translation files. It will handle synchronization with your version control system, automatically pulling and pushing changes, and will also synchronize with an external translation service.

Serge has a modular architecture and supports many file formats out of the box.

Serge is not only about replacing source text with translated one: it is a powerful text processing pipeline that ensures that the final result of its work can be used in your product without any further post-processing.

Why is it called so?

SERGE’ stands for ‘String Extraction and Resource Generation Engine’.

What problem does it solve?

When you decide to automate your localization process, you usually look at the automation APIs provided by a Translation Managemet System (TMS) of your choice, and start writing and maintaining your own integration between that TMS and your version control system (VCS). This last-mile integration is what Serge does for you, providing the following benefits:

  • Ease of maintenance. Instead of writing custom scripts, you are writing configuration files (once) and rarely have to touch them again.
  • No vendor lock-in. Having Serge between your source code and an external TMS system allows you to switch to another TMS anytime, keeping all your existing automation in place. Serge already supports several third-party TMS.
  • Security. You will never have to give external TMS access to your code repository, and third parties will not see your original source files. Serge creates intermediate translation files that contain only the translatable content. There's no way for an external vendor to break your resource files, and you never have to deal with any merge conflicts.
  • Flexibility. You can easily deal with logical projects spawning multiple repositories and file formats.
  • Advanced localization workflows. With Serge, many things that are usually hard to implement, are possible: multi-step localization with intermediate languages, simultaneous localization of multiple code branches, conditional file processing based on their contents, and so on.
  • Extensibility. With modular architecture, you're not limited to what one TMS has to offer; you can create custom parsers, synchronization plugins for other version control systems and TMS, while keeping the majority of your localization automation intact.