Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Writing Markup with JSX and Setup page #845

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

Hellnar
Copy link

@Hellnar Hellnar commented Apr 25, 2023

Переведено.

@Hellnar
Copy link
Author

Hellnar commented Apr 26, 2023

Сори. Случайно запулил и второй перевод здесь. Надеюсь не будет проблемой проверить сразу оба. Если проблемно, закину его отдельно.

@Hellnar Hellnar changed the title Translation for Writing Markup with JSX Writing Markup with JSX and Setup page Apr 26, 2023
@@ -1,88 +1,90 @@
---
title: Writing Markup with JSX
title: Написание JSX разметки
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: Написание JSX разметки
title: Написание JSX-разметки

Следует ставить дефис для сложносоставных существительных, образованных из двух самостоятельных существительных, включая случаи когда первое не переводится. Аналогично, стоит перепроверить другие случаи ниже, например, React-разработчики и JavaScript-файлов.

Copy link
Collaborator

@gcor gcor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо!

src/content/learn/editor-setup.md Outdated Show resolved Hide resolved
src/content/learn/editor-setup.md Outdated Show resolved Hide resolved

### Linting {/*linting*/}
### Отладчик {/*linting*/}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У вас тут случилась разница с пробелами. Пожалуйста поправьте. Иначе в будущем сложно будет решать конфликты при ребейзе

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Hellnar уберите, пожалуйста, лишние пустые строки, которых не было в английской документации. Как сказал @gcor, это облегчит дальнейшее обновление при мерже изменений из английской документации

src/content/learn/writing-markup-with-jsx.md Outdated Show resolved Hide resolved
ntishkevich and others added 3 commits May 27, 2023 13:24
Co-authored-by: Anton Ahatov <anton@gcor.ru>
Co-authored-by: Anton Ahatov <anton@gcor.ru>
Co-authored-by: Anton Ahatov <anton@gcor.ru>
@github-actions
Copy link

github-actions bot commented May 27, 2023

Size changes

📦 Next.js Bundle Analysis for react-dev

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌


</YouWillLearn>

## JSX: Putting markup into JavaScript {/*jsx-putting-markup-into-javascript*/}
## JSX: Встраивание разметки в JavaScript {/*jsx-putting-markup-into-javascript*/}

The Web has been built on HTML, CSS, and JavaScript. For many years, web developers kept content in HTML, design in CSS, and logic in JavaScript—often in separate files! Content was marked up inside HTML while the page's logic lived separately in JavaScript:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove eng text


This is how Hedy Lamarr's image and list items look closed:
JSX требует закрывать все теги: самозакрывающиеся теги, такие как `<img>` должны меняться на `<img />`, а объединяющие теги, такие как `<li>oranges` должны изменяться на `<li>oranges</li>`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please check line breaks

Copy link
Collaborator

@ntishkevich ntishkevich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо за ваш перевод. Есть ряд замечаний, повторяющихся, обратите на них внимание и исправьте во всех местах.

---

<Intro>

*JSX* is a syntax extension for JavaScript that lets you write HTML-like markup inside a JavaScript file. Although there are other ways to write components, most React developers prefer the conciseness of JSX, and most codebases use it.
*JSX* - это синтаксическое расширение для JavaScript, позволяющее писать похожую на HTML разметку внутри JavaScript файлов. Несмотря на то, что существуют и другие способы написания компонентов, большинство React разработчиков предпочитают лаконичность JSX. Поэтому JSX встречается во многих кодовых базах.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для длинного тире используйте "--" или вставляйте спец символ em dash "—".
Подробнее можно почитать #851 (comment)


### Linting {/*linting*/}
### Отладчик {/*linting*/}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Hellnar уберите, пожалуйста, лишние пустые строки, которых не было в английской документации. Как сказал @gcor, это облегчит дальнейшее обновление при мерже изменений из английской документации

<br /><br />
<b>And <i>pictures</i></b> of scientists!
<b>И <i>изображения</i></b> ученых!
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<b>И <i>изображения</i></b> ученых!
<b>И <i>изображения</i></b> учёных!

Е на Ё


This HTML was pasted into a component, but it's not valid JSX. Fix it:
Эта HTML разметка была перенесена в компонент, но это неправильный JSX. Исправьте его:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Эта HTML разметка была перенесена в компонент, но это неправильный JSX. Исправьте его:
Эта HTML-разметка была перенесена в компонент, но это неправильный JSX. Исправьте его:

* [Sublime Text](https://www.sublimetext.com/) has support for JSX and TypeScript, [syntax highlighting](https://stackoverflow.com/a/70960574/458193) and autocomplete built in.
* [Vim](https://www.vim.org/) is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as "vi" with most UNIX systems and with Apple OS X.
* [WebStorm](https://www.jetbrains.com/webstorm/) — интегрированная среда разработки, спроектированная специально для JavaScript.
* [Sublime Text](https://www.sublimetext.com/) — редактор с поддержкой JSX и TypeScript, [подсветкой синтаксиса](https://stackoverflow.com/a/70960574/458193) и встроенным автозаполнением.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [Sublime Text](https://www.sublimetext.com/) — редактор с поддержкой JSX и TypeScript, [подсветкой синтаксиса](https://stackoverflow.com/a/70960574/458193) и встроенным автозаполнением.
* [Sublime Text](https://www.sublimetext.com/) — редактор с поддержкой JSX и TypeScript, встроенная [подсветка синтаксиса](https://stackoverflow.com/a/70960574/458193) и автодополнение.

Перефразировал, мне кажется, что "автодополнение" лучше подходит, чем "автозаполнение".

@@ -169,21 +170,20 @@ If you don't want to add an extra `<div>` to your markup, you can write `<>` and
</>
```

This empty tag is called a *[Fragment.](/reference/react/Fragment)* Fragments let you group things without leaving any trace in the browser HTML tree.
Этот пустой тег называется *[Фрагмент.](/reference/react/Fragment)* Фрагменты позволяют группировать элементы разметки не внедряя дополнительные теги и не изменяя древо HTML в браузере.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Этот пустой тег называется *[Фрагмент.](/reference/react/Fragment)* Фрагменты позволяют группировать элементы разметки не внедряя дополнительные теги и не изменяя древо HTML в браузере.
Этот пустой тег называется *[Фрагмент.](/reference/react/Fragment)* Фрагменты позволяют группировать элементы разметки, не внедряя дополнительные теги и не изменяя древо HTML в браузере.


JSX looks like HTML, but under the hood it is transformed into plain JavaScript objects. You can't return two objects from a function without wrapping them into an array. This explains why you also can't return two JSX tags without wrapping them into another tag or a Fragment.
JSX выглядит так же как HTML, но внутри конвертируется в обычные JavaScript объекты. Нельзя вернуть два объекта из функции без объединения в один массив. Это также объясняет почему нельзя возвращать два JSX тега без их объединения в один тег или Фрагмент.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
JSX выглядит так же как HTML, но внутри конвертируется в обычные JavaScript объекты. Нельзя вернуть два объекта из функции без объединения в один массив. Это также объясняет почему нельзя возвращать два JSX тега без их объединения в один тег или Фрагмент.
JSX выглядит как HTML, но внутри преобразуется в обычные JavaScript-объекты. Нельзя вернуть два объекта из функции без объединения в один массив. Это объясняет, почему нельзя возвращать два JSX-тега без их объединения в один тег или Фрагмент.


JSX turns into JavaScript and attributes written in JSX become keys of JavaScript objects. In your own components, you will often want to read those attributes into variables. But JavaScript has limitations on variable names. For example, their names can't contain dashes or be reserved words like `class`.
JSX конвертируется в JavaScript и все атрибуты становятся ключами JavaScript объекта. В компонентах вам часто потребуется считывать эти атрибуты и присваивать переменным. Но в JavaScript есть ограничения для названий переменных. Например, переменные не могут содержать тире или или называться так само, как и зарезервированные слова, например `class`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
JSX конвертируется в JavaScript и все атрибуты становятся ключами JavaScript объекта. В компонентах вам часто потребуется считывать эти атрибуты и присваивать переменным. Но в JavaScript есть ограничения для названий переменных. Например, переменные не могут содержать тире или или называться так само, как и зарезервированные слова, например `class`.
JSX превращается в JavaScript и все атрибуты, написанные в JSX, становятся ключами JavaScript-объектов. В своих компонентах вам часто потребуется считывать эти атрибуты и присваивать переменным. Но в JavaScript есть ограничения для названий переменных. Например, переменные не могут содержать дефисы или быть зарезервированными словами, например `class`.

Перефразировал

@@ -214,36 +214,36 @@ This is why, in React, many HTML and SVG attributes are written in camelCase. Fo
/>
```

You can [find all these attributes in the list of DOM component props.](/reference/react-dom/components/common) If you get one wrong, don't worry—React will print a message with a possible correction to the [browser console.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Вы можете [найти все эти атрибуты в списке свойств DOM компонентов.](/reference/react-dom/components/common) Если вы напишите атрибут неправильно, React покажет сообщение с возможным решением проблемы в [консоли браузера.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Вы можете [найти все эти атрибуты в списке свойств DOM компонентов.](/reference/react-dom/components/common) Если вы напишите атрибут неправильно, React покажет сообщение с возможным решением проблемы в [консоли браузера.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Вы можете [найти все эти атрибуты в списке свойств DOM-компонентов.](/reference/react-dom/components/common) Если вы напишите атрибут неправильно, React выведет сообщение с возможным решением проблемы в [консоль браузера.](https://developer.mozilla.org/docs/Tools/Browser_Console)

Перефразировал


Converting all these attributes in existing markup can be tedious! We recommend using a [converter](https://transform.tools/html-to-jsx) to translate your existing HTML and SVG to JSX. Converters are very useful in practice, but it's still worth understanding what is going on so that you can comfortably write JSX on your own.
Конвертация всех атрибутов в уже существующей разметке может быть утомительной. Мы рекомендуем использовать [конвертор](https://transform.tools/html-to-jsx) чтобы конвертировать уже существующую HTML разметку в JSX. Конверторы очень полезны на практике, но вам все равно следует понимать правила, чтобы без проблем писать JSX самостоятельно.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Конвертация всех атрибутов в уже существующей разметке может быть утомительной. Мы рекомендуем использовать [конвертор](https://transform.tools/html-to-jsx) чтобы конвертировать уже существующую HTML разметку в JSX. Конверторы очень полезны на практике, но вам все равно следует понимать правила, чтобы без проблем писать JSX самостоятельно.
Конвертация всех атрибутов в уже существующей разметке может быть утомительной! Мы рекомендуем использовать [конвертор](https://transform.tools/html-to-jsx) чтобы конвертировать уже существующую HTML-разметку в JSX. Конверторы очень полезны на практике, но вам всё равно следует понимать, что происходит, чтобы вы могли уверенно писать JSX самостоятельно.

Перефразировал и исправил ё

Copy link
Collaborator

@ntishkevich ntishkevich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо за ваш перевод. Есть ряд замечаний, повторяющихся, обратите на них внимание и исправьте во всех местах.

Comment on lines +244 to +246
<li>Придумать новые светофоры
<li>Отрепетировать сцену из фильма
<li>Улучшить спектральный сенсор
Copy link

@sysoev-dev sysoev-dev Dec 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<li>Invent new traffic lights</li>
<li>Rehearse a movie scene</li>
<li>Improve the spectrum technology</li>

Был правильный вариант, тэги <lI></li> в итоговом примере должны быть закрыты

<li>Improve the spectrum technology
<li>Придумать новые светофоры
<li>Отрепетировать сцену из фильма
<li>Улучшить спектральный сенсор
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Изобрести новые светофоры
  • Отрепетировать сцену из фильма
  • Улучшить спектральный сенсор

  • <Sandpack>

    ```js
    export default function TodoList() {
    return (
    // This doesn't quite work!
    <h1>Hedy Lamarr's Todos</h1>
    // Этот код не работает!
    Copy link

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    // Этот код не будет работать!

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    needs review A pull request ready to be reviewed
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    6 participants