cmux/web/i18n/routing.ts
Serhii Koval c0ec7dc13f
feat(i18n): add Ukrainian (uk) localization (#2226)
* feat: add Ukrainian (uk) website translation

Translate all 681 keys from en.json to uk.json for the cmux website.
Preserves all placeholders and HTML-like tags. Testimonials kept in original language.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: register Ukrainian locale in web i18n routing config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add Ukrainian translations to Localizable.xcstrings (916 keys)

Translated all 916 string keys from English to natural Ukrainian.
All format specifiers (%@, %lld, %1$@, etc.) preserved.
JSON syntax validated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add Ukrainian README translation (README.uk.md)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add Ukrainian language link to all README language selectors

Added Українська link to the language selector paragraph in all 20 existing
README files (README.md and README.*.md), pointing to README.uk.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix truncated Ukrainian translations for cli.claude-teams.usage and cli.omo.usage

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-26 21:27:36 -07:00

55 lines
901 B
TypeScript

import { defineRouting } from "next-intl/routing";
export const locales = [
"en",
"ja",
"zh-CN",
"zh-TW",
"ko",
"de",
"es",
"fr",
"it",
"da",
"pl",
"ru",
"bs",
"ar",
"no",
"pt-BR",
"th",
"tr",
"km",
"uk",
] as const;
export type Locale = (typeof locales)[number];
export const localeNames: Record<Locale, string> = {
en: "English",
ja: "日本語",
"zh-CN": "简体中文",
"zh-TW": "繁體中文",
ko: "한국어",
de: "Deutsch",
es: "Español",
fr: "Français",
it: "Italiano",
da: "Dansk",
pl: "Polski",
ru: "Русский",
bs: "Bosanski",
ar: "العربية",
no: "Norsk",
"pt-BR": "Português (Brasil)",
th: "ไทย",
tr: "Türkçe",
km: "ភាសាខ្មែរ",
uk: "Українська",
};
export const routing = defineRouting({
locales,
defaultLocale: "en",
localePrefix: "as-needed",
});