Впровадження багатомовності (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.

Вибір стратегії 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
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060