322 votes

Comment changer la langue de moment.js ?

J'essaie de changer la langue de la date qui est définie par moment.js. La langue par défaut est l'anglais, mais je veux changer la langue allemande. Voici ce que j'ai essayé :

var now = moment().format("LLL").lang("de");

Il donne NaN .

var now = moment("de").format("LLL");

Ce n'est même pas une réaction.

var now = moment().format("LLL", "de");

Pas de changement : le résultat est toujours en anglais.

Comment cela est-il possible ?

19voto

stackdave Points 1928

Fin 2017 / 2018 : les réponses des autres ont trop de vieux code à éditer, donc voici ma réponse alternative et propre :

avec exigence

let moment = require('moment');
require('moment/locale/fr.js');
// or if you want to include all locales:
require("moment/min/locales.min");

avec des importations

import moment from 'moment';
import 'moment/locale/fr';
// or if you want to include all locales:
require("moment/min/locales.min");

Úsalo:

moment.locale('fr');
moment().format('D MMM YY');  // Correct, set default global format 
// moment.locale('fr').format('D MMM YY') //Wrong old versions for global default format

avec le fuseau horaire

*require :

require('moment-range');
require('moment-timezone');

*import :

import 'moment-range';
import 'moment-timezone';

zones d'utilisation :

const newYork    = moment.tz("2014-06-01 12:00", "America/New_York");
const losAngeles = newYork.clone().tz("America/Los_Angeles");
const london     = newYork.clone().tz("Europe/London");

fonction de formatage de la date

const ISOtoDate = function (dateString, format='') {

 // if date is not string use conversion:
 // value.toLocaleDateString() +' '+ value.toLocaleTimeString();

  if ( !dateString ) {
    return '';
  }

  if (format ) {
    return moment(dateString).format(format);
  } else  {
    return moment(dateString);  // It will use default global format
  }  
};

15voto

Smart Coder Points 41

Vous devez ajouter moment.lang(navigator.language) dans votre script.

Vous devez également ajouter les paramètres locaux de chaque pays que vous souhaitez afficher : par exemple, pour GB ou FR, vous devez ajouter ce format de paramètres locaux dans la bibliothèque moment.js. Un exemple de ce format est disponible dans la documentation de momentjs. Si vous n'ajoutez pas ce format dans moment.js, il prendra TOUJOURS la locale US, car c'est la seule que je vois actuellement.

7voto

mwarren Points 2110

POUR LES UTILISATEURS DE METEOR :

moment Les locales ne sont pas installées par défaut dans Meteor, vous n'obtenez que la locale 'en' avec l'installation par défaut.

Vous devez donc utiliser le code indiqué correctement dans les autres réponses :

moment.locale('it').format('LLL');

mais il restera en anglais jusqu'à ce que vous installiez la locale dont vous avez besoin.

Il existe un moyen simple et efficace d'ajouter des locales individuelles pour les moment en météorite (fourni par rzymek ).

Installer le moment de la manière habituelle avec les météorites :

meteor add rzymek:moment

Il suffit ensuite d'ajouter les locales dont vous avez besoin, par exemple pour l'italien :

meteor add rzymek:moment-locale-it

Ou si vous voulez vraiment ajouter toutes les localités disponibles (ce qui ajoute environ 30k à votre page) :

meteor add rzymek:moment-locales

7voto

apadana Points 3851

À partir de la version 2.18.1 :

  moment.locale("de");
  var m = moment().format("LLL")

6voto

Muchab Points 309

Celui-ci fonctionne en détectant automatiquement la position actuelle de l'utilisateur.

import moment from "moment/min/moment-with-locales";

// Then use it as you always do. 
moment(yourDate).format("MMMM Do YYYY, h:mm a")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X