feat(ui): add framework-neutral localization support

- add a lightweight UI i18n provider with translation and locale contexts\n- localize accessibility labels across breadcrumb, carousel, dialog, pagination, sheet, sidebar, spinner, and toast components\n- integrate calendar locale data without coupling UI components to Lingui\n- publish tree-shakeable catalogs for eight common locales
This commit is contained in:
Maofeng
2026-07-30 14:47:51 +08:00
parent 0768e8fa29
commit ae1798f6f4
20 changed files with 551 additions and 87 deletions
+33
View File
@@ -0,0 +1,33 @@
export const uiCatalogLocales = [
"de",
"en",
"es",
"fr",
"ja",
"ko",
"zh-Hans",
"zh-Hant",
] as const
export const uiMessageIds = [
"ui.breadcrumb.label",
"ui.carousel.nextSlide",
"ui.carousel.previousSlide",
"ui.common.close",
"ui.common.loading",
"ui.common.more",
"ui.pagination.label",
"ui.pagination.more",
"ui.pagination.next",
"ui.pagination.nextPage",
"ui.pagination.previous",
"ui.pagination.previousPage",
"ui.sidebar.description",
"ui.sidebar.title",
"ui.sidebar.toggle",
"ui.toast.close",
] as const
export type UiCatalogLocale = (typeof uiCatalogLocales)[number]
export type UiMessageId = (typeof uiMessageIds)[number]
export type UiMessageCatalog = Readonly<Record<UiMessageId, string>>