Logrus

Русский Українська English Deutsch 中文 Français
v
Знания

Журнал

О проекте

Свежий номер

Избранные статьи

Архив

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

Память переводов

Наши публикации

Грабли

Полезные ссылки

Вопрос - Ответ


Отзывы

Мы прослушали английскую озвучку Паркана 2, нам понравилось. Большое спасибо!

Николай Барышников, International Sales Director,



Многоязычные приложения для мобильных устройств

Джеймс Женг (James Zheng)

В мобильных устройствах обычно используются иные, нежели в настольных или переносных компьютерах, операционные системы. Ресурсы и возможности этих устройств невелики ввиду ограниченных физических размеров и небольшого объёма памяти, а также низкой скорости интернет-соединений, характерной для беспроводных карманных устройств. Наиболее явно различие между полноценными компьютерами и мобильными устройствами проявляется в их назначении. Характерная особенность мобильных устройств в том, что их можно использовать в любое время и в любом месте. При разработке многоязычных приложений для мобильных устройств на эту особенность следует обратить особое внимание, так как могут потребоваться методы, в корне отличающиеся от применяемых при разработке многоязычных приложений для настольных компьютеров.
 
В этой статье представляется новый подход к разработке многоязычных приложений для мобильных устройств (по-настоящему встроенных и независимых от операционной системы), а также описываются некоторые связанные с этим сложности. Кроме того, мы рассмотрим важные факторы и ключевые моменты, которые следует иметь в виду при создании многоязычных мобильных приложений, а также различные технологии разработки и возможные проблемы внедрения. Основное внимание сосредоточено на сетевых приложениях, так как мобильные устройства по природе своей являются сетевыми. В дальнейшем станет понятно, что все эти вопросы часто оказываются взаимосвязанными. В связи с этим особенно важно изучить и оценить все проблемы и возможности на этапе планирования и проектирования приложения. Автор делится своим опытом в надежде, что этот опыт окажется полезен разработчикам и в итоге поможет сократить временные и денежные затраты на разработку многоязычных приложений для мобильных устройств.
 
Являются ли многоязычные приложения для мобильных устройств действительно многоязычными?
 
Многоязычные приложения или функции обычно разрабатываются для конкретной операционной системы и должны поддерживаться операционной системой компьютера или мобильного устройства. Для внедрения многоязычных возможностей в мобильное устройство (в особенности когда речь идёт о поддержке восточных языков) обычно требуются многоязычные компоненты (в том числе шрифты) и дополнительные аппаратные ресурсы (например, память), которые, в свою очередь, приводят к повышению стоимости устройства и дополнительным трудностям. Это одна из основных причин того, что локализованные мобильные устройства, как правило, предназначаются для пользователей определённого региона и поддерживаются операторами беспроводной связи исключительно в этих регионах.
Если разрабатываемое многоязычное мобильное приложение зависит от многоязыковой поддержки на уровне операционной системы, примите это во внимание и ориентируйтесь на конкретную целевую аудиторию пользователей. Однако пользователи мобильных устройств, владеющие двумя или более языками, но не располагающие локализованными устройствами, есть повсюду. Зависимость приложения от операционной системы означает, что этим пользователям не повезло, и что разработчику приложения удалось привлечь лишь часть своих потенциальных покупателей.
 
Пожалуй, можно согласиться с тем, что по-настоящему многоязычное мобильное приложение должно работать на мобильном устройстве, в операционную систему которого не встроены многоязычные возможности. Причина проста. Приложение, для работы которого необходимы многоязычные возможности, встроенные в операционную систему, пользователь не сочтёт многоязычным, и в большинстве случаев воспримет это как поддержку на уровне самого устройства. Например, приложение электронной почты для мобильных устройств на китайском языке, которое работает на телефоне с операционной системой на китайском, не будет восприниматься пользователями как многоязычное, потому что операционная система этого телефона и так предназначена для поддержки китайского языка. Однако если на этом же телефоне работает приложение электронной почты на японском языке, с точки зрения пользователя телефона это приложение будет многоязычным.
 
Если исходить из того, что для всего контента будет использоваться кодировка Юникод, и разработать приложение для работы только с этой кодировкой, многие покупатели будут недовольны и разочарованы.
Выход — разработка по-настоящему многоязычных, встроенных и независимых от операционной системы мобильных приложений. В случае со встроенными приложениями, независимыми от операционной системы, удаётся избежать проблем, характерных для приложений, зависящих от ОС, однако здесь разработчика подстерегают сложности другого рода. Ниже будут подробно рассмотрены эти сложности, а также некоторые важные проблемы, на которые следует обратить особое внимание при разработке приложений.
 
Какие кодировки должно поддерживать приложение? Юникод и собственная (традиционная) кодировка
 
