Translation guide:

The client uses gettext for translations, for a comprehensive guide see:
http://www.gnu.org/software/gettext/manual/gettext.htm

In order to generate the .pot (template) file with all the translation strings,
append all the filenames that require translation to POTFILES.in, then run the
following command:
xgettext -o ring-client-gnome.pot --keyword=_ --keyword=C_:1c,2 --keyword=N_ -D .. -f POTFILES.in

Replace the first 3 lines of the generated header with:
# Gettext PO translation template file for the GNOME client of the Ring project.
# Copyright (C) 2015-2018 Savoir-faire Linux Inc.
# This file is distributed under the same license as the Ring package.

The translation files are expected to be located in the /po dir using the
following naming convention:
<language code>[_<country code>].po
for example: fr_CA.po, lt.po

The Ring project uses Transifex.com to facilitate the translation process. The
project page can be found here:
https://www.transifex.com/savoirfairelinux/ring

To pull translations from transifex using the tx client, execute:
tx pull -fa --minimum-perc 1
