Procházet zdrojové kódy

fix: don't backtrack on translation key if nested value was not found

Sv443 před 3 měsíci
rodič
revize
5e7c7f0f49
1 změnil soubory, kde provedl 7 přidání a 2 odebrání
  1. 7 2
      lib/translation.ts

+ 7 - 2
lib/translation.ts

@@ -127,10 +127,13 @@ function translate<TTrKey extends string = string>(language: string, key: TTrKey
   const keyParts = key.split(".");
   const keyParts = key.split(".");
   let value: string | TrObject | undefined = trObj;
   let value: string | TrObject | undefined = trObj;
   for(const part of keyParts) {
   for(const part of keyParts) {
-    if(typeof value !== "object" || value === null)
+    if(typeof value !== "object" || value === null) {
+      value = undefined;
       break;
       break;
+    }
     value = value?.[part];
     value = value?.[part];
   }
   }
+
   if(typeof value === "string")
   if(typeof value === "string")
     return transformTrVal(key, value);
     return transformTrVal(key, value);
 
 
@@ -140,7 +143,9 @@ function translate<TTrKey extends string = string>(language: string, key: TTrKey
     return transformTrVal(key, value);
     return transformTrVal(key, value);
 
 
   // default to fallbackLang or translation key
   // default to fallbackLang or translation key
-  return fallbackLang ? translate(fallbackLang, key, ...trArgs) : key;
+  return fallbackLang
+    ? translate(fallbackLang, key, ...trArgs)
+    : key;
 }
 }
 
 
 //#region tr funcs
 //#region tr funcs