IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  XML  >

Введение в интернационализацию XML

Применение пользовательских событий и запись XML

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: простой

Ернан Силбермэн, разработчик, вештатный сотрудник

22.06.2007

Основное преимущество XML в том, что он был создан для интернационального использования. Однако знаете ли вы о принципах интернационализации и локализации? В этой статье описывается, что они собой представляют, как работают и для чего вам необходимо их использовать.

Зачем нужна интернационализация?

Экономисты уже давно начали говорить о том, что мир действительно однородный. Этим утверждением пытаются подчеркнуть увеличивающееся значение политического, культурного, экологического и, конечно же, экономического взаимодействия между людьми во всем мире. Огромный мир прошлого уступил место новому миру, как сообществу, в котором расстояния существенно сократились.

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

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

XML стала высоконадежной технологией применяемой для представления и передачи любой информации. Разработчики XML оказались просто ясновидящими, создавая XML достаточно гибким для поддержки различных языков и возможностей кодирования символов, благодаря чему он отлично подходит для приложений, работающих в различных регионах. Сегодня XML – это основная технология, поддерживающая интернационализацию приложений в мире, который все больше и больше становится однородным.



В начало


Интернационализация и локализация

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

Такой процесс модификации часто называют интернационализацией и локализаций, и понимание этих двух процессов помогут вам применять точно такие же методы для ваших приложений, используя XML.

Интернационализация

Интернационализация - это подход, применяемый при разработке и проектировании, предупреждающий необходимость адаптировать продукт для работы в разных регионах. Интернационализация, которую иногда сокращают до i18n ('i', после которого идет 18, другие буквы после 'n'), это действие на стадии проектирования, когда продумывается процесс адаптации продукта к разным целевым языкам и культурным традициям. Также определяются все стороны продукта, которые нужно адаптировать или локализовать. i18n воздействует на процесс проектирования продукта и его производственные процессы способами, которые упрощают работы по локализации, необходимые для их адаптации на территориях, где будет производиться их продажа.

Обычный комплектующий узел для работ по i18n - это набор командных и проверочных средств, которые могут быть использованы для адаптации базового продукта к целевой группе определенного региона. Обычно этот набор команд, локализационный инструментарий, используют переводчики для упрощения процесса определения языковых частей продукта, требующих перевода. Специалисты по локализации также используют эти инструкции для конфигурации продукта, так чтобы он работал в соответствии с требованиями страны конечного пользования. Это, конечно же, предполагает, что продукт разработан так, чтобы его можно было реконфигурировать согласно потребностям страны конечного пользования, что и является основной задачей процесса интернационализации. Возвращаясь к примерам из жизни, процесс i18n с автомобилями, несомненно, предусматривает средства позволяющие инженерам выбирать, с какой стороны должен сидеть водитель, в каких единицах измерения должен показывать скорость спидометр и на каком языке должна быть напечатана инструкция для владельца автомобиля.

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

Локализация

Локализация - это действие, направленное на специализацию продукта для определенного населения. Локализация часто сокращенно называют l10n ('l', после которого идет 10, другие буквы после 'n'). Локализация включает в себя перевод с оригинального языка, используемого в продукте и его документации, подгон продукта под определенные культурные традиции той или иной страны, а также любые другие конфигурации, необходимые для соответствия продукта правовым нормам и нормам защиты окружающей среды.

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

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

Большинство разработчиков программного обеспечения в той или иной мере сталкивались с локализацией. Вам, как минимум, приходилось обеспечивать работу вашего программного обеспечения параллельно в нескольких часовых поясах или вам нужно было формировать текстовые сообщения в файлах свойств Java (или что-то в этом роде). Такие важные технологии для локализации продукта и его соответствующего применения как части всеобщих работ по интернационализации и локализации – это лучший способ сделать более предсказуемым где-то устрашающий процесс адаптации вашего приложения к различным регионам.



В начало


XML

XML был создан для поддержки интернационализации и локализации. Используя кодировки ISO-10646/Unicode, XML поддерживает текст на многих языках, которые могут читаться справа налево или слева направо, могут иметь собственные правила для неотображаемых символов, составных символов, "заворачивания" строк, а также требовать дополнительной адаптации в зависимости от особенностей региона. Кроме того, XML также поддерживает различные типы кодирования текста, предоставляя автору контента возможность задавать кодирование, применяемое в каждом документе. Несмотря на то, что UTF-8 является рекомендуемой кодировкой, возможны и другие типы, которые не привязывают XML к какому-либо определенному кодированию и обеспечивают свободное место для расширения в будущем. Благодаря XML пользователи могут выбирать наиболее подходящее кодирование для своих приложений.

