Documentation for JIRA 4.3. Documentation for other versions of JIRA is available too.
JIRA (and most Java applications in general) determine what internationalization package to use by inheriting the System Locale, which is provided by the underlying operating system to the JAVA JVM. The language_default.jar
is only chosen when the inherited locale does not map to any of the included languages.
This means that if you modify language_default.jar
instead of your specific language pack (e.g. language_en_UK.jar
) then you will need to remove language_en_UK.jar
for JIRA to then default back to the modified language_default.jar
.
Most user-accessible pages in JIRA have been 'internationalized', meaning the pages will display in the user's preferred language. All text snippets on JIRA pages are stored centrally in 'properties' files, separate from the pages they occur in. There is one set of properties files for each language, and one default (English) set.
This centralized storage of text snippets makes it easy to change some text in JIRA to anything you like. This page describes how it can be done.
Say we wish to reduce the verbosity of the 'view issue' page's text, from:
atlassian-jira/WEB-INF/lib
:
[atlassian-jira-professional-2.6.1-standalone-tomcat ~/atlassian-jira/WEB-INF/lib]$ ls \-1 language\* language_da_DK.jar language_de_DE.jar language_default.jar language_en_UK.jar language_pt_BR.jar language_ru_RU.jar
We wish to extract the contents of one of these for editing. To do this, go to the atlassian-jira/WEB-INF/classes
directory, and unzip the relevant file:
jar files are actually zip files, so you can use a tool like WinZip to extract their contents. Here we use the 'jar' command that comes with Java
[atlassian-jira-enterprise-4.0.1-standalone/atlassian-jira/WEB-INF/lib]$ jar xvf language_default.jar created: META-INF/ inflated: META-INF/MANIFEST.MF created: com/ created: com/atlassian/ created: com/atlassian/jira/ created: com/atlassian/jira/web/ created: com/atlassian/jira/web/action/ inflated: com/atlassian/jira/web/action/JiraWebActionSupport.properties
* If you are using the WAR/Webapp distribution of JIRA, you should extract the jar from webapp/WEB-INF/lib
to edit-webapp/WEB-INF/classes
and remove the webapp/WEB-INF/lib/language_default.jar
and (if using English) webapp/WEB-INF/lib/language_en_UK.jar
(using the correct jar for your language).
webapp/WEB-INF/lib
to edit-webapp/WEB-INF/classes
and remove the webapp/WEB-INF/lib/language_default.jar
and webapp/WEB-INF/lib/language_en_UK.jar
webapp/WEB-INF/lib
to edit-webapp/WEB-INF/classes
and remove the webapp/WEB-INF/lib/language_default.jar
only. Do not remove webapp/WEB-INF/lib/language_en_UK.jar
, otherwise your users will not be able to select English as a language (See JRA-8266 for further details). You will need to update the text you wish to replace in the properties files (described in the next step) for both the language_default.jar
and the language_en_UK.jar
, for your changes to be reflected in JIRA.Now search for the text you wish to replace. You will find most strings defined in com/atlassian/jira/web/action/JiraWebActionSupport.properties
. The ones we are interested in are:
# issue operations issue.operations.assign = {0}Assign{1} this issue issue.operations.assign.tome = to me issue.operations.attach = {0}Attach file{1} to this issue issue.operations.attachscreenshot = {0}Attach screenshot{1} to this issue issue.operations.comment = {0}Comment{1} on this issue issue.operations.delete = {0}Delete{1} this issue issue.operations.edit = {0}Edit{1} this issue issue.operations.link = {0}Link{1} this issue to another issue issue.operations.move = {0}Move{1} this issue to another project
In the text, {0} and {1} indicate sections that will be replaced by JIRA (here, the beginning and end of links), and should not be removed. Edit the text to look like:
# issue operations issue.operations.assign = {0}Assign{1} issue.operations.assign.tome = to me issue.operations.attach = {0}Attach file{1} issue.operations.attachscreenshot = {0}Attach screenshot{1} issue.operations.comment = {0}Comment{1} issue.operations.delete = {0}Delete{1} issue.operations.edit = {0}Edit{1} issue.operations.link = {0}Link{1} to another issue issue.operations.move = {0}Move{1} this issue to another project
Standalone - Restart JIRA.
Webapp edition - Rebuild JIRA as per your App Server using the build scripts and restart the application server.
If you are deploying a .war to Tomcat - please note that Tomcat unpacks .war files into the webapps/
directory. Delete this directory (eg. webapps/ROOT
between redeploys, or this old webapp will be deployed.
The changes should be visible when next you view the page.