diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d3c569401..53c0deb10 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,13 +1,13 @@ - - diff --git a/README.md b/README.md index c209cb36a..7b220693d 100644 --- a/README.md +++ b/README.md @@ -57,9 +57,9 @@ The documentation is divided into several sections with a different tone and pur ## Translation -If you are interesting in translating `ru.reactjs.org`, please join the Crowdin. +If you are interested in translating `ru.reactjs.org`, please see the current translation efforts at [isreacttranslatedyet.com](https://www.isreacttranslatedyet.com/). -* [Crowdin - React](https://crowdin.com/project/react) +If your language does not have a translation and you would like to create one, please follow the instructions at [reactjs.org Translations](https://github.com/reactjs/reactjs.org-translation#reactjsorg-translation). ## Troubleshooting diff --git a/TRANSLATION.md b/TRANSLATION.md index fd0cf4edc..200d595f3 100644 --- a/TRANSLATION.md +++ b/TRANSLATION.md @@ -4,19 +4,33 @@ Пожалуйста, используйте этот ишью, если вы хотите что-то перевести и узнать. +## Оглавление + +* [Перевод на русский язык сайта reactjs.org](#Перевод-на-русский-язык-сайта-reactjsorg) + * [Оглавление](#Оглавление) + * [Общие правила](#Общие-правила) + * [Слово живое и мёртвое](#Слово-живое-и-мёртвое) + * [Универсальное руководство по стилю](#Универсальное-руководство-по-стилю) + * [Идентификаторы заголовков](#Идентификаторы-заголовков) + * [Текст в блоках кода](#Текст-в-блоках-кода) + * [Внешние ссылки](#Внешние-ссылки) + * [Соглашение по переводу (глоссарий)](#Соглашение-по-переводу-глоссарий) + ## Общие правила - _Вы_ и его производные пишите с маленькой буквы -- Всегда используйте букву `ё` +- Всегда используйте букву `ё` (это легко соблюдать с помощью [данного npm-пакета](https://github.com/hcodes/eyo)) - Используйте тире вместо дефиса (оно должно быть намного длиннее, чем дефис). Тире: `—`, дефис: `-` - Переводите комментарии в примерах кода, но не содержимое - Используйте терминологию [словаря «Веб-стандартов»](https://github.com/web-standards-ru/dictionary), если нет исходного варианта в таблице ниже - Ссылки на ресурсы (MDN, Wikipedia) должны вести на русскую версию, если есть соответствующий перевод. - Иностранные имена переводите с указанием оригинального имени в скобках: _Дэн Абрамов (Dan Abramov)_. При этом обязательно проверьте уже существующий перевод имени в [словаре имён «Веб-стандартов»](https://github.com/web-standards-ru/dictionary/blob/master/names.md) +- Не переводите наименования компаний (Facebook, Airbnb), библиотек (Jest, Enzyme) и т.д. +- Не переводите аббревиатуры (API, DOM, HOC, UI). - Исключайте отсылки на пол читателя (см. секцию 3 на [этой странице](http://www.un.org/ru/gender-inclusive-language/guidelines.shtml)) - Названия статей и заголовки пишутся с одной заглавной буквы («Компоненты и пропсы», не «Компоненты и Пропсы»). -## Слово живое и мёртвое +### Слово живое и мёртвое Прежде чем переводить, почитайте пару страниц из «Слова живого и мёртвого» Норы Галь. Хотя бы эти две: @@ -33,6 +47,11 @@ * **Деревянно:** *будет рассказано* * **Живо:** *мы узнаем* +**Предпочитайте простые слова (за исключением терминологии ниже):** + +* **Деревянно:** *демонстрирует* +* **Живо:** *показывает* + Чтобы избежать кальки, можно брать смысл предложения, а потом перефразировать так, как объясняли бы старшему коллеге. Если предложение звучит нелепо вслух, то его надо переписать. Например: **Оригинал:** *React has been designed from the start for gradual adoption, and you can use as little or as much React as you need.* @@ -43,42 +62,207 @@ Небольшие вольности в переводе допускаются, но только если они помогают передать смысл. Перевод не должен быть ни деревянным, ни фамильярным. Истина где-то посередине. -## Соглашение по переводу +## Универсальное руководство по стилю + +Описанные ниже правила пришли [из репозитория](https://github.com/reactjs/reactjs.org-translation/blob/master/style-guide.md), предписывающего стиль общий для **всех** языков, на которые переводится документация. + +### Идентификаторы заголовков + +Каждый заголовок имеет явный идентификатор: + +```md +## Try React {#try-react} +``` + +**НЕ** переводите такие идентификаторы! Они используются для навигации. Изменение идентификатора неизбежно приведёт к поломке, если на документ ссылкаются извне, например так: + +```md +Прочтите [главу для начинающих](/getting-started#try-react), чтобы узнать больше. +``` + +✅ Можно: + +```md +## Попробуйте React {#try-react} +``` + +❌ НЕЛЬЗЯ: + +```md +## Попробуйте React {#попробуйте-react} +``` + +Это сломает ссылку, приведённую в примере выше. + +### Текст в блоках кода + +Не переводите текст в блоках кода, кроме комментариев. А вот комментарии и текст в строках следует переводить, если они не относятся к коду. + +Пример: +```js +// Example +const element =

