Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

478
Visualizações
vue-i18n: formato de fecha incorrecto para, por ejemplo, noruego

Estoy usando vue-i18n (versión 8.24.2) en mi aplicación, y todo funciona como se esperaba, excepto cuando se muestran las fechas usando locale = nb-NO (noruego). Formato esperado: dd.MM.yyyy . Formato real: MM/dd/aaaa . Al cambiar la configuración regional a alemán, que utiliza el mismo formato de fecha que el noruego, se aplica el formato de fecha correcto.

Este problema abierto probablemente resolvería mi problema: https://github.com/kazupon/vue-i18n/issues/625

Pasé un par de horas investigando este problema, pero actualmente estoy atascado, por lo que cualquier ayuda será muy apreciada.

Mi i18n.ts (Omití la configuración para idiomas no relacionados con este problema)

 import Vue from "vue"; import VueI18n from "vue-i18n"; enum Locales { NO = "nb-NO" } const LOCALES = [ { value: Locales.NO, caption: "Norsk" } ]; import nb_NO from "./locales/nb-NO.json"; export const messages = { [Locales.NO]: nb_NO }; const defaultLocale = Locales.NO; const dateTimeFormats = { "nb-NO": { short: { year: "numeric", month: "2-digit", day: "2-digit", }, long: { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", hour12: false, }, }, } as VueI18n.DateTimeFormats; Vue.use(VueI18n); // Create VueI18n instance with options const i18n = new VueI18n({ locale: navigator.language.split('-')[0] || process.env.VUE_APP_I18N_LOCALE || defaultLocale, fallbackLocale: defaultLocale, messages, dateTimeFormats: dateTimeFormats, silentTranslationWarn: true, }); const translate = (key: string): string => { if (!key) { return ""; } return i18n.t(key) as string; }; export { i18n, translate }; //export above method
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

vue-i18n simplemente reenvía la localización de la fecha a Intl.DateTimeFormat(locale).format(date) .

Parece que el resultado solo es incorrecto en Chrome a partir de v92 ( problema 1233509 ). Este error se solucionó en Chrome Canary v94.

Como solución alternativa, puede modificar los _dateTimeFormatters de la instancia vue-i18n para usar el formateador de configuración regional danés ( da ) para nb-NO :

 const i18n = new VueI18n({/*...*/}); i18n._dateTimeFormatters[Locales.NO + '__short'] = new Intl.DateTimeFormat('da', dateTimeFormats[Locales.NO].short); i18n._dateTimeFormatters[Locales.NO + '__long'] = new Intl.DateTimeFormat('da', dateTimeFormats[Locales.NO].long);

manifestación

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda