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 ($ messagesas $ 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
);