Найти в Дзене

Должен ли ИТ-переводчик понимать код? (байки ИТ-редактора)

Проверяя за коллегой перевод книги про стили API (я про нее недавно писал тут: «Про ребусы с Сенекой, HTML и ИТ») я зацепился глазом за сущий пустяк: в книге слово serializer было выделено моноширинным шрифтом, а в русском — нет. На самом деле в том контексте, где я это нашел, это не пустяк. Дело в том, что контекстом в данном случае являлось пояснение к примеру кода. Обычно в этой книге это происходит так: В данном примере код создает веб-страницу, чтобы управлять списком городов. На этой веб-странице все могут смотреть список городов, а вот добавлять новый город может только администратор. Если при создании города данные даются с ошибкой или в принципе сервер выдает ошибку, то пользователь получает уведомление. Один из ключевых элементов этого кода: сериализатор. Что это такое? Это что-то типа механизма, который разбирает и собирает сложные конструкции. Например, когда вы покупаете шкаф в ИКЕЕ, то вам никто шкаф в сборе не повезет. Вам специально обученный человек его разберет, р

Проверяя за коллегой перевод книги про стили API (я про нее недавно писал тут: «Про ребусы с Сенекой, HTML и ИТ») я зацепился глазом за сущий пустяк: в книге слово serializer было выделено моноширинным шрифтом, а в русском — нет.

... в книге слово serializer было выделено моноширинным шрифтом, а в русском переводе — нет...
... в книге слово serializer было выделено моноширинным шрифтом, а в русском переводе — нет...

На самом деле в том контексте, где я это нашел, это не пустяк. Дело в том, что контекстом в данном случае являлось пояснение к примеру кода. Обычно в этой книге это происходит так:

  • дается пример кода из ключевых элементов;
  • элементы пронумерованы;
  • ниже, в пояснениях автор говорит, что делается в каждом элементе и зачем он нужен.
-2

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

Один из ключевых элементов этого кода: сериализатор.

Что это такое? Это что-то типа механизма, который разбирает и собирает сложные конструкции. Например, когда вы покупаете шкаф в ИКЕЕ, то вам никто шкаф в сборе не повезет. Вам специально обученный человек его разберет, разложит по коробочкам, упакует, приложит инструкцию, и доставит. Вот этот обученный человек и есть — "сериализатор". В программных сервисах такую функцию выполняют специальные модули — сериализаторы (для удобства привел картинку из интернета).

-3

Если сериализатор только-только сконструировали с нуля, приняли его за образец и назвали Vasya, Petya или в нашем случае serializer — то он считается родителем, а если с него начинают снимать копии — то он будет считаться дочерним или экземпляром serializer, и он как элемент конкретного кода пишется моноширинным шрифтом. Без такого шрифта — это просто существительное "сериализатор", к рассматриваемому коду отношения не имеющее (для тех, кто интересуется юридическим переводом, разница как между "договор" и "Договор"). В общем, как смог, объяснил :)

Итак, вот мне нужно было понять — что на самом деле происходит в коде, о каком сериализаторе идет речь: просто любом в природе "сериализаторе", о serializer (который образец/эталон) или об экземпляре (т.е. потомке/копии) образца serializer? Учитывая, что в тексте написано явно serializer instance, то речь точно идет об экземпляре serializer. Исправляем в переводе:

-4

Зная свою раздолбайскую натуру, я решил перестраховаться и еще раз перепроверить все элементы. У редакторов бывает такое: когда читаешь "гладкий" перевод, бдительность притупляется и глаз замыливается. И не зря.

Споткнулся я на 6-м элементе, вот его исходная версия и присланный перевод:

-5

Тут сразу хочется передать привет и верстальщику книги, который в исходном английском тексте разорвал на две строки переменную CitySerializer. Ну да ладно, оставим на его совести, нам бы со своими грехами разобраться.

Итак, я тут изначально зацепился за то, что переводчик пропустил фразу в скобках: (default serializer). В этом криминала нет, если переводчик как-то компенсировал этот смысл в другом месте или этот смысл очевиден из окружающего контекста.

Поискал глазами компенсацию — не нашел. Может смысл "умолчания" очевиден из кода? Пошел смотреть код:

-6

Чтобы понять, есть тут что про "умолчание" или нет — нужно разобраться, что делает этот код. Этот код динамически выбирает себе сериализатор — если у API сервиса версия равна "v1" (т.е. первая версия), то в качестве сериализатора надо брать тот, что называется CitySerializer, а если какая-то другая — то тот, который определен по умолчанию (грубо говоря, родительский сериализатор, и это не CitySerializer).

Иными словами, если версия API будет "v1.1" или "v2.0" или "v0.9" или любая другая отличная от "v1" — мы сериализатор под именем CitySerializer с полочки не берем, мы берем другой, который брали всегда раньше.

Поскольку переводчик в своем варианте дал совершенно другую логику, правлю (пока) так:

-7

Вроде все.
На вопрос в заголовке статьи, думаю, каждый ответит себе сам ;-).

Спасибо за внимание.