Как работать над переводом на русский
Yii переводится на множество языков, в том числе и на русский. Перевод включает в себя документацию и сообщения.
Сообщения фреймворка
Есть два типа сообщений: исключения, которые нацелены на разработчиков и не переводятся и сообщения, которые показваются пользователям. Например, ошибки валидации.
Для того, чтобы обновить перевод:
- Открываем в консоли директорию
framework
, запускаемyii message/extract messages/config.php
. - Переводим сообщения в
framework/messages/ru/yii.php
. Важно чтобы файлы были в кодировке UTF-8. -
Делаем pull request с переводом из
ru
, остальные языки не трогаем.
В файле перевода находится массив. Его ключи — исходные строки, значения — перевод. Если значение пусто, сообщение
считается не переведённым. Переводы сообщений, которые больше не встречаются в коде, обрамлены @@
. Для некоторых сообщений
необходимо использовать специальный формат для поддержки употребления с числительными.
Документация
Перевод документации находится в docs/<original>-ru
, где <original>
соответствует оригинальной директории, например
guide
или internals
.
Если перевод документа завершён, можно получить diff изменений в оригинале со времени последнего перевода, открыв консоль
в директории build
и выполнив:
php build translation "../docs/guide" "../docs/guide-ru" "Russian guide translation report" > report_guide_ru.html
Если ругается на composer, выполните composer install
в корневой директории.
Перед тем, как начать перевод, убедитесь, что никто им ещё не занимается и запишите себя в список всех переводимых документов.
Все изменения оформляем в виде pull request.
Общие правила
- Многие термины не имеют однозначного и широко распространенного перевода на русский язык, поэтому, если в тексте встречается такой термин, в скобках возле первого упоминания необходимо указать английский вариант; (список используемых вариантов перевода терминов см. ниже);
- Если кажется, что при переводе какая-то часть текста теряет смысл и вы не уверены в том, как ее правильно перевести, заключайте эту часть текста в * (внешне шрифт станет наклонным). Это позволит при вычитке/корректуре обратить на эту часть текста особое внимание;
- При переводе избегайте фактических ошибок!
- В тексте встречаются ссылки на внешние источники, если ссылка ведет на статью, определение термина и т.п., то при
наличии русского варианта на этом же ресурсе или ином авторитетном ресурсе, даем ссылку на русский вариант.
Например
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.
При необходимости перевода исходный файл копируется в директорию images
перевода, переводится и сохраняется в формате png.
Подписи к рисункам переводятся.
Грамматика
Обращайте внимание на общую стилистику, орфографию и пунктуацию, перед заливкой конечного варианта перевод можно прогнать через любую программу с встроенной проверкой, например, Microsoft Word;
Список терминов
- action — действие.
- active record — без перевода.
- attach handler — «назначить обработчик».
- attribute of the model — атрибут модели.
- camel case — без перевода.
- customization — (тонкая) настройка //Ранее встречался перевод "кастомизация", желательно этот вариант по возможности не использовать.
- column — столбец (если речь про БД).
- configuration — конфигурация.
- content — содержимое.
- controller — контроллер.
- debug (mode) — отладочный (режим) (см. production mode).
- eager loading — метод жадной загрузки/жадная загрузка (см. lazy loading).
- environment — окружение.
- 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 — конструктор запросов.