ISSUE-23207: Date formatters work according to the chosen language (#23258)

(cherry picked from commit 972afc375a2a1f910494316a6a55d6d9d3abb12f)
This commit is contained in:
Marat Khambelov 2025-09-05 10:18:39 +03:00 committed by OpenMetadata Release Bot
parent 3a233195f5
commit 5110176cbf
2 changed files with 13 additions and 12 deletions

View File

@ -52,7 +52,7 @@ import { SearchSourceAlias } from '../interface/search.interface';
import { getFeedCount } from '../rest/feedsAPI';
import { getEntityFeedLink } from './EntityUtils';
import Fqn from './Fqn';
import { t } from './i18next/LocalUtil';
import i18n, { t } from './i18next/LocalUtil';
import serviceUtilClassBase from './ServiceUtilClassBase';
import { showErrorToast } from './ToastUtils';
@ -529,7 +529,7 @@ export const getFeedCounts = async (
};
export const formatNumberWithComma = (number: number) => {
return new Intl.NumberFormat('en-US').format(number);
return new Intl.NumberFormat(i18n.language).format(number);
};
/**

View File

@ -13,6 +13,7 @@
import { capitalize, isNil, toInteger, toNumber } from 'lodash';
import { DateTime, Duration } from 'luxon';
import { DATE_TIME_SHORT_UNITS } from '../../enums/common.enum';
import i18next from '../i18next/LocalUtil';
export const DATE_TIME_12_HOUR_FORMAT = 'MMM dd, yyyy, hh:mm a'; // e.g. Jan 01, 12:00 AM
export const DATE_TIME_WITH_OFFSET_FORMAT = "MMMM dd, yyyy, h:mm a '(UTC'ZZ')'"; // e.g. Jan 01, 12:00 AM (UTC+05:30)
@ -26,7 +27,7 @@ export const formatDateTime = (date?: number) => {
return '';
}
const dateTime = DateTime.fromMillis(date, { locale: 'en-US' });
const dateTime = DateTime.fromMillis(date, { locale: i18next.language });
return dateTime.toLocaleString(DateTime.DATETIME_MED);
};
@ -40,11 +41,11 @@ export const formatDate = (date?: number, supportUTC = false) => {
return '';
}
const dateTime = DateTime.fromMillis(date, { locale: 'en-US' });
const dateTime = DateTime.fromMillis(date, { locale: i18next.language });
return supportUTC
? dateTime.toUTC().toLocaleString(DateTime.DATE_MED)
: dateTime.setLocale('en-US').toLocaleString(DateTime.DATE_MED);
: dateTime.setLocale(i18next.language).toLocaleString(DateTime.DATE_MED);
};
/**
@ -56,7 +57,7 @@ export const formatDateTimeLong = (timestamp?: number, format?: string) => {
return '';
}
return DateTime.fromMillis(toNumber(timestamp), { locale: 'en-US' }).toFormat(
return DateTime.fromMillis(toNumber(timestamp), { locale: i18next.language }).toFormat(
format ?? DATE_TIME_WITH_OFFSET_FORMAT
);
};
@ -68,7 +69,7 @@ export const formatDateTimeLong = (timestamp?: number, format?: string) => {
export const getTimeZone = (): string => {
// Getting local time zone
const timeZoneToString = new Date()
.toLocaleDateString('en-US', {
.toLocaleDateString(i18next.language, {
day: '2-digit',
timeZoneName: 'long',
})
@ -91,7 +92,7 @@ export const formatDateTimeWithTimezone = (timeStamp: number): string => {
return '';
}
const dateTime = DateTime.fromMillis(timeStamp, { locale: 'en-US' });
const dateTime = DateTime.fromMillis(timeStamp, { locale: i18next.language });
return dateTime.toLocaleString(DateTime.DATETIME_FULL);
};
@ -120,7 +121,7 @@ export const customFormatDateTime = (
return formatDateTime(milliseconds);
}
return DateTime.fromMillis(milliseconds, { locale: 'en-US' }).toFormat(
return DateTime.fromMillis(milliseconds, { locale: i18next.language }).toFormat(
format
);
};
@ -132,7 +133,7 @@ export const customFormatDateTime = (
*/
export const getRelativeTime = (timeStamp?: number): string => {
return !isNil(timeStamp)
? DateTime.fromMillis(timeStamp, { locale: 'en-US' }).toRelative() ?? ''
? DateTime.fromMillis(timeStamp, { locale: i18next.language }).toRelative() ?? ''
: '';
};
@ -175,9 +176,9 @@ export const getRelativeCalendar = (
baseTimeStamp?: number
): string => {
return capitalize(
DateTime.fromMillis(timeStamp, { locale: 'en-US' }).toRelativeCalendar({
DateTime.fromMillis(timeStamp, { locale: i18next.language }).toRelativeCalendar({
base: baseTimeStamp
? DateTime.fromMillis(baseTimeStamp, { locale: 'en-US' })
? DateTime.fromMillis(baseTimeStamp, { locale: i18next.language })
: DateTime.now(),
}) || ''
);