1616use Symfony \Component \Config \ConfigCacheInterface ;
1717use Symfony \Component \Config \ConfigCacheFactoryInterface ;
1818use Symfony \Component \Config \ConfigCacheFactory ;
19+ use Symfony \Component \Translation \Catalogue \DiffOperation ;
1920
2021/**
2122 * Translator.
@@ -420,21 +421,6 @@ public function dumpCatalogue($locale, ConfigCacheInterface $cache)
420421
421422private function getFallbackContent (MessageCatalogue $ catalogue )
422423 {
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 ($ messagesas $ domain =>$ domainMessages ) {
432- $ catalogue ->add ($ domainMessages ,$ domain );
433- }
434-
435- return '' ;
436- }
437-
438424$ fallbackContent ='' ;
439425$ current ='' ;
440426$ replacementPattern ='/[^a-z0-9_]/i ' ;
@@ -444,6 +430,14 @@ private function getFallbackContent(MessageCatalogue $catalogue)
444430$ fallbackSuffix =ucfirst (preg_replace ($ replacementPattern ,'_ ' ,$ fallback ));
445431$ currentSuffix =ucfirst (preg_replace ($ replacementPattern ,'_ ' ,$ current ));
446432
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+
447441$ fallbackContent .=sprintf (<<<EOF
448442\$catalogue%s = new MessageCatalogue('%s', %s);
449443\$catalogue%s->addFallbackCatalogue( \$catalogue%s);
@@ -452,7 +446,7 @@ private function getFallbackContent(MessageCatalogue $catalogue)
452446 ,
453447$ fallbackSuffix ,
454448$ fallback ,
455- var_export ($ fallbackCatalogue -> all () ,true ),
449+ var_export ($ fallbackMessages ,true ),
456450$ currentSuffix ,
457451$ fallbackSuffix
458452 );