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

Когда бизнес выходит на международный рынок, без продуманной мультиязычности сайт теряет позиции в поиске и отпугивает зарубежных клиентов. Мы реализуем интернационализацию под ключ — от стратегии URL до настройки hreflang и кеширования переводов. Наша команда берёт на себя весь цикл работ, обеспечивая корректную архитектуру и последующую поддержку, чтобы сайт стабильно работал на всех языках и масштабировался вместе с вашим ростом.

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

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

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

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

Отметим: когда клиент решил выйти на международный рынок, его 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 недели

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060