feat(ai): integrate local Ollama AI for in-context sentence translation and caching (Task 13)

This commit is contained in:
Antigravity committed 2026-10-06 15:05:24 +03:00
1 parent 0c5951df8d
commit 37a1f1ab35
12 files changed
+605 -15

No files matched your search

+20 -1
View File
@@ -1062,7 +1062,26 @@
<div id="popup-loading" class="popup-loading hidden">Переводим...</div>
<div id="popup-content" class="popup-content">
<div class="popup-translation" id="popup-translation">перевод</div>
<div class="popup-context" id="popup-context">“Контекст из книги...”</div>
<div class="popup-context-box">
<div class="popup-context" id="popup-context">“Контекст из книги...”</div>
<div class="popup-sentence-ai-bar">
<button type="button" id="popup-translate-sentence-btn" class="btn btn-xs btn-outline popup-sentence-btn" title="Перевести всё предложение через локальный ИИ">
🌐 Перевести предложение
</button>
<span id="popup-ai-source-badge" class="popup-ai-source-badge hidden">⚡ Local AI</span>
</div>
<div id="popup-sentence-loading" class="popup-sentence-loading hidden">
<span class="spinner-sm"></span> Локальный ИИ переводит...
</div>
<div id="popup-sentence-translation-wrap" class="popup-sentence-translation-wrap hidden">
<div class="popup-sentence-ru" id="popup-sentence-ru"></div>
<div id="popup-context-meaning-wrap" class="popup-context-meaning-wrap hidden">
<span class="context-meaning-label">🎯 В контексте:</span>
<strong id="popup-context-meaning-val" class="context-meaning-val"></strong>
<button type="button" id="popup-use-context-meaning-btn" class="btn btn-xs btn-ghost use-meaning-btn" title="Использовать этот перевод для карточки">Вставить в карточку</button>
</div>
</div>
</div>
</div>
</div>
<div class="popup-footer">