Поделиться переводами темы (компонента)

:information_source: Краткое описание Упростите перевод тем и компонентов тем, легко публикуя переводы, выполненные в интерфейсе Discourse
:eyeglasses: Предпросмотр В настоящее время публикация тем через конструктор тем невозможна
:hammer_and_wrench: Репозиторий GitHub - moin-Jana/share-theme-translations
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Начинающее руководство по использованию тем Discourse

Установить этот компонент темы

Discourse упрощает перевод тем и компонентов тем. Однако эти переводы часто остаются только на вашем локальном сайте.
Этот компонент помогает вам делиться своими переводами с сообществом и автором в виде запроса на слияние (pull request) в репозиторий или путем публикации их в теме здесь, на Meta.


Как это работает

Этот компонент добавляет раздел под интерфейсом перевода, когда удаленная тема или компонент содержит переводимые тексты. Оттуда вы можете открыть модальное окно, которое поможет вам поделиться своими переводами различными способами.

:warning: Примечание о ветках по умолчанию
Компонент предполагает, что основная ветка репозитория называется main. Если репозиторий использует другое имя (например, master), некоторые ссылки могут работать некорректно и потребовать ручного исправления.

Создание новых файлов перевода на GitHub

Если тема размещена на GitHub, а для языка еще не существует файла перевода, кнопка:

  • откроет редактор GitHub с правильным путем (например, locales/de.yml)
  • предварительно заполнит редактор вашими переводами в правильном формате
  • включит описания тем и настройки (опционально)

Описания нельзя перевести в интерфейсе Discourse, но вы можете отредактировать их непосредственно в редакторе GitHub перед сохранением. Если вы не хотите переводить их, вы также можете снять галочку, чтобы исключить их.

Подробные шаги
  1. После перевода нажмите кнопку, чтобы открыть модальное окно.
  2. Нажмите «Создать запрос на слияние».
  3. Сделайте форк репозитория.
  4. Откроется редактор с предварительно заполненными переводами. При желании вы можете перевести описания непосредственно в файле.

    Если вы отключили флажок исключения описаний, они не будут включены, что упрощает текст в редакторе.
  5. Когда будете готовы, нажмите «Зафиксировать изменения…», затем «Предложить изменения» и, наконец, «Создать запрос на слияние» (дважды).
  6. :partying_face: Готово — вы поделились своими переводами!

Улучшение и добавление переводов на GitHub

Даже если перевод для вашего языка уже существует, вы все равно можете улучшить его и добавить недостающие переводы. Этот процесс немного менее автоматизирован. Кнопка:

  • откроет редактор GitHub с правильным путем (например, locales/en_GB.yml)
  • вместо предварительного заполнения редактора GitHub переводы будут скопированы в буфер обмена, чтобы вы могли легко их вставить.
  • включение дополнительной информации, такой как описание темы и настройки, возможно, если язык вашего интерфейса совпадает с языком переводов, которые вы редактируете. В противном случае компонент не сможет получить описания на правильном языке, и они будут исключены; вы скопируете только переведенные тексты. В этом случае убедитесь, что вы не перезаписываете описания при вставке изменений. Компонент предупредит вас об этом заранее, чтобы вы могли легко сменить язык интерфейса и включить описания.
Подробные шаги
  1. Если язык вашего интерфейса не совпадает с языком перевода (в данном случае язык моего интерфейса — американский английский, а я перевожу на британский английский), у вас есть два варианта:

    A. Измените язык интерфейса перед открытием модального окна.
    B. Продолжите и откройте модальное окно без смены языка.
  2. Вы увидите модальное окно, выделяющее ваши правки.
    A. Если язык вашего интерфейса совпадает с языком перевода, вы можете исключить описания, сняв флажок.

    B. В противном случае флажок будет отключен.
  3. Нажмите «Копировать и открыть GitHub» и сделайте форк репозитория.
  4. Вы увидите редактор с переводами, сохраненными на GitHub.
    A. Если описания были включены, вы можете просто заменить весь содержимое файла.

    B. Если вы не сменяли локаль или сняли флажок, были скопированы только переводы темы. Замените только их своими переводами. Обратите внимание, что все должно быть правильно отступлено.
  5. Вы также можете отредактировать описания. Когда будете готовы, нажмите «Зафиксировать изменения…», затем «Предложить изменения» и, наконец, «Создать запрос на слияние» (дважды).
  6. :partying_face: Готово — вы поделились своими переводами!

:warning: Некоторые компоненты тем используют платформу для переводов. Например, многие official компоненты переводятся на Crowdin. В таких файлах есть предупреждение вверху, указывающее, где вы можете внести свои переводы.

Поделиться переводами на Meta

Если у вас нет учетной записи GitHub и доступна ссылка на тему Meta, вы также можете опубликовать свои переводы там и попросить автора включить их в следующее обновление. Нажатие «Копировать и открыть Meta» отформатирует ваши переводы, скопирует их в буфер обмена и откроет тему Meta в новой вкладке. Затем просто нажмите Ответить и вставьте отформатированные переводы, которые были скопированы для вас.

Подробные шаги
  1. После перевода нажмите кнопку, чтобы открыть модальное окно.
  2. Нажмите «Копировать и открыть Meta».
  3. Нажмите «Ответить», чтобы открыть редактор и вставить свои переводы.
  4. Если вы не исключили описания, вы можете отредактировать их непосредственно перед публикацией переводов.
  5. :partying_face: Вы поделились своими переводами.

Если ссылка на тему Meta не была предоставлена, вы можете скопировать переводы и вручную найти соответствующую тему. В этом случае не забудьте о форматировании вашего сообщения.

Поделиться переводами на других платформах

Если тема размещена на GitLab или другой платформе, ваши переводы будут скопированы в буфер обмена, а репозиторий откроется в новой вкладке. В отличие от GitHub, GitLab не поддерживает предварительно заполненный контент в URL для редактора файлов. Поэтому вам придется вручную вставлять переводы, даже для новых файлов.
Я не исследовал, как строятся ссылки для редактирования файлов на других платформах. Поэтому в этом случае вы попадете на файл или каталог в репозитории и должны будете самостоятельно найти способ создать или отредактировать файл.

Настройки

Этот компонент включает одну настройку: hide_texts.Она скрывает вводное объяснение и отображает более короткое сообщение, показываемое, когда язык вашего интерфейса не совпадает с языком, на который вы переводите.

Мысли на будущее

В настоящее время компонент не может определить, что тема переведена внешним способом — например, через Crowdin. Это было бы технически возможно, если бы файл about.json включал необязательное поле translation_url, как он уже может включать лицензию или ссылку на тему метаданных. Например:

"translation_url": "https://discourse.crowdin.com/discotoc"

При наличии этого компонента мог бы:

  • скрывать кнопку публикации, если переводы обрабатываются в другом месте
  • отображать сообщение, объясняющее, где можно внести вклад
  • избегать ненужных запросов на слияние или путаницы

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

11 лайков

Удивительная работа, Мойн. Спасибо, что создал это. :astronaut: :clap:

6 лайков