Как нужно переводить. Часть вторая.

То, что я писал относительно давно про перевод JIRA имеет смысл и для Confluence, да и возможно и для других приложений. Однако, я там не описал ещё много интересностей и в организационном плане. Здесь и сейчас я опишу часть из них.

 

Порядок

Сначала определитесь с порядком перевода. Переводить можно:

  • По файлу – мне такой вариант не нравится, если объём перевода существенный (тысячи строк). В малых переводах (до пары сотен строк) вполне можно переводить и по файлу.
  • По интерфейсу – мне такой вариант видится предпочтительней, особенно в случае больших объёмов и сложных интерфейсов:
    • Открываем окно Х – переводим его
    • Открываем окно Y – переводим его
    • Открываем окно Z – переводим его
    • Собираем, проверяем
    • Исправляем, собираем, проверяем
    • Начинаем следующую серию

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

Машинный перевод

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

Простейший пример: “Account” может переводиться как “Счёт”. Хотя это верно для бухгалтерских систем, однако в общей терминологии IT обычно применяется термин “Учётная запись”.

Перевод “в слепую”

Переводить “в слепую” сложный интерфейс чревато последующей кривизной русского языка. Здесь возможно и использование неверной терминологии в контексте, например “Name” может переводиться как “Имя”, “Название” или “Наименование”, а иногда даже целесообразнее уточнить до “Имя файла”.

Особое внимание на падежи и численность. Например:

Sort by:

— Name

— Size

лучше перевести с учётом падежей, если позволяет структура перевода

Сортировать:

— по имени

— по размеру”

Это получше прямого перевода в стиле:

Сортировать по:

— Имя

— Размер

Также возможны глагольно-существительные разночтения в переводах кратких слов. Например: “view” может быть переведено как “просмотреть” или “просмотр”. Точный перевод может быть выполнен только с учётом контекста (хотя есть ещё варианты с “вид” или “ракурс”). В случае прилагательных типа “new” могут быть и варианты с прилагательными в разных родах – “новый” или “новое”, хотя не исключены непрямые переводы типа “создать”, в зависимости от контекста.

Отдельного рассмотрения требуют глаголы совершенной и несовершенной форм. Например: видел недавно в одном приложении (установщик HTC Sync в данном случае) кнопку “Устанавливать” — это полная несуразица с точки зрения русского языка. Безусловно, тут имелось в виду “Установить”. Для настроек больше подойдёт несовершенная форма “Сохранять автоматически”, а для действий больше подходит совершенная форма “Сохранить”.

Мне лично не нравится, когда в равнозначном списке (действий, пунктов, заголовков) смешиваются существительные и глаголы. Требуется более точно представлять, в каких элементах интерфейса допустимы глагольные, существительные формы. Например: допустимы пары “Поиск, Замена” и “Найти, Заменить”, но смешивать их в стиле “Найти, Замена” – недопустимо.

Словарь

В процессе перевода очень желательно завести себе проектный словарик, в котором вы будете вести базовый словарь понятий с допустимыми или недопустимыми вариантами перевода. Ниже что-то вроде примера:

Слово Допустимо Недопустимо
click щёлкнуть кликнуть
button (на экране) кнопка  
key (на клавиатуре) клавиша кнопка
download загрузить скачать
permission полномочия разрешения
space пространство область, космос
tab вкладка закладка
label метка ключевое слово
send отправить отослать

 

Для общего сведения пользуйтесь общим опорным кратким словарь. У Microsoft был хороший большой словарь с разнообразной терминологией, ориентированный именно на интерфейс программ. Ссылочки под рукой нет, но рекомендуется к использованию в больших проектах.

Версионность

Если вы предполагаете в будущем наличие других участников перевода – то здесь очень желательно будет использовать SVN/CVS-ориентированные системы (хостера, локальные, бесплатные). Здесь будет помогать версионность вашего перевода и существенное облегчение совместной работы над комплектом файлов перевода.

Хранение версий английских оригиналов также очень предпочтительно. Пример: вы переводите версию 1.0 и перевод готов процентов на 80% (полностью переведены основные функции). Выходит версия 1.1, где внесены изменения как в части добавления новых функций, так и изменения в текстовке существующих функций. Сравниваете английские версии – получаете “дельту”, которую вам надо перевести для полноты перевода.

 

Поиск по переводу

Часто бывает, что некоторые (особенно краткие) элементы интерфейса вы не можете точно найти в файле перевода. Основная причина – распространённость использования данного слова, а вам нужно при этом исправить конкретный элемент, не трогая все остальные.

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

Например, файл перевода содержит:

404.message.reason1=The page does not exist.
404.message.reason2=The page exists, but you do not have permission to view it.
404.nav.dashboard=Your Dashboard
404.nav.home=Site Homepage
404.nav.title=Go to
404.search.title=Site Search
404.spaces=Public Spaces

из него нам нужно получить что-то вроде:

404.message.reason1=404.message.reason1
404.message.reason2=404.message.reason2
404.nav.dashboard=404.nav.dashboard
404.nav.home=404.nav.home
404.nav.title=404.nav.title
404.search.title=404.search.title
404.spaces=404.spaces

Тогда, если мы подложим этот перевод и переключимся на него, то получим условный интерфейс:

обезьянний перевод интерфейса
Здесь всё очень понятно – найти нужный элемент интерфейса в файле стало гораздо легче.

В простом случае это легко делается при помощи регулярных выражений. Мы ищем используя регулярные выражения

(.*)=(.*)

и заменяем на

\1=\1

Надеюсь, что объяснять не нужно. Данный синтаксис регэкспов работает для редактора Notepad++,  в других редакторах может использоваться немного другой синтаксис.

При таком подходе есть немного выпадающие звенья, например строки с параметрами:

browse.mail=Browse mail in the {0} space

В некоторых случаях приложение может начать жестоко плющить. Но с этим можно или мириться, или усложнять процесс замены.

Ассоциации

Программа BabelFish выполнена в виде JAR, хотя она понимает перетаскивание файлов на неё, но можно и связать её для более быстрого доступа.

Вариант первый

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

start javaw.exe -jar c:\site\conf-trans\BabelFish\babelfish.jar c:\site\conf-trans\ConfluenceActionSupport.properties

Запуск данного ярлыка откроет требуемый файл в программе BabelFish.

Вариант второй

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

Мелкие трюки в BabelFish

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.