Как перевести файл CSV

OpenL Team 1/9/2026

TABLE OF CONTENTS

CSV выглядит просто, но при его переводе легко допустить ошибки: столбцы могут сместиться, кавычки сломаться, нелатинские символы исказиться, а идентификаторы превратиться во что-то непригодное для использования. В этом руководстве представлен безопасный и практичный рабочий процесс для перевода CSV-файла с сохранением структуры, а также контрольный список для проверки качества и решения распространённых проблем.

Если вам нужен самый простой вариант, используйте переводчик, поддерживающий CSV (Метод 1), вместо копирования текста CSV в обычный текстовый переводчик.

Перед импортом переведённого файла выполните контрольный список из этого руководства, чтобы на раннем этапе выявить проблемы со столбцами или кодировкой.

Почему перевод CSV сложен

CSV — это обычный текст, но с определёнными структурными правилами:

  • Разделитель: обычно запятая (,), иногда точка с запятой (;) в некоторых локалях.
  • Кавычки: текстовые значения могут быть заключены в двойные кавычки ("). Кавычки внутри значений должны быть экранированы (обычно "").
  • Переносы строк внутри ячеек: допускаются, но только если ячейка корректно заключена в кавычки.
  • Кодировка: ваш файл может быть в UTF‑8, UTF‑8 с BOM или в устаревших кодировках.
  • Смешанные типы данных: числа, даты, SKU, идентификаторы, URL и плейсхолдеры часто должны оставаться без изменений.

Инструменты перевода, которые воспринимают CSV как «просто текст», могут случайно изменить структурные символы (разделители/кавычки/переносы строк) или преобразовать типы данных (даты/числа), что приведёт к ошибкам при импорте.

Перед началом работы

Эти быстрые шаги помогут избежать большинства ошибок при переводе CSV:

  1. Сделайте резервную копию

    • Сохраните file.csvfile.original.csv.
    • Если CSV содержит данные клиентов, удалите или анонимизируйте конфиденциальные поля перед загрузкой куда-либо.
  2. Определите поля «не переводить» Оставьте их без изменений:

    • Идентификаторы, ключи, SKU, номера заказов
    • URL, email-адреса, пути к файлам
    • Плейсхолдеры и переменные ({name}, {{amount}}, %s, :count)
    • Теги, значения перечислений, внутренние коды статусов (PAID, REFUNDED)
    • Любое поле, используемое в коде (API-ключи, JSON-блоки, HTML-фрагменты)
    • Если не уверены, смотрите: /what-not-to-translate
  3. Подтвердите разделитель, правила кавычек и окончания строк

    • Если вы открываете CSV и он «выглядит как один столбец», вероятно, выбран неправильный разделитель.
    • Обычный CSV использует разделитель , и кавычки ". (см. RFC 4180: https://www.rfc-editor.org/rfc/rfc4180).
  4. Подтвердите кодировку

    • Предпочтительно использовать UTF‑8 для многоязычного контента.
    • Если вы будете открывать переведённый CSV в Excel на Windows, возможно потребуется UTF‑8 с BOM, чтобы избежать искажённых символов.
    • Подробнее о BOM: https://unicode.org/faq/utf_bom.html
  5. Необязательно, но рекомендуется: добавьте стабильный row_id Для CSV, которые будут повторно импортироваться или сопоставляться позже, добавьте уникальный столбец-ключ (например, row_id), чтобы можно было убедиться, что строки не были переупорядочены.

Метод 1 — Онлайн-переводчики с поддержкой CSV (рекомендуется)

Онлайн-переводчики с поддержкой CSV рассматривают CSV как структурированные данные, а не «просто текст», поэтому с меньшей вероятностью нарушат разделители, кавычки или структуру строк/столбцов. Всегда выполняйте QA-чеклист перед импортом.

Сравнение нейтральных опций

ВариантПреимуществаКомпромиссыЛучшее применение
OpenL CSV Translator OnlineРазработан для структуры CSV; быстрая загрузка/выгрузкаРабота через загрузку; не подходит для конфиденциальных данныхБыстрые, надёжные черновики CSV
DeepL / Google Cloud / AWS Translate (API)Автоматизация; хорошее качество; подходит для пакетных процессовТребуются навыки разработки + аккуратная обработка CSVКоманды, переводящие много файлов
CAT tools (Smartling, Lokalise, Phrase и др.)Терминология/QA, коллаборацияБольше настроек и затратМасштабная локализация продуктов/интерфейсов
Формулы в таблицах (Sheets/Excel)Не требует дополнительного ПОЛегко случайно изменить формат или повредить CSVТолько для небольших, низкорискованных файлов

Ограничения и примечания

  • Не загружайте конфиденциальные данные, которые вам запрещено распространять. При необходимости сначала экспортируйте очищенный CSV.
  • Если ваша система требует определённых названий заголовков, не переводите строку заголовков.
  • Всегда выполняйте проверочный список QA перед импортом переведённого CSV.
  • Если вы используете онлайн-инструмент, проверьте лимиты загрузки и поддерживаемые форматы на странице инструмента.

Пошаговая инструкция

  1. Откройте инструмент

  2. Выберите языки

    • Выберите целевые языки.
  3. Загрузите ваш CSV

    • Загрузите или перетащите ваш файл .csv.
    • Если ваш CSV содержит несколько текстовых столбцов, переводчик переведёт содержимое, сохраняя разделители и кавычки в безопасности.
  4. Скачайте переведённый CSV

    • Сохраните его с понятным именем, например products_es.csv.

Лучшие практики для получения лучших результатов

  • Переводите только столбцы, видимые пользователю: названия продуктов, описания, строки интерфейса, заметки для клиентов.
  • Сохраняйте стабильность кодов: не переводите status, type, sku, category_id, url, handle.

Метод 2 — Google Sheets или Excel

Этот рабочий процесс может работать, но легко случайно изменить форматирование, разделители или типы данных.

Google Sheets (маленькие файлы)

  1. Импортируйте CSV

    • Google Sheets → Файл → Импорт → Загрузка.
    • Если ваши данные отображаются в одном столбце, выберите правильный разделитель (запятая или точка с запятой).
  2. Защитите столбцы “не переводить”

    • Сначала отформатируйте столбцы с идентификаторами как Обычный текст (например, SKU, order id), чтобы избежать преобразования 00123123.
  3. Переводите только целевые столбцы

    • Используйте =GOOGLETRANSLATE(A2,"en","es") в новом столбце, затем Копировать → Специальная вставка → Только значения.
    • Не используйте формулы перевода для столбцов, содержащих URL, плейсхолдеры, коды или формулы.
  4. Экспорт

    • Файл → Скачать → Значения, разделённые запятыми (.csv) (Google Sheets экспортирует в UTF‑8).

Excel (Windows) — как правильно импортировать и экспортировать UTF‑8

Excel — это место, где ошибки кодировки происходят чаще всего. Используйте эти шаги, чтобы избежать искажённых символов и проблем с разделителями.

A) Импорт CSV без искажения символов

  1. Данные → Из текста/CSV
  2. В диалоговом окне импорта:
    • Происхождение файла / Кодировка: выберите 65001: Unicode (UTF‑8) (формулировка зависит от версии)
    • Разделитель: Запятая (,) или точка с запятой (;), чтобы соответствовать вашему файлу
  3. Нажмите Загрузить (или Преобразовать данные, если нужно принудительно задать столбцы ID как Текст)

