Псевдолокализация

Пример английской псевдолокализации. Видны удлинение строк, показ границ, расширенный набор символов. В строке «400 MB» заметно, из каких частей она собрана.

Псевдолокализация — имитация последствий локализации компьютерной программы, чтобы испытать программные механизмы локализации и интернационализации[1][2][3][4]. Имитация должна быть удобной для тестеров и малозатратной, и потому строится полуавтоматически из имеющегося языкового ресурса, посторонних текстов на целевом языке и известной разработчикам информации о языке.

Типичный пример: Account Settings[!!! Àççôûñţ Šéţţîñĝš !!!].

В результате таких изменений тексты остаются читаемыми, но появляются изменения, которые могут встречаться в настоящей локализации: более длинные строки[2], расширенные наборы символов[2], другая типографика (например, справа налево)… Чтобы понимать, локализована ли строка, обрезана ли она, где её искать, как собрана осмысленная фраза и т. д., в тексты могут добавлять техническую информацию: маркеры начала и конца[2], контрольную сумму идентификатора в языковом ресурсе[2] и другое.

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

Разработчики программы POEditor делят псевдолокализацию на текстовую (подставляются особые тексты), шрифтовую (подставляются шрифты других габаритов) и программную (последствия перевода имитируются программно)[1].

Потребность

При первом переводе программы возникает порочный круг: необходимо проверить, что функции локализации работают, где отсутствует перевод. Чтобы дать задание переводчику, нужно быть уверенным, что оно достаточно полное и не придётся несколько раз давать строки на доперевод[1][3]. К тому же, не зная иностранного языка и видя только тарабарщину, нельзя испытать эту функциональность[2].

В условиях бывшего СССР, когда любой программист знает два, а то и три языка — русский, английский и национальный — псевдолокализация не так нужна, ведь программист (или кто-то из находящихся рядом, например тестер) своими силами может сделать полный перевод, доперевод, или хотя бы убедиться в работоспособности английской версии. Со знанием двух языков из разных групп проще заранее предусмотреть интернационализацию. Но даже в таком случае есть препятствия: работа программиста дороже, чем переводчика, он может не иметь нужных навыков (от владения художественным словом до обычной грамотности), перевод с русского языка на английский плохо проверяет ошибки компоновки окон (английский короче), программа для западной публики может разрабатываться на английском без русского перевода. Коммерческая программа для широкой публики (в частности, игра) должна выйти готовой к переводу, и об интернационализации нужно задумываться уже при разработке[3].

Генератор псевдолокализации должен поддерживать языки разметки, имеющиеся в текстах (HTML, вики, printf и другие), и не портить их конструкции[3].

Если основная часть интернационализации проверена, но хочется увидеть программу на целевом языке и проверить тонкости именно этого языка, используется машинный перевод[5].

Возможности и ограничения

Проверка поддержки письма справа налево[англ.], восточных арабских цифр.

Псевдолокализация даже без перевода испытывает такие механизмы перевода:

  • Строки, даты и числа корректно поделены на локализуемые и жёстко закодированные[4]: глагол ассоциации файлов open неизменный, а строка пользовательского интерфейса Open — локализуется. Если жёстко закодировать локализуемую строку, она не дойдёт до переводчиков, и это типовая ошибка[4], но и обратное (перевели нелокализуемую техническую строку) встречается и может помешать работе программы[6].
  • Не забыты тексты, впечатанные в изображение: взяты в комплект локализатора в виде многослойного исходника и тоже псевдолокализованы, или заменены обычным текстом[4][6].
  • Текст не обрезан ни на пиксельном, ни на символьном уровне (перевод может удлинить строку)[1][2][4][6].
  • Простейшие методы сборки сообщений. Так, подстановка (? files) предпочтительнее склеивания (2 + + files)[2][7] — это даёт гибкость (вариативная часть может быть в середине или справа) и легче переводится. Псевдолокализация будет 2 [!!!ᶂïłɛʃ!!!] для склеивания строк и [!!!2 ᶂïłɛʃ!!!] для подстановки.
  • Текст собирается из частей без нужды, когда его можно вписать в локализацию целиком[6].
  • Шрифт действует и поддерживает нужные символы[2][3].
  • Работает компоновка всей программы под другое устройство печатной строки: с большим количеством диакритики[3], справа налево[3][4], иероглифы, индийские слоги, неевропейские цифры[2], перенос не по пробелам и т.д.
  • Работает смена языка без перезапуска программы: окна переводятся и перекомпоновываются.
  • Ни одна строка не проходит через недостаточную кодировку (например, однобайтовую или UCS-2)[7][6].
  • Для неюникодных локализаций: поддерживаются многобайтовые кодировки[4].
  • Разные переводы программы интероперабельны: читают файлы друг друга, вместе участвуют в сетевой игре…
  • Позволяет переводить по частям, наблюдать, как программа постепенно заполняется новым языком, и хорошо видеть непереведённые строки[3].

