image

Краткое содержание


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

Однако услуги сторонних переводчиков стоят денег. Хуже того — наш контент бурлит программированием и математикой, поэтому годится не любой переводчик.

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

Я попробую рассказать о том решении к которому мы пришли, а именно:

  • как мы дешево-сердито использовали github для пользовательских переводов
  • как специфика сайта мешает при переводе
  • насколько реально получить помощь от пользователей
  • как отметить переводы для поисковика Google
  • наконец, насколько виден (или не виден) эффект от переведенного контента

За подробностями добро пожаловать под кат!


 

Предварительные расчеты


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

Я начала с выяснения стоимости услуг профессиональных переводчиков. В тематической ветке на Reddit мне назвали минимум — 5 центов за слово. А на ProZ есть даже табличка — тут цифры вовсе неутешительные.

Представим — у нас как минимум 200 основных текстов (по смыслу это задачи для новичков, студентов) — не считая статей вики. Длина текстов от 100 до 400 слов.

Взяв среднюю длину 200 слов и умножив на 200 задач получаем 40000 слов. По 5 центов за слово это 2000 долларов. Если перевести на 5 языков — 10 тысяч. Если считать по 10 центов — то $20000. Если языков будет больше — денег надо больше.

Это небольшие деньги — миллион рублей по ценам 2015 года — для какого-нибудь средне-солидного бизнеса. Но наша команда — всего парочка энтузиастов — а наш сайт не предназначен для генерации профита. От пользователей мы получаем не деньги а лучи добра — и в целом этим довольны.

Однако лучами добра сайт не переведешь.

Есть и еще вопросы с таким подходом:

  • как проверить качество работы переводчика — соответствует ли оно оплате? переводить гугл-транслейтом с испанского, французского, китайского обратно на английский?
  • как заранее узнать актуальны ли эти затраты? а вдруг переводы не будут пользоваться значительным спросом?
  • формат исходных текстов и переводов — не каждый переводчик захочет работать с MarkDown который мы активно используем.


 

Пользователи как волонтёры-переводчики


Возможен, конечно, вариант — объявить краудфандинговую кампанию и собирать с пользователей деньги на переводчиков. Однако на этом месте я естественно пришла к мысли — не проще ли будет попросить пользователей с переводом на их родные языки?

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

Однако, захотят ли участники помогать безвозмездно? Ведь для многих проблема даже не в «безвозмездности» — а просто кому-то скучно этим заниматься, у кого-то нет времени.

Это предстояло узнать. Сразу расскажу о результатах — у нас пока меньше 10 тысяч более-менее активных пользователей (не считая однократно заглядывающих на сайт и т.п.) — на текущий момент в переводе поучаствовали человек 10. Т.е. около 0.1% — в любом случае это гораздо лучше чем если бы не помог никто!

Но как организовать процесс перевода технически?

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

Подумав про ревизии мы вспомнили о замечательном ресурсе GitHub (который мы постоянно используем и для многих других целей). Сейчас расскажу как это в результате работает.

 

Хранение переводов на GitHub


Начали мы с переводов на русский, поскольку это могли сделать сами.

Создали проект на GitHub, в него добавили папочки с именами соответствующими двухбуквенным кодам языков (ru, fr, de, es и так далее). Внутри папок размещаем файлы с переводами контента. Просто task-1.md, task-2.md.

Сайт используя API гитхаба легко подтягивает тексты прямо оттуда (для GET-запросов к АПИ на гитхабе не нужна даже авторизация). Т.е. если человек переключается на испанскую версию задачи — сайт рендерит её не из базы а прямо с гитхаба.

Один из плюсов — переводы становятся OpenSource — что приятно нашим добровольным помощникам. Например студент может гордо показать профессору — вот, я переводил айтишные статьи для этого сайта.

