Notice: You are browsing the documentation for PrestaShop 9, which is currently in development.
You might want to read the documentation for the current version, PrestaShop 8. Read the current version of this page
Wordings in the software are exported into Crowdin, a translation platform. This allows contributors to translate these into all supported languages.
Each night, a cron job fetches translations from Crowdin, updates the PrestaShop/TranslationFiles repository with new updates, and deploys translations to domain i18n.prestashop.com.
i18n.prestashop.com is a domain hosted by PrestaShop company to store all supported Languages Localization Packages. This is the domain where localization packs are downloaded when you use the “Download a Language Pack” feature in Back Office.
Most existing languages are available in Crowdin for translation, but not all are available in PrestaShop.
This is because some languages have a low completion level on Crowdin.
If the Crowdin translators for a given language are very active and would like to see the results of their Crowdin translations quickly in their own shop, here is the process to add the support of a language.
If the language is not available in Crowdin, you have to contact the Crowdin PrestaShop manager for opening a project in the concerned language.
This can be done following two steps:
In PrestaShop, processing of languages is controlled by JSON configuration:
app/Resources/all_languages.json
app/Resources/legacy-to-standard-locales.json
The first one is used for listing languages supported by PrestaShop in back office.
The second one is used to match the legacy 2-letter codes used for locales to the standard IETF language tags.
app/Resources/all_languages.json
?In this file, you need to add a new item in the JSON.
The key is the ISO Code, based on the ISO-639-1 standard (see an unofficial list here). The item is filled with key/values relative to the localization :
name
: Nameiso_code
: ISO code (2 characters)date_format_lite
: Date format (only date)date_format_full
: Date format (with hours & minutes)is_rtl
: Right to Left Languagelanguage_code
: Language codelocale
: ISO code (5 characters) : two-letter language code (ISO 639-1) and the two-letter country code (ISO 3166-1 alpha-2)This is a sample :
"da": {
"name": "Dansk (Danish)",
"iso_code": "da",
"date_format_lite": "Y-m-d",
"date_format_full": "Y-m-d H:i:s",
"is_rtl": "0",
"language_code": "da-dk",
"locale": "da-DK"
}
app/Resources/legacy-to-standard-locales.json
?In this file, you need to add a key/value.
The key is the ISO code, based on the ISO-639-1 standard (see an unofficial list here). The value is the locale.
This is a sample :
"da": "da-DK"
i18n.prestashop.com domain stores the translations files that are used by PrestaShop.
This is the list you can read on International > Translations Back Office page, when adding or updating languages.
This content of i18n.prestashop.com is controlled by the GitHub repository PrestaShop/TranslationFiles.
The list of available languages is controlled by the file available_languages.json
of the current version.
You must submit a Pull Request in which you add a key/value:
This is a sample :
"da-DK": "Danish (Denmark)"
After the Pull Request has been approved and merged, a nightly cron job will fetch translations from Crowdin, update the repository with new updates, and deploy translations to i18n.prestashop.com.