Локалізація реєстру. Портали користувачів.
Актори та ролі користувачів
-
Адміністратор платформи
-
Технічний адміністратор реєстру
-
Посадова особа
-
Отримувач послуг
Функціональні сценарії
-
Управління налаштуванням мови реєстру у 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 для вибору мови. |
Міграція існуючих реєстрів при оновленні
Усі існуючи реєстри не будуть мати змінної у values.yaml
. Для цього випадку значення за замовчуванням - українська мова (uk
). Таким чином ніяких змін для міграції вносити не потрібно.
Високорівневий план розробки
Дизайн рішення
global:
language: uk
const ENVIRONMENT_VARIABLES = {
language: 'uk'
/*...*/
};
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) треба переформатувати файли перекладу та скласти усі тексти в один файл