Настройка интернационализации (i18n) Strapi

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

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

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка интернационализации (i18n) Strapi
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

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

Этапы разработки

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

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

Интернационализация (i18n) в Strapi

Strapi имеет встроенный плагин i18n для многоязычного контента. Каждая запись существует в нескольких локалях независимо. API возвращает контент нужной локали по параметру ?locale=.

Включение i18n

# Плагин i18n входит в комплект Strapi
# Включить в config/plugins.js:
module.exports = {
  i18n: { enabled: true },
}

В Admin: Settings → Internationalization → Add a locale. Добавить ru, en, uk.

Локализация Content Type

В Content-Type Builder для каждого поля включить «Enable localization»:

// src/api/article/content-types/article/schema.json
{
  "options": { "draftAndPublish": true },
  "pluginOptions": { "i18n": { "localized": true } },
  "attributes": {
    "title": {
      "type": "string",
      "pluginOptions": { "i18n": { "localized": true } }
    },
    "content": {
      "type": "richtext",
      "pluginOptions": { "i18n": { "localized": true } }
    },
    "slug": {
      "type": "uid",
      "targetField": "title",
      "pluginOptions": { "i18n": { "localized": true } }
    },
    "publishedAt": {
      "type": "datetime"
      // НЕ локализовано — одна дата для всех языков
    }
  }
}

API-запросы с локалью

# Получить статьи на русском (default)
GET /api/articles?locale=ru

# Получить статьи на английском
GET /api/articles?locale=en

# Получить статью со всеми переводами
GET /api/articles/1?locale=all

# Создать перевод
POST /api/articles
{ "data": { "title": "English Title", "locale": "en", "localizations": [1] } }

Интеграция с Next.js i18n

// lib/strapi.ts
export async function getArticles(locale: string = 'ru') {
  const res = await fetch(
    `${process.env.STRAPI_URL}/api/articles?locale=${locale}&populate=cover,category`,
    { headers: { Authorization: `Bearer ${process.env.STRAPI_API_TOKEN}` } }
  )
  return res.json()
}
// next.config.js
module.exports = {
  i18n: {
    locales: ['ru', 'en', 'uk'],
    defaultLocale: 'ru',
  },
}

// app/[locale]/articles/page.tsx
export default async function ArticlesPage({ params }: { params: { locale: string } }) {
  const { data } = await getArticles(params.locale)
  return <ArticleList articles={data} />
}

Переключатель языков в Strapi Admin

Strapi admin автоматически показывает переключатель локалей в форме редактирования при включённом i18n. Переводы привязаны к одному документу — можно переходить между языками и видеть прогресс перевода.

Сроки

Настройка i18n для 3 языков с локализацией 3–5 content types — 1 день.