- Символ отступа — это пробел (табуляция в файлах
.xml
запрещена) - В документации используется буква
Ё
. Обращайте на это, пожалуйста, внимание.
Комментарии к коду требуется переводить;
описание вывода, например, echo "You reload page $num times";
— тоже требуется перевести.
Исключение из правила перевода английских слов в коде —
функция будет по-разному обрабатывать английский и русский варианты, например,
strtolower("Alex") === "alex"
, но strtolower("Алексей") !== "алексей"
.
Заголовок примера <title><function>func_name</function> example</title>
переводится как <title>Пример [что делает функция, в родительном падеже] функцией <function>func_name</function></title>
:
<title>Пример слияния массивов функцией <function>function_name</function></title>
. То же правило справедливо для методов,
только со словом «метод».
При оформлении кода примеров переводчик придерживается стиля кодирования, который описывает стандартная PHP-рекомендация PSR-12, даже если придётся изменить форматирование примера оригинальной документации.
Оригинал англоязычной документации находится по адресу doc-en.
Файлы русскоязычной документации имеют определённый формат. В начале каждого файла должна быть конструкция следующего вида:
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0abaad099e3ec6064ed8cf31553dcd5e3e3fdfba Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
где 0abaad099e3ec6064ed8cf31553dcd5e3e3fdfba
— полный номер коммита в англоязычной документации, последнего актуального на момент редактирования для данного файла.
Это нужно для того, чтобы понимать, что именно переведено, а что ещё нет.
Выберите русский язык на правой боковой панели, а затем используйте инструмент Outdated files. В таблице будут перечислены файлы, для которых необходимо обновить перевод.
В столбце en
указан хеш актуальной английской версии, а в столбце ru
— хеш перевода.
Клонируйте репозиторий doc-base на один уровень с
doc-en и doc-ru
, чтобы структура папок была следующей:
├── doc-base/
├── en/
└── ru/
Обратите внимание, что языковые папки должны быть без префикса doc-
.
Для клонирования можно воспользоваться командой git clone https://github.com/php/doc-ru.git ru
.
Выполните следующую команду в терминале и откройте получившийся revcheck.html
в браузере:
php doc-base/scripts/revcheck.php ru > revcheck.html
В разделе Outdated Files можно посмотреть актуальную английскую версию и текущую.
Чтобы посмотреть, какие изменения были произведены, выполните следующую команду:
git --no-pager diff 8b5940cadeb4f1c8492f4a7f70743a2be807cf39 68a9c82e06906a5c00e0199307d87dd3739f719b reference/array/functions/in-array.xml
где первый хеш — это текущая версия из EN-Revision
, а второй — хеш актуальной английской версии.
Пример вывода:
--- a/reference/array/functions/in-array.xml
+++ b/reference/array/functions/in-array.xml
@@ -14,7 +14,7 @@
<methodparam choice="opt"><type>bool</type><parameter>strict</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
- Searches <parameter>haystack</parameter> for <parameter>needle</parameter> using loose comparison
+ Searches for <parameter>needle</parameter> in <parameter>haystack</parameter> using loose comparison unless <parameter>strict</parameter> is set.
</para>
</refsect1>
Как видите, изменилось описание функции.
Строка Searches <parameter>haystack</parameter> for <parameter>needle</parameter> using loose comparison
заменена на Searches for <parameter>needle</parameter> in <parameter>haystack</parameter> using loose comparison
.
Откройте файл reference/array/functions/in-array.xml
в репозитории doc-ru
и измените строку в соответствии с английской версией.
Затем обновите комментарий EN-Revision
.
Для локального просмотра документации, выполните следующие команды в терминале:
# Настройка
git clone https://github.com/php/phd.git
git clone https://github.com/php/doc-base.git
git clone https://github.com/php/doc-ru.git ru
# Проверка изменений
php doc-base/configure.php --with-lang=ru
php phd/render.php --docbook doc-base/.manual.xml --package PHP --format xhtml
# Откройте output/php-chunked-xhtml/ в браузере.
Оригинал | Перевод |
---|---|
Application | Приложение |
Cache | Кеш |
Callback function | Callback-функция |
Child | Потомок, дочерний элемент (узел) |
CLI | Интерфейс командной строки |
Code (php-code) | Код, PHP-код |
Coding standards | Стандарты кодирования |
Commandline program | Консольная программа |
Commit | Фиксация (например, транзакции) |
Default, by default | По умолчанию (пишется без дефиса) |
Directory | Директория |
Download | Скачать (не то же, что «загрузить», см. Load) |
Entry | Элемент (существительное, для массивов, списков и прочих структур) |
Expression | Выражение |
Extension | Модуль |
Features/functionality | Возможности, функциональность |
Fiber | Файбер |
Float (floating point) | Число с плавающей точкой (плавающая точка) |
Fully Qualified name | Абсолютное имя |
Getter | Метод чтения |
Global scope | Глобальное пространство |
Hash | Хеш |
HTML entity | HTML-сущность |
HTTP-Authentication | HTTP-аутентификация |
Hypertext preprocessor | Препроцессор гипертекста |
Handle | Дескриптор (например, cURL) или обработчик (кроме cURL) |
ID (БД) | ID |
ID (в тексте) | Идентификатор |
Legacy (system, server) | Устаревшая система, сервер, протокол |
Legacy support | Поддержка старых версий |
Load | Загрузить (не то же, что «скачать», см. Download) |
Locale | Региональные настройки или параметры; локаль |
Magic quotes | «Магические» кавычки |
Magic constants/methods/numbers | «Магические» константы/методы/числа |
Multibyte string | Многобайтовая строка |
Namespace | Пространство имён |
Node | Узел |
Optional | Необязательный |
Override | Переопределять |
Otherwise | В противном случае (только в начале предложения! — прим.), иначе |
On success | В случае успешного выполнения |
On fail/failure | Если возникла ошибка |
Parameter(s) | Параметр(ы), аргумент(ы) |
Parser | Парсер |
Parsing | Разбор (например, разбор строки) |
Prefetch | Предварительная выборка |
PCRE | Perl-совместимые регулярные выражения |
PHP value | PHP-значение |
Private | Закрытый |
Protected | Защищённый |
Public | Общедоступный или открытый |
Qualified name | Полное имя |
Read-only | Доступен только для чтения |
Result set | Результирующий набор |
Returns | Возвращает |
SAPI | Интерфейс разработки серверных приложений |
Script | Скрипт |
Setter | Устанавливающий метод |
Single quotes | Одинарные кавычки |
Stream | Поток |
Shared block | Общая блокировка |
Shared memory | Разделяемая память |
SQL query | Запрос SQL, SQL-запрос |
SQL | Структурированный язык запросов |
Statement | Инструкция |
Throw exception | Выбросить исключение |
Timeout | Время ожидания |
Timezone, time zone | Часовой пояс |
Token | Лексема |
Tokenizer | Лексер |
To throw a warning/error | Вызвать предупреждение или ошибку |
Trait | Трейт |
Writable | Доступен для записи |
Wrapper | Обёртка |
Unqualified name | Неполное имя |
Upload | Выгрузить или переданные, или отправленные, данные; но не «загрузка») |
URL wrapper | Обёртка URL |
- Apache
- Cookie
- Linux
- PEAR
- PECL
- PHP Group
- PHP
- Referer
- Windows
- Имена переменных
- Типы переменных (integer, string, bool, resource)
И другие аббревиатуры или имена собственные.
Когда в английской документации встречаются термины — аббревиатуры, названия параметров, функций или методов, имена констант, операционных систем и т. д. — без сопровождающих слов, которые указывают, к какому предмету относится термин, необходимо добавить уточняющее слово.
Например:
Оригинал | Перевод |
---|---|
$foo |
Переменная $foo |
$_SERVER |
Суперглобальная переменная $_SERVER |
__METHOD__ |
Магическая константа __METHOD__ |
<parameter>foo</parameter> |
Параметр <parameter>foo</parameter> |
echo |
Языковая конструкция echo |
Apache | Веб-сервер Apache, или Модуль Apache |
Content-Length | Заголовок Content-Length |
CURLOPT_HEADER | Параметр CURLOPT_HEADER |
CURLINFO_HTTP_CODE | Опция CURLINFO_HTTP_CODE |
SAPI | Интерфейс SAPI |
Linux | Семейство операционных систем Linux или Linux-системы |
PHP_VERSION | Константа PHP_VERSION |
var_dump() |
Функция var_dump() |
Одного уточнения хватит, если в предложении или коротком абзаце термин встречается больше одного раза, по смыслу.
При добавлении уточняющего слова дайте точное определение. Для термина $_SERVER
доступны
уточнения: «Переменная $_SERVER», «Глобальная переменная $_SERVER» или «Суперглобальная переменная $_SERVER» — лучше предпочесть последнее.
Параметр — член функции, который принадлежит функции, составляет сигнатуру функции или метода. Аргумент — значение, которое передают в функцию или метод «снаружи», чтобы определить значение параметра. Аргумент допускается передавать в функцию, передать в функцию параметр — нельзя, поскольку он уже находится «внутри» функции.
Участники перевода руководствуются этими разъяснениями, даже если в оригинальной документации «параметры» и «аргументы» употребили некорректно.
Скобки затрудняют и замедляют чтение. Читатель «спотыкается» о скобки. Но без скобок нельзя обойтись. «В скобки заключают слова и предложения, вставляемые в предложение с целью пояснения или дополнения высказываемой мысли, а также для каких-либо добавочных замечаний» — гласят правила русского языка.
При переводе не нужно брать в скобки названия параметров.
Например:
Функция больше не поддерживает передачу разделителя
<parameter>separator</parameter>
после массива<parameter>array</parameter>
.
В примере названия параметров — полноценные и равноправные члены предложения.
Названия типов нужно брать в скобки.
Например:
Функция возвращает строку (
<type>string</type>
).
В этом примере слово string (вместе с тегами) взяли в скобки, потому что слово поясняет, что «строка», кроме словарного значения, означает тип данных.
Старайтесь избавиться от скобок, если уместно (если это не часть примера или выражения и т. д.), даже если в исходной документации слова или предложения указали в скобках.
Точку ставят после закрывающей скобки, если слова в скобках — часть предложения (как в этом примере). (Точку ставят перед закрывающей скобкой, если в скобках написано отдельное предложение — как здесь.)