Добавление языков
Lingo.dev CLI упрощает расширение вашего проекта на новые языки, добавляя целевые локали в конфигурацию i18n.json
и выполняя одну команду.
При добавлении новых языков CLI генерирует полные файлы переводов для новых локалей, сохраняя все существующие переводы и поддерживая ту же систему отпечатков содержимого.
Добавление первого нового языка
Чтобы добавить новый язык, обновите массив targets
в конфигурации i18n.json
:
Исходная конфигурация:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
Обновленная конфигурация с добавлением немецкого языка:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
Выполнение команды npx lingo.dev@latest i18n
создаст новый файл перевода для немецкого языка:
locales/
en.json (исходный - без изменений)
es.json (существующий - без изменений)
fr.json (существующий - без изменений)
de.json (новый - полностью переведен)
Как работает генерация нового языка
Lingo.dev CLI обрабатывает новые языки иначе, чем существующие:
- Существующие языки — Генерируются только отсутствующие переводы
- Новые языки — Полные файлы переводов создаются с нуля
Пример с частично существующими переводами:
// locales/en.json (исходный)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (существующий с отсутствующими переводами)
{
"welcome": "Bienvenido"
}
После добавления немецкого языка и выполнения CLI:
// locales/es.json (пробелы заполнены)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (полностью новый файл)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
Добавление нескольких языков
Вы можете добавить несколько языков одновременно:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
CLI обрабатывает все новые языки, создавая полные файлы переводов для каждого нового локаля.
Региональные варианты
Lingo.dev CLI поддерживает региональные языковые варианты с использованием языковых тегов BCP 47:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
Это создает отдельные файлы переводов для каждого регионального варианта, учитывая различия в терминологии, орфографии и культурном контексте.
Влияние на структуру файлов
CLI создает новые файлы в соответствии с вашими шаблонами размещения. Для разных форматов файлов:
JSON-шаблоны:
locales/[locale].json → locales/de.json, locales/ja.json
Markdown-шаблоны:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
Вложенные структуры:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
Добавление целевых языков
Вы можете сгенерировать переводы для конкретных новых языков, используя флаг --locale
:
npx lingo.dev@latest i18n --locale de
Это создаст только немецкие переводы, оставив другие новые языки для последующей обработки.
Удаление языка
Чтобы удалить язык, просто удалите его из массива targets
. CLI не будет удалять существующие файлы, но прекратит обработку этого локаля:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
Вы можете вручную удалить соответствующие файлы переводов, если это необходимо.