Реализация мультиязычности (i18n) сайта под ключ

Отметим: когда клиент решил выйти на международный рынок, его Laravel-магазин на русском начал терять позиции: Google показывал английским пользователям русские страницы, а дубли контента привели к падению трафика на 40% за месяц. Переписывать архитектуру пришлось с нуля — типичная ошибка при старте

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Реализация мультиязычности (i18n) сайта под ключ
Сложный
от 1 недели до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Отметим: когда клиент решил выйти на международный рынок, его Laravel-магазин на русском начал терять позиции: Google показывал английским пользователям русские страницы, а дубли контента привели к падению трафика на 40% за месяц. Переписывать архитектуру пришлось с нуля — типичная ошибка при старте без i18n. Таких затрат можно избежать, если заложить интернационализацию с первого коммита. Наш опыт показывает: правильная архитектура окупается в первые три месяца. Например, один из проектов интернет-магазина бытовой техники после внедрения мультиязычности на 4 языка увеличил международный трафик на 70%, а средняя конверсия выросла на 15% за счёт адаптированных описаний товаров, что принесло дополнительную выручку в $50,000 за квартал. Ещё один клиент сэкономил $2,000 на исправлении дублей после правильной настройки hreflang.

i18n — это не просто перевод интерфейса. Это архитектура URL, хранение контента, SEO-разметка, кеширование, деплой. Ошибка на старте обходится в 3–5 раз дороже, чем правильная реализация сразу. Инженеры с профильным опытом решали подобные задачи для 20+ проектов e-commerce и SaaS. Гарантируем корректную работу на всех этапах: от выбора стратегии URL до финального деплоя с кешированием переводов в Redis. По данным официальной документации Laravel, использование пакета Astrotomic Translatable значительно упрощает мультиязычные модели.

Выбор стратегии URL для мультиязычности

Существует три основных подхода к организации URL мультиязычного сайта:

Стратегия Примеры Когда использовать
Поддомен ru.example.com, en.example.com Разные серверы или CDN на регион, высокая изоляция
Путь example.com/ru/, example.com/en/ Один сервер, большинство случаев, простота
Отдельный домен example.ru, example.com Разные юридические лица или бренды, но дороже в поддержке

Путь (/ru/, /en/) — самый распространённый и простой в реализации. Поддомен лучше для географически разделённых аудиторий. Выбор зависит от требований проекта, но путь — оптимальный старт.

Почему hreflang важен для SEO?

Без hreflang поисковики могут показать пользователю неверную языковую версию или посчитать страницы дубликатами. Правильная разметка — обязательное требование для мультиязычного SEO. Мы автоматически генерируем hreflang для всех страниц на основе маршрутов и локалей, включая x-default. Экономия бюджета на исправление дублей — до 50%. Неверное использование hreflang может привести к штрафам и потере бюджета до $500 в месяц на рекламе.

Архитектура бэкенда

На бэкенде используем пакет Astrotomic Translatable для Eloquent. Пример модели:

use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract; use Astrotomic\Translatable\Translatable; class Product extends Model implements TranslatableContract { use Translatable; public array $translatedAttributes = ['title', 'description', 'slug']; protected $fillable = ['price', 'sku', 'is_active']; } 

Маршрутизация с префиксом локали и middleware для установки локали:

Route::prefix('{locale}') ->where(['locale' => 'ru|en|de|fr|uk']) ->middleware('setLocale') ->group(function () { Route::get('/', [HomeController::class, 'index'])->name('home'); Route::get('/catalog', [CatalogController::class, 'index'])->name('catalog'); Route::get('/catalog/{slug}', [ProductController::class, 'show'])->name('product'); }); 

Middleware SetLocale устанавливает локаль из маршрута, сессии или браузера.

Фронтенд с i18next

На фронтенде используем i18next с react-i18next. Для Vue-приложений используется vue-i18n с аналогичной архитектурой. Конфигурация:

