Polyglot 1.14 - Больше языков, исправления редиректов, новости сообщества

Вышел Jekyll-Polyglot 1.14.0! Эта версия расширяет поддержку региональных языков, исправляет пограничные случаи в редиректах и добавляет новую опцию совместимости с плагинами Jekyll, не поддерживающими параллельную работу.

поддержка zh-TW и pt-PT

  • PR #316: Сайт Polyglot теперь поддерживает традиционный китайский (zh-TW) и европейский португальский (pt-PT) в качестве языков сайта. Сайт документации Polyglot теперь предоставляет переведённые страницы для обоих языков, наряду с существующими переводами zh-CN и pt-BR. Как всегда, эти переводы были выполнены с помощью ИИ; исправления и улучшения приветствуются!

исправления дублирующихся префиксов в redirect_from

  • PR #317: Исправления в том, как Polyglot обрабатывает frontmatter redirect_from с плагином jekyll-redirect-from. Заданные пользователем редиректы теперь сохраняются, а не перезаписываются, корректно ограничиваются соответствующим языком, а редиректы с уже добавленным языковым префиксом больше не получают двойной префикс — так, редирект /fr/old-page не превратится в /fr/fr/old-page.

serial_default_lang для плагинов без поддержки параллелизма

  • PR #310: @rathboma добавил новую опцию serial_default_lang. Когда включена parallel_localization, Polyglot создаёт отдельный процесс на каждый язык через fork, что может привести к гонкам с плагинами вроде jekyll-assets, которые инициализируют общие кэши при первом использовании. Установка serial_default_lang: true заставляет Polyglot сначала собрать язык по умолчанию в родительском процессе, прежде чем форкать остальные: такие плагины инициализируются ровно один раз, а языковые процессы наследуют уже подготовленное состояние. Если параллельные сборки Polyglot когда-либо конфликтовали с другим плагином Jekyll, эта опция может помочь избежать конфликтов.

обновления зависимостей ruby

Эта версия также поддерживает зависимости ruby в актуальном состоянии.

Polyglot 1.13 - новые переменные liquid, улучшения SEO и перенаправлений

Jekyll-Polyglot 1.13.0 был выпущен! Этот релиз стал возможен благодаря поддержке и многочисленным вкладам от @rathboma и Beekeeper Studio.

улучшенная генерация hreflang

  • PR #282: @rathboma объединил улучшения генерации тегов hreflang, добавив вариант резервного значения для ненастроенных языков. Это улучшает SEO и корректность создаваемых заголовков на многоязычных сайтах.

предупреждения о несовпадающих языковых кодах

  • PR #287: @rathboma добавил предупреждения во время сборки, когда значение lang: записи не соответствует ни одному из настроенных языков сайта. Сопоставление языков теперь не учитывает регистр, поэтому EN и en рассматриваются как одно и то же.

  • PR #290: @rathboma фильтрация теперь правильно исключает записи, написанные на языках, не указанных в конфигурации languages:, предотвращая попадание ненастроенного контента в сборки.

локализация _redirects для Netlify

  • PR #285: @rathboma добавил новую опцию localize_redirects. Когда она включена, Polyglot автоматически создаёт копии правил Netlify _redirects с языковыми префиксами, так что перенаправление вроде /github также работает для /fr/github, /de/github и так далее. Подробности настройки см. на странице SEO-рецептов.

новые переменные liquid для статуса перевода

  • PR #305: Две новые переменные liquid — page.missing_languages и page.available_languages — позволяют вашим шаблонам видеть, на какие языки страница была переведена, а каких ещё не хватает. Полезно для создания более продвинутых переключателей языка и боковых панелей.

новые языковые переводы

  • PR #303: На сайте документации Polyglot теперь доступны переводы на украинский (uk) и хинди (hi), сделанные с помощью ИИ. Исправления приветствуются!
  • PR #297: @manabu-nakamura внёс исправления в японские (ja) переводы сайта. Спасибо!

поддержка инструментов разработки на базе ИИ

  • PR #298: Polyglot теперь поставляется с первоклассной инженерной поддержкой GitHub Copilot, Claude Code и общего соглашения AGENTS.md. ИИ теперь часть рабочего процесса, и вклады, сделанные с помощью этих инструментов, приветствуются.
  • Были добавлены дополнительные проверки качества CI, включая правки htmlproofer и rubocop.

боковая панель показывает отсутствующие переводы

Боковая панель сайта документации теперь отмечает страницы, у которых ещё нет перевода на активный язык, делая пробелы более заметными для читателей и контрибьюторов.

Спасибо @rathboma и всем, кто внёс свой вклад в этот релиз!

Polyglot 1.12 - улучшения перенаправлений и вклад сообщества

Jekyll-Polyglot 1.12.0 был выпущен! Этот релиз сосредоточен на улучшении обработки перенаправлений и включает несколько вкладов сообщества.

улучшения перенаправлений

