Files
EdgeSSH/frontend/src/language-bootstrap.ts
T
cmliu bb1c045dd5 feat: add multilingual support with language toggle and localization
- Implemented language loading and switching functionality, allowing users to toggle between Chinese (zh-CN) and English (en).
- Introduced a new LocalizedMessage interface and updated existing messages to support bilingual translations.
- Refactored event labels and server messages to use a translation array for better localization management.
- Added CSS styles for language toggle button and icons.
- Created a new language-bootstrap module to handle initial language setup based on local storage or browser settings.
2026-07-27 20:34:21 +08:00

14 lines
515 B
TypeScript

const LANGUAGE_STORAGE_KEY = 'workers-webssh.language';
let language: 'zh-CN' | 'en' | null = null;
try {
const stored = localStorage.getItem(LANGUAGE_STORAGE_KEY);
if (stored === 'zh-CN' || stored === 'en') language = stored;
} catch {
// The main module will use the browser language when storage is unavailable.
}
if (!language) language = navigator.language.toLowerCase().startsWith('zh') ? 'zh-CN' : 'en';
document.documentElement.lang = language;
document.documentElement.dataset.language = language;