@@ -75,8 +75,15 @@ public function write(TranslatorBagInterface $translatorBag): void
75
75
}
76
76
77
77
foreach ($ catalogue ->all () as $ domain => $ messages ) {
78
- $ ids = $ this ->getAssetsIds ($ domain );
79
- $ this ->translateAssets (array_combine ($ ids , array_values ($ messages )), $ locale );
78
+ $ keysIdsMap = [];
79
+
80
+ foreach ($ this ->getAssetsIds ($ domain ) as $ id ) {
81
+ $ keysIdsMap [$ this ->retrieveKeyFromId ($ id , $ domain )] = $ id ;
82
+ }
83
+
84
+ $ ids = array_intersect_key ($ keysIdsMap , $ messages );
85
+
86
+ $ this ->translateAssets (array_combine (array_values ($ ids ), array_values ($ messages )), $ locale );
80
87
}
81
88
}
82
89
}
@@ -122,11 +129,7 @@ public function read(array $domains, array $locales): TranslatorBag
122
129
$ catalogue = new MessageCatalogue ($ locale );
123
130
124
131
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 );
132
+ $ catalogue ->set ($ this ->retrieveKeyFromId ($ key , $ domain ), $ message , $ domain );
130
133
}
131
134
132
135
$ translatorBag ->addCatalogue ($ catalogue );
@@ -289,4 +292,13 @@ private function getLocales(): array
289
292
return $ carry ;
290
293
}, []);
291
294
}
295
+
296
+ private function retrieveKeyFromId (string $ id , string $ domain ): string
297
+ {
298
+ if (str_starts_with ($ id , $ domain .'__ ' )) {
299
+ return substr ($ id , \strlen ($ domain ) + 2 );
300
+ }
301
+
302
+ return $ id ;
303
+ }
292
304
}
0 commit comments