Контекст в локализации: мелочь, а необходимо
Быть может, кто-то еще помнит локализацию Baldur'sGate, сделанную командой "Айвенго и Ко" и изданную Фаргусом. Когда группа героев укладывалась спать, на экране каждый раз появлялось сообщение: "Вы действительно хотите отдохнуть"? И дальше шли две кнопки: "Остаток" и "Отмена".
Оказывается, в исходном тексте стояло просто Rest. Попробуй пойми, остаток это, отдых или что-то еще. Получается, что никто не виноват, а ошибка все равно возникла. А все потому, что одно слово может означать что угодно. Осмысленным оно становится только в связи с предыдущим и следующим текстом. Это и называется контекст.
Приведенный пример наглядно иллюстрирует важность контекста в локализации не только игр, но и любого программного обеспечения.
Тексты для перевода ПО имеют свою специфику. Я сейчас говорю даже не о тематике и не о необходимости соблюдать длину, чтобы текст поместился в отведенное место. Это тоже важно, но едва ли не главное, что отличает тексты ПО от документов и книг - это то, что текст в локализации рваный, т.е следующая строчка может быть никак не связана с предыдущей. Если в книге материал излагается связно и по порядку, то локкит представляет собой набор совершенно обособленных строк примерно такого вида:
- Отменить
- ОК
- Назад
- Я принимаю лицензионное соглашение
Этот пример еще довольно удачен, поскольку все надписи из одного диалогового окна стоят рядом. Но, увы, это скорее исключение, чем правило. Тексты чаще расположены в совершенно произвольном порядке, упорядоченные либо по алфавиту (клиент экономил на повторах одинаковых строчек - особенно было неприятно, когда в таком виде однажды прислали субтитры для диалогов), либо по другому, менее очевидному признаку. Рядовая ситуация - когда надписи на двух кнопках из одного окна отстоят друг от друга в файле локкита на 2-3 тысячи строк, упорядоченные совершенно как бог на душу положит.
Поэтому, если переводчик не знает, к чему относится слово Rest, он может совершенно законно перевести его как "Остаток" и будет прав.
Что же делать, чтобы не допустить ситуации, когда все правы, а ошибка все-таки есть и нагло дразнит эту правоту самим своим существованием?
Обеспечить строкам контекст. Один из лучших вариантов такого контекста - "говорящий" идентификатор, например Бухгалтерия_НовыйИнвойс_Отмена. В программировании давно уже считается хорошим тоном именовать элементы интерфейса схожим образом, поэтому все, что требуется - включить эту информацию в локкит. Ни одна уважающая себя локализационная компания не будет эту информацию ни переводить, ни учитывать при расчете стоимости, а качество перевода вырастет в разы.
Разумеется, если такого контекста не существует в принципе (например, идентификаторы выглядят как Кнопочка_11056), то медицина бессильна и вся надежда на тестирование. Но не следует забывать, что если в тексте ошибку можно заметить и поправить быстро и легко, то тестер будет вынужден снимать скриншот, заводить паспорт ошибки, потом ошибка будет путешествовать от тестера к редактору и обратно, до тех пор пока все не убедятся, что она закрыта... Это огромные затраты денег и времени на то, что можно было предотвратить хорошей подготовкой.
Поэтому если есть возможность предотвратить подобное и дать локализаторам больше информации сразу - лучше это сделать. Ведь мы тоже не любим переводить неправильно...