JIRA 4.0 : Translating JIRA
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.
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
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.
Translating into multi-byte languagesLanguages 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 wordsProperties 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
Translating sentencesSome 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
Translating the javascript calendar popup toolIn 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 translationThe 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).
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 JIRATo 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.
Submitting a translationIf 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
|
![]() |
Document generated by Confluence on Oct 06, 2009 00:26 |