Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 4.01 KB

translate.md

File metadata and controls

67 lines (48 loc) · 4.01 KB

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.

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. It supports basic and occidental plural variations, each one being defined in here. Example: 1 message|:count messages => :count message|:count messages, or: {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: See vue-i18n doc. Pluralization is customized in the pluralization.js file. This should fit your language pluralization form. Messages must be separated by a pipe, but you cannot define the number of occurences it applies to like with Laravel translation (no brackets or braces). Example: 1 message|{count} messages => {count} message|{count} messages in French, or: {count}条消息 in Chinese (only 1 form)

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: ·