Псевдолокализация — не панацея и с трудом определяет:

  • Локализуемость текста — характеристика контента, определяющая возможность его адаптации для разных культур. Основные аспекты: культурные барьеры, правовые требования.
  • Наличие в шрифте специфичного правила — для украинского это кернинг распространённых пар ії,її[8]: її вії. Типограф должен подсказать, куда смотреть.
  • Сборку качественных грамматически согласованных сообщений — например, счётные формы «1 файл», «2 файла», «5 файлов». Это нужно обнаружить на CLDR или путём препродакшена со знающим язык, отдельно псевдолокализовать и проверить, и задокументировать для переводчиков. Если бюджет невелик, лучше[6] таких сообщений избегать.
  • Достаточно расщеплённые (то есть имеющие один текст, но разные идентификаторы) строки локализации — то же Open в разных местах можно перевести как «Открыть», «Открывать», «Открыто», «открыт», «Откр.» Решается интернационализаторским опытом и стандартными советами: расщеплять команду, состояние и заголовок, законченную строку и фрагмент более длинной, свободно помещающуюся и едва втиснутую, «открытый» файл и «открытый» кран, а если строки из редактора форм (то есть заведомо законченные и обладающие контекстом вроде «текст на кнопке X») — расщеплять по умолчанию и объединять с большой осторожностью (например, для сходных кнопок одной формы).
  • Новые символы корректно участвуют в текстовых алгоритмах вроде алфавитной сортировки.
  • Неиспользуемые строки.
  • Логичное устройство комплекта локализации, чтобы близкие строки находились рядом, плохо понятные — задокументированы…
  • Не показывает на нужную строку кода, и программистам бывает сложно найти источник проблем[7].
  • Для чисел, дат, культурных особенностей и юридических требований нужны отдельные механизмы[7], которые, впрочем, также можно псевдолокализовать.
  • В некоторых сценариях обработки строк механизм псевдолокализации может вызывать следующие проблемы: удлинение уже укороченных строк, ложные тревоги[9][7].

В Microsoft

Microsoft пользовался псевдолокализацией с 1990-х, но внесение этого механизма прямо в ОС начиная с Windows Vista[10]. Мало того, псевдолокализованная Windows стала главной, а английская — такой же локализацией, как и все остальные[11]. Бета-версии Windows 7[12] и 8[13] попадали к тестерам в частично псевдолокализованном виде.

Изначально псевдолокализация была «туркменская», но это работало ровно до того момента, как Windows 7 SP1 была переведена на настоящий туркменский[2][11]. Потом использовался ps-PS — пуштунский для Палестины[14], что неправдоподобно, но имело место. Теперь Windows имеет три псевдолокали, начинающиеся на qps (имена qaa…qtz зарезервированы под личные нужды), автоматически синтезированные из английских ресурсов: базовую (европейские языки преимущественно слева направо), зеркальную (текст преимущественно справа налево) и восточноазиатскую (ККЯ)[2], и поддерживает все три класса языков одновременно, не требуя разных сборок под разные языки.

Примечания

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya