16
16
use Symfony \Component \Config \ConfigCacheInterface ;
17
17
use Symfony \Component \Config \ConfigCacheFactoryInterface ;
18
18
use Symfony \Component \Config \ConfigCacheFactory ;
19
+ use Symfony \Component \Translation \Catalogue \DiffOperation ;
19
20
20
21
/**
21
22
* Translator.
@@ -420,21 +421,6 @@ public function dumpCatalogue($locale, ConfigCacheInterface $cache)
420
421
421
422
private function getFallbackContent (MessageCatalogue $ catalogue )
422
423
{
423
- if (!$ this ->debug ) {
424
- // merge all fallback catalogues messages into $catalogue
425
- $ fallbackCatalogue = $ catalogue ->getFallbackCatalogue ();
426
- $ messages = $ catalogue ->all ();
427
- while ($ fallbackCatalogue ) {
428
- $ messages = array_replace_recursive ($ fallbackCatalogue ->all (), $ messages );
429
- $ fallbackCatalogue = $ fallbackCatalogue ->getFallbackCatalogue ();
430
- }
431
- foreach ($ messages as $ domain => $ domainMessages ) {
432
- $ catalogue ->add ($ domainMessages , $ domain );
433
- }
434
-
435
- return '' ;
436
- }
437
-
438
424
$ fallbackContent = '' ;
439
425
$ current = '' ;
440
426
$ replacementPattern = '/[^a-z0-9_]/i ' ;
@@ -444,6 +430,14 @@ private function getFallbackContent(MessageCatalogue $catalogue)
444
430
$ fallbackSuffix = ucfirst (preg_replace ($ replacementPattern , '_ ' , $ fallback ));
445
431
$ currentSuffix = ucfirst (preg_replace ($ replacementPattern , '_ ' , $ current ));
446
432
433
+ $ fallbackMessages = $ fallbackCatalogue ->all ();
434
+ if (!$ this ->debug ) {
435
+ // keep only missing messages.
436
+ $ currentCatalogue = new MessageCatalogue ($ fallbackCatalogue ->getLocale (), $ catalogue ->all ());
437
+ $ operation = new DiffOperation ($ currentCatalogue , $ fallbackCatalogue );
438
+ $ fallbackMessages = $ operation ->getResult ()->all ();
439
+ }
440
+
447
441
$ fallbackContent .= sprintf (<<<EOF
448
442
\$catalogue%s = new MessageCatalogue('%s', %s);
449
443
\$catalogue%s->addFallbackCatalogue( \$catalogue%s);
@@ -452,7 +446,7 @@ private function getFallbackContent(MessageCatalogue $catalogue)
452
446
,
453
447
$ fallbackSuffix ,
454
448
$ fallback ,
455
- var_export ($ fallbackCatalogue -> all () , true ),
449
+ var_export ($ fallbackMessages , true ),
456
450
$ currentSuffix ,
457
451
$ fallbackSuffix
458
452
);
0 commit comments