Работа с текстовыми файлами


Кодировка по умолчанию

Простые текстовые (plain text) файлы - в большинстве случаев с расширением .txt - содержат только текстовый информацию. Нет чёткого способа сообщить компьютеру, на каком языке этот текст. На практике это означает, что компьютер по умолчанию предполагает, что текст написан на том же языке, который использует сам компьютер.


Искажённые символы

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

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

Содержимое японского файла может быть, например, таким:

OmegaTとは、コンピュータを利用した翻訳ツールです。

Но ваш текстовый редактор вполне может показать его так:

OmegaTВ∆ВЌБAГRГУГsГЕБ[Г^ВрЧШЧpµšЦ|ЦуГcБ[ГЛВ≅ВЈБB

поскольку считает, что файл на русском языке. Проблема в том, что это не так. Это японские символы, которые по ошибке отображаются русскими символами.

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


Наборы символов и кодировки

Почему это работает с английским и французским, но не с русским и японским? Потому что английский и французский используют один и тот же набор символов, а именно, Latin-1 или его вариации. До недавнего времени русский и японский наборы символов никак не пересекались. Большинство современных русских наборов символов не покрывают японский язык и наоборот. Результат показан выше.

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

То, как текстовая информация в указанном наборе символов передаётся физически (то есть, как она записывается в файл, который компьютер интерпретирует и отображает), зависит от кодировки. Когда компьютер читает файл, он "декодирует" информацию в соответствии с кодировкой и показывает её при помощи набора символов. Несколько упрощая, можно сказать, что одна кодировка соответствует одному набору символов.


Как с этим работает OmegaT

В целом, в OmegaT есть три метода борьбы с этой проблемой. Все они включают использование файловых фильтров в меню Настройки.

  1. Укажите кодировку ваших текстовых файлов - то есть, файлов с расширением .txt.
    В секции Текстовые файлы диалога файловых фильтров измените кодировку исходных файлов с <auto> на кодировку, соответствующую вашим исходным .txt-файлам.
  2. Измените расширение ваших исходных текстовых файлов - например, с .txt на .jp для японских текстовых файлов.
    В секции Текстовые файлы диалога файловых фильтров добавьте *.jp в Шаблоны исходных файлов и выберите необходимые параметры кодировки оригинала и перевода.
  3. Откройте ваш исходный файл в текстовом редакторе, который правильно понимает его кодировку и сохраните файл в кодировке "UTF-8".
    Измените расширение файла с .txt на .utf8.
    OmegaT автоматически интерпретирует его как файл в UTF-8.

Сейчас OmegaT настроена на следующие расширения текстовых файлов

Вы можете проверить эти настройки, выбрав пункт Файловые фильтры в меню Настройки.

OmegaT поставляется с такими настройками, чтобы вам было легче работать с некоторыми текстовыми файлами.

Например, если у вас есть текстовый файл на чешском (скорее всего, сохранённый в кодировке ISO-8859-2), то вам нужно просто заменить расширение .txt на .txt2 и OmegaT корректно распознает его содержимое.


Надлежащие уведомления