PostgreSQL на русском всерьёз и надолго

    Свершилось!


    PostgreSQL приходит в Россию

    Наша компания официально завершила перевод документации PostgreSQL текущей версии на русский язык и в этой публикации мы хотим поведать, как это было. Мы также хотели бы рассказать о пути, который мы прошли для достижения этой цели (и какие направления мы перепробовали), но это, пожалуй, тема для отдельной статьи.

    Перевод самого PostgreSQL на русский язык начался в далёком 2001 году, тогда вышла только версия postgresql 7.1, и в самом postgresql усилиями в том числе и наших разработчиков только появлялась возможность локализации сообщений (см. тут). Впервые перевод сообщений на русский был включён в версию 7.2, вместе с переводами на французский, немецкий, шведский, китайский и чешский.

    На дворе стояла кодировка KOI8-R. Windows 2000, Linux 2.4.1, RHEL 2.1, Debian Woody. pgadmin II. Ubuntu? Нет, не слышали.

    В сообщениях сервера 7.2 на русский было переведено около 30% (881 сообщение из 3205). Документация к серверу 7.2 занимала около 1000 страниц. Январь 2005 — для версии 8.0 было переведено около 80% (2888 сообщений). Windows 2003, Linux 2.6.10, RHEL 4, Debian Sarge, Ubuntu — о, уже слышали, что-то с бородавками.

    К версии 9.0 доля перевода снизилась до 64% (2765 сообщений).

    Догнать и всё

    Наконец, в 2012 на версии 9.2 мы догнали — 100% (6388 сообщений). (Сейчас в версии 9.5 переведены 7675 сообщений. Размер сообщений с переводом около 1.8 Мбайта.)

    После этого захотелось большего. Большего, чем перевод pgadmin'а и его сайта. Гораздо большего. И большее нашлось — документация. На официальном сайте имелись ссылки только на французский и японский переводы. Это вызов! На момент выхода 9.3 документация занимала уже около 2000 страниц (не считая Release Notes), так что это снова вызов! Нельзя не заметить, что попытки перевода документации уже предпринимались. Похоже, самая первая, о которой сохранились сведения — это перевод документации для версии 6.5.2, выполненный тогда наверняка молодыми и горячими ребятами из Сергиева Посада ещё в XX веке н.э.

    Потом был ещё один перевод, уже в наше время, однако он не был полным, да и качество его оставляло желать. Можно найти следы и ещё одной попытки, тоже не увенчавшейся. Поэтому было решено, что проще нового завести, чем этого отмыть. И в другой семье.

    В начале 2013 года был закончен и опубликован перевод двух первых разделов документации (около 400 стр.). В 2015 образовалась наша компания, которая выбрала одной из своих первоочередных задач полный перевод документации. И работа закипела. На входе мы имели документацию по версии 9.4 на 2000 стр. и переведённое начало на 400. В июне было переведено 25%, в декабре 57%, в апреле перевод документации для 9.4 был закончен. В мае 2016 перевод синхронизирован с версией 9.5 и мы получили полностью русскую документацию (объёмом 2xxx страниц, объём сырого текста вместе с переводом ~18 Мбайт).

    Получился вот такой рельеф:

    Море текста

    И наконец, в настоящее время мы идём вровень с версией 9.6 (beta2, beta3, ...) и выпустим полную документацию на русском языке в момент выхода продукта.

    К нашему счастью, нам удалось воспользоваться специализированной версией РУS-Studio, проходящей закрытое тестирование. Благодаря этому мы смогли проверять текст на стадии перевода и выявлять ошибки, некоторые из которых мы забавы ради и рассмотрим ниже. Ошибки наши, так что имеем право, хотя такие типы ошибок встречаются повсеместно.

    Наши жемчужины
    Когда клиентское приложение соединяется с сервером, оно указывает, имя пользователя PostgreSQL, так же как и при обычном логине пользователя в Unix-like ОС.
    Предупреждение РУS-Studio: W203 English-like-предложение detected.

    Это обеспечивает более высокий уровень надёжности, но только в случае внимательной работы системного администратора при установке и настройке этих двух серверов.
    Вопрос РУS-Studio: Q088 А насколько внимательна твоя работа?

    Например, в процессе жизненного цикла приложения 10% изменений являются важными данными клиентов, другие 90% изменений менее важны для бизнеса и могут быть легко восстановлены при их потере (например, чат между пользователями).
    Оригинал:
    For example, an application workload might consist of: 10% of changes are important customer details, while 90% of changes are less important data that the business can more easily survive if it is lost, such as chat messages between users.
    Ошибка РУS-Studio: A000 Нарушение ложности: «Рабочая нагрузка» != «Жизненный цикл»
    Ошибка РУS-Studio: A000 Нарушение ложности: «Бизнес выжил» != «Восстановлен чат между пользователями»

    Пользователи должны понимать, что таблицы, подвергающиеся высокой нагрузке на обновление на ведущем сервере с большей вероятностью могут вызвать отмену длительных запросов на резервном.
    Ошибка РУS-Studio: R005 Ахисложносочинённое предложение.
    Вопросы РУS-Studio: Q075 Нагрузка на ЛОЛ-что? Таблицы подвергаются ЛОЛ-чему? Таблицы могут ЛОЛ-вызвать?

    В обычном (не восстановительном) режиме, выполнение команды DROP USER или DROP ROLE для роли, которая обладает возможностью подключения и пользователь сейчас подключён, для этого пользователя ничего не происходит — он продолжает оставаться подключённым.
    Ошибка РУS-Studio: B901 Разрыв шаблона.

    Исчерпание квоты вызовет такие же плохие последствия как и отсутствие самого места на диске.
    Предупреждение РУS-Studio: W051 Степень кривизны предложения превышает приемлемый уровень во второй производной.

    Триггерные функции должны использовать version 1 интерфейса диспетчера функций.
    Ошибка РУS-Studio: R00E Выявлен текст на англусском языке.

    Позволяет создаваемому пользователю открывать сессии. Это поведение по умолчанию.
    Оригинал:
    The new user will be allowed to log in (that is, the user name can be used as the initial session user identifier). This is the default.
    Ошибка РУS-Studio: L102 Обнаружено сжатие с потерями.

    Так как данные базы могут изменяться во время создания копии, то оценка может быть лишь приблизительной и не давать точности в 100%.
    Оригинал:
    Since the database may change during the backup, this is only an approximation and may not end at exactly 100%.
    Ошибка РУS-Studio: MU003 Выявлены признаки непонимания смысла.

    Вывести путь размещения кода объектов библиотек.
    Оригинал:
    Print the location of object code libraries.
    Ошибка РУS-Studio: N3!: Неверное решение задачи комбинаторики.

    На платформах, где это поддерживается, сервер будет пытаться фиксировать снимки памяти при авариях. Это позволяет диагностировать и предотвращать потенциальные проблемы в будущем.
    Оригинал:
    Attempt to allow server crashes to produce core files, on platforms where this is possible, by lifting any soft resource limit placed on core files. This is useful in debugging or diagnosing problems by allowing a stack trace to be obtained from a failed server process.
    Предупреждение РУS-Studio: Выявлено упрощение предложения как решение проблемы недопонимания.

    Игнорировать ожидание завершения запуска или остановки сервера.
    Оригинал:
    Do not wait for startup or shutdown to complete.
    Предложение РУS-Studio: S021 Людям со сложным внутренним миром к применению: «Не игнорируй ожидание меня».

    Все эти ошибки были безжалостно исправлены, но если вы, изучая документацию в нашем пиреводе, встретите другие, пишите нам. Мы очень надеемся, что наша документация будет такой же качественной, как и оригинальная.

    Вы спросите: А зачем вообще нужно было переводить действительно очень толковую документацию? Конечно, тот, кто задаёт этот вопрос, уже читал оригинальную и, значит, способен понимать по-английски, и наверное, будет и дальше читать её, и возможно, не менее увлекательные списки рассылки.

    Однако для тех, кто ещё не знаком с этой замечательной СУБД, отсутствие достаточного знания английского языка, по нашему глубокому убеждению, не должно быть препятствием для её изучения. Это и начинающие администраторы/разработчики, и студенты, и даже школьники (да, в документации есть материал, посвящённый основам SQL, который мог бы быть понятен и ежу).

    Кроме того, именно то, что она очень толковая, уже само по себе оправдывает усилия по её переводу. К тому же, взяв наш перевод за основу, мы разрабатываем учебные пособия и курсы с тем же уровнем качества и полноты материала, который мы можем найти в оригинале.

    И наконец, наш продукт Postgres Pro, построенный на базе PostgreSQL, включён в реестр отечественного ПО, а значит, ориентирован прежде всего на русскоязычных пользователей и должен иметь русскую документацию. Перевод же ванильной версии — это наш вклад в развитие всего русскоязычного сообщества postgres.

    Как итог месяцам и мегабайтам проделанной работы, состоявшееся событие выразилось в появлении в списке переводов на странице https://www.postgresql.org/docs/ скромной ссылки Russian.

    Welcome!
    Postgres Professional
    Разработчик СУБД Postgres Pro

    Similar posts

    Comments 40

      +2
      Спасибо за отличную новость
        +15

        Хорошее дело делаете, это не линтер вс какой нить.


        РУS-Studio

        Сначала начал искать по тексту единорогов.

          0
          Ага, значит мне не показалось что в 6й версии «ВС» перевода не было от слова совсем ))
          +1
          Хорошая БД. Отличный перевод. Спасибо большое!
            +1
            Перевод это хорошо, осталось чтобы он оставался всегда актуальным, иначе получиться что провели просто большую и бесполезную работу. Собственно это основная причина отсутствия переводов — они слишком быстро теряют актуальность.
              +2
              Из опыта: различия между версиями (9.5 и 9.6) составляют в пределах 5% от объёма перевода, версии выходят раз в полгода, так что если не случится форс-мажор и потребность в переводе сохранится, поддерживать его актуальность будет уже не так сложно. Более того, мы рассматриваем возможность предоставить средства для коллективного участия в переводе, в том или ином виде, что также этому посбособствует.
                0
                О, а я почему-то изначально подумал, что исходники перевода общедоступны для postgresql-сообщества. Какой смысл их скрывать? Почему бы просто не выложить переведенный doc/src на github?
                  +4
                  Правильно подумали! Вот они: https://github.com/pluzanov/pg-doc-ru/
                  Речь не об исходниках, а о том, как организовать удобную работу с переводом — что-то типа transifex…
                    0
                    А, ну это, мне кажется, уже необязательные свистелки. С задачей поиска устаревших частей перевода вполне можно справиться шелл-скриптингом вокруг git, а для ревью переводов вполне подойдут и пулл-реквесты на гитхабе.
                      +1
                      Да, с этой задачей мы уже справляемся. Выше было высказано небеспочвенное опасение, что актуальность может быть потеряна. Я попытался описать наш подход к решению этой проблемы — упрощение участия в переводе.
                      Одно дело зайти на сайт и перевести/скорректировать десяток строк в удобном интерфейсе, другое дело — делать это как-то автономно, потом пулл-реквесты и т. д. Собственно этот путь людьми уже пройден (опять же transifex), надо просто взять на вооружение.
                        +2
                        Понятно.

                        Мне кажется, для начала неплохо бы упомянуть об этом гитхаб-репозитории в переведенной документации. Например, в docguide. А то ведь никто и не узнает :)
                      0
                      Так, а почему бы действительно не пользоваться транзифексом? Для опен сорса он бесплатен
                        0
                        Глубоко этот вопрос ещё не изучали, но пока видятся сложности, связанные с некоторой спецификой текста:
                        а) Фрагменты бывают довольно длинными, 1000 символов и больше — в интерфейсе Transifex'а, который я вижу, переводить их будет неудобно.
                        б) Желательно работать с моноширинным шрифтом, так как в документации встречаются, например, таблицы, оформленные пробелами.
                        в) Довольно много отдельных файлов ~ 360.
                0
                А можно нескромный вопрос, а зачем вы занимаетесь переводом официальной документации?
                  +6
                  А мы, предвидя этот вопрос, прямо в статье на него и ответили. Ну или вот мнение очень авторитетного человека в мире postgres:
                  Yes, this takes Russian adoption of Postgres to a new level!
                  Рассчитываем на то, что так оно и будет.
                    +1
                    > Вы спросите: А зачем вообще нужно было переводить действительно очень толковую документацию?

                    Этого абзаца не было в статье в тот момент, когда Вы её читали?
                      +5
                      Ну как же? Потенциальное импортозамещение обязывает, тендер с «лет ми спик фром май хартом» не выиграешь.
                        +5
                        Это как раз очевидно: https://reestr.minsvyaz.ru/reestr/65273/

                        А вот за то, что не придержали перевод для своего форка, а передают труды сообществу — им честь и хвала.
                        –10
                        Переводы всегда кривые и насыщены ошибками. Однако, это побуждает школьника/студента начать учить английский серьезнее, когда он понимает что на чтении кривой переведенной документации далеко не уедет. Так что это хорошо, в отличие от ситуации когда школьник/студент вообще не изучает технологию потому, что не может в английский.
                          +12
                          Спасибо Большое за ВАШ Труд
                            0
                            На сайте http://postgresql.ru.net/manual/index.html тоже были зачатки перевода.
                              +1
                              Ребята, а не поделитесь опытом, как вы поддерживаете перевод? Я в своё время срубился именно на поддержке — часто апдейт статьи приводил к ее полному переводу, когда, например куча изменений как по стилю изложения и по функциональности на протяжении всей статьи.

                              Может есть какие устоявшиеся практики или у вас наработались какие-то трюки?
                                +4
                                Да, есть в планах рассказать о технологиях (в отдельной статье). Если в общих чертах, то минимум изобретений, в основном используем средства gettext, плюс очень помогает то, что работа над документацией параллельно с исходным кодом ведётся в git. Ещё больше помогает, что исходный материал очень качественный и таких случаев, как пришла Агата Кристи и переписала всё, что до этого писал Конан Дойл, я не припомню. Наверное с хуже проработанной изначально документацией проблем было бы больше.
                                  0
                                  Будет интересно почитать, заранее спасибо!
                                0
                                Спасибо вам огромное!
                                  +3
                                  РУS-Studio — не выдуманный софт, случайно? Нигде не смог найти это чудо в поисковиках.
                                    +2
                                    Вот мне тоже интересно) Например, я не знал, что natural language processing уже дорос до такого уровня.
                                      +4
                                      Если кратко, то — да. Это будущая перспективная разработка, для которой мы пока собираем входные данные.
                                        +1
                                        То-то сообщения об ошибках показались… Гхм, «пред-альфными».
                                        0
                                        Есть существуюшие, хотя и намного более примитивные варианты, например Главред
                                          +5
                                          Это отсылочка к ребятам из PVS-Studio и их статическому анализатору кода. (Либо я просто не могу в сарказм)
                                          0
                                          Спасибо огромное! Представляю сколько на это ушло времени.
                                            0
                                            Года 3 использую постгрес, в доку заглядывал лишь раз, и уже не помню зачем. Чаще нахожу решения своих проблем на stackoverflow. Спасибо, может быть пригодиться.
                                            • UFO just landed and posted this here
                                                0
                                                Думаю, что в поисках конструктивного обсуждения и решения этого вопроса стоит воспользоваться формой обратной связи на нашем сайте. То, что ваш вопрос всплыл в этих комментариях, говорит о большой заинтересованности в его решении, так что остаётся только направить необходимые ресурсы в нужное русло
                                                0
                                                -
                                                  0
                                                  С комментариев студии по ошибкам перевода громко смеялся и разбудил спящих сотрудников. Извините, я больше не буду!
                                                    0
                                                    Добрый день! Планируете апдейт перевода к 12 версии PostgreSQL?
                                                      0
                                                      Да, перевод готов и уже опубликован на нашем сайте.
                                                        0

                                                        Супер, спасибо!

                                                      Only users with full accounts can post comments. Log in, please.