Заблокированные ключи копируются из исходного файла во все целевые файлы без перевода. CLI Lingo.dev полностью исключает их из процесса перевода и сохраняет исходные значения во всех языках.
Конфигурация#
Добавьте lockedKeys в bucket в i18n.json:
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"lockedKeys": ["brand/name", "config/apiUrl", "system/version"]
}
}
}Как это работает#
Возьмём такой исходный файл:
{
"welcome": "Welcome to our platform",
"brand": {
"name": "Lingo.dev"
},
"config": {
"apiUrl": "https://api.example.com"
}
}С "lockedKeys": ["brand/name", "config/apiUrl"] целевой файл для испанского языка будет таким:
{
"welcome": "Bienvenido a nuestra plataforma",
"brand": {
"name": "Lingo.dev"
},
"config": {
"apiUrl": "https://api.example.com"
}
}Переводится только welcome. Заблокированные ключи сохраняют исходные значения без изменений.
Нотация путей к ключам#
Используйте прямой слеш (/), чтобы обращаться к вложенным ключам:
{ "lockedKeys": ["system/engine/component"] }Используйте звёздочку (*), чтобы охватить сразу несколько ключей:
{ "lockedKeys": ["navigation/menuItems/*"] }Ключи, в названии которых есть точки, тоже работают естественно — modules/ai.translation указывает на ключ "ai.translation" внутри "modules".
Блокировка ключей vs. игнорирование ключей#
| Блокировка ключей | Игнорирование ключей | |
|---|---|---|
| Появляется в целевых файлах | Да — с исходным значением | Нет |
| Когда использовать | Названия брендов, технические идентификаторы, URL | Отладочные строки, внутренние флаги, тестовые данные |
