Ключи перевода

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

Устаревшее

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

CLI Lingo.dev поддерживает четыре механизма управления на уровне ключей, которые определяют, как отдельные ключи перевода ведут себя при обработке. У каждого — своя задача:

МеханизмПоле конфигурацииПоведение
Блокировка ключейlockedKeysКопирует исходные значения во все целевые языки без перевода. В целевых файлах ключи появляются с теми же значениями.
Игнорирование ключейignoredKeysПолностью исключает ключи из обработки. В целевых файлах они не появляются.
Сохранение ключейpreservedKeysОдин раз инициализирует ключи из исходного текста, а затем защищает их от автоматических обновлений. Подходит для контента, который требует ручного перевода.
Переименование ключейАвтоматическиОпределяет, когда ключи были переименованы, и сохраняет существующие переводы. Дополнительная конфигурация не требуется.

Что и когда использовать#

Блокируйте ключ, если значение должно оставаться одинаковым во всех языках — например, названия брендов, технические идентификаторы или значения Конфигурация:

json
{ "lockedKeys": ["brand/name", "config/apiUrl"] }

Игнорируйте ключ, если его вообще не должно быть в целевых файлах — например, строки отладки, внутренние флаги или тестовые данные:

json
{ "ignoredKeys": ["internal/debug", "dev/testData"] }

Сохраняйте ключ, если ему нужен ручной перевод — например, юридические тексты, материалы по соблюдению требований или маркетинговые тексты, которым нужна человеческая проверка:

json
{ "preservedKeys": ["legal/privacy", "legal/terms"] }

Переименование работает автоматически — CLI определяет, когда ключ изменился, но его содержимое осталось тем же, и переносит существующий перевод без повторного перевода.

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

Во всех массивах ключей для вложенных путей используется прямая косая черта (/), а для подстановок — звёздочка (*):

json
{
  "lockedKeys": ["brand/name"],
  "ignoredKeys": ["internal/*"],
  "preservedKeys": ["legal/privacy/full"]
}

Ключи с точками в именах обрабатываются естественным образом — прямая косая черта разделяет уровни иерархии, поэтому modules/ai.translation корректно указывает на ключ "ai.translation" внутри объекта "modules".

Что дальше#