- **Полнота перевода**: отсутствие строк на языке оригинала
- **Контекстная корректность**: проверка терминов в интерфейсе (например, "File" → "Файл" в RU)
- **Динамические строки**: подстановка переменных ("{count} files" → "{count} файлов")
- **Запрещенные символы**: проверка поддержки Unicode
- **Множественные формы**:
- RU: 1 файл, 2 файла, 5 файлов
- AR: разные формы для 0, 1, 2, 3-10, >10
- **Гендерные согласования**: в некоторых языках (HE, FR)
| Область | Примеры тестов |
|---------------------|-----------------------------------|
| Форматы дат/времени | 12/31/2023 vs 31.12.2023 |
| Валюты | $1,000.00 vs 1 000,00 € |
| Сортировка | Алфавитный порядок с учетом локали|
| Кодировки | Отображение спецсимволов (ä, 漢字)|
- Длина строк (немецкие слова длиннее английских в среднем на 30%)
- Ориентация текста (RTL для арабского/иврита)
- Локализованные регулярные выражения
- Поддержка местных API (платежи, карты)
- **Обрезка текста**: кнопки, заголовки, меню
- **Макет**: адаптация под длинные строки
- **Локализованные изображения**: отсутствие оскорбительного контента
- **Шрифты**: поддержка всех символов
- Pseudolocalization (замена текста на символы с проверкой макета)
- Screenshot testing (Applitools, Percy)
- CSS-проверки для RTL-языков
- Цвета (белый = траур в некоторых культурах)
- Символы (например, жест "ОК" оскорбителен в Бразилии)
- Примеры имен/адресов (корректность форматов)
- Праздники и традиции
- GDPR для EU
- Возрастные рейтинги
- Локализованные юридические тексты
- Сравнение ключей переводов с эталонной локализацией
- Парсинг .po/.resx файлов на отсутствующие переводы
- Регрессионные тесты с подменой локалей
pytest.mark.parametrize('locale', ['fr_FR', 'ja_JP', 'ar_AE'])
def test_ui_localization(browser, locale):
browser.set_language(locale)
assert browser.get_text('welcome.header') != 'Welcome' # Проверка отсутствия английского
1. Основные языки (80% аудитории)
2. Локали с особыми требованиями (RTL, сложные скрипты)
3. Остальные языки
- Локализованные smoke-тесты
- Фокус-группы с носителями языка
- Crowdsourcing для редких языков
эффективное тестирование локализации требует комбинации лингвистических, функциональных и культурных проверок. Ключевой принцип — тестировать не просто перевод, а культурную адаптацию продукта с учетом технических ограничений и особенностей целевой аудитории.