# Web UI Integration - Japanese Language Mode ## Changes Made to `bot/static/index.html` ### 1. **Tab Navigation Updated** (Line ~660) Added new "âš™ī¸ LLM Settings" tab between Status and Image Generation tabs. **Before:** ```html ``` **After:** ```html ``` ### 2. **New LLM Tab Content** (Line ~1177) Inserted complete new tab (tab4) with: - **Language Mode Toggle Section** - Blue-highlighted button to switch English ↔ Japanese - **Current Status Display** - Shows current language and active model - **Information Panel** - Explains how language mode works - **Model Information** - Shows which models are used for each language **Features:** - Toggle button with visual feedback - Real-time status display - Color-coded sections (blue for active toggle, orange for info) - Clear explanations of English vs Japanese modes ### 3. **Tab ID Renumbering** All subsequent tabs have been renumbered: - Old tab4 (Image Generation) → tab5 - Old tab5 (Autonomous Stats) → tab6 - Old tab6 (Chat with LLM) → tab7 - Old tab7 (Voice Call) → tab8 ### 4. **JavaScript Functions Added** (Line ~2320) Added two new async functions: #### `refreshLanguageStatus()` ```javascript async function refreshLanguageStatus() { // Fetches current language mode from /language endpoint // Updates UI elements with current language and model } ``` #### `toggleLanguageMode()` ```javascript async function toggleLanguageMode() { // Calls /language/toggle endpoint // Updates UI to reflect new language mode // Shows success notification } ``` ### 5. **Page Initialization Updated** (Line ~1617) Added language status refresh to DOMContentLoaded event: **Before:** ```javascript document.addEventListener('DOMContentLoaded', function() { loadStatus(); loadServers(); loadLastPrompt(); loadLogs(); checkEvilModeStatus(); checkBipolarModeStatus(); checkGPUStatus(); refreshFigurineSubscribers(); loadProfilePictureMetadata(); ... }); ``` **After:** ```javascript document.addEventListener('DOMContentLoaded', function() { loadStatus(); loadServers(); loadLastPrompt(); loadLogs(); checkEvilModeStatus(); checkBipolarModeStatus(); checkGPUStatus(); refreshLanguageStatus(); // ← NEW refreshFigurineSubscribers(); loadProfilePictureMetadata(); ... }); ``` ## UI Layout The new LLM Settings tab includes: ### 🌐 Language Mode Section - **Toggle Button**: Click to switch between English and Japanese - **Visual Indicator**: Shows current language in blue - **Color Scheme**: Blue for active toggle (matches system theme) ### 📊 Current Status Section - **Current Language**: Displays "English" or "æ—ĨæœŦčĒž (Japanese)" - **Active Model**: Shows which model is being used - **Available Languages**: Lists both English and Japanese - **Refresh Button**: Manually update status from server ### â„šī¸ How Language Mode Works - Explains English mode behavior - Explains Japanese mode behavior - Notes that language is global (all servers/DMs) - Mentions conversation history is preserved ## Button Actions ### Toggle Language Button - **Appearance**: Blue background, white text, bold font - **Action**: Sends POST request to `/language/toggle` - **Response**: Updates UI and shows success notification - **Icon**: 🔄 (refresh icon) ### Refresh Status Button - **Appearance**: Standard button - **Action**: Sends GET request to `/language` - **Response**: Updates status display - **Icon**: 🔄 (refresh icon) ## API Integration The tab uses the following endpoints: ### GET `/language` ```json { "language_mode": "english", "available_languages": ["english", "japanese"], "current_model": "llama3.1" } ``` ### POST `/language/toggle` ```json { "status": "ok", "language_mode": "japanese", "model_now_using": "swallow", "message": "Miku is now speaking in JAPANESE!" } ``` ## User Experience Flow 1. **Page Load** → Language status is automatically fetched and displayed 2. **User Clicks Toggle** → Language switches (English ↔ Japanese) 3. **UI Updates** → Display shows new language and model 4. **Notification Appears** → "Miku is now speaking in [LANGUAGE]!" 5. **All Messages** → Miku's responses are in selected language ## Styling Details - **Tab Button**: Matches existing UI theme (monospace font, dark background) - **Language Section**: Blue highlight (#4a7bc9) for primary action - **Status Display**: Dark background (#1a1a1a) for contrast - **Info Section**: Orange accent (#ff9800) for informational content - **Text Colors**: White for main text, cyan (#61dafb) for headers, gray (#aaa) for descriptions ## Responsive Design - Uses flexbox and grid layouts - Sections stack properly on smaller screens - Buttons are appropriately sized for clicking - Text is readable at all screen sizes ## Future Enhancements 1. **Per-Server Language Settings** - Store language preference per server 2. **Language Indicator in Status** - Show current language in status tab 3. **Language-Specific Emojis** - Different emojis for each language 4. **Auto-Switch on User Language** - Detect and auto-switch based on user messages 5. **Language History** - Show which language was used for each conversation