Translator Guide

Share |



Workspace of: Translator
Browse this workspace
Browse other Workspaces
Members Corner
Contact us
Main Guides
Translator Guide
Active tickets (Trac)
Workspace's Tickets

The role of the translator is to mainly translate in various language the Jajuk GUI.

Already translated

These languages are already translated or are being translated :

(Last update : Jajuk 1.10)

  • Catalan (ca)*
  • Chinese (zh)
  • Czech (cs)
  • Dutch (nl) **
  • English (en) [Default language]
  • French (fr)
  • Galician (gl)*
  • German (de)
  • Greek (gr)*
  • Italian (it) **
  • Korean (ko) **
  • Portuguese (pt)
  • Russian (ru)
  • Spanish (sp)*

(*): outdated (**) : very outdated


Anyone can translate Jajuk, no computer science is required. Note this is a voluntary work. For any question or comments, please contact us. Current Jajuk version translation should take few hours and upgrade only few minutes.

Mailing list

Translators should subscribe on the translators mailing list to get information about internationalization issues and translation update needs.

Jajuk translation

Jajuk uses a custom internationalization (i18n) system based on a XML file that allow translators to edit directly text files even when using non-european characters. Langpack files are named jajuk_{locale}.properties where {locale} is a ISO language code. contains default resource bundle (English) and you have a property file for each language.

  • Get property file of your choice as a source language. Example: take last release of as English source language or any other property file in this directory.
  • Create your text file. It should begin with:
#Jajuk {your language} langpack.
#Written by : {your name}
#Copyright {current year} The Jajuk Team, this is part of Jajuk distributed under the GPL V2 license
#FROM {source language} {current date in YYYY/MM/DD format}


#Jajuk Galician langpack.
#Written by : Xabier Cancela
#Copyright 2008 The Jajuk Team, this is part of Jajuk distributed under the GPL V2 license
#FROM en 2012/06/11
  • You have to write your files in Unicode UTF-8 encoding. If you don't know how to set the encoding, please contact us. Under Windows, we suggest using Eclipse (see developer manual for eclipse i18n configuration) or Ultraedit. Under Linux, we suggest using Eclipse (see developer manual for eclipse i18n configuration) or Kate. If you didn't used UTF-8, we will convert it for you but please give us the encoding you used. If you don't know which encoding you used, start Jajuk, go to Help perspective/About view, click on the system tab and your encoding is given by file.encoding property.
  • Look at file structure: It is a simple key=value format. Example:
ParameterView.73=Check this if you allow others people to come read music from your box
ParameterView.74=Password :
ParameterView.75=Set password access to your box. 

Simply translate each value, Previous example in French:

ParameterView.73=Accepter que d'autres utilisateurs lise la musique située sur votre machine
ParameterView.74=Mot de passe :
ParameterView.75=Fixez un mot de passe à votre machine.
  • Translate even lines like Language_desc_*=* (other languages names) and add a new line with your own language.
  • Some lines are under comments like "limited size". In this case, make sure to keep your translation short to ensure correct display.
  • Send us your work as a property file with your local ( ex: for Russian ).

Optional, for translators with developer skills

  • If you want to test your work (ant must be installed):
    • Edit {jajuk installation path}/src/org/jajuk/util/ file and search for line :
public static final String[] locales = { "en", "fr", "de", ...};

Then, add your your own locale.

    • Copy your properties file in the {jajuk installation path}/src/org/jajuk/i18n directory
    • Go in the {jajuk installation path} directory where you can find the build.xml file
    • Rebuild Jajuk typing ant
    • Launch Jajuk and set language in the parameter view of the configuration perspective.
    • Check your work.

Translation upgrades

As you can imagine, Jajuk evolves and new releases brings new labels or change them. Before new releases, the packager sends messages to translators mailing list to request translation upgrade. Note that if some new labels are not translated, they will simply be displayed in English and so, a partial langpack is not critical. The hard work is the first translation : upgrade a translation usually requires only few minutes. You only need a web browser and a text editor supporting UTF-8 (see suggested text editors in the Jajuk translation section). You can upgrade your translation whenever you want. What you have to do when upgrading a translation is :

  • If your source (FROM) language is NOT English, make sure it is up to date before upgrading it.
  • Check your #FROM comment at the beginning of your file, it should contain the date of your last upgrade.
  • Perform a 'diff' between this release and the current version.
  • Remove old labels, modify and add new ones.
  • Upgrade the #FROM comment with the translated release.
  • Commit your file or contact us.


  • Do not modify keys but only values. In "Label.1=foo", "Label.1" is the key and "foo" is the value.
  • If a value contains a '\ ', do not drop it, it means there is a space at line start.
  • Blanks at the end of a line are usually on-purpose to have some space in the combined text when it is concatenated with some value, don't cut them off.
  • Keep <html>, </html> or others tag strings.
  • Keep all punctuation and specials characters like '[','.' and so on...
  • Try to keep values length near from source ones so labels will not be too long and stay visible.
  • Use a spelling corrector.

Detect obsolete labels

For developers who want to find labels no more used in code (please remove them from so translators avoid useless work) : you can use the scripts in jajuk/src/tools :


to find dead labels and ...

$ drop them


  • Some labels could be used indirectly or used by files out of java directory, check all the repository
  • Some useless error labels been omitted

See also