На что обращать внимание при тестировании локализации сайта для разных стран?
Что проверяют
Понимаете ли вы, что локализация это не перевод строк, а поведение продукта в другой стране: форматы, правила языка, юридические требования. И умеете ли строить проверку так, чтобы не прокликивать каждый язык целиком руками.
Как отвечать
Сначала развести два слоя. Интернационализация это готовность кода: строки вынесены, форматы берутся из локали, фразы не склеиваются из кусков. Локализация это уже сами переводы и адаптация. Баги живут в обоих слоях, и проверять надо оба.
Что смотреть по списку:
- форматы: дата и время, разделитель дробной части и групп разрядов, первый день недели, единицы измерения, валюта и её позиция относительно суммы;
- множественное число: в русском три формы, в других языках бывает одна или шесть, поэтому счётные фразы собираются правилами языка, а не условием на единицу;
- длина строк: перевод обычно длиннее оригинала, текст ломает кнопки, таблицы и меню;
- направление письма: арабский и иврит требуют зеркального макета, а не только атрибута направления;
- ввод и сортировка: нелатинские символы в полях, поиск, порядок сортировки по локали, апостроф и дефис в фамилии;
- данные страны: телефон, индекс, адрес, имя одним полем или двумя, способы оплаты, часовой пояс;
- юридическое: обязательные согласия, возрастные ограничения, требования к текстам.
Из инструментов назвать псевдолокализацию: она ловит захардкоженные строки и обрезание текста ещё до того, как появились переводы. Плюс проверку полноты словарей в CI и скриншотные тесты вёрстки.
Где спотыкаются
Сводят всё к вычитке перевода. Текст правильный, а кнопка обрезана, дата в чужом формате и цена с точкой вместо запятой.
Второе: собирают фразы конкатенацией. «Найдено» плюс число плюс «файлов» переводится только на язык с тем же порядком слов и без падежей, в остальных фраза рассыпается.
Третье: проверяют язык, но не окружение. Локаль берётся из профиля, формат даты из настроек системы, часовой пояс из браузера, и на одной тестовой машине с одной локалью эти расхождения не воспроизводятся.