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

Читабельність різними мовами: 17 формул, 86 мов

Читабельність різними мовами: 17 формул, 86 мов

Сайт перекладено дев’ятьма мовами, одна написана добре, вісім погано. Ніхто не помічає, бо єдине число читності в команді рахувалося для англійської. Читабельність різними мовами означає рахувати кожну мову тими формулами, які в цієї мови є.

Код: ReadSightRS, ліцензія MIT.

Крейт readsight несе 86 мов у 19 системах письма і 17 формул, і всі дані скомпільовані в бінарник.

П’ять універсальних формул їдуть усюди

Gunning Fog, SMOG, Coleman-Liau, ARI і LIX рахують літери й склади, тому працюють на будь-якому письмі. Тайська, арабська й польська сторінка отримують клас за тими самими п’ятьма формулами.

Цього досить, щоб зловити переклад, який перетворив чисте речення на абзац канцеляриту. Цього мало, щоб сказати, наскільки текст тяжкий для носія, бо поріг «просто» в кожній мові свій.

Решта дванадцять належать мові

Flesch Reading Ease і Flesch-Kincaid несуть опубліковані коефіцієнти для дванадцяти мов: німецька рахує за Амштадтом, російська за Оборнєвою, нідерландська за Доумою, турецька за Атешманом. У німецької своя Wiener Sachtextformel у чотирьох варіантах, у італійської Gulpease, у польської FOG-PL, у арабської OSMAN, у іспанської родина з чотирьох формул.

Рушій видає кожній мові свою частину: дев’ять формул для англійської, одинадцять для іспанської, вісім для німецької, п’ять для тайської. Метрика, придумана для англійських складів, не потрапляє на тайське речення.

Одна оцінка на мову, а не на сайт

Панель, яка усереднює німецький та іспанський клас, видає число без сенсу. Корисний вигляд це таблиця: мова, сторінка, клас, поріг для цієї аудиторії.

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

Чому дані живуть усередині бінарника

Крейт компілює 86 мовних файлів і 86 файлів шаблонів переносів у бінарник через include_dir. Ні файлової системи, ні мережі, ні теки кешу, яку треба заводити.

Для прогону на п’ятдесят тисяч сторінок на складальному агенті це різниця між роботою, яка проходить, і роботою, яка падає на відсутньому томі з даними. Config::from_dirs() існує для зворотного випадку, коли дані правлять без перезбирання.

Що варто виміряти першим

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

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

Навіщо потрібен пакетний підрахунок

Користь дають три задачі. Перевірка перед редизайном, яка порівнює старий і новий текст сторінки. Місячний звіт по каталогу із сортуванням за класом, щоб перші сто найгірших сторінок відредагували першими. І фільтр у конвеєрі перекладів, який не пропускає текст на два класи важчий за вихідний.

Остання задача найменш очевидна й найцінніша: вона ловить переклад, який технічно правильний і нечитабельний, до того як його знайде читач.

Чого крейт не знає

Він не судить структуру, аргумент і тон, а його підрахунок складів іде за точками переносу TeX, що точно для розбиття рядків і наближено для фонетики. Слов’янські мови на кирилиці рахуються евристикою, і README називає цей обмін.

Бал читабельності це фільтр по каталогу. Він знаходить сторінки, яким потрібен редактор, і ніколи не знайде сторінку, яка читається легко й нічого не каже.

Поруч: читабельність тексту про самі формули і перевірка читабельності тексту про роботу з однією сторінкою, з якої все починається.