feat: 语言国际化重构

This commit is contained in:
DEV_DSW
2026-04-21 16:52:45 +08:00
parent 0c068e9f4d
commit 3349d41881
76 changed files with 4440 additions and 3232 deletions

View File

@@ -10,6 +10,77 @@ export const SUPPORTED_LANGUAGES = [
{ code: 'ja', label: '日本語' },
] as const;
export type Namespace = 'common' | 'conversation' | 'setting' | 'window' | 'sidebar' | 'login';
export type Namespace =
| 'common'
| 'settings'
| 'chat'
| 'channels'
| 'agents'
| 'skills'
| 'cron'
| 'login'
| 'models'
| 'knowledge'
| 'dashboard'
| 'task'
| 'scripts';
export const NAMESPACES = ['common', 'conversation', 'setting', 'window', 'sidebar', 'login'] as const satisfies readonly Namespace[];
export const NAMESPACES = [
'common',
'settings',
'chat',
'channels',
'agents',
'skills',
'cron',
'login',
'models',
'knowledge',
'dashboard',
'task',
'scripts',
] as const satisfies readonly Namespace[];
type RootNamespaceConfig = {
ns: Namespace;
stripRoot?: boolean;
};
export const ROOT_NAMESPACE_MAP = {
app: { ns: 'common' },
window: { ns: 'common' },
dialog: { ns: 'common' },
theme: { ns: 'common' },
language: { ns: 'common' },
common: { ns: 'common' },
sidebar: { ns: 'common' },
settings: { ns: 'settings', stripRoot: true },
conversation: { ns: 'chat', stripRoot: true },
channels: { ns: 'channels', stripRoot: true },
agents: { ns: 'agents', stripRoot: true },
skills: { ns: 'skills', stripRoot: true },
cron: { ns: 'cron', stripRoot: true },
login: { ns: 'login', stripRoot: true },
models: { ns: 'models', stripRoot: true },
knowledge: { ns: 'knowledge', stripRoot: true },
dashboard: { ns: 'dashboard', stripRoot: true },
home: { ns: 'dashboard', stripRoot: true },
task: { ns: 'task', stripRoot: true },
scripts: { ns: 'scripts', stripRoot: true },
} as const satisfies Record<string, RootNamespaceConfig>;
export const MESSAGE_ROOT_EXPORTS = {
common: ['app', 'window', 'dialog', 'theme', 'language', 'common', 'sidebar'],
settings: ['settings'],
chat: ['conversation'],
channels: ['channels'],
agents: ['agents'],
skills: ['skills'],
cron: ['cron'],
login: ['login'],
models: ['models'],
knowledge: ['knowledge'],
dashboard: ['dashboard'],
task: ['task'],
scripts: ['scripts'],
} as const satisfies Record<Namespace, readonly string[]>;