In order to create or update a translatable file, run the following command in the directory po/: ./update.sh xx where xx is the two-letter language code according to ISO 639 (which, if needed, may be suffixed by a country code according to ISO 3166). Quassel will automatically load these translation files based on the system locale. Examples for valid codes: de, en_US You can open translation files with poedit for example and add/edit translated strings. The *.po files can and should be kept in sync with the source code by running update.sh regularly (existing translations won't be removed). NOTE: Remember to remove X-Virgin-Header line if you want to preserve your header. Qt itself does not use the *.po files, but a compact binary format (*.qm). These files will automatically be generated at build time. By default, all languages will be built. To select languages, use environment variable LINGUAS to specify superset of languages you want to build in. As you can see in example there we will build only Czech German and French translations. EXAMPLE: $ export LINGUAS="cs de fr" $ cmake /path/to/source NOTE: You'll need lupdate, lconvert, lrelease installed with your Qt in order to generate translation files. Some distributions don't package that tool; in that case you won't get translations. The .pot file is regenerated using `./update-pot.sh` and can be pushed to Transifex via `tx push -s`. Note that as of Feb 2016 this is done automatically by nightly runs of scripts/tx-sync.sh which pushes an updated quassel.pot to a location that is fetched by Transifex on regular intervals. This location is currently configured as and can be updated at https://www.transifex.com/quassel/quassel/content/ → "Auto update resources".