Тема 15. Интернационализация и локализация

Содержание

  1. Локали
  2. Локализация данных
    1. Создание ResourceBundle
    2. Загрузка ResourceBundle
    3. Использование ResourceBundle
  3. Форматирование
    1. Форматирование чисел
    2. Форматирование дат и времени
    3. Форматирование сообщений
  4. Работа с текстом
    1. Сравнение строк
    2. Разбиение текста
    3. Запись текста

Слайды

HTML

Примеры

zip

Домашнее задание 13. Статистика текста

  1. Создайте приложение TextStatistics, анализирующее тексты на различных языках.
    1. Аргументы командной строки:
      • локаль текста,
      • локаль вывода,
      • файл с текстом,
      • файл отчета.
    2. Поддерживаемые локали текста: все локали, имеющиеся в системе.
    3. Поддерживаемые локали вывода: русская и английская.
    4. Файлы имеют кодировку UTF-8.
    5. Подсчет статистики должен вестись по следующим категориям:
      • предложения,
      • слова,
      • числа,
      • деньги,
      • даты.
    6. Для каждой категории должна собираться следующая статистика:
      • число вхождений,
      • число различных значений,
      • минимальное значение,
      • максимальное значение,
      • минимальная длина,
      • максимальная длина,
      • среднее значение/длина.
    7. Пример отчета:
      Анализируемый файл "input.txt".
      Сводная статистика
          Число предложений: 30.
          Число слов: 117.
          Число чисел: 37.
          Число сумм: 3.
          Число дат: 3.
      Статистика по предложениям
          Число предложений: 30 (30 различных).
          Минимальное предложение: "Анализируемый файл "input.txt".".
          Максимальное предложение: "Число чисел: 37.".
          Минимальная длина предложения: 13 ("Число дат: 3.").
          Максимальная длина предложения: 109 ("GK: если сюда поставить реальное предложение, то процесс не сойдётся").
          Средняя длина предложения: 37,333.
      Статистика по словам
          Число слов: 117 (48 различных).
          Минимальное слово: "GK".
          Максимальное слово: "языках".
          Минимальная длина слова: 1 ("с").
          Максимальная длина слова: 15 ("стабилизировать").
          Средняя длина слова: 6,641.
      Статистика по числам
          Число чисел: 37 (22 различных).
          Минимальное число: -12345,67.
          Максимальное число: 12345,67.
          Среднее число: 208,847.
      Статистика по суммам денег
          Число сумм: 3 (3 различных).
          Минимальная сумма: 100,00 ₽.
          Максимальная сумма: 345,67 ₽.
          Средняя сумма: 222,83 ₽.
      Статистика по датам
          Число дат: 3 (3 различных).
          Минимальная дата: 17 мая 2024 г..
          Максимальная дата: 30 мая 2024 г..
          Средняя дата: 23 мая 2024 г..
      
  2. Вы можете рассчитывать на то, что весь текст помещается в память.
  3. При выполнении задания следует обратить внимание на:
    1. Декомпозицию сообщений для локализации.
    2. Согласование сообщений по роду и числу.
  4. Напишите тесты, проверяющие вышеуказанное поведение приложения.
    • Для реализации тестов рекомендуется использовать JUnit (Tutorial). Множество примеров использования можно найти в тестах.
    • Если вы знакомы с другим тестовым фреймворком (например, TestNG), то можете использовать его.
    • Нельзя использовать самописные фреймворки и тесты, запускаемые через main.
  5. Приложение и тесты должны находится в пакете info.kgeorgiy.ja.*.i18n и его подпакетах.