J'essaye de changer la langue de la date qui est réglée par moment.js. La langue par défaut est l'anglais, mais je souhaite définir la langue allemande. Voici ce que j'ai essayé:
var now = moment().format("LLL").lang("de");
C'est donner NaN
.
var now = moment("de").format("LLL");
Cela ne réagit même pas.
var now = moment().format("LLL", "de");
Pas de changement: cela produit toujours un résultat en anglais.
Comment est-ce possible?
javascript
momentjs
donateur
la source
la source
Réponses:
Vous avez besoin de moment.lang ( ATTENTION :
lang()
est obsolète depuis moment2.8.0
, utilisez à lalocale()
place):http://momentjs.com/docs/#/i18n/
À partir de la v2.8.1,
moment.locale('de')
définit la localisation, mais ne renvoie pas de fichiermoment
. Quelques exemples:En résumé, l'appel
locale
au globalmoment
définit les paramètres régionaux de toutes lesmoment
instances futures , mais ne renvoie pas d'instance demoment
. L'appellocale
sur une instance, la définit pour cette instance ET renvoie cette instance.Aussi, comme Shiv l'a dit dans les commentaires, assurez-vous d'utiliser "moment-with-locales.min.js" et non "moment.min.js", sinon cela ne fonctionnera pas.
la source
var deMoment = moment(); deMoment.lang('de')
et réutiliserdeMoment
au lieu de moment tout au long de votre script.Deprecation warning: moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages. Arguments: fr
import moment from 'moment'; import localization from 'moment/locale/de'
moment().locale("de", localization).format('LLL')
J'ai dû importer aussi la langue:
Ensuite, utilisez le moment comme vous le feriez normalement
la source
import 'moment/locale/es'
require("moment/min/locales.min");
ou en utilisant importimport 'moment/min/locales.min'
Méthode la plus rapide: installer avec Bower
Je viens d'installer moment avec bower et lié en
de.js
tant que ressource javascript dans mon projet html.bower install moment --save
Vous pouvez également télécharger manuellement les fichiers
moment.js
etde.js
.Liez 'de.js' dans votre projet
Lier le
de.js
dans mon fichier de projet principal a automatiquement changé les paramètres régionaux pour tous les accès à la classe moment et ses méthodes.Il ne sera plus nécessaire de faire un
moment.locale("de").
oumoment.lang("de").
dans le code source.Liez simplement votre langue souhaitée comme ceci:
Ou vous pouvez lier les bibliothèques sans le
bower_components
chemin, si vous avez téléchargé moment.js dans le style des années 1990 via un clic droit, ce qui fonctionne toujours bien dans la plupart des scénarios.la source
<script src="/bower_components/moment/locale/de.js"></script>
. Cela fonctionne pour moi en ce moment.Avec momentjs 2.8+, procédez comme suit:
http://momentjs.com/docs/#/i18n/
la source
moment.locale('de')
, et vous créez un nouvel objet représentant la date de now bymoment()
(notez la parenthèse) et ensuiteformat('LLL')
. La parenthèse est importante. Testé en 2.20. N'oubliez pas non plus d'utilisermoment-with-locale.js
et si nécessaire, changez le nom enmoment.js
. Django refuse simplement de chargermoment-with-locale.js
dans mon cas.moment().locale('de').format('LLL');
Vous devrez ajouter
moment.lang(navigator.language)
votre script.Et vous devez également ajouter les paramètres régionaux du pays dans lesquels vous souhaitez afficher: par exemple pour GB ou FR, vous devez ajouter ce format de paramètres régionaux dans la bibliothèque moment.js. Un exemple d'un tel format est disponible dans la documentation momentjs. Si vous n'ajoutez pas ce format dans moment.js, il sélectionnera TOUJOURS les paramètres régionaux américains car c'est le seul que je vois actuellement.
la source
fin 2017/2018: les autres réponses ont trop de vieux code à éditer, alors voici ma réponse propre alternative:
avec exiger
avec importations
Utilisation:
avec fuseau horaire
*exiger:
*importer:
utiliser les zones:
fonction pour formater la date
la source
import moment from 'moment/min/moment-with-locales';
POUR LES UTILISATEURS METEOR:
au moment où 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.
Donc, vous utilisez le code comme indiqué correctement dans d'autres réponses:
mais il restera en anglais jusqu'à ce que vous installiez les paramètres régionaux dont vous avez besoin.
Il existe un moyen agréable et propre d'ajouter des paramètres régionaux individuels pour le moment dans meteor (fourni par rzymek ).
Installez le package moment de la manière habituelle des météores avec:
Ensuite, ajoutez simplement les paramètres régionaux dont vous avez besoin, par exemple pour l'italien:
Ou si vous voulez vraiment ajouter tous les paramètres régionaux disponibles (ajoute environ 30k à votre page):
la source
rzymek:moment-locale-de
et cela a fonctionné :)Avec le moment 2.18.1 et au-delà:
la source
Démo
la source
Comme j'utilisais webpack avec gulp et ses amis ( ce générateur a tout configuré pour moi), j'ai dû modifier le fichier bower.json. J'ai dû remplacer le package d'importation par défaut pour le moment et sélectionner le fichier fourni avec toutes les langues:
Ceci est mon fichier bower.json complet:
la source
J'utilise angular2-moment, mais l'utilisation doit être similaire.
la source
Changer la langue du moment js selon la version
Version: 2.8+
moment.locale ('salut');
Version: 2.5.1
moment.lang ('salut');
la source
fonctionne bien comme ça:
return moment(status.created_at).locale('es').fromNow();
la source
Je ne sais pas ce qui a changé mais l'importation du fichier de langue comme celle-ci a fonctionné pour moi
Notez le src dans l'instruction d'importation
la source
pour momentjs 2.12+ , procédez comme suit:
Notez également que vous devez utiliser
moment.updateLocale(localeName, config)
pour modifier un paramètre régional existant.moment.defineLocale(localeName, config)
ne doit être utilisé que pour créer un nouveau paramètre régional.la source
Pour moi, il y a quelques changements à faire (ver. 2.20)
moment.locale('de')
, et vous créez un nouvel objet représentant la date de now bymoment()
(notez la parenthèse), puisformat('LLL')
il. La parenthèse est importante.Donc ça signifie:
moment-with-locale.js
. Le fichier contient toutes les informations locales et a une taille de fichier plus grande. Télécharger lelocale
dossier ne suffit pas. Si nécessaire, modifiez le nom enmoment.js
. Django refuse simplement de chargermoment-with-locale.js
dans mon cas.EDIT: Il s'est avéré que renommer le fichier n'est pas nécessaire. J'ai juste oublié de l'invoquer dans la page donc Django ne pense pas que le chargement soit nécessaire, donc ma faute.
la source
Celui-ci fonctionne simplement en détectant automatiquement l'emplacement actuel de l'utilisateur.
la source
Oups glisser du stylo. Je résoudrais ceci:
var moment = function(x) { return moment(x).locale('de'); }
les autres moyens ne semblent pas vraiment coller / tenir dans des conditions (pour moi).la source
Pour ceux qui travaillent dans des environnements asynchrones,
moment
se comporte de manière inattendue lors du chargement de paramètres régionaux à la demande.Au lieu de
inverser l'ordre
Il semble que les paramètres régionaux sont chargés dans les paramètres régionaux actuellement sélectionnés, remplaçant les informations de paramètres régionaux précédemment définis. Donc, changer d'abord les paramètres régionaux, puis charger les informations locales ne cause pas ce problème.
la source
Après avoir lutté, cela a fonctionné pour moi pour la
moment
v2.26.0:Vous pouvez passer
en
,fr
oues
. Si vous vouliez une autre langue, vous devrez importer les paramètres régionaux et les ajouter au tableau.Si vous n'avez besoin de prendre en charge qu'une seule langue, c'est un peu plus simple:
la source