***.LNG и регулярные выражения:
локализация файлов с нестандартным расширением
Коллеги, в данной статье предлагаем вам на реальном примере заглянуть в рабочий процесс локализации.

На днях мне прислали файл с нечасто встречающимся расширением .lng и вопросом, сможем ли мы его локализовать. Файл выглядел достаточно замысловато и состоял из нескольких тысяч строк:

#include "CVLanguage.pch"

[SOLID_PRJ_IDD_BATCH_JOB::DialogEx]

SOLID_PRJ_IDD_BATCH_JOB="Batched Jobs"

SOLID_PRJ_IDC_TEXT1="Batched Jobs"

SOLID_PRJ_IDC_JOB_LIST="","Select a value"

SOLID_PRJ_IDC_ADD_JOB="Add Job..."

SOLID_PRJ_IDC_REMOVE_JOB="Remove Job"

SOLID_PRJ_IDOK="OK"

SOLID_PRJ_IDCANCEL="Cancel"

SOLID_PRJ_IDS_SELECT_JOB="Select Job"

SOLID_PRJ_IDS_JOB_FILES_CVJCVJALL_FILES="Job Files (*.cvj)|*.cvj|Order Entry Files (*.ord)|*.ord|All Files (*.*)|*.*||"

LNG ( Language Application Support File) - формат файла языковой поддержки. Файлы этого типа используются различным ПО для языковой локализации пользовательского интерфейса. Если LNG-файл не зашифрован, открыть и отредактировать его можно любым текстовым редактором.

Рекомендую всем, кто имеет дело с файлами, установить текстовой редактор Notebad++, чтобы вы могли просмотреть содержимое практически любых форматов файлов. - https://notepad-plus-plus.org/downloads/

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

Если загрузить такой файл в Memsource или Smartcat, то ничего не получится: система выдаст ошибку, и вы не сможете ни посчитать слова, ни тем более начать перевод. Конвертировать и переводить с листа тоже не вариант: это сильно ударит по срокам, цене и качеству перевода.

Однако выход есть! Нам помогут регулярные выражения.

Регуля́рные выраже́ния (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов (символов-джокеров, англ. wildcard characters).

Регулярные выражения поддерживает и Word, и Memsource. В Memsource есть возможность применять регулярные выражения, но нет возможности загружать файл .lng. В этом случае открываем файл через программу Notepad++ и пересохраняем файл в понятный формат .txt.

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

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

Когда весь перевод закончен, мы получим файл, в котором переведенный текст находится на нужном месте. Нам остается пробежаться по файлу и проверить, что всё в порядке, затем переименовать формат из .txt обратно в .lng

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

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