интернационализация дат в сети - PullRequest
12 голосов
/ 09 мая 2011

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

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

Это слишком много работы, в чем решение?

Ответы [ 5 ]

7 голосов
/ 18 сентября 2012

Пол Айриш сказал

date.js был прерван, и версия на главной странице содержит ошибки.

и

moment.js очень хороший и должен быть вашим первым выбором для разбора даты, манипулирования и форматирования.

Так что, я думаю, вам, людям, которые ищут надежную библиотеку JavaScript для даты с i18n, следует использовать moment.js

4 голосов
/ 09 мая 2011

Datejs должен иметь возможность делать то, что вы пытаетесь сделать:

http://code.google.com/p/datejs/

Начало работы с Datejs

Это JavaScriptбиблиотека дат, в которой поддерживается около 157 различных культур дат / языков.
Они выбрали отдельный файл .js для каждой культуры.См .: источник datejs - транк / источник / глобализация

4 голосов
/ 09 мая 2011

Подход, который вы предлагаете, не масштабируется. Подход Microsoft имеет дело с 350 культурами; было высказано предположение, что существует 160 валют, торгуемых на мировом рынке и т. д. Поддержание класса, который имеет дело с этим диапазоном возможностей, является потенциальным кошмаром при создании.

@ Арон предполагает, что ваш вопрос является дубликатом Интернационализация в Javascript . Одна из ссылок в ответе на этот вопрос предлагает масштабируемый и поддерживаемый способ продвижения вперед. Обычно я не защищал бы подход Microsoft, но в этом случае они, похоже, имеют правильное представление об архитектуре. Разделяйте материал, специфичный для данной локали, на классы, которые можно включить в ваше приложение. Ссылка на материал конкретной локали по ключу на основе только культуры (или локали). Не пытайтесь поддерживать материал, специфичный для культуры, - если вы НЕ ДОЛЖНЫ, вы действительно не хотите туда идти.

2 голосов
/ 09 мая 2011

Гораздо лучше обрабатывается на стороне сервера. Например, ASP.NET поддерживает преобразование дат в строки как минимум на 30 или 40 разных языках. Я не знаю о других языках сервера.

1 голос
/ 09 мая 2011

Я советую вам взглянуть на инфраструктуру jQuery, которая может решить вашу проблему без необходимости заново изобретать колесо: http://jqueryui.com/demos/datepicker/#localization

Примечание: jquery-ui - это надстройка, которая содержит множество компонентов пользовательского интерфейса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...