Welcome to Zettlr Translate!

Thank you for joining our translation community! On this page, we want to walk you through the translation process so that you know what you can do to help and how this tool works.

Translation index

First things first: When you visit Zettlr Translate, you will see a list with all available languages. These are more common languages that need to be translated. If your own language is not listed and you would like to see it added, please simply drop us a line!

This list of languages reveils to you an important metric: the amount of translations for this language. The more translated a language is, the fuller the progress meter for this language is. If the progress number inside that progress bar is equal, then this means that the language is completely translated. But don't let yourself be fooled. If at least one translation suggestion is available, the system will count this towards the goal, but the translated string may not be accurate, and you may want to double-check the translation.


Translating is as straight-forward as it can be. The system contains all language identifiers ("translation keys"), which look like this: dialog.preferences.export.strip_links_unlink_label These are used everywhere in the app and will be replaced with your translation. They are somewhat self-explaining, here's the logic:

Translation keys are namespaced, divided by dots. This means that the key above, for example, is used in the context of dialog windows. The second namespace indicates that the key is used in the preferences dialog. The third namespace, then, indicates its position in the export tab. The last part of the key tells you it is a label for "strip links unlink", which may not sound very grammatically correct, but if you take a look at the export tab, you'll see that it's the label for the option to unlink Zettelkasten-Links (as opposed to removing them — dialog.preferences.export.strip_links_full_label — or leaving them untouched — dialog.preferences.export.strip_links_no_label).


Sometimes, the translation strings use placeholder. These are used to insert some text in between the translation, so make sure to keep these in the translated text! These placeholders look like this: %s. You must keep them in your translations, as Zettlr expects them. If they are missing, Zettlr will still work, but important information will be lost. One such example is the word counter in the top-right corner of the toolbar. The English translation string looks like this: %s words. In the app this will become, for instance, "345 words".

To know where placeholder are, simply head over to our English translations, as we will keep these updated at all times.

Managing Your Translations

Your translations can be managed on your account dashboard. There you'll see a list of all your translations. You can search through them using your browser's built-in search function.

You can only completely remove your own translations, because users can vote on their accuracy. If we would allow editing them afterwards, this might distort the opinions of other users. If you spot an error in your translation, simply delete the translation and re-add it.

Ensuring Translation Accuracy & Voting

To ensure both a maximum degree of freedom for our translators and quality of the translations, we have implemented a voting system. You can scroll through already-made translations and you will be presented with a list of all translation suggestions for each translation key. You can then click Approve next to the suggestion that you deem correct. If none of these seem correct to you (or if there are simply none), you can add your own.

You can only vote once for a translation key — either by approving an existing translation or adding your own (we assume you'd approve your own translation string). Before generating language files, the system will take the translation with the most votes. In case of a tie, normally the older translation will be taken.