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

серпень 2026

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

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

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

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

---

- Роль: Інженер баз даних
- Категорії: [Backend‑розробка](https://engineer.company/uk/categories/backend/), [Data Governance](https://engineer.company/uk/categories/data-governance/), [Міграції та модернізація](https://engineer.company/uk/categories/migration/), [Python](https://engineer.company/uk/categories/python/), [Інтернаціоналізація](https://engineer.company/uk/categories/i18n/), [Документація](https://engineer.company/uk/categories/documentation/)
- Послуги: [Backend- та API‑розробка](https://engineer.company/uk/services/backend-development/), [Інтернаціоналізація та локалізація](https://engineer.company/uk/services/i18n-localization/), [Міграція та модернізація баз даних](https://engineer.company/uk/services/database-migration/), [Data Governance та якість даних](https://engineer.company/uk/services/data-governance/)

<https://engineer.company/uk/portfolio/moved-every-user-facing-string-into-a-content-tree-152/>
