Localization Cycle

Localization cycle in Serge is a process of generating localized resources by getting source resources and applying all known translations to them (this is what serge localize does). On top of that, Serge performs all the necessary synchronization with version control system and translation service (this is what serge sync does).

The diagram below shows what steps are performed by Serge when you run serge sync or serge localize against a configuration file which describes your localization project:

serge sync performs a full localization+sync cycle:

  1. Pull source files from the remote development repository (serge pull)
  2. Pull translation files from external translation service (serge pull-ts)
  3. Perform an inner (local) localization cycle (serge localize):
    1. Parse specific localizable resource files from the local checkout, extract strings from there and put them into its own Translation Memory database
    2. Parse previously generated translation files and put new translations into TM database
    3. Generate/update translation files that can be further used in an offline or online translation environment
    4. Generate localized copies of source files based on existing translations
  4. Push translation files to an external translation service (serge push-ts)
  5. Push generated localized files back to the remote repository (serge push)

An additional step, serge clean-ts, is required after a sync cycle. This step deletes all unused translation interchange files. The reason it is done externally and not as a part of the main localize step is because it needs to run against all Serge configuration files, while localize can be performed partially, against specific configuration files, jobs or languages.

Intended use

serge sync command, followed by serge clean-ts, needs to run in an endless loop on a localization server.

localize command alone can be used on a local development machine for on-demand resource localization, localization project configuration, or testing your custom parsers.