Hello, world

; +ReactDOM.render(element, document.getElementById('root')); +``` + +✅ МОЖНО: + +```js +// Пример +const element =

Hello, world

; +ReactDOM.render(element, document.getElementById('root')); +``` + +✅ ТОЖЕ МОЖНО: + +```js +// Пример +const element =

Здравствуй, мир!

; +ReactDOM.render(element, document.getElementById('root')); +``` + +❌ НЕЛЬЗЯ: + +```js +// Пример +const element =

Здравствуй, мир!

; +// "root" ссылается на идентификатор элемента. +// Не переводите его! +ReactDOM.render(element, document.getElementById('корень')); +``` + +❌ СОВСЕМ НЕЛЬЗЯ: + +```js +// Пример +пост элемент = <з1>Здравствуй, мир!; +РеактДОМ.отрендери(элемент, документ.получиЭлементПоАйди('корень')); +``` + +### Внешние ссылки + +Если внешняя ссылка ведёт к статье на [MDN] или [Wikipedia], и там существует статья на русском языке, исправьте ссылку, чтобы она указывала на русский вариант, даже если он неполный или требует улучшения. + +[MDN]: https://developer.mozilla.org/en-US/ +[Wikipedia]: https://en.wikipedia.org/wiki/Main_Page + +Пример: + +```md +React elements are [immutable](https://en.wikipedia.org/wiki/Immutable_object). +``` + +✅ OK: + +```md +Элементы React [иммутабельны](https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82). +``` + +Для ссылок, у которых нету языковых эквивалентов (Stack Overflow, видео на YouTube, и т. д.), просто оставьте оригинальный вариант как есть. + +## Соглашение по переводу (глоссарий) + +**Пожалуйста, поддерживайте глоссарий в алфавитном порядке.** | Оригинальный термин | Перевод | | ------------------ | ---------- | +| API reference | справочник API | | array | массив | | arrow function | стрелочная функция | +| attribute | атрибут | +| batch | группа обновлений | +| batching | группировка | +| bind | привязка | | bug | баг, дефект | | bundler | бандлер | | callback | колбэк | | camelCase | *camelCase* | +| child | дочерний | +| child component | дочерний компонент | +| class component | классовый компонент | +| cleanup | сброс (*напр., сбрасываемый эффект, сбросить эффект, сбрасывающая функция*) | +| code splitting | разделение кода | +| codemod | codemod-скрипт | +| commit | фиксация | +| context | контекст | | (un)controlled component | (не)контролируемый компонент | +| cross-cutting concerns | cквозная функциональность | +| custom | пользовательский (*напр., пользовательские хуки*) | | debugging | отладка | +| destructuring | деструктуризация | +| development | разработка | +| development mode | режим разработки | +| developer tools | инструменты разработки | +| display name | отображаемое имя | | DOM container | DOM-контейнер | +| effect | эффект | | error | ошибка | -| debugging | отладка | +| error boundary | предохранитель | +| escape hatch | лазейка (*напр., императивные лазейки*) | +| fallback | запасной | +| feature | возможность (*менее предпочтительный синоним: функциональность*) | +| folder | папка | | framework | фреймворк | -| functional component | функциональный компонент | -| hook | хук | +| function component | функциональный компонент | +| helper | вспомогательный(ая); *напр., helper function — вспомогательная функция* | +| Higher-Order Component(s) | Компонент(ы) высшего порядка | +| hook | хук *(с маленькой буквы)* *(напр., хук эффекта, хук контекста)* | +| incapsulation | инкапсуляция | +| incapsulated | инкапсулированный | | key | ключ | | lazy initialization | ленивая инициализация | | library | библиотека | +| lifecycle | жизненный цикл | +| lifecycle method | метод жизненного цикла | | lifting state up | подъём состояния, поднимать состояние | +| local state | внутреннее состояние | | lowercase | нижний регистр | +| mixin | примесь | | mock | фиктивный | | (im)mutable | (им)мутабельный | | (im)mutability | (им)мутабельность | +| (un)mount | (раз)монтирование | | mutate | мутировать | +| native | нативный | | Note | Примечание | +| online | онлайн | +| online playground | онлайн-песочница | | paint | отрисовка, перерисовка | -| props | пропсы | -| reuse | повторное использование, переиспользование | +| persistent | персистентность, персистентный | +| phase | этап (*напр., этап рендеринга, этап фиксации*) | +| prop | проп *(ед. ч.)* | +| props | пропсы *(мн. ч.)* | +| production | продакшен | +| production mode | продакшен-режим | | React | React | | React element | React-элемент, элемент React | | reconciliation | согласование | +| reducer | редюсер | +| ref | реф *(ед. ч.)* | +| refs | рефы *(мн. ч.)* | +| ref forwarding | перенаправление рефа | | render(ing) | рендер, рендерить, отрендерить | +| renderer | рендерер (*напр., поверхностный рендерер*) | | re-render(ing) | (по контексту) рендер, повторный рендер, последующий рендер, отрендерить снова | -| ref | реф | +| render prop | рендер-проп *(ед. ч.)* | +| render props | рендер-пропсы *(мн. ч.)* | +| reuse | повторное использование, переиспользование | +| (previous/next) section | (предыдущая/следующая) глава *(только в разделе Основные понятия)* | +| shallow | поверхностное (сравнение, равенство), поверхностный (рендеринг) | +| side effect | побочный эффект | +| snapshot | снимок | | state | состояние | +| stateful component | компонент с состоянием | +| stateless component | компонент без состояния | +| suspense | задержка | +| tag | тег | | template literals | шаблонные строки | +| Tip | Совет | +| TLDR | Вкратце | +| Try it on CodePen | Посмотреть на CodePen | +| tutorial | введение | +| unidirectional data flow | однонаправленный поток данных | +| UI | UI | +| update | обновление | +| user interface | интерфейс (добавляйте «пользовательский» только если по контексту непонятно) | +| Warning | Предупреждение | diff --git a/content/blog/2015-03-30-community-roundup-26.md b/content/blog/2015-03-30-community-roundup-26.md index ae2dc4979..ec30f30f3 100644 --- a/content/blog/2015-03-30-community-roundup-26.md +++ b/content/blog/2015-03-30-community-roundup-26.md @@ -29,7 +29,7 @@ Colin also [blogged about his experience using React Native](http://blog.scottlo Spencer Ahrens and I had the great pleasure to talk about React Native on [The Changelog](https://thechangelog.com/149/) podcast. It was really fun to chat for an hour, I hope that you'll enjoy listening to it. :) - + ## Hacker News {#hacker-news} diff --git a/content/blog/2015-08-11-relay-technical-preview.md b/content/blog/2015-08-11-relay-technical-preview.md index c574ccce2..65b1ac5fb 100644 --- a/content/blog/2015-08-11-relay-technical-preview.md +++ b/content/blog/2015-08-11-relay-technical-preview.md @@ -13,7 +13,7 @@ While React simplified the process of developing complex user-interfaces, it lef Declarative data-fetching means that Relay applications specify *what* data they need, not *how* to fetch that data. Just as React uses a description of the desired UI to manage view updates, Relay uses a data description in the form of GraphQL queries. Given these descriptions, Relay coalesces queries into batches for efficiency, manages error-prone asynchronous logic, caches data for performance, and automatically updates views as data changes. -Relay is also component-oriented, extending the notion of a React component to include a description of what data is necessary to render it. This colocation allows developers to reason locally about their application and eliminates bugs such as under- or over-fetching data. +Relay is also component-oriented, extending the notion of a React component to include a description of what data is necessary to render it. This collocation allows developers to reason locally about their application and eliminates bugs such as under- or over-fetching data. Relay is in use at Facebook in production apps, and we're using it more and more because *Relay lets developers focus on their products and move fast*. It's working for us and we'd like to share it with the community. diff --git a/content/blog/2018-09-10-introducing-the-react-profiler.md b/content/blog/2018-09-10-introducing-the-react-profiler.md index 725a22076..7cb439e1f 100644 --- a/content/blog/2018-09-10-introducing-the-react-profiler.md +++ b/content/blog/2018-09-10-introducing-the-react-profiler.md @@ -140,7 +140,7 @@ It also shows that each time it rendered, it was the most "expensive" component To view this chart, either double-click on a component _or_ select a component and click on the blue bar chart icon in the right detail pane. You can return to the previous chart by clicking the "x" button in the right detail pane. -You can aso double click on a particular bar to view more information about that commit. +You can also double click on a particular bar to view more information about that commit. ![How to view all renders for a specific component](../images/blog/introducing-the-react-profiler/see-all-commits-for-a-fiber.gif) diff --git a/content/community/conferences.md b/content/community/conferences.md index 78f868d7f..62ac39b40 100644 --- a/content/community/conferences.md +++ b/content/community/conferences.md @@ -16,6 +16,11 @@ Do you know of a local React.js conference? Add it here! (Please keep the list c January 31, 2019 in Tehran, Iran [Website](http://reactiran.com) - [Instagram](https://www.instagram.com/reactiran/) +### Reactathon 2019 {#reactathon-2019} +March 30-31, 2019 in San Francisco, USA + +[Website](https://www.reactathon.com/) - [Twitter](https://twitter.com/reactathon) + ### App.js Conf 2019 {#appjs-conf-2019} April 4-5, 2019 in Kraków, Poland @@ -31,11 +36,21 @@ May 23-24, 2019 in Paris, France [Website](https://www.react-europe.org) - [Twitter](https://twitter.com/ReactEurope) - [Facebook](https://www.facebook.com/ReactEurope) - [Videos](https://www.youtube.com/c/ReacteuropeOrgConf) +### React Conf Armenia 2019 {#react-conf-am-19} +May 25, 2019 in Yerevan, Armenia + +[Website](https://reactconf.am/) - [Twitter](https://twitter.com/ReactConfAM) - [Facebook](https://www.facebook.com/reactconf.am/) - [YouTube](https://www.youtube.com/c/JavaScriptConferenceArmenia) - [CFP](http://bit.ly/speakReact) + ### React Norway 2019 {#react-norway-2019} June 12, 2019. Larvik, Norway [Website](https://reactnorway.com) - [Twitter](https://twitter.com/ReactNorway) +### React Loop 2019 {#react-loop-2019} +June 21, 2019 Chicago, Illinois USA + +[Website](https://reactloop.com) - [Twitter](https://twitter.com/ReactLoop) + ### ComponentsConf 2019 {#componentsconf-2019} September 6, 2019 in Melbourne, Australia [Website](https://www.componentsconf.com.au/) - [Twitter](https://twitter.com/componentsconf) diff --git a/content/docs/accessibility.md b/content/docs/accessibility.md index 663251a03..e6cacba3b 100644 --- a/content/docs/accessibility.md +++ b/content/docs/accessibility.md @@ -19,8 +19,8 @@ The [Web Content Accessibility Guidelines](https://www.w3.org/WAI/intro/wcag) pr The following WCAG checklists provide an overview: - [WCAG checklist from Wuhcag](https://www.wuhcag.com/wcag-checklist/) -- [WCAG checklist from WebAIM](http://webaim.org/standards/wcag/checklist) -- [Checklist from The A11Y Project](http://a11yproject.com/checklist.html) +- [WCAG checklist from WebAIM](https://webaim.org/standards/wcag/checklist) +- [Checklist from The A11Y Project](https://a11yproject.com/checklist.html) ### WAI-ARIA {#wai-aria} @@ -114,7 +114,7 @@ Every HTML form control, such as `` and `