Многоязычный сайт кажется простой задачей: взять тексты, перевести, добавить переключатель. На практике половина проблем возникает не в переводе, а в решениях, принятых до него — и стоят они дорого, потому что чинятся сменой адресов.
Язык определяется адресом, а не браузером
Соблазн велик: определить язык по настройкам браузера и показать «правильную» версию. Так делать не стоит.
Во-первых, один и тот же адрес начинает отдавать разное содержимое разным людям — это ломает кэширование и путает поисковые системы. Во-вторых, человек теряет возможность отправить ссылку коллеге: у того откроется другая версия. В-третьих, в Ташкенте выбор языка интерфейса в телефоне почти ничего не говорит о том, на каком языке человек предпочитает читать про ERP.
Правильный вариант скучный и надёжный: /ru/…, /uz/…, /en/…. Язык виден в адресе, ссылка всегда открывается той же, переключатель работает явно.
Адреса переводятся тоже
/uz/services — это полумера. Если узбекская версия делается ради узбекоязычного поиска, то и слово в адресе должно быть узбекским: /uz/xizmatlar.
Решать это нужно до запуска. Менять адреса потом можно, но за это платят: старые ссылки, накопленные позиции и настроенные редиректы — всё это придётся вести за собой годами.
Переключатель обязан вести на ту же страницу
Самая частая ошибка на сайтах с тремя языками: со страницы услуги переключатель уводит на главную. Формально язык сменился, фактически человека выкинули из того, что он читал.
Чтобы этого не происходило, сайт должен знать, что /ru/uslugi/vnedrenie-crm и /en/services/crm-implementation — одна и та же страница. То есть где-то должна существовать таблица соответствий; без неё переключатель обречён угадывать.
Непереведённая страница не должна притворяться переведённой
Кейс написан только по-русски. Что показывать на узбекской версии?
Худший вариант — открыть узбекский адрес с русским текстом внутри. Для читателя это обман, для поисковика — тонкая дублирующая страница.
Честный вариант: страницы на этом языке пока нет, она отдаёт 404 и не значится в карте сайта, а переключатель на других страницах просто не предлагает этот язык. Как только перевод появится — страница появляется вместе с ним.
Узбекский длиннее, чем кажется
Последнее, чисто практическое. Узбекские формулировки в среднем длиннее русских, и особенно это заметно на кнопках. «Бесплатный аудит» и «Bepul auditga yozilish» — это разная ширина, и вёрстка, проверенная только на русском, на узбекской версии поедет.
Проверять макеты нужно на самом длинном языке. Иначе первая же кнопка на главной окажется в две строки — ровно в той версии, ради которой всё и затевалось.