Code Monkey home page Code Monkey logo

book's Issues

Большая разница между переводом и оригиналом.

Хотел бы обратиться ко всем, кто занимается переводом растбука. Разница между актуальной английской версией растбука и его русской становиться уже существенной, и обучаться по русской версии уже не получается. Например, в разделе 7.4 в английской версии есть существенное замечание о области видимости элементов, подключаемых ключевым словом use

Note that use only creates the shortcut for the particular scope in which the use occurs. Listing 7-12 moves the eat_at_restaurant function into a new child module named customer, which is then a different scope than the use statement and the function body won’t compile: ....

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

two's complement перевод 3.2 Chapter

Предлагаю добавить в скобочки термин на английском вот так Вместо этого, в случае переполнения Rust выполняет оборачивание дополнительного кода (two's complement)
Потому что без уточнения по смыслу кажется, что rust оборачивает каким-то дополнительным кодом своим это переполнение, ну типо проверки выхода за границы массива
image
image

Оформление картинок в главе "Что такое владение?"

Три первые картинки в файле ch04-01-what-is-ownership.md отформатированы криво после перевода. Вот пример первой из них в оригинале и переводе:

<img alt="Two tables: the first table contains the representation of s1 on the
stack, consisting of its length (5), capacity (5), and a pointer to the first
value in the second table. The second table contains the representation of the
string data on the heap, byte by byte." src="img/trpl04-01.svg" class="center"
style="width: 50%;" />
<img alt="Two tables: the first table contains the representation of s1 on the&lt;br&gt;stack, consisting of its length (5), capacity (5), and a pointer to the first&lt;br&gt;value in the second table. The second table contains the representation of the&lt;br&gt;string data on the heap, byte by byte." src="https://github.com/rust-lang-ru/book/blob/master/rustbook-ru/src/img/trpl04-01.svg?raw=true" class="">

Ошибка в переводе

Раздел 4.1: Что такое владение

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

Область видимости

Другими слова, здесь есть два важных момента:

Другими словами

Странная опечатка

На странице ch06-01-defining-an-enum.md есть текст:

Но когда мы использовали различные структуры, каждая из которые имеет свои собственные типы
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⬆️
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀(опечатка)

Хотя на gitlocalize написано всё правильно (https://gitlocalize.com/repo/4579/ru/rustbook-en/src/ch06-01-defining-an-enum.md)

Но когда мы использовали различные структуры, каждая из которых имеет свои собственные типы

Разрешение конфликтов

На данный момент, не все конфликты сопоставления оригинала и перевода разрешены.

Необходимо удалить то, что не соответствует оригиналу и сопоставить оставшееся.

Неисправимые теги

После очередной синхронизации перевода вёрстка всё также сломана, как и до этого!
Это происходит не в первый раз и я уже начинаю уставать исправлять этот кусок.
Кто принимает и апрувит работу на GitLocalize, прошу завести баг в их репозитория или объясните что идёт не так, потому что у меня нет информации, что происходит с книгой дальше, после исправления на GitLocalize.

Вот что я вижу после внесения испрвлений на GitLocalize:
Screenshot 2023-03-21 at 15 25 48

Вот что я вижу после принятия этих испрвлений на GitLocalize:
Screenshot 2023-03-21 at 15 18 25

приложения ли приложения (addendums, etc)

Приложение D теперь называется "Средства разработки"

https://doc.rust-lang.ru/book/

Вот только нефига не так оно уже называется.

Дополнение Г - Средства разработки

https://doc.rust-lang.ru/book/appendix-04-useful-development-tools.html

В связи с чем возникает вопрос, нельзя ли выделить название appendix-04 в глобальную константу и править в одном месте? Уж не знаю, в рамках ли mdbook или в рамках онлайн-переводчика. Первое бы лучше, но не знаю, умеет ли это mdBook.

Неверные сведения о языках C и C++ и ошибка перевода

  1. Дублирую это: rust-lang/book#3761
  2. Также перепутаны указатели и ссылки здесь же:
    > В языках C и C++, используются два различных оператора для вызова методов: используется `.`, если вызывается метод непосредственно у экземпляра структуры и используется `->`, если вызывается метод у ссылки на объект. Другими словами, если `object` является ссылкой, то вызовы метода `object->something()` и ` (*object).something()` являются аналогичными.

Предлагаю просто исправить параллельно с исправлением оригинала. Могу (и хочу) это сделать.

Ошибка в переводе

Раздел 6.3: Сокращенное управление с if let

Если у вас есть ситуация в которой ваша программа имеет слишком многословную логику, можно выразить её используя match, то помните, что if let также есть в вашем наборе инструментов Rust.

Наверное вместо то больше подойдет но. Ещё можно совсем убрать то.

Misprint in rustbook-ru/src/ch08-02-strings.md

Раздел: Индексирование в строках

  1. Всё равно вы получить ошибку при попытке получить доступ... - Однако, вы всё равно получите ошибку при попытке получить доступ...

До(в контесте абзаца):
Доступ к отдельным символам в строке, ссылаясь на них по индексу, является допустимой и распространённой операцией во многих других языках программирования. Всё равно вы получить ошибку при попытке получить доступ к частям String, используя синтаксический индекс в Rust. Рассмотрим неверный код в листинге 8-19.

После(в контесте абзаца):
Доступ к отдельным символам в строке, ссылаясь на них по индексу, является допустимой и распространённой операцией во многих других языках программирования. Однако, вы всё равно получите ошибку при попытке получить доступ к частям String, используя синтаксический индекс в Rust. Рассмотрим неверный код в листинге 8-19.

Ошибка в указании листинга

Раздел 3.5: Управление выполнением кода

Так как if является выражением, то его можно использовать в правой части кода оператора let, как в листинге 3-2.

В разделе отсутствует листинг 3-2 или не правильно указан номер листинга.

Ошибка в переводе

Раздел 10.2. Типажи: определение общего поведения

Ошибка в листинге 10-12:
pub trait Summarizable { fn summary(&self) -> String; }

В оригинале:
pub trait Summary { fn summarize(&self) -> String; }

Multiple typos in rustbook-ru/src/ch05-01-defining-structs.md

  1. месте - вместе (together);
  2. везде , где (need a comma);

Для определения структуры, указывается ключевое слово struct и её название. Название должно описывать значение частей данных сгруппированных вместе.

Чтобы получить определённое значение поля структуры, мы можем использовать точечную нотацию (как в кортеже). Если нужен только электронный адрес, можно использовать user1.email везде , где нужно его значение.

ch05-01-defining-structs.md.patch.txt

Also, this is a really strange construction (using ;) :

Заметим, что весь экземпляр структуры должен быть изменяемым; Rust не позволяет помечать изменяемыми отдельные поля.
I guess we should have either a comma or new sentence here. This is actual for English version of the book too.

Ошибка в переводе

Раздел: 2. Игра "Угадай число"

Ввод quit в самом деле завершит игру, как и любой другой ввод не являющийся числом. Однако это не оптимально, если не сказать больше. Мы хотим, чтобы игра автоматически остановитесь, когда угадан правильный номер.

Кажется корректнее было бы:

Мы хотим, чтобы игра автоматически остановилась, когда будет угадан правильный номер.

Некорректная ссылка

В главе Трактование типа как ссылки реализуя типаж Deref есть ссылка на "Using Tuple Structs without Named Fields to Create Different Types", которой в русской версии нет. Предлагаю заменить эту ссылку на Кортежные структуры: структуры без именованных полей для создания разных типов, которая там, судя по всему, и должна быть.

Вычитанные главы

Смещены листинги кода в п. 8.1

Нашел несоответствие в раст бук на русском в главе 8, пункте 8.1. В книге на английском в этом месте говорится про заимствование в элемента вектора. А в книге на русском не соответствует код, в коде нет обращения к сотому элементу. Но основное, что код не соответствует описанию
image

В русском переводе смещение листингов на 1 вверх
image
image

А конкретно из этого места "Удаление вектора - удаляет все его элементы" все поплыло
image
image

Спасибо!)

Ошибка в переводе

Раздел 6.2: Оператор match

Таким образом, если её нет у нашего друга, то её можно добавить его в его коллекцию.

link is obsolete

https://doc.rust-lang.ru/book/appendix-06-translation.html

ссылка на русский перевод ведёт на брошенную репу

P.S. И вообще, открыв как-нибудь https://doc.rust-lang.ru/book весьма трудно найти там какие-нибудь ссылки на обратную связь. Не стоит ли на первой странице добавить ссылку на актуальные репозиторий и трекер?

A typo related to get access for whole slice in rustbook-ru/src/ch04-03-slices.md

[anovik@arch-vm0 rust-book.git]$ diff -Naru /tmp/ch04-03-slices.md.orig /tmp/ch04-03-slices.md.patched
--- /tmp/ch04-03-slices.md.orig 2020-07-01 17:52:32.906833243 +0300
+++ /tmp/ch04-03-slices.md.patched 2020-07-01 17:50:31.040170335 +0300
@@ -149,8 +149,8 @@
Также можно не указывать оба значения, чтобы получить срез всей строки. Это эквивалентно:

let s = String::from("hello");
 
 let len = s.len();
 
-let slice = &s[3..len];
-let slice = &s[3..];
+let slice = &s[0..len];
+let slice = &s[..];

Внимание: Индексы среза строк должны соответствовать границам UTF-8 символов. Если вы попытаетесь получить срез нарушая границы символа в котором больше одного байта, то вы получите ошибку времени исполнения. В рамках этой главы мы будем предполагать только ASCII кодировку. Более детальное обсуждение UTF-8 находится в секции ["Сохранение текста с кодировкой UTF-8 в строках"] главы 8.
@@ -301,4 +301,4 @@
Владение влияет на множество других частей и концепций языка Rust. Мы будем говорить об этих концепциях на протяжении оставшихся частей книги. Давайте перейдём к главе 5 и рассмотрим группировку частей данных в структуры struct.

-["Сохранение текста с кодировкой UTF-8 в строках"]: ch08-02-strings.html#storing-utf-8-encoded-text-with-strings
\ В конце файла нет новой строки
+["Сохранение текста с кодировкой UTF-8 в строках"]: ch08-02-strings.html#storing-utf-8-encoded-text-with-strings

Сделать редиректы с первой версии книги

Первая версия книги лежит тут.
Необходимо:

  • добавить информационный блок о том, что перевод находится по другому адресу (как тут)
  • добавить в link rel="canonical" ссылку на текущий перевод
  • архивировать первую версию книги

Использование тире

Добырй день.
Предлагаю в "Правила участия в переводе" CONTRIBUTING.md добавить правила использования тире в переводе и о том, что оно должно быть "длинным" (em dash) по умолчанию.

Тег с ignore

В книге встречется комментарий с текстом ignore: <!-- ignore -->. Это технический коментарий для mdbook. Переводить его не нужно.

Задача информационная, выполнения не требует

Хэш-карты и HashMap

В тексте используется и "хэш-карты" и "HashMap" вперемешку. Мне кажется лучше не использовать "хэш-карты", так как такое название сбивает с толку. А также будет одна стилистика.

Ссылки в ru appendix-01

Ссылки, используемые по тексту, не работают.

  • [«Сырые идентификаторы]: #raw-identifiers
    Предлагаю в заголовок добавить ссылку с id

    ### Сырые идентификаторы <a id="raw-identifiers"></a>
    
  • [объединение]: ../reference/items/unions.html
    Непонятно куда ведет.

  • [Приложение E]: appendix-05-editions.html
    Исправить расширение файла

    [Приложение E]: appendix-05-editions.md
    

Некорректный перевод

В 4.3 тип среза есть упоминание некого "дополнительного бита".

скриншот

Вероятно ошибка произошла из-за некорректного перевода слова bit (которое в данном случае значит "малая часть" а не "двоичный бит"). Предлагаю альтернативый перевод: "в дополнительном кусочке синтаксиса" [0..5].

P.S. Я постарался сделать изменение через GitLocalize, но не разобрался и решил вместо этого оставить issue.

Кривое окончание

На странице ch04-02-references-and-borrowing есть предложение:

В один момент времени, может существовать либо одна изменяемая ссылка, либо любое количество неизменяемых ссылка

Вот неизменяемых ссылка звучит странно.

Нарушение вёрстки Markdown в GitLocalize

Наблюдаю проблему, которая, похоже, носит систематический характер.
GitLocalize не даёт редактировать "сырой" файл Markdown, а предлагает лишь работать с его "красивым" представлением. Это приводит к ошибкам в разметке. Если есть способ в GitLocalize работать с исходным файлом явно, надо это добавить в инструкцию, потому что на текущий момент не понятно, как можно исправить обнаруженные проблемы.

В качестве примера можно сравнить последний абзац файла ch03-00-common-programming-concepts.md.
Оригинал (https://github.com/rust-lang-ru/book/blob/master/rustbook-en/src/ch03-00-common-programming-concepts.md?plain=1):

Keywords

The Rust language has a set of keywords that are reserved for use by the
language only

Перевод (https://github.com/rust-lang-ru/book/blob/master/rustbook-ru/src/ch03-00-common-programming-concepts.md?plain=1):

Ключевые слова В языке Rust как и в других языках есть набор ключевых слов, зарезервированных

Лишнее несогласованное "мы"

Глава 20, раздел 20.2 (Создание ThreadPool с помощью разработки, управляемой компилятором)

В предложении "Теперь мы ошибка возникает из-за того, что у нас нет метода execute в структуре ThreadPool." мы лишнее.

Снимок экрана 2023-05-12 в 21 11 00

P.s.: Спасибо за работу над переводом!
Не смог найти никаких правил для оформления PR на опечатки и т.д. Если такие правила есть, то прошу в ответе дать ссылку.

two's complement перевод 3.2 Chapter

Предлагаю добавить в скобочки термин на английском вот так Вместо этого, в случае переполнения Rust выполняет оборачивание дополнительного кода (two's complement)
Потому что без уточнения термина на английском по смыслу кажется, что Rust оборачивает каким-то дополнительным кодом своим это переполнение, ну типо проверки выхода за границы массива
image
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.