Guideline for JASP Translators

Thank you for your interest in translating JASP. This document provides information to get you started and offers guidelines to maintain consistency. Because new functionality is added to JASP on a regular basis, translations are subject to continual refinement. The translation system we have set up should make the process as efficient and rewarding as possible. Regardless of the intensity or duration of your contribution, we appreciated all of your help.


JASP uses the web-based localization tool Weblate for translations. All you need is a web browser, and you can start as soon as you log in. Once you save translations on Weblate, they will be incorporated into JASP.

Log in to Weblate

Before you can add or modify translations, you have to log in at To log in, you can either register a new account or sign in with a third-party account such as your GitHub account.

Note that your translations will be publicly attributed to your account’s full name and email address, so you might want to adjust these settings beforehand.

JASP modules and Weblate components

Once you logged in, you can contribute translations to the JASP project at JASP consists of various modules each offering several statistical analyses. For example, the module `jaspAnova` offers both frequentist and Bayesian analysis of variance (ANOVA), repeated measures analysis of variance (RM ANOVA), analysis of covariance (ANCOVA), and multivariate analysis of variance (MANOVA).

On Weblate, every JASP module is split into two components.
The two components have the suffixes (`-QML` or `-R`) that indicate their programming language:

  • The QML component refers to strings (i.e., text) found in the user interface, that is, the left-hand input panel in JASP
  • The R component refers to strings found in the right-hand output panel in JASP resulting from statistical analyses computed using R.

For example, the `jaspAnova` module consists of the components jaspAnova-QML for the interface and jaspAnova-R for the analysis code. Clicking on a component shows an overview of the current translation status:

Adding languages

To add a new language to translate to a component, click on the button Start New Translation (see screenshot above) and select from the list of available languages. If you cannot find your language, please report that to the JASP team.

Contributing to existing languages

If you select an existing language, Weblate shows more details about the current translation status:

When you select a set of strings within a component, Weblate opens the form to create or change a single translation string. Strings are the smallest unit to translate, and they can vary in length from just one character to entire paragraphs, as decided by the module developers.

Note that all Weblate users have the same privileges to use this form: If you click the Save button after a change, the change will remain until it is revised and saved again. If you are unsure about a change, you can also click the Suggest button to inform other translators about your opinion.

There are many options to get additional information about a string, and how to interact with it. Fortunately, they are well explained in the Documentation that you can find in the right corner of the page:

Once you press the Save button, your translated string is stored in Weblate. Once saved, everyone will be able to see your change. Now you can log out of Weblate, or translate some more.


To help translators, Weblate offers glossaries to maintain consistency of translated terminology, especially across modules. Terminology defined in the glossary are marked yellow in the translation form. If a term is defined in the Weblate glossary in its proper context, you should use it. If you disagree with a translate term, please don’t just ignore it; instead, initiate a discussion with other translators, or change it in the glossary first.

Note that all translators can define new terminology into the glossary. Each project can have an assigned glossary for any language as a shorthand to store terminology.

Automatic suggestions

Weblate can suggest machine translations in the Automatic suggestions tab. This can be useful as a starting point for a translation, but make sure to always scrutinize the output for errors. Note that glossary terms are ignored and that these tools lack any understanding of the specific context of a string.

Translation conventions

This section lists general rules for translation.

Statistical terms

Use statistical terms as they occur in introductory statistics textbooks and courses in the target language. Users should be able to recognize established terminology in JASP’s interface. If you deem it useful to offer alternative terms (e.g., that may be more suitable for beginners), provide them in the help file.


For names of titles, groups and sections (tabs such as Advanced) in the interface, all words should be capitalized. For names within such groupings, e.g., the labels of the controls, only the first word should be capitalized. For instance, the Visual Modeling module is called ‘Visual Modeling’ and one of the analyses is called ‘Generalized Linear Modeling’. All words in the section title are also capitalized ‘Results Display’, but only the first words of elements within the section are capitalized, e.g., the checkbox label ‘Model plot’.

Address the user formally

The JASP interface occasionally addresses the user directly, e.g., ‘what would you like to do?’. Some languages have multiple ways to translate the English ‘you’, which could be formal or informal, see T-V distinction. When translating JASP into such language, pleasechoose the formal form of ‘you’ to address the user. For example, in Dutch please use the pronoun ‘u’ instead of ‘jij’, in French please use ‘vous’ instead of ‘tu’, in Chinese please use ‘您’ instead of ‘你’, and in German please use ‘Sie’ instead of ‘du’.

How your translations get into JASP after you commit them to Weblate

This section provides a summary of what happens to your translation once it is saved on Weblate. Knowledge of these steps are not necessary to contribute translations.

  1. If translations on Weblate are added or saved, they are automatically sent to GitHub, so they can be integrated with the rest of the module’s code.
    • This usually takes a few hours, but may also take days.
    • More technically, Weblate opens a Pull Request to the code repository of the translated module.
    • For example, translations of the `jaspAnova-R` or `jaspAnova-QML` components are sent to the jaspAnova repository on GitHub.
  2. On GitHub, one of the module developers will manually check and merge the translation into the module’s repository.
  3. Every week, GitHub automatically updates the translation files. Now they are ready to be compiled into an executable program.
    • If new translatable strings were added to the code, they will become available on Weblate for translation.
    • More technically, this step involves multiple sub-tasks and file conversions (e.g., from `.po` files to `.qm` and `.mo` files); if you are interested, you can read more technical details here.
  4. Once a new JASP executable is compiled, all new translations become part of the program.
    • Every night, JASP is automatically compiled as a fresh nightly build which you can download and test.
    • Alternatively, you can also compile JASP on your own computer by following the JASP building guide.
    • Finally, your translations will become available to everybody, once the JASP team releases a new version of JASP.

About the authors

Johannes Keyser

Johannes is a postdoc researcher at the Psychology and and Sports Science department of the Justus Liebig University, Giessen, Germany.

Frans Meerhoff

Frans is a retired JASP software developer. He was responsible for the core development of JASP and established the first link between JASP and Weblate.