Skip to content
Назад в блог
·5 мин чтения·Denys Kandyba

Как переводить комментарии на Hacker News, не ломая структуру треда

У Hacker News читательская аудитория по всему миру, а вёрстка не менялась с 2007 года — вложенная таблица с отступами через padding-left и крошечными стрелками голосования. Когда на главную попадает громкий запуск, в одном треде смешиваются немецкий, японский, китайский, русский и польский. Встроенный перевод страниц в Chrome сбивает отступы и разваливает колонку голосов. Вот как читать иноязычные треды на HN, не теряя структуру дерева комментариев.

Почему обычный перевод ломает HN

HN рендерит комментарии как одну глубоко вложенную HTML-таблицу. Отступы реализованы через пустую картинку шириной 40 пикселей в начале каждой строки — каждый уровень вложенности добавляет ещё одну такую картинку. Стрелки голосования — это крошечные инлайновые элементы, привязанные к конкретной позиции в колонке.

Наивный перевод страницы обходит DOM, заменяет текстовое содержимое и запускает пересчёт вёрстки. На HN этот пересчёт ломает две вещи:

  • Картинки-отступы шириной 40 пикселей сдвигаются, и визуальная вложенность перестаёт соответствовать реальной глубине ответа
  • Стрелки голосования отрываются от комментария, к которому относились

Итог: комментарий со смыслом «отвечаю на самый верхний пост» визуально оказывается привязан к другому родителю. Вы перестаёте понимать, кто кому отвечает. Главная ценность HN — структура треда — теряется.

Как выглядит встроенный двуязычный рендеринг

В Swiftin есть отдельная доработка рендеринга специально для news.ycombinator.com. Перевод вставляется под текстом оригинального комментария, не трогая структуру таблицы — картинки-отступы, стрелки голосования и ссылки на ответы остаются на своих исходных позициях в колонках.

Для любой страницы, включая HN, доступны два режима:

  • Двуязычный — оригинальный текст сверху, перевод снизу, видно оба. Удобно, когда нужно понять, какому английскому термину соответствует немецкое техническое понятие, или проверить, правильно ли перевод считал сарказм.
  • Только перевод — заменяет оригинальный текст на месте. Чище, если вы просто хотите быстро прочитать тред.

Оба режима сохраняют табличную вёрстку HN — именно то, что встроенный перевод Chrome на этом сайте ломает.

Реальный сценарий: утреннее чтение HN

  1. Откройте news.ycombinator.com
  2. Зайдите в тред Show HN, Ask HN или запуск с главной страницы, где есть международное обсуждение
  3. Нажмите на панель Swiftin (или включите автоперевод, чтобы пропускать этот шаг при каждой загрузке)
  4. Тред читается на вашем языке; цепочки ответов остаются вложенными правильно

Swiftin переводит HN из коробки — доработка рендеринга встроена, никакой настройки не требуется.

Почему это важно для разработчиков

Комментарии под тредом в день релиза часто полезнее самого анонса. Инженеры со всего мира заходят поспорить, поделиться заметками по архитектуре, упомянуть внутренние инструменты, объяснить региональный регуляторный контекст. Читать только англоязычную половину такого треда — реальная потеря.

Двуязычный режим заодно работает как быстрая сверка кэйго / Fachbegriff: если немецкоязычный комментатор использует точный юридический термин, вы видите оригинальное слово и перевод рядом — и можете потом найти оригинал через поиск по странице.

Что доступно на бесплатном тарифе

Чтение HN спокойно укладывается в бесплатный тариф:

  • Безлимитный перевод через Google и Bing по всему продукту
  • 50 000 ИИ-токенов в месяц — для более качественного перевода там, где это важно
  • Оба режима страницы, двуязычный и только перевод, доступны на Free
  • 100+ языков

При активном чтении HN квоту ИИ на одних только комментариях не исчерпать — плотность текста там низкая. А когда квота ИИ всё же заканчивается, резервные движки Google/Bing продолжают переводить, так что расширение не замолкает посреди треда.

Keep reading