Documentation for JIRA 4.1. Documentation for other versions of JIRA is available too.
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.
Beta Test Atlassian Translations
26th July 2010: Please note, we are presently beta testing Atlassian Translations and we need your help. If you are looking at updating or creating a language pack use Atlassian Translations and tell us about your experience. You can log in with your My Atlassian account. For any queries, or to submit an existing language pack, please contact Nicholas Muldoon.
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.
In order to get JIRA to appear in your own language you need to translate the content of the properties file located inside the language_default.jar
file. The language_default.jar
file is found inside the JIRA installation's WEB-INF/lib
directory. To get the latest properties files, please download the latest version of JIRA from http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa.
Extract JIRA's default property file (language_default.jar
) directly into the WEB-INF/classes
directory (using a standard Unzip utility of 'jar xvf' from the command-line). A new file JiraWebActionSupport.properties
will be placed inside the directory WEB-INF/classes/com/atlassian/jira/web/action
.
Rename this properties file so that its name contains the locale details of the language that the content will be translated to. The file's name should match the following format:
JiraWebActionSupport_<Language Code>_<Country Code>.properties
For example, if you are translating the content of the file into Portuguese (spoken in Portugal), save all changes to a properties file named JiraWebActionSupport_pt_PT.properties
.
WEB-INF/classes
directory should match the directory structure of the extracted jar file. For example, when creating WEB-INF/classes/com/atlassian/jira/web/action/JiraWebActionSupport_pt_PT.properties
file, it must be located or placed in the WEB-INF/classes/com/atlassian/jira/web/action
directory (relative to the temporary directory you are working in).
language_default.jar
file. You can start working with one of the other language files located in the WEB-INF/lib
directory (for example, JiraWebActionSupport_fr_FR.properties
). However, the language_default.jar
file is the most updated and complete version of the JIRA language file to work with. The other language files may not contain a complete set of properties.
<Language Code>_<Country Code>
combination in the name of your properties file matches one of the other JiraWebActionSupport_<Language Code>_<Country Code>.jar
filenames in JIRA's WEB-INF/lib
directory, then you must either delete or remove that jar file from the WEB-INF/lib
directory. This ensures that JIRA uses the translations in your WEB-INF/classes/com/atlassian/jira/web/action/JiraWebActionSupport_<Language Code>_<Country Code>.properties
file.
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.
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, such as:
JiraWebActionSupport_<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
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
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
&lt;
not
<
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>
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).
locale
tag to the locale that your translation represents.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
.
To make JIRA aware of your translation, you will need to copy the jar file that you created in the previous step (see Translating JIRA 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 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.