Локализация

Для того, чтобы включить в приложении поддержку нескольких языков необходимо в файле проекта project.yaml указать в секции l10n, какие языки будет поддерживать приложение.

Например, для поддержки русского, английского и китайского языков

app-name:
  features:
  - beSqlQueries
  - eventDbLogging
  l10n: [en,ru,zh]
...

Далее необходимо создать индивидуальный файл с локализацией под каждый язык в папке src/l10n

📁 app-name
├── 📁 src
│   ├── 📄 security.yaml 
│   ├── 📄 connectionProfiles.local.yaml 
│   ├── 📄 connectionProfiles.remote.yaml 
│   └── 📁 l10n
│       ├── 📄 en.yaml
│       ├── 📄 ru.yaml
│       └── 📄 zh.yaml
├── 📄 README.md
├── 📄 package.json
└── 📄 .gitignore

Файл локализации имеет следующую структуру. Все элементы внутри entities являются опциональными

ru:
  entities:
  - index:
    - topics: page
      entries:
      - title: Наименование приложения
      - description: Описание приложения
    - topics: viewName
      entries:
      - All records: Все записи
  - frontend.l10n:
    - topics: page
      entries:
      - fio: Ф.И.О.
  - messages.l10n:
    - topics: exception
      entries:
      - 'Internal error occurred: $1': 'Произошла внутренняя ошибка: $1'
    - topics: validation
      entries:
      - Please enter only digits.: Здесь должны быть только цифры.
    - topics: info
      entries:
      - '$1 record will be deleted': '$1 запись будет удалена'
  - query.jsp:
    - topics: page
      entries:
      - Active To: Дата окончания
      - Active From: Дата начала
  - operation.jsp:
    - topics: page
      entries:
      - activeFrom: Дата окончания
      - activeTo: Дата начала
  - index:
    - topics: operationName
      entries:
      - Insert: Добавить
      - Edit: Редактировать
      - Delete: Удалить
      - Filter: Фильтр
  - default:
    - topics: operationName
      entries:
      - Insert: Добавить
      - Edit: Редактировать
      - Delete: Удалить
      - Filter: Фильтр
  - _system_:
    - topics: viewName
      entries:
      - Entities: Сущности
    - topics: Entities
      entries:
      - Name: Название
      - Type: Тип
  - someEntity1:
    - topics: displayName
      entries:
      - displayName: Отображаемое имя сущности 1
    - topics: viewName
      entries:
      - Query Name 1: Имя представления 1
    - topics: operationName
      entries:
        - Operation name 1: Имя операции 1
    - topics: '@AllQueries'
      entries:
      - Column 1: Колонка 1 
    - topics: 'All records'
      entries:
      - Column 2: Колонка 2 
    - topics: 
      - 'All records'
      - 'Some Other Query'
      entries:
      - Column 3: Колонка 3 
    - topics: 
      - Insert
      - Edit
      - Filter
      entries:
      - field1: Строка ввода 1
      - field2: Строка ввода 2