- 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.
14 lines
515 B
TypeScript
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;
|