Translate YouTrack to Your Favorite Language

Dmitri Nesteruk

With the release of YouTrack 5, we now provide out-of-the-box localization support for your YouTrack instance. While the original set of supported languages includes a few European languages already, we also provide the facility for you to customize YouTrack to your liking using your own favorite language and phrasing. Here’s what the process is like.


The vast majority of what you work with in YouTrack is dynamic content, i.e. the test that you have in issue summary/description fields, custom fields, saved searches, tags, etc. None of these require localization support because you can already define them in whatever language you wish. Where localization is important is in static strings, such as what text appears on the Create Issue button.

To localize YouTrack to a particular language, you should:

  1. Translate the standard UI strings, which are defined in property files and notication templates.
  2. Put the translated files into a separate directory and provide a description of your locale in this directory, too.
  3. Start YouTrack with a parameter pointing to the directory with the localized content.

Let’s see how this works.

Translating Property Files

First of all, download the archive. This ZIP file contains a set of files that you can customize — its default definitions are in English. The archive contains the following:

  • — contains the names of predefined fields (such as summary) that ship with the YouTrack instance by default.
  • — contains a further set of strings, with the difference that this set is not reloaded when pressing the Reload button or even restarting YouTrack. These should be changed only at the time when you’re switching to another language.
  • — contains a very large set of strings that make up the bulk of YouTrack localization. This is where you can change, for example, the text on the Create Issue button.
  • \notification_templates — this folder contains a set of HTML-esque templates where you can also customize strings related to messages that are shown.

Property files are simple UTF-8 text files with key=value pairs. There are several special mechanisms used to translate, e.g., plural forms of numerals — for more information on this, please consult the full YouTrack Localization Guide.

Notification templates are files with .ftl extension. Strictly speaking, they are also editable inside YouTrack itself, via Administration|Notification Templates. If you do decide to localize these, you may wish to preserve the HTML structure intract and only change the text related to the messages.

Running YouTrack with Custom Localization

When you are ready to use your new localized files, here’s the directory structure you need to set up:

  • Create a directory to house your localizations, e.g., \youtrackUK
  • Create a subdirectory with the locale name, and copy over all the files from into that directory. For example, you might have a directory \youtrackUK\en_UK.
  • Create a file called supportedLocales.xml inside \youtrackUK. This is where you specify the supported locale(s), and the ID must match that of your en_UK subdirectory.

Here’s a sample supportedLocales.xml file:

<?xml version="1.0" encoding="UTF-8"?>

Once this is done, you need to launch YouTrack, specifying a JVM option of jetbrains.mps.webr.i18n.custom-translations with a value referring to your custom language path (i.e., x:\foo\youtrackUK). How you set it depends on how you run YouTrack. For example, on Windows, you would:

  • Start up a console with Administrative permissions
  • Navigate to the \bin folder in YouTrack installation directory
  • Execute tomcat6w //ES//YouTrack
  • In the window that opens, define the argument as -Djetbrains.mps.webr.i18n.custom-translations=c:\temp\youtrackUK

All you have to do now is restart YouTrack, then go into Settings, scroll down to System Language and choose the new language from the list:

YouTrack will apply your new language settings, and you can start using them straight away:

And one last thing…

So that’s how easy it is to customize YouTrack. And since we imagine that many of you may be interested in localizing YouTrack to one language or another, we’ve set up a GitHub repository where all such translations can be kept. So if you’ve got a translation for a particular language, simply send us a pull request and your translation will be included in the repository!

Comments below can no longer be edited.

9 Responses to Translate YouTrack to Your Favorite Language

  1. Radosław Osiński says:

    September 26, 2013

    i18n from English language would be easier than from Czech

  2. Radosław Osiński says:

    September 26, 2013

    bahhh i missed …

  3. Claudio says:

    February 19, 2014

    it would be nice to use something like to contribute to the translations

  4. Sarina says:

    March 7, 2014

    You should use to translate your language files. It is an online localization tool that has a very nice github integration and makes things a lot easier for users.

  5. Renan de Oliveira says:

    May 16, 2016

    There is portuguese Brazilian or Portugal translation?

  6. Michal Rezny says:

    May 20, 2016

    Is it still valid for version 6.5? I tried to add custom translation both using the above mentioned procedure and also translations in repository (with -Djetbrains.mps.webr.i18n.custom-translations= JVM option specified in conf/youtrack.jvmoptions), but it fails to start Youtrack correctly with error (also) stating that “Problems loading additional translations from file /data/youtrack/langtest/en_UK/”

    • Leonid says:

      May 24, 2016

      Hi Michal, this exception in most cases means that you have dulicates in your .properties files. And it’s better not to use ‘en’ as language code becuase frontend will probably ignore it as it equals to the default language.

  7. Tarik Ucar says:

    June 18, 2016

    Is there any fix for Youtrack 6.5.x?
    Youtrack just doesn’t start when I point my translations. The error message in log file:

    ServiceEventHandlerCollection [Debug] Processing service event 4 with SERVICE_CONTROL_INTERROGATE
    [2016-06-18 01:51:47,242] console [Info] 01:51:47,140 INFO [MessagesContainer ] [init servlet ] [] Finished
    [2016-06-18 01:51:47,242] console [Info] 01:51:47,140 INFO [MessagesContainer ] [init servlet ] [] Loading custom locales
    [2016-06-18 01:51:47,242] console [Info] 01:51:47,140 INFO [MessagesContainer ] [init servlet ] [] Loading custom messages for language tr_TR…
    [2016-06-18 01:51:47,242] console [Info] 01:51:47,192 INFO [EventsMultiplexer ] [init servlet ] [] Cleaning EventsMultiplexer listeners
    [2016-06-18 01:51:47,346] console [Info] 01:51:47,200 ERROR [ServletImpl ] [init servlet ] [] Can’t init servlet
    [2016-06-18 01:51:47,346] console [Info] org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘profileCheckboxes’ defined in URL [jar:file:/C:/youtrack/apps/youtrack/web/WEB-INF/lib/charisma-app-17105.jar!/jetbrains/charisma/user/profile/profileCheckboxesConfiguration.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
    [2016-06-18 01:51:47,346] console [Info] PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property ‘checkBoxes’ threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘localizer’ defined in URL [jar:file:/C:/youtrack/apps/youtrack/web/WEB-INF/lib/charisma-app-17105.jar!/jetbrains/charisma/main/YouTrackLocalizationConfiguration.xml]: Cannot resolve reference to bean ‘messagesContainer’ while setting bean property ‘messagesContainer’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘messagesContainer’ defined in URL [jar:file:/C:/youtrack/apps/youtrack/web/WEB-INF/lib/jetbrains.mps.internationalization.runtime-2906.jar!/jetbrains/mps/internationalization/runtime/localizationMessagesConfiguration.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Problems loading additional translations from file C:\youtrack\translations\tr_TR\


Subscribe for updates