B) Экспорт в UTF‑8 (и когда использовать BOM)

  1. Файл → Сохранить как
  2. Для Тип файла выберите:
    • CSV UTF‑8 (Comma delimited) (*.csv) (рекомендуется для многоязычного текста)
    • Если ваша система не принимает BOM, экспортируйте UTF‑8 без BOM с помощью скрипта (см. “Пакетная обработка”) или пересохраните с помощью редактора кода.

Типичные ошибки

  • Автоформатирование: таблицы могут преобразовать ID, например 00123, в 123.
  • Преобразование дат: 2026-01-09 может отображаться по-разному и экспортироваться непоследовательно.
  • Изменение разделителя: экспорт может переключиться на ; в зависимости от региональных настроек.

Если вы используете этот метод, раздел QA ниже обязателен.

Продвинутый рабочий процесс — Таблица перевода

Если ваш CSV содержит смесь данных “перевести” и “не переводить”, создайте отдельную таблицу перевода, чтобы перевод никогда не затрагивал чувствительные поля.

Шаг 1: Создайте таблицу перевода

Создайте новый CSV (или лист) такого вида:

row_idfieldsource_textcontexttranslated_text
101product_titleWireless MouseE-commerce product titleБеспроводная мышь
101product_descSilent clicks, 2-year batteryShort descriptionБесшумные нажатия, батарея на 2 года
102product_titleUSB-C ChargerE-commerce product titleЗарядное устройство USB-C
102product_descFast charging for phones and tabletsShort descriptionБыстрая зарядка для телефонов и планшетов
103product_titleStainless Steel Water BottleProduct titleБутылка для воды из нержавеющей стали
103product_descBPA-free, keeps drinks cold 24hShort descriptionНе содержит BPA, сохраняет напитки холодными 24 часа
104product_titleNoise-Canceling HeadphonesProduct titleНаушники с шумоподавлением
104product_descOver-ear, Bluetooth 5.3Short descriptionНакладные, Bluetooth 5.3

