ДокументацияРуководство РазработчикаИнтернационализация и Поддержка RTL/LTR

Мультиязычная архитектура и поддержка RTL/LTR

Надежная инфраструктура на базе next-intl, поддерживающая 7 мировых языков с автоперенаправлением и кэшированием.

1. Маршрутизация на основе локалей (Locale Routing)

Для безупречного международного SEO каждый URL включает префикс кода языка (напр., /ru или /en).

src/app/[countryCode]/layout.tsx
typescript
import { NextIntlClientProvider } from "next-intl"
import { getMessages } from "next-intl/server"
import { isRtlLocale } from "@lib/util/is-rtl"
export default async function StoreLayout({
children,
params,
}: {
children: React.ReactNode
params: Promise<{ countryCode: string }>
}) {
const { countryCode } = await params
const messages = await getMessages()
const isRtl = isRtlLocale()
const dir = isRtl ? "rtl" : "ltr"
return (
<html lang={countryCode} dir={dir}>
<body className={isRtl ? "font-vazirmatn" : "font-inter"}>
<NextIntlClientProvider messages={messages}>
{children}
</NextIntlClientProvider>
</body>
</html>
)
}

2. Стратегия логических свойств CSS (Logical Properties)

Используются логические классы Tailwind CSS (ms, me, start, end) для адаптации интерфейса под направления LTR и RTL.

messages/fa.json
json
{
"Index": {
"title": "مستندات Loomix",
"subtitle": "راهنمای جامع ساخت پلتفرم‌های تجارت الکترونیک ماژولار."
},
"Cart": {
"title": "سبد خرید شما",
"checkout": "ادامه فرآیند خرید"
}
}

Настройка переменных окружения (Environment Variables)

Для настройки языка и региона по умолчанию в проекте Storefront задайте следующие переменные в файле .env:

.env (Конфигурация языка и региона)
bash
# Регион по умолчанию, если не определен в заголовках
NEXT_PUBLIC_DEFAULT_REGION=us
# Язык витрины по умолчанию
DEFAULT_LOCALE=en-US
  • NEXT_PUBLIC_DEFAULT_REGION: Задает код страны по умолчанию при отсутствии заголовков геолокации (x-vercel-country) (рекомендуется: us для международных магазинов или RU для РФ).
  • DEFAULT_LOCALE: Определяет основной язык интерфейса (рекомендуется: ru-RU для русского или en-US для английского).