45 lines
1.6 KiB
TypeScript
45 lines
1.6 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import { localizeNodeDefinition, translate } from "./i18n.tsx";
|
|
|
|
test("translate returns chinese and english labels for shared frontend keys", () => {
|
|
assert.equal(translate("en", "navProjects"), "Projects");
|
|
assert.equal(translate("zh", "navProjects"), "项目");
|
|
assert.equal(translate("en", "templateSaved"), "Saved template");
|
|
assert.equal(translate("zh", "templateSaved"), "已保存模板");
|
|
assert.equal(translate("en", "navWorkflows"), "Workflows");
|
|
assert.equal(translate("zh", "navWorkflows"), "工作流");
|
|
assert.equal(translate("en", "navNodes"), "Nodes");
|
|
assert.equal(translate("zh", "navNodes"), "节点");
|
|
assert.equal(
|
|
translate("en", "invalidConnectionCycle"),
|
|
"This edge would create a cycle.",
|
|
);
|
|
assert.equal(
|
|
translate("zh", "dragNodeToCanvas"),
|
|
"将节点拖放到这里即可在画布中创建。",
|
|
);
|
|
assert.equal(
|
|
translate("en", "workflowCreatedName", { count: 3 }),
|
|
"Delivery Normalize 3",
|
|
);
|
|
assert.equal(
|
|
translate("zh", "workflowCreatedName", { count: 3 }),
|
|
"交付标准化 3",
|
|
);
|
|
});
|
|
|
|
test("localize built-in node definitions into chinese labels", () => {
|
|
const localized = localizeNodeDefinition("zh", {
|
|
id: "validate-structure",
|
|
name: "Validate Structure",
|
|
description: "Validate required directories and metadata files.",
|
|
category: "Inspect",
|
|
});
|
|
|
|
assert.equal(localized.name, "校验目录结构");
|
|
assert.equal(localized.category, "检查");
|
|
assert.match(localized.description ?? "", /元数据/);
|
|
});
|