Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

GNU Mailman

Глава 10 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: GNU Mailman
Автор: Barry Warsaw
Перевод: А.Панин

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

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

Система Mailman впервые использовала множество технологий интернационализации, предлагаемых языком Python, но более запутанным способом, чем большинство приложений. В стандартном окружении рабочего стола язык выбирается при входе пользователя в систему и остается неизменным в течение сессии. Однако, Mailman является серверным приложением, поэтому оно должно иметь возможность работать с множеством языков вне зависимости от от языка, с которым работает система. Фактически система Mailman должна определять контекст языка (language context), с учетом которого должен отправляться ответ, и переводить свой текст на этот язык. Иногда для формирования ответа может потребоваться использовать множество языков; например, если уведомление от пользователя из Японии должно быть перенаправлено в список рассылки администраторов, которые разговаривают по-немецки, по-итальянски и по-каталонски.

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


Далее: Выученные уроки