Расширение для Chrome/Edge/Яндекс Браузера/Brave/Opera, которое переводит интерфейс GitHub на русский и добавляет пару кнопок в шапку репозитория. Manifest V3, никаких сборщиков — просто content script.
Content script проходит по DOM через TreeWalker и подставляет перевод для текстовых узлов, совпадающих (по trim().toLowerCase()) со словарём в content.js. Заодно переводятся атрибуты aria-label, placeholder, title и data-content у элементов, где они есть.
Код при этом не трогается: shouldSkipNode явно исключает <pre>, <code>, <textarea>, diff-таблицы, blob-вьюер, подсветку синтаксиса, редакторы (CodeMirror, Monaco, Lexical) и всё, что помечено contenteditable. Идея простая — переводить интерфейс, а не содержимое чужих репозиториев.
За перерисовками GitHub (там всё через pjax/turbo, без полных перезагрузок страницы) следит MutationObserver с дебаунсом в 80мс, так что перевод и кнопки не пропадают при переходах между страницами.
В шапке репозитория (ul.pagehead-actions) появляются две кнопки:
- VS Code — открывает текущую страницу на
github.dev, то есть тот же путь, толькоgithub.com→github.dev. - ZIP — прямая ссылка на
/user/repo/archive/HEAD.zip, без похода в выпадающее менюCode.
В магазин расширений это не выкладывалось, ставится вручную:
- Скачайте или клонируйте репозиторий.
- Откройте страницу расширений:
chrome://extensions/,edge://extensions/илиbrowser://extensions/в Яндекс Браузере. - Включите режим разработчика.
- «Загрузить распакованное расширение» → укажите папку с
manifest.json.
Всё в объекте DICTIONARY в начале content.js — пары вида "pull requests": "Пул-реквесты". Покрыта в основном навигация репозитория (Pull requests, Issues, Actions, Projects, Wiki, Settings и т.д.), кнопки действий (fork, star, watch, sponsor...) и разделы коммитов/веток/релизов.
Чтобы добавить свой перевод — дописать пару в словарь и нажать «Обновить» на карточке расширения. Регистр и пробелы вокруг текста роли не играют, ключ ищется по нормализованной строке.
Чего словарь не покрывает — остаётся на английском. Это не полноценная локализация всего GitHub, а перевод самых частых элементов интерфейса.
manifest.json— Manifest V3, content script наgithub.com/*, запуск наdocument_endcontent.js— словарь, перевод DOM, обе кнопкиstyles.css— стили кнопок под тему GitHub, светлую и тёмную (prefers-color-scheme)