РЕШЕНИЕ ПРОБЛЕМ МНОГОЯЗЫЧНОСТИ

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

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

Наиболее распространенными информационными структурами для хранения многоязыковых являются:

  • • таблица БД;
  • • хш1-файл, который создается для каждого используемого языка.

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

Использование хш1-файлов облегчает работу БД системы, не зависит от количества используемых языков. Однако при частой модернизации списка многоязыковых сообщений возникает проблема актуальности хш1- файла. Сравнительный анализ использования этих структур приведен в табл. 6.5 (подготовлено автором). Заметим, что обоих случаях придется создавать специальные средства для организации перевода.

Таблица 6.5

Сравнительный анализ целесообразности использования информационных структур для хранения многоязыковых сообщений

Вид

хранения

Скорость

построения

страницы

Удобство

перевода

Мобильность

Большое

количество

языков

Таблица

средняя

высокое

высокая

затруднения в наглядности

хт1-файл

высокая

низкое

низкая

удобно

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

Для выполнения всех действий, связанных с многоязычностью, создается класс с18Еап§иа§е, который содержит все необходимые переменные, свойства и процедуры. При обращении к классу за одним значением сообщения используется некоторая процедура, которая возвращает текст сообщения по заданному коду сообщения и текущему используемому языку. Эта процедура за счет использования полиморфизма позволяет использовать как языковую таблицу в БД, так и хш1-файл.

При обращении для получения таблицы одна или несколько колонок содержат многоязычные данные. Получение их технологически отличается. Если используется языковая таблица, то эти данные можно получить в 80Ь-запросе, написанном специальным образом. Применяя хш1-файлы, данные можно получить только постобработкой результатов 80Б-запроса (рис. 6.9, подготовлено автором).

Схема получения многоязычных сообщений

Рис. 6.9. Схема получения многоязычных сообщений

Схема, приведенная на рисунке, может применяться при использовании xml-файлов, создаваемых на основе таблицы БД, но это решение будет менее эффективным. Такая схема неудобна при разработке web- аппликации и постоянно развивающихся систем. Можно использовать таблицу БД в процессе разработки, а впоследствии, если это целесообразно, переключиться на xml-файлы.

При организации перевода многоязыковых сообщений удобны таблицы БД с возможностью визуализации состояния перевода на всех используемых языках. В случае xml-файлов все непереведенные сообщения должны быть записаны в xml-файле на базовом языке. Исследование аналитической компании Forrester Research показывает, что пользователи Интернета (потенциальные клиенты интернет-маркетинга) при использовании на web-сайте их родного языка проводят на этом сайте в два раза больше времени и тратят в три раза больше денег.

Для создания многоязычных web-разработок необходима такая система управления контентом, которая обеспечивала бы удобное создание web- страниц на всех требуемых языках интерфейса.

При этом желательно учитывать и важность обработки этих страниц на всех возможных языках поисковыми системами типа Google для включения их в списки естественного поиска для попадания в результаты с высоким рейтингом, что обеспечивает возможность поисковой оптимизации (CEO). Каждому владельцу интернет-сервиса хочется, чтобы его система отображалась в первых страницах результатов поиска.

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

Вся информация, связанная с локализацией страниц, должна храниться в специальной кодировке Юникода, которая в отличие от кодировки ASCI I позволяет сохранять данные на двух языках: English + любой европейский язык. Для хранения каждого символа используется однобайтовый код в таблице перекодировки. При кодировке Юникода для каждого символа применяется двухбайтовый код, что позволяет хранить одновременно информацию на всех мировых языках, включая языки, основанные на иероглифах (например, китайский, японский и др.).

Решение для построения многоязычных web-аппликаций может быть статическим или динамическим. При реализации многоязычное™ web- страниц статическим способом (рис. 6.10, подготовлено автором) CMS создает для каждого языка копию web-аппликации и хранит ее отдельно для использования клиентами, для которых удобен этот язык интерфейса. В данном случае не рассматривается элементарный процесс параллельного построения одной и той же web-аппликации на разных языках. Перевод осуществляется на основе заранее подготовленных информационных структур, содержащих параллельные данные для всех допустимых в данной аппликации языков.

Статическая ориентация многоязычное™ web-страниц

Рис. 6.10. Статическая ориентация многоязычное™ web-страниц

При использовании динамической подстановки в каждую web-cтpa- ницу данных для ее языковой локализации осуществляется перевод в момент вызова страницы (рис. 6.11, подготовлено автором).

Лингвистические данные, необходимые для локализации ^'еЬ-страниц, могут однозначно определяться либо по коду, либо по коду и имени уеЬ- странипы. Если привязка осуществляется только по коду, то сообщение с некоторым идентифицированным кодом заменяется в любом месте аппликации на одно и то же значение, например:

Номер страницы

Код

Текст сообщения

страница 1

код 1

добавить

страница 2

код 1

добавить

Динамическая реализация многоязычное™ л/еЬ-страниц

Рис. 6.11. Динамическая реализация многоязычное™ л/еЬ-страниц

При использовании привязки по коду и имени страницы текст сообщения может быть различным на разных уеЬ-страницах, например:

Номер страницы

Код

Текст сообщения

страница 1

код 1

добавить пользователя

страница 2

код 1

добавить письмо

Во втором случае лингвистические данные увеличиваются по объему и содержат много дублирующей информации.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >