Kanboard Documentation


How to translate Kanboard to a new language?

  • Translations are stored inside the directory app/Locale
  • There is a subdirectory for each language, for example in French we have fr_FR, Italian it_IT etc.
  • A translation is a PHP file that returns an Array with key-value pairs
  • The key is the original text in English and the value is the translation of the corresponding language
  • French translations are always up to date
  • Always use the last version (main branch)

Create a new translation:

  1. Make a new directory: app/Locale/xx_XX for example app/Locale/fr_CA for French Canadian
  2. Create a new file for the translation: app/Locale/xx_XX/translations.php
  3. Use the content of the French locales and replace the values
  4. Update the file app/Model/Language.php
  5. Check with your local installation of Kanboard if everything is OK
  6. Send a pull-request with Github

How to update an existing translation?

  1. Open the translation file app/Locale/xx_XX/translations.php
  2. Missing translations are commented with // and the values are empty, just fill blank and remove the comment
  3. Check with your local installation of Kanboard, and send a pull-request

How to add new translated text in the application?

Translations are displayed with the following functions in the source code:

  • t(): display text with HTML escaping
  • e(): display text without HTML escaping

Always use the english version in the source code.

Text strings use the function sprintf() to replace elements:

  • %s is used to replace a string
  • %d is used to replace an integer

All formats are available in the PHP documentation.

How to find missing translations in the applications?

From a terminal, run the following command:

./cli locale:compare

All missing and unused translations are displayed on the screen. Put that in the French locale and sync other locales (see below).

How to synchronize translation files?

Run this command in your terminal:

./cli locale:sync

The French translation is used as reference to other locales.