Translations ============ .. _update-translations: 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 a 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 (master 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: .. code:: bash ./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? ------------------------------------- From a Unix shell run this command: .. code:: bash ./cli locale:sync The French translation is used a reference to other locales.