- PVSM.RU - https://www.pvsm.ru -
В этой статье мы расскажем, как мы переводили локализацию мобильных проектов в Smartcat, какие изначально у нас были боли и как мы с ними справились.
Привет всем! Мы — Екатерина Галицкая и Дарья Егорушкина из «Лаборатории Касперского» (отдел документации и локализации). Немного конкретнее: команда, в которой мы работаем, отвечает за написание и локализацию текстов интерфейса и справки для мобильных приложений.
Основным триггером изменений стали потребности разработки. Разработка перешла на частые релизы раз в две недели. Скоуп уменьшился, но переводить стали чаще, и надо было делать это быстрее. По сути, локализация стала узким горлышком разработки. И если раньше менеджеры проектов даже не знали имен локализаторов — а зачем вообще, ведь переводы волшебным образом появлялись сами, — то теперь практически все были в курсе проблем и даже знали, что такое лингвистическое тестирование :)
Исходные данные.
Локализационный цикл занимал 3 недели:
С переводом все понятно, а зачем лингвистическое тестирование, и что это вообще такое?
Основная цель лингвистического тестирования — проверить перевод в контексте, то есть действительно сделать локализацию. Переводчики знали нашу терминологию, но все равно переводили просто текст, не видя, что это — кнопка или заголовок, какой текст находится рядом.
Кроме того, лингвистическое тестирование позволяет отловить невлезания, недоперевод, текст, не вынесенный в строки (захардкоженный текст), сократить юридические риски (когда в нужное поле не помещаются тексты про оплату, например). Лингвистическое тестирование обычно проводится с помощью скриншотинга.
Бытует миф, что если приложение мобильное, то оно маленькое, и что там переводить?
Ха-ха. Немного статистики:
Посмотрим, из чего состоял каждый из этапов локализации. Этап перевода (9 шагов):
Проблемы этапа перевода: если коротко, то — ограничение старых процессов и много рутинной работы при использовании старых CAT:
Этап лингвистического тестирования (19 шагов):
Проблемы этапа лингвистического тестирования: ручное снятие скриншотов занимало львиную долю времени. Если в фиче примерно 40 экранов, а языков 20, то это могло доходить до 70 часов ручного скриншотинга…
Помимо этого был и человеческий фактор.
Одно дело пройти эти шаги раз в три месяца. Другое дело — повторять все это каждые две недели. С каждой новой итерацией локализаторы погружались в болото рутины — отправить-принять-снять-повторить.
Надо было искать решение, и при этом довольно быстро. Какие были варианты решения? Можно было:
Мы остановились на последнем.
У нас не было ста лет, чтобы сесть, налить себе чашечку кофе, засучить рукава и начать анализировать весь рынок облачных решений в течение года. Мы искали готовое решение, чтобы начать работать уже завтра. Наша цель была — решить проблему.
Какие еще у нас были требования:
Из разных вариантов пристальнее всего мы рассматривали Zing [1] (сервис переводов от разработчиков Evernote).
Из плюсов:
Минусы: чтобы подключить переводчиков и открыть им доступ, нужно было подключить как минимум два подразделения. Что резко поднимало стоимость сервиса по времени и ресурсам.
Поскольку нам нельзя напрямую подключать CAT-систему к внутренней системе контроля версий, нужен был другой коннектор. Можно написать самим либо взять имеющийся. Так мы протестировали связку Git — Serge — Smartcat.
Из плюсов:
Минусы:
Кратко — поменяли процесс работы с текстами интерфейса :) Что сделали:
Как теперь выглядит локализация (9 шагов на все):
Конечно, есть еще поле для автоматизации и улучшений. Но уже можно почувствовать разницу с тем, что было сначала.
Это opensource-решение, коннектор между системой контроля версий (SVN, Git, Gerrit (Git-based code review system), Mercurial) и TMS, в нашем случае Smartcat.
Почему нам «зашел»: у всех облачных TMS есть коннектор из «коробки». Но такие коробочные коннекторы подключаются к репозиторию напрямую. Что в нашем случае невозможно. Какие есть варианты:
Раскрывать часть системы — рискованно.
Делать клон — можно, только для этого нужны временные и людские ресурсы.
Serge же как раз умеет получать ресурсные файлы и обрабатывать их до отправки в TMS. В итоге архитектура такая: Git — Serge — TMS.
Serge забирает файлы из Git и обрабатывает их по определенным правилам. Дальше конвертирует их в формат PO и отправляет в Smartcat. Serge получает переведенные PO-файлы из Smartcat, преобразует их и коммитит в Git.
Также для нас большой плюс Serge, что он развернут у нас внутри компании. Таким образом, вся «кухня» остается за каменной стеной. Ничего секретного не выходит наружу :)
Основные функции:
С другими фичами Serge можно познакомиться на сайте [3] или посмотреть ролик [4].
Самое главное — за сравнительно небольшой срок, около трех месяцев, мы решили проблему и перестали быть узким горлышком.
Этап | Сколько часов было (2018) | Сколько часов стало (конец 2019) |
---|---|---|
Собрать строки со всех бранчей. Вручную | 1 | 0 |
Получить только новые или измененные строки на итерацию, загрузить в старую CAT-тулу для 20 языков | 4 | 0,25 |
Создать пакеты на перевод. Повторить для 20 языков. | 0,5 | 0 |
Поставить задачи агентствам/переводчикам. 1 язык = 1 агентство. | 2 | 0 |
Загрузить пакеты с переводами на FTP для каждого языка. Повторить для 20 языков. | 0,5 | 0 |
Списаться, получить подтверждение от агентства/переводчика, что задача взята. Повторить для 20 языков. | 2-3 | 0 |
Ответить на вопросы переводчика. Повторить для 20 языков. | 2-4 | 0,5 |
Принять перевод для каждого языка | 1 | 0,25 |
Запустить билд | < 8 (правка багов из старой CAT-тулы) | 0,25 |
Доперевод (повторить все вышеуказанное) | 8 | 0,25 |
Получить скриншоты | 16-32 (сами вручную) | 8 (автоскриншотилка) |
Выложить на FTP | 8 | 1 |
Списаться с агентством/фрилансерами | 8 | 1 |
Внести правки в ресурсы | 8 | 2 |
Залить изменения в Git | 8 | 0,25 |
Чистого времени | 84 | 14 |
Бонусы:
В дополнение связка Git — Serge — Smartcat позволила перевести работу UX-писателей в Smartcat. Как мы это сделали, расскажем в следующей статье :).
*Подробнее про автоскриншотинг: наши коллеги писали автотесты и создали Kaspresso — фреймворк для автотестирования [5]. Как раз на нем сделан автоскриншотинг, который мы используем в локализации. Как побочный результат автотестов.
Автор: EkaterinaGalitskaya
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/blog-kompanii-laboratoriya-kasperskogo/351593
Ссылки в тексте:
[1] Zing: https://evernote.github.io/zing/
[2] фреймворка Kaspresso: https://github.com/KasperskyLab/Kaspresso
[3] сайте: https://serge.io/
[4] ролик: https://www.youtube.com/watch?v=bC3wECRgLog&feature=emb_logo
[5] фреймворк для автотестирования: https://habr.com/ru/company/kaspersky/blog/467617/
[6] Источник: https://habr.com/ru/post/495354/?utm_campaign=495354&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.