Шаг 2: Переведите только source_text

Переведите столбец source_text выбранным вами способом и поместите результат в translated_text. (Онлайн-переводчик, который понимает CSV, обычно безопаснее, чем электронные таблицы.)

Шаг 3: Верните переводы обратно

Соедините по row_id + field и запишите переведённый текст обратно в исходный набор данных. Это гарантирует, что идентификаторы, цены и системные поля никогда не попадут в перевод.

Пример (Python + pandas)

import pandas as pd

# Original data (keep types stable; treat IDs as strings)
orig = pd.read_csv("products.csv", dtype=str, keep_default_na=False)

# Translation table after translation
tt = pd.read_csv("translation_table_es.csv", dtype=str, keep_default_na=False)

# Reshape to one row per row_id (wide format)
wide = (
  tt.pivot(index="row_id", columns="field", values="translated_text")
  .add_suffix("__translated")
  .reset_index()
)

merged = orig.merge(wide, on="row_id", how="left")

# Write back (example fields)
merged["product_title"] = merged["product_title__translated"].where(
  merged["product_title__translated"].ne(""), merged["product_title"]
)
merged["product_desc"] = merged["product_desc__translated"].where(
  merged["product_desc__translated"].ne(""), merged["product_desc"]
)

merged.drop(columns=[c for c in merged.columns if c.endswith(“__translated”)], inplace=True) merged.to_csv(“products_es.csv”, index=False, encoding=“utf-8-sig”)


#### Пример (шаблон SQL join/update)

