Skip to content

Commit

Permalink
ru translation updated
Browse files Browse the repository at this point in the history
  • Loading branch information
olebedev committed May 12, 2014
1 parent c8f1bfa commit 0210da5
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions translations/README_ru_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ m.Get("/", func() (int, string) {
~~~

#### Внедрение сервисов
Обработчики выбываются посредством рефлексии. Martini использует **Внедрение зависимости** для разрешения зависимостей в списке аргумента обработчика. **Это делает Martini полностью совместимым с интерфейсом `http.HandlerFunc`.**
Обработчики вызываются посредством рефлексии. Martini использует **Внедрение зависимости** для разрешения зависимостей в списке аргумента обработчика. **Это делает Martini полностью совместимым с интерфейсом `http.HandlerFunc`.**

Если вы добавите аргументы в ваш обработчик, Martini будет пытаться найти этот список сервисов за счет проверки типов(type assertion):
~~~ go
Expand Down Expand Up @@ -157,17 +157,16 @@ m.NotFound(func() {
})
~~~

Роуты совпадают в порядке объявления. Вызывается первый роут, который
соответствует запросу.
Роуты могут сопоставляться с http запросами только в порядке объявления. Вызывается первый роут, который соответствует запросу.

паттерны роутов могут включать именованные параметры, доступные через [martini.Params](http://godoc.org/github.com/go-martini/martini#Params) сервис:
Паттерны роутов могут включать именованные параметры, доступные через [martini.Params](http://godoc.org/github.com/go-martini/martini#Params) сервис:
~~~ go
m.Get("/hello/:name", func(params martini.Params) string {
return "Hello " + params["name"]
})
~~~

Роуты можно обхявлять как glob'ы:
Роуты можно объявлять как glob'ы:
~~~ go
m.Get("/hello/**", func(params martini.Params) string {
return "Hello " + params["_1"]
Expand All @@ -182,7 +181,7 @@ m.Get("/hello/(?P<name>[a-zA-Z]+)", func(params martini.Params) string {
~~~
Для большей информации о синтаксисе регулярных выражений смотрите [Go documentation](http://golang.org/pkg/regexp/syntax/).

Рбработчики роутов так же могут быть выстроены в стек, друг перед другом. Это очень удобно для таких задач как авторизация и аутентификация:
Обработчики роутов так же могут быть выстроены в стек, друг перед другом. Это очень удобно для таких задач как авторизация и аутентификация:
~~~ go
m.Get("/secret", authorize, func() {
// будет вызываться, в случае если authorize ничего не записал в ответ
Expand Down Expand Up @@ -264,7 +263,7 @@ m.Handlers(
)
~~~

Middleware обработчики очень хорошо работают для таких вещей как логгировани, авторизация, аутентификация, сессии, сжатие, страницы ошибок и любые другие операции, которые должны быть выполнены до или после http запроса:
Middleware обработчики очень хорошо работают для таких вещей как логгирование, авторизация, аутентификация, сессии, сжатие, страницы ошибок и любые другие операции, которые должны быть выполнены до или после http запроса:
~~~ go
// валидация api ключа
m.Use(func(res http.ResponseWriter, req *http.Request) {
Expand All @@ -275,7 +274,7 @@ m.Use(func(res http.ResponseWriter, req *http.Request) {
~~~

### Next()
[Context.Next()](http://godoc.org/github.com/go-martini/martini#Context) опциональная функция, которая может быть вызвана в Middleware обработчике, для выброса из контекста, и возврата в него, после вызова всего стека обработчиков. Это работает очень хорошо для некоторыз операций, которые должны быть выполнены после http запроса:
[Context.Next()](http://godoc.org/github.com/go-martini/martini#Context) опциональная функция, которая может быть вызвана в Middleware обработчике, для выброса из контекста, и возврата в него, после вызова всего стека обработчиков. Это работает очень хорошо для некоторых операций, которые должны быть выполнены после http запроса:
~~~ go
// логгирование до и после http запроса
m.Use(func(c martini.Context, log *log.Logger){
Expand All @@ -294,7 +293,7 @@ m.Use(func(c martini.Context, log *log.Logger){

### Где найти middleware N?

Наните поиск с [martini-contrib](https://github.com/martini-contrib) проектов. Если нет ничего подходящего, без колебаний пишите члену команды martini-contrib о добавлении нового репозитория в организацию.
Начите поиск с [martini-contrib](https://github.com/martini-contrib) проектов. Если нет ничего подходящего, без колебаний пишите члену команды martini-contrib о добавлении нового репозитория в организацию.

* [auth](https://github.com/martini-contrib/auth) - Обработчики для аутентификации.
* [binding](https://github.com/martini-contrib/binding) - Обработчик для маппинга/валидации сырого запроса в определенную структуру(struct).
Expand All @@ -311,7 +310,7 @@ m.Use(func(c martini.Context, log *log.Logger){

### Как интегрироваться с существуюшими серверами?

Экземпляр Martini реализует интерфейс `http.Handler`, потому это очень просто использовать подпроект существующего Go сервера. Нкапример, это работает для платформы Google App Engine:
Экземпляр Martini реализует интерфейс `http.Handler`, потому это очень просто использовать подпроект существующего Go сервера. Например, это работает для платформы Google App Engine:
~~~ go
package hello

Expand All @@ -331,7 +330,7 @@ func init() {

### Как изменить порт и/или хост?
Функция `Run` смотрит переменные окружиения PORT и HOST, и использует их по назначению.
В противном случае Martini по умолчанию будет испольщовать `localhost:3000`.
В противном случае Martini по умолчанию будет использовать `localhost:3000`.
Для большей гибкости используйте вместо этого функцию `http.ListenAndServe`.

~~~ go
Expand Down

0 comments on commit 0210da5

Please sign in to comment.