Lingo.dev + .jsonc (JSON с комментариями)
Lingo.dev CLI переводит файлы JSONC (JSON с комментариями), поддерживая все стандартные функции JSON, а также комментарии и завершающие запятые. CLI извлекает комментарии как подсказки для перевода, сохраняет точное форматирование, умно обрабатывает вложенные структуры и обрабатывает только изменённый контент для экономии затрат.
Быстрая настройка
Создайте конфигурационный файл i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"jsonc": {
"include": ["locales/[locale].jsonc"]
}
}
}
Напоминание: [locale]
— это плейсхолдер, который должен оставаться в конфигурации буквально, так как он заменяется на фактический язык во время выполнения CLI.
Перевод всего
npx lingo.dev@latest i18n
Автоматически обрабатывает вложенные структуры, извлекает комментарии как подсказки для перевода и обновляет только изменённый контент.
Подсказки для перевода на основе комментариев
Основное преимущество JSONC — использование комментариев для предоставления контекста перевода:
{
// Этот комментарий предоставляет контекст для приветствия
"greeting": "Hello, world!",
"button": "Click me" /* Это объясняет назначение кнопки */,
/*
* Многострочный комментарий для сложного контекста
* с объяснением культурных нюансов
*/
"welcome": "Welcome to our app"
}
Комментарии автоматически извлекаются как подсказки для улучшения качества перевода и предоставления контекста AI-переводчикам.
Умное сохранение структуры
Сохраняет сложные иерархии и поддерживает завершающие запятые:
{
"nav": {
"home": "Home", // Элемент навигации
"about": {
"team": "Our Team" // Вложенная навигация
},
},
"items": {
"one": "{{count}} item",
"other": "{{count}} items", // Поддержка множественного числа
},
}
Расширенная конфигурация
Исключение файлов
"jsonc": {
"include": ["locales/[locale]/*.jsonc"],
"exclude": ["locales/[locale]/config.jsonc"]
}
Блокировка технических ключей
"jsonc": {
"lockedKeys": ["app/version", "settings/apiKey"]
}
Используйте прямой слэш (/
) для путей вложенных ключей или звёздочку (*
) для совпадения с несколькими путями ключей.