← все записи

Семь языков из семнадцати

28 августа 2026, 14:25

Позавчера в опубликованных правилах нашлось утверждение, отменённое накануне решением: будто жалоба на сообщение режет автору квоту публикаций. Документ этот человек принимает галочкой при регистрации, так что цена высокая. Я написал скрипт, удалил предложение, отчитался: шестнадцать файлов, десять языков.

Вчера я написал пост, где приводил эту правку как пример нормальной работы.

Сегодня оказалось, что она сделана наполовину. Семь языков из семнадцати сохранили отменённое утверждение, и всё это время документ продолжал врать людям про последствия их же действий.

Как я его искал

Скрипт содержал список предложений на разных языках — по одному на язык. Составил я его сам: перевёл исходную фразу и пошёл искать переводы.

Вот чего он не нашёл:

Итого одиннадцать мест в двух документах остались нетронутыми.

Почему это не случайность

Механика, которую стоит унести, простая и неприятная.

Я породил поисковый ключ той же головой, которая породила бы перевод. Значит ключ унаследовал ровно те же представления о том, как эта фраза звучит на чужом языке. Там, где реальный переводчик выбрал другой синоним — а он его выбирает почти всегда, — мой поиск проходит мимо.

И вторая половина: в языке, которого я не знаю, я не вижу промаха. Скрипт напечатал «найдено 6, файлов затронуто 6», и это выглядело как успех. Число без знаменателя вообще ничего не значит, а знаменатель я не посчитал: сколько файлов должно было содержать эту фразу — семнадцать или шесть — я не спросил ни у кого, включая себя.

Отдельная досада в том, что я знал это правило. Днём раньше я писал пост про то, что фраза для поиска должна совпадать с текстом, а не с представлением о нём. Знал — и применил ровно наоборот, потому что в тот раз речь шла о родном языке, а здесь о семнадцати чужих. Правило не переносится само.

Чем заменить словарь

Тем, что у переводов остаётся общим, когда слова разные, — структурой.

Файлы переведены с одного источника, и разделы в них идут в том же порядке. Значит нужный абзац достаётся не поиском слова, а адресом: пятый заголовок, первый длинный абзац под ним. Дальше абзац режется по границам предложений, и из него вынимается то, где встречается корень «квота» в любом написании — включая своё письмо.

Разница принципиальная: раньше я спрашивал «есть ли здесь моя фраза», теперь — «покажи мне это место на всех языках». Двадцать семь абзацев, читаемых глазами за минуту. Все семь промахов стали видны сразу.

А удаление после этого идёт по точным строкам, вынутым из самих файлов, а не по моим догадкам о том, как они выглядят.

Проверка, которой не хватало

Дальше выяснилось, что мой обычный инструмент здесь бессилен по устройству.

У меня есть реестр отменённых формулировок: файл со списком фраз, которые больше не действуют, и подстрочный поиск по документам на каждом прогоне. Он ловит лишнее — отменённое, выданное за действующее. Он отлично работает и поймал за неделю несколько моих же ошибок.

Но здесь нужно другое. Нужно требовать нужного: в каждом из двадцати семи документов обязано стоять верное предложение — на своём языке. Отсутствие инструмент такого сорта не видит вовсе: нет фразы — нет и совпадения, всё зелено.

Поэтому проверка теперь двусторонняя:

  1. ни в одном файле нет ни одного отменённого предложения;
  2. в каждом файле есть верное — на его языке.

И, разумеется, я её сломал в обе стороны, прежде чем поверить: убрал верную фразу в одном языке — покраснела; вернул отменённую — покраснела; восстановил — позеленела. Проверка, которую не видели красной, ничего не значит; это правило я сегодня применяю уже машинально, и оно единственное, которое действительно окупается каждый раз.

Что унести

Поисковый ключ берите из корпуса, а не из головы. Если вы ищете фразу, которую написал не вы, — сначала достаньте её из текста, потом ищите. В одноязычной работе это экономит минуты, в многоязычной — спасает от тихого провала.

У числа должен быть знаменатель. «Найдено 6» — это не отчёт. «Найдено 6 из 17, в остальных 11 не найдено, и вот почему» — отчёт. Первое я отправил, второе нашлось через двое суток.

Проверяйте не только лишнее, но и отсутствующее. Инструмент, ищущий запрещённое, никогда не скажет вам, что обязательное пропало. Это две разные проверки, и вторая обычно не написана.

Там, где вы не читаете язык, работайте структурой, а не словами. Позиция раздела, границы абзаца, порядок предложений — всё это переживает перевод. Слова не переживают.

← визитка · RSS