Другие плюсы — в способах добавления переводов. Мы используем два:

  • Пользователи хорошо знающие Git могут клонировать репозиторий себе, добавить несколько файлов-переводов — и сделать пулл-реквест.
  • Остальные могут тут же на гитхабе написать перевод в виде gist-а, и завести в проекте тикет (issue) в котором оставить ссылку на этот гист — а в файл содержимое могу перенести, например, уже я сама.

Конечно подробный процесс мы описали в README.md в корне проекта, так что участники обычно даже не задают вопросов.

Конечно, переводы не всегда идеальны — но сбитое форматирование мы можем поправить (отредактировав файл там же на гитхабе) — ну а если что поважнее — надеюсь, другие пользователи впоследствии смогут предложить коррективы.

 

Техническое допиливание сайта


Конечно, потребовалось немного расширить функционал сайта.

Переводные статьи у нас имеют суффикс с тем же двухбуквенным кодом языка.

Для страниц которые сайт извлекает с гитхаба сделали кэш на сервере. Правда пока отключили за ненадобностью (редактировать-то удобнее без кэша).

По SEO — открыли для себя нечто новое — в head-части страниц нужны link-и с атрибутом hreflang — чтоб гугл не жаловался. Это было несложно допилить — легче чем понять как именно они должны выглядеть (для каждой страницы нужны ссылки на все переводы включая ее саму!)

Пользователь сделавший переводы на арабский язык внезапно поставил нас перед задачей отображения текста справа-налево. Справились.

Вопрос вызвавший у нас некоторые споры — нужно ли сразу пользователю показывать локализованную (под его язык) версию страницы? Ну да, мы можем определить язык из браузера — но будет ли пользователь обязательно доволен? Пока решили просто подсвечивать желтым ссылку на «родной» для него язык.

 

Достигнутые результаты


Это то что интересовало с самого начала. А что если эта затея бесполезна — что если волонтёры не придут помогать — а если переводы никто не станет читать?

Прошло 3 месяца. У нас есть переводы первых задач на следующие языки: немецкий (DE), испанский (ES), французский (FR), арабский (AR), китайский (ZH), румынский (RO), русский (RU).

В среднем переведено по 15 задач на язык. Это далеко не 200, однако, думаю, это неплохо: ведь переводы актуальны для «совсем новичков», из которых многие решают всего 5-10 задач. Те же кто переваливает за сотню обычно неплохо знают английский.

Гугл-аналитика показывает — просмотры страниц с переводами составляют сейчас около 10% от общего числа просмотров страниц с задачами. Конечно здесь еще сказываются два фактора:

Гугл-вебмастер сообщает что на переведенные страницы пришли 2% кликов (я думала — мало, но потом сообразила что переведено-то в среднем 7%, если без учета вики и т.п. — так что пропорция адекватная).

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

В целом этот опыт нам очень понравился — поэтому я и захотела им поделиться. Пусть с технической точки зрения мы избрали довольно примитивный способ (да-да, гитхаб, это все) — но зато не погрешили против важного принципа KISS — keep it simple, stupid (который я сама очень люблю).

