- Описание
- Установка
- Настройка веб сервера
- Данные и шаблоны
- Оптимизация JS и CSS файлов
- Вывод контента
- Корзина товаров
- Настройка онлайн оплаты
- Настройка оплаты через Robokassa
- Меню
- Формы
- Поиск
- Учет количества товара на складе
- Мульти-валютность
- Мульти-язычность
- Изменение размеров изображений
- Разработчикам
- Импорт-Экспорт
- Установка на локальный сервер XAMPP в Windows
- Настройка VDS и установка Nginx, PHP, MongoDB, Shopker
- JavaScript API
- Визуальный редактор шаблонов
- Бронирование
- Экспорт каталога в Яндекс.Маркет
- Bash скрипт для настройки VDS
- Bash скрипт для установки
- API
- Установка локально в ОС Windows
Мульти-язычность
Основная локаль (язык) сайта всегда - "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
.