Интернационализация дат в Интернете
Есть ли у кого-нибудь хорошая "архитектура" для интернационализации дат? как на английском языке в понедельник, китайский: 星期一, голландский: maandag, Japanese: 月曜日
Итак, моя первая идея - создать какой-то класс, который хранит строки с понедельника по воскресенье на 59 разных языках. По-видимому, это совсем не масштабируемо, представьте себе, что мне нужно отобразить "12:34 AM, понедельник, 1 янв 2000". Затем мне понадобится другой перевод для AM, PM, месяцев (как длинной, так и короткой), ординалы, и т.д. и т.д.
Слишком много работы, какое решение?
Ответы
Ответ 1
Предлагаемый подход не является масштабируемым. Подход Microsoft охватывает 350 культур; было высказано предположение о том, что существует 160 глобальных валют и т.д. Поддержание класса, который имеет дело с этим диапазоном возможностей, является потенциальным кошмаром в процессе создания.
@Aron предполагает, что ваш вопрос является дубликатом Интернационализации в Javascript. Одна из ссылок в ответе на этот вопрос предполагает масштабируемый и поддерживаемый путь вперед. Я обычно не защищал бы подход Microsoft, но в этом случае у них действительно есть правильная идея для архитектуры. Разделите материал, специфичный для локали, на классы, которые могут быть включены в ваше приложение. Ссылка на материал, специфичный для локали, ключом, основанным только на культуре (или локали). Не пытайтесь самостоятельно сохранить материал, относящийся к культуре, - если вы не хотите, вы действительно не хотите туда идти.
Ответ 2
Пол Ирланд сказал
date.js был оставлен, а версия на домашней странице не работает.
и
moment.js является supergood и должен быть вашим первым выбором для синтаксического анализа, манипулирования и форматирования даты.
Итак, я думаю, вы, люди, ищущие надежную библиотеку javascript, с i18n должны использовать moment.js
Ответ 3
Datejs должен иметь возможность делать то, что вы пытаетесь сделать:
http://code.google.com/p/datejs/
Начало работы с Datejs
В библиотеке дат javascript имеется около 157 разных языков/языков.
Они придерживались подхода к созданию отдельного файла .js для каждой культуры. Смотрите: источник datejs - trunk/src/globalization
Ответ 4
Намного лучше справляется на стороне сервера. Например, ASP.NET обеспечивает поддержку преобразования дат в строки по меньшей мере на 30 или 40 разных языках. Я не знаю других языков сервера.
Ответ 5
Я советую вам взглянуть на структуру jQuery, которая может решить вашу проблему без необходимости изобретать колесо: http://jqueryui.com/demos/datepicker/#localization
Примечание. jquery-ui - это надстройка, которая содержит множество компонентов пользовательского интерфейса.
Надеюсь, что это поможет