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