diff options
| author | Fuwn <[email protected]> | 2026-01-24 13:09:50 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-01-24 13:09:50 +0000 |
| commit | 396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch) | |
| tree | b9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /src/lib/lang.ts | |
| download | umami-main.tar.xz umami-main.zip | |
Created from https://vercel.com/new
Diffstat (limited to 'src/lib/lang.ts')
| -rw-r--r-- | src/lib/lang.ts | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/lib/lang.ts b/src/lib/lang.ts new file mode 100644 index 0000000..f874640 --- /dev/null +++ b/src/lib/lang.ts @@ -0,0 +1,111 @@ +import { + arSA, + be, + bg, + bn, + bs, + ca, + cs, + da, + de, + el, + enGB, + enUS, + es, + faIR, + fi, + fr, + he, + hi, + hr, + hu, + id, + it, + ja, + km, + ko, + lt, + mn, + ms, + nb, + nl, + pl, + pt, + ptBR, + ro, + ru, + sk, + sl, + sv, + ta, + th, + tr, + uk, + uz, + vi, + zhCN, + zhTW, +} from 'date-fns/locale'; + +export const languages = { + 'ar-SA': { label: 'العربية', dateLocale: arSA, dir: 'rtl' }, + 'be-BY': { label: 'Беларуская', dateLocale: be }, + 'bg-BG': { label: 'български език', dateLocale: bg }, + 'bn-BD': { label: 'বাংলা', dateLocale: bn }, + 'bs-BA': { label: 'Bosanski', dateLocale: bs }, + 'ca-ES': { label: 'Català', dateLocale: ca }, + 'cs-CZ': { label: 'Čeština', dateLocale: cs }, + 'da-DK': { label: 'Dansk', dateLocale: da }, + 'de-CH': { label: 'Schwiizerdütsch', dateLocale: de }, + 'de-DE': { label: 'Deutsch', dateLocale: de }, + 'el-GR': { label: 'Ελληνικά', dateLocale: el }, + 'en-GB': { label: 'English (UK)', dateLocale: enGB }, + 'en-US': { label: 'English (US)', dateLocale: enUS }, + 'es-ES': { label: 'Español', dateLocale: es }, + 'fa-IR': { label: 'فارسی', dateLocale: faIR, dir: 'rtl' }, + 'fi-FI': { label: 'Suomi', dateLocale: fi }, + 'fo-FO': { label: 'Føroyskt' }, + 'fr-FR': { label: 'Français', dateLocale: fr }, + 'ga-ES': { label: 'Galacian (Spain)', dateLocale: es }, + 'he-IL': { label: 'עברית', dateLocale: he }, + 'hi-IN': { label: 'हिन्दी', dateLocale: hi }, + 'hr-HR': { label: 'Hrvatski', dateLocale: hr }, + 'hu-HU': { label: 'Hungarian', dateLocale: hu }, + 'id-ID': { label: 'Bahasa Indonesia', dateLocale: id }, + 'it-IT': { label: 'Italiano', dateLocale: it }, + 'ja-JP': { label: '日本語', dateLocale: ja }, + 'km-KH': { label: 'ភាសាខ្មែរ', dateLocale: km }, + 'ko-KR': { label: '한국어', dateLocale: ko }, + 'lt-LT': { label: 'Lietuvių', dateLocale: lt }, + 'mn-MN': { label: 'Монгол', dateLocale: mn }, + 'ms-MY': { label: 'Malay', dateLocale: ms }, + 'my-MM': { label: 'မြန်မာဘာသာ', dateLocale: enUS }, + 'nl-NL': { label: 'Nederlands', dateLocale: nl }, + 'nb-NO': { label: 'Norsk Bokmål', dateLocale: nb }, + 'pl-PL': { label: 'Polski', dateLocale: pl }, + 'pt-BR': { label: 'Português do Brasil', dateLocale: ptBR }, + 'pt-PT': { label: 'Português', dateLocale: pt }, + 'ro-RO': { label: 'Română', dateLocale: ro }, + 'ru-RU': { label: 'Русский', dateLocale: ru }, + 'si-LK': { label: 'සිංහල', dateLocale: id }, + 'sk-SK': { label: 'Slovenčina', dateLocale: sk }, + 'sl-SI': { label: 'Slovenščina', dateLocale: sl }, + 'sv-SE': { label: 'Svenska', dateLocale: sv }, + 'ta-IN': { label: 'தமிழ்', dateLocale: ta }, + 'th-TH': { label: 'ภาษาไทย', dateLocale: th }, + 'tr-TR': { label: 'Türkçe', dateLocale: tr }, + 'uk-UA': { label: 'українська', dateLocale: uk }, + 'ur-PK': { label: 'Urdu (Pakistan)', dateLocale: uk, dir: 'rtl' }, + 'uz-UZ': { label: 'O‘zbekcha', dateLocale: uz }, + 'vi-VN': { label: 'Tiếng Việt', dateLocale: vi }, + 'zh-CN': { label: '中文', dateLocale: zhCN }, + 'zh-TW': { label: '中文(繁體)', dateLocale: zhTW }, +}; + +export function getDateLocale(locale: string) { + return languages[locale]?.dateLocale || enUS; +} + +export function getTextDirection(locale: string) { + return languages[locale]?.dir || 'ltr'; +} |