diff options
| author | INOUE Daisuke <inoue.daisuke@gmail.com> | 2025-03-22 21:03:25 +0900 | 
|---|---|---|
| committer | INOUE Daisuke <inoue.daisuke@gmail.com> | 2025-04-08 22:20:36 +0900 | 
| commit | 2449234e28aab435ffe28d567ece8c651d45d2b3 (patch) | |
| tree | 0ef057eebb01821da25dc23a972e03c492830f16 /src/routes | |
| parent | f2ee19f15a78125a1dc2ba8b9c175dd9831e5700 (diff) | |
DateTime format, and some translation fix
Diffstat (limited to 'src/routes')
| -rw-r--r-- | src/routes/frontend.ts | 91 | 
1 files changed, 58 insertions, 33 deletions
diff --git a/src/routes/frontend.ts b/src/routes/frontend.ts index 40b5393..6f9e00a 100644 --- a/src/routes/frontend.ts +++ b/src/routes/frontend.ts @@ -71,7 +71,7 @@ router.get("/new/:magicLinkToken", async (req: Request, res: Response) => {              ...frontendConfig(res),              message: {                  type: "danger", -                text: "This magic link is invalid or has expired. Please request a new one here.", +                text: i18next.t("magiclink-invalid"),              },          });      } @@ -92,6 +92,7 @@ router.get("/events", async (_: Request, res: Response) => {          .lean()          .sort("start");      const updatedEvents: EventListEvent[] = events.map((event) => { +        moment.locale(i18next.language);          const startMoment = moment.tz(event.start, event.timezone);          const endMoment = moment.tz(event.end, event.timezone);          const isSameDay = startMoment.isSame(endMoment, "day"); @@ -101,9 +102,9 @@ router.get("/events", async (_: Request, res: Response) => {              name: event.name,              location: event.location,              displayDate: isSameDay -                ? startMoment.format("D MMM YYYY") -                : `${startMoment.format("D MMM YYYY")} - ${endMoment.format( -                      "D MMM YYYY", +                ? startMoment.format("LL") +                : `${startMoment.format("LL")} - ${endMoment.format( +                      "LL",                    )}`,              eventHasConcluded: endMoment.isBefore(moment.tz(event.timezone)),              eventGroup: event.eventGroup as any as IEventGroup, @@ -133,7 +134,7 @@ router.get("/events", async (_: Request, res: Response) => {      });      res.render("publicEventList", { -        title: "Public events", +        title: i18next.t("frontend.publicevents"),          upcomingEvents: upcomingEventsInMonthBuckets,          pastEvents: pastEventsInMonthBuckets,          eventGroups: updatedEventGroups, @@ -155,31 +156,57 @@ router.get("/:eventID", async (req: Request, res: Response) => {          }          const parsedLocation = event.location.replace(/\s+/g, "+");          let displayDate; +        moment.locale(i18next.language); +        const dateformat = i18next.t("frontend.dateformat"); +        const timeformat = i18next.t('frontend.timeformat');          if (moment.tz(event.end, event.timezone).isSame(event.start, "day")) {              // Happening during one day -            displayDate = -                moment -                    .tz(event.start, event.timezone) -                    .format( -                        'dddd D MMMM YYYY [<span class="text-muted">from</span>] h:mm a', -                    ) + -                moment -                    .tz(event.end, event.timezone) -                    .format( -                        ' [<span class="text-muted">to</span>] h:mm a [<span class="text-muted">](z)[</span>]', -                    ); +            displayDate = i18next.t("frontend.displaydate-sameday", +                {  +                    startdate:  +                        moment +                            .tz(event.start, event.timezone) +                            .format(dateformat), +                    starttime: +                        moment +                            .tz(event.start, event.timezone) +                            .format(timeformat), +                    endtime: +                        moment +                            .tz(event.end, event.timezone) +                            .format(timeformat), +                    timezone: +                        i18next.t('frontend.sameday.timezone',  +                            { tz: +                                moment +                                    .tz(event.end, event.timezone) +                                    .format('(z)',) +                            } ) +                });          } else { -            displayDate = -                moment -                    .tz(event.start, event.timezone) -                    .format( -                        'dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a', -                    ) + -                moment -                    .tz(event.end, event.timezone) -                    .format( -                        ' [<span class="text-muted">–</span>] dddd D MMMM YYYY [<span class="text-muted">at</span>] h:mm a [<span class="text-muted">](z)[</span>]', -                    ); +            displayDate = i18next.t("frontend.displaydate-days", +                { +                    startdate: +                        moment +                            .tz(event.start, event.timezone) +                            .format(dateformat), +                    starttime: +                        moment +                            .tz(event.start, event.timezone) +                            .format(timeformat), +                    enddate: +                        moment +                            .tz(event.end, event.timezone) +                            .format(dateformat), +                    endtime: +                        moment +                            .tz(event.end, event.timezone) +                            .format(timeformat), +                    timezone: +                        moment +                            .tz(event.end, event.timezone) +                            .format('(z)',) +                });          }          let eventStartISO = moment.tz(event.start, "Etc/UTC").toISOString();          let eventEndISO = moment.tz(event.end, "Etc/UTC").toISOString(); @@ -430,8 +457,8 @@ router.get("/group/:eventGroupID", async (req: Request, res: Response) => {              .sort("start");          const updatedEvents: EventListEvent[] = events.map((event) => { -            const startMoment = moment.tz(event.start, event.timezone); -            const endMoment = moment.tz(event.end, event.timezone); +            const startMoment = moment.tz(event.start, event.timezone).locale(i18next.language); +            const endMoment = moment.tz(event.end, event.timezone).locale(i18next.language);              const isSameDay = startMoment.isSame(endMoment, "day");              return { @@ -439,10 +466,8 @@ router.get("/group/:eventGroupID", async (req: Request, res: Response) => {                  name: event.name,                  location: event.location,                  displayDate: isSameDay -                    ? startMoment.format("D MMM YYYY") -                    : `${startMoment.format("D MMM YYYY")} - ${endMoment.format( -                          "D MMM YYYY", -                      )}`, +                    ? startMoment.format("LL") +                    : `${startMoment.format("LL")} - ${endMoment.format("LL")}`,                  eventHasConcluded: endMoment.isBefore(                      moment.tz(event.timezone),                  ),  | 
