Мультиязычная архитектура и поддержка RTL/LTR
Надежная инфраструктура на базе next-intl, поддерживающая 7 мировых языков с автоперенаправлением и кэшированием.
1. Маршрутизация на основе локалей (Locale Routing)
Для безупречного международного SEO каждый URL включает префикс кода языка (напр., /ru или /en).
src/app/[countryCode]/layout.tsx
typescriptimport { 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для английского).