Другой формат даты и одна локаль - PullRequest
0 голосов
/ 16 февраля 2019

Я использую I18n.t('date.formats.default') для форматирования даты.

Проблема в том, что в разных странах существует разных форматов даты , но одна английская локаль .

Например, '% m.% D.% Y ' fo US и '% d.% M.% Y ' для Австралия

Мне нужны идеи, как справиться с этим.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Я думаю, что это более удобный способ использования разных локалей.

Например en-AU.yml, en-US.yml, en-CA.yml и т. Д.?Особенно i18n поддерживает это.

В Австралии также используется другой формат времени.

Каждый раз, когда вам необходимо учитывать все эти нюансы для каждой страны.

Использование разных локалей упрощает это.

0 голосов
/ 16 февраля 2019

Хотя вы могли бы просто использовать что-то другое для форматов даты, самое простое решение было бы сохранить все возможных вариантов в одной строке и при извлечении делать (при условии, что код страны известен):

'date.formats.default': 'US[%m.%d.%Y],AU[%d.%m.%Y]'

code = 'AU'
format = I18n.t('date.formats.default')
format[/(?<=#{code}\[).*?(?=\])/] || format
#⇒ "%d.%m.%Y"

Последний || format необходим для поддержки нормального формата без скобок.


Если вам не нравятся регулярные выражения, сохраните там JSON, содержащий хэш {CODE => FORMAT}, проанализируйте его и получите значение.

...