JabRef comes with a set of translations into different languages, currently: Chinese (simplified), Danish, Dutch, English, Farsi, French, German, Indonesian, Italian, Japanese, Norwegian, Persian, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish and Vietnamese.
If the JabRef interface already exists in your language, you can help improve it. Otherwise, you can start translating JabRef into your own language.
For each language, there is the file JabRef_xx.properties
(xx
denotes the country code for the language). It contains all translations in a key/value format. In the JabRef source code tree, the property files reside in the /src/main/resources/l10n directory.
We use the service of Crowdin to keep our translations updated. It is a service directly running in the browser and one can quickly join and start translating. Please visit https://translate.jabref.org/ to get started.
Crowdin offers to quickly add a new language. Please contact us so that we add a new language.
Each entry is first given in English, then in the other language, with the two parts separated by an '=' character. For instance, a line can look like this in a German translation file:
Note that each space character is escaped (\
) to make it a valid property key. The translation value does not need any esacpes.
Some entries contain "variables" that are inserted at runtime by JabRef - this can for instance be a file name or a file type name:
A variable is denoted by %0
, %1
, %2
etc. In such entries, simply repeat the same notation in the translated version.
As we can see, there are several "special" characters: the percent sign and the equals sign, along with the colon character. If these characters are to be part of the actual text in an entry, they must be escaped in the English version, as with the colon in the following example:
The character encoding should be UTF-8. Please avoid Unicode escaping such as \u2302
.
To test your translation you must be able to compile the source tree after making your additions. This requires you to install the Java Development Kit. Ensure that you use the most recent version.
Crowdin allows for downloading the current translation file:
Place the downloaded file in the path src/main/resources/l10n
. Then, execute gradlew run
in the root directory and JabRef should start.
For testing a crowdin-contributed translation without having to compile JabRef, one has to wait until the translation is incorporated into the current source code of JabRef.
For a new language to be available within JabRef, a corresponding line must be added in the Java class GUIGlobals (found in the directory /src/main/java/org/jabref/logic/l10n/Languages.java
in the JabRef source code tree). The line is inserted in the static {}
section where the map LANGUAGES
is populated. The code must of course be recompiled after this modification.
Here is a quick start guide of how to improve the help page.
Our help pages are hosted at with an integration to GitHub., which provides version control based on . In order to edit or create a JabRef help page you need a GitHub account. You can sign up for free.
If you already have an account, please make sure that you are signed in.
The easiest way to fix small errors or to add additional information is to edit a JabRef help page directly in your browser:
At the top of each help page you can find the GitHub icon. Just click here to show the source of the page.
This leads you to GitHub:
To actually edit the page click on the pencil icon which is highlighted above.
The window to edit the page at GitHub looks like this:
In order to check your changes hit the "Preview Changes" tab:
To save the changes you have to create a so called "Commit" by scrolling down and hitting the button "Propose File Change":
Please note: The message you provide here will be visible in the history of the help page, so please think a second to provide a meaningful description of your changes.
As a last step you have to submit the changes you have made back to us:
Just hit the button "Create Pull Request" and confirm the creation on the next page which is opened by hitting "Create Pull Request".
To edit more than one file at a time, to add screenshots, and for other more advanced changes we recommend to checkout this repository locally and to create a PR of your changes using the standard git and GitHub workflow.
Most text can be simply added in this field as plain text. However, you can style your contribution by using . Markdown is a rather easy way to format text without the need for complex markup as for example in HTML.
You can find an introduction to markdown or .
That's it! We'll review your changes and publish them at .
The best way to enter tables is to use this for Markdown. It has the nice feature to generate markdown tables from different sources, e.g. you can directly copy the table from a spreadsheet or upload a csv files. Just copy and paste the generated markdown.
Sometimes, one has a BibTeX entry with abbreviated short names:
Now, one wants to have the full first names. In case, there is a DOI available, this is as simple as the following steps:
Determine the DOI: Switch to the "General" tab and click on "Look up DOI"
Fetch BibTeX data from the DOI: Click on "Get BibTeX data from DOI"
A popup appears. Select which data you want to merge into the eixting entry
Now the first names are expaned: