@@ -75,7 +75,12 @@ public function write(TranslatorBagInterface $translatorBag): void
75
75
}
76
76
77
77
foreach ($ catalogue ->all () as $ domain => $ messages ) {
78
- $ ids = $ this ->getAssetsIds ($ domain );
78
+ $ keysFromLoco = array_map (function ($ id ) use ($ domain ) {
79
+ return $ this ->retrieveKeyFromId ($ id , $ domain );
80
+ }, $ this ->getAssetsIds ($ domain ));
81
+
82
+ $ ids = array_intersect ($ keysFromLoco , array_keys ($ messages ));
83
+
79
84
$ this ->translateAssets (array_combine ($ ids , array_values ($ messages )), $ locale );
80
85
}
81
86
}
@@ -122,11 +127,7 @@ public function read(array $domains, array $locales): TranslatorBag
122
127
$ catalogue = new MessageCatalogue ($ locale );
123
128
124
129
foreach ($ locoCatalogue ->all ($ domain ) as $ key => $ message ) {
125
- if (str_starts_with ($ key , $ domain .'__ ' )) {
126
- $ key = substr ($ key , \strlen ($ domain ) + 2 );
127
- }
128
-
129
- $ catalogue ->set ($ key , $ message , $ domain );
130
+ $ catalogue ->set ($ this ->retrieveKeyFromId ($ key , $ domain ), $ message , $ domain );
130
131
}
131
132
132
133
$ translatorBag ->addCatalogue ($ catalogue );
@@ -289,4 +290,13 @@ private function getLocales(): array
289
290
return $ carry ;
290
291
}, []);
291
292
}
293
+
294
+ private function retrieveKeyFromId (string $ id , string $ domain ): string
295
+ {
296
+ if (str_starts_with ($ id , $ domain .'__ ' )) {
297
+ return substr ($ id , \strlen ($ domain ) + 2 );
298
+ }
299
+
300
+ return $ id ;
301
+ }
292
302
}
0 commit comments