reactjs / ru.react.dev

React documentation website in Russian / Официальная русская версия сайта React
https://ru.react.dev
Creative Commons Attribution 4.0 International
678 stars 380 forks source link

Discussing glossary and style guide on translation #4

Closed another-guy closed 5 years ago

another-guy commented 5 years ago

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

another-guy commented 5 years ago

image

Any thoughts on that?

another-guy commented 5 years ago

@lex111 your input would be valuable on this one since you're authoring the TRANSLATION.md file (BTW, thanks for putting it together!)

Also, would we prefer to have a separate Git issue per word/term being discussed when necessity arises?

lex111 commented 5 years ago
  • Word "reuse" to only be translated as "повторное использование" rather than "переиспользование" which can not be found in vocabularies (gramota.ru, google search).

It's true this word is not and will be in the dictionaries, but it is still used and is not something grammatically wrong...

I will mention that there is such a useful dictionary - Multitran. https://www.multitran.ru/c/M.exe?l1=1&l2=2&s=reuse

Also, would we prefer to have a separate Git issue per word/term being discussed when necessity arises?

Agree, let there be one issue, where we will discuss the recommendations on translation, fine?

another-guy commented 5 years ago

Thanks for the reference to Multitran. I can rollback a commit regarding this word then (see PR).

lex111 commented 5 years ago

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

Нужно определиться с тем как переводить props, в русском переводе Vue, данный термин переводится входные параметры (https://ru.vuejs.org/v2/guide/components-props.html)

another-guy commented 5 years ago

~Мои пять копеек это поставить вопрос чуть иначе: стоит ли сейчас переводить props вообще. Я не живу в русско-говорящей стране, поэтому не знаю, что в разговорном обиходе для props.~

~Варианты:~

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

Update. Окей, я погорячился с "пропсы -- гадость". Похоже, в таком варианте многие и правда пишут уже сейчас. Если устоялось, то можно его использовать

gaearon commented 5 years ago

Я в целом за пропсы. На практике так все по-моему и говорят.

gaearon commented 5 years ago

Про стиль: https://github.com/reactjs/ru.reactjs.org/pull/6

gaearon commented 5 years ago

Надо определиться по поводу:

Меня очень беспокоит render потому что в реакте рендер не занимается реальной "отрисовкой" (конфликт с paint). Как раз-таки наоборот — весь рендеринг происходит перед коммитом и пейнтом. Про это и так уже по-айнглийски путаются. Я думаю, может просто оставить «рендеринг» и «рендериться»? Более абстрактно и тогда мне кажется не так легко сбиться.

В качестве проблемного предложения — "Effects run after every render, but they don't block the paint." Если render отрисовка, то это превращается в неправильную тавтологию.

ai commented 5 years ago

Мне пока тоже кажется, что «рендер» лучшая вещь:

  1. Мы говорим не о каком-то шаге, а о конкретном методе конкретного фреймворка.
  2. Транслитированый «рендер» лучше render, так как его легкче склонять и он лучше вписывается в язык (ну и раскладку переключать не надо).
  3. Я думаю многие кто используют функцию render не думаю, что это именно отрисовка (в значении прямого перевода слова).

Хотя если кто-то предложит что-то интереснее, то лучше конечно же заменить.

В рамках безумного лингофутуризма — «сборка» :smiling_imp:

gaearon commented 5 years ago

Будешь смеяться, но он изначально назывался structure в древней внутренней версии 2011 года.

gaearon commented 5 years ago

Еще стоит иметь в виду, что со временем классы отойдут на второй-третий план, и название метода перестанет мелькать. По смыслу мы будем каждый раз говорить о «выполнении» функции.

pepelsbey commented 5 years ago

Если не терять контекста (мол, мы в Реакте), то всегда будет понятно, что такое «рендер».

Если в общем, я бы шёл по тропинкам, которые прокладывает сообщество. То есть буквально: послушать топовые русскоязычные доклады по Реакту и записать, как там говорят. Это будет настоящая документация.

gaearon commented 5 years ago

Тогда думаю рендер и рендеринг будет, но будет хорошо, если кто-то уточнит.

gaearon commented 5 years ago

Render: https://github.com/reactjs/ru.reactjs.org/pull/9

neustroev commented 5 years ago

Привет! 👋 Бегло просмотрел /tutorial/tutorial.html - у меня больше вопросов, чем решений, но подумал, что все равно стоит их задать:

verkholantsev commented 5 years ago

Update. Окей, я погорячился с "пропсы -- гадость". Похоже, в таком варианте многие и правда пишут уже сейчас. Если устоялось, то можно его использовать

Я в целом за пропсы. На практике так все по-моему и говорят.

Может быть все-таки дать шанс термину «свойства»? Есть у него какие-то отрицательные стороны?

gaearon commented 5 years ago

Есть у него какие-то отрицательные стороны?

Думаю, что да. У «свойств» есть две проблемы:

lex111 commented 5 years ago

Как я заметил по текстам и докладам, в контексте React под рендером и отрисовка - одно и то же (имеется в виду сам процесс, а не название функции). И даже если говорят рендерит, то в целом имеют в виду то же самое — отрисовывает (и его производные).

Если посмотреть по гуглу:

Про видео, что мне приходит в голову: @xanf в своём докладе чаще даже упоминает немного отличающиеся термин — перерисовка, похожий на отрисовку вариант.

И как мне показалось, рендер используется, когда имеют в виду процесс в браузере, а отрисовку (или перерисовку) — для отображения, вывода, визуализации [компонента]. И судя по всему так и есть, учитывая упоминание paint в документации (3 раза), поэтому я бы настаивал на использовании именно отрисовки, а рендеринг — в специфичных случаях. И мне непонятно на самом деле по уже принятому PR, что используем, когда в документации упоминается render, всё-таки отрисовку?

P.S. Кстати по поводу reconciliation, всё тот же @xanf перевёл его как свёрка, насколько это верно и может этот вариант использовать, @gaearon?

xanf commented 5 years ago

reconcillation все таки "сверка" (без ё) :) Мне этот термин нравится и не нравится одновременно. Не нравится как звучит, но нравится как "постороннему" от мира Реакта человеку сразу понятно что происходит

