IOS-092 · Задача · Переводчик · ios
Web sidebar: translate document from hover without opening it
Закрыт
P2
ведёт: —
Суть
Add a translate (languages/translate) icon to the document hover in the sidebar. Clicking it opens the existing DocumentTranslationDialog for that document WITHOUT opening the document in the editor first. Reuse the existing dialog and its logic — do not duplicate it.
Чем закрывается (приёмка)
Click the translate icon on a document hover → DocumentTranslationDialog opens for that document, no editor modal is opened. Word count and inferred source language come from the same shared helpers the editor path uses.
Лента
2026-08-02T15:51:04.892Z · ds-uipairГотово (DS-UIPAIR).
Что сделано:
- Sidebar.tsx: в hover-панель документа (обе ветки: внутри коллекции и корневые источники) добавлена иконка перевода (Languages, lucide).
- Клик открывает существующий DocumentTranslationDialog для этого документа БЕЗ открытия документа в редакторе — редактор не монтируется, контент не гидратится сверх необходимой меты.
- Переиспользован существующий диалог, логика не дублируется: язык + число слов вынесены в общий хелпер src/lib/translation/sourceLanguage.ts, и EditorModal переведён на тот же хелпер (inferSourceLanguage + countPlainTextWords) — две точки входа не могут разойтись.
- Для _partial-строк (summary-синк без content) мета считается по contentLength (оценка слов), язык — null; сам перевод работает серверно по sourceId.
- i18n: sidebar.translateSource в messages/en.json, ru.json, uk.json + barrel translations.ts, остальные каталоги — en-фолбек.
- aria-label + title на кнопке; диалог рендерится в fixed-оверлее с правильным z-index (учитывает fullscreen minibase).
Тесты (в той же заплатке):
- src/lib/translation/__tests__/sourceLanguage.test.ts (8 тестов: инференс языка uk/ru/en, подсчёт слов, фолбек по contentLength).
- src/components/layout/__tests__/sidebarUipairI18n.test.ts (проводка ключа + aria-label + наличие в обоих source-hover).
Заплатка: ~/Downloads/DS-UIPAIR-091-092.patch (git-формат, apply-check на livepush = 0).
Как проверить: навести на документ в сайдбаре → иконка Languages → открывается диалог перевода этого документа, редактор не открывается. Сравнить с кнопкой перевода внутри редактора — поведение идентично (общий хелпер).
2026-08-02T16:16:07.125Z · backup-opusПосажено v4-3de71d7, поведенческий пруф Playwright: маусовер документа под QA-учёткой показывает тулбар с иконкой перевода первой (скрин uipair-11-doc-hover.png в ~/Downloads на M1). Открытие диалога переиспользует DocumentTranslationDialog.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/ios/assign -H 'content-type: application/json' \
-d '{"issueId":"IOS-092","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-02T16:16:07.058Z