mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-06-13 18:31:16 +08:00
test(i18n): add user-visible localization ratchet
This commit is contained in:
@@ -978,7 +978,7 @@ export class GraphRenderer {
|
||||
(hasRight ? splitX : W) - pad * 2 - (hasRight ? gutter / 2 : 0),
|
||||
),
|
||||
h: Math.max(0, H - pad * 2 - 6),
|
||||
label: '客观层',
|
||||
label: 'Objective Layer',
|
||||
labelKey: 'graph.scope.objective',
|
||||
tint: 'rgba(26, 35, 50, 0.42)',
|
||||
key: 'objective',
|
||||
@@ -1013,7 +1013,7 @@ export class GraphRenderer {
|
||||
y: yTop,
|
||||
w: rightW,
|
||||
h: fullH,
|
||||
label: '用户 POV',
|
||||
label: 'User POV',
|
||||
labelKey: 'graph.scope.userPov',
|
||||
tint: 'rgba(32, 48, 40, 0.42)',
|
||||
key: 'user',
|
||||
@@ -1048,7 +1048,7 @@ export class GraphRenderer {
|
||||
y: yc,
|
||||
w: rightW,
|
||||
h: ph,
|
||||
label: `角色 POV · ${displayName}`,
|
||||
label: `Character POV · ${displayName}`,
|
||||
labelKey: 'graph.scope.characterPov',
|
||||
labelParams: { name: displayName },
|
||||
tint: 'rgba(55, 42, 28, 0.38)',
|
||||
@@ -1071,7 +1071,7 @@ export class GraphRenderer {
|
||||
y: uy,
|
||||
w: rightW,
|
||||
h: userStripH,
|
||||
label: '用户 POV',
|
||||
label: 'User POV',
|
||||
labelKey: 'graph.scope.userPov',
|
||||
tint: 'rgba(32, 48, 40, 0.42)',
|
||||
key: 'user',
|
||||
@@ -1100,12 +1100,12 @@ export class GraphRenderer {
|
||||
});
|
||||
const panels = [];
|
||||
const objectiveRect = makeRect(width * 0.5, height * 0.5, width * 0.82, height * 0.78);
|
||||
panels.push({ ...objectiveRect, label: '客观层', labelKey: 'graph.scope.objective', tint: 'rgba(87, 199, 255, 0.02)', key: 'objective' });
|
||||
panels.push({ ...objectiveRect, label: 'Objective Layer', labelKey: 'graph.scope.objective', tint: 'rgba(87, 199, 255, 0.02)', key: 'objective' });
|
||||
for (const n of objective) n.regionRect = objectiveRect;
|
||||
|
||||
if (userPov.length) {
|
||||
const userRect = makeRect(width * 0.68, height * 0.68, width * 0.44, height * 0.42);
|
||||
panels.push({ ...userRect, label: '用户 POV', labelKey: 'graph.scope.userPov', tint: 'rgba(125, 255, 155, 0.02)', key: 'user' });
|
||||
panels.push({ ...userRect, label: 'User POV', labelKey: 'graph.scope.userPov', tint: 'rgba(125, 255, 155, 0.02)', key: 'user' });
|
||||
for (const n of userPov) n.regionRect = userRect;
|
||||
}
|
||||
|
||||
@@ -1121,7 +1121,7 @@ export class GraphRenderer {
|
||||
const rect = makeRect(cx, cy, width * 0.34, height * 0.36);
|
||||
const key = `char:${owner || 'unknown'}`;
|
||||
const displayName = owner || translateUi('graph.scope.unknownCharacter');
|
||||
panels.push({ ...rect, label: `角色 POV · ${displayName}`, labelKey: 'graph.scope.characterPov', labelParams: { name: displayName }, tint: 'rgba(255, 179, 71, 0.02)', key });
|
||||
panels.push({ ...rect, label: `Character POV · ${displayName}`, labelKey: 'graph.scope.characterPov', labelParams: { name: displayName }, tint: 'rgba(255, 179, 71, 0.02)', key });
|
||||
for (const n of nodes) n.regionRect = rect;
|
||||
});
|
||||
|
||||
|
||||
@@ -14342,7 +14342,7 @@ function _refreshRuntimeStatus() {
|
||||
const upgradeState = graphPersistence.authorityUpgradeState || {};
|
||||
const text = formatUiStatusText(runtimeStatus) || t("status.idle");
|
||||
const meta = formatUiStatusMeta(runtimeStatus) || t("status.initial.runtime.detail");
|
||||
const upgradeText = upgradeState.text || graphPersistence.authorityUpgradeText || "";
|
||||
const upgradeText = formatUiStatusText(upgradeState) || graphPersistence.authorityUpgradeText || "";
|
||||
const displayMeta = upgradeText ? `${meta} · ${upgradeText}` : meta;
|
||||
_setText("bme-status-text", text);
|
||||
_setText("bme-status-meta", displayMeta);
|
||||
|
||||
@@ -21,15 +21,23 @@ export const BATCH_STAGE_SEVERITY = {
|
||||
// UI 状态工厂
|
||||
// ═══════════════════════════════════════════════════════════
|
||||
|
||||
export function createUiStatus(text = "待命", meta = "", level = "idle") {
|
||||
export function createUiStatus(text = "", meta = "", level = "idle") {
|
||||
if (text && typeof text === "object") {
|
||||
return createI18nStatus({
|
||||
...(text || {}),
|
||||
level: text.level || level || "idle",
|
||||
});
|
||||
}
|
||||
if (!text && !meta) {
|
||||
return createI18nStatus({
|
||||
textKey: "status.idle",
|
||||
textFallback: "Idle",
|
||||
metaFallback: "",
|
||||
level,
|
||||
});
|
||||
}
|
||||
return {
|
||||
text: String(text || "待命"),
|
||||
text: String(text || "Idle"),
|
||||
meta: String(meta || ""),
|
||||
level,
|
||||
updatedAt: Date.now(),
|
||||
@@ -40,7 +48,7 @@ export function createGraphPersistenceState() {
|
||||
return {
|
||||
loadState: "no-chat",
|
||||
chatId: "",
|
||||
reason: "当前尚未进入聊天",
|
||||
reason: t("status.noChat", {}, { fallback: "No chat is currently open" }),
|
||||
attemptIndex: 0,
|
||||
revision: 0,
|
||||
lastPersistedRevision: 0,
|
||||
@@ -153,8 +161,8 @@ export function createGraphPersistenceState() {
|
||||
authorityDegradedReason: "",
|
||||
authorityUpgradeState: createAuthorityUpgradeState(),
|
||||
authorityUpgradeMode: "standalone",
|
||||
authorityUpgradeText: "纯前端模式",
|
||||
authorityUpgradeMeta: "未检测到可用服务端增强,BME 将继续本地运行",
|
||||
authorityUpgradeText: "Frontend-only mode",
|
||||
authorityUpgradeMeta: "No server-side enhancement detected; BME will continue running locally",
|
||||
authorityUpgradeLevel: "idle",
|
||||
authorityUpgradeReady: false,
|
||||
authorityMigrationState: "idle",
|
||||
|
||||
Reference in New Issue
Block a user