Locales
To support multiple languages we are using Locales in Sylius. Locales are language codes standardized by ISO 15897.
Base Locale
During the installation, you provided a default base locale. This is the language in which everything in your system will be saved in the database - all the product names, texts on the website, e-mails, etc.
Locale Context
To manage the currently used language, we use the LocaleContext. You can always access it with the ID sylius.context.locale
in the container.
public function fooAction()
{
$locale = $this->get('sylius.context.locale')->getLocaleCode();
}
The locale context can be injected into any of your services and give you access to the currently used locale.
Available Locales Provider
The Locale Provider service (sylius.locale_provider
) is responsible for returning all languages available for the current user. By default, returns all configured locales. You can easily modify this logic by overriding this service.
public function fooAction()
{
$locales = $this->get('sylius.locale_provider')->getAvailableLocalesCodes();
foreach ($locales as $locale) {
echo $locale;
}
}
To get all languages configured in the store, regardless of your availability logic, use the locales repository:
$locales = $this->get('sylius.repository.locale')->findAll();
Last updated
Was this helpful?