Налаштування інтернаціоналізації (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 день.