На localize.drupal.org внедрена хронология переводов
Одной из целей localize.drupal.org является предоставление простого интерфейса для выполнения сложных задач: добавления переводов и их утверждения. Система работает со строками, которые могут иметь три статуса: предложение (строка ожидает утверждения), перевод (строка утверждена) и отклонённая строка (строка с плохим качеством перевода). Ради того, чтобы сделать это настолько простым, насколько это возможно, системная часть сайта слишком сосредоточена на сохранении и утверждении строк, пренебрегая другими переходами. Но на практике, видны многие ограничения.
Вы можете выбрать для добавления строки логин «Multiple contributors», но тогда система не отслеживает то, что перевод добавлен вами. Когда вы отклоняете ранее утверждённый перевод строки или меняете статус утверждённой строки на предложенный вариант, все записи о предыдущем утверждении теряются. Когда вы отклоняете перевод или предложение, никакие записи не делаются о том, кто это сделал и когда. Не существует записей об интерфейсе, который использовался для добавления перевода, несмотря на то, что перевод может быть добавлен тремя различными путями (через веб-интерфейс перевода, через веб-интерфейс импорта и через удалённую отправку модулем Localization client). Переводчики и модераторы хотят получать больше информации, которая может помочь им в их деятельности и мы знаем, что хорошо бы иметь более точные данные о выполняемых действиях.
Настало время внедрить новые возможности, которые позволят отслеживать все эти случаи. Поэтому я разделил хронологические данные от добавляемых данных. Это позволяет пользователям добавлять переводы используя аккаунт «Multiple contributors», но у нас будут записи о том, кто добавил перевод в этот аккаунт и когда. Для всех переводов теперь сохраняется хронология, поэтому нам известно о том был ли перевод отклонён, добавлен заново или был изменён его статус. Мы сохраняем ссылки на пользователя, который выполнил операцию, а также время операции. Новое добавление заключается в том, что мы храним пути, которыми выполнялись операции. Теперь мы точно можем сказать, откуда пришёл перевод, был ли он импортирован из .po-файла, добавлен через интерфейс перевода или через модуль Localization client.
Эти данные показываются в интерфейсе пользователя. Информация о существующих переводах была расширена (мы не знаем о предыдущих изменениях статусов и повторных добавлениях переводов, и даже не отклоняем переводы, если они добавлены повторно). Полное журналирование переводов позволит нам получить некоторые интересные данные для будущего использования. Модераторы смогут сказать, были ли ранее отклонённые переводы добавлены вновь. Мы сможем узнать, как пользователи предпочитают пользоваться сайтом, используют ли они .po-файлы для импорта или предпочитают пользоваться для перевода веб-интерфейсом. Модераторы и администраторы сайта должны располагать большей информацией о способах работы с сайтом, чтобы организовывать работу эффективнее.
Все эти изменения уже развёрнуты. Расширенная информация показывается под каждым переводом (она стала немного короче) и можно увидеть информацию об авторстве (которая теперь не является обязательной, также, как информация о добавлении перевода). Посмотрите на скриншот нового интерфейса с аннотациями, чтобы лучше понять о чём идёт речь.
Я думаю, что эти изменения очень важны для будущего проекта и позволят удобно заменить контроль версий основанный на файлах. Отзывы как обычно приветствуются.


