Среда - React, Webpack, в браузере.
Этот код работает:
console.log(new Date().toLocaleString(window.navigator.language))
=> en-au 11/01/2019, 1:33:20 pm
Но он не обеспечивает управление форматированием. Этот код тоже работает:
import moment from 'moment'
import 'moment/locale/en-au'
import 'moment/locale/fr'
moment.locale(window.navigator.language)
console.log(moment().format('L LTS'))
=> en-au 11/01/2019 1:33:20 PM
Итак, moment
делает все, что мне нужно, но этот код работает только в США, Австралии и Франции. Похоже, что Webpack «встряхивает дерево» и удаляет все другие локали, предоставляемые moment
, кроме явно «обязательных».
Вопросы:
- Правильно ли я понял?
- Это «правильный» способ сделать это?
- Есть ли способ предварительно загрузить все / большинство / много языков без необходимости перечислять их все?
Чтобы попробовать это, начните с create-реагировать-приложение, а затем добавьте приведенный выше код. Протестируйте его с какой-либо локалью, явно не загруженной (например, 'de'). В моем тестовом моменте по умолчанию будет «en», что означает «en-us».