Moment.js i18n text ändern in Reactjs

Ich hatte das Problem das ich von moment.js die funktion fromNow und ago benutze und mir der Text nicht gefallen hat.

Denn mir wurde wenn etwas vor ein paar tagen bearbeitet wurde der Text "Bearbeitet vor 15 Tage"  angezeigt.

Jetzt hätte ich da aber gerne vor 15 Tagen stehen gehabt. 

 

Um den Text jetzt zu ändern musst du folgendes tun:

import React from "react";
import moment from "moment";
import Moment from "react-moment";
import 'moment/locale/de';

Moment.globalMoment = moment;
Moment.globalLocale = "de";

moment.updateLocale("de", {
    relativeTime: {
        dd: "%d Tagen",
        d: "einem Tag",
        h: "einer Stunde",
    },
});

export const Dates = ({link}) => {
    return (
        <div className="dates">
            <div>
                Erstellt vor <Moment date={link.creationDateTime} fromNow ago/> von{" "}
                {link.createdBy}
            </div>
            <div>
                Bearbeitet vor <Moment date={link.updatedAt} fromNow ago/>
                {link.updatedBy != null && <> von {link.updatedBy} </>}
            </div>
        </div>
    );
};

export const DateAgo = ({item}) => {
    return <Moment date={item} fromNow ago/>;
};

mit diesem Code überschreibst du die Deutsche locals datei. Dabei werden nur die überschrieben die du dort angibst.

Jetzt wird anstatt vor 15 Tage -> vor 15 Tagen angezeigt.

 

Es gibt noch eine ganze menge von objekten die du ändern kannst, diese findest du in der Doku von moment.js.

Über Felix