i18n.lock Lockfile
i18n.lock — это файл блокировки, который отслеживает контрольные суммы контента, чтобы предотвратить ненужные переводы и оптимизировать производительность Lingo.dev CLI.
i18n.lock хранит контрольные суммы исходного контента и ключей перевода, чтобы определить, что изменилось между запусками перевода. В результате переводится только новый или изменённый контент, что сокращает время обработки и затраты на перевод.
Структура файла блокировки
i18n.lock использует структурированный формат YAML для хранения контрольных сумм контента:
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
key: f8692d39317193acf0e2e47172703c46
b18975fb19122ebb67g0ef817641f553:
key: g9703e40428204bdf1f3f58283814d57
Элементы конфигурации:
version
— версия схемы lockfile для совместимости при миграцииchecksums
— карта контрольных сумм контента и ключевых контрольных сумм, отслеживающая переведённый контентchecksums.[content-hash]
— хэш SHA-256 исходного контента, служащий уникальным идентификаторомchecksums.[content-hash].key
— хэш SHA-256 ключа перевода, позволяющий обнаруживать переименование ключей
CLI Lingo.dev сохраняет существующие переводы, если обнаруживает идентичный контент с разными контрольными суммами ключей. Перевод не выполняется повторно, что обеспечивает согласованность переводов при изменении организации ключей. Подробнее читайте о переименовании ключей.
Интеграция в рабочий процесс
i18n.lock работает автоматически в процессе перевода:
Первый запуск — создаёт файл блокировки с начальными контрольными суммами контента:
npx lingo.dev@latest i18n
# Создаёт i18n.lock со всеми контрольными суммами исходного контента
Пересоздание файла блокировки — пересоздаёт файл блокировки с нуля:
npx lingo.dev@latest lockfile --force
# Пересоздаёт i18n.lock со всеми контрольными суммами исходного контента
Совет: Вы можете безопасно использовать эту команду для сброса файла блокировки в его исходное состояние при разрешении конфликтов слияния.
Последующие запуски — обрабатывают только изменённый контент:
npx lingo.dev@latest i18n
# Сравнивает текущий контент с i18n.lock
# Переводит только новый или изменённый контент
Принудительный повторный перевод — Обходит оптимизацию lockfile и повторно переводит весь контент, создавая новый lockfile:
npx lingo.dev@latest i18n --force
# Игнорирует i18n.lock и повторно переводит весь контент
Проверка замороженного состояния — Проверяет полноту перевода:
npx lingo.dev@latest i18n --frozen
# Завершается с ошибкой, если какой-либо контент требует перевода
# Используется в CI/CD для обеспечения полноты переводов
Интеграция с системой контроля версий
i18n.lock должен быть добавлен в систему контроля версий вместе с файлами перевода.
Lockfile является важной частью системы инкрементального перевода Lingo.dev CLI, что делает её удобной для проектов любого размера.