Часть серии статей о |
Перевод |
---|
Типы |
Теория |
Технологии |
Локализация |
|
Институциональный |
Похожие темы |
В вычислительной технике интернационализация и локализация ( американская ) или интернационализация и локализация ( британская ), часто сокращенно i18n и l10n соответственно, [1] являются средствами адаптации компьютерного программного обеспечения к различным языкам, региональным особенностям и техническим требованиям целевой локали . [2]
Интернационализация — это процесс проектирования программного обеспечения таким образом, чтобы его можно было адаптировать к различным языкам и регионам без инженерных изменений. Локализация — это процесс адаптации интернационализированного программного обеспечения для определенного региона или языка путем перевода текста и добавления компонентов, специфичных для локали.
Локализация (которая потенциально выполняется несколько раз для разных локалей) использует инфраструктуру или гибкость, предоставляемую интернационализацией (которая в идеале выполняется только один раз перед локализацией или как неотъемлемая часть текущей разработки). [3]
Термины часто сокращаются до нумеронимов i18n (где 18 обозначает количество букв между первой i и последней n в слове «интернационализация» , использование которого было введено в употребление в Digital Equipment Corporation в 1970-х или 1980-х годах) [4] [5] и l10n для локализации из-за длины слов. [1] [6] Некоторые авторы пишут последний термин с заглавной буквы ( L10n ), чтобы было легче различать их. [7]
Некоторые компании, такие как IBM и Oracle , используют термин глобализация , g11n , для обозначения сочетания интернационализации и локализации. [8]
Microsoft определяет интернационализацию как комбинацию готовности к миру и локализации. Готовность к миру — это задача разработчика, которая позволяет использовать продукт с несколькими скриптами и культурами (глобализация) и разделяет ресурсы пользовательского интерфейса в локализуемом формате (локализуемость, сокращенно L12y ). [9] [10]
Компании Hewlett-Packard и HP-UX создали систему под названием «Поддержка национальных языков» или «Поддержка родных языков» (NLS) для создания локализуемого программного обеспечения. [2]
Некоторые поставщики, включая IBM [11], используют термин National Language Version (NLV) для локализованных версий программных продуктов, поддерживающих только одну конкретную локаль. Термин подразумевает существование других похожих NLV-версий программного обеспечения для разных рынков; эта терминология не используется, если не проводилась интернационализация и локализация, а программный продукт поддерживает только один язык и локаль в любой версии.
По данным Software without Frontiers , при интернационализации продукта следует учитывать такие аспекты дизайна, как «кодирование данных, данные и документация, разработка программного обеспечения, поддержка аппаратных устройств и взаимодействие с пользователем»; в то время как ключевыми областями дизайна, которые следует учитывать при создании полностью интернационализированного продукта с нуля, являются «взаимодействие с пользователем, разработка алгоритмов и форматов данных, программные сервисы и документация». [2]
Перевод, как правило, является наиболее трудоемким компонентом языковой локализации . [2] Это может включать:
Компьютерное программное обеспечение может сталкиваться с различиями, выходящими за рамки простого перевода слов и фраз, поскольку компьютерные программы могут динамически генерировать контент. Эти различия, возможно, необходимо будет учитывать в процессе интернационализации при подготовке к переводу. Многие из этих различий настолько регулярны, что преобразование между языками можно легко автоматизировать. Common Locale Data Repository by Unicode предоставляет коллекцию таких различий. Его данные используются основными операционными системами , включая Microsoft Windows , macOS и Debian , а также крупными интернет-компаниями или проектами, такими как Google и Wikimedia Foundation . Примерами таких различий являются:
В разных странах действуют разные экономические соглашения, включая различия в:
В частности, США и Европа отличаются в большинстве этих случаев. Другие регионы часто следуют одному из них.
Некоторые сторонние сервисы, такие как онлайн-карты, прогнозы погоды или поставщики платежных услуг , могут быть недоступны по всему миру у тех же операторов или вообще не доступны.
Часовые пояса различаются по всему миру, и это необходимо учитывать, если изначально продукт взаимодействовал только с людьми в одном часовом поясе. Для интернационализации UTC часто используется внутри компании, а затем преобразуется в местный часовой пояс для отображения.
В разных странах действуют разные правовые требования, например:
Локализация также может учитывать различия в культуре, такие как:
Чтобы интернационализировать продукт, важно рассмотреть различные рынки, на которые продукт, как ожидается, выйдет. [2] Такие детали, как длина поля для уличных адресов, уникальный формат адреса, возможность сделать поле почтового индекса необязательным для адресации стран, в которых нет почтовых индексов, или поле штата для стран, в которых нет штатов, а также введение новых потоков регистрации, соответствующих местным законам, — это лишь некоторые из примеров, которые делают интернационализацию сложным проектом. [7] [17] Более широкий подход учитывает культурные факторы, касающиеся, например, адаптации логики бизнес-процессов или включения индивидуальных культурных (поведенческих) аспектов. [2] [18]
Уже в 1990-х годах такие компании, как Bull, использовали машинный перевод ( Systran ) в больших масштабах для всей своей переводческой деятельности: переводчики-люди занимались предварительным редактированием (превращая ввод в машиночитаемый текст) и последующим редактированием . [2]
Как при реинжиниринге существующего программного обеспечения, так и при разработке нового интернационализированного программного обеспечения первым шагом интернационализации является разделение каждой потенциально зависящей от локали части (будь то код, текст или данные) на отдельный модуль. [2] Затем каждый модуль может либо полагаться на стандартную библиотеку/зависимость, либо быть независимо заменен по мере необходимости для каждой локали.
Текущая распространенная практика заключается в том, что приложения помещают текст в файлы ресурсов, которые загружаются во время выполнения программы по мере необходимости. [2] Эти строки, хранящиеся в файлах ресурсов, относительно легко перевести. Программы часто создаются для ссылки на библиотеки ресурсов в зависимости от выбранных данных локали.
Хранилище для переводимых и переведенных строк иногда называют каталогом сообщений [2] , поскольку строки называются сообщениями. Каталог обычно включает набор файлов в определенном формате локализации и стандартную библиотеку для обработки этого формата. Одной из программных библиотек и форматов, которые помогают в этом, является gettext .
Таким образом, чтобы приложение поддерживало несколько языков, нужно спроектировать приложение так, чтобы оно выбирало соответствующий файл языковых ресурсов во время выполнения. Код, необходимый для управления проверкой ввода данных и многими другими типами данных, чувствительными к локали, также должен поддерживать различные требования локали. Современные системы разработки и операционные системы включают сложные библиотеки для международной поддержки этих типов, см. также Стандартные данные локали выше.
Многие проблемы локализации (например, направление письма, сортировка текста) требуют более глубоких изменений в программном обеспечении, чем перевод текста. Например, OpenOffice.org достигает этого с помощью переключателей компиляции.
Метод глобализации включает в себя, после планирования, три этапа внедрения: интернационализацию, локализацию и обеспечение качества. [2]
В некоторой степени (например, для обеспечения качества ) команды разработчиков включают кого-то, кто управляет базовыми/центральными этапами процесса, который затем позволяет всем остальным. [2] Такие люди, как правило, понимают иностранные языки и культуры и имеют определенный технический опыт. Специализированные технические писатели должны создавать культурно приемлемый синтаксис для потенциально сложных концепций в сочетании с инженерными ресурсами для развертывания и тестирования элементов локализации.
После надлежащей интернационализации программное обеспечение может полагаться на более децентрализованные модели локализации: бесплатное и открытое программное обеспечение обычно полагается на самолокализацию конечными пользователями и добровольцами, иногда организованными в команды. [19] Например, проект GNOME имеет добровольные команды переводчиков для более чем 100 языков. [ 20 ] MediaWiki поддерживает более 500 языков, из которых 100 в основном завершены по состоянию на сентябрь 2023 года [update]. [21]
При переводе существующего текста на другие языки сложно поддерживать параллельные версии текстов на протяжении всего срока службы продукта. [22] Например, если сообщение, отображаемое пользователю, изменяется, все переведенные версии должны быть изменены.
Независимый поставщик программного обеспечения , такой как Microsoft, может предоставлять разработчикам справочные руководства по локализации программного обеспечения. [23] Язык локализации программного обеспечения может отличаться от письменного языка .
В коммерческих условиях преимущество локализации заключается в доступе к большему количеству рынков. В начале 1980-х годов Lotus 1-2-3 потребовалось два года, чтобы отделить программный код от текста, и компания потеряла лидерство на европейском рынке по сравнению с Microsoft Multiplan . [2] MicroPro обнаружила, что использование австрийского переводчика для западногерманского рынка привело к тому, что ее документация WordStar , по словам одного из руководителей, «не имела того тона, который должна была иметь». [24]
Однако, существуют значительные затраты, которые выходят далеко за рамки инжиниринга. Кроме того, бизнес-операции должны адаптироваться для управления производством, хранением и дистрибуцией множества дискретных локализованных продуктов, которые часто продаются в совершенно разных валютах, нормативных средах и налоговых режимах.
Наконец, отделы продаж, маркетинга и технической поддержки также должны облегчить свои операции на новых языках, чтобы поддерживать клиентов для локализованных продуктов. В частности, для относительно небольших языковых групп населения предложение локализованного продукта может никогда не оказаться экономически выгодным. Даже там, где большие языковые группы населения могли бы оправдать локализацию для данного продукта, а внутренняя структура продукта уже допускает локализацию, данному разработчику или издателю программного обеспечения может не хватать размера и сложности для управления вспомогательными функциями, связанными с работой в нескольких локациях.
В двух словах, локализация вращается вокруг объединения языка и технологий для создания продукта, который может пересекать культурные и языковые барьеры. Ни больше, ни меньше.
Многие люди, устав писать эти длинные слова снова и снова, взяли привычку писать вместо этого
i18n
и
l10n
, заключая в кавычки первую и последнюю букву каждого слова и заменяя последовательность промежуточных букв числом, просто указывающим, сколько таких букв имеется.
Заглавная буква L в L10n помогает отличить ее от строчной буквы i в i18n.