From a863078b022c1b7bf799534fab05236517cefedb Mon Sep 17 00:00:00 2001 From: elcodex Date: Tue, 14 May 2019 08:54:23 +0300 Subject: [PATCH] [Rus] Improved the translation of Redux challenges (part 2) (#34324) * [Rus] Improved the translation Changed file "get-state-from-the-redux-store.russian.md" * Changed line 11 * Improved the translation * Improved the translation * Added the translation to sections also improved the translation of the sections "tests" and "challengeSeed" * Improved the translation --- .../redux/define-a-redux-action.russian.md | 12 ++++++------ .../redux/define-an-action-creator.russian.md | 10 +++++----- .../redux/dispatch-an-action-event.russian.md | 10 +++++----- .../get-state-from-the-redux-store.russian.md | 12 ++++++------ .../handle-an-action-in-the-store.russian.md | 18 +++++++++--------- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/curriculum/challenges/russian/03-front-end-libraries/redux/define-a-redux-action.russian.md b/curriculum/challenges/russian/03-front-end-libraries/redux/define-a-redux-action.russian.md index 168a3f5d4e..6282728540 100644 --- a/curriculum/challenges/russian/03-front-end-libraries/redux/define-a-redux-action.russian.md +++ b/curriculum/challenges/russian/03-front-end-libraries/redux/define-a-redux-action.russian.md @@ -4,23 +4,23 @@ title: Define a Redux Action challengeType: 6 isRequired: false videoUrl: '' -localeTitle: Определение действия Redux +localeTitle: Определение Redux действия --- ## Description -undefined +
Т.к. Redux - это фреймворк управления состоянием, то обновление состояния - одна из его главных задач. В Redux все обновления состояния срабатывают по диспетчерским действиям. Действие - это просто JavaScript объект, который содержит информацию о произошедшем событии. Хранилище Redux получает объекты действий, затем обновляет состояние, если нужно. Иногда Redux действие также содержит некоторую дополнительную информацию. Например, действие "сообщает" имя пользователя после успешного входа в систему. Действие обязательно должно содержать поле type , которое указывает "тип" исполняемого действия. Думайте о действиях Redux как о сообщениях, которые передают информацию о событиях, происходящих в вашем приложении, хранилищу Redux. Хранилище затем занимается обновлением состояния, на основании действия которое случилось.
## Instructions -
Написание действия Redux так же просто, как объявление объекта с свойством type. Объявите объект action и придать ему свойство type установлен в строке 'LOGIN' .
+
Написание действия Redux это просто объявление объекта со свойством "тип". Объявите объект action и передайте ему свойство type со строковым значением 'LOGIN' .
## Tests
```yml tests: - - text: '' + - text: 'Объект действия существует.' testString: 'assert((function() { return typeof action === "object" })(), "An action object should exist.");' - - text: '' + - text: 'Действие должно содержать свойство (ключ) type со значением LOGIN .' testString: 'assert((function() { return action.type === "LOGIN" })(), "The action should have a key property type with value LOGIN.");' ``` @@ -33,7 +33,7 @@ tests:
```jsx -// Define an action here: +// Объявите действие здесь: ``` diff --git a/curriculum/challenges/russian/03-front-end-libraries/redux/define-an-action-creator.russian.md b/curriculum/challenges/russian/03-front-end-libraries/redux/define-an-action-creator.russian.md index 3b8bbc4761..fb0c655af6 100644 --- a/curriculum/challenges/russian/03-front-end-libraries/redux/define-an-action-creator.russian.md +++ b/curriculum/challenges/russian/03-front-end-libraries/redux/define-an-action-creator.russian.md @@ -4,14 +4,14 @@ title: Define an Action Creator challengeType: 6 isRequired: false videoUrl: '' -localeTitle: Определить создателя действий +localeTitle: Определить создателя действия --- ## Description -
После создания действия следующий шаг отправляет действие в хранилище Redux, чтобы он мог обновить свое состояние. В Redux вы определяете создателей действий для достижения этого. Создатель действия - это просто функция JavaScript, которая возвращает действие. Другими словами, создатели действий создают объекты, которые представляют события действий.
+
После создания действия следующий шаг - отправление действия в хранилище Redux, чтобы обновить свое состояние. В Redux вы определяете создателей действий для завершения процесса. Создатель действия - это просто функция JavaScript, которая возвращает действие. Другими словами, создатели действий создают объекты, которые представляют события действия.
## Instructions -
Определите функцию с именем actionCreator() которая возвращает объект action при вызове.
+
Определите функцию actionCreator() , которая возвращает объект action при вызове.
## Tests
@@ -22,7 +22,7 @@ tests: testString: 'assert(typeof actionCreator === "function", "The function actionCreator should exist.");' - text: Запуск функции actionCreator должен вернуть объект действия. testString: 'assert(typeof action === "object", "Running the actionCreator function should return the action object.");' - - text: Возвращаемое действие должно иметь тип свойства ключа со значением LOGIN . + - text: Возвращаемое действие должно иметь свойство type со значением LOGIN . testString: 'assert(action.type === "LOGIN", "The returned action should have a key property type with value LOGIN.");' ``` @@ -38,7 +38,7 @@ tests: const action = { type: 'LOGIN' } -// Define an action creator here: +// Определите создателя действия здесь: ``` diff --git a/curriculum/challenges/russian/03-front-end-libraries/redux/dispatch-an-action-event.russian.md b/curriculum/challenges/russian/03-front-end-libraries/redux/dispatch-an-action-event.russian.md index bb99361efb..bb6a316f99 100644 --- a/curriculum/challenges/russian/03-front-end-libraries/redux/dispatch-an-action-event.russian.md +++ b/curriculum/challenges/russian/03-front-end-libraries/redux/dispatch-an-action-event.russian.md @@ -8,19 +8,19 @@ localeTitle: Отправка события --- ## Description -undefined +
Метод dispatch - это то, что вы используете для отправки действий в хранилище Redux. Вызов store.dispatch() со значением, которое получено из создателя действия, посылает действие обратно в хранилище. Напомним, что создатель действия возвращает объект со свойством type, который определяет произошедшее действие. Потом метод отправляет объект действия в хранилище Redux. Основываясь на примере из предыдущего упражнения, следующие строки эквивалентны, и обе отправляют действие типа LOGIN :
store.dispatch(actionCreator());
store.dispatch({ type: 'LOGIN' });
## Instructions -undefined +
В редакторе кода в хранилище Redux инициализировано состояние в виде объекта со свойством login , у которого задано значение false . Также объявлен создатель действия loginAction() , который возвращает действие типа LOGIN . Отправьте действие LOGIN в хранилище Redux, вызвав метод dispatch и передайте ему действие, созданное функцией loginAction() .
## Tests
```yml tests: - - text: Вызов функции loginAction должен возвращать объект с свойством type установленным в строку LOGIN . + - text: Вызов функции loginAction должен возвращать объект со свойством type , у которого установлено значение LOGIN . testString: 'assert(loginAction().type === "LOGIN", "Calling the function loginAction should return an object with type property set to the string LOGIN.");' - - text: Магазин должен быть инициализирован объектом с идентификатором login установленным в значение false . + - text: Хранилище должно быть инициализировано объектом с идентификатором login , установленным в значение false . testString: 'assert(store.getState().login === false, "The store should be initialized with an object with property login set to false.");' - text: Метод store.dispatch() должен использоваться для отправки действия типа LOGIN . testString: 'getUserInput => assert((function() { let noWhiteSpace = getUserInput("index").replace(/\s/g,""); return noWhiteSpace.includes("store.dispatch(loginAction())") || noWhiteSpace.includes("store.dispatch({type: \"LOGIN\"})") === true })(), "The store.dispatch() method should be used to dispatch an action of type LOGIN.");' @@ -45,7 +45,7 @@ const loginAction = () => { } }; -// Dispatch the action here: +// Отправьте действие здесь: ``` diff --git a/curriculum/challenges/russian/03-front-end-libraries/redux/get-state-from-the-redux-store.russian.md b/curriculum/challenges/russian/03-front-end-libraries/redux/get-state-from-the-redux-store.russian.md index 2a7373646a..9157c1d637 100644 --- a/curriculum/challenges/russian/03-front-end-libraries/redux/get-state-from-the-redux-store.russian.md +++ b/curriculum/challenges/russian/03-front-end-libraries/redux/get-state-from-the-redux-store.russian.md @@ -4,23 +4,23 @@ title: Get State from the Redux Store challengeType: 6 isRequired: false videoUrl: '' -localeTitle: Получить статус из магазина Redux +localeTitle: Получение состояния из хранилища Redux --- ## Description -
Объект хранилища Redux предоставляет несколько методов, которые позволяют вам взаимодействовать с ним. Например, вы можете получить текущее state сохраненное в объекте хранилища Redux, с помощью getState() .
+
У объекта хранилища Redux есть несколько методов, которые позволяют вам взаимодействовать с ним. Например, вы можете получить текущее состояние state , сохраненное в объекте хранилища Redux, с помощью метода getState() .
## Instructions -
Код из предыдущего вызова переписывается более кратко в редакторе кода. Используйте store.getState() для извлечения state из store и присвойте ему новую переменную currentState .
+
Код из предыдущего упражнения переписан более кратко в редакторе кода. Используйте store.getState() для извлечения state из store и присвойте его новой переменной currentState .
## Tests
```yml tests: - - text: Хранилище redux должно иметь значение 5 для начального состояния. + - text: В хранилище Redux должно быть значение 5 для начального состояния. testString: 'assert(store.getState()===5, "The redux store should have a value of 5 for the initial state.");' - - text: Переменная currentState должна существовать и ей должно быть присвоено текущее состояние хранилища Redux. + - text: Переменная currentState должна существовать, и ей должно быть присвоено текущее состояние хранилища Redux. testString: 'getUserInput => assert(currentState === 5 && getUserInput("index").includes("store.getState()"), "A variable currentState should exist and should be assigned the current state of the Redux store.");' ``` @@ -37,7 +37,7 @@ const store = Redux.createStore( (state = 5) => state ); -// change code below this line +// измените код ниже этой линии ``` diff --git a/curriculum/challenges/russian/03-front-end-libraries/redux/handle-an-action-in-the-store.russian.md b/curriculum/challenges/russian/03-front-end-libraries/redux/handle-an-action-in-the-store.russian.md index 5bc491417b..0fb48a37c8 100644 --- a/curriculum/challenges/russian/03-front-end-libraries/redux/handle-an-action-in-the-store.russian.md +++ b/curriculum/challenges/russian/03-front-end-libraries/redux/handle-an-action-in-the-store.russian.md @@ -4,27 +4,27 @@ title: Handle an Action in the Store challengeType: 6 isRequired: false videoUrl: '' -localeTitle: Управлять действием в магазине +localeTitle: Обработка действия в хранилище --- ## Description -
После того, как действие создано и отправлено, хранилище Redux должно знать, как реагировать на это действие. Это задача reducer . Редукторы в Redux отвечают за изменения состояния, которые происходят в ответ на действия. reducer принимает state и action качестве аргументов и всегда возвращает новое state . Важно видеть, что это единственная роль редуктора. Он не имеет побочных эффектов - он никогда не называет конечную точку API и никогда не имеет никаких скрытых сюрпризов. Редуктор - это просто чистая функция, которая принимает состояние и действие, а затем возвращает новое состояние. Другим ключевым принципом в Redux является то, что state доступно только для чтения. Другими словами, функция reducer должна всегда возвращать новую копию state и никогда не изменять состояние напрямую. Redux не обеспечивает неизменность состояния, однако вы несете ответственность за его выполнение в коде своих функций редуктора. Вы будете практиковать это в более поздних проблемах.
+
После того, как действие создано и отправлено, хранилище Redux должно знать, как реагировать на это действие. Это задача функции reducer . Редукторы в Redux отвечают за изменения состояния, которые происходят в ответ на действия. reducer принимает state и action в качестве аргументов и всегда возвращает новое state . Важно видеть, что это единственная роль редуктора. Он не имеет побочных эффектов - он никогда не вызывает конечную точку API (API endpoint) и никогда не имеет никаких скрытых сюрпризов. Редуктор - это просто чистая функция, которая принимает состояние и действие, а затем возвращает новое состояние. Другим ключевым принципом в Redux является то, что state доступно только для чтения. Другими словами, функция reducer должна всегда возвращать новую копию state и никогда не изменять состояние напрямую. Redux не обеспечивает неизменность состояния, однако вы несете ответственность за его выполнение в коде своих функций редуктора. Вы будете практиковать это в следующих упражнениях.
## Instructions -
Редактор кода имеет предыдущий пример, а также начало функции reducer для вас. Заполните тело функции reducer так, чтобы, если он получает действие типа 'LOGIN' он возвращает объект состояния с login установленным в true . В противном случае он возвращает текущее state . Обратите внимание, что текущее state и отправленное action передаются в редуктор, поэтому вы можете напрямую обращаться к типу действия с помощью action.type .
+
В редакторе кода записан предыдущий пример, а также каркас функции reducer для вас. Заполните тело функции reducer так, чтобы, если она получает действие типа 'LOGIN' она возвращает объект состояния с login , установленным в true . В противном случае он возвращает текущее state . Обратите внимание, что текущее state и отправленное action передаются в редуктор, поэтому вы можете напрямую обращаться к типу действия с помощью action.type .
## Tests
```yml tests: - - text: 'Вызов функции loginAction должен возвращать объект с свойством типа, установленным в строку LOGIN .' + - text: 'Вызов функции loginAction должен возвращать объект со свойством type, установленным в строку LOGIN .' testString: 'assert(loginAction().type === "LOGIN", "Calling the function loginAction should return an object with type property set to the string LOGIN.");' - - text: Магазин должен быть инициализирован объектом с идентификатором login установленным в значение false . + - text: Хранилище должно быть инициализировано объектом с идентификатором login , установленным в значение false . testString: 'assert(store.getState().login === false, "The store should be initialized with an object with property login set to false.");' - - text: '' + - text: 'Отправка loginAction должна обновлять свойство login в состоянии хранилища на true .' testString: 'assert((function() { const initialState = store.getState(); store.dispatch(loginAction()); const afterState = store.getState(); return initialState.login === false && afterState.login === true })(), "Dispatching loginAction should update the login property in the store state to true.");' - - text: '' + - text: 'Если действие не типа LOGIN , то хранилище должно вернуть текущее состояние.' testString: 'assert((function() { store.dispatch({type: "__TEST__ACTION__"}); let afterTest = store.getState(); return typeof afterTest === "object" && afterTest.hasOwnProperty("login") })(), "If the action is not of type LOGIN, the store should return the current state.");' ``` @@ -42,9 +42,9 @@ const defaultState = { }; const reducer = (state = defaultState, action) => { - // change code below this line + // изменить код ниже этой линии - // change code above this line + // измените код выше этой линии }; const store = Redux.createStore(reducer);