Проектное решение XML предлагает вам одно очень важное свойство, которое делает интернационализацию возможной: оно позволяет создать словарь разметки, который выводит задачу, не фиксируя один определенный предоставленный метод или регион. В качестве примера вы можете рассмотреть фрагмент XML в листинге 1.


Листинг 1. Пример разметки вывода задачи
                 
<description>Ново Орлеанское сражение состоялось в январе 1815 года, две недели
<emphasize>спустя</emphasize> был подписан мирный договор.</description>

В листинге 1 элемент emphasize указывает на то, что текст в этом теге надо выделить любым из способов, который выберет программа, считывающая и отображающая его. Это подходящее и общее выражение вашей задачи, которая в одном регионе может стать составным текстом, который нужно будет выделить курсивом, а в другом - текст должен быть подчеркнут или взят в кавычки. Имея возможность создавать свои типы документов, отображающие подобные задачи, вы можете делать документы, которые будет несложно правильно и в полном объеме локализовать для каждого региона.



В начало


Общие проблемы локализации

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

Идентификация языка

XML был создан для поддержки документов, написанных на множестве разных языков. Для любого исходного документа важно иметь возможность установить используемый автором язык. Это можно сделать при помощи атрибута lang, который описывается в пространстве имен XML. Допустимое значение xml:lang включает двух- или трехбуквенные коды языка, за которыми следует дополнительный двухбуквенный код страны. Например, en, en-us и en-uk – это все допустимые значения языка (правила для допустимых значений расшифровываются в RFC 4646).

Вообще вы всегда должны использовать xml:lang в своих XML-документах для того, чтобы точно определить язык, на котором написан документ. XML также поддерживает документы, содержащие больше одного языка и вы можете использовать xml:lang, чтобы определить разные языки для отдельных элементов и их потомков, как показано в листинге 2.


Листинг 2. Пример документа, содержащего элементы и английского и шведского языков
                 
<document xml:lang="en">
  <paragraph>
    <quote xml:lang="se">Tack så mycket</quote> means thanks.
  </paragraph>
</document>

Помните о том, что вы выбираете английский язык основным языком корневого элемента в листинге 2 и затем заменяете выбор частью шведского языка. Именно так рекомендуют использовать атрибут xml:lang, а не определять его в каждом элементе, содержащем язык.



В начало


Что надо переводить?

Наиболее очевидной задачей локализации XML-документов является перевод их естественно-языкового содержания с исходного языка на все целевые языки. В этом нет ничего сложного, и вы можете спокойно предоставить эту работу профессиональным переводчикам. Очень важно, что вы можете точно определить какие части ваших XML- документов вам нужно перевести, а какие нет.

Internationalization Tag Set (ITS), позднее Рекомендации W3C, обеспечивают решение этих и других вопросов, связанных с интернационализацией. ITS определяет несколько тегов, которые вы можете включить в свои схемы и документы, чтобы выделить задачи в отношении интернационализации. Например, ITS включает тег перевода, который указывает переводчику или автоматическим средствам, которые он использует, нужно ли переводить этот элемент текста.


Листинг 3. Пример использования its:translate
                
<document xml:lang="en">
  <paragraph>Текст, который нужно перевести.</paragraph>
  <paragraph its:translate="no">Текст, который не нужно переводить</paragraph>
</document>

В листинге 3 показано использование тега перевода ITS. ITS содержит реализацию трех распространенных языков описания схемы - XML DTD, XML Schema и Relax NG. Теги ITS могут использовать составители схем в своих схемах и разработчики контента в своих XML- документах.

Возможность отмечать XML-файлы тегами перевода ITS, решает одну из самых больших проблем интернационализации. Теперь средства с ITS могут извлекать переводимый текст с ваших XML- документов и выводить его, используя Localization Interchange File Format (XLIFF), промежуточный формат для использования в других средствах перевода.



В начало


Упрощение процесса перевода при помощи примечаний о локализации

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


Листинг 4. Пример использования ITS-примечаний о локализации
                 
<document xml:lang="en">
  <paragraph its:locNote="Это примечание с описаниями для переводчика.">Какой-то
   текст на перевод.</paragraph>
  <paragraph its:locNote="Это сигнал переводчику." 
its:locNoteType="alert">Текст, который надо перевести.</paragraph>
</document>

В листинге 4 показано использование атрибута localNote с пространства имен ITS . Этот атрибут просто дает переводчикам подсказки, которые они могут прочитать прямо из ваших XML- документов или скорее при помощи переводческих средств, которые отобразят подсказки во время работы. ITS поддерживает два разных типа примечаний: описание и предупреждение. Значение по умолчанию - это вид описания и предупреждение, используемое для акцентирования важности примечания, например, так, чтобы переводческие средства могли его выделить или любим другим способом привлечь внимание переводчика, чтобы убедится, что переводчик его заметит.



В начало


Работа с датами

