-
Notifications
You must be signed in to change notification settings - Fork 4
Мульти язычность
Основная локаль (язык) сайта всегда - "en". Этот параметр можно изменить в конфигурационном файле config/packages/translation.yaml
(translator.fallbacks). Текущая локаль сайта (по умолчанию) задается в параметре "Локаль" в настройках. Изменить этот параметр можно в интерфейсе администратора в разделе "Настройки". Переводы текстов, которые используются в шаблонах и коде сайта, находятся в папке "translations". В шаблонах для перевода можно использовать фильтр "trans" или "transchoice".
Примеры:
{% trans %}Hello %name%{% endtrans %}
{{ message|trans }}
{{ message|transchoice(5) }}
{{ message|trans({'%name%': 'Fabien'}, 'app') }}
{{ message|transchoice(5, {'%name%': 'Fabien'}, 'app') }}
Аргументы фильтров:
- Параметры, которые используются в переводе.
- Домен перевода, например "validators". Домен по умолчанию - "messages".
Пример использования фильтра "transchoice" для перевода текста со склонениями по падежам:
{{ '%count% product found|%count% products found' | transchoice(totalItems, {}, 'local') }}
В файле translations/local.ru.yaml
должен быть перевод:
'%count% product found|%count% products found': 'Найден %count% товар|Найдено %count% товара|Найдено %count% товаров'
При использовании Twig-функции {{ catalogPath(...) }}
в URL автоматически подставляется текущая локаль. Для ссылки на роут контроллера можно использовать Twig-функцию {{ pathLocalized(...) }}
. Данная функция - аналог стандартной функции {{ path(...) }}
, но в URL автоматически подставляется текущая локаль.
Пример использования:
<a class="dropdown-item" href="{{ pathLocalized('profile_history_orders') }}" rel="nofollow">
<i class="icon-list text-muted"></i>
{{ 'History of orders' | trans }}
</a>
Пример перевода текста в PHP-коде контроллера:
use Symfony\Component\Translation\TranslatorInterface;
public function index(TranslatorInterface $translator)
{
$translated = $translator->trans('Symfony is great');
// ...
}
В настройках можно задать список всех доступных языков - параметр "Список языков (через запятую)". Пример значения: "ru,en". Эти локали будут выводиться в виде переключателя в нижней части окна создания/редактирования контента. Первая локаль в списке используется как локаль по умолчанию. При переключении можно задать значения текстовых полей для другой локали. Из базы данных автоматически будут выведены только те документы, для которых есть перевод для текущего языка, проверяется по заголовку документа (имя чанка для поля - header).
В настройках можно создать список языков сайта в соответствующем блоке. В этом блоке можно ввести название языка и его локаль. Для вывода переключателя языков можно использовать Twig-функцию {{ settingsList(...) }}
. Пример:
{{ settingsList('SETTINGS_LANGUAGES', 'languages_list', false, true) }}
Выводится список языков с использованием шаблона catalog/languages_list.html.twig
.
-
Русский
- Описание
- Установка
- Bash скрипт для установки
- Настройка веб-сервера
- Настройка VDS и установка Nginx, PHP, MongoDB, Shopkeeper4
- Данные и шаблоны
- Оптимизация JS и CSS файлов
- Вывод контента
- Корзина товаров
- Настройка онлайн оплаты
- Меню
- Формы
- Поиск
- Учет количества товара на складе
- Мульти-валютность
- Мульти-язычность
- Изменение размеров изображений
- Настройка оплаты через Robokassa
- Разработчикам
- Импорт-Экспорт дополнение
- English