В ходе разработки многоязычного приложения разработчик сталкивается с проблемой кодировки контента: он должен решить, какие кодировки и каким образом будут правильно обрабатываться приложением. В идеале всё должно быть в кодировке Юникод. Однако в реальности в операционных системах и приложениях (например, почтовых) всё ещё широко используются традиционные кодировки для различных языков и наборов символов. В результате, если для всего контента использовать кодировку Юникод и разработать приложение для работы только с этой кодировкой, многие покупатели будут недовольны и разочарованы.
 
Можно разработать приложение, в котором используется кодировка Юникод, а контент в иной кодировке предварительно преобразовывается в Юникод. Для преобразования необходимы таблицы перекрёстного отображения и дополнительное программирование. Всё это увеличит реальный размер приложения и может повлиять на скорость или эффективность его работы.
 
Как должен отображаться в мобильном устройстве многоязычный контент? Шрифты и создание собственного формата данных
 
Для отображения контента обычно необходимо наличие шрифтов в операционной системе. Однако при создании встроенного приложения важно сделать так, чтобы для отображения многоязычного контента приложению не требовались многоязычные шрифты, постоянно хранящиеся в мобильном устройстве. В зависимости от устройства и встроенного приложения можно внедрить один или два способа отображения многоязычного контента.
  • Загрузка шрифтов — если устройство допускает загрузку шрифтов во время выполнения приложения или путём независимой установки. Можно предусмотреть установку шрифтов до того, как приложение запущено или до отображения контента. Впрочем, реальность вносит свои коррективы. В мобильных устройствах пользователям редко разрешается установка шрифтов.
  • Самостоятельное создание — в зависимости от мобильного устройства и используемого при разработке приложения языка программирования можно передавать многоязычный контент с помощью специального или собственного формата данных.
Файлы многоязычных шрифтов, в особенности китайских, японских и корейских, больше по размеру и, следовательно, требуют больше памяти. Маловероятно, что удастся установить «тяжёлый» многоязычный шрифт на стандартное, нелокализованное мобильное устройство. Для моделей с небольшим объёмом памяти это, скорее всего, будет невозможно. Напротив, использование самостоятельно созданного формата данных нередко позволяет приложению отображать многоязычный контент с помощью меньшего, чем шрифты, объёма данных, так как полный объём нужных для этого данных не требуется хранить на мобильном устройстве. Самостоятельное создание формата данных занимает несколько больше времени; при этом для визуализации контента на экране требуется больше программного кода. Вне зависимости от того, кажется ли разработчику более эффективным использование готовых шрифтов или шрифтов в виде данных, для определения оптимального варианта потребуется тестирование. Если шрифты в виде данных созданы не самим разработчиком приложения, нужно будет приобрести лицензию на внедрение и использование шрифтов или данных. Чтобы расходы на разработку способов отображения многоязычного контента не стали неприятным сюрпризом, лучше сразу учесть их в бюджете проекта.
 
Следует ли встраивать в приложение редактор методов ввода? Зависимая от операционной системы и встроенная модели
 
Ответ на этот вопрос зависит от того, каким образом разработчик внедряет приложение и насколько важна для приложения возможность многоязычного ввода. Если приложение зависит от операционной системы, редактор методов ввода (Input Method Editor, IME), возможно, уже имеется в мобильном устройстве. Если же целью является встроенная модель c возможностью многоязычного ввода, вслед за решением для отображения контента потребуется разработать и редактор методов ввода. При этом редактор методов ввода может существенно увеличить общий размер файла проекта. Насколько — зависит от поддерживаемых редактором языков.
 
Где должна происходить обработка данных? Внешняя и внутренняя обработки
 
При разработке многоязычного мобильного приложения с сетевыми подключениями и функциями возможны как внешняя, так и внутренняя обработка. Обработка относительно больших объёмов многоязычных данных быстрее выполняется внешними процессорами. Внутренние процессоры мобильных устройств работают ощутимо медленнее.
 
Кроме того, где и как происходит обработка данных, становится особенно важно, когда речь идёт об обновлении приложения. Если используется внутренний процессор, каждый раз при изменении приложения его нужно будет переустанавливать. Если же основная часть обработки данных выполняется внешним процессором, а внутренний процессор задействуется в основном для интерпретации полученных от него данных, изменения происходят во внешнем процессоре, и изменения приложения, установленного на мобильном устройстве, не требуются (при условии, что формат данных остается прежним). Обработка данных внешним процессором также позволяет сэкономить на размере приложения, так как в основном данные обработки многоязычного контента (такие, как таблицы перекрёстного отображения и шрифты) содержатся на сервере.
 
По возможности следует разработать приложения (или по крайней мере прототипы) для обеих моделей и сравнить их.
 
Какой язык программирования выбрать? Java и другие языки
 
Ответ на этот вопрос определяется четырьмя базовыми факторами.
  • Собственная многоязыковая поддержка в языке программирования. Для разработки многоязычного мобильного приложения наиболее удобен язык программирования со встроенной многоязычной поддержкой или поддержкой Юникода. Главным «претендентом» с этой точки зрения может стать язык Java.
  • Совместимость с устройствами. Чтобы разработать приложение, совместимое с широким набором мобильных устройств, необходимо выбрать язык, который поддерживается во многих мобильных устройствах. С этой точки зрения вновь стоит обратить внимание на язык Java или стандарт J2ME. Однако при разработке приложений для мобильных устройств определённых марок, моделей или конфигураций следует изучить языки, которые поддерживаются конкретными платформами. Собственный язык программирования или разработки платформы обычно даёт прямой (или более удобный) доступ к функциям её операционной системы, что позволяет добиться более высокой скорости работы приложения.
  • Особые свойства. Если приложению для работы требуются какие-либо функции или свойства, которые обеспечиваются операционной системой устройства, разработчику, скорее всего, придётся создавать программный код на том языке, который позволит получить собственную поддержку устройства.
  • Серверные функции. В приложениях, нуждающихся в серверной поддержке через сетевое соединение, часто используются разные языки для серверной и клиентской части, хотя использовать один и тот же язык дешевле и проще с точки зрения обслуживания.
 
Необходимо ли шифрование? Производительность и безопасность
 
Если отвечать коротко — абсолютно необходимо.Шифрование данных — это, вероятно, одно из важнейших с точки зрения пользователя свойств современного приложения, особенно если речь идёт о сетевых или интернет-приложениях. Это относится и к многоязычным мобильным приложениям. Удачных решений в области шифрования разработано немало, подробно описывать их здесь нет необходимости. Следует, однако, упомянуть об одной особенности шифрования при разработке многоязычных мобильных приложений. Во избежание неожиданностей многоязычные данные перед шифровкой необходимо кодировать в base64. Кроме того, следует опробовать несколько различных алгоритмов шифрования, чтобы определить наиболее подходящий по скорости и обеспечению безопасности данных. Стандартные подходы и программы оценки производительности могут оказаться неприменимыми для мобильных устройств.
 
Где хранить данные? Мобильное устройство и внешний сервер
 
При покупке решающим для пользователя фактором может быть место хранения конфиденциальных сведений (например, учётной записи для входа в систему). Пользователю сетевого приложения спокойнее, когда конфиденциальная информация хранится на мобильном устройстве и просто проходит через внешние серверы. Приложение со встроенным двусторонним шифрованием может показаться более привлекательным.
 
Важен ли размер приложения? Беспроводная установка и установка с настольного компьютера
 
Размер, безусловно, важен. Вопрос об объёме памяти для установки и работы приложения не слишком существенен, если разработка ведётся для высокопроизводительных мобильных устройств класса PDA (Personal Digital Assistant, персональный цифровой помощник), однако для мобильных устройств с небольшим объёмом памяти важен каждый килобайт. В нашем случае вопрос стоит ещё более остро, так как для многоязычного мобильного приложения обычно требуется больше памяти, чем для того же приложения без поддержки нескольких языков. Оптимизация алгоритмов и программного кода позволит сократить размер приложения. Возможно, лучший способ добиться компактности многоязычного приложения — разработать его на основе описанной выше модели с использованием внешнего процессора. Важно помнить о том, что в настоящее время основная часть мобильных устройств выпускается с небольшой памятью, а некоторые операторы беспроводной связи накладывают ограничения на размер приложений, которые можно устанавливать на мобильные устройства через беспроводное соединение. Для пользователей, которые по какой-либо причине не могут подсоединить свои мобильные устройства к настольному компьютеру, беспроводная установка может оказаться единственной возможностью установить приложение. Если размеры разработанного приложения будут превышать эти ограничения, таких пользователей оно не заинтересует.
 
Как тестировать мобильные приложения? Эмуляторы и реальные устройства
 
Для начала следует протестировать приложение на эмуляторах, предоставленных производителями мобильных устройств. И только после исправления недочётов, обнаруженных с помощью эмуляторов, переходить к следующей стадии — тестированию на реальных устройствах. Ниже приводятся три основных причины, объясняющих важность второго этапа.
  • На реальном устройстве приложение может вести себя не совсем так, как на эмуляторе. Обычно различия касаются пользовательского интерфейса и скорости.
  • Внедрение отраслевых стандартов может различаться для разных производителей. Возьмём, к примеру, стандарт J2ME. Хотя спецификации MIDP и CLDC точно определены, нередко одно и то же J2ME-приложение выглядит по-разному на мобильных устройствах различных производителей, потому что внедрение MIDP и CLDC в мобильные устройства – это именно их задача. Если стандарты внедрены в мобильные устройства по-разному, то впечатление от использования приложения и даже его поведение могут различаться.
  • Беспроводная сеть отличается от компьютерной сети. Сетевое приложение следует тестировать на самих устройствах и в различных местах, чтобы получить реальное представление о производительности и пользовательском интерфейсе. Сетевое соединение эмулятора с использованием компьютерной сети будет, скорее всего, быстрым и надёжным. В случае с мобильным устройством всё может оказаться иначе.
При разработке встроенного мобильного приложения тестирование на реальных устройствах особенно важно. Поскольку оно обладает многоязыковыми возможностями, которыми не располагает операционная система устройства, необходимо убедиться, что его многоязычные функции правильно работают на всех мобильных устройствах и платформах, для которых оно предназначено.
 
Разумеется, тестирование на мобильных устройствах стоит денег. Можно предложить три варианта снижения затрат.
  • Программа разработки. Можно присоединиться к программе разработки, в рамках которой производитель предлагает устройства для тестирования бесплатно или со скидкой.
  • Тестирование внутри компании. Можно купить или иным способом получить в распоряжение устройства для тестирования.
  • Оборудование для тестирования. Можно воспользоваться услугами компании, предлагающей тестирование мобильных приложений и располагающей широким выбором мобильных устройств.
Вне зависимости от варианта, на котором вы остановитесь, всегда полезно иметь возможность проведения тестирования внутри компании, так как в других случаях обычно требуется некоторое оборотное время. Время — важный фактор, особенно когда речь идёт об отладке приложения.
 
Как донести приложение до конечного пользователя? Каналы распространения и самостоятельное проведение маркетинга
 
Как и в случае с любым другим продуктом, вне зависимости от того, насколько хорошо разработано приложение, от него не будет пользы, если оно не дойдёт до потребителя. Многоязычные мобильные приложения предназначены для особой и часто небольшой группы мобильных пользователей. Донести разработанное приложение до этой группы пользователей непросто. Можно рассмотреть следующие возможности.
  • Провести маркетинг приложения через каналы распространения мобильных приложений. Многие операторы беспроводной связи, предлагая пользователям мобильные приложения, используют платформы сторонних разработчиков. Разработчик обычно становится при этом одним из сторонних поставщиков, и его приложения распространяются клиентам операторов беспроводной связи. Некоторые поставщики услуг не берутся за распространение мобильных приложений, для которых не предусмотрена автоматическая аутентификация и генерирование ключей (нередко на основе веб-технологий). Решение этого вопроса занимает определённое время, поэтому соответствующие операции лучше планировать и проводить заблаговременно.
  • Самостоятельное проведение маркетинга. Можно создать веб-сайт, обеспечивающий потенциальным покупателям доступ к многоязычному мобильному приложению. Так как это многоязычное приложение, важно, чтобы на сайте предоставлялась точная информация о требованиях к мобильному устройству и об отличительных свойствах приложения. Поскольку приложение предназначено для мобильных пользователей, желательно, чтобы сайт поддерживал просмотр с помощью WAP-протоколов.
В заключение скажем, что разработка мобильного приложения — задача сама по себе непростая. Добавление поддержки нескольких языков повышает уровень сложности. Многоязычные мобильные приложения могут со временем стать более популярными — для этого нужны более мощные мобильные устройства, более высокая скорость беспроводных сетей и более дешёвые тарифные планы.
Важнее всего вопрос, станут ли в итоге доступны многоязычные приложения пользователям мобильных устройств со стандартной, нелокализованной операционной системой. Почему это так важно? Многоязычные приложения обычно предназначены для небольшой, особой группы пользователей. Если такое приложение будет поддерживаться более широким спектром мобильных устройств, им заинтересуется больше покупателей. Этой цели можно достичь, разработав по-настоящему встроенное многоязычное мобильное приложение. Разработка такого приложения должна быть тщательной, она потребует серьёзных усилий.
 
Как и при разработке других программных приложений, начинать следует с самых важных свойств, выделяющих это приложение из ряда ему подобных. Прежде всего, многоязычное мобильное приложение должно создаваться на основе гибкой и открытой архитектуры, которая позволит относительно легко расширять или модернизировать функции приложения в соответствии с изменением потребностей в многоязыковых и технологических возможностях мобильных устройств.
 
Джеймс Женг — президент и генеральный директор компании HZ Multimedia, Inc.





Запрос на дополнительную информацию
Расценки на работы
Новости
Все новости