3.8 KiB
3.8 KiB
External translators
First of all, thanks a lot for considering helping the project by translating it. We truly appreciate it.
Crowdin
All translations are done with crowdin - we'd like to thank them for their gracious help with this project by providing us a free account.
Support a new language
You can open an issue to request a new language.
To add a new language, we have to configure it in Crowdin first. We also need to add the name of the language in the main English settings file.
Rules
Translation appears in two types of files in the codebase: in Laravel (php) and VueJS. We do support 3 types of strings.
With Laravel
- simple string
- string with parameters: see laravel doc.
To translate: integrate the text replacement in your translation, like ":param".
Example:
:name’s birthday=>anniversaire de :name - plural forms: see laravel doc for documentation. We support basic and occidental plural variations, each one being defined in here.
Example:
1 message|:count messages=>{0,1}:count message|{2,*}:count messages - format strings: we use Carbon to handle dates. format.php file contains format we use to export dates as strings in the right localized format. See php doc to know which format you can use.
With Vue.js
We use the vue-i18n package.
- simple string
- string with parameters: see vue-i18n doc.
- To translate: integrate the text replacement in your translation, like "{param}".
- Example:
{name}’s birthday=>anniversaire de {name} - Other example:
{{ $t('people.stay_in_touch_frequency', { count: frequency }) }}
- plural forms: vue-i18n doc. Actual version of vue-i18n can only render 2 messages separate with a pipe. Left message for 1 element, right message for 2 or more elements.
Rules for translation
Please respect typographic rules in your language.
Punctuation
See https://en.wikipedia.org/wiki/Punctuation
- Apostrophe: use real apostrophe character
’instead of simple quote' - Quotes: use real quotation marks like
“ ”or« »instead of double quote" - Dash: use en dash
–instead of hyphen-when it’s necessary - Interpuct for separate some lists:
·