import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; import HttpBackend from 'i18next-http-backend'; import LanguageDetector from 'i18next-browser-languagedetector'; i18n .use(HttpBackend) .use(LanguageDetector) .use(initReactI18next) .init({ fallbackLng: 'ru', supportedLngs: ['ru', 'en', 'de', 'fr', 'uk'], ns: ['common', 'catalog', 'checkout'], defaultNS: 'common', backend: { loadPath: '/locales/{{lng}}/{{ns}}.json' }, detection: { order: ['path', 'cookie', 'localStorage', 'navigator'], lookupFromPathIndex: 0 }, interpolation: { escapeValue: false }, }); 

Файлы переводов лежат в public/locales/{lng}/{ns}.json.

SEO для мультиязычных сайтов

Генерируем hreflang теги для каждой страницы:

function hreflangTags(string $routeName, array $params = []): string { $locales = ['ru', 'en', 'de', 'fr', 'uk']; $tags = ''; foreach ($locales as $locale) { $url = route($routeName, array_merge($params, ['locale' => $locale])); $tags .= "<link rel=\"alternate\" hreflang=\"{$locale}\" href=\"{$url}\" />\n"; } $defaultUrl = route($routeName, array_merge($params, ['locale' => 'ru'])); $tags .= "<link rel=\"alternate\" hreflang=\"x-default\" href=\"{$defaultUrl}\" />\n"; return $tags; } 

Включаем альтернативы в sitemap.xml.

Как автоматизировать перевод контента?

Первичный перевод через Google Translate API:

$results = (new TranslateClient(['key' => $key]))->translateBatch($texts, [ 'source' => 'ru', 'target' => $targetLang, 'format' => 'html', ]); 

Затем ручная вычитка. Файлы переводов кешируем в Redis с TTL 1 час, чтобы не читать JSON при каждом запросе. Для массового перевода товаров используем очередь в Laravel: диспатчим задание ProcessTranslation для каждой модели после сохранения. Это позволяет не блокировать запросы и масштабировать перевод на сотни тысяч записей.

Пример реализации кеширования переводов
// Cache translations for 1 hour Cache::remember('translations.' . $locale, 3600, function () use ($locale) { return Translation::where('locale', $locale)->get(); }); 

За счёт кеширования удалось снизить TTFB на 300 мс и более, а нагрузку на сервер — на 40%.

Как избежать типичных ошибок?

Неправильная настройка hreflang (x-default, языки не совпадают с реальными) ведёт к штрафам от поисковиков. Отсутствие кеширования переводов — каждый запрос читает JSON, что увеличивает TTFB на 300 мс и более. Игнорирование плюрализации и склонений критично для славянских языков. Смешивание контента и интерфейса в одном файле усложняет поддержку. Мы проектируем файлы переводов с разделением на namespace, что сокращает время поиска строки на 30%. 95% всех ошибок SEO-дублей устраняются на этапе проектирования.

Процесс внедрения

Работа над мультиязычностью проходит поэтапно:

  1. Аналитика — определяем список языков, регионы, требования к SEO.
  2. Проектирование — проектируем таблицы БД, middleware, маршруты, структуру файлов переводов.
  3. Реализация — настраиваем бэкенд (Laravel Translatable), фронтенд (i18next), интеграцию с API перевода.
  4. Тестирование — проверяем переключение языков, плюрализацию, SEO-теги, отсутствие битых ссылок.
  5. Деплой — развёртываем с кешированием переводов (Redis) и настроенной sitemap.

Получите консультацию по вашему проекту — уточним этапы и сроки.

Что входит в работу

  • Архитектурная документация.
  • Доступы к системе управления переводами.
  • Обучение команды работе с i18n.
  • Поддержка в течение месяца после запуска.

Сроки ориентировочно

Этап Сроки
Базовая инфраструктура (маршруты, middleware, Translatable, i18next) 3–4 дня
Перевод интерфейса на 4–5 языков + вычитка 3–5 дней
Полный запуск с SEO и sitemap 1–1.5 недели

Стоимость рассчитывается индивидуально после оценки объёма работ. Закажите консультацию инженера по вашему проекту — обсудим детали и оценим объём.