Этот релиз включает важные улучшения в работе перенаправлений с Polyglot:

  • PR #275: Сохранение якорных тегов в перенаправлениях - благодаря решению от @GruberMarkus, URL перенаправлений теперь правильно сохраняют якорные теги, гарантируя, что пользователи попадают именно туда, куда намеревались.

  • PR #293: Поддержка перенаправления подъязыков для плагина jekyll-redirect-from - предложено @rathboma, Polyglot теперь правильно ограничивает frontmatter redirect_from по подъязыкам, предотвращая дублирование перенаправлений и обеспечивая правильную маршрутизацию для страниц на языках, отличных от языка по умолчанию.

обнаружение резервных страниц с page.rendered_lang

  • PR #283: Новая переменная page.rendered_lang - внесена @rathboma, эта новая liquid-переменная позволяет определить, когда страница рендерится как резервная. Когда page.rendered_lang != site.active_lang, вы знаете, что содержимое страницы еще не было переведено.

Страница /about была обновлена с инструкциями о том, как лучше использовать эту удобную liquid-переменную page.rendered_lang.

поддержка новых языков

  • PR #280: Поддержка итальянского и турецкого языков была добавлена на сайт документации Polyglot, расширяя наш многоязычный охват.

вклад сообщества

Несколько членов сообщества внесли улучшения в проект:

  • PR #277: Обновленные определения форматированного текста боковой панели, улучшающие многоязычное представление сайта.

  • PR #288: Японские строки форматированного текста внесены @manabu-nakamura, улучшающие опыт японского языка.

Особая благодарность @PanderMusubi за демонстрацию jekyll-minimal-mistakes-polyglot, показывающую, как интегрировать Polyglot с популярной темой Minimal Mistakes.

Спасибо всем участникам, которые сделали этот релиз возможным!

Polyglot 1.11 - релиз с различными исправлениями

Jekyll Polyglot 1.11.0 был выпущен. Он содержит исправления для сложных ошибок, которые было трудно решить до недавнего времени. Этот релиз стал возможен благодаря участникам и пользователям, таким как вы.

исправлены конфликты с темами jekyll

Другие темы jekyll, такие как minimal-mistakes или chirpy, используют глобальные шаблоны в конфигурациях exclude:, которые ранее конфликтовали с обработкой polyglot веб-сайтов с релятивизацией URL. @mattions внес исправление для regex.escape этих значений перед их применением к релятивизационным регулярным выражениям.

Эта корректировка должна помочь с использованием polyglot из коробки с другими распространенными темами jekyll.

другие различные исправления

поддержка японского и арабского языков

Сайт polyglot теперь имеет переведенные версии поддержки на арабском и японском языках. Эти переводы сайта были сделаны с помощью ИИ; если что-то переведено неправильно, пожалуйста, внесите лучшие исправления!

Polyglot 1.10 - улучшения i18n_headers

Jekyll-Polyglot 1.10 теперь доступен. В этом релизе значительно улучшен плагин liquid i18n_headers для SEO, а также внесены небольшие изменения для идемпотентности при параллельной сборке. Сообщество и инструменты Vibe Coding внесли большой вклад в разработку функций, тестирование и написание этого поста.

улучшения i18n_headers

Плагин i18n_headers теперь обладает расширенными возможностями:

  • добавляет <link rel="canonical" ...> для каждого языка страницы, чтобы индексация была уникальной для каждого сайта.
  • добавляет <link rel="alternate" hreflang="x-default" ...>, чтобы указывать на версию сайта по умолчанию, если браузер не запрашивает подходящий язык.
  • корректно определяет <link rel="alternate" hreflang="..."> для страниц и постов в коллекциях с пользовательскими постоянными ссылками.
  • теперь URL по умолчанию будет включать site.baseUrl, если он определён.

Также исправлена ошибка, из-за которой относительные ссылки могли случайно искажать эти теги.

вклад vibe-coded

Использование некоторых инструментов vibe coding помогло найти, измерить и проверить исправления и новые функции для этого релиза. Это новый подход к разработке ПО, позволивший писать продвинутые Ruby-тесты для кода плагинов Jekyll, работающих на многих языках сайта.

Тесты, написанные с помощью vibe coding, помогли поддерживать высокий охват тестами и уверенно добавлять сложные функции. Автоматизация тестирования обеспечила корректную реализацию сложных возможностей.

Кроме того, инструменты vibe coding помогли перевести этот блог-пост на многие языки.

вклад сообщества

Jekyll-Polyglot поддерживается людьми. Документация на человеческих языках создаётся людьми, которые хотят видеть этот плагин задокументированным на своём родном языке. Люди, вносящие исправления и документацию, помогли этому плагину достичь тысяч загрузок на каждый релиз. Программирование с поддержкой ИИ — в моих или ваших руках — будет формировать используемое нами ПО и те многочисленные языки, на которых мы пишем и говорим.

требуется ruby >= 3.1

Постоянные обновления безопасности зависимостей сборки jekyll-polyglot потребовали крупного обновления до ruby 3.1. Это может повлиять на системы сборки, которые используют jekyll-polyglot для генерации документации. Сейчас хорошее время для перехода на последнюю основную версию ruby. Сообщите, если эти изменения вызывают сложности со сборкой jekyll.