feat: integrate Pi backend and Pi Web

This commit is contained in:
luckyyzh
2026-07-30 19:37:53 +08:00
commit 7392ab9dd7
1390 changed files with 337197 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
import assert from "node:assert/strict";
import test from "node:test";
import {
getLocalePlugin,
getSupportedLocales,
registerLocale,
resolveBrowserLocale,
} from "./registry.ts";
test("uses the first supported browser language and falls back to English", () => {
assert.equal(resolveBrowserLocale(["zh-CN", "en-US"]), "zh-CN");
assert.equal(resolveBrowserLocale(["zh", "en-US"]), "zh-CN");
assert.equal(resolveBrowserLocale(["en-US", "zh-CN"]), "en");
assert.equal(resolveBrowserLocale(["fr-FR", "zh-CN"]), "zh-CN");
assert.equal(resolveBrowserLocale(["fr-FR"]), "en");
assert.equal(resolveBrowserLocale([]), "en");
});
test("returns only registered locales", () => {
assert.deepEqual(getSupportedLocales(), ["en", "zh-CN"]);
assert.equal(getLocalePlugin("en").id, "en");
assert.equal(getLocalePlugin("missing"), undefined);
});
test("allows a new locale plugin and rejects duplicate ids", () => {
registerLocale({ id: "test", label: "Test", messages: { "common.ok": "OK" } });
assert.equal(getLocalePlugin("test")?.label, "Test");
assert.throws(() => registerLocale({ id: "test", label: "Again", messages: {} }));
});