movar.fyi

Глибше

Як працює Мовар

Сказати «Мовар бачить, що сторінка російською» легко — але це найважча частина всієї роботи, і найкраще видно чому, коли сигнали суперечать один одному. Перемикач мов показує активною «UA». Атрибут <html lang> каже ru. Класифікатор, подивившись на сам текст, повертає третє. Хто має рацію? Ця сторінка показує, як Мовар зважує докази, за якими правилами діє, чому принципово не перекладає — і де проходить межа його можливостей.

01

Драбина сигналів: від найнадійнішого до найслабшого

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

  • Перший — активний пункт перемикача мов, і саме він важливіший за атрибут <html lang>, хоча інтуїція підказує навпаки. Перемикач і контент малює той самий код: їх розробляють разом, тож вони майже завжди збігаються.
  • Другий — <html lang>. Він лежить у шаблоні й живе власним життям: є сайти, що віддають lang="ru" на всіх без винятку локалях.
  • Далі — піддомен ru.example.com, потім сегмент шляху зі строгим збігом, щоб /ru-return-warranty не читався як ru, і насамкінець self-hreflang, коли сторінка сама вказує на себе з мовною міткою.
  • Коли всі пʼять сигналів мовчать, лишається сам текст сторінки. Тут Мовар пробує вбудований у браузер визначник мови — Chrome та Edge мають його вбудованим: де він є, там він точніший, а де немає — працює franc на локальних таблицях триграм. Це шостий і останній крок для вердикту всієї сторінки.
  • Коли доказів бракує — вердикт «невідомо», і Мовар нічого не чіпає.

02

Для коротких рядків потрібен інший класифікатор

Вердикт для сторінки — це ще не все. Картку товару, пункт меню, заголовок результату доводиться класифікувати поодинці, а рядок у три слова замалий і для ШІ, і для триграм.

  • Найочевидніше рішення — характерні літери: і, ї, є, ґ проти ы, ё. На абзаці працює чудово; на короткій назві без жодної такої літери мовчить, а на цитаті — бреше. Тому літери тут не весь метод, а лише перший щабель драбини з чотирьох.
  • Щаблі за порядком: характерні літери, потім вручну відібрані службові слова з найвищою точністю, потім частотні слова з корпусу субтитрів, і насамкінець franc — триграмна підстраховка, і лише для тексту від 24 символів. Виграє той щабель, чий лідер першим відірвався хоча б на одиницю.
  • «Характерний» означає не «унікальний у світі», а «унікальний серед тих мов, які ми зараз розрізняємо». Літера і вирішує суперечку між українською та російською, бо є лише в першій, — але між українською та білоруською вона не визначальна, бо є в обох.
  • Коли сама картка несе мовну мітку — Google, наприклад, підписує власним атрибутом блок ШІ-відповіді — Мовар зважує мітку й текст разом: мітка вирішує, поки тексту мало, але впевнене читання тексту її перебиває. Картка, підписана українською, а насправді російська, за своєю биркою не сховається.
  • Висновок повертається не самим кодом мови, а разом із доказами: який щабель спрацював, з яким відривом і чи взагалі було з чого обирати. А коли голоси розділилися — вердикт «невідомо», що для Мовара означає «не чіпати».

03

Класифікатор виріс в окремий пакет

Ця частина зрештою переросла сам Мовар: класифікатор, профілі мов і коди винесені в окремий пакет, опублікований на npm.

  • langtell відповідає не на питання «якою мовою цей текст», як franc чи cld3, а на питання «якою мовою цей заголовок, з огляду на сторінку й заголовки, з якими він приїхав» — і показує, з чого склався висновок.
  • Він дивиться не лише на сам текст, а й на <html lang>, og:locale та заголовок Content-Language, зважує ці докази й повертає вердикт разом із переліком того, що на нього вплинуло, — тож завжди видно, чому рядок класифіковано саме так.
  • Кириличний набір там ширший, ніж потрібно Мовару — є ще сербська, македонська, казахська, — тож будь-хто може взяти його під власну пару мов. Нуль обовʼязкових залежностей, ліцензія MIT, franc підключається окремо й лише якщо потрібен.
  • У Мовара лишилося те, що специфічне саме для нього: швидка евристика для основного шляху, оркестратор рушіїв і нормалізація BCP-47. І все це — на пристрої: жодного запиту назовні, жодної телеметрії. Це не побічний ефект, а умова.

04

Правила, яких Мовар не порушує

