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;
9// eslint-disable-next-line prefer-const9// eslint-disable-next-line prefer-const
10var localeData;10var localeData;
1111
12/** @type {Array<string>|null} Array of translations keys if they should be tracked - if not tracked then null */12/** @type {Set<string>|null} Array of translations keys if they should be tracked - if not tracked then null */
13let trackMissingDynamicTranslate = null;13let trackMissingDynamicTranslate = null;
1414
15export const getCurrentLocale = () => localeFile;15export const getCurrentLocale = () => localeFile;
@@ -104,8 +104,8 @@ export function translate(text, key = null) {
104 console.trace('WARN: No translation key provided');104 console.trace('WARN: No translation key provided');
105 return '';105 return '';
106 }106 }
107 if (trackMissingDynamicTranslate && localeData && !Object.hasOwn(localeData, translationKey) && !trackMissingDynamicTranslate.includes(translationKey)) {107 if (trackMissingDynamicTranslate && localeData && !Object.hasOwn(localeData, translationKey)) {
108 trackMissingDynamicTranslate.push(translationKey);108 trackMissingDynamicTranslate.add(translationKey);
109 }109 }
110 return localeData?.[translationKey] || text;110 return localeData?.[translationKey] || text;
111}111}
@@ -178,7 +178,7 @@ async function getMissingTranslations() {
178 const missingData = [];178 const missingData = [];
179179
180 if (trackMissingDynamicTranslate) {180 if (trackMissingDynamicTranslate) {
181 missingData.push(...trackMissingDynamicTranslate.map(key => ({ key, language: localeFile, value: key })));181 missingData.push(...Array.from(trackMissingDynamicTranslate).map(key => ({ key, language: localeFile, value: key })));
182 }182 }
183183
184 // Determine locales to search for untranslated strings184 // Determine locales to search for untranslated strings
@@ -225,7 +225,7 @@ async function getMissingTranslations() {
225 console.log(missingDataMap);225 console.log(missingDataMap);
226226
227 if (trackMissingDynamicTranslate) {227 if (trackMissingDynamicTranslate) {
228 const trackMissingDynamicTranslateMap = Object.fromEntries(trackMissingDynamicTranslate.map(key => [key, key]));228 const trackMissingDynamicTranslateMap = Object.fromEntries(Array.from(trackMissingDynamicTranslate).map(key => [key, key]));
229 console.log(`Dynamic translations missing (${Object.keys(trackMissingDynamicTranslateMap).length}):`);229 console.log(`Dynamic translations missing (${Object.keys(trackMissingDynamicTranslateMap).length}):`);
230 console.log(trackMissingDynamicTranslateMap);230 console.log(trackMissingDynamicTranslateMap);
231 }231 }
@@ -292,7 +292,7 @@ export async function initLocales() {
292 });292 });
293293
294 if (localStorage.getItem('trackDynamicTranslate') === 'true' && isSupportedNonEnglish()) {294 if (localStorage.getItem('trackDynamicTranslate') === 'true' && isSupportedNonEnglish()) {
295 trackMissingDynamicTranslate = [];295 trackMissingDynamicTranslate = new Set();
296 }296 }
297297
298 registerDebugFunction('getMissingTranslations', 'Get missing translations',298 registerDebugFunction('getMissingTranslations', 'Get missing translations',
@@ -307,7 +307,7 @@ export async function initLocales() {
307 const isTracking = localStorage.getItem('trackDynamicTranslate') !== 'true';307 const isTracking = localStorage.getItem('trackDynamicTranslate') !== 'true';
308 localStorage.setItem('trackDynamicTranslate', isTracking ? 'true' : 'false');308 localStorage.setItem('trackDynamicTranslate', isTracking ? 'true' : 'false');
309 if (isTracking && isSupportedNonEnglish()) {309 if (isTracking && isSupportedNonEnglish()) {
310 trackMissingDynamicTranslate = [];310 trackMissingDynamicTranslate = new Set();
311 toastr.success('Dynamic translation tracking enabled.');311 toastr.success('Dynamic translation tracking enabled.');
312 } else if (isTracking) {312 } else if (isTracking) {
313 trackMissingDynamicTranslate = null;313 trackMissingDynamicTranslate = null;