diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index 4d42366590..d3f6103c57 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -909,13 +909,13 @@ import { appRouter } from '../appRouter';
}
if (options.showYear || options.showSeriesYear) {
- const productionYear = item.ProductionYear?.toLocaleString(getCurrentDateTimeLocale(), {useGrouping: false});
+ const productionYear = datetime.toLocaleString(item.ProductionYear, {useGrouping: false});
if (item.Type === 'Series') {
if (item.Status === 'Continuing') {
lines.push(globalize.translate('SeriesYearToPresent', productionYear || ''));
} else {
if (item.EndDate && item.ProductionYear) {
- const endYear = datetime.parseISO8601Date(item.EndDate).getFullYear().toLocaleString(getCurrentDateTimeLocale(), {useGrouping: false});
+ const endYear = datetime.toLocaleString(datetime.parseISO8601Date(item.EndDate).getFullYear(), {useGrouping: false});
lines.push(productionYear + ((endYear === item.ProductionYear) ? '' : (' - ' + endYear)));
} else {
lines.push(productionYear || '');
diff --git a/src/components/imageDownloader/imageDownloader.js b/src/components/imageDownloader/imageDownloader.js
index ad69caa7dc..b88eea6688 100644
--- a/src/components/imageDownloader/imageDownloader.js
+++ b/src/components/imageDownloader/imageDownloader.js
@@ -122,7 +122,7 @@ import template from './imageDownloader.template.html';
html += '';
const startAtDisplay = totalRecordCount ? startIndex + 1 : 0;
- html += globalize.translate('ListPaging', startAtDisplay.toLocaleString(), recordsEnd.toLocaleString(), totalRecordCount.toLocaleString());
+ html += globalize.translate('ListPaging', startAtDisplay, recordsEnd, totalRecordCount);
html += '';
diff --git a/src/components/indicators/indicators.js b/src/components/indicators/indicators.js
index 6b6b635c64..9263acec1d 100644
--- a/src/components/indicators/indicators.js
+++ b/src/components/indicators/indicators.js
@@ -3,6 +3,7 @@ import itemHelper from '../itemHelper';
import '../../elements/emby-progressbar/emby-progressbar';
import './indicators.scss';
import 'material-design-icons-iconfont';
+import { getCurrentDateTimeLocale } from '../../scripts/globalize';
export function enableProgressIndicator(item) {
if (item.MediaType === 'Video' && item.Type !== 'TvChannel') {
@@ -84,7 +85,7 @@ export function getPlayedIndicatorHtml(item) {
if (enablePlayedIndicator(item)) {
const userData = item.UserData || {};
if (userData.UnplayedItemCount) {
- return '
' + userData.UnplayedItemCount.toLocaleString() + '
';
+ return '' + datetime.toLocaleString(userData.UnplayedItemCount) + '
';
}
if (userData.PlayedPercentage && userData.PlayedPercentage >= 100 || (userData.Played)) {
@@ -99,7 +100,7 @@ export function getChildCountIndicatorHtml(item, options) {
const minCount = options && options.minCount ? options.minCount : 0;
if (item.ChildCount && item.ChildCount > minCount) {
- return '' + item.ChildCount.toLocaleString() + '
';
+ return '' + datetime.toLocaleString(item.ChildCount) + '
';
}
return '';
diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js
index 2172329d89..e92551c0fb 100644
--- a/src/components/mediainfo/mediainfo.js
+++ b/src/components/mediainfo/mediainfo.js
@@ -111,8 +111,6 @@ import '../../elements/emby-button/emby-button';
const showFolderRuntime = item.Type === 'MusicAlbum' || item.MediaType === 'MusicArtist' || item.Type === 'Playlist' || item.MediaType === 'Playlist' || item.MediaType === 'MusicGenre';
- const dateTimeLocale = getCurrentDateTimeLocale();
-
if (showFolderRuntime) {
count = item.SongCount || item.ChildCount;
@@ -177,13 +175,13 @@ import '../../elements/emby-button/emby-button';
if (options.year !== false && item.ProductionYear && item.Type === 'Series') {
if (item.Status === 'Continuing') {
- miscInfo.push(globalize.translate('SeriesYearToPresent', item.ProductionYear.toLocaleString(dateTimeLocale, {useGrouping: false})));
+ miscInfo.push(globalize.translate('SeriesYearToPresent', datetime.toLocaleString(item.ProductionYear, {useGrouping: false})));
} else if (item.ProductionYear) {
- text = item.ProductionYear.toLocaleString(dateTimeLocale, {useGrouping: false});
+ text = datetime.toLocaleString(item.ProductionYear, {useGrouping: false});
if (item.EndDate) {
try {
- const endYear = datetime.parseISO8601Date(item.EndDate).getFullYear().toLocaleString(dateTimeLocale, {useGrouping: false});
+ const endYear = datetime.toLocaleString(datetime.parseISO8601Date(item.EndDate).getFullYear(), {useGrouping: false});
if (endYear !== item.ProductionYear) {
text += `-${endYear}`;
@@ -247,7 +245,7 @@ import '../../elements/emby-button/emby-button';
miscInfo.push(item.ProductionYear);
} else if (item.PremiereDate) {
try {
- text = datetime.parseISO8601Date(item.PremiereDate).getFullYear().toLocaleString(dateTimeLocale, {useGrouping: false});
+ text = datetime.toLocaleString(datetime.parseISO8601Date(item.PremiereDate).getFullYear(), {useGrouping: false});
miscInfo.push(text);
} catch (e) {
console.error('error parsing date:', item.PremiereDate);
diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js
index d6598dca3e..d4ce165614 100644
--- a/src/controllers/playback/video/index.js
+++ b/src/controllers/playback/video/index.js
@@ -216,7 +216,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
let title = itemName;
if (item.PremiereDate) {
try {
- const year = datetime.parseISO8601Date(item.PremiereDate).getFullYear().toLocaleString(getCurrentDateTimeLocale(), {useGrouping: false});
+ const year = datetime.toLocaleString(datetime.parseISO8601Date(item.PremiereDate).getFullYear(), {useGrouping: false});
title += ` (${year})`;
} catch (e) {
console.error(e);
diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js
index 01e14d6861..ba9d9da7cc 100644
--- a/src/elements/emby-slider/emby-slider.js
+++ b/src/elements/emby-slider/emby-slider.js
@@ -5,7 +5,8 @@ import keyboardnavigation from '../../scripts/keyboardNavigation';
import './emby-slider.scss';
import 'webcomponents.js/webcomponents-lite';
import '../emby-input/emby-input';
-import { getIsRTL } from '../../scripts/globalize';
+import { getCurrentDateTimeLocale, getIsRTL } from '../../scripts/globalize';
+import datetime from '../../scripts/datetime';
/* eslint-disable indent */
@@ -129,7 +130,7 @@ import { getIsRTL } from '../../scripts/globalize';
if (range.getBubbleText) {
value = range.getBubbleText(value);
} else {
- value = mapFractionToValue(range, value / 100).toLocaleString();
+ value = datetime.toLocaleString(mapFractionToValue(range, value / 100));
}
value = '' + value + '
';
}
diff --git a/src/scripts/datetime.js b/src/scripts/datetime.js
index 691d2802f5..df0650beb2 100644
--- a/src/scripts/datetime.js
+++ b/src/scripts/datetime.js
@@ -1,4 +1,4 @@
-import globalize from './globalize';
+import globalize, { getCurrentDateTimeLocale } from './globalize';
/* eslint-disable indent */
@@ -84,7 +84,7 @@ import globalize from './globalize';
hours = Math.floor(hours);
if (hours) {
- parts.push(hours.toLocaleString());
+ parts.push(toLocaleString(hours));
}
ticks -= (hours * ticksPerHour);
@@ -95,9 +95,9 @@ import globalize from './globalize';
ticks -= (minutes * ticksPerMinute);
if (minutes < 10 && hours) {
- minutes = (0).toLocaleString() + minutes.toLocaleString();
+ minutes = toLocaleString(0) + toLocaleString(minutes);
} else {
- minutes = minutes.toLocaleString();
+ minutes = toLocaleString(minutes);
}
parts.push(minutes);
@@ -105,9 +105,9 @@ import globalize from './globalize';
seconds = Math.floor(seconds);
if (seconds < 10) {
- seconds = (0).toLocaleString() + seconds.toLocaleString();
+ seconds = toLocaleString(0) + toLocaleString(seconds);
} else {
- seconds = seconds.toLocaleString();
+ seconds = toLocaleString(seconds);
}
parts.push(seconds);
diff --git a/src/scripts/globalize.js b/src/scripts/globalize.js
index c643cca9b7..493257bfea 100644
--- a/src/scripts/globalize.js
+++ b/src/scripts/globalize.js
@@ -213,7 +213,7 @@ import { currentSettings as userSettings } from './settings/userSettings';
export function translate(key) {
let val = translateKey(key);
for (let i = 1; i < arguments.length; i++) {
- val = replaceAll(val, '{' + (i - 1) + '}', arguments[i]);
+ val = replaceAll(val, '{' + (i - 1) + '}', arguments[i].toLocaleString(currentCulture));
}
return val;
}
diff --git a/src/scripts/libraryBrowser.js b/src/scripts/libraryBrowser.js
index 2f2268498d..87ee2a7d46 100644
--- a/src/scripts/libraryBrowser.js
+++ b/src/scripts/libraryBrowser.js
@@ -90,7 +90,7 @@ export function getQueryPagingHtml (options) {
if (showControls) {
html += '';
- html += globalize.translate('ListPaging', (totalRecordCount ? startIndex + 1 : 0).toLocaleString(), recordsEnd.toLocaleString(), totalRecordCount.toLocaleString());
+ html += globalize.translate('ListPaging', totalRecordCount ? startIndex + 1 : 0, recordsEnd, totalRecordCount);
html += '';
}