Локалізація реєстру. Портали користувачів.

Загальний опис

Адміністратор реєстру повинен мати можливість обрати мову для порталів користувачів.

Актори та ролі користувачів

  • Адміністратор платформи

  • Технічний адміністратор реєстру

  • Посадова особа

  • Отримувач послуг

Функціональні сценарії

  • Управління налаштуванням мови реєстру у control-plane-console.

  • Перегляд та використання інтерфейсу citizen-portal та officer-portal в обраній мові.

Загальні принципи та положення

  • Мову обирає технічний адміністратор реєстру для всіх користувачів порталів.

  • Застосування змін потребує оновлення файлів у git та пере розгортання кабінетів та сервісів

  • Бекенд та фронтенд додатки зберігають власні JSON файли перекладу окремо

Компоненти системи та їх призначення в рамках дизайну рішення

У даному розділі наведено перелік компонент системи, які задіяні або потребують змін в рамках реалізації функціональних вимог.

Підсистема Компонент Опис змін

Сервіс управління процесами користувачів

user-process-management

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Сервіс управління задачами користувачів

user-task-management

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Сервіс нотифікацій

notifications-service

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Сервіс управління налаштуваннями

user-settings-service

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Сервіс валідації форм

form-submission-validation

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Сервіс документів

document-service

Додати локалізацію з використанням JSON файлів (зберігаються у сервісі) та локалі з env змінної.

Портали користувачів

common-web-app

Нормалізувати переклади переклавши усі в один файл. Використовувати локаль с Config Map для вибору мови.

Ключові сценарії

Зміна мови реєстру

  • перехід у налаштування реєстру

  • перехід на вкладку Загальне

  • на цій вкладці обрати нову мову із запропонованих та зберегти зміни

  • прийняти зміни та дочекатись редеплою порталів з новою env змінною та Config Map.

  • сторінки тепер завантажуються новою мовою

Міграція існуючих реєстрів при оновленні

Усі існуючи реєстри не будуть мати змінної у values.yaml. Для цього випадку значення за замовчуванням - українська мова (uk). Таким чином ніяких змін для міграції вносити не потрібно.

Високорівневий план розробки

Технічні експертизи

  • Devops

  • BE (Java)

  • FE (react)

Дизайн рішення

localization user portals
Figure 1. Передача мови платформи
:registry/deploy-templates/values.yaml
global:
  language: uk
environment.js
const ENVIRONMENT_VARIABLES = {
  language: 'uk'
  /*...*/
};
user-process-management/deploy-templates/templates/deployment.yaml
env:
    - name: LANGUAGE
      value: {{ .Values.global.language }}

План розробки

  • Зробити змінну обраної на реєстрі мови доступною:

    • для BE сервісах (список вгорі) як environment variable (Devops).

    • частиною Config Map (environment.js) у common-web-app для officer та citizen (Devops).

  • На citizen-portal та officer-portal:

    • Нормалізувати переклади та перекласти їх усі в один файл

    • Сформувати файл з англомовними перекладами

    • Для кожної мови використовувати відповідну локаль (uk - Україна, en - United States)

    • Значення мови за замовчуванням у разі порожнього значення з Config Map - uk

  • На BE сервісах (список вгорі):

    • додати JSON файли з перекладом (по одній на мову)

    • Спираючись на мову з environment variable додати переклад до усіх текстів які може побачити користувач (enum, помилки тощо), а також додати логіку локалі до валідаційних перевірок, форматів дат тощо.

    • Значення мови за замовчуванням у разі порожнього значення env змінної - uk

    • Для кожної мови використовувати відповідну локаль (uk - Україна, en - United States)

Особливості файлів з перекладом

  • Бекенд та фронтенд використовують власні файли перекладу у форматі JSON. По одному файлу на кожну мову.

  • Файли перекладу розташовані у репозиторії common-web-app для citizen та officer portal та у відповідних репозиторіях сервісів

  • У citizen та officer portal (розташовані у common-web-app) треба переформатувати файли перекладу та скласти усі тексти в один файл

Що саме перекладати у сервісах?

  • user-process-management - errors, enum

  • user-task-management - errors

  • notifications-service - errors

  • documents-service - errors

  • user-settings-service - errors

  • form-submission-validation - formio errors

Поза скоупом

  • Користувачі обирають свою індивідуальну мову інтерфейсу

  • Локалізація пошуку у геомодулі