Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ pnpm dev # http://localhost:3000 ;Console 在 /_console/ ;管理员 adm
## 项目约定

- 对象机器名一律 `kpi_` 前缀(manifest namespace),字段 snake_case,配置键 camelCase;
- 用户可见文案默认中文(对象/字段 label 直接中文;`zh-CN` 翻译包只补 en 回退),遵守
- 用户可见文案默认中文(对象/字段 label 直接写中文;`zh-CN` 翻译包由 `pnpm i18n:extract`
(`os i18n extract`)从元数据 label 生成、随元数据改动重新生成、禁止手改词条,`en` 包手工
维护英文回退),遵守
os-project-std-copy 四条红线:无内部代号、无异常原文、名词按需求文档 §1.4 术语表、报错三段式;
- 数字字段四件套(小数位/最小值/最大值/单位)必须显式声明,禁用平台默认;
- 计分口径唯一真值在 `src/lib/scoring.ts`,任何得分都经它算,禁止在视图/公式字段里二次实现;
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
"validate": "objectstack validate",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"verify": "pnpm validate && pnpm typecheck && pnpm test",
"i18n:extract": "objectstack i18n extract --locales=zh-CN --no-metadata-forms --no-objects-only --filter=kpi_ --out=src/translations",
"i18n:extract:check": "objectstack i18n extract --locales=zh-CN --no-metadata-forms --no-objects-only --filter=kpi_ --out=src/translations --check",
"verify": "pnpm validate && pnpm typecheck && pnpm test && pnpm i18n:extract:check",
"e2e": "node scripts/e2e-flow.mjs",
"docs:docx": "node scripts/md2docx.cjs docs/00-设计方案.md docs/交付/KPI考核管理系统-设计方案-V1.0.docx",
"docs:manual": "node scripts/md2docx.cjs docs/手册/KPI考核管理系统-操作手册.md docs/交付/KPI考核管理系统-操作手册-V0.1.docx"
Expand Down
9 changes: 8 additions & 1 deletion src/translations/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
import { defineTranslationBundle } from '@objectstack/spec';
import { zhCNTranslations } from './zh-CN.objects.generated.js';

/**
* 元数据 label 本身即中文(客户业务语言),这里只提供英文回退,便于英文界面用户。
* 翻译包按平台正式写法组织:每个受支持语言各一个包。
*
* - `zh-CN`(默认语言)由 `pnpm i18n:extract` 从元数据中文 label 生成,
* 全部词条为工具产出,禁止手改;元数据 label 改动后重跑生成,
* `pnpm verify` 里的 `extract --check` 新鲜度门禁负责兜底。
* - `en` 手工维护,只为英文界面用户提供英文回退。
*/
export const KpiTranslationBundle = defineTranslationBundle({
'zh-CN': zhCNTranslations,
en: {
objects: {
kpi_indicator: { label: 'Indicator', pluralLabel: 'Indicators', fields: { code: { label: 'Code' }, name: { label: 'Name' }, category: { label: 'Category' }, owner_unit: { label: 'Department Segment' }, scoring_method: { label: 'Scoring Method' }, status: { label: 'Status' } } },
Expand Down
Loading
Loading