Organizing Your Data

Serge is expected to run against configuration files, data directories and a database (typically an SQLite database), located on your localization server. Though it's totally up to you how to organize your data, we will follow a consistent structure in various parts of Serge documentation, that we'll call canonical. Here it is:

Canonical directory structure
/var /serge /data /configs /db /ts /vcs

Serge doesn't create any top-level directory structure for you, so you will need to create it by yourself.


This is the root directory for all Serge-related data. Having a single directory for all localization-related files will help you keep things clean and tidy, and enforce stricter security.

/var/serge/data/db (requires read-write access)

This directory is used to store Serge database file (which typically is an SQLite database file, e.g. translate.db3). Serge can also work with MySQL, so if you ever need to use MySQL, you won't have this folder.

/var/serge/data/vcs (requires read-write access)

This directory will contain all local source code checkouts (vcs stands for version control system).

/var/serge/data/ts (requires read-write access)

This directory will contain translation interchange files (ts stands for translation system).

/var/serge/data/configs (typically requires read-only access)

This directory will contain your Serge configuration files (files with .serge extension).


Assume you have two localization projects, one for your iOS application, and another one for Android. We recommend to use the same project-specific names (in this example, ios and android) for configuration files and for subdirectories in both /vcs and /ts subdirectories. This is how your file and folder structure will look like:

Example directory and file structure
/var /serge /data /configs android.serge ios.serge /db translate.db3 /ts /android ... translation interchange files created by Serge ... /ios ... translation interchange files created by Serge ... /vcs /android ... local checkout for your project ... /ios ... local checkout for your project ...

When chosing names for your projects and configs, use lowercase names and no spaces. This will help you avoid obscure problems in the future.

When you run a localization cycle, Serge will take care of creating subdirectories in /vcs and /ts based on paths defined in your configuration files.