Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: World translation (Александр Шлапак)
Аудиторія: шифровальщики XHTML/HTML (используя редакторы или скрипты), разработчики скриптов (PHP, JSP, и т.д.), менеджеры веб проектов, и каждый, кто хочет знать, как обращаться с международными форматами даты.
Как подготовить мои веб-страницы для отображения различных международных форматов даты?
Посетителей сайта из разных мест могут запутать форматы даты. Формат MM/DD/YY (месяц/день/год) является уникальным для США. Почти вся Европа использует формат DD/MM/YY (день/месяц/год). Япония использует формат YY/MM/DD (год/месяц/день). Разделителями могут быть: слэш, тире или периоды. В некоторых местах нули, которые ставятся впереди печатают, а в некоторых их упускают. Если пользователь говорящий по японски на Немецком веб сайте читает веб страницу, которая написанная на Английском языке (на котором говорят американцы US), и эта страница содержит дату 03/04/02, то как они будут рассматривать эту дату?
Ваш первый шаг может быть следующим: предположить что, эта проблема будет решена при локализации веб страниц - то есть пусть переводчик это исправит. Не делайте этого. Вы действительно хотите сохранять отдельные копии документов для США и Великобритании, которые отличаются только форматом даты? В любом случае вам все равно придется иметь дело с многоязычным пользователям, как в нашем вышеупомянутом примере.
У вас есть три варианта, у всех есть преимущества и недостатки:
ISO 8601 указывает формат YYYY-MM-DD. 2003-04-02 более понятный формат чем 03/04/02. (Некоторые предпочитают модифицировать ISO 8601 с помощью аббревиатуры для месяца, чтобы сделать его более понятным, например 2003-Apr-02, но тогда это уже не будет нейтральный язык).
Плюсы:
Минусы:
Для этого используйте название месяца (сокращенно или полностью) и используйте 4 цифры для обозначения года по Григорианскому календарю. Например, 2 апреля 2003.
Плюсы:
Минусы:
HTTP Accept-Language заголовок определяет только язык, которой пользователи предпочитают, но он также обычно используется для определения того, какой локали предоставляется предпочтение.
Этот метод хорошо работает для динамически создаваемых веб документов, когда дата берется из некоторой внутренней памяти страницы, до тех пор пока понятный формат даты, который ожидает пользователь. Соответствие является функцией речевого контекста, а не просто настройкой пользователя в браузере. Например:
Как это будет варьироваться в зависимости от вашей среды разработки. Вот некоторые советы для некоторых общих сред.
Вызывайте ServletRequest метод getLocale или объект HttpServletRequest. Используйте
возвращенный объект Locale для того, чтобы вызвать DateFormat. Обратите внимание, что SHORT (короткий) формат использует только цифры. Если вы хотите однозначные форматы, то
используйте FULL (полный). В некоторых языках даже формат LONG (длинный) - числовой.
Смотрите также ICU4J, так как она содержит более современных данных (и больше функциональности) чем JDK (Набор для Разработки Java).
Используйте Request.ServerVariables('HTTP_ACCEPT_LANGUAGE'), чтобы получить данные которым пользователи отдают предпочтение. Анализируйте первый язык из списка
принятых языков. Вы должны будете сделать свое собственное отображение с буквенного кода локали в числовой Идентификатор Языка. Установите полученное значение в
Session.LCID. Для форматирования даты вызывайте FormatDateTime.
Чтобы избежать двусмысленности, используйте vbLongDate.
Чтобы получить язык, которому отдают предпочтение используйте $ENV{'HTTP_ACCEPT_LANGUAGE'}. Для форматирования значений даты используйте POSIX:strftime.
Вы должны будете сделать свое собственное отображение значения принятых языков в строке с форматом даты.
Нет идеального решения этой проблемы. Взвесьте варианты и выберите лучший вариант в зависимости от ваших предпочтений и ситуации.
Если, вероятно, будет любая двусмысленность со стороны пользователя то, как правило, лучше использовать очевидные названия месяца и 4-значные года по Григорианскому календарю, или по крайней мере указать на странице как читать даты.
Даты можно переформатировать используя динамические методы согласно лингвистическому контексту страницы.
Некоторые выступают за создание тэга <date>, который бы отображал даты в соответствии с языком клиентского приложения. Это зависит от тех же практических вопросов, которые описаны для динамической генерации даты в Японском примере. Соответствующий формат - это обычно функция лингвистического контекста страницы, а не платформа пользователя.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2007-07-04. Переклад останнього оновлення 2012-01-26 11:00 GMT
Для перегляду історії внесення змін до перекладу натисність qa-date-format в блоге i18n.
Copyright © 2003-2012 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.