Switch tracking from Array to Set

f11a834895b419a479167083b9c3de92cba5a088

Wolfsblvt <wolfsblvt@gmail.com>

1 files changed, +7 -7Ignore whitespace
public/scripts/i18n.js+7 -7
@@ -9,7 +9,7 @@ var langs;
99// eslint-disable-next-line prefer-const
1010var localeData;
1111
1212/** @type {ArraySet<string>|null} Array of translations keys if they should be tracked - if not tracked then null */
1313let trackMissingDynamicTranslate = null;
1414
1515export const getCurrentLocale = () => localeFile;
@@ -104,8 +104,8 @@ export function translate(text, key = null) {
104104 console.trace('WARN: No translation key provided');
105105 return '';
106106 }
107107 if (trackMissingDynamicTranslate && localeData && !Object.hasOwn(localeData, translationKey) && !trackMissingDynamicTranslate.includes(translationKey)) {
108108 trackMissingDynamicTranslate.pushadd(translationKey);
109109 }
110110 return localeData?.[translationKey] || text;
111111}
@@ -178,7 +178,7 @@ async function getMissingTranslations() {
178178 const missingData = [];
179179
180180 if (trackMissingDynamicTranslate) {
181181 missingData.push(...Array.from(trackMissingDynamicTranslate).map(key => ({ key, language: localeFile, value: key })));
182182 }
183183
184184 // Determine locales to search for untranslated strings
@@ -225,7 +225,7 @@ async function getMissingTranslations() {
225225 console.log(missingDataMap);
226226
227227 if (trackMissingDynamicTranslate) {
228228 const trackMissingDynamicTranslateMap = Object.fromEntries(Array.from(trackMissingDynamicTranslate).map(key => [key, key]));
229229 console.log(`Dynamic translations missing (${Object.keys(trackMissingDynamicTranslateMap).length}):`);
230230 console.log(trackMissingDynamicTranslateMap);
231231 }
@@ -292,7 +292,7 @@ export async function initLocales() {
292292 });
293293
294294 if (localStorage.getItem('trackDynamicTranslate') === 'true' && isSupportedNonEnglish()) {
295295 trackMissingDynamicTranslate = []new Set();
296296 }
297297
298298 registerDebugFunction('getMissingTranslations', 'Get missing translations',
@@ -307,7 +307,7 @@ export async function initLocales() {
307307 const isTracking = localStorage.getItem('trackDynamicTranslate') !== 'true';
308308 localStorage.setItem('trackDynamicTranslate', isTracking ? 'true' : 'false');
309309 if (isTracking && isSupportedNonEnglish()) {
310310 trackMissingDynamicTranslate = []new Set();
311311 toastr.success('Dynamic translation tracking enabled.');
312312 } else if (isTracking) {
313313 trackMissingDynamicTranslate = null;