Improve the Russian translation (#408)

This commit is contained in:
edukisto 2021-08-17 19:37:59 +03:00 committed by GitHub
parent 457f11501c
commit 2d00c59f2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 113 additions and 100 deletions

View File

@ -14,11 +14,13 @@ version: 1.0.0
- vandamme = "https://github.com/tech-angels/vandamme/"
- iso = "http://www.iso.org/iso/home/standards/iso8601.htm"
- ghr = "https://help.github.com/articles/creating-releases/"
- gnustyle = "https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs"
- gnunews = "https://www.gnu.org/prep/standards/html_node/NEWS-File.html#NEWS-File"
.header
.title
%h1 Ведите CHANGELOG
%h2 Не позволяйте друзьям сливать логи гита в CHANGELOG™
%h1 Ведите changelog
%h2 Не позволяйте друзьям сливать логи Git в changelogи.
= link_to changelog do
Version
@ -32,25 +34,26 @@ version: 1.0.0
Что такое лог изменений?
%p
Лог изменений это файл, который содержит поддерживаемый, хронологически
упорядоченный список изменений для каждой версии проекта.
Лог изменений это файл, который содержит поддерживаемый, хронологически
упорядоченный список значимых изменений для каждой версии проекта.
%h3#why
%a.anchor{ href: "#why", aria_hidden: "true" }
Зачем вести лог изменений?
%p
Чтобы пользователям и контрибьюторам было проще точно понять,
какие изменения были сделаны в каждом релизе (или версии) проекта
Чтобы пользователям и контрибуторам было проще в точности понять,
какие значимые изменения были внесены в каждый выпуск (или версию)
проекта.
%h3#who
%a.anchor{ href: "#who", aria_hidden: "true" }
Кому нужен лог изменений?
%p
Людям. Будь то клиенты или разработчики, конечные пользователи программного обеспечения
это люди, и им важно, с чем они работают. Когда программное обеспечение меняется,
люди хотят знать почему и что изменилось.
Людям. Конечные пользователи программного обеспечения, будь то клиенты или разработчики, —
это человеческие существа, которым небезразлично, с чем они работают. Когда
программное обеспечение изменяется, люди хотят знать, что и почему изменилось.
.good-practices
%h3#how
@ -59,23 +62,23 @@ version: 1.0.0
%h4#principles
%a.anchor{ href: "#principles", aria_hidden: "true" }
Главные принципы
Руководящие принципы
%ul
%li
Лог изменений ведётся <em>для людей</em>, не для машин.
Лог изменений — <em>для людей</em>, а не для машин.
%li
Для каждой версии должен быть отдельный раздел.
Для каждой версии без исключения следует создать отдельный раздел.
%li
Одинаковые типы изменений должны быть сгруппированы.
Однотипные изменения следует группировать.
%li
Должна быть возможность поставить ссылку на любую версию или раздел.
Следует предусмотреть возможность поставить ссылку на любую версию или раздел.
%li
Последняя версия должна идти в начале файла.
%li
У каждой версии указана дата выпуска.
Указаны даты выпуска каждой версии.
%li
Уточните, следуете ли вы принципам #{link_to "Семантического версионирования", semver}
Уточните, следуете ли вы принципам #{link_to "семантического версионирования", semver}.
%a.anchor{ href: "#types", aria_hidden: "true" }
%h4#types Типы изменений
@ -83,22 +86,22 @@ version: 1.0.0
%ul
%li
%code Добавлено
для новых функций.
для новых функций.
%li
%code Изменено
для изменений в существующей функциональности.
для изменений в существующей функциональности.
%li
%code Устарело
для функций, которые скоро будут удалены.
для функций, которые скоро будут удалены.
%li
%code Удалено
для удалённых функций.
для удалённых на данный момент функций.
%li
%code Исправлено
для любых исправлений.
для любых исправлений багов.
%li
%code Безопасность
в случае уязвимостей.
— на случай уязвимостей.
.effort
@ -107,72 +110,79 @@ version: 1.0.0
Как мне тратить меньше усилий на ведение лога изменений?
%p
Ведите раздел <code>Новое</code> с изменениями для новой версии в начале файла.
Держите в начале файла раздел <code>Новое</code>, позволяющий отслеживать
предстоящие изменения.
%p Это нужно для двух вещей:
%p Это служит достижению двух целей:
%ul
%li
Люди смогут видеть, каких изменений им ожидать в ближайших релизах
люди смогут видеть, каких изменений им можно ожидать в предстоящих выпусках;
%li
В момент релиза вы можете переместить изменения раздела <code>Новое</code>
в раздел нового релиза.
в момент релиза вы можете переместить изменения из раздела <code>Новое</code>
в раздел нового выпуска.
.bad-practices
%h3#bad-practices
%a.anchor{ href: "#bad-practices", aria_hidden: "true" }
Бывают плохие логи изменений?
Бывают ли плохие логи изменений?
%p Да. Вот несколько способов чтобы сделать их не такими полезными.
%p Да. Вот несколько причин, по которым они могут оказаться совершенно бесполезными.
%h4#log-diffs
%a.anchor{ href: "#log-diffs", aria_hidden: "true" }
Диффы лога коммитов
Diffы лога коммитов
%p
Использование диффов лога коммитов это плохая идея: они очень шумные.
Шумят мердж-коммиты, коммиты с непонятными названиями, изменения в документации
и тому подобное.
Использование diffов лога коммитов в качестве лога изменений — это плохая идея:
они полны информационного шума от слияния коммитов, от коммитов с непонятными
заглавиями, от изменений в документации и т. п.
%p
Назначение коммита в том, чтобы задокументировать шаг в эволюции исходного
кода. В некоторых проектах следят за историей коммитов, в некоторых нет.
кода. В некоторых проектах следят за историей коммитов, в некоторых нет.
%p
Назначение же раздела в логе изменений — задокументировать ключевые различия,
часто между несколькими коммитами, чтобы ясно донести их назначение
до конечных пользователей.
Назначение же раздела в логе изменений — задокументировать заслуживающие
внимания различия (зачастую привнесённые несколькими коммитами), чтобы чётко
сообщить конечным пользователям об этих различиях.
%h4#ignoring-deprecations
%a.anchor{ href: "#ignoring-deprecations", aria_hidden: "true" }
Игнорирование устаревающих функций
Игнорирование устаревших функций
%p
Когда люди обновляются с одной версии на другую, должно быть до боли
очевидно, что сломается. Должна быть возможность обновиться до версии, которая
перечисляет устаревающие функции, удалить устаревшие данные, затем обновиться до версии,
в которой устаревающие функции становятся удалёнными.
Когда люди переходят с одной версии на другую, им должно быть до боли ясно,
в какой именно момент что-то сломается. Следует предусмотреть возможность
перейти к версии, в которой перечислены устаревшие функции, удалить то,
что устарело, а затем перейти к версии, из которой эти устаревшие функции
удалены.
%p
Если вы не ведёте лог изменений, то хотя бы указывайте в нём устаревающие
и удалённые функции, а также все критичные изменения.
Перечисляйте в логе изменений устаревшие и удалённые функции, а также любые
критические изменения, даже если не перечисляете ничего другого.
%h4#confusing-dates
%a.anchor{ href: "#confusing-dates", aria_hidden: "true" }
Непонятные даты
Даты, сбивающие с толку
%p
В США сначала пишут месяц (<code>06-02-2012</code> для 2 июня 2012),
в то время как большинство людей в остальном мире пишут роботоподобное
<code>2 июня 2012</code>, произнося эту дата по-разному. Запись
<code>2012-06-02</code> логично идёт от большего к меньшему, не пересекается
с большинством других форматов дат, и является #{link_to "стандартом ISO", iso}.
Поэтому именно такой формат рекомендуется для логов изменений.
Региональные форматы дат различаются по всему миру, и зачастую трудно найти
удобный для человека формат, который был бы интуитивно понятен каждому.
Преимущество дат в форматах наподобие <code>2017-07-17</code> заключается
в том, что элементы в них следуют в порядке от более крупной единицы измерения
к более мелкой: год, месяц и день. К тому же, в отличие от некоторых
региональных форматов, в которых изменено положение чисел, обозначающих день
и месяц, этот формат не пересекается с другим и не вызывает неоднозначных
толкований. Исходя из этих причин и того факта, что этот формат соответствует
#{link_to "стандарту ISO", iso}, именно он рекомендован для записей в логе
изменений.
%aside
Есть и другие. Помогите мне собрать эти антипаттерны,
#{link_to "создав тикет", "#issues"} или пулл-реквест.
Есть кое-что ещё. Помогите мне собрать эти антипаттерны,
сделав #{link_to "заявку о наличии проблемы", "#issues"}
или pull request.
.frequently-asked-questions
%h3#frequently-asked-questions
@ -181,21 +191,22 @@ version: 1.0.0
%h4#standard
%a.anchor{ href: "#standard", aria_hidden: "true" }
Существует ли стандарт формата логов изменений?
Существует ли стандартный формат для логов изменений?
%p
На самом деле нет. Есть стайлгайд логов изменений GNU,
есть длиной-в-два-параграфа файл "guideline" GNU NEWS.
Оба или неадекватны или недостаточно полны.
На самом деле, нет. Есть #{link_to "стилистический путеводитель по логам изменений от GNU", gnustyle},
есть «руководство» #{link_to "длиной в два абзаца по файлам GNU NEWS", gnunews}.
Оба или неадекватны, или недостаточно полны.
%p
Цель этого проекта — стать
= link_to "улучшенной версией соглашения о формате логов изменений.", changelog
Это приходит из-за сбора и следования хорошим практикам сообщества.
Этот проект нацелен на то, чтобы стать
#{link_to "улучшенной версией соглашения о формате логов изменений", changelog}.
Проект опирается на отслеживание и накопление передового опыта сообщества
пользователей открытого исходного кода.
%p
Здоровая критика, дискуссии и предложения по улучшению
= link_to "приветствуются.", issues
#{link_to "приветствуются", issues}.
%h4#filename
@ -203,65 +214,66 @@ version: 1.0.0
Как назвать файл лога изменений?
%p
Назовите его <code>CHANGELOG.md</code>. Некоторые проекты также используют
Назовите его <code>CHANGELOG.md</code>. Некоторые проекты используют
<code>HISTORY</code>, <code>NEWS</code> или <code>RELEASES</code>.
%p
Хоть и легко подумать, что имя файла лога изменений не так уж и важно,
но зачем усложнять вашим конечным пользователям поиск места,
где описаны все ключевые изменения?
Хотя легко подумать, что имя файла лога изменений не имеет большого значения,
зачем усложнять вашим конечным пользователям поиск места,
в котором описаны все значимые изменения?
%h4#github-releases
%a.anchor{ href: "#github-releases", aria_hidden: "true" }
Что насчёт функции "Релизы" на Гитхабе?
Что насчёт функции «Релизы» на GitHubе?
%p
Это отличная инициатива. #{link_to "Релизы", ghr} могут использоваться
для превращения простых тегов в Git (например, тег <code>v1.0.0</code>)
в подробные заметки к релизам с помощью их редактирования вручную,
или с помощью комментариев к таким тегам.
Это отличная инициатива. #{link_to "Релизы", ghr} можно использовать
для превращения простых тегов Git (например, тега, названного <code>v1.0.0</code>)
в подробные примечания к выпускам, вручную добавляя эти примечания, или же
можно извлечь сообщения из аннотированных тегов Git и превратить их в примечания.
%p
Релизы на Гитхабе создают непереносимый лог изменений, который может
быть показан пользователям только на самом Гитхабе. Возможно вести
их в формате, близком к формату проекта Keep a Changelog, но это требует
больших усилий.
Релизы на GitHubе создают непортируемый лог изменений, который может
быть показан пользователям только на самом GitHubе. Возможно вести его в формате,
очень похожем на формат проекта Keep a Changelog, но это, как правило,
немного сложнее.
%p
Текущая версия Релизов на Гитхабе также возможно не так хорошо видна
для конечных пользователей, в отличие от обычных файлов с именами в верхнем
регистре (<code>README</code>, <code>CONTRIBUTING</code> и так далее).
Другая небольшая проблема заключается в том, что интерфейс не предлагает
ссылок на логи коммитов между релизами.
Также возможно, что конечным пользователям не всегда легко обнаружить
текущую версию GitHub Releases, в отличие от обычных файлов с именами в верхнем
регистре (<code>README</code>, <code>CONTRIBUTING</code> и т. д.).
Другая небольшая проблема заключается в том, что в настоящее время
интерфейс не предлагает ссылок на логи коммитов, выполненных между релизами.
%h4#automatic
%a.anchor{ href: "#automatic", aria_hidden: "true" }
Могут ли логи изменений быть автоматически распарсены?
%p
Это сложно, потому что люди следуют сильно различающимся форматам
Это сложно, потому что люди соблюдают сильно различающиеся форматы
и используют разные имена файлов.
%p
#{link_to "Vandamme", vandamme} это гем для Руби, созданный командой
Gemnasium, который парсит многие (но не все)
#{link_to "Vandamme", vandamme} — это gem для Ruby, созданный командой
Gemnasium и способный парсить многие (но не все)
логи изменений проектов с открытым исходным кодом.
%h4#yanked
%a.anchor{ href: "#yanked", aria_hidden: "true" }
Что насчёт yanked-релизов?
Что насчёт yanked-выпусков?
%p
Yanked-релизы это версии, которые изымаются из обращения из-за серьёзного
бага или проблемы безопасности в них. Часто такие версии даже не упоминаются
в логах изменений. А должны. И вот как вам следует их упоминать:
Yanked-выпуски — это версии, которые пришлось изъять из обращения из-за
серьёзного бага или проблем с безопасностью. Часто такие версии даже
не обозначают в логах изменений. А следовало бы. И вот как вам следует их
обозначать:
%p <code>## [0.0.5] - 2014-12-13 [YANKED]</code>
%p
Тег <code>[YANKED]</code> так бросается в глаза специально. Очень важно,
чтобы люди его заметили. Так как он обрамлён квадратными скобками,
Тег <code>[YANKED]</code> так бросается в глаза неспроста. Очень важно,
чтобы люди его заметили. Поскольку он заключён в квадратные скобки,
его также проще распарсить программно.
@ -271,25 +283,26 @@ version: 1.0.0
%p
Конечно. Всегда есть веские причины для улучшения лога изменений.
Я регулярно открываю пулл-реквесты по добавлению недостающих релизов
в проекты с открытым исходным кодом с брошенными логами изменений.
Я регулярно подаю pull requestы на добавление недостающих выпусков в проекты
с открытым исходным кодом, которые оставили свои логи изменений без сопровождения.
%p
Также возможно вы можете обнаружить, что вы забыли указать критичное
изменение в замечаниям к версии. В этом случае очевидно вам важно
Возможно, вы обнаружите, что забыли указать критичное
изменение в примечании к версии. Очевидно, что в этом случае вам важно
обновить ваш лог изменений.
%h4#contribute
%a.anchor{ href: "#contribute", aria_hidden: "true" }
Как я могу помочь вашему проекту?
%p
Этот документ <strong>не истина в последней инстанции</strong>; это моё
тщательно обдуманное мнение, вместе с информацией и примерами, которые я собрал.
Этот документ <strong>не истина в последней инстанции</strong>; это моё
тщательно обдуманное мнение наряду с информацией и примерами, которые я собрал.
%p
Дело в том, что я хочу, чтобы наше сообщество достигло согласия в этом вопросе.
Я верю, что дискуссия также важна, как и конечный результат.
Дело в том, что я хочу, чтобы наше сообщество пришло к согласованному мнению.
Я верю, что дискуссия так же важна, как и конечный результат.
%p
Так что, пожалуйста, <strong>#{link_to "участвуйте", gh}</strong>.
@ -297,6 +310,6 @@ version: 1.0.0
.press
%h3 Обсуждения
%p
Я приходил в #{link_to "подкаст The Changelog", thechangelog},
чтобы поговорить о том, почему мейнтейнеры и контрьбьюторы должны вести логи изменений,
а также о моей мотивации к созданию этого проекта.
Я приходил на #{link_to "подкаст The Changelog", thechangelog}, чтобы поговорить о том,
почему maintainerам (персоналу сопровождения) и контрибуторам следует озаботиться
ведением логов изменений, а также о мотивах, стоящих за этим проектом.