### Translation steps

Anyone can translate pgAdmin3 into his/her mother tongue. You don't need to be a programmer. As described in the translation guidelines, we made sure that all strings could be translated, even into non-European and non-Asian languages. The required steps for translation are the followings:

1. Declare yourself as a translator by sending an email to pgAdmin3 pgadmin-hackers@postgresql.org mailing list.
   You may need to subscribe by sending an email to pgadmin-hackers-request@postgresql.org with subject "subscribe". We will add you to the translator list and make sure two translators do not work at the same time for the same language.
   Usually, we prefer native speakers translating into their mother tongue. In the case of non European and non Asian languages, we have no special requirements.
2. Download poEdit and install it under MS Windows or GNU/Linux.
   poEdit is our recommended choice, as it makes it really easy to maintain your translation. An MS Windows installer is available on poEdit web site. For GNU/Linux users, we provide packages built against GTK2 with Unicode support. Only our packages enable the translation of Right-To-Left (RTL) languages like Arabic or Persian. Download them from:
   http://www.pgadmin.org/snapshots/linux/mandrake91/poEdit
   http://www.pgadmin.org/snapshots/linux/redhat9/poEdit.
   http://www.pgadmin.org/snapshots/linux/suse82/poEdit.
   Alternatively, you may also run Kbabel which can be found in any recent GNU/Linux distribution with KDE3 support. Kbabel is more stable than poEdit, but the interface is less friendly, although opinions may differ.
3. Download the latest pgadmin3.pot language file from CVS. There are two ways of doing it:
   - The easy way
     Download the latest pgadmin3.pot language file from http://cvs.pgadmin.org/cgi-bin/viewcvs.cgi/pgadmin3/pgadmin3.pot. This file will be updated, whenever new strings are added to the application.
   - The hard way
     Checkout pgAdmin3 source code using a CVS client. Under Windows, we recommend using WinCVS. Under GNU/Linux, there are several command line and graphical clients available.
     Anonymous read access is available without password at the following CVSRoot: <:pserver:anonymous@cvs.pgadmin.org:/disk1/cvsroot>. The needed repository is named "pgadmin3".
     Under GNU/Linux, the checkout command line is:
     # cvs -d :pserver:anonymous@cvs.pgadmin.org:/disk1/cvsroot co pgadmin3
4. Create a directory according to your locale canonical name under /usr/share/pgadmin3/ui (GNU/Linux and other Unixes) or c:\program files\pgadmi3\ui (Win32). At the moment, you can find en_US, fr_FR, ja_JP and de_DE there. The list of language codes can be found on Debian site.
   Copy pgadmin3.pot to that directory and rename the file to pgadmin3.po
5. Edit pgadmin.po file. The steps described are related to poEdit only.
   - As a first action, please edit the file properties (Catalog/Settings). Select correct language and country, Charset to utf-8. Project name is pgAdmin3, Team is pgAdmin Developers, email address should be pgadmin-hackers@postgresql.org.
   - Check the "Automatically compile .mo file on save" in Properties.
   - Enter your translation strings.
   - Please refer to translation guidelines to translate variables (%s and %d) and keyboard shortcuts entries (&).
6. Compile pgadmin3.po file into pgadmin3.mo binary file.
   - In poEdit, clicking on the save button will automatically compile pgadmin3.po into an pgadmin3.mo file.
   - In Kbabel, you will need to run the following script manually:
     # msgfmt -o pgadmin3.mo pgadmin3.po.
7. Review your translation carefully.
   You should be able to add the appropriate ui/language_Country/pgadmin3.mo file under an existing binary installation of pgAdmin3. Then, just select the language under the File -> Options menu. Review is an important step, because somes strings do not have a real context. You will only be able to correct entries by using pgAdmin3 yourself...
8. When the translation is finished and reviewed, send pgadmin3.po and pgadmin3.mo files to pgadmin-hackers@postgresql.org after zipping/taring them. We will do our best to publish your files immediately.
9. From time to time, new strings which need translation are added to the application. Download/update the new pgadmin3.pot and merge the new file with your language file using poEdit's "Catalog/Update from POT file.." function.