Настройка мультиязычности сайта
Важное замечание
Мультиязычные настройки действуют только для публичной части сайта (frontend) и работают только на основном домене — например, yourdomain.com. Поддомены, такие как app.yourdomain.com, в эту настройку не входят.
По умолчанию система поддерживает два языка — русский (ru) и английский (en).
Если вы хотите добавить другой язык (например, украинский uk или китайский zh), его необходимо внести вручную в конфигурацию. После этого обязательно обратитесь в службу поддержки, чтобы мы подключили переводы интерфейса и системные сообщения для нового языка.
Эта инструкция поможет вам включить поддержку нескольких языков на сайте, чтобы пользователи автоматически видели контент на русском, английском, украинском (или другом) языке в зависимости от их браузера или выбранных настроек.
Вы настроите:
автоматическое определение языка пользователя;
корректные редиректы (/ru, /en, /uk и т.д.);
связь frontend-приложения с backend;
быстрый и удобный показ нужной языковой версии сайта.
Настройка выполняется через FastPanel и займет всего несколько минут.
Как включить мультиязычность на сайте
Мультиязычность настраивается только для основного сайта (например, вашдомен.com), а не для поддоменов вроде app.вашдомен.com.
Откройте FastPanel → «Сайты» → выберите ваш домен → «Ручная настройка» → раздел Frontend. Именно здесь находится конфигурация Nginx, через которую включается поддержка языков. Все изменения вносятся только в этой секции — backend и поддомены не затрагиваются.

Шаг 1. Определение языка пользователя
В самом начале конфигурации (до блока server {}) вставьте следующий код:
map $http_accept_language $accept_language {
"~*ru" ru;
"~*en" en;
"~*uk" uk;
"~*ua" uk;
"~*zh" zh;
default ru;
}
map $cookie_lang $selected_lang {
"~^(ru|en|uk|zh)$" $cookie_lang;
default $accept_language;
}
Определяет язык пользователя по его браузеру.
Если ранее пользователь выбрал язык вручную, сохраняется значение из cookie.
Если ничего не определено — используется русский по умолчанию.
Шаг 2. Установка языка и редирект
Найдите в конфигурации блок server {} и внутри него добавьте следующий фрагмент:
location ~ ^/(ru|en|uk|zh)$ {
add_header Set-Cookie "lang=$1; Path=/; Max-Age=31536000; SameSite=Lax";
return 302 /$1/$is_args$args;
}
Если пользователь переходит по адресу /ru, /en, /uk и т.д. — язык сохраняется в cookie.
Затем происходит автоматический редирект на нужную языковую версию сайта.
Шаг 3. Подключение frontend (например, Angular SSR)
Также в блоке server {} добавьте:
location ~ ^/(ru|en|uk|zh)/ {
proxy_pass http://localhost:4000;
proxy_redirect http://localhost:4000/ /;
include /etc/nginx/proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering on;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
proxy_read_timeout 60s;
proxy_connect_timeout 10s;
proxy_send_timeout 10s;
}
Этот блок направляет пользователей на frontend-приложение (например, SSR Angular), которое обрабатывает нужную языковую версию сайта.
Last updated
Was this helpful?