diff --git a/examples/command-line-flags/command-line-flags.go b/examples/command-line-flags/command-line-flags.go
index 681ba7032..6d079271a 100644
--- a/examples/command-line-flags/command-line-flags.go
+++ b/examples/command-line-flags/command-line-flags.go
@@ -1,6 +1,6 @@
// [_Флаги командной строки_](http://en.wikipedia.org/wiki/Command-line_interface#Command-line_option)
// являются распространенным способом задания параметров
-// для программ командной строки. Например, в `wc -l` - `-l`
+// для программ командной строки. Например, в `wc -l` где `--l`
// является флагом командной строки.
package main
diff --git a/examples/command-line-flags/command-line-flags.hash b/examples/command-line-flags/command-line-flags.hash
index 2262d76f6..05a1e5f03 100644
--- a/examples/command-line-flags/command-line-flags.hash
+++ b/examples/command-line-flags/command-line-flags.hash
@@ -1,2 +1,2 @@
-e316c57acf4cc993f182f2d341a608a1eac4a551
-_r_-ZzDzQUH
+15e5556c692ba76af819911467a8f5ef163aa9e4
+sZox5nVKyXl
diff --git a/examples/execing-processes/execing-processes.sh b/examples/execing-processes/execing-processes.sh
index e7c9a527b..7f0053941 100644
--- a/examples/execing-processes/execing-processes.sh
+++ b/examples/execing-processes/execing-processes.sh
@@ -1,4 +1,5 @@
-# When we run our program it is replaced by `ls`.
+# Когда мы запускаем нашу программу,
+# она заменяется на `ls`.
$ go run execing-processes.go
total 16
drwxr-xr-x 4 mark 136B Oct 3 16:29 .
diff --git a/examples/json/json.go b/examples/json/json.go
index 920b4f8a2..4f8daa4df 100644
--- a/examples/json/json.go
+++ b/examples/json/json.go
@@ -106,7 +106,7 @@ func main() {
// Мы также можем декодировать JSON в пользовательские
// типы данных. Это дает преимущество добавления
// дополнительной безопасности типов в наши программы
- // и устранения необходимости в определении типрв
+ // и устранения необходимости в определении типов
// при доступе к декодированным данным.
str := `{"page": 1, "fruits": ["apple", "peach"]}`
res := response2{}
diff --git a/examples/json/json.hash b/examples/json/json.hash
index 5da3b7015..f59d5710f 100644
--- a/examples/json/json.hash
+++ b/examples/json/json.hash
@@ -1,2 +1,2 @@
-cabda206e7e0a15d45b7460b6f5ec6df961809eb
-Lky4Hyyl2-t
+45e5853ec2ac6af88c82f1d39e0503e474f80816
+e4gEbm50zaY
diff --git a/examples/random-numbers/random-numbers.go b/examples/random-numbers/random-numbers.go
index f06cbe459..8458cdead 100644
--- a/examples/random-numbers/random-numbers.go
+++ b/examples/random-numbers/random-numbers.go
@@ -31,7 +31,7 @@ func main() {
// Генератор чисел по умолчанию является детерминированным,
// поэтому по умолчанию он будет каждый раз генерировать
// одну и ту же последовательность чисел. Чтобы произвести
- // различные последовательности, дайте ему `соль`(https://ru.wikipedia.org/wiki/Соль_(криптография)),
+ // различные последовательности, дайте ему [соль](https://ru.wikipedia.org/wiki/Соль_(криптография)),
// которая изменяется. Обратите внимание, что это не
// безопасно использовать для генерации случайных чисел,
// которые вы намерены хранить в секрете, используйте
diff --git a/examples/random-numbers/random-numbers.hash b/examples/random-numbers/random-numbers.hash
index acd183645..e00bf9420 100644
--- a/examples/random-numbers/random-numbers.hash
+++ b/examples/random-numbers/random-numbers.hash
@@ -1,2 +1,2 @@
-03975452ff4c127a4a78897643ce3eca0b90b239
-CKeOTktHnJe
+b240af67c12c1d5c3006ae473ee2cd3b8cb62857
+-ho7_wXRsJp
diff --git a/examples/recursion/recursion.go b/examples/recursion/recursion.go
index 52ab4b20b..f30c5f0fc 100644
--- a/examples/recursion/recursion.go
+++ b/examples/recursion/recursion.go
@@ -6,7 +6,7 @@ package main
import "fmt"
-// Фукция `fact` вызывает себя по не достигнет
+// Фукция `fact` вызывает себя пока не достигнет
// `fact(0)`.
func fact(n int) int {
if n == 0 {
diff --git a/examples/recursion/recursion.hash b/examples/recursion/recursion.hash
index 26a2e365f..b1e5e2d65 100644
--- a/examples/recursion/recursion.hash
+++ b/examples/recursion/recursion.hash
@@ -1,2 +1,2 @@
-b75f7597af0526d0fefb481ef7987b5e186c0c04
-oPbHEHLaRrN
+0e5cd8b9cd953be6677cff880f8949c906a06aa7
+gNfRtchhIkR
diff --git a/examples/slices/slices.go b/examples/slices/slices.go
index 43bb3b78d..b7af34d97 100644
--- a/examples/slices/slices.go
+++ b/examples/slices/slices.go
@@ -10,8 +10,8 @@ func main() {
// В отличии от массивов, длина среза зависит от содержащихся
// в срезе элементов, а не определена при инициализации.
- // Создать пустой срез в ненулевой длиной можно используя
- // оператор `make`. В этом пример мы создаем слайс строк
+ // Создать пустой срез с ненулевой длиной можно используя
+ // оператор `make`. В этом пример мы создаем срез строк
// длиной 3 (заполненный нулевыми значениями).
s := make([]string, 3)
fmt.Println("emp:", s)
@@ -29,7 +29,7 @@ func main() {
// В дополнение к базовой функциональности, срезы
// имеют несколько дополнительных особенностей
// по сравнению с массивыми. Одна из них - `append`,
- // которая возвращает срезу содержащий одно или более
+ // которая возвращает срез содержащий одно или более
// новых значений. Обратите внимание, что результат
// функции `append` необходимо присвоить в переменную,
// т.к. это уже будет новый срез.
diff --git a/examples/slices/slices.hash b/examples/slices/slices.hash
index a4ad5e801..2b6805608 100644
--- a/examples/slices/slices.hash
+++ b/examples/slices/slices.hash
@@ -1,2 +1,2 @@
-97236c6deebee661d0bd1e696b12e4ea671d06ff
-32lRsL-MYrP
+88a69ba65064391e3fe522152c715dd6bf8088d0
+YFjKhMajfcI
diff --git a/examples/sorting-by-functions/sorting-by-functions.go b/examples/sorting-by-functions/sorting-by-functions.go
index e52dc97b7..41c738d1d 100644
--- a/examples/sorting-by-functions/sorting-by-functions.go
+++ b/examples/sorting-by-functions/sorting-by-functions.go
@@ -17,7 +17,7 @@ import (
// `[]string`.
type byLength []string
-// Мы реализуем `sort.Interface` - Len`, `Less` и `Swap`
+// Мы реализуем `sort.Interface - Len`, `Less` и `Swap`
// - для нашего типа, чтобы мы могли использовать общую
// функцию `Sort` пакета `sort`. `Len` и `Swap` обычно
// одинаковы для разных типов, а `Less` будет содержать
diff --git a/examples/sorting-by-functions/sorting-by-functions.hash b/examples/sorting-by-functions/sorting-by-functions.hash
index 374e267ad..ee66a72cb 100644
--- a/examples/sorting-by-functions/sorting-by-functions.hash
+++ b/examples/sorting-by-functions/sorting-by-functions.hash
@@ -1,2 +1,2 @@
-0252f365e73e310a8f4dc4431f598ffcea3efc72
-VQrgvKKcvRg
+222a561c36a8e0637785f69e83c55ed0fa1c3933
+SYcAi9z2B1D
diff --git a/examples/spawning-processes/spawning-processes.go b/examples/spawning-processes/spawning-processes.go
index f771227bd..ddb059570 100644
--- a/examples/spawning-processes/spawning-processes.go
+++ b/examples/spawning-processes/spawning-processes.go
@@ -22,7 +22,7 @@ func main() {
dateCmd := exec.Command("date")
// `.Output` - это еще один хелпер, который обрабатывает
- // общий случай запуска команды, ожидаетее завершения
+ // общий случай запуска команды, ожидает ее завершения
// и сбора выходных данных. Если ошибок не было, `dateOut`
// будет содержать байты с информацией о дате.
dateOut, err := dateCmd.Output()
diff --git a/examples/spawning-processes/spawning-processes.hash b/examples/spawning-processes/spawning-processes.hash
index 2ccab24a5..a9b3c290c 100644
--- a/examples/spawning-processes/spawning-processes.hash
+++ b/examples/spawning-processes/spawning-processes.hash
@@ -1,2 +1,2 @@
-4984e90d62323e378c35e5c52d0c5646fd150d82
-2QNUQPuiFlR
+810dedfcf63c028e6f0764459ce6c4affb9c584e
+Dr6xNNP4WIq
diff --git a/examples/stateful-goroutines/stateful-goroutines.go b/examples/stateful-goroutines/stateful-goroutines.go
index a26e60cf4..b87ff5934 100644
--- a/examples/stateful-goroutines/stateful-goroutines.go
+++ b/examples/stateful-goroutines/stateful-goroutines.go
@@ -24,14 +24,6 @@ import (
// и получать соответствующие ответы. Эти `структуры`
// `readOp` и `writeOp` инкапсулируют эти запросы и
// способ, которым владеет горутина-ответчик.
-// In this example our state will be owned by a single
-// goroutine. This will guarantee that the data is never
-// corrupted with concurrent access. In order to read or
-// write that state, other goroutines will send messages
-// to the owning goroutine and receive corresponding
-// replies. These `readOp` and `writeOp` `struct`s
-// encapsulate those requests and a way for the owning
-// goroutine to respond.
type readOp struct {
key int
resp chan int
@@ -63,7 +55,7 @@ func main() {
// выполняется, сначала выполняя запрошенную операцию,
// а затем отправляя значение по каналу `resp`,
// соответственно, чтобы указать успешность (и
- // ребуемое значение в случае `reads`).
+ // требуемое значение в случае `reads`).
go func() {
var state = make(map[int]int)
for {
diff --git a/examples/stateful-goroutines/stateful-goroutines.hash b/examples/stateful-goroutines/stateful-goroutines.hash
index bb70ee5e7..b754fa3c0 100644
--- a/examples/stateful-goroutines/stateful-goroutines.hash
+++ b/examples/stateful-goroutines/stateful-goroutines.hash
@@ -1,2 +1,2 @@
-e7e07404454809cbacb719ad94e70726d22dacc1
-n_gVZus4DBP
+2cdd12a991177c814a3e32e24749d6d9ffbf2312
+aqM_1xxuq7r
diff --git a/examples/testing/main_test.sh b/examples/testing/main_test.sh
index 58e0615e5..197af9dec 100644
--- a/examples/testing/main_test.sh
+++ b/examples/testing/main_test.sh
@@ -1,4 +1,5 @@
-# Run all tests in the current project in verbose mode.
+# Запустите все тесты в текущем проекте
+# в подробном режиме.
$ go test -v
== RUN TestIntMinBasic
--- PASS: TestIntMinBasic (0.00s)
diff --git a/examples/time-formatting-parsing/time-formatting-parsing.go b/examples/time-formatting-parsing/time-formatting-parsing.go
index 2b9146c7c..9a5664d15 100644
--- a/examples/time-formatting-parsing/time-formatting-parsing.go
+++ b/examples/time-formatting-parsing/time-formatting-parsing.go
@@ -1,5 +1,5 @@
-// Go supports time formatting and parsing via
-// pattern-based layouts.
+// Go поддерживает форматирование времени и синтаксический анализ с помощью
+// шаблонов.
package main
@@ -22,7 +22,7 @@ func main() {
"2012-11-01T22:08:41+00:00")
p(t1)
- // `Форматирование` и `парсинг` используют аргументы на
+ // `Format` и `Parse` используют аргументы на
// основе примеров. Обычно вы используете константу из пакета
// `time`, но вы также можете предоставить собственные шаблоны.
// Они должны использовать время в формате `Mon Jan 2
diff --git a/examples/time-formatting-parsing/time-formatting-parsing.hash b/examples/time-formatting-parsing/time-formatting-parsing.hash
index 892e30ee3..34df94198 100644
--- a/examples/time-formatting-parsing/time-formatting-parsing.hash
+++ b/examples/time-formatting-parsing/time-formatting-parsing.hash
@@ -1,2 +1,2 @@
-7a8299db21f9554a2b43ecece2d8abf7a370189c
-G61ruGfMQZA
+dc784c5a04f6bcceacbc76bf659e0e07084a4de7
+fpQ-IsgHlfz
diff --git a/examples/timeouts/timeouts.go b/examples/timeouts/timeouts.go
index 4ad9f4a0f..915b90b8c 100644
--- a/examples/timeouts/timeouts.go
+++ b/examples/timeouts/timeouts.go
@@ -17,7 +17,7 @@ func main() {
// через 2с. Обратите внимание, что канал буферизован,
// поэтому отправка в goroutine неблокирующая. Это
// обычная схема предотвращения утечек горутин в случае,
- // если канал никогда не читается.ё
+ // если канал никогда не читается.
c1 := make(chan string, 1)
go func() {
time.Sleep(2 * time.Second)
diff --git a/examples/timeouts/timeouts.hash b/examples/timeouts/timeouts.hash
index 91d44dcf7..fd3910b82 100644
--- a/examples/timeouts/timeouts.hash
+++ b/examples/timeouts/timeouts.hash
@@ -1,2 +1,2 @@
-441dc07d57c03df070488f85dbe24e5ef6591bf7
-SCMyPsGlXtX
+62241e25b9e042cacdd4f34c10dfad730c08bb2f
+6_8aNKFjm74
diff --git a/examples/waitgroups/waitgroups.go b/examples/waitgroups/waitgroups.go
index db894db86..dc0f28b55 100644
--- a/examples/waitgroups/waitgroups.go
+++ b/examples/waitgroups/waitgroups.go
@@ -26,7 +26,7 @@ func worker(id int, wg *sync.WaitGroup) {
func main() {
// Эта WaitGroup используется для ожидания выполнения
- // всех горутинё запущенных здесь.
+ // всех горутин запущенных здесь.
var wg sync.WaitGroup
// Запускаем несколько горутин и инкрементируем счетчик
diff --git a/examples/waitgroups/waitgroups.hash b/examples/waitgroups/waitgroups.hash
index 127b5e638..a0057c692 100644
--- a/examples/waitgroups/waitgroups.hash
+++ b/examples/waitgroups/waitgroups.hash
@@ -1,2 +1,2 @@
-e2776c97c7388b32808049205e557be97f74fb9c
-NiNMDeuci4O
+5eab93f2c01cde6a032e332b557facb6a4e409b3
+MPa8JFd9rHA
diff --git a/examples/waitgroups/waitgroups.sh b/examples/waitgroups/waitgroups.sh
index 9ab663946..741a3ea05 100644
--- a/examples/waitgroups/waitgroups.sh
+++ b/examples/waitgroups/waitgroups.sh
@@ -10,5 +10,5 @@ Worker 2 done
Worker 5 done
Worker 3 done
-# Порядок воркеров начинающихся и выполненных, вероятно
+# Порядок воркеров начинающихся и выполненных, вероятно,
# будет изменяться при каждом запуске.
diff --git a/public/arrays b/public/arrays
index abce14f3a..6416444d7 100644
--- a/public/arrays
+++ b/public/arrays
@@ -209,7 +209,7 @@