35 lines
2.0 KiB
Markdown
35 lines
2.0 KiB
Markdown
# Russian WebUI Patch and Localization
|
|
|
|
## 2.3 Russian WebUI patch
|
|
|
|
`aw-server/aw-ru-patch.js` продолжает быть runtime patch'ем поверх ActivityWatch WebUI, но после `cc9e4a0` логика стала более явной: текстовые переводы и навигационные исправления сведены в отдельную функцию `applyTextAndNavigationPatches(root)`.
|
|
|
|
## `applyTextAndNavigationPatches`
|
|
|
|
Функция выполняет общий набор patch'ей для переданного DOM root:
|
|
|
|
- обход текстовых узлов через `walk(root)`;
|
|
- перевод атрибутов через `translateAttributes(root)`;
|
|
- исправление DLP navigation links;
|
|
- повторное применение при route change в SPA.
|
|
|
|
Это снижает риск, что часть UI останется на английском после client-side перехода без полной перезагрузки страницы.
|
|
|
|
## Исправление DLP links
|
|
|
|
DLP navigation получила защиту от битых ссылок:
|
|
|
|
- исправляются ссылки вида `/activity/dlp` и другие broken DLP activity refs;
|
|
- DLP item помечается `data-aw-ru-dlp-item="1"`, чтобы patch не дублировал элемент;
|
|
- patch различает label `DLP` внутри activity tabs и реальные broken links.
|
|
|
|
## Улучшения локализации
|
|
|
|
Патч теперь повторно применяет текстовые и навигационные изменения:
|
|
|
|
- на первичной загрузке `document.body`;
|
|
- после смены route key;
|
|
- после восстановления settings host/host groups state.
|
|
|
|
Это особенно важно для WebUI страниц, где ActivityWatch перерисовывает DOM без reload: activity views, category builder, settings и DLP navigation.
|