Про "перерисовку" / "отрисовку" - я за "отрисовку" render = отрисовка rerender = перерисовка

verkholantsev commented 5 years ago

Неизбежна путаница с традиционным OO-подходом

Хотя в этом, безусловно, есть смысл, все-таки свойства и инкапсуляция в традиционном ООП это ортогональные вещи. Как предоставлять доступ к свойствам в каждом конкретном случае решает конкретный разработчик.

Реакт избегает этой проблемы, искажая слово в английском

Английский обладает большей гибкостью в этом случае — в нем подобные сокращения распространены шире.

С другой стороны очень близкое к «пропсы» «чипсы» вполне вошло в словари.

lex111 commented 5 years ago

reconcillation все таки "сверка" (без ё) :)

Да, простите, глубокая ночь, пора идти спать :)

В качестве проблемного предложения — "Effects run after every render, but they don't block the paint." Если render отрисовка, то это превращается в неправильную тавтологию.

Тогда, render - используем транслитерацию, и далее отрисовку, верно?

gaearon commented 5 years ago

@lex111

С рендером усложняется ситуация, потому что на практике React всегда был синхронный, так что большой принципиальной разницы в путанице между render и paint в плане времени не было. Но в ближайшие месяцы эта разница появляется (в concurrent mode и с passive effects), и риск запутаться выше. Я думаю, что не стоит слишком ориентироваться на то, что эти два слова относительно взаимозаменяемы сегодня (а точнее, люди как правило не в курсе разницы).

Есть на самом деле несколько независимых процессов:

Было бы здорово отделить первое по значению от следующих двух. Если два последних путаются, это не страшно.

Поэтому я за «рендер» про декларативную часть, «вывод» или «отображение» про ReactDOM.render, и «отрисовку» или «перерисовку» для browser paint.

dmitrykrylov commented 5 years ago

props - "атрибуты"? Почему вообще React использует props а не attrs по аналогии с html терминологией?

gaearon commented 5 years ago

Атрибуты кстати было бы ок, если остальные не против. Тоже думал но забыл )

gaearon commented 5 years ago

Есть маленький caveat в том что не все JSX-атрибуты становятся пропсами. Например <div ref={foo} />, ref это атрибут но не проп. Потому что он резервирован реактом.

lex111 commented 5 years ago

@gaearon

Тогда я вообще ничего не понимаю :face_with_head_bandage: , зачем сейчас такое разделение?

| render(ing) **in component sense** | рендер, рендерить, отрендерить, рендеринг |
| render(ing) **in visual sense** | отрисовать, вывести на экран |

И тогда здесь используем везде рендеринг и его производные?

neustroev commented 5 years ago

становятся пропсами это атрибут но не проп

Заметно, что транслитерация не совсем подходит из-за образования множественного числа в английском. Будут "пропЫ" вместо "пропСов" :)

(надо бы выделить в отдельные ишью переводы для render и props, чтобы здесь почище стало?)

gaearon commented 5 years ago

Ирония в том, что #11 как раз про ReactDOM.render, так что это вывод или отрисовка. До «рендеринга» мы дойдем только с компонентами.

Но если это слишком сложно, я не против просто сделать render всегда рендером, а только paint отрисовкой.

gaearon commented 5 years ago

Пропы как-то нелепо звучит. Пропсы, но проп — по-моему это ок, даже если и нелогично.

lex111 commented 5 years ago

Есть маленький caveat в том что не все JSX-атрибуты становятся пропсами. Например <div ref={foo} />, ref это атрибут но не проп. Потому что он резервирован реактом.

