feat(overlays): add managed overlay package

This commit is contained in:
Maofeng
2026-09-28 23:13:44 +08:00
parent bca874fd30
commit 0ec968c344
34 changed files with 2340 additions and 0 deletions
@@ -0,0 +1,14 @@
import { describe, expect, it } from "vitest"
import { overlayCatalogLocales } from "./catalogs"
import { messages as englishMessages } from "./en-US"
import { messages as simplifiedChineseMessages } from "./zh-Hans"
describe("overlay message catalogs", () => {
it("provide the same messages for every supported locale", () => {
expect(overlayCatalogLocales).toEqual(["en-US", "zh-Hans"])
expect(new Set(Object.keys(simplifiedChineseMessages))).toEqual(
new Set(Object.keys(englishMessages))
)
})
})
+16
View File
@@ -0,0 +1,16 @@
import type { overlayMessages } from "../messages"
export const overlayCatalogLocales = ["en-US", "zh-Hans"] as const
interface MessageDescriptorMap {
readonly [key: string]: {
readonly id: string
}
}
type MessageId<T extends MessageDescriptorMap> = T[keyof T]["id"]
export type OverlayCatalogLocale = (typeof overlayCatalogLocales)[number]
export type OverlayMessageCatalog = Readonly<
Record<MessageId<typeof overlayMessages>, string>
>
+11
View File
@@ -0,0 +1,11 @@
import type { OverlayMessageCatalog } from "./catalogs"
export const locale = "en-US"
export const languageTag = "en-US"
export const messages = {
"overlays.actions.cancel": "Cancel",
"overlays.actions.close": "Close",
"overlays.actions.confirm": "Confirm",
"overlays.actions.okay": "OK",
"overlays.prompt.inputLabel": "Value",
} as const satisfies OverlayMessageCatalog
+11
View File
@@ -0,0 +1,11 @@
import type { OverlayMessageCatalog } from "./catalogs"
export const locale = "zh-Hans"
export const languageTag = "zh-Hans"
export const messages = {
"overlays.actions.cancel": "取消",
"overlays.actions.close": "关闭",
"overlays.actions.confirm": "确认",
"overlays.actions.okay": "确定",
"overlays.prompt.inputLabel": "输入值",
} as const satisfies OverlayMessageCatalog