From 27a148afcf4f31c0caecbeb3d3dc2a89556322dd Mon Sep 17 00:00:00 2001 From: Chneemann Date: Fri, 14 Jun 2024 20:45:40 +0200 Subject: [PATCH] improved date formatting and translation handling --- .vscode/settings.json | 11 +++++ .../chat-content/chat-content.component.ts | 44 +++++++------------ src/assets/i18n/de.json | 26 +++++++++++ src/assets/i18n/en.json | 26 +++++++++++ 4 files changed, 78 insertions(+), 29 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..30e1617 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "cSpell.words": [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday" + ] +} diff --git a/src/app/components/main-chat/chat-content/chat-content.component.ts b/src/app/components/main-chat/chat-content/chat-content.component.ts index 7414b92..488a16d 100644 --- a/src/app/components/main-chat/chat-content/chat-content.component.ts +++ b/src/app/components/main-chat/chat-content/chat-content.component.ts @@ -14,6 +14,7 @@ import { ChatMsgBoxComponent } from '../chat-msg-box/chat-msg-box.component'; import { CommonModule } from '@angular/common'; import { ChannelService } from '../../../service/channel.service'; import { InfoComponent } from '../info/info.component'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-chat-content', @@ -44,6 +45,7 @@ export class ChatContentComponent implements AfterViewInit { private chatService: ChatService, private userService: UserService, public channelService: ChannelService, + private translateService: TranslateService, private renderer: Renderer2 ) {} @@ -118,40 +120,24 @@ export class ChatContentComponent implements AfterViewInit { * @param {number} timestamp - The timestamp to convert. * @returns {string} The formatted date string. */ - convertTimestampDate(timestamp: number) { + convertTimestampDate(timestamp: number): string { const currentDate = new Date(); const inputDate = new Date(timestamp * 1000); - - const days = [ - 'Sunday', - 'Monday', - 'Tuesday', - 'Wednesday', - 'Thursday', - 'Friday', - 'Saturday', - ]; - const months = [ - 'Jan.', - 'Feb.', - 'Mar.', - 'Apr.', - 'May.', - 'Jun.', - 'Jul.', - 'Aug.', - 'Sep.', - 'Oct.', - 'Nov.', - 'Dec.', - ]; - const dayNumber = inputDate.getDate(); - const day = days[inputDate.getDay()]; - const month = months[inputDate.getMonth()]; + + const day = this.translateService.instant( + `weekdays.${inputDate + .toLocaleDateString('en-US', { weekday: 'long' }) + .toLowerCase()}` + ); + const month = this.translateService.instant( + `months.${inputDate + .toLocaleDateString('en-US', { month: 'short' }) + .toLowerCase()}` + ); if (inputDate.toDateString() === currentDate.toDateString()) { - return `Today`; + return this.translateService.instant('weekdays.today'); } else { return `${day}, ${dayNumber} ${month}`; } diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 1a1b131..2aced9e 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -217,6 +217,32 @@ "message": "Direktnachrichten" }, + "weekdays": { + "monday": "Montag", + "tuesday": "Dienstag", + "wednesday": "Mittwoch", + "thursday": "Donnerstag", + "friday": "Freitag", + "saturday": "Samstag", + "sunday": "Sonntag", + "today": "Heute" + }, + + "months": { + "jan": "Jan.", + "feb": "Feb.", + "mar": "Mär.", + "apr": "Apr.", + "may": "Mai", + "jun": "Jun.", + "jul": "Jul.", + "aug": "Aug.", + "sep": "Sep.", + "oct": "Okt.", + "nov": "Nov.", + "dec": "Dez." + }, + "imprint": { "headline": "Imprint", "tmg": "Angaben gemäß §5 TMG", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 31e64e0..3c5166d 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -217,6 +217,32 @@ "message": "Direct Messages" }, + "weekdays": { + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "today": "Today" + }, + + "months": { + "jan": "Jan.", + "feb": "Feb.", + "mar": "Mar.", + "apr": "Apr.", + "may": "May", + "jun": "Jun.", + "jul": "Jul.", + "aug": "Aug.", + "sep": "Sep.", + "oct": "Oct.", + "nov": "Nov.", + "dec": "Dec." + }, + "imprint": { "headline": "Imprint", "tmg": "Information according to §5 TMG",