CLI Lingo.dev поддерживает четыре механизма управления на уровне ключей, которые определяют, как отдельные ключи перевода ведут себя при обработке. У каждого — своя задача:
| Механизм | Поле конфигурации | Поведение |
|---|---|---|
| Блокировка ключей | lockedKeys | Копирует исходные значения во все целевые языки без перевода. В целевых файлах ключи появляются с теми же значениями. |
| Игнорирование ключей | ignoredKeys | Полностью исключает ключи из обработки. В целевых файлах они не появляются. |
| Сохранение ключей | preservedKeys | Один раз инициализирует ключи из исходного текста, а затем защищает их от автоматических обновлений. Подходит для контента, который требует ручного перевода. |
| Переименование ключей | Автоматически | Определяет, когда ключи были переименованы, и сохраняет существующие переводы. Дополнительная конфигурация не требуется. |
Что и когда использовать#
Блокируйте ключ, если значение должно оставаться одинаковым во всех языках — например, названия брендов, технические идентификаторы или значения Конфигурация:
{ "lockedKeys": ["brand/name", "config/apiUrl"] }Игнорируйте ключ, если его вообще не должно быть в целевых файлах — например, строки отладки, внутренние флаги или тестовые данные:
{ "ignoredKeys": ["internal/debug", "dev/testData"] }Сохраняйте ключ, если ему нужен ручной перевод — например, юридические тексты, материалы по соблюдению требований или маркетинговые тексты, которым нужна человеческая проверка:
{ "preservedKeys": ["legal/privacy", "legal/terms"] }Переименование работает автоматически — CLI определяет, когда ключ изменился, но его содержимое осталось тем же, и переносит существующий перевод без повторного перевода.
Нотация путей ключей#
Во всех массивах ключей для вложенных путей используется прямая косая черта (/), а для подстановок — звёздочка (*):
{
"lockedKeys": ["brand/name"],
"ignoredKeys": ["internal/*"],
"preservedKeys": ["legal/privacy/full"]
}Ключи с точками в именах обрабатываются естественным образом — прямая косая черта разделяет уровни иерархии, поэтому modules/ai.translation корректно указывает на ключ "ai.translation" внутри объекта "modules".
