Игнорирование ключей
Lingo.dev CLI позволяет игнорировать определённые ключи перевода, чтобы они полностью исключались из процесса перевода. Игнорируемые ключи не копируются в целевые файлы и остаются нетронутыми во время операций CLI.
Когда вы игнорируете ключи, CLI полностью пропускает их при обнаружении контента и генерации перевода.
Настройка игнорирования ключей
Добавьте ignoredKeys
в конфигурацию вашего bucket в файле i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
}
}
}
Массив ignoredKeys
использует обозначение с косой чертой (/
) для указания вложенных ключей.
Как работает игнорирование ключей
Во время обработки перевода Lingo.dev CLI:
- Определяет игнорируемые ключи из вашей конфигурации
- Исключает их из обнаружения контента — игнорируемые ключи никогда не обрабатываются
- Пропускает их в целевых файлах — игнорируемые ключи не появляются в сгенерированных переводах
- Сохраняет разделение между контентом для разработки и производства
Пример рабочего процесса:
// locales/en.json (исходный файл)
{
"welcome": "Welcome to our platform",
"system": {
"component": "Lingo.dev CLI",
"version": "1.0.0"
},
"internal": {
"debug": "Debug mode enabled",
"testData": "Sample test content"
}
}
С конфигурацией игнорируемых ключей:
{
"ignoredKeys": ["internal/debug", "internal/testData"]
}
Сгенерированный перевод на испанский:
// locales/es.json (сгенерированный файл)
{
"welcome": "Bienvenido a nuestra plataforma",
"system": {
"component": "Lingo.dev CLI",
"version": "1.0.0"
}
}
Переводятся только неигнорируемые ключи. Весь раздел internal
исключён из целевых файлов.
Вложенные пути ключей
Используйте обозначение с косой чертой (/
), чтобы игнорировать ключи на любой глубине:
{
"ignoredKeys": [
"development/logging/level",
"testing/mock/data",
"admin/internal/config"
]
}
Это обозначение работает с сложными вложенными структурами:
// Исходная структура
{
"development": {
"logging": {
"level": "verbose"
}
}
}
Путь development/logging/level
исключает эту конфигурацию из перевода.
Ключи с точками
Обозначение с косой чертой обрабатывает ключи, содержащие точки в их названиях:
// Исходные данные с ключами, содержащими точки
{
"dev": {
"api.mock": "Мок API включен",
"cache.clear": "Очистить кэш при запуске"
}
}
Игнорируйте эти ключи с помощью:
{
"ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}
Несколько типов хранилищ
Разные форматы файлов могут иметь разные игнорируемые ключи:
{
"buckets": {
"json": {
"include": ["locales/[locale].json"],
"ignoredKeys": ["internal/debug", "dev/settings"]
},
"yaml": {
"include": ["translations/[locale].yml"],
"ignoredKeys": ["test/data", "admin/config"]
}
}
}
Каждый тип хранилища поддерживает собственный список игнорируемых ключей в зависимости от структуры содержимого.
Игнорирование ключей vs Блокировка ключей
Игнорирование ключей и блокировка ключей имеют разные цели:
Игнорирование ключей (ignoredKeys
):
- Ключи полностью исключаются из процесса перевода
- Игнорируемые ключи не появляются в целевых файлах
- Используется для разработки, тестирования или внутреннего контента, который не должен переводиться
Блокировка ключей (lockedKeys
):
- Ключи включаются в процесс перевода, но их значения остаются неизменными
- Заблокированные ключи появляются в целевых файлах с идентичными исходными значениями
- Используется для технических идентификаторов, названий компонентов или значений, которые должны оставаться неизменными
Пример сравнения:
// Исходный файл
{
"welcome": "Добро пожаловать",
"system": {
"component": "Lingo.dev Engine"
},
"internal": {
"debug": "Отладка включена"
}
}
// Конфигурация
{
"lockedKeys": ["system/component"],
"ignoredKeys": ["internal/debug"]
}
// Сгенерированный целевой файл
{
"welcome": "Добро пожаловать",
"system": {
"component": "Lingo.dev Engine"
}
// internal/debug полностью отсутствует
}