Merge branch 'feature/1.62' into feature/1.63 (rail labels)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// The rail's labels and the page titles name their screen words by key (labelKey, TITLE_KEYS),
|
||||
// so a search for t('…') does not find them: each must still be in both languages.
|
||||
// (ce35145 removed 'models' and 'gallery' as unused; the rail then showed the raw keys.)
|
||||
import assert from 'node:assert/strict';
|
||||
import fs from 'node:fs';
|
||||
import { i18n } from '../web/modules/locales.js';
|
||||
|
||||
const read = name => fs.readFileSync(new URL(`../web/modules/${name}`, import.meta.url), 'utf8');
|
||||
const railKeys = [...read('ui_shell_rail.js').matchAll(/labelKey: '([A-Za-z]+)'/g)].map(match => match[1]);
|
||||
const titles = read('ui_shell_nav.js').match(/const TITLE_KEYS = \{([\s\S]*?)\};/)[1];
|
||||
const titleKeys = [...titles.matchAll(/: '([A-Za-z]+)'/g)].map(match => match[1]);
|
||||
|
||||
assert.ok(railKeys.includes('models') && railKeys.includes('gallery'));
|
||||
assert.ok(titleKeys.includes('gallery'));
|
||||
for (const key of new Set([...railKeys, ...titleKeys])) {
|
||||
for (const lang of ['zh', 'en']) assert.ok(i18n[lang][key], `${lang} has no '${key}'`);
|
||||
}
|
||||
@@ -2602,6 +2602,8 @@ export const i18n = {
|
||||
editRaw: '编辑全文',
|
||||
findPlaceholder: '查找...',
|
||||
replacePlaceholder: '替换为...',
|
||||
models: '模型',
|
||||
gallery: '图库',
|
||||
recipeTitle: '工作流',
|
||||
recipeSaveCurrent: '保存当前工作流',
|
||||
recipeSaveTitle: "保存为工作流",
|
||||
@@ -6040,6 +6042,8 @@ export const i18n = {
|
||||
editRaw: 'Edit full text',
|
||||
findPlaceholder: 'Find...',
|
||||
replacePlaceholder: 'Replace with...',
|
||||
models: 'Models',
|
||||
gallery: 'Gallery',
|
||||
recipeTitle: 'Workflows',
|
||||
recipeSaveCurrent: 'Save Current Workflow',
|
||||
recipeSaveTitle: "Save workflow",
|
||||
|
||||
Reference in New Issue
Block a user