```sql
-- translation_table(row_id, field, translated_text)
-- products(row_id, product_title, product_desc, ...)

UPDATE products p
SET product_title = t.translated_text
FROM translation_table t
WHERE p.row_id = t.row_id
  AND t.field = 'product_title'
  AND t.translated_text IS NOT NULL
  AND t.translated_text <> '';

Пакетная обработка (несколько CSV файлов)

Если вам нужно перевести множество CSV файлов, избегайте ручных шагов в таблицах и используйте повторяемый конвейер:

  1. Стандартизируйте входные данные

    • Приведите к UTF‑8 (или UTF‑8 с BOM, если это требуется вашему импортеру).
    • Убедитесь, что в каждом файле есть стабильный ключ (row_id / id) для сопоставления.
  2. Генерируйте таблицы переводов для каждого файла

    • Извлекайте только переводимые поля в translation_table_<file>.csv.
    • Оставьте столбец source_file, если предпочитаете одну объединённую таблицу для всех файлов.
  3. Переводите таблицы

    • Используйте API workflow или инструмент с поддержкой CSV для каждого файла.
  4. Объединяйте результаты обратно + экспортируйте

    • Сопоставляйте по row_id + fieldsource_file, если используется).
    • Экспортируйте с кодировкой, которую ожидает ваша downstream-система.

Минимальный стартовый цикл (обработка многих файлов последовательно):

for f in ./input/*.csv; do
  base="$(basename "$f" .csv)"
  # 1) извлечь таблицу переводов (реализуйте согласно вашей схеме)
  # 2) перевести translation_table_${base}.csv -> translation_table_${base}_translated.csv
  # 3) объединить обратно и экспортировать ${base}_translated.csv
  echo "Обработано: $base"
done

Контрольный список QA после перевода

После загрузки переведённого CSV выполните эти проверки перед импортом:

Быстрые проверки

  • Сравните количество строк (macOS/Linux): wc -l file.original.csv file.translated.csv
  • Проверьте согласованность разделителей, открыв файл в текстовом редакторе и убедившись, что разделители выглядят одинаково.
  • Дополнительно: проверьте согласованность количества столбцов с помощью Python:
python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Если возникает ошибка декодирования Unicode, сначала преобразуйте CSV в UTF-8 или попробуйте использовать utf-8-sig:

python -c "import csv,sys; p=sys.argv[1]; r=list(csv.reader(open(p,newline='',encoding='utf-8-sig'))); print('rows',len(r),'max_cols',max(len(x) for x in r))" file.translated.csv

Проверки структуры

  • Количество строк не изменилось: то же количество строк данных, что и в оригинале.
  • Количество столбцов не изменилось: каждая строка содержит одинаковое количество столбцов.
  • Разделитель не изменился: запятая или точка с запятой согласованы с вашим импортёром.
  • Кавычки корректны: поля с запятыми/переносами строки остаются правильно заключёнными в кавычки.

Проверки целостности данных

  • ID и ключи не изменились: сравните sku, id, row_id, handle.
  • URL/электронные адреса не изменились: без добавленных пробелов, без переведённых доменов.
  • Числа сохранены: цены, количества, десятичные значения остались прежними.
  • Заполнители сохранены: {name}, {{count}}, %s, :value остались без изменений.

Проверки качества перевода

  • Терминология согласована: ключевые продуктовые термины переведены одинаково во всех строках.
  • Соблюдены ограничения по длине: ярлыки интерфейса не слишком длинные (важно для приложений).
  • Нет смешанных языков: проверьте наличие исходных слов, которые должны быть переведены.

Устранение распространённых проблем с переводом CSV

1) Столбцы смещены после перевода

Симптомы

  • Ваш импортёр сообщает “неверное количество столбцов”
  • Значения отображаются под неправильными заголовками

Возможные причины

  • Переведённое поле содержит неэкранированную кавычку (")
  • Переведённое поле содержит запятую/перенос строки, но не заключено в кавычки должным образом

Решение

  • Убедитесь, что CSV использует правильные правила экранирования (двойные кавычки вокруг полей; внутренние кавычки экранируются как "").
  • Переводите с помощью workflow, поддерживающего работу с CSV (а не переводите сырой текст CSV).

2) Искажённые символы (модзибаке) типа ???? или é

Возможные причины

  • Неправильная кодировка при экспорте/импорте (UTF‑8 против устаревших кодировок)

Решение

  • Экспортируйте в UTF‑8.
  • Если используется Excel на Windows, попробуйте UTF‑8 с BOM.
  • Избегайте ручного копирования/вставки, которое может изменить кодировку.

3) Пропали ведущие нули (00123123)

Возможные причины

  • Автоформатирование таблицы (Excel/Sheets)

Решение

  • Обрабатывайте столбцы с идентификаторами как текст до редактирования/экспорта.
  • Предпочитайте перевод с помощью workflow, поддерживающего CSV, чтобы не изменять тип данных.

4) Формат дат или десятичных чисел изменился

Примеры

  • 1,234.56 становится 1.234,56
  • 2026-01-09 становится 09/01/2026

Решение

  • Не переводите числовые/датированные столбцы.
  • Сохраняйте значения в машиночитаемом виде; локализуйте форматы отображения на уровне интерфейса, а не в исходных данных.

5) Проблема безопасности: CSV-инъекция (формулы Excel)

Если переведённая ячейка начинается с =, +, - или @, при открытии файла в Excel это может быть воспринято как формула.

Решение

  • Для CSV, которые будут открываться в электронных таблицах, экранируйте опасные ячейки, добавляя апостроф (') в начале, или очищайте данные при экспорте.
  • Рассмотрите возможность удаления ведущих символов формул из пользовательского текста до перевода/импорта.
  • Ссылка: https://owasp.org/www-community/attacks/CSV_Injection

FAQ

Как перевести CSV, не нарушив структуру столбцов?

Используйте workflow, поддерживающий CSV, и проверьте структуру перед импортом:

  • Переводите с помощью метода, поддерживающего CSV (Метод 1)
  • Выполните “Быстрые проверки” + чек-лист контроля качества, чтобы убедиться в совпадении количества строк/столбцов и корректности экранирования
  • Если ваш CSV содержит как чувствительные поля, так и текст для пользователей, используйте “Расширенный workflow — Translation Table”

Могу ли я перевести только один столбец в CSV?

Да. Самый безопасный способ — создать таблицу перевода (row_id + source_text + context), перевести только её, а затем сопоставить обратно. Это предотвращает случайные изменения идентификаторов и числовых полей.

Нужно ли переводить строку заголовков?

Это зависит от вашего случая использования:

  • Переводите заголовки, если CSV будет читаться людьми (отчёты, экспорт).
  • Не переводите заголовки, если ваша система/импортёр ожидает конкретные имена полей (импорт в e-commerce, базы данных, приложения).

В моём CSV используются точки с запятой (;) вместо запятых. Это нормально?

Да, но убедитесь, что ваш инструмент/импортёр всегда использует одинаковый разделитель. Во многих европейских локалях по умолчанию используется точка с запятой. Несовпадение разделителей — частая причина ошибок импорта CSV.

Как обрабатывать многострочный текст (разрывы строк) в ячейках?

Многострочные ячейки разрешены в CSV, но они должны быть правильно заключены в кавычки. Если ваш переведённый контент содержит разрывы строк, настоятельно рекомендуется использовать переводчик, поддерживающий CSV, чтобы избежать разрывов строк.

Инструменты

  • OpenL CSV Translator Online (пример инструмента, поддерживающего CSV): https://doc.openl.io/translate/csv
  • Для работы с Excel: также смотрите “How to Translate Excel Online”: /how-to-translate-excel-online
  • Для Markdown-контента: “How to Translate Markdown”: /how-to-translate-markdown
  • Если нужны правила для неизменяемых элементов: “What Not to Translate”: /what-not-to-translate

Резюме

Для безопасного перевода файла CSV сохраняйте структуру (разделитель, кавычки, кодировку) и защищайте поля “не переводить” (ID, URL, плейсхолдеры, числа). Предпочитайте процессы с поддержкой CSV, затем проверьте с помощью чек-листа QA перед импортом.

Related Posts

Как перевести коммерческое предложение (смету)

Как перевести коммерческое предложение (смету)

Переводите коммерческие предложения, не изменяя цены, условия Инкотермс, характеристики продукции или условия оплаты. Используйте пошаговый рабочий процесс, шаблоны и контрольный список качества для точной передачи коммерческих предложений на разных языках.

2026/2/4
Как перевести диплом

Как перевести диплом

Нужен заверенный перевод диплома для иммиграции, поступления в университет или работы за рубежом? Узнайте, как работают сертификация, нотариальное заверение и апостиль, а также ознакомьтесь с правилами конкретных стран и советами по предотвращению отказов.

2026/1/25
Лучший переводчик PPT в 2026 году

Лучший переводчик PPT в 2026 году

Практическое руководство по лучшим инструментам для перевода PPT в 2026 году, охватывающее сохранение макета, контроль терминологии, скорость и безопасность, а также сравнительный анализ и советы по выбору.

2025/12/31