Skip to content

Commit d3d7604

Browse files
gbezyukkazupon
authored andcommitted
Russian translation updates (vuejs#572)
* russian docs translation started * docs/ru/actions.md translated * docs/ru/api.md translated * docs/ru/forms.md translated * api translation fix * docs/ru/getters.md translated * docs/ru/getting-started.md translated * docs/ru/hot-reload.md translated * docs/ru/installation.md translated * docs/ru/intro.md translated * docs/ru/modules.md translated * docs/ru/README.md translated * docs/ru/strict.md translated * docs/ru/structure.md translated * docs/ru/SUMMARY.md translated (O_O for some reason it happens to be exactly the same as README.md) * docs/ru/mutations.md translated * docs/ru/plugins.md translated * docs/ru/state.md translated * docs/ru/testing.md translated * docs/ru/actions.md styling/proof-reading * docs/ru/api.md styling/proof-reading * docs/ru/forms.md styling/proof-reading * docs/ru/getters.md styling/proof-reading * docs/ru/getting-started.md styling/proof-reading * docs/ru/hot-reload.md styling/proof-reading * docs/ru/installation.md styling/proof-reading * docs/ru/intro.md styling/proof-reading * docs/ru/modules.md styling/proof-reading * docs/ru/mutations.md styling/proof-reading * docs/ru/plugins.md styling/proof-reading * docs/ru/state.md styling/proof-reading * docs/ru/strict.md styling/proof-reading * docs/ru/structure.md styling/proof-reading * docs/ru/testing.md styling/proof-reading * docs/ru/intro.md typo fix * Copyediting RU documentation * Fix typo * Change wording around alternative approaches to data handling * Fix typo * Fix typo * Better wording for linters * Fix header and change wording * fix typo * typos reported by @ipelekhan are fixed * Russian docs translation update * Fix typo * Sentence rephrasing and fix punctuation * Переключил на ветку translation-ru
1 parent 6128363 commit d3d7604

File tree

8 files changed

+150
-38
lines changed

8 files changed

+150
-38
lines changed

docs/ru/SUMMARY.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Vuex
22

3+
<!--email_off-->
34
> Внимание: это — документация для версии [email protected].
5+
<!--/email_off-->
46
5-
- [Ищете документацию для 1.0?](https://github.com/vuejs/vuex/tree/1.0/docs)
6-
- [Release Notes](https://github.com/vuejs/vuex/releases)
7+
- [Нужна документация для 1.0?](https://github.com/vuejs/vuex/tree/1.0/docs)
8+
- [История изменений](https://github.com/vuejs/vuex/releases)
79
- [Установка](installation.md)
810
- [Что такое Vuex?](intro.md)
911
- [Начало работы](getting-started.md)

docs/ru/api.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ const store = new Vuex.Store({ ...options })
6969
{
7070
key: {
7171
state,
72-
mutations,
72+
namespaced?,
73+
mutations?,
7374
actions?,
7475
getters?,
7576
modules?
@@ -160,18 +161,26 @@ const store = new Vuex.Store({ ...options })
160161

161162
### Вспомогательные функции для связывания с компонентами
162163

163-
- **`mapState(map: Array<string> | Object): Object`**
164+
- **`mapState(namespace?: string, map: Array<string> | Object): Object`**
164165

165166
Создаёт проксирующие вычисляемые свойства компонента, возвращающие поддерево state'а хранилища Vuex [Подробнее](state.md#the-mapstate-helper)
166167
167-
- **`mapGetters(map: Array<string> | Object): Object`**
168+
Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](modules.md#binding-helpers-with-namespace)
169+
170+
- **`mapGetters(namespace?: string, map: Array<string> | Object): Object`**
168171
169172
Создаёт проксирующие вычисляемые свойства компонента, проксирующие доступ к геттерам. [Подробнее](getters.md#the-mapgetters-helper)
170173
171-
- **`mapActions(map: Array<string> | Object): Object`**
174+
Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](modules.md#binding-helpers-with-namespace)
175+
176+
- **`mapActions(namespace?: string, map: Array<string> | Object): Object`**
172177
173178
Создаёт проксирующие методы компонента, позволяющие диспетчеризировать действия. [Подробнее](actions.md#dispatching-actions-in-components)
174179
175-
- **`mapMutations(map: Array<string> | Object): Object`**
180+
Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](modules.md#binding-helpers-with-namespace)
181+
182+
- **`mapMutations(namespace?: string, map: Array<string> | Object): Object`**
176183
177184
Создаёт проксирующие методы компонента, позволяющие инициировать мутации. [Подробнее](mutations.md#commiting-mutations-in-components)
185+
186+
Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](modules.md#binding-helpers-with-namespace)

docs/ru/book.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"gitbook": "2.x.x",
3-
"plugins": ["edit-link", "prism", "-highlight", "github"],
2+
"gitbook": ">3.0.0",
3+
"plugins": ["edit-link", "prism", "theme-vuejs@git+https://github.com/pearofducks/gitbook-plugin-theme-vuejs.git", "-fontsettings", "-highlight", "github"],
44
"pluginsConfig": {
55
"edit-link": {
66
"base": "https://github.com/vuejs/vuex/tree/dev/docs",
7-
"label": "Редактировать Эту Страницу"
7+
"label": "Редактировать эту страницу"
88
},
99
"github": {
1010
"url": "https://github.com/vuejs/vuex/"

docs/ru/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ store.commit('increment')
3535
console.log(store.state.count) // -> 1
3636
```
3737

38-
Ещё раз заметим: мы вызываем мутацию вместо того чтобы напрямую изменить `store.state.count` потому что мы хотим явным образом отслеживать изменения. Это простое архитектурное соглашение делает наши намерения более очевидными и упрощает понимание для читателя кода того, как измененяется состояние приложения. Кроме того, этот подход позволяет реализовать инструменты для логирования каждой мутации, создания моментальных слепков состояния приложения и даже применения "машины времени" при отладке.
38+
Ещё раз заметим: мы вызываем мутацию, вместо того чтобы напрямую изменить `store.state.count`, потому что мы хотим явным образом отслеживать изменения. Это простое архитектурное соглашение делает намерения более очевидными и упрощает понимание изменений состояния приложения при чтении кода. Кроме того, этот подход позволяет реализовать инструменты для логирования каждой мутации, создания моментальных слепков состояния приложения и даже применения "машины времени" при отладке.
3939

4040
Поскольку хранилище реактивно, для использования его состояния в компонентах достаточно просто создать вычисляемые свойства. Изменения состояния можно вызывать, инициализируя мутации в методах компонентов.
4141

docs/ru/images/flow.png

-53.1 KB
Loading

docs/ru/images/vuex.png

-12.4 KB
Loading

docs/ru/modules.md

Lines changed: 127 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -81,42 +81,143 @@ const moduleA = {
8181

8282
### Пространства имён
8383

84-
Обратите внимание, что действия, мутации и геттеры, определённые внутри модулей, тем не менее регистрируются в **глобальном пространстве имён** — это позволяет нескольким модулям реагировать на один и тот же тип мутации или действия. Избежать конфликта пространства имён вы можете, указывая для них префикс или суффикс. При создании пригодных для повторного использования модулей Vuex, пожалуй, так поступать даже нужно — кто знает, в каком окружении их будут использовать? Например, предположим что мы создаём модуль `todos`:
84+
По умолчанию действия, мутации и геттеры внутри модулей регистрируются в **глобальном пространстве имён** — это позволяет нескольким модулям реагировать на тот же тип мутаций/действий.
85+
86+
Если вы хотите сделать модули более самодостаточными и готовыми для переиспользования, вы можете создать его с собственным пространством имён, указав опцию `namespaced: true`. Когда модуль будет зарегистрирован, все его геттеры, действия и мутации будут автоматически связаны с этим пространством имён, основываясь на пути по которому зарегистрирован модуль. Например:
8587

8688
``` js
87-
// types.js
89+
const store = new Vuex.Store({
90+
modules: {
91+
account: {
92+
namespaced: true,
93+
94+
// содержимое модуля
95+
state: { ... }, // состояние модуля автоматически вложено и не зависит от опции пространства имён
96+
getters: {
97+
isAdmin () { ... } // -> getters['account/isAdmin']
98+
},
99+
actions: {
100+
login () { ... } // -> dispatch('account/login')
101+
},
102+
mutations: {
103+
login () { ... } // -> commit('account/login')
104+
},
105+
106+
// вложенные модули
107+
modules: {
108+
// наследует пространство имён из родительского модуля
109+
myPage: {
110+
state: { ... },
111+
getters: {
112+
profile () { ... } // -> getters['account/profile']
113+
}
114+
},
115+
116+
// большая вложенность с собственным пространством имён
117+
posts: {
118+
namespaced: true,
119+
120+
state: { ... },
121+
getters: {
122+
popular () { ... } // -> getters['account/posts/popular']
123+
}
124+
}
125+
}
126+
}
127+
}
128+
})
129+
```
130+
131+
Геттеры и действия с собственным пространством имён будут получать свои локальные `getters`, `dispatch` и `commit`. Другими словами, вы можете использовать содержимое модуля без написания префиксов в том же модуле. Переключения между пространствами имён не влияет на код внутри модуля.
88132

89-
// определим названия геттеров, действий и мутаций как константы
90-
// используя название модуля (`todos`) в качестве префикса
91-
export const DONE_COUNT = 'todos/DONE_COUNT'
92-
export const FETCH_ALL = 'todos/FETCH_ALL'
93-
export const TOGGLE_DONE = 'todos/TOGGLE_DONE'
133+
#### Доступ к глобальному содержимому в модулях с своим пространством имён
134+
135+
Если вы хотите использовать глобальное состояние и геттеры, `rootState` и `rootGetters` передаются 3-м и 4-м аргументами в функции геттеров, а также как свойства в объекте `context`, передаваемом в функции действий.
136+
137+
Для запуска действий или совершении мутаций в глобальном пространстве имён нужно добавить `{ root: true }` 3-м аргументом в `dispatch` и `commit`.
138+
139+
``` js
140+
modules: {
141+
foo: {
142+
namespaced: true,
143+
144+
getters: {
145+
// `getters` ограничены геттерами данного модуля
146+
// вы можете использовать rootGetters из 4-го аргумента геттеров
147+
someGetter (state, getters, rootState, rootGetters) {
148+
getters.someOtherGetter // -> 'foo/someOtherGetter'
149+
rootGetters.someOtherGetter // -> 'someOtherGetter'
150+
},
151+
someOtherGetter: state => { ... }
152+
},
153+
154+
actions: {
155+
// dispatch и commit также ограничены данным модулем
156+
// они принимают опцию `root` для вызова в глобальном пространстве имён
157+
someAction ({ dispatch, commit, getters, rootGetters }) {
158+
getters.someGetter // -> 'foo/someGetter'
159+
rootGetters.someGetter // -> 'someGetter'
160+
161+
dispatch('someOtherAction') // -> 'foo/someOtherAction'
162+
dispatch('someOtherAction', null, { root: true }) // -> 'someOtherAction'
163+
164+
commit('someMutation') // -> 'foo/someMutation'
165+
commit('someMutation', null, { root: true }) // -> 'someMutation'
166+
},
167+
someOtherAction (ctx, payload) { ... }
168+
}
169+
}
170+
}
94171
```
95172

173+
#### Подключение с помощью вспомогательных функций к пространству имён
174+
175+
Подключение модуля со своим пространством имён к компонентам с помощью вспомогательных функций `mapState`, `mapGetters`, `mapActions` и `mapMutations` это может выглядеть подобным образом:
176+
96177
``` js
97-
// modules/todos.js
98-
import * as types from '../types'
178+
computed: {
179+
...mapState({
180+
a: state => state.some.nested.module.a,
181+
b: state => state.some.nested.module.b
182+
})
183+
},
184+
methods: {
185+
...mapActions([
186+
'some/nested/module/foo',
187+
'some/nested/module/bar'
188+
])
189+
}
190+
```
99191

100-
// теперь используем определённые выше константы
101-
const todosModule = {
102-
state: { todos: [] },
192+
В таких случаях вы можете передать строку с пространством имён в качестве первого аргумента к вспомогательным функциям, тогда все привязки будут выполнены в контексте этого модуля. Пример выше можно упростить до:
103193

104-
getters: {
105-
[types.DONE_COUNT] (state) {
106-
// ...
107-
}
108-
},
194+
``` js
195+
computed: {
196+
...mapState('some/nested/module', {
197+
a: state => state.a,
198+
b: state => state.b
199+
})
200+
},
201+
methods: {
202+
...mapActions('some/nested/module', [
203+
'foo',
204+
'bar'
205+
])
206+
}
207+
```
109208

110-
actions: {
111-
[types.FETCH_ALL] (context, payload) {
112-
// ...
113-
}
114-
},
209+
#### Уточнение для разработчиков плагинов
115210

116-
mutations: {
117-
[types.TOGGLE_DONE] (state, payload) {
118-
// ...
119-
}
211+
Вас может обеспокоить непредсказуемость пространства имён для ваших модулей, когда вы создаёте [плагин](plugins.md) с собственными модулями и возможностью пользователям добавлять их в хранилище Vuex. Ваши модули будут также помещены в пространство имён, если пользователи плагина добавляют ваши модули в модуль со своим пространством имён. Чтобы приспособиться к этой ситуации, вам может потребоваться получить значение пространства имён через настройки плагина:
212+
213+
``` js
214+
// получение значения пространства имён через options
215+
// и возвращение функции плагина Vuex
216+
export function createPlugin (options = {}) {
217+
return function (store) {
218+
// добавление пространства имён к модулям плагина
219+
const namespace = options.namespace || ''
220+
store.dispatch(namespace + 'pluginAction')
120221
}
121222
}
122223
```

docs/ru/structure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@
2929
   └── products.js # модуль товаров
3030
```
3131

32-
Для справки можено использовать [Пример корзины покупок](https://github.com/vuejs/vuex/tree/dev/examples/shopping-cart).
32+
Для справки можно использовать [Пример корзины покупок](https://github.com/vuejs/vuex/tree/dev/examples/shopping-cart).

0 commit comments

Comments
 (0)