Internationalize UI (EN default) + 5-language switcher
English is now the default language. Added src/i18n.ts (t() helper + dictionary) covering all UI strings across App, Updater and ModelViewer, plus a language selector in Settings for English, Русский, Deutsch, Français, Español (persisted in localStorage). Backend error strings translated to English. Also removed the purple highlight on the resize handles (cursor-only). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
13
src/App.css
13
src/App.css
@ -82,9 +82,7 @@ button{font-family:var(--font)}
|
||||
.tzone:last-child{border-right:none}.tzone:hover{background:rgba(124,110,246,.06)}
|
||||
|
||||
/* draggable panel dividers */
|
||||
.vhandle{position:absolute;top:0;bottom:0;width:9px;cursor:col-resize;z-index:8;transition:background .12s}
|
||||
.vhandle:hover{background:rgba(124,110,246,.3)}
|
||||
.body-resizing-x .vhandle,body.resizing .vhandle{background:rgba(124,110,246,.45)}
|
||||
.vhandle{position:absolute;top:0;bottom:0;width:9px;cursor:col-resize;z-index:8}
|
||||
.main{position:relative}
|
||||
.main > .vhandle.mainh{left:var(--left-w,380px);transform:translateX(-4px)}
|
||||
.tgroup > .vhandle.grouph{right:var(--right-zone-w,220px);transform:translateX(4px)}
|
||||
@ -230,6 +228,15 @@ body.resizing{cursor:col-resize!important;user-select:none}
|
||||
.upd-go{flex:1;padding:8px 14px;border:none;border-radius:9px;font-size:12.5px;font-weight:600;color:#fff;cursor:pointer;
|
||||
background:linear-gradient(135deg,var(--accent-2),var(--accent-deep));box-shadow:0 8px 20px -8px rgba(124,110,246,.7)}
|
||||
.upd-go:hover{filter:brightness(1.08)}
|
||||
|
||||
/* language selector (Settings) */
|
||||
.langsel{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;flex:1}
|
||||
.langbtn{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:9px;border:1px solid var(--border);
|
||||
background:var(--panel);color:var(--muted);font-size:12px;cursor:pointer;font-family:var(--font);transition:.14s}
|
||||
.langbtn:hover{color:var(--txt);border-color:var(--accent)}
|
||||
.langbtn.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--accent-2),var(--accent-deep));box-shadow:0 6px 16px -6px rgba(124,110,246,.7)}
|
||||
.langbtn .lflag{font-size:14px;line-height:1}
|
||||
.langbtn .lname{font-weight:500}
|
||||
.tzone.push .ic{color:var(--add)}
|
||||
.tzone.push .val{color:var(--add)}
|
||||
.commit .row{display:flex;gap:10px;align-items:center}
|
||||
|
||||
Reference in New Issue
Block a user