Обзор
Я хотел бы услышать отзывы о моем подходе к интернационализации приложения AJAX. Это хороший подход? Какие другие подходы заслуживают рассмотрения? Вот краткое описание приложения:
- Приложение AJAX, работающее с одной HTML-страницы, созданной на стороне сервера с i18n
- HTML-страница импортирует JQuery и плагины
- Использует XHR для загрузки созданных на сервере шаблонов i18n HTML по мере необходимости
- Загружает данные приложения в формате JSON с URL-адресов REST
- Сборка результатов с использованием шаблонов и данных
Дополнительная информация
Создайте тяжелое приложение ajax, которое представляет собой всего лишь одну стандартную HTML-страницу. Эта страница динамически генерируется через серверную инфраструктуру и полностью интернационализируется на стороне сервера. На этой странице загружается JQuery, а также несколько плагинов.
С этого момента приложение в основном выполняет только запросы XHR. Некоторые из этих запросов предназначены для HTML-шаблонов (фрагментов кода HTML с заполнителями, для которых нужны реальные данные), которые используются JQuery для создания динамического содержимого на странице. Эти типы запросов обычно не содержат каких-либо данных приложения, а просто заполнители, для которых данные должны отображаться. Эти фрагменты генерируются динамически на стороне сервера и используется i18n. Их нужно запрашивать только один раз для каждого шаблона.
Основная часть запросов в качестве приложения используется для данных приложения. Эти данные извлекаются через запросы XHR службе REST, которая выводит данные JSON. Эти исходные данные затем используются кодом jQuery для заполнения шаблонов и создания частей страницы. Массивы данных заставляют шаблоны повторяться. Поскольку эти данные поступают из базы данных, на нем не выполняется i18n.
Интернационализация на стороне клиента
Если пользовательский интерфейс нуждается в каких-либо других строках i18n, они могут быть сохранены в JSON и обслуживаться либо как часть начальной HTML-страницы, либо как специальный URL-адрес REST, который возвращает JSON-ключи/текстовые сопоставления. Такие функции, как сообщения об ошибках, могут понадобиться.
Локализация на стороне клиента
Итак, это подводит меня к локализации. Такие вещи, как даты и деньги, будут перенесены в нормализованные форматы данных JSON. Таким образом, клиент будет отображать эту информацию в правильном формате для клиента. Я не думаю, что это будет слишком большой проблемой, или будет?
Если это произойдет, возможно, мне нужно, чтобы серверные строки возвращали соответствующие строки форматирования на основе локали клиента. Клиент может использовать что-то вроде DateJS для форматирования дат. Я еще не совсем уверен в этом, особенно учитывая, что DateJS настолько велик. Но есть и другие варианты клиентской стороны, которые намного меньше.
Ресурсы
Я нашел некоторые плагины jQuery, которые могут помочь с этим. Кто-нибудь может что-нибудь сказать о них? Или знаете других?