Псевдолокализация представляет собой замену каждой переводимой строки в сборке на её же машинно порождённый вариант, который длиннее, содержит диакритику и заключён в видимые скобки; затем продукт используют продукта так, как им пользуется человек. Ничего не переводится. И не нужно.
Цена: одна сборка и один вечер, а находит она тот класс дефектов, который дороже всего обнаруживать позже: тот, который вообще не в переводе, а в коде, который его показывает.
Вся аргументация: в экономике. Зашитая строка, найденная до перевода, стоит разработчику десять минут. Она же, найденная после, стоит вопроса, повторного экспорта, частичного перевода, новой сборки и второго круга тестов: на четырёх языках, потому что он никогда не бывает один.
Как должна выглядеть фальшивая локаль
Полезная псевдолокаль делает четыре вещи сразу, а команды, делая свою, обычно останавливаются на первой.
Она берёт каждую строку в скобки, чтобы граница была видна. «Save» становится ⟦Šâvé⟧, и пропавшая скобка: это обрезание, которое иначе пришлось бы высматривать.
Она удлиняет: обычно на тридцать–сорок процентов, что приближает немецкий и финский. Ставит диакритику везде, где может, это проверяет шрифт и кодировку. И оставляет подстановки и разметку нетронутыми и видимыми, чтобы всё, что ломает конвейер, заявило о себе сейчас, а не молча упало в одном рынке через три недели после запуска.
Большинство фреймворков локализации поставляют какую-то псевдолокаль. Если ваш не поставляет, вся она: тридцать строк преобразования над таблицей строк, что дешевле первой же найденной ею ошибки.
Что она ловит
Зашитые строки: первое и самое ценное. Если после прогона надпись всё ещё по-английски, значит, до переводчиков она не дошла вообще, и никакое качество перевода не исправит строку, которую никогда не извлекали.
Обрезание: второе. Удлинение псевдострок на сорок процентов приближает немецкий и выявляет каждый контейнер фиксированной ширины, каждое многоточие посреди слова, каждую кнопку, чья надпись теперь стоит под её же границей.
Кодировка и покрытие шрифта: третье. Диакритика и нелатинские знаки в псевдолокали обнажают отсутствующие глифы, поломанную работу с байтами и шрифты, никогда не собиравшиеся под рынки, куда вы входите.
И четвёртое, про которое забывают: всё, что не интерфейс. Шаблоны писем, экспорт в PDF, пуш-уведомления, страницы ошибок, текст внутри диаграмм, имена скачиваемых файлов. Всё это чаще всего живёт вне основной таблицы строк, и именно там запуск оказывается в неловком положении.
Чего она не ловит
Она ничего не говорит о том, хорош ли перевод. Псевдолокализация, инженерная проверка, а не лингвистическая, и считать чистый прогон доказательством качества: ошибка категории.
Она также сама по себе не видит склейки строк. Фраза, собранная из трёх кусков, псевдолокализуется идеально и останется непереводимой на японский. Чтобы их найти, нужен человек, читающий таблицу строк: отдельный час, который стоит запланировать.
Ещё три вещи остаются для неё невидимыми. Правила множественного числа: язык с шестью формами не сломается, пока не придёт настоящий перевод. Сортировка и сопоставление, которые следуют локали, а не строке. И двунаправленная вёрстка: псевдолокаль, только расставляющая диакритику по латинице, ничего не скажет о том, переживёт ли интерфейс зеркалирование. Если в планах арабский или иврит, добавьте вторую псевдолокаль с обратным направлением и выясните это сейчас.
Когда её запускать
Дважды. Первый раз, как только извлечение строк вообще заработало, когда зашитый текст дёшево вытащить и никто ещё не построил вёрстку вокруг длины английского слова. Второй раз, на релиз-кандидате, потому что второй прогон ловит всё добавленное за недели, когда о локализации никто не думал.
Лучше, чем дважды, постоянно. Псевдолокаль в матрице сборки и сравнение скриншотов по основным сценариям превращают это из события в проверку, и проверка падает на том самом пулл-реквесте, что внёс зашитую строку, а не за неделю до запуска.
Команды, которые это принимают, перестают иметь этап локализации и начинают иметь привычку. Разница видна в том, что релизы выходят в один день на всех рынках, а не сначала на английском и потом с извинениями.