За всіма цими рішеннями стоять правила, які лишаються в силі навіть тоді, коли порушити їх зручно.

  • Спершу перемкнути, приховати — в останню чергу. Мовар не блокувальник: головна його робота — знайти українську версію, яка вже існує, і перемкнути сайт на неї.
  • Через спільні механізми, а не через список сайтів. Заголовок, hreflang, розмітка, перемикач мов є всюди, тож базовий рівень працює й на сайті, якого Мовар ніколи не бачив. Власні моделі сторінки для Google і YouTube — надбудова, а не фундамент.
  • Критерій — мова, а не зміст. Мовар не оцінює тексти й не вішає ярликів.
  • Краще не приховати російське, ніж помилково приховати українське. Весь механізм визначення базується на доказах, а висновок «не впевнений» означає «не чіпати».
  • Явний вибір користувача сильніший за налаштування. Якщо ви самі клікнули на сайті «російська», Мовар не перекидає вас назад — він відступає на цьому сайті до кінця сеансу, щонайбільше на добу. Інакше розширення скасовувало б ваш власний вибір.
  • Не фільтруємо контент за замовчуванням. Приховування вмісту вимкнене, доки ви самі не ввімкнете його в налаштуваннях.
  • Уся обробка — на пристрої, включно з ШІ. За можливості, а не з примусу: є вбудований визначник — беремо, немає — працюємо на локальних алгоритмах. Ніколи не завантажуємо ШІ-моделі й не вимагаємо новішого браузера.
  • Не заглядаємо в медіа. Мовар не читає текст усередині зображень, відео чи звуку. Це водночас принцип і обмеження.
  • Жодної аналітики. Ні лічильників, ні телеметрії, ні «анонімної статистики».
  • Обіцянки перевіряє алгоритм. Кожна звіряється з кодом на кожній збірці: «нічого не покидає браузер» — це перевірка, яка сканує джерела на мережеві виклики й блокує збірку, якщо знайде. Не маркетинг, а тест — живі результати на сторінці Прозорість.
  • Не перекладати. Ніколи, і такої опції немає. Наступний розділ — саме про це.

05

Чому Мовар не перекладає

Найочевидніша реакція на «текст не тією мовою» — перекласти його. Мовар цього не робить принципово, і це, мабуть, найважливіше рішення в усьому продукті.

  • Що він робить із російським вмістом, який таки лишився на сторінці? Не перекладає — і не ховає сторінку цілком. Він прибирає окремі елементи, рівно ті, що заблокованою мовою: варіант «російська» зі списку в перемикачі, російський результат у видачі Google, картку відео на YouTube. Решта сторінки лишається як є.
  • Переклад відмиває джерело. Машинна українська читається як питомий текст, і ви знову опиняєтесь наодинці рівно з тим вмістом, від якого відгородились, — тепер мовою, якій довіряєте, з пропагандою включно. Сигнал «це російське» і є те, заради чого Мовар встановлюють.
  • Переклад гальмує розвиток української. Україномовної аудиторії не видно тим, хто створює контент, — вона розчиняється в російськомовній статистиці. Читач задоволений, а автор так і не дізнається, що його аудиторія українською читає охочіше. Попит лишається невидимим.
  • Чесних варіантів, коли українського контенту немає, рівно два: показати як є — або приховати. Обираєте ви: відфільтроване або зникає, або лишається на місці за розмитою завісою.
  • Мовар не ділить авторів на правильних і неправильних. Пропаганда чудово маскується й під українську — сама лише мова не гарантує нічого про якість тексту. Під фільтр потрапляє й проукраїнський автор, який пише російською, бо критерій тут мова, а не лояльність. Будь-який інший критерій перетворив би мовний інструмент на щось зовсім інше.

06

Чого Мовар не може

Було б нечесно вдавати, що розширення лагодить усе.

  • Мовар виправляє те, що відбувається у вашому браузері: запит, який надсилається, адресу, яку ви відкриваєте, параметри пошуку, перемикач, який він уже знає для сайту. Він не править закешовані відповіді CDN, не виправить мовних міток хибно класифікованим статтям Вікіпедії, не перекладе текст, вкарбований у зображення, і не змусить ШІ відповісти українською.
  • Поелементний фільтр має чітку межу: щоб прибрати картку, Мовар має розуміти структуру сторінки, а зараз він знає видачу Google і YouTube. На маркетплейсі перемикач Мовар почистить, а картки товарів залишаться. Кожна нова структура — це окреме правило, і це чесна відповідь на питання «а мій сайт?».
  • У YouTube немає нічого схожого на lr у Google — жодного параметра, який справді відсіює російськомовні відео; hl і gl лише підштовхують інтерфейс, ранжування й рекомендації. Тож адреса там нічого не гарантує, і єдине, що прибирає російські картки, — поелементний фільтр, який ви вмикаєте вручну.
  • Коли фільтр Google за українською дає порожню сторінку, Мовар один раз перезапитує без нього. Наполягати на мові до кінця означало б показати вам нуль результатів замість тих, що таки є.
  • Але чистий сигнал — передумова для всього іншого. Доки системи бачать каламутний сигнал, детектори, ранжування та ШІ-відповіді показуватимуть не ту мову.

Сподобалась ідея? Долучайтеся

Мовар — некомерційний проєкт: ні платної версії, ні преміум-функцій, ні даних на продаж. Мета одна — щоб української в інтернеті ставало більше. Найбільше допомагають чотири речі. Чесний відгук у магазині розширень: саме за оцінками магазини вирішують, кому показувати розширення. Розповідь знайомим — кожен, хто вмикає Мовар, це ще один чистий сигнал у тій самій статистиці, з якої ростуть бюджети на локалізацію. Повідомлення про сайт, де Мовар не спрацював — або спрацював там, де не мав: кожен такий випадок стає тестом і більше не повторюється. І дизайн — іконки, ілюстрації, матеріали для сторінок у магазинах; цього бракує найбільше.

Написати нам