@@ -27,7 +27,9 @@ const LANGUAGES = [
2727] ;
2828const EXTRA_LANGUAGES = LANGUAGES . filter ( ( language ) => ! [ "de" , "en" , "fr" ] . includes ( language ) ) ;
2929const NAMESPACES = [ "tripHistory" , "chargeHistory" , "vehicleOverview" , "dashboard" , "dualEnergyOverview" , "fuelHistory" ] ;
30- const CAPABILITY_EXCEPTIONS = { } ;
30+ // reconstructedGap is intentionally composed in i18n.js because it is a
31+ // frontend-only provenance label shared by all 18 languages in one place.
32+ const CAPABILITY_EXCEPTIONS = { tripHistory : new Set ( [ "reconstructedGap" ] ) } ;
3133const baseCatalogs = Object . assign ( { } , WESTERN_TEXT , NORTHERN_TEXT , EASTERN_TEXT ) ;
3234const advancedCatalogs = Object . assign ( { } , WESTERN_ADVANCED , NORTHERN_ADVANCED , EASTERN_ADVANCED ) ;
3335
@@ -158,6 +160,7 @@ test("trip and charge cards use HA locale when language is automatic", () => {
158160test ( "localized custom cards consume catalog keys instead of hard-coded German UI text" , ( ) => {
159161 assert . match ( trip , / t e x t \. c o m p a c t F i l t e r N o t e / ) ;
160162 assert . match ( trip , / t e x t \. v i s i b l e T r i p s / ) ;
163+ assert . match ( trip , / t e x t \. r e c o n s t r u c t e d G a p / ) ;
161164 assert . match ( charge , / t e x t \. b a t t e r y E n e r g y / ) ;
162165 assert . match ( charge , / t e x t \. r e c o n s t r u c t e d H i n t / ) ;
163166 assert . match ( vehicle , / t e x t F o r \( h a s s , " v e h i c l e O v e r v i e w " \) / ) ;
@@ -189,4 +192,4 @@ test("dashboard strategy uses catalog strings without binary German branches", (
189192 assert . match ( strategy , new RegExp ( `strings\\.${ key } ` ) ) ;
190193 }
191194 assert . doesNotMatch ( strategy , / Z e i t u n b e k a n n t | s e i t g e r a d e e b e n | V e r b u n d e n | G e t r e n n t | A B R P L i v e - D a t e n / ) ;
192- } ) ;
195+ } ) ;
0 commit comments