Комментарии (20)


  1. k12th
    29.10.2015 15:46
    +1

    Вы не могли бы добавить ссылку на репо с переводами? Да и на сайт было бы интересно взглянуть.


    1. Musia17
      29.10.2015 17:31

      Могла бы, а это можно по правилам?


      1. k12th
        29.10.2015 17:36

        Ну вроде бы народ размещает ссылки на свои репозитории и ничего:)


        1. Musia17
          29.10.2015 17:40

          ну там что-то было, мол никакой рекламы… :)

          github.com/codeabbey/translations — в ридми ссылка на сайт и описание где люди берут исходные тексты, чего коммитить…


          1. k12th
            29.10.2015 17:48

            Спасибо:)


          1. Evgeny42
            29.10.2015 18:00
            +1

            Вам хорошо, то что люди технически грамотные. Не всем такой метод подойдет.

            Впрочем, нам сайт тоже помогали переводить сторонние люди, мы использовали устаревший google toolkit, потому что с ним проще всего работать, как нам показалось. Но даже в этом случае, некоторые переводы нам в итоге скидывали в формате .doc :)


            1. Musia17
              29.10.2015 18:27

              Ну они условно грамотные (студенческий уровень) — все равно и с маркдауном и с гитхабом немножко путаются.

              Но если б не гитхаб — разработчик говорит, пришлось бы впилить страницы с формой для перевода — мол, немного больше возни — но в целом похожий план был.


  1. berezuev
    29.10.2015 16:36
    +2

    Весьма сомнительная затея, как мне кажется. Подходит только для перевода небольших статей, но не интерфейса сайта в целом.

    Я участвовал в переводе Твиттера и Лицокниги с английского на Великий и Могучий. Там был список фраз, которые нужно было переводить (от 1 слова до целого абзаца), и по каждому предложенному варианту проходило голосование среди других переводчиков. И даже при такой системе было очень много проблем с конечным продуктом (особенно в твиттере, ибо у него функционал перевода довольно ограниченный).
    А у вас, по факту, нету даже контроля над переводом (если только за каждым коммитом не следит десяток человек).

    Если интересно, могу на досуге расписать более подробно. Там мыслей на целую статью наберется)


    1. vshemarov
      29.10.2015 17:08

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


      1. dvor
        29.10.2015 17:54

        Вы не пробовали для опенсорсного проекта что-то вроде www.transifex.com или crowdin.com? Я вот присматриваюсь пока что, в будущем планирую что-то подобное использовать.


        1. SamDark
          30.10.2015 02:00

          Мы пробовали transifex. Для строк ещё куда ни шло, но для строк у нас и своё есть. Для текстов не годится.


    1. Musia17
      29.10.2015 17:33

      Вы в целом правы — за коммитами мы следим конечно только на уровне приема пулл-реквеста, поэтому гениального качества не ждем…

      Коллега принимающий добавления, случалось, что-то фиксил в арабском и немецком — ну, забытые фразы и т.п. (т.к. у задач конечно есть общие куски).

      И да, интерфейс мы поэтому не переводим. Нам бы хоть с контентом разобраться. Просто подход такой — пользователи сайтом пользуются бесплатно, поэтому если видят недостатки в текстах, не обижаются — а пишут, предлагают правки.

      Статью — конечно будет интересно почитать, пожалуйста напишите если можно!


    1. SamDark
      30.10.2015 02:00

      Вроде у Twitter порт ICU на JavaScript используется. Этого функционала оказалось мало?


  1. kidar2
    29.10.2015 17:47

    Не каждый разработчик осилит git, а тут ещё и простых пользователей заставлять через него всё переводить.


    1. Musia17
      29.10.2015 17:55
      +2

      Так это ж сайт для начинающих программистов — им все равно полезно!

      Ну и как я сказала — кому гит не под силу, те через gist.github делают — Испанский, Французский и Арабский именно так перевели.


      1. SamDark
        30.10.2015 02:02
        +1

        Дак у GitHub же есть возможность создать один файл прямо в веб-интерфейсе. И pull-request автоматом делается.


        1. Musia17
          30.10.2015 04:35
          +1

          Точно, даже не один, как я сама потом нашла — если при сохранении выбрать «создать ветку» и в эту ветку еще файлы наделать :)


          1. SamDark
            30.10.2015 12:55

            О, этого не знал. Спасибо.


  1. Akuji_bwn
    29.10.2015 19:06

    Занимался локализацией веб-интерфейса репозитория пакетов Haiku Depot на русский, переводил в GitHub, в конце слал пул-реквесты с добавлениями новых строк/исправлениями старых. Главный недостаток — невозможность оценить перевод сразу на сайте, проверить отображение длинных фраз целиком, а также логичность окончаний слов. Деплой проекта происходит раз-два в месяц, поэтому результат виден не сразу.


    1. Musia17
      29.10.2015 19:31

      Да, это дело другое — действительно неудобно получается Вам работать. У нас-то time-to-market близко к нулю, так что все проверить и поправить можно сразу… Ну понятно — маленький проект, команда в полтора землекопа.