Lingo.dev + .csv (данные)

Lingo.dev CLI переводит файлы CSV со специфической структурой. Оно обновляет предоставленный CSV-файл, добавляя столбцы с переводами для каждой целевой локали. CLI сохраняет точный формат и разделители CSV, безопасно обрабатывает UTF-8 и различные кодировки символов, а также работает без проблем с Excel, Google Sheets и импортом баз данных.

Как работает перевод CSV

Файлы CSV должны иметь следующую структуру:

  • Первый столбец с названием KEY
  • Столбец исходной локали (например, en)

CLI расширяет предоставленный CSV-файл, добавляя столбцы для каждой целевой локали (например, es, fr). Переводы заполняются для каждой целевой локали, при этом оригинальное содержимое сохраняется.

Пример: исходный файл и результат

Исходный файл (английский источник):

KEY,en
dashboard.title,Dashboard
greeting.message,Hello world!
button.label,Submit

Результат (после перевода на испанский и французский):

KEY,en,es,fr
dashboard.title,Dashboard,Panel de control,Tableau de bord
greeting.message,Hello world!,¡Hola mundo!,Bonjour le monde!
button.label,Submit,Enviar,Soumettre
  • Столбец KEY сохраняется.
  • Столбец исходной локали (en) остается неизменным.
  • Добавляются новые столбцы для каждой целевой локали (es, fr) с заполненными переводами.

Быстрая настройка

Чтобы настроить перевод CSV, добавьте bucket для ваших CSV-файлов в i18n.json:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "csv": {
      "include": ["i18n/data.csv"]
    }
  }
}

Перевод данных CSV

npx lingo.dev@latest i18n

CLI сохраняет структуру CSV, заголовки и типы данных, переводя текстовое содержимое в целевых столбцах.

Расширенные функции

Поддержка пользовательских разделителей

Работает с различными диалектами CSV:

  • С разделением запятыми: value1,value2,value3
  • С разделением точкой с запятой: value1;value2;value3
  • С разделением табуляцией: value1\tvalue2\tvalue3

Расширенная конфигурация

Несколько CSV-файлов

"csv": {
  "include": [
    "i18n/data.csv",
    "content/static/*.csv"
  ]
}