From 39573ea17b014ca359f74dfb71e77a8c6990e8f5 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 7 Feb 2026 19:21:40 -0800 Subject: [PATCH] New: Use translations for days of week Closes #8384 --- frontend/src/Language/useLanguageName.ts | 9 ++++++-- .../src/Utilities/Date/getRelativeDate.ts | 23 ++++++++++++++++++- src/NzbDrone.Core/Localization/Core/en.json | 5 ++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/frontend/src/Language/useLanguageName.ts b/frontend/src/Language/useLanguageName.ts index b451ccd68..7e880384f 100644 --- a/frontend/src/Language/useLanguageName.ts +++ b/frontend/src/Language/useLanguageName.ts @@ -1,4 +1,5 @@ -import { useCallback } from 'react'; +import moment from 'moment'; +import { useCallback, useEffect } from 'react'; import useApiQuery from 'Helpers/Hooks/useApiQuery'; interface LanguageResponse { @@ -22,7 +23,11 @@ const useLanguage = () => { }; export const useInitializeLanguage = () => { - useLanguage(); + const { data } = useLanguage(); + + useEffect(() => { + moment.locale(data?.identifier); + }, [data]); }; const useLanguageName = () => { diff --git a/frontend/src/Utilities/Date/getRelativeDate.ts b/frontend/src/Utilities/Date/getRelativeDate.ts index 1a3d56096..e5ef87bdb 100644 --- a/frontend/src/Utilities/Date/getRelativeDate.ts +++ b/frontend/src/Utilities/Date/getRelativeDate.ts @@ -74,7 +74,7 @@ function getRelativeDate({ if (isInNextWeek(date)) { const dateTime = convertToTimezone(date, timeZone); - const day = dateTime.format('dddd'); + const day = getDayOfWeek(dateTime.day()); return includeTime ? translate('DayOfWeekAt', { day, time }) : day; } @@ -88,3 +88,24 @@ function getRelativeDate({ } export default getRelativeDate; + +function getDayOfWeek(dayNumber: number) { + switch (dayNumber) { + case 0: + return translate('Sunday'); + case 1: + return translate('Monday'); + case 2: + return translate('Tuesday'); + case 3: + return translate('Wednesday'); + case 4: + return translate('Thursday'); + case 5: + return translate('Friday'); + case 6: + return translate('Saturday'); + default: + return ''; + } +} diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index cd49e021e..975ca5aed 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -786,6 +786,7 @@ "Formats": "Formats", "Forums": "Forums", "FreeSpace": "Free Space", + "Friday": "Friday", "From": "From", "FullColorEvents": "Full Color Events", "FullColorEventsHelpText": "Altered style to color the entire event with the status color, instead of just the left edge. Does not apply to Agenda", @@ -1862,6 +1863,7 @@ "RssSyncIntervalHelpText": "Interval in minutes. Set to zero to disable (this will stop all automatic release grabbing)", "RssSyncIntervalHelpTextWarning": "This will apply to all indexers, please follow the rules set forth by them", "Runtime": "Runtime", + "Saturday": "Saturday", "Save": "Save", "SaveChanges": "Save Changes", "SaveSettings": "Save Settings", @@ -2089,6 +2091,7 @@ "TheTvdb": "TheTVDB", "Theme": "Theme", "ThemeHelpText": "Change Application UI Theme, 'Auto' Theme will use your OS Theme to set Light or Dark mode. Inspired by Theme.Park", + "Thursday": "Thursday", "Threshold": "Threshold", "Time": "Time", "TimeFormat": "Time Format", @@ -2120,6 +2123,7 @@ "TotalFileSize": "Total File Size", "TotalRecords": "Total records: {totalRecords}", "TotalSpace": "Total Space", + "Tuesday": "Tuesday", "Trace": "Trace", "True": "True", "TvdbId": "TVDB ID", @@ -2221,6 +2225,7 @@ "Wanted": "Wanted", "Warn": "Warn", "Warning": "Warning", + "Wednesday": "Wednesday", "Week": "Week", "WeekColumnHeader": "Week Column Header", "WeekColumnHeaderHelpText": "Shown above each column when week is the active view",