|
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:
to:
Properties files are stored in a packaged (jar) format in 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:
[atlassian-jira-professional-2.6.1-standalone-tomcat ~/atlassian-jira/WEB-INF/lib]$ cd ../classes [atlassian-jira-professional-2.6.1-standalone-tomcat ~/atlassian-jira/WEB-INF/classes]$ jar xvf ../lib/language_default.jar created: META-INF/ extracted: META-INF/MANIFEST.MF inflating: language-descriptor.xml created: com/ created: com/atlassian/ created: com/atlassian/jira/ created: com/atlassian/jira/web/ created: com/atlassian/jira/web/action/ created: com/atlassian/jira/web/action/filter/ created: com/atlassian/jira/web/action/issue/ created: com/atlassian/jira/web/action/portal/ created: com/atlassian/jira/web/action/setup/ created: com/atlassian/jira/web/action/user/ extracted: com/atlassian/jira/web/action/filter/ManageFilters.properties extracted: com/atlassian/jira/web/action/AbstractViewIssueColumns.properties extracted: com/atlassian/jira/web/action/Dashboard.properties extracted: com/atlassian/jira/web/action/IssueActionSupport.properties extracted: com/atlassian/jira/web/action/JiraWebActionSupport.properties extracted: com/atlassian/jira/web/action/issue/AbstractCommentableIssue.properties extracted: com/atlassian/jira/web/action/issue/AbstractIssueSelectAction.properties extracted: com/atlassian/jira/web/action/issue/AddComment.properties extracted: com/atlassian/jira/web/action/issue/AssignIssue.properties extracted: com/atlassian/jira/web/action/issue/AttachFile.properties extracted: com/atlassian/jira/web/action/issue/CreateIssue.properties extracted: com/atlassian/jira/web/action/issue/DeleteIssue.properties extracted: com/atlassian/jira/web/action/issue/EditIssue.properties extracted: com/atlassian/jira/web/action/issue/IssueNavigator.properties extracted: com/atlassian/jira/web/action/issue/LinkExistingIssue.properties extracted: com/atlassian/jira/web/action/issue/LogWork.properties extracted: com/atlassian/jira/web/action/issue/MoveIssue.properties extracted: com/atlassian/jira/web/action/issue/ResolveIssue.properties extracted: com/atlassian/jira/web/action/issue/ManageAttachments.properties extracted: com/atlassian/jira/web/action/portal/AbstractConfigurePortal.properties extracted: com/atlassian/jira/web/action/setup/AbstractSetupAction.properties extracted: com/atlassian/jira/web/action/setup/Setup.properties extracted: com/atlassian/jira/web/action/setup/Setup2.properties extracted: com/atlassian/jira/web/action/setup/Setup3.properties extracted: com/atlassian/jira/web/action/setup/Setup2Existing.properties extracted: com/atlassian/jira/web/action/user/AddPortlet.properties extracted: com/atlassian/jira/web/action/user/ChangePassword.properties extracted: com/atlassian/jira/web/action/user/ConfigurePortal.properties extracted: com/atlassian/jira/web/action/user/EditProfile.properties extracted: com/atlassian/jira/web/action/user/UserVotes.properties extracted: com/atlassian/jira/web/action/user/UserWatches.properties extracted: com/atlassian/jira/web/action/user/ViewProfile.properties [atlassian-jira-professional-2.6.1-standalone-tomcat ~/atlassian-jira/WEB-INF/classes]$ 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). 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 - Now delete the jar file you unpacked the properties from (atlassian-jira/WEB-INF/lib/language_default.jar and restart Jira The changes should be visible when next you view the page. |

Comments (18)
Aug 05, 2006
Neal Applebaum says:
Jeff - I don't understand your instructions. If I delete the .jar file, don't I ...Jeff - I don't understand your instructions. If I delete the .jar file, don't I have to replace it with a new one, after I edit it? That's not in your instructions. I am confused.
Aug 05, 2006
Neal Applebaum says:
OK - I think I understand now.OK - I think I understand now.
Sep 29, 2006
Carl Jones says:
I don't. Could someone elaborate? I'd definitely like to do this.&nb...I don't. Could someone elaborate? I'd definitely like to do this. Particularly for the column headings in the issue navigator as well
Sep 29, 2006
Michelle de Guzman says:
Hi Carl, The .jar file you extracted above remains in the lib directory even af...Hi Carl,
The .jar file you extracted above remains in the lib directory even after extraction. Therefore, once you make your changes to the file that you need to edit it is essential that you delete the old language jar from the lib directory so that your edited file that you were working on from the classes directory will take affect after the re-start.
Hope that makes a bit more sense.
Cheers,
Michelle
Oct 12, 2006
Carl Jones says:
Ahhhhh..... Got it! thanks.Ahhhhh.....
Got it! thanks.
Jan 11, 2007
experiment 626 says:
Hopefully you are willing to go through it again for someone that doesn't have i...Hopefully you are willing to go through it again for someone that doesn't have it working.
Using the standalone version:
All the properties files within 'language_en_UK.jar' are extracted to WEB-INF\classes
The 'language_en_UK.jar' within WEB-INF\lib is renamed to 'Old language_en_UK.jar'
The 'language_default.jar' within WEB-INF\lib is renamed to 'Old language_default.jar'
Exited the browser and brought down TomCat.
then restarted TomCat and brought up Jira .... with no apparant change.
Jan 11, 2007
Michelle de Guzman says:
Hi there, All the properties files within 'language_en_UK.jar' are extracted to...Hi there,
Two new folders are created called META-INF and com in the classes directory. The properties files are all extracted into the com folder as shown by:
No
No
The old/existing language_default.jar will still be in the WEb-INF\lib directory so you need to remove/delete it. Then when JIRA is re-started it will then use the changes that you made to the extracted files in WEB-INF\classes\com\..\..
Is that a little more clearer? Please let us know.
Cheers,
Michelle
Jan 26, 2007
Brill Pappin says:
No... you must delete it or it will still be found by the classloader (which doe...No... you must delete it or it will still be found by the classloader (which doesn't care what you call it).
May 09, 2007
msmartt says:
I don't see either the default or the eng_UK jar files. I have tried searc...I don't see either the default or the eng_UK jar files. I have tried searching the JIRA files for *default*.jar and *langauge*.jar and the results don't show the default language jar files. Is this because JIRA is still running? When I shut down JIRA to make the text changes will I then be able to see the jar files in the directory?
I shut down JIRA and still do not see those two jar files. I was able to start up JIRA and the default language jar file is still not there. I have run *.jar searches on all local drives and the file never gets displayed. All the other language files do. I need help please.
May 10, 2007
msmartt says:
I was able to make the changes to JIRA. The two language files were not on...I was able to make the changes to JIRA. The two language files were not on my C drive however I was able to update the JiraWebActionSupport_en.properties file at atlassian-jira\WEB-INF\classes\com\atlassian\jira\web\action. I tried just editting the JiraWebActionSupport.properties file but the changes didn't take. Once I editted the _en .properties file everything was fine.
The directions above are confusing and should be rewritten. I first turned down my JIRA, found the properties file and editted it, saved it and restarted JIRA. There was no need to extract the JAR files. The directions above read as if you extract, make edits, delete the file, and restart. I was able to stop JIRA, edit and restart with my changes intact. The two language files are still not on my server.
Thanks to Jeff for his support in helping me better understand this process.
May 14, 2007
Jeff Turner says:
> There was no need to extract the JAR files. The directions above read as i...> There was no need to extract the JAR files. The directions above read as if you extract, make edits, delete the file, and restart.
The properties files were there for you because you had previously unzipped them, and deleted the jars. If you look in an unmodified JIRA Standalone, only the jars are there.
Jul 05, 2007
Will Rau says:
Is this how one would also change the labels for default fields? I want to...Is this how one would also change the labels for default fields? I want to change some. for example, I'd like to change "Fix Version" to "Resolve(d) in Version".
Oct 17, 2007
Urs Reupke says:
That should be the way, Will. Just look for your text in the .properties and cha...That should be the way, Will. Just look for your text in the .properties and change as detailed above.
Nov 14, 2007
Dick Wallace says:
I was able to change the text per the example above. However, what I'm really tr...I was able to change the text per the example above. However, what I'm really trying to do is to have the automatic 'None' choice in editing controls say '<not set>'. In JiraWebActionSupport.properties I changed common.words.none = None to common.words.none = <not set>, but the automatic choice still said 'None'. Is there some other place to change this label?
Nov 15, 2007
Dmitry Beransky says:
keep in mind, guys, that if you use this hack to rename built-in fields, you hav...keep in mind, guys, that if you use this hack to rename built-in fields, you have to do this after every Jira upgrade that changed anything in the language.jar, and probably just to be sure, you SHOULD do this after every upgrade. I just can't believe how much maintenance overhead every little Jira customization adds. For me, it's really getting out of hand.
Jan 08, 2008
Mark Thomas says:
A little confusion here: The doc mentions deleting both the language_default.jar...A little confusion here: The doc mentions deleting both the language_default.jar and the specific language version (language_en_UK.jar in my case). It only talks about extracting language_default.jar. Do I need to extract both or just one? Delete both or just one?
In my specific case I need to rename issue priority to severity.
Thanks.
Mar 31, 2008
Brian Williams says:
I am also trying to rename priority to severity. I followed the instructio...I am also trying to rename priority to severity. I followed the instructions, editing the properties file, and removed language_default.jar. I am using American English so I thought that would be sufficient. I found that my changes did not take effect. Then I tried removing language_en_UK.jar as well. Then my changes took effect.
Jun 03
Justin Traenkenschuh says:
FYI - If you just remove the language_default.jar (I removed the language_en_UK....FYI - If you just remove the language_default.jar (I removed the language_en_UK.jar as well) without unpacking any jars and restart JIRA you'll get a view of all the screen items as they are named, i.e. "alt.text.findissues" instead of "Find Issues" in the Navigator Bar. This was useful for me to find the properties that I needed to change in a visual format. It didn't allow me to view tkts though and I would only recommend doing this in a test environment.
After replacing both the jar files and restarting JIRA the dashboard was restored.
Screenshot