translations.md 10.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Как работать над переводом на русский
=====================================

Yii переводится на множество языков, в том числе и на русский. Перевод включает в себя документацию и сообщения.

Сообщения фреймворка
--------------------

Есть два типа сообщений: исключения, которые нацелены на разработчиков и не переводятся и сообщения, которые показваются
пользователям. Например, ошибки валидации.

Для того, чтобы обновить перевод:

1. Открываем в консоли директорию `framework`, запускаем `yii message/extract messages/config.php`.
3. Переводим сообщения в `framework/messages/ru/yii.php`. Важно чтобы файлы были в кодировке UTF-8.
4. [Делаем pull request](https://github.com/yiisoft/yii2/blob/master/docs/internals/git-workflow.md) с переводом из `ru`,
остальные языки не трогаем.

В файле перевода находится массив. Его ключи — исходные строки, значения — перевод. Если значение пусто, сообщение
считается не переведённым. Переводы сообщений, которые больше не встречаются в коде, обрамлены `@@`. Для некоторых сообщений
необходимо использовать [специальный формат для поддержки употребления с числительными](../guide/i18n.md).

Документация
------------

Перевод документации находится в `docs/<original>-ru`, где `<original>` соответствует оригинальной директории, например
`guide` или `internals`.

Если перевод документа завершён, можно получить diff изменений в оригинале со времени последнего перевода, открыв консоль
в директории `build` и выполнив:

```
33
php build translation "../docs/guide" "../docs/guide-ru" "Russian guide translation report" > report_guide_ru.html
34 35
```

36 37
Если ругается на composer, выполните `composer install` в корневой директории.

38 39 40
Перед тем, как начать перевод, убедитесь, что никто им ещё не занимается и запишите себя в
[список всех переводимых документов](https://docs.google.com/spreadsheets/d/1uxV0LwmR-8XXqlT8C6VqWllZjuoyIj-UkYpAQPWyUzE/edit?usp=sharing).

41 42
Все изменения оформляем в виде [pull request](https://github.com/yiisoft/yii2/blob/master/docs/internals/git-workflow.md).

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

### Общие правила

- Многие термины не имеют однозначного и широко распространенного перевода на русский язык, поэтому, если в тексте
  встречается такой термин, в скобках возле первого упоминания необходимо указать английский вариант; (список используемых
  вариантов перевода терминов см. ниже); 
- Если кажется, что при переводе какая-то часть текста теряет смысл и вы не уверены в том, как ее правильно перевести,
  заключайте эту часть текста в * (внешне шрифт станет наклонным). Это позволит при вычитке/корректуре обратить на эту
  часть текста особое внимание; 
- При переводе избегайте фактических ошибок! 
- В тексте встречаются ссылки на внешние источники, если ссылка ведет на статью, определение термина и т.п., то при
  наличии русского варианта на этом же ресурсе или ином авторитетном ресурсе, даем ссылку на русский вариант.
  Например `http://en.wikipedia.org/wiki/Captcha``http://ru.wikipedia.org/wiki/Captcha`. 
- Комментарии в коде переводятся, если не искажают первоначального смысла; временные комментарии в тексте желательно
  использовать только локально! иначе есть вероятность попадания в релиз; 
- При переводе названий разделов придерживаемся перевода в `README.md`; 
- Добавление собственных комментариев-дополнений возможно, но не приветствуется поскольку во избежание хаоса оригинал
  должен быть один. В случае такой необходимости в конце комментария нужно добавить "(прим. пер.)"; 
- После проведения общей правки документа настоятельно рекомендуется самостоятельно вносить исправления только
  грамматических, а также фактических ошибок, имеющих отношение только к данному разделу. В остальных случаях необходимо
  вынести предложение по исправлению, улучшению на обсуждение и в случае необходимости централизованно внести коррективы
  во все разделы документа.
   

### Структура документа

При переводе необходимо правильно именовать структурные единицы документы. Следуем структуре, приведенной ниже:

- Глава 1 
  - Раздел 1 
  - Раздел 2 
    - Подраздел 1 
  - ... 
  - Раздел N 
- Глава 2 
- ... 
- Глава N
 
### Перевод специальных сообщений

- Tip → Подсказка 
- Note → Примечание 
- Info → Информация 

### Перевод рисунков

Рисунки к документации содержатся в подпапке `images`. Все они созданы в [yED](http://www.yworks.com/en/products_yed_about.html).
При необходимости перевода исходный файл копируется в директорию `images` перевода, переводится и сохраняется в формате png.

Подписи к рисункам переводятся.

### Грамматика


Обращайте внимание на общую стилистику, орфографию и пунктуацию, перед заливкой конечного варианта перевод можно прогнать
через любую программу с встроенной проверкой, например, Microsoft Word;

### Список терминов

- action — действие. 
- active record — без перевода. 
- attach handler — «назначить обработчик». 
- attribute of the model — атрибут модели. 
- camel case — без перевода. 
- customization — (тонкая) настройка //Ранее встречался перевод "кастомизация", желательно этот вариант по возможности не использовать. 
- column — столбец (если речь про БД). 
- content — содержимое. 
- controller — контроллер. 
- debug (mode) — отладочный (режим) (см. production mode). 
- eager loading — метод жадной загрузки/жадная загрузка (см. lazy loading). 
- PHP extension — расширение PHP. 
- field (of the table) — поле (или атрибут) таблицы. 
- framework — фреймворк. 
- front-controller — фронт-контроллер. 
- getter — геттер. 
- (event) handler — обработчик (события). 
- hash — хэш. 
- helper - помощник. 
- id — идентификатор. 
- instance — экземпляр. 
- lazy loading — отложенная загрузка (загрузим как понадобится и не раньше). 
- method — метод (объекта) //Внимание! У объета/класса нет функций, есть только методы. 
- model — модель, модель данных. 
- model form — модель формы. 
- parameter — параметр (у метода или функции, никак не у класса). 
- to parse — обрабатывать, если контекст непонятен — парсить. 
- placeholder — маркер. 
- production (mode) — производственный (режим) (см. debug mode). 
- property — свойство (объекта). 
- to render — рендерить, формировать. 
- related, relation — связанный, связь.
- resolve request — предварительная обработка запроса. 
- route — маршрут. 
- row (of the table) — строка (таблицы). 
- setter — сеттер. 
- tabular input — табличный ввод. 
- to validate — проверять. 
- valid — корректный. 
- validator — валидатор. 
- validator class — класс валидатора. 
- view — представление.
- query builder — конструктор запросов.