Локалізація control-plane
Загальний опис
Адміністратор повинен мати можливість обрати мову для інтерфейсів платформи. Наразі це тільки control-plane-console.
Функціональні сценарії
-
Управління налаштуванням мови платформи.
-
Перегляд та використання інтерфейсу control plane console у обраній мові.
Загальні принципи та положення
-
Мову обирає адміністратор платформи для всіх користувачів control-plane-console.
-
Користувачі control-plane-console не можуть змінювати себе мову індивідуально.
-
Застосування змін потребує оновлення файлів (helm конфігурація) у git та пере-розгортання cp консолі
-
Зараз необхідно додати дві мови - англійську та українську
-
За замовчуванням обрано англійську
-
Для існуючих екземплярів платформи значення мови не буде обрано. Необхідно інтерпретувати це значення як українську для зворотної сумісності.
-
-
Кожній мові відповідає своя локаль. Локаль впливає на формати дат тощо.
-
Для української мови - Україна.
-
Для англійської - Сполучені Штати.
-
-
Переклади зберігаються у вигляді файлів у JSON-форматі стандартизованої структури
Компоненти системи та їх призначення в рамках дизайну рішення
У даному розділі наведено перелік компонент системи, які задіяні або потребують змін в рамках реалізації функціональних вимог.
Підсистема | Компонент | Опис змін |
---|---|---|
Підсистема управління Платформою та Реєстрами |
control-plane-console |
Розширення інтерфейсу управління платформою налаштуванням мови. Додавання механізму зміни мови у control-plane-console. Фактичний переклад на дві мови - англійська та українська. |
Сценарії використання (user flow)
Міграція існуючих платформ при оновленні
Усі існуючи екземпляри платформи не будуть мати змінної у values.yaml
. Для цього випадку значення за замовчуванням - українська мова (uk
). Таким чином ніяких змін для міграції вносити не потрібно.
Технічне рішення
Високорівневий дизайн рішення
global:
language: uk
env:
- name: LANGUAGE
value: {{ .Values.global.language }}
План розробки
-
Додати нову вкладку в налаштування платформи -
Загальне
-
Додати на цю вкладку можливість вибору мови та обробити запит на оновлення цієї змінної (у
values.yaml
)-
Доступні дві мови - English (en) та Українська (uk)
-
Зберігати необхідно саме HTML language codes
-
-
Зробити змінну обраної мови доступною для control-plane-console як environment variable (control-plane-console вже зараз пере розгортається після змін у gerrit платформи).
-
Для кожної мови використовувати відповідну локаль (uk - Україна, en - United States)
-
Значення мови за замовчуванням у разі порожнього значення env змінної -
uk
-
З використанням бібліотеки
goi18n
додати механізм перемикання мов у golang додаток. Файли перекладів зберігаються у json. -
Трансформувати усі тексти які бачить користувач у селектори перекладу. Перетворення стосується як запитів на golang backend так і сторінок які рендеряться з використанням шаблонізатора
go
-
Додати у vue frontend бібліотеку перекладу (
vue-i18n
) та механізм перемикання перекладів на основі обраної мови (потрапляє у додаток із шаблонізатораgo
). Json файли перекладів ті ж самі що і для golang. -
Трансформувати усі тексти vue frontend які бачить користувач у селектори перекладу.