Ситуация с переводами растбука

Если я правильно понимаю, то 1) был сделан полный перевод старого бука, который подустарел, но может ещё выступить “донором” для новой версии.
2) нового рус перевода так и не начали, даже в той репе, которая сейчас проставлена по ссылке в оф.книге?

В общем и целом, с перевода как выяснилось бардачок, похоже таки отстает от оригинала. Без механизма “трэкинга минимально переводимой единицы” пытаться угнаться за актуальной версией - не реально, имхо.

Трэкать изменения по комитам - нафиг-нафиг, комит содержит обновы по нескольких файлам и выкусывать руками - это геморой великий. А если учесть, что даже merge из англ исходников потом проблематично сделать в русскую форк-репу, то тем более. Как нормально мержить англ. репу в переведенную русскую форк-репу?

ИМХО, актуальный перевод возможен с помощью трэкинг “минимально переводимой единицы” (как минимум абзац). Для чего надо соблюсти следующее:

  • исходный англ. текст должен иметь в себе “мета-данные”, например внедренный как MD коммент с инфой типа : itemId = UUID + контрольную сумму = CRC абзаца. Данную информацию можно (в теории) внедрять/обновлять в git-хуке (не уверен на 100%), чтобы она автоматом “внедрялась” или обновлялась (CRC например, если UUID уже есть и вместе с генерацией UUID если абзац новый). Надо про хуки почитать, можно ли такое сделать??

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

  • трэкинг обновлений доки, лучше организовать на CI, чтобы например, (фантазирую…) при коммитах в англ версии, в русской репе: 1) чекались обновленные страницы, по ним проходили на предмет изменения CRC кода, который тоже надо хранить (если такое получится) и создавать “таски”
    Если этот вариант не рабочий, но сверять абзацы при подмердживании англ изменений. Или просто проход по исходникам и сверка “известных UUID + CRC” из англ в рус перевод.

Как-то так видилось… иначе - обновление переводов превращается в ад, когда переводе много и дока меняется в нескольких местах, пересмотреть все тексты “глазами”, те имея “связей между версиями” - так себе занятие, имхо.

Раньше уже в гиттере обсуждали технологию перевода, хорошо бы поднять/вспомнить, до чего тогда договорились. И да, это уже отдельная тема, конкретно по переводам, возможно, стоит выделить сообщения в новую ветку.

Правила синхронизации перевода книг by @andreevlex
Были приняты в этом ПР @blandger

Перевожу главу 3.1 или Перевожу весь раздел 7

комменты из MD легко переезжают в сгенерированный HTML.

При переводе “тегированного” контента, если абзац(ы) помечен(ы) уникальным(и) UUID, то удобнее писать, перевожу : itemId:012345-FFff-666666, 012345-FFff-5455445 главы ХХХ и т.д.

проще искать оригинал и место перевода по UUID номеру. Открытый вопрос - написание серверного хука, который бы делал работу по добавлению инфы и другие орг.вопросы.

Еще вопрос. Как присоедениться к переводу книги? Пробовал под виндой. не хочет нормально устанавливаться и билдиться. Нужно только под линуксом?

https://github.com/rust-lang-nursery/mdBook - судя по статусам, mdbook под виндой тоже нормально работать бы должен. Кинься сразу какие у тебя там ошибки лезут.

Вчера под Виндой на stable 1.31.1 и MDbook 0.2.2 собрал. Только summary.md надо внутрь /src скопировать, иначе не соберёт.
Update: забыл что относительные пути внутри скопированного summary.md тоже надо обновить — убрать src/ везде.

все собрал только как дальше с переводом работать? и есть ли он вообще? и куда пул реквест делать? Есть эта версия - https://doc.rust-lang.org/1.30.0/book/2018-edition/foreword.html. А есть напрямую https://doc.rust-lang.org/book/index.html.

Ссылка на транслейт русский https://github.com/iDeBugger/rust-book-ru, но там ничего не нашел.

Вот еще состояние. Это год назад последний комент: https://github.com/rust-lang/book/issues/1158

еще и бета есть: https://doc.rust-lang.org/beta/book/foreword.html

Кстати, надо бы поднять вопрос о смене этой ссылки в самом растбуке на какой-то актуальный перевод (как я понимаю, сейчас это GitHub - kinoher/rust_book_2ed: The Rust Programming Language (на русском) / rustbook.ru).

UPD: Вообще, перед возобновлением активной работы над переводами, не помешало бы как раз вот этой нарождающейся в соседней теме командой (комитетом?) решить что и как будет организованно + выбрать ответственных за состояние перевода. Потому что сейчас инфраструктура перевода правда в фиг поймешь каком состоянии находится.

Связаться с мозиловцами, теми кто в основном пишет доку (клабник и 10 центов) будет возможность, у кого то остались контакты? Чтобы связаться, внести предложения, услышать их мнение? Без поддержки с их стороны ввести эффективный процесс перевода будет сложно, имхо.

по поводу перевода растбука. Он часто обновляется, но документация все равно на русском нужна

Мое отношение к переводам вообще, а к переводам документации в частности за последний год изменилось на 180 градусов. Не вижу в этом никакого смысла. Разработчик должен знать международный английский, актуальность перевода контролировать чрезвычайно сложно, вложенные усилия вряд ли когда-нибудь окупятся. Переводить книги (бумажные) или статьи - полезно. Переводить документацию - сложно и вредно.

С нуля — сложно и вредно, а если есть метки и изменения в оригиналах делают согласно оговореной практике, то легко и просто обновлять только то, что действительно меняется. А меняется оно не по 60-80% от общего объёма, а гораздо более мелкими кусками.

UPDATE:
Основная и муторная проблема - это удобно, быстро и качественно трэкать, где и что изменилось. Когда перевода уже много, то высматривать все глазами - это застрелиться, высматривать глазами комиты - полегче, но тоже муторно.

Скорее, надо URLO/IRLO темы по этому поводу поднять для начала, типа таких - Better support translations for The Book? - documentation - Rust Internals - мысль-то, что перевод делать не удобно, не сильно свежая.

Перечитал, все поинты в теме валидные. Основная проблема — это трекинг мелких изменений из оригинальных англ источник, это звучит от всех.
— мульти-языковое меню
— гит комиты (все или ничего)
— транзификс сервис
Тоже валидные предложения и замечания.
Отпишусь туда и подниму тему.

1 лайк

Ну это вообще не проблема. Берем фиксированный релиз, переводим всю книгу. Затем берем обновленный релиз и делаем git diff release_old..release_new, получаем общий дифф изменений, с которым затем уже можно работать.

Быстро трекать изменения не надо, надо трекать изменения релизов. Следовательно переводы растбука должны быть привязаны к релизу оригинала (и это надо указывать в заголовке перевода).

1 лайк

Ну ок, хорошее замечание — работаем исключительно с релизами, трэкать рабочие версии не хотим.
Это как? Снова с нуля, с начала все переводим?

Ну вот есть полотно изменений между релизами, разных изменений в разных файлах: 1) что то обновилось по тексту (совпадает или отличается на 0-10–80%), 2) что то по тексту осталось на 100% тем же, но переехало в новое место (в том же файле или в другой файл) , 3) что то добавилось полностью новое, 4) что то удалилось полностью или частично, где то микс случаев 1)+2) и тд.

Что дальше с этим полотном делается? В чем заключается “да вообще не проблема”? Глазками выковыривем каждый случай и соображаем “что куда и откуда”? Ищем в оригинале, что это и откуда, соотносим оригинальный текст с текстом перевода? Или как? Что в данном случае происходит дальше с полотном изменений?