Навіщо ми зробили власний перекладач

На macOS 26 будь-який переклад з української або на українську через вбудований переклад Apple валив системну службу перекладу. Цього тижня ми перестали від неї залежати: застосунок перекладає своїми моделями, просто на вашому Маку.

Що зламалося

Ми розібралися 12 серпня. На macOS 26 (перевіряли на 26.5.2) будь-який переклад, де з одного боку українська, обриває системну службу translationd. Після цього macOS не запускає її знову до 20 хвилин. Увесь цей час не перекладається жодна пара мов, у жодному застосунку на комп’ютері, зокрема російська й англійська. Відтворити це можна і без нашого застосунку: виділити текст, натиснути праву кнопку, обрати «Перекласти».

На macOS Sequoia 15 той самий переклад працює, тож це збій саме macOS 26, а не один невдалий Mac. Він відтворився і на чужому комп’ютері. Звичайних підозрюваних ми перевірили: файли української моделі цілі, а очищення кешів, перезавантаження і зміна режиму перекладу нічого не змінювали. Звіт до Apple ми надіслали, але українська — серце того, що робить застосунок, і чекати ми не могли.

Найгірший побічний ефект. Українська й так не працювала, але одна українська спроба заодно вимикала російську й англійську на двадцять хвилин.

Що ми зробили

Ми додали власний перекладач. Він використовує відкриті моделі перекладу, а запускає їх рушій усередині застосунку. Перша версія знає англійську, російську й українську, а сховище розраховане на десять мов.

Словники завантажуються по одному на напрям, лише для мов, які ви обрали, з cdn.verbaide.com. Один напрям лежить усередині застосунку, тож переклад працює з першого запуску: з російської й української на англійську. Усі інші напрями, зокрема зворотний шлях з англійської на російську й українську, завантажуються на вимогу.

Для деяких пар прямої моделі немає — наприклад, для української та російської. Там ми йдемо через англійську, і лише коли прямого шляху немає: кожна зайва пересадка може зіпсувати сенс.

Що ми виміряли

Спершу ми спробували клас моделей менший і легший. З 20 тестових перекладів він зіпсував 8, а в шести зникли цілі речення. З «Привет, как дела? Сегодня хорошая погода, и я хочу пойти на прогулку» лишилося тільки «як справи? і я хочу піти на прогулянку». Це втрачений текст, а не обмін швидкості на якість, тому таку модель ми відхилили. Більший клас не втратив жодного речення.

На цьому Маку наш перекладач витрачав 153 мс на фразу, а перекладач Apple — 176 мс. Це один комп’ютер, а не тест на всі випадки, але він показує, що перехід нічого не коштує за швидкістю.

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

Ще з блогу