Вот как раз под атрибутом сразу подразумевается JSX... а вообще @maxfarseer помню пишет:

У каждого компонента могут быть свойства. Они хранятся в this.props, и передаются компоненту как атрибуты.

Т.е. атрибут - JSX, свойство - из JS, проп - всё это объединяет...

verkholantsev commented 5 years ago

Есть маленький caveat в том что не все JSX-атрибуты становятся пропсами. Например <div ref={foo} />, ref это атрибут но не проп. Потому что он резервирован реактом.

Да, не для всех возможных атрибутов Реакт компонента есть соответствующие HTML-атрибуты, но это не противоречит самой аналогии. Термин «атрибуты» выглядит меньшим злом чем «пропсы». Согласен, он вносит путаницу с JSX-атрибутами.

gaearon commented 5 years ago

Не, я имею в виду, что JSX-атрибуты не все будут скопированы в this.props, потому что ref-атрибут и key-атрибут резервные. Это не в HTML дело.

lex111 commented 5 years ago

До «рендеринга» мы дойдем только с компонентами.

Казалось, что там ведь аналогично — отрисовка?

Heegiiny commented 5 years ago

Атрибуты вносят всё-таки путаницу, а проспы однозначно определяет термин. Транслитерация не такое уж большое зло.

gaearon commented 5 years ago

@lex111 Сорри, не понял.

01dr commented 5 years ago

Для таких вещей, как пропс, нужно сохранять максимальную идентичность оригиналу, потому что поисковики смогут транслитерировать запрос и выдавать англоязычные ресурсы вроде StackOverflow и GH Issues с решением проблемы

gaearon commented 5 years ago

@lex111 Предлагаю такой компромисс для рендера https://github.com/reactjs/ru.reactjs.org/pull/13

lex111 commented 5 years ago

@gaearon с пропсами ясно, мне всё же импонирует вариант отрисовка, и я вижу проблема с ним только, когда встречается термин из браузера — paint. Но это очень нечастый случай, или я никак не могу понять. Можешь, пожалуйста, на примерах пояснить?

Короче, все до это ошибались, когда использовали отрисовку, под этим имеется в виду процесс в браузере, верно? Но ведь в контексте React это не так важно, если речь не идёт именно про painting? Хотя возникает путаница, наверное...

Когнитивный диссонанс, наверное из-за него не могу привыкнуть к отрисовке, простите, давайте тогда и правда рендеринг :/

gaearon commented 5 years ago

Но ведь в контексте React это не так важно, если речь не идёт именно про painting? Хотя возникает путаница, наверное...

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

gaearon commented 5 years ago

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

Я не буду на этом настаивать, но мне кажется этот смысл точнее.

lex111 commented 5 years ago

@gaearon хорошо бы статью по painting vs rendering, это было бы отлично... ок, давайте рендеринг использовать, хотя я всегда считал иначе, но видимо ошибался..

Считаю тогда разумным внести дополнение в словарь, развеять сомнения, внести ясность?

gaearon commented 5 years ago

Я думаю, можно внести, хотя это всё-таки реактовое отклонение. В контексте общего веба наверное рендеринг является отрисовкой.

В английском та же проблема. Термин устоялся, но реакт его «перегрузил» другим значением, и уже слишком трудно поменять обратно.

Есть конечно вариант оставить его перегруженным и на русском. Но тогда нам нужно другое слово для собственно paint.

Heegiiny commented 5 years ago

Paint тогда можно переводить как "отрисовка браузером", если он нечасто встречается.

lex111 commented 5 years ago

хотя это всё-таки реактовое отклонение

Вот поэтому неплохо бы статью в блоге на этот счёт :)

Paint тогда можно переводить как "отрисовка браузером", если он нечасто встречается.

Как раз-таки да.

gaearon commented 5 years ago

Хех. ОК, я не против отрисовки и «отрисовки браузером». Только как именно мы переведем этот фрагмент?

Although useEffect is deferred until after the browser has painted, it’s guaranteed to fire before any new renders. React will always flush a previous render’s effects before starting a new update.

Таймлайн для этого предложения:

Previous React render -> Previous browser paint -> Flushing previous effects -> React starts a new update -> React render

gaearon commented 5 years ago

Вообще может это сигнал что все такие предложения надо переписывать как диаграммы.

theKashey commented 5 years ago

С «пропсами» проблема - с одной стороны это «параметры» компонента, или «аргументы» функции, но с другой - после прочтения документации человек откроет код, и/или документацию thirdparty компонент, которая будет на английском, и шестеренки должны совпасть. Если называть некоторые вещи правильно с точки зрения русского языка - можно упустить главную цель документации - объяснить как применить её к документируемому объекту.

Heegiiny commented 5 years ago

Путаница с рендерингом и отрисовкой всё же есть, если оба слова встречаются в одном предложении, даже если рендеринг использовать.

gaearon commented 5 years ago

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