Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдинов Юрий (Badoo)
Как устроена система перевода в Badoo / Юрий Насретдинов...
Transcript of Как устроена система перевода в Badoo / Юрий Насретдинов...
![Page 2: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/2.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
• 177+ млн пользователей•PHP-FPM: 30+ тыс запросов в сек• 140 тыс регистраций в день• 3 млн фото / видео в день• 50 языков интерфейса
О компании
![Page 3: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/3.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Система перевода
Hello
![Page 4: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/4.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Система перевода Привет
שלום
Bonjour
![Page 5: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/5.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Blitz-шаблоны<h1>Results</h1><!-- BEGIN NOTHING -->No results found<!-- END NOTHING --><!-- BEGIN RESULT --><div>Name {{name}}, {{score}}</div><!-- END RESULT -->
![Page 6: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/6.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Linc-файлы (тексты)
![Page 7: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/7.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Blitz-шаблоны
• Шаблоны обрабатываются с помощью движка Blitz
• С помощью умного алгоритма™ выделяются куски текста: лексемы
![Page 8: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/8.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Blitz-шаблоны<h1>Results</h1><!-- BEGIN NOTHING -->No results found<!-- END NOTHING --><!-- BEGIN RESULT --><div>Name {{name}}, {{score}}</div><!-- END RESULT -->
root_0: #1
NOTHING: NOTHING_0: #2
RESULT: RESULT_0: #3
#3
![Page 9: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/9.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Генерация файлов<h1>Results</h1><!-- BEGIN NOTHING -->No results found<!-- END NOTHING --><!-- BEGIN RESULT --><div>Name {{name}}, {{score}}</div><!-- END RESULT -->
<h1>Результаты</h1><!-- BEGIN NOTHING -->Результатов не найдено<!-- END NOTHING --><!-- BEGIN RESULT --><div>Имя {{name}},{{score}}</div><!-- END RESULT -->
![Page 10: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/10.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Генерация файлов
• Нет специальных маркеров лексем
• Пре-генерируются шаблоны, переведенные на все языки
• + 100 000 файлов при деплое
![Page 11: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/11.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Лексемы• Каждая лексема получает свой идентификатор (Lexem_id)
• Даже лексемы с тем же текстом каждый раз* получают новый id
• Переводчики могут независимо поменять любой текст на сайте
* В новом контексте
![Page 12: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/12.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Типичный workflowZAPILIT-1Задача:
Ветка: ZAPILIT-1_done_job(7bf41e1cae80ec6)
+ file1.tpl- file2.phpM file3.tpl
![Page 13: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/13.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Типичный workflowЛексемы:
ZAPILIT-1:3 новых5 изменено
Деплой: git merge ZAPILIT-1
![Page 14: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/14.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Типичный workflowЛексемы:
ZAPILIT-1:3 новых5 изменено
Деплой: git merge ZAPILIT-1
![Page 15: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/15.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Mini-staging: «шоты»• Staging из текущей ветки
• Быстрое создание
• Лексемы попадают на перевод во время тестирования задачи
• Позволяют сократить время ожидания переводчиков
![Page 16: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/16.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Иерархия языков
Master
Devel
English (UK) Portuguese (Brazil)
Portuguese (Portugal)
![Page 17: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/17.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Иерархия языков
• Отдельный язык — Devel
• Сначала переводится на Master
• Перевод наследуется от родителя
![Page 18: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/18.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Проблемы с git?
![Page 19: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/19.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Интеграция с git
![Page 20: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/20.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Проблемы с git
• Один файл могут редактировать в разных ветках одновременно
• Ветки могут мержить друг в друга
• Нужно сохранять id лексем после мержа двух версий файла
![Page 21: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/21.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Хранение данных• Полная структура файла хранится в базе данных
• Каждой лексеме в файле выдается уникальный id
root_0: #1
NOTHING: NOTHING_0: #2
RESULT: RESULT_0: #3
![Page 22: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/22.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Что делать?• «Контекст» лексемы #3:
«RESULT / RESULT_0»
• Уровень вложенности блоков имеет значение
• Лексемы с тем же содержимым имеют такое же название лексемы (RESULT_0)
root_0: #1
NOTHING: NOTHING_0: #2
RESULT: RESULT_0: #3
![Page 23: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/23.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Интеграция с git• Хранятся мастер-версии и диффы к мастеру
• Между собой диффы не мержатся
• Лексемы в том же контексте получают тот же id
![Page 24: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/24.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Сохранение id лексем
root_0: #1
NOTHING: NOTHING_0: #2
root_0: #1
RESULT: RESULT_0: #3
+
Задача1 Задача2
![Page 25: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/25.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Сохранение id лексемroot_0: #1
NOTHING: NOTHING_0: #2
RESULT: RESULT_0: #3
Задача1
Задача2
![Page 26: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/26.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Summary• Лексемы выделяются автоматически из HTML-кода и linc-файлов
• Полная прегенерация шаблонов
• Интеграция с git и таск-трекером
• Задачи попадают на перевод в момент начала тестирования задачи
![Page 27: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/27.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Вопросы
![Page 28: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/28.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Спасибо за внимание!
Badoo, Юрий Насретдинов[email protected]
twitter.com/YNasretdinov
![Page 29: Как устроена система перевода в Badoo / Юрий Насретдинов (Badoo)](https://reader033.fdocument.pub/reader033/viewer/2022052904/557f1f54d8b42a00268b464d/html5/thumbnails/29.jpg)
23.10.12, 0:08
Страница 1 из 1http://badoocdn.com/v2/-/-/i/logo.5.svg
Интерфейс