Skip to main content

Локалізація

Порядок перекладу

  1. Налаштовуємо
  2. Автоперекладаємо модулі
  3. MLS, VUE
  4. Тест

Налаштування

  1. :project/config.json - {"langs":["ua","en","de"]}
  2. admin - vs-menu-bar або просто href -> /en /ua
  3. site - просто href -> /en /ua

Автопереклад

  1. /api-user/dev-locale/:module/ua - формує файл локалізації
  2. /api-user/dev-locale/:module/ua/en - перекладає

Для перекладу треба ключ прописати в configServer

{
"api_keys": {
"google_cloud_translate": "key"
}
}

/* Функції funcs*/

funcs.locale('test', { lang, prefix: 'menu' }) // вернути локалізовану назву
funcs.translate(['phrase 1','phrase 2'], targetLocale, sourceLocale); // вернути переклад
funcs.translate(['phrase 1','phrase 2'], 'en', 'ua');

Переклад програми

модуль - i18n

складові i18n - в кожному модулі :module/i18n/ua.yml - автоматом шаблони

???+info "Структура yaml"

Структура файлу yaml
```yaml

# menu
menu.site.news: Новини
menu.site.mail_subscribe: Підписка на новини

# form
form.add_charg_contract.charge_num: "Номер рахунку"
form.add_charg_contract.charge_date: "Дата нарахування"

# table
data_destruction.account_user.table.user_id: Користувачі
data_destruction.account_user.table.region: Доступ до області

# cls
cls.air_conditioning_sys_type.1: Однозональна
cls.air_conditioning_sys_type.2: Багатозональна

# setting
# dashboard
```

MLS - template

для текстових в шаблонах

{{mls data prefix="contract.table"}} - візьме переклад з колонки
{{mls ua="зберегти" en="save"}} - візьме переклад з колонки

vue - i18n

???info "Vue i18n example"

Vue i18n example
```js
const i18n = new VueI18n({
locale: window.lang || "ua",
messages: {
ua:{

},
en: {
interface: {
home: "Home",
close: "Close",
community_title: "Community code",
community_name: "Community name",
},
list: {
title: "Table list",
},
},
```

Переклад даних та сайту

  1. табличка з колонкою lang site.page_node
  2. в формі має бути lang:true
  3. config:{"langs":["ua","en"]} - в налаштуваннях декілька мов
  4. Дані сайту підтягуються автоматично через lang='en'
  5. ContentList використовувати query lang=''

Seo

  1. Головна мова db.lang або ua - посилання без мови. Головна - / , /contact , /map
  2. Для мов /en/home, /en/map
  3. в посиланнях треба використовувати {{prefix}}