Приведите примеры подходов для тестирования локализации.qa-141

1. Лингвистическое тестирование

1.1 Проверка перевода контента

- **Полнота перевода**: отсутствие строк на языке оригинала
- **Контекстная корректность**: проверка терминов в интерфейсе (например, "File" → "Файл" в RU)
- **Динамические строки**: подстановка переменных ("{count} files" → "{count} файлов")
- **Запрещенные символы**: проверка поддержки Unicode

1.2 Особые случаи

- **Множественные формы**:
  - RU: 1 файл, 2 файла, 5 файлов
  - AR: разные формы для 0, 1, 2, 3-10, >10
- **Гендерные согласования**: в некоторых языках (HE, FR)

2. Функциональное тестирование локализации

2.1 Критические области проверки

| Область             | Примеры тестов                     |
|---------------------|-----------------------------------|
| Форматы дат/времени | 12/31/2023 vs 31.12.2023         |
| Валюты              | $1,000.00 vs 1 000,00 €          |
| Сортировка          | Алфавитный порядок с учетом локали|
| Кодировки           | Отображение спецсимволов (ä, 漢字)|

2.2 Технические проверки

- Длина строк (немецкие слова длиннее английских в среднем на 30%)
- Ориентация текста (RTL для арабского/иврита)
- Локализованные регулярные выражения
- Поддержка местных API (платежи, карты)

3. Визуальное тестирование

3.1 UI-проверки

- **Обрезка текста**: кнопки, заголовки, меню
- **Макет**: адаптация под длинные строки
- **Локализованные изображения**: отсутствие оскорбительного контента
- **Шрифты**: поддержка всех символов

3.2 Инструменты

- Pseudolocalization (замена текста на символы с проверкой макета)
- Screenshot testing (Applitools, Percy)
- CSS-проверки для RTL-языков

4. Культурная адаптация

4.1 Контент-аудит

- Цвета (белый = траур в некоторых культурах)
- Символы (например, жест "ОК" оскорбителен в Бразилии)
- Примеры имен/адресов (корректность форматов)
- Праздники и традиции

4.2 Юридические требования

- GDPR для EU
- Возрастные рейтинги
- Локализованные юридические тексты

5. Автоматизированные подходы

5.1 Техники автоматизации

- Сравнение ключей переводов с эталонной локализацией
- Парсинг .po/.resx файлов на отсутствующие переводы
- Регрессионные тесты с подменой локалей

5.2 Пример кода для проверки

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' # Проверка отсутствия английского

6. Стратегии тестирования

6.1 Приоритезация

1. Основные языки (80% аудитории)
2. Локали с особыми требованиями (RTL, сложные скрипты)
3. Остальные языки

6.2 Ресурсосберегающие методы

- Локализованные smoke-тесты
- Фокус-группы с носителями языка
- Crowdsourcing для редких языков

Резюмируем:

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