Перейти до вмісту

Перенесла кожен рядок, звернений до користувача, з Python у дерево контенту з 874 файлів трьома мовами, знайшовши непомітно мертві переклади й перевірку, яка мовчки оцінювала лише третину досягнень.

874 файлів контенту — і мертві переклади, які вони виявили

Ситуація. Кожен рядок генератора, який бачить користувач, — кожне досягнення, кожен відгук, кожен заголовок розділу, кожен короткий опис, трьома мовами — зберігався в коді на Python. Через це редагування речення перетворюється на зміну коду, перевірка перекладу — на порівняння з кодом, а з першого погляду неможливо зрозуміти, чи переклад якоюсь мовою повний. До того ж так приховується найважливіший тип збою: переклад може водночас існувати, бути помилковим і бути недосяжним.

Завдання. Рядки треба було винести з коду в дерево вмісту, яке можна підрахувати, порівняти між мовами й перевірити, не запускаючи рендерер.

Дія. У результаті з’явилося 874 файли в каталозі вмісту, упорядковані спершу за типом, а потім за мовою: досягнення, відгуки, короткі описи, посади, компанії, регіони, категорії, послуги, профілі, рекомендації та фрагменти супровідних листів. Файли з полями, розділеними табуляцією, — там, де одиниця — рядок з ідентифікатором, окремі файли — там, де одиниця — абзац. Завантажувач читає їх під час збірки, і з них збирається база даних, тож джерело — дерево, а база даних — похідна від нього. Два висновки з’явилися саме завдяки можливості рахувати. Деякі перекладені рядки вже не мали жодного англійського відповідника — це були мертві записи, які ніде не відображалися і яких ніхто не міг помітити, поки вони були вбудовані в код, бо ключ словника, на який ніщо не посилається, має точнісінько такий самий вигляд, як і той, на який посилаються. А перевірка вмісту, яка мала оцінювати кожне досягнення, читала лише ту підмножину, яку могла знайти, — оцінювала тридцять сім із дев’яноста трьох і звітувала про успіх. Коли корпус став каталогом, обидві проблеми проявилися як розбіжність у кількості файлів.

Результат. Текст тепер можна редагувати, не торкаючись коду, і порівнювати між мовами простим підрахунком. Ціна в тому, що додавання мови стало однозначним, а не поступовим: у дереві неповна мова одразу помітна — у цьому й суть, — але це також означає, що часткові переклади вже не вийде непомітно випускати, поки їх доробляють.

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

Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.

Переглянути весь перелік