Непрерывная локализация позволяет разработчикам программного обеспечения локализовать свой контент без ущерба для процесса разработки. Вот как Xsolla добилась этого с помощью свободно доступных инструментов.
Вызов
Появление гибких методов разработки и веб-инструментов еще больше усложнило взаимоотношения между разработчиками и локализаторами. Если раньше новый контент появлялся раз в несколько месяцев, то теперь циклы выпуска могут составлять всего несколько недель. Каждый новый выпуск содержит новый контент, который необходимо локализовать в течение нескольких дней. Возьмем, к примеру, Xsolla, глобального дистрибьютора и издателя видеоигр, предоставляющего разработчикам инструменты для расширения потенциальной аудитории их игр. Компания имеет 8 ключевых продуктов, двухнедельный цикл выпуска и от 6 до 21 языка, на которые необходимо локализовать каждый продукт.
Компания исторически использовала различные онлайн-платформы для перевода, но во многих отношениях была ими недовольна. «Локализация нескольких новых строк на 20 языков требовала больше времени на управление проектом, чем на сам перевод», — говорит Наталья Павликова, инженер по локализации в Xsolla. По этой причине Xsolla начала искать альтернативное решение.
Наталья Павликова, инженер по локализации в Xsolla
Критерии
Xsolla хотела, чтобы новая платформа:
Автоматически извлекала локализуемый контент из репозитория кода компании,
Обеспечивала прозрачный и гибкий процесс локализации, а также
Отправляла локализованный контент обратно в репозиторий кода.
Решением стала связка из двух бесплатных инструментов: Serge и Smartcat. Serge — string extraction and resource generation engine — это автономный инструмент, который обеспечивает непрерывную локализацию (см. выноску). Он автоматически собирает новый исходный материал, публикует его для перевода, получает готовые переводы и интегрирует их обратно в продукт. Serge — это проект с открытым исходным кодом, поддерживаемый Evernote. Smartcat, в свою очередь, — это платформа для перевода, на которой можно хранить проекты и переводческие памяти, находить переводчиков, назначать им документы и оплачивать их работу.
Непрерывная локализация: когда она нужна?
Непрерывная локализация лучше всего подходит для сценариев, в которых имеется большой объем контента, который постоянно обновляется, и/или в которых разработкой и локализацией занимаются разные команды. К таким случаям относятся:
Локализация программного обеспечения и видеоигр, в которых в каждой новой версии появляются новые строки.
Руководства пользователя и спецификации API, включая автоматически сгенерированные.
Веб-сайты и блоги, созданные с помощью генераторов статических сайтов.
Любые проекты, в которых создание контента вписывается в гибкую структуру.
В целом, если вы храните локализуемые строки в системе контроля версий, наиболее эффективным подходом будет непрерывная локализация. (А если вы этого не делаете, то стоит подумать об этом.) Использование унифицированного автоматизированного процесса локализации строк устраняет человеческие ошибки и значительно экономит время ваших сотрудников, освобождая его для более важных и творческих задач.
Решение
В случае Xsolla непрерывный рабочий процесс локализации выглядит следующим образом:
Разработчики Xsolla обновляют файлы проекта в репозитории Git.
Сергей постоянно отслеживает репозиторий в режиме реального времени и, при необходимости, извлекает строки из обновлений, создает из них файлы ресурсов PO и отправляет их в Smartcat.
Менеджер по локализации Xsolla распределяет непереведенные строки между фрилансерами в своей команде.
Фрилансеры переводят документы и помечают их как завершенные.
Сергей берет локализованные строки, возвращает их в исходные файлы и отправляет в репозиторий Git Xsolla.
Разработчики Xsolla публикуют релиз вместе с локализацией.
Почему Серж?
Smartcat сам по себе поддерживает различные форматы файлов. Так зачем же использовать Serge в качестве прокси между исходными файлами ресурсов и сервисом перевода?
«На первый взгляд Serge может показаться конвертером форматов файлов. Но это не так», — говорит Игорь Афанасьев, директор по локализации в Evernote и создатель Serge. «Serge — это гибкий конвейер обработки и синхронизации файлов, который можно настроить для различных рабочих процессов локализации, обеспечивая по-настоящему непрерывную интеграцию. Serge гарантирует, что локализованные файлы ресурсов имеют ту же структуру, что и исходные, и обрабатывает случаи, когда исходные файлы изменяются, а их старые версии все еще находятся в процессе перевода. Это избавляет инженеров от необходимости объединять изменения и разблокирует цикл разработки. В некотором смысле, с Serge инженеры чувствуют, что «процесса локализации» вообще нет». Еще одна важная особенность Serge — он поддерживает собственную базу данных переводов и работает на стороне клиента. Это означает, что Smartcat не нужно получать доступ к частным репозиториям Git Xsolla, а файлы переводов, которые Smartcat получает от Serge, — это исправленные файлы ресурсов, не содержащие конфиденциальной информации. Наконец, поскольку Serge работает локально на сервере Xsolla в режиме нон-стоп, он получает обновленные локализованные ресурсы в течение нескольких минут. Это гарантирует, что локализованные файлы всегда актуальны и сборки не завершаются сбоем из-за устаревших ресурсов.
Игорь Афанасьев, директор по локализации в Evernote
Результаты
Главный результат перехода к непрерывной локализации заключается в том, что менеджеры проектов могут сосредоточиться на своей работе, а разработчики — на своей. Это значительно облегчает управление проектами, и никому не приходится заниматься отправкой файлов и преобразованием форматов — этим занимается Сергей.
«Теперь мы можем управлять нашими строками так же, как мы управляем нашим кодом, — говорит Максим Кунгурцев, фронтенд-разработчик Xsolla. — Мы можем создавать новые ветки, объединять их, откатывать назад — и при этом быть уверенными, что пакет Serge–Smartcat выполняет всю работу в фоновом режиме, чтобы локализовать строки для этой конкретной ветки в нашем репозитории. Работает как по волшебству!» Не менее важно, что возможности Smartcat по управлению командой позволяют легче обеспечить качество локализованного контента. «У нас уже есть сплоченная команда переводчиков в Smartcat, которые следят за тем, чтобы наш голос оставался последовательным во всем», — говорит Наталья. «А для наиболее важных материалов мы можем привлечь дополнительных лингвистов в качестве корректоров для тех же материалов».
Максим Кунгурцев, фронт-енд разработчик в Xsolla
Планы на будущее
Это был первый непрерывный проект локализации для Smartcat с Сергеем, и команда тесно сотрудничает как с Xsolla, так и с Игорем Афанасьевым. Xsolla с нетерпением ждет реализации многих вещей в будущем, таких как:
Назначение переводчиков в один клик,
Поддержка множественных меток,
Назначение редакторов для исходных текстов,
Более гибкие уведомления.
Но Smartcat настроен оптимистично. «Мы будем усердно работать над реализацией запросов Xsolla», — говорит Павел Доронин, менеджер по продукту в Smartcat. «Не только потому, что они являются одним из самых высокооплачиваемых клиентов, но и для того, чтобы предоставить другим пользователям более удобные рабочие процессы для непрерывной локализации, которая, мы уверены, останется с нами надолго». В будущем мы планируем предоставить еще больше возможностей для непрерывной локализации с помощью Smartcat, включая как собственные сценарии, так и внешние интеграции, что подчеркивает наш экосистемный подход к росту. В конце концов, главное — это то, что больше всего нравится нашим пользователям, и именно на этом мы будем сосредоточиваться.
Павел Доронин, менеджер по продукту в Smartcat
Полезные ссылки
Если вы хотите настроить непрерывный рабочий процесс локализации аналогично Xsolla, вам необходимо:
Загрузить и установить Serge.
Зарегистрироваться в Smartcat.
Установите плагин Serge Smartcat.
Подписывайтесь на нашу новостную рассылку



