We try to keep the number of language files small, in order to make it easier to identify the location of application messages and to unify the codebase.
- If you add a new key, you have to add it in every language file
- Its very likely that you want to edit the file
messages
as it holds 90% of our application translations
The files in translations/
as a quick overview:
exceptions
only holds translations of error pages and exception handlersflashmessages
hold all success and error messages, that will be shown as results from action calls after page reloadmessages
holds most of the visible application translations (like all the static UI elements and form translations)pagerfanta
includes the translations for the pagination componentsidebar
holds all the translations of the right sidebarvalidators
only holds translations related to violations/validation of submitted form data (or API calls)invoice-calculator
holds translations of calculator types (seeAdding invoice calculator
in developers-section)invoice-numbergenerator
holds translations of the invoice calculator (seeAdding invoice-number generator
in developers-section)invoice-renderer
holds translations of all invoice templates (read more)
As example I choose a new hypothetical language with the locale xx
.
Copy each translation file from translations/*.en.xliff
and rename them to translations/*.xx.xliff
.
Adjust the target-language
in the file header, as example for the new file exceptions.xx.xliff
:
<file date="2018-08-01T20:00:00Z" source-language="en" target-language="xx" datatype="plaintext" original="exceptions.en.xliff">`
Adjust the file config/packages/kimai.yaml
and add the language settings below the key kimai.languages
:
kimai:
languages:
xx:
date_short: 'd.m.Y'
Append the new locale in the file config/services.yaml
at parameters.app_locales
divided by a pipe:
parameters:
locale: en
app_locales: en|de|ru|it|xx
When you search for missing keys, please use this command:
bin/console debug:translation --only-missing de
and replace de
with your locale.