Add offline translation caching for seamless offline experience
- Implemented TranslationCache class with IndexedDB storage - Cache translations automatically with 30-day expiration - Added cache management UI in settings modal - Shows cache count and size - Toggle to enable/disable caching - Clear cache button - Check cache first before API calls (when enabled) - Automatic cleanup when reaching 1000 entries limit - Show "(cached)" indicator for cached translations - Works completely offline after translations are cached 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		| @@ -286,6 +286,29 @@ | ||||
|                                 Error notifications | ||||
|                             </label> | ||||
|                         </div> | ||||
|                          | ||||
|                         <hr> | ||||
|                          | ||||
|                         <h6>Offline Cache</h6> | ||||
|                         <div class="mb-3"> | ||||
|                             <div class="d-flex justify-content-between align-items-center mb-2"> | ||||
|                                 <span>Cached translations:</span> | ||||
|                                 <span id="cacheCount" class="badge bg-primary">0</span> | ||||
|                             </div> | ||||
|                             <div class="d-flex justify-content-between align-items-center mb-2"> | ||||
|                                 <span>Cache size:</span> | ||||
|                                 <span id="cacheSize" class="badge bg-secondary">0 KB</span> | ||||
|                             </div> | ||||
|                             <div class="form-check form-switch mb-2"> | ||||
|                                 <input class="form-check-input" type="checkbox" id="offlineMode" checked> | ||||
|                                 <label class="form-check-label" for="offlineMode"> | ||||
|                                     Enable offline caching | ||||
|                                 </label> | ||||
|                             </div> | ||||
|                             <button type="button" class="btn btn-sm btn-outline-danger" id="clearCache"> | ||||
|                                 <i class="fas fa-trash"></i> Clear Cache | ||||
|                             </button> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     <div class="modal-footer"> | ||||
|                         <div id="settingsSaveStatus" class="text-success me-auto" style="display: none;"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user