This page last changed on Jul 08, 2009 by alui.

What translations of JIRA are currently available?

Currently, JIRA ships with a number of translations in the most commonly-requested languages.

As a JIRA administrator, you can choose the default language from the list of installed languages: see Choosing a Default Language for the latest list.

Individual users can also choose their preferred language from the same list: see Choosing a Language.

How are new translations of JIRA created?

JIRA's internationalisation is an ongoing effort, and we'd love your help. If you would like to translate JIRA into your language, the rest of this document describes how to do so.

Where to begin?

In order to get JIRA to appear in your language you need to translate all the properties files located inside language_default.jar. The language_default.jar is found inside the WEB-INF/lib directory.

Note
The latest properties files for the next (unreleased) JIRA version are available from http://www.atlassian.com/software/jira/translations.

Translating JIRA's default English property files begins with extracting the contents of the language_default.jar into a temporary directory (using a standard Unzip utility of 'jar xvf' from the command-line). After extracting the jar, make a copy of each property file, giving it a new name that contains locale information. For example, if you are translating the Dashboard.properties file into French, save all changes to a separate Dashboard_fr_FR.properties file. That is, the format of the file name is:

<Default Name><Language Code><Country Code>.properties

Note
In some cases you might need to modify language_en_UK.jar - JRA-8266 in order to modify the default English translation.

See Translating into multi-byte languages (below) for a slight modification to this procedure, if applicable.

The "Language Code" is a valid ISO Language Code. These codes are the lower-case, two-letter codes as defined by ISO-639.

The "Country Code" is a valid ISO Country Code. These codes are the upper-case, two-letter codes as defined by ISO-3166.

Note
The original directory structure of the property files should be preserved. For example, when creating com/atlassian/jira/web/action/Dashboard_fr_FR.properties file, it must be placed in com/atlassian/jira/web/action directory (relative to the temporary directory you are working in).

Translating into multi-byte languages

Languages like Chinese and Russian are represented with native two-byte encodings like gb2312 or koi8. Java .properties files are assumed to be Unicode encoded as ISO-8859-1. Therefore entering Chinese or Russian characters directly into the .properties files will not work.

The solution is to create the translation as a separate file:

<Default Name><Language Code><Country Code>-native.txt

Once completed, these can be transformed into regular .properties files with the 'native2ascii' command. E.g. for Russian:

native2ascii _-encoding cp1251 JiraWebActionSupport_ru_RU-native.txt

Translating words

Properties files contain many "entries" for each of the words and sentences used in JIRA. The entry for the common word "Project" looks like this:

common.concepts.project = Project

To translate this into French (for example), you would replace the English word "Project" with "Projet", ie:

common.concepts.project = Projet
Note
Not all entries for a particular page in JIRA will appear in the natural properties file associated with that page. For example, on the "Create Issue" page, entries for "Project" and "Issue Type" cannot be found in the CreateIssue.properties file. Some words in JIRA appear in more than one place and have therefore been placed in a single properties file. This saves you from having to translate common words more than once. The name of this file is JiraWebActionSupport.properties. The location of the file is in atlassian-jira/WEB-INF/lib/language_default.jar. Once you find the jar unzip it. Once inside the jar file go to language_default/com/atlassian/jira/web/action/JiraWebActionSupport.properties.

Translating sentences

Some sentences in JIRA have certain words that are HTML links OR constitute database data. For example:

issue.operations.move = {0}Move{1} this issue to another project

OR

roadmap.issuesresolved = {0} of {1} issues have been resolved

In the first example, the word "Move" links to the "Move Issue" page. The HTML code for this link is passed in using {0} and {1}. In the second example, {0} is the number of resolved issues and {1} is the total number of issues. When translating sentences, ensure that you do not omit these elements. A French translation of the first example above might look like this:

issue.operations.move = {0}Déplacer{1} cette demande vers un autre projet
Note
Any HTML needs to be escaped, e.g.
use
&amp;lt;

not

<

Translating the javascript calendar popup tool

In addition to the JIRA-specific translation files, you may want to see if there is an existing translation for the javascript calendar utility that JIRA uses as a date picker. You can find these files in atlassian-jira/includes/js/calendar/lang/. Many languages already have a translation; it is a good idea to look over the translation and see if the months correspond to the correct months that java expects for a date in your locale. If you add a new calendar_{LANG}.js file, you will need to add an entry mapping the filename to your language code in the file atlassian-jira/WEB-INF/classes/calendar-language-util.properties. For example:

en=calendar_en.js


You will also need to add the javascript file as a downloadable web resource. Modify the file system-webresources-plugin.xml to include the following:

    <web-resource key="calendar-{LANG}" i18n-name-key="admin.web.resources.plugin.calendar.{LANG}.name" name="Calendar"
                  state='enabled'>
        <resource type="download" name="calendar-{LANG}.js" location="/includes/js/calendar/lang/calendar-{LANG}.js">
            <param name="source" value="webContextStatic"/>
        </resource>
    </web-resource>

Packaging the translation

The properties files for each locale are collected into language bundles. Once you have finished translating all the properties files, a language descriptor file has to be created. This file "tells" JIRA that a new language is available. The file MUST be called language-descriptor.xml and should be located at the root of the language bundle (i.e. directly in the temporary directory). The language-descriptor.xml tells JIRA which locale (language and country) the property files represent, and the JIRA version for which the translation was last updated. The language-descriptor.xml file looks like this:

<language>
    <locale>en_UK</locale>
    <version>2.6</version>
</language>

The locale tag must contain a proper Java locale name. The locale name is made up of the Language Code and Country Code (please see the Where to begin? section for more details).

  • Set the value of the contents of the locale tag to the locale that your translation represents.
  • Set the contents of the version tag to the version of JIRA for which you are doing the translation.

Create a jar ('jar cvf language_<locale>.jar ...') which contains all the translated property files (remember to preserve the directory structure) and the language-descriptor.xml file. Although not absolutely necessary, it is a good idea to call this file language_<locale>.jar, where <locale> is the contents of the locale tag in the language-descriptor.xml file. For example, for French call the file language_fr_FR.jar.

Installing a new translation of JIRA

To make JIRA aware of your translation, you will need to copy the jar file that you created in the previous step (see Packaging the translation into the WEB-INF/lib directory found under JIRA's web application directory.

If you would like JIRA to display a flag for your translation during the setup process, place a GIF image with the same name as the locale into the /images/flags directory under JIRA's web application directory. For example, for the French translation place a file called fr_FR.gif into the /images/flags directory.

  • If you are installing JIRA for the first time, the first page of the Setup Wizard should now display your newly installed language.
  • If you are already using JIRA, you can choose your newly installed language from the list of installed languages: see http://www.atlassian.com/software/jira/docs/latest/i18n.html.

Submitting a translation

If you would like your translation to be included in JIRA, please create an issue on jira.atlassian.com and attach the jar containing the properties files.

Reporting a translation issue

  •  
  • Have you noticed an issue with an existing translation? Please file an issue!
Document generated by Confluence on Oct 06, 2009 00:26