Подтвердить что ты не робот

Интернационализация дат в Интернете

Есть ли у кого-нибудь хорошая "архитектура" для интернационализации дат? как на английском языке в понедельник, китайский: 星期一, голландский: maandag, Japanese: 月曜日

Итак, моя первая идея - создать какой-то класс, который хранит строки с понедельника по воскресенье на 59 разных языках. По-видимому, это совсем не масштабируемо, представьте себе, что мне нужно отобразить "12:34 AM, понедельник, 1 янв 2000". Затем мне понадобится другой перевод для AM, PM, месяцев (как длинной, так и короткой), ординалы, и т.д. и т.д.

Слишком много работы, какое решение?

4b9b3361

Ответ 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 - это надстройка, которая содержит множество компонентов пользовательского интерфейса.

Надеюсь, что это поможет