Files
netrunner-landing/lib/locales.ts
T
nineap 32b4460b66 Локализует лендинг на 10 языков + RTL для арабского и персидского
Добавляет zh-CN, fa, ar, tr, uk, be, vi, uz словари (170 ключей, идентичная
вложенная структура) к существующим en/ru. lib/locales.ts — единый источник
списка локалей/дефолтной локали/RTL-набора вместо захардкоженного ["en","ru"]
в proxy.ts. language-switcher.tsx: переключение языка резало только
двухбуквенные коды регэкспом (/^\/[a-z]{2}/), из-за чего zh-CN никогда не
матчился и путь задваивался — заменено на honest-поиск по списку locales.

app/[lang]/layout.tsx — dir="rtl"/"ltr" на <html> по локали (SSR, в отличие
от реактивного клиентского переключения в netrunner-app). Header.tsx/
Footer.tsx — разбитое на три <span> имя бренда визуально переворачивалось
Flexbox'ом под dir=rtl ("VPNrunnerNet"), исправлено через dir="ltr" на
самом враппере.

BlogPreview/Faq/Pricing и обе blog-страницы: fallback на *_en-коллекцию
PocketBase, если для языка ещё нет переведённого контента (FAQ-ответы,
детали тарифов, посты блога не тянутся автоматически — это отдельный от
статических словарей CMS-контент), плюс i18n-ключи period1m/period6m/
period1y вместо захардкоженных ru/en-подписей периодов в Pricing.tsx.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-08 22:53:37 +07:00

35 lines
878 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Единый источник правды для поддерживаемых локалей — используется и в
// edge-мидлваре (proxy.ts), и в клиентских компонентах (language-switcher.tsx).
// Персидский/арабский — RTL, см. RTL_LOCALES и layout.tsx.
export const locales = [
"en",
"ru",
"zh-CN",
"fa",
"ar",
"tr",
"uk",
"be",
"vi",
"uz",
] as const;
export type Locale = (typeof locales)[number];
export const defaultLocale: Locale = "en";
export const RTL_LOCALES: Locale[] = ["ar", "fa"];
export const LOCALE_LABELS: Record<Locale, string> = {
en: "English",
ru: "Русский",
"zh-CN": "中文",
fa: "فارسی",
ar: "العربية",
tr: "Türkçe",
uk: "Українська",
be: "Беларуская",
vi: "Tiếng Việt",
uz: "Oʻzbekcha",
};