Translating Subsonic

Here's how to translate Subsonic to a new language. This description assumes that you're using the Windows installer version of Subsonic.

In the following, <ROOT> refers to the directory in which you installed Subsonic – normally c:\Program Files\Subsonic.

  1. Stop the Subsonic service if it's running.
  2. Rename <ROOT>\subsonic.war to <ROOT>\subsonic.zip.
  3. Unzip the zip file into a new directory called <ROOT>\subsonic.war.
  4. Find the two-letter ISO-639 code for your language – a list is available here. For instance, Italian is assigned the code it.
  5. Add the ISO-639 code to the file <ROOT>\subsonic.war\WEB_INF\classes\net\sourceforge\subsonic\i18n\locales.txt.
  6. In the same directory is the file ResourceBundle_en.properties which is the English translation. Use this (or any other file) as the basis for your translation. Better yet, use the latest version from the SVN repository.
  7. Create the new resource file, for instance ResourceBundle_it.properties.
  8. Translate the text in the new file.
  9. If you are using a non-Latin alphabet (e.g., Cyrillic or Japanese), you have to convert the property file to ASCII before using it. Use the native2ascii tool which is included in the Java Development Kit. For instance, if you're writing a Macedonian translation (using the Cyrillic alphabet) using UTF-16 character encoding, you must convert it as follows:
    native2ascii -encoding utf-16 c:\develop\ResourceBundle_mk.properties <ROOT>/subsonic.war/WEB_INF/classes/net/sourceforge/subsonic/i18n/ResourceBundle_mk.properties
  10. You have to restart Subsonic for the changes to have effect.
  11. When you're done, send the new language file to mail@subsonic.org.