Ampache Translation Guide

Ampache uses gettext to handle translating between different languages if you are interested in translating Ampache into a new language or updating an existing translations simply follow the directions provided below.

Getting the Necessary Tools

Before attempting to translate Ampache into a new language we recommend contacting translations@ampache.org to make sure that nobody else is already working on a translation. Once you are ready to start your translation you will need to get a few tools

  • Gettext
    • xgettext (Generates PO files)
    • msgmerge (Merges old and new PO files)
    • msgfmt (Generates the MO file from a PO file)

Quick Reference

Below are listed all of the commands you may have to run when working on a translation

# change directory to locale/base
cd /path/to/ampache/locale/base
# Gather All info
./gather-messages.sh --all

# Create New po file
LANG=YOURLANG ./gather-messages.sh --init
Example: LANG=ja_JP.UTF-8 ./gather-messages.sh --init
         locale/ja_JP/LC_MESSAGES/messages.po will create.

# Merge with existing po file
./gather-messages.sh --merge

# Combine Old & New po files
msgmerge old.po messages.po --output-file=new.po

# Generate MO file for use by gettext
./gather-messages.sh --format

Creating a New Translation

Translating

I do my best to keep an up to date po file in /locale/base feel free to use this file rather than attempting to generate your own. If you would like to gather a new PO file simply run /locale/base/gather-messages.sh (Linux only)

Once you have an up to date PO file you will need to figure out the country code for the language you are translating into. There are many lists on the web. Gettext (Gnu.org)

Create the following directory structure and put your po file in the LC_MESSAGES directory

/locale/<COUNTRY CODE>/LC_MESSAGES/

Start Translating!

Creating a MO File

Once you have finished translating the PO file you need to convert it into a MO file in order for Gettext to be able to use it. Simply run the command listed below.

  
msgfmt <DIR>messages.po -o <DIR>/messages.mo

Unfortunately currently Ampache doesn't automatically detect new languages and thus you have to edit the code directly in order for it to pickup your new language. Find /lib/preferences.php and then find “case 'lang':” under the “create_preference_input” function and add a line for your own language. For example to add en_US support add the following line

echo "\t<option value=\"en_US\" $en_US_lang>English</option>\n";

Make sure that it comes after the <select> statement. If your language uses Non-Ascii please write it using the HTML character codes so that it will display correctly on as many configurations as possible.

Updating an Existing Translation

Merging existing file

If you are updating an existing PO file you will need to merge the new file with the old so that you don't have to do everything over again. simply run the following command.

msgmerge old.po messages.po --output-file=new.po

Once you have created the new PO file translate it as you normally would.

Generating the MO file

Because this is an existing translation you do not have to modify ampache code at all simply run.

msgfmt <DIR>messages.po -o <DIR>messages.mo

And then check it in the web interface!

Please contribute your translated file

Supposing you finish translation, please contribute the file translated http://ampache.org/bugs/newticket (Component: Translations/Localization).

Questions

If you have any questions or are unable to get gettext to work for you please feel free to contact us at translations@ampache.org. Thanks!

dev/translation.txt · Last modified: 2009/05/06 08:15 by vollmerk
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki