пятница, 10 октября 2008 г.

Полезность глобализации при разработке приложений

Как пишет Олег Аксeнов в своём блоге, глобализация – это процесс проектирования и реализации ПО, предназначенного для использования локализованного UI пользователями разных регионов мира. Вот полный текст сообщения:

Хочу поделиться некоторыми мыслями по поводу глобализации. Разумеется не о глобализации как «процессе всемирной экономической, политической и культурной интеграции» ((с) Wikipedia), а о глобализации приложений :) Недавно обсуждали это на работе, решил поделиться и с вами своими соображениями на этот счет.

Почитать о том, что это такое, какие есть best practices и технологии можно в поиске по MSDN. Если коротко, глобализация – это процесс проектирования и реализации ПО, предназначенного для использования локализованного UI пользователями разных регионов мира. В этом контексте локализация – это процесс перевода ресурсов приложения для всех регионов, которые поддерживает приложение. Для простоты можно считать регионы странами, хотя это не совсем так.

Теперь о моем отношении к этому вопросу.

Вряд ли я открою Америку, если скажу, что практически для любого приложение, написанного сначала только для использования пользователями одного региона, потенциально может потребоваться локализация.

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

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

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

  • Когда строковые ресурсы не «внедрены» в web-приложение, а поставляются в виде отдельных файлов, их можно оперативно скорректировать на рабочем сервере без необходимости полного деплоймента и перезапуска приложения.
  • Иногда полезно бывает получить полный список сообщений в системе для review у заказчика, а получить их из одного или нескольких XML-файлов на порядок проще, чем «собирать» их по всему приложению.

Кстати, в Visual Studio есть (теперь, уже встроенная) поддержка генерации классов для строковых ресурсов. Хотя в моей компании все-таки используются внешние ресурсы в своем формате (тоже с генерируемыми классами).