-
Notifications
You must be signed in to change notification settings - Fork 386
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
base: main
Are you sure you want to change the base?
Conversation
Сори. Случайно запулил и второй перевод здесь. Надеюсь не будет проблемой проверить сразу оба. Если проблемно, закину его отдельно. |
@@ -1,88 +1,90 @@ | |||
--- | |||
title: Writing Markup with JSX | |||
title: Написание JSX разметки |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
title: Написание JSX разметки | |
title: Написание JSX-разметки |
Следует ставить дефис для сложносоставных существительных, образованных из двух самостоятельных существительных, включая случаи когда первое не переводится. Аналогично, стоит перепроверить другие случаи ниже, например, React-разработчики
и JavaScript-файлов
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Спасибо!
|
||
### Linting {/*linting*/} | ||
### Отладчик {/*linting*/} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У вас тут случилась разница с пробелами. Пожалуйста поправьте. Иначе в будущем сложно будет решать конфликты при ребейзе
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co-authored-by: Anton Ahatov <anton@gcor.ru>
Co-authored-by: Anton Ahatov <anton@gcor.ru>
Co-authored-by: Anton Ahatov <anton@gcor.ru>
Size changes📦 Next.js Bundle Analysis for react-devThis 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: |
There was a problem hiding this comment.
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>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please check line breaks
There was a problem hiding this 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 встречается во многих кодовых базах. |
There was a problem hiding this comment.
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*/} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<br /><br /> | ||
<b>And <i>pictures</i></b> of scientists! | ||
<b>И <i>изображения</i></b> ученых! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<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. Исправьте его: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Эта 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) и встроенным автозаполнением. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* [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 в браузере. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот пустой тег называется *[Фрагмент.](/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 тега без их объединения в один тег или Фрагмент. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вы можете [найти все эти атрибуты в списке свойств 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 самостоятельно. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Конвертация всех атрибутов в уже существующей разметке может быть утомительной. Мы рекомендуем использовать [конвертор](https://transform.tools/html-to-jsx) чтобы конвертировать уже существующую HTML разметку в JSX. Конверторы очень полезны на практике, но вам все равно следует понимать правила, чтобы без проблем писать JSX самостоятельно. | |
Конвертация всех атрибутов в уже существующей разметке может быть утомительной! Мы рекомендуем использовать [конвертор](https://transform.tools/html-to-jsx) чтобы конвертировать уже существующую HTML-разметку в JSX. Конверторы очень полезны на практике, но вам всё равно следует понимать, что происходит, чтобы вы могли уверенно писать JSX самостоятельно. |
Перефразировал и исправил ё
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Спасибо за ваш перевод. Есть ряд замечаний, повторяющихся, обратите на них внимание и исправьте во всех местах.
<li>Придумать новые светофоры | ||
<li>Отрепетировать сцену из фильма | ||
<li>Улучшить спектральный сенсор |
There was a problem hiding this comment.
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>Улучшить спектральный сенсор |
There was a problem hiding this comment.
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> | ||
// Этот код не работает! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// Этот код не будет работать!
Переведено.