feat(overlays): add managed overlay package
This commit is contained in:
@@ -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))
|
||||
)
|
||||
})
|
||||
})
|
||||
@@ -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>
|
||||
>
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user