Когда вы имеете дело с применением продукта во многих странах будьте внимательны с датами и числами. Лучше всего выбрать нейтральное представление даты и создавать соответствующий формат при ее отображении пользователям в определенной стране. К счастью, вопрос отображения в строках информации о дате и времени, подходящих для включения в XML- файлы, уже решен при помощи стандартного способа, так что вам не придется придумывать ничего нового. ISO 8601 устанавливает стандарт, описанный в листинге 5.


Листинг 5. ISO 8601 стандарт формата данных
                 
 Год: 
 YYYY (например 1997) 
 Год и месяц: 
 YYYY-MM (например 1997-07) 
 Полностью дата: 
 YYYY-MM-DD (например 1997-07-16) 
 Полностью дата плюс часы и минуты: 
 YYYY-MM-DDThh:mmTZD (например 1997-07-16T19:20+01:00) 
 Полностью дата плюс часы, минуты и секунды: 
 YYYY-MM-DDThh:mm:ssTZD (например 1997-07-16T19:20:30+01:00) 
 Полностью дата плюс часы, минуты, секунды и доли секунды 
 YYYY-MM-DDThh:mm:ss.sTZD (например 1997-07-16T19:20:30.45+01:00) 
 где: 
 YYYY = четырёхзначный год 
 MM = двухзначный месяц (01=январь,т.д.) 
 DD = двухзначный день месяца (01 до 31)
 hh = две цифры отображают время (00 до 23) (am/pm НЕ допускается) 
 mm = две цифры отображают минуты (00 до 59) 
 ss = две цифры отображают секунды (00 до 59)
 s = одна или больше цифр отображают доли секунды 
 TZD = указатель часового пояса (Z или +hh:mm or -hh:mm) 
  

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

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



В начало


Unicode и интернационализация

Unicode - это важная часть процесса интернационализации, поскольку позволяет рассматривать детали использования с разным набором символов и языками, как внешнюю проблему реального использования ваших приложений. Unicode FAQ выражает это так "С Unicode отдельный процесс интернационализации может создавать код, одновременно справляющийся с требованиями всех мировых рынков".

Конечно, чтобы Unicode смог со всем этим справить, он должен был предлагать решения важных проблем связанных с языком, например, таких как двунаправленность (bidirectionality) – явление, когда одни языки читаются слева направо, а другие справа налево. Unicode действительно поддерживает двунаправленность и используя ярлык ITS dir позволяет задавать предполагаемую направленность части текста. В листинге 6 показан пример с атрибутом W3C ITS dir, который меняет направленность вложенного элемента. Важно помнить о том, что вы должны использовать тег dir даже тогда, когда вы задаете такие языки как арабский или иврит, которые как вы знаете читаются справа налево.


Листинг 6. Пример атрибута ITS dir, используемого для установки направления заданной части контента
                 
<text xmlns:its="http://www.w3.org/2005/11/its" xml:lang="en" 
its:version="1.0">
<body>
<par>Заголовок, на арабском 
   <quote xml:lang="ar" 
its:dir="rtl">نشاط التدويل،W3C</quote>
  значит <quote>Действие интернационализации, W3C</quote>.
</par>
</body>
</text>



В начало


Краткое изложение

Разделите это...

- - digg - Детально изучите этот материал
del.icio.us Отправьте на del.icio.us
- Slashdot - - Slashdot!

В этой статье были описаны важные вопросы интернационализации и локализации. Интернационализация - это подход, применяемый при разработке, предупреждающий необходимость адаптировать продукт для работы в разных регионах и с разными культурными традициями. Локализация – это процесс специализации продукта для определенного региона, который намного проще реализовать, если он следует после интернационализации. Как вы видите, XML был разработан для поддержки использования и развития продукта во всем мире, поддержки различных кодировок символов и Unicode, а также из-за тега xml:lang, который может быть использован для установления языка, используемого в заданном документе. Новейшие разработки в сфере интернационализации XML включают разработку Internationalization Tag Set (ITS), который предоставляет стандартный набор тегов для определения части документа, которую нужно перевести и различные дополнительные средства, которые делают возможным интернационализацию XML- документов.

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



Ресурсы

Научиться

Обсудить


Об авторе

Ернан Силбермэн (Hernan Silberman) является консультантом программного обеспечения для предприятий и специализируется на распределенном программировании с использованием Java-технологий. В Государственном калифорнийском политехническом университете (Помона, Калифорния) он получил степень бакалавра наук в области вычислительной техники и степень бакалавра искусств в области коммуникаций. Сейчас он специалист по системам предприятия и работает в районе залива Сан-Франциско в крупной компании, специализирующейся на развлечениях.




Выскажите мнение об этой странице


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



ДаНетНе знаю
 


 


12345
 


В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.

    IBM в России Конфиденциальность Контакты