Блокировка ключей

Обновлено: в прошлом квартале · 1 мин чтения

Устаревшее

Эта документация охватывает устаревший CLI (v0). Актуальная версия — CLI v1. Перейти к актуальной документации CLI

Заблокированные ключи копируются из исходного файла во все целевые файлы без перевода. CLI Lingo.dev полностью исключает их из процесса перевода и сохраняет исходные значения во всех языках.

Конфигурация#

Добавьте lockedKeys в bucket в i18n.json:

json
{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "lockedKeys": ["brand/name", "config/apiUrl", "system/version"]
    }
  }
}

Как это работает#

Возьмём такой исходный файл:

json
{
  "welcome": "Welcome to our platform",
  "brand": {
    "name": "Lingo.dev"
  },
  "config": {
    "apiUrl": "https://api.example.com"
  }
}

С "lockedKeys": ["brand/name", "config/apiUrl"] целевой файл для испанского языка будет таким:

json
{
  "welcome": "Bienvenido a nuestra plataforma",
  "brand": {
    "name": "Lingo.dev"
  },
  "config": {
    "apiUrl": "https://api.example.com"
  }
}

Переводится только welcome. Заблокированные ключи сохраняют исходные значения без изменений.

Нотация путей к ключам#

Используйте прямой слеш (/), чтобы обращаться к вложенным ключам:

json
{ "lockedKeys": ["system/engine/component"] }

Используйте звёздочку (*), чтобы охватить сразу несколько ключей:

json
{ "lockedKeys": ["navigation/menuItems/*"] }

Ключи, в названии которых есть точки, тоже работают естественно — modules/ai.translation указывает на ключ "ai.translation" внутри "modules".

Блокировка ключей vs. игнорирование ключей#

Блокировка ключейИгнорирование ключей
Появляется в целевых файлахДа — с исходным значениемНет
Когда использоватьНазвания брендов, технические идентификаторы, URLОтладочные строки, внутренние флаги, тестовые данные

Что дальше#