logseq/docs/contributing-to-translation...

4.1 KiB

Intro

Thanks for your interest in improving our translations! This document provides details on how to contribute to a translation. This document assumes you can run commandline tools, know how to switch languages within Logseq and basic Clojurescript familiarity. We use tongue, a most excellent library, for our translations.

Setup

In order to run the commands in this doc, you will need to install Babashka.

Where to Contribute

Language translations are in two files, frontend/dicts.cljs and shortcut/dict.cljs. When translating shortcut/dict.cljs you will want to refer to https://github.com/logseq/logseq/blob/feature/lang-tasks-and-ci/src/main/frontend/modules/shortcut/config.cljs for the English equivalent.

Language Overview

First, let's get an overview of Logseq's languages and how many translations your language has compared to others:

$ bb lang:list


|  :locale | :percent-translated | :translation-count |              :language |
|----------+---------------------+--------------------+------------------------|
|      :en |                 100 |                494 |                English |
|   :nb-NO |                  90 |                445 |         Norsk (bokmål) |
|   :zh-CN |                  87 |                432 |                   简体中文 |
|      :ru |                  85 |                422 |                Русский |
|   :pt-BR |                  77 |                382 | Português (Brasileiro) |
|   :pt-PT |                  76 |                373 |    Português (Europeu) |
|      :es |                  71 |                349 |                Español |
| :zh-Hant |                  55 |                272 |                   繁體中文 |
|      :af |                  51 |                253 |              Afrikaans |
|      :de |                  48 |                238 |                Deutsch |
|      :fr |                  39 |                195 |               Français |
Total: 11

Let's try to get your language translated as close to 100% as you can!

Edit a Language

To see what translations are missing:

$ bb lang:missing
|                       :translation-key |                                  :string-to-translate |
|----------------------------------------+-------------------------------------------------------|
|                            :cards-view |                                            View cards |
|                                :delete |                                                Delete |
|                          :export-graph |                                          Export graph |
|                           :export-page |                                           Export page |
|                          :graph-search |                                          Search graph |
|                       :open-new-window |                                            New window |
...

Now, add keys for your language, save and rerun the above command. Over time you're hoping to have this list drop to zero.

There is a lot to translate and sometimes we make mistakes. For example, we may leave a string untranslated. To see what translation keys are still left in English:

$ bb lang:duplicates
Keys with duplicate values found:

|                  :translation-key | :duplicate-value |
|-----------------------------------+------------------|
|                          :general |          General |
|                           :logseq |           Logseq |
|                               :no |               No |

Sometimes, we typo the translation key. If that happens, the github CI job will detect this error and helpfully show you what was typoed.

Add a Language

To add a new language, add an entry to frontend.dicts/languages. Then add a new locale keyword to frontend.dicts/dicts and to frontend.modules.shortcut.dict/dict and start translating as described above.