myDate.toLocaleString () неправильно отформатирован для любого другого языка, кроме английского - PullRequest
0 голосов
/ 19 сентября 2019

В настоящее время я отправляю даты в шаблоны электронной почты, и мне нужно отформатировать эти даты в соответствии с языком получателя.Я использую функцию toLocaleString (), и она работает как шарм для английского языка, но не для других языков, которые я пробовал.

Я пытался использовать момент или люксон для форматирования даты, но я думаю, либо мой код как-то не так, либо ониоба полагаются на ванильную функцию toLocaleString (), поскольку я сталкиваюсь с одной и той же проблемой.

мой файл .js:

   let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
   return email.send({
      template: 'file-expiration',
      message: {
         to: to,
      },
      locals: {
         fileUuid: fileUuid,
         expireAt: expireAt.toLocaleString('fr-FR', options),
         locale: 'fr',
      },
   });

мой файл .pug:

= `${t('mail.file_expiration.line_1', {name: `${name}`, expireAt: `${expireAt}`})}`

Ожидается:

  • с en-US: воскресенье, 22 сентября 2019 г.

  • с фр. FR: dimanche 22 сентября 2019

Актуальность:

  • с en-US: воскресенье, 22 сентября 2019

  • с FR-FR: 2019M09 22, вс

Я также пробовал 'it-IT' и 'es-ES' с тем же результатом, что и для 'fr-FR'

У кого-нибудь естьидея?Заранее спасибо

1 Ответ

0 голосов
/ 19 сентября 2019

Спасибо тем, кто прокомментировал, особенно @VLAZ и @ User862, потому что они помогли мне найти решение.

Их комментарии помогли мне понять, что моя проблема возникла из-за моей установки Node, которая была собрана только сСША 'locale.

Я нашел это: https://techoverflow.net/2018/09/19/fixing-nodejs-intl-datetimeformat-not-formatting-properly-for-locales/

Что решило все, просто используя intl polyfill.

Большое спасибо!

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