Merge branch '2.7' into 2.8

* 2.7:
  [travis] Add PHP 7 to allowed failures until segfaults are fixed
  [Intl] Fix test
  [Translator][fallback catalogues] fixed circular reference.
  bumped Symfony version to 2.3.33
  updated VERSION for 2.3.32
  update CONTRIBUTORS for 2.3.32
  updated CHANGELOG for 2.3.32
  [FrameworkBundle] Fix templating.helper.code.file_link_format when defined by ini setting
  [console] Use the description when no help is available
This commit is contained in:
Nicolas Grekas 2015-09-03 13:42:45 +02:00
commit 22b17b2c93
14 changed files with 123 additions and 40 deletions

View File

@ -14,9 +14,12 @@ matrix:
- php: 5.4
- php: 5.5
- php: 5.6
env: deps=low
- php: 7.0
env: deps=high
- php: 7
- php: 5.6
env: deps=low
allow_failures:
- php: 7
fast_finish: true
services: mongodb

View File

@ -7,6 +7,38 @@ in 2.3 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.3.0...v2.3.1
* 2.3.32 (2015-09-01)
* bug #15601 [console] Use the description when no help is available (Nicofuma)
* bug #15603 [HttpKernel] Do not normalize the kernel root directory path #15567 (leofeyer)
* bug #15428 Fix the validation of form resources to register the default theme (stof)
* bug #15619 [Translation] Fix the string casting in the XliffFileLoader (stof)
* bug #15575 Add appveyor.yml for C.I. on Windows (nicolas-grekas)
* bug #15611 [Translation][Xliff Loader] Support omitting the <target> node in an .xlf file. (leofeyer)
* bug #15549 [FrameworkBundle] Fix precedence of xdebug.file_link_format (nicolas-grekas)
* bug #15589 made Symfony compatible with both Twig 1.x and 2.x (fabpot)
* bug #15535 made Symfony compatible with both Twig 1.x and 2.x (fabpot)
* bug #14372 [DoctrineBridge][Form] fix EntityChoiceList when indexing by primary foreign key (giosh94mhz)
* bug #15489 Implement the support of timezone objects in the stub IntlDateFormatter (stof)
* bug #15426 [Serializer] Add support for variadic arguments in the GetSetNormalizer (stof)
* bug #15480 [Yaml] Nested merge keys (mathroc)
* bug #15445 do not remove space between attributes (greg0ire)
* bug #15263 [HttpFoundation] fixed the check of 'proxy-revalidate' in Response::mustRevalidate() (axiac)
* bug #15425 [Routing] Fix the retrieval of the default value for variadic arguments in the annotation loader (wdalmut, stof)
* bug #15074 Fixing DbalSessionHandler to work with a Oracle "limitation" or bug? (nuncanada)
* bug #15380 do not dump leading backslashes in class names (xabbuh)
* bug #15376 [ClassMapGenerator] Skip ::class constant (WouterJ)
* bug #15170 [Config] type specific check for emptiness (xabbuh)
* bug #15411 Fix the handling of null as locale in the stub intl classes (stof)
* bug #15413 Fix the return value on error for intl methods returning arrays (stof)
* bug #15392 Fix missing _route parameter notice in RouterListener logging case (Haehnchen)
* bug #15386 [php7] Fix for substr() always returning a string (nicolas-grekas)
* bug #15355 [Security] Do not save the target path in the session for a stateless firewall (lyrixx)
* bug #15330 [Console] Fix console output with closed stdout (jakzal)
* bug #15326 [Security] fix check for empty usernames (xabbuh)
* bug #15249 [HttpFoundation] [PSR-7] Allow to use resources as content body and to return resources from string content (dunglas)
* bug #15282 [HttpFoundation] Behaviour change in PHP7 for substr (Nicofuma)
* 2.3.31 (2015-07-13)
* bug #15248 Added 'default' color (jaytaph)

View File

@ -14,8 +14,8 @@ Symfony is the result of the work of many people who made the code better
- Kris Wallsmith (kriswallsmith)
- Christophe Coevoet (stof)
- Jakub Zalas (jakubzalas)
- Pascal Borreli (pborreli)
- Christian Flothmann (xabbuh)
- Pascal Borreli (pborreli)
- Hugo Hamon (hhamon)
- Joseph Bielawski (stloyd)
- Karma Dordrak (drak)
@ -26,15 +26,16 @@ Symfony is the result of the work of many people who made the code better
- Jean-François Simon (jfsimon)
- Benjamin Eberlei (beberlei)
- Igor Wiedler (igorw)
- Martin Hasoň (hason)
- Abdellatif Ait boudad (aitboudad)
- Martin Hasoň (hason)
- Eriksen Costa (eriksencosta)
- Grégoire Pineau (lyrixx)
- Wouter De Jong (wouterj)
- Jonathan Wage (jwage)
- Javier Eguiluz (javier.eguiluz)
- Kévin Dunglas (dunglas)
- Alexandre Salomé (alexandresalome)
- William Durand (couac)
- Kévin Dunglas (dunglas)
- ornicar
- stealth35 (stealth35)
- Alexander Mols (asm89)
@ -84,43 +85,42 @@ Symfony is the result of the work of many people who made the code better
- excelwebzone
- Jacob Dreesen (jdreesen)
- Matthias Pigulla (mpdude)
- Javier Eguiluz (javier.eguiluz)
- Fabien Pennequin (fabienpennequin)
- Peter Rehm (rpet)
- Peter Kokot (maastermedia)
- Gordon Franke (gimler)
- Robert Schönthal (digitalkaoz)
- Jérémy DERUSSÉ (jderusse)
- Dariusz Ruminski
- Michal Piotrowski (eventhorizon)
- Stefano Sala (stefano.sala)
- David Buchmann (dbu)
- Juti Noppornpitak (shiroyuki)
- Sebastian Hörl (blogsh)
- Daniel Gomes (danielcsgomes)
- Hidenori Goto (hidenorigoto)
- David Buchmann (dbu)
- Alexander Schwenn (xelaris)
- Guilherme Blanco (guilhermeblanco)
- Jérémy DERUSSÉ (jderusse)
- Pablo Godel (pgodel)
- Eric GELOEN (gelo)
- Vladimir Reznichenko (kalessil)
- Jérémie Augustin (jaugustin)
- Alexander Schwenn (xelaris)
- Issei Murasawa (issei_m)
- Rafael Dohms (rdohms)
- Arnaud Kleinpeter (nanocom)
- Iltar van der Berg (kjarli)
- Joshua Thijssen
- Vladimir Reznichenko (kalessil)
- Tigran Azatyan (tigranazatyan)
- Issei Murasawa (issei_m)
- Sebastiaan Stok (sstok)
- Richard Shank (iampersistent)
- Clemens Tolboom
- Helmer Aaviksoo
- Sebastiaan Stok (sstok)
- Hiromi Hishida (77web)
- Matthieu Ouellette-Vachon (maoueh)
- Michał Pipa (michal.pipa)
- Amal Raghav (kertz)
- Jonathan Ingram (jonathaningram)
- Artur Kotyrba
- Iltar van der Berg
- Rouven Weßling (realityking)
- Andréia Bohner (andreia)
- Dmitrii Chekaliuk (lazyhammer)
@ -146,6 +146,7 @@ Symfony is the result of the work of many people who made the code better
- fivestar
- Dominique Bongiraud
- Leszek Prabucki (l3l0)
- Alexander M. Turek (derrabus)
- François Zaninotto (fzaninotto)
- Dustin Whittle (dustinwhittle)
- jeff
@ -164,7 +165,6 @@ Symfony is the result of the work of many people who made the code better
- Francois Zaninotto
- Alexander Kotynia (olden)
- Daniel Tschinder
- Alexander M. Turek (derrabus)
- Elnur Abdurrakhimov (elnur)
- John Kary (johnkary)
- Manuel Reinhard (sprain)
@ -197,6 +197,7 @@ Symfony is the result of the work of many people who made the code better
- Robert Kiss (kepten)
- Ruben Gonzalez (rubenrua)
- Kim Hemsø Rasmussen (kimhemsoe)
- Diego Saint Esteben (dosten)
- Florian Lonqueu-Brochard (florianlb)
- Tom Van Looy (tvlooy)
- Wouter Van Hecke
@ -212,6 +213,7 @@ Symfony is the result of the work of many people who made the code better
- Andrew Moore (finewolf)
- Bertrand Zuchuat (garfield-fr)
- Gabor Toth (tgabi333)
- Grégoire Paris (greg0ire)
- Alex Pott
- realmfoo
- Thomas Tourlourat (armetiz)
@ -232,8 +234,11 @@ Symfony is the result of the work of many people who made the code better
- Thomas Schulz (king2500)
- Marco Pivetta (ocramius)
- Ricard Clau (ricardclau)
- Lorenz Schori
- Giorgio Premi
- Erin Millard
- Matthew Lewinski (lewinski)
- Marcos Sánchez
- alquerci
- Francesco Levorato
- Vitaliy Zakharov (zakharovvi)
@ -260,13 +265,13 @@ Symfony is the result of the work of many people who made the code better
- Kirill chEbba Chebunin (chebba)
- Greg Thornton (xdissent)
- Baptiste Clavié (talus)
- Grégoire Paris (greg0ire)
- Costin Bereveanu (schniper)
- Loïc Chardonnet (gnusat)
- Marek Kalnik (marekkalnik)
- Vyacheslav Salakhutdinov (megazoll)
- Hassan Amouhzi
- Tamas Szijarto
- Michaël Perrin (michael.perrin)
- Pavel Volokitin (pvolok)
- Endre Fejes
- Tobias Naumann (tna)
@ -297,8 +302,8 @@ Symfony is the result of the work of many people who made the code better
- Brian King
- Michel Salib (michelsalib)
- geoffrey
- Lorenz Schori
- Jeanmonod David (jeanmonod)
- Thomas Lallement (raziel057)
- Jan Schumann
- Niklas Fiekas
- lancergr
@ -370,6 +375,7 @@ Symfony is the result of the work of many people who made the code better
- Florian Rey (nervo)
- Rodrigo Borrego Bernabé (rodrigobb)
- Denis Gorbachev (starfall)
- Titouan Galopin (tgalopin)
- Steven Surowiec
- Kevin Saliou (kbsali)
- Daniel Tschinder
@ -393,7 +399,6 @@ Symfony is the result of the work of many people who made the code better
- Mantas Var (mvar)
- Sebastian Krebs
- Christopher Davis (chrisguitarguy)
- Thomas Lallement (raziel057)
- alcaeus
- vitaliytv
- Markus Bachmann (baachi)
@ -449,6 +454,7 @@ Symfony is the result of the work of many people who made the code better
- Simon Schick (simonsimcity)
- redstar504
- Hossein Bukhamsin
- origaminal
- Paweł Wacławczyk (pwc)
- Oleg Zinchenko (cystbear)
- Johannes Klauss (cloppy)
@ -538,6 +544,7 @@ Symfony is the result of the work of many people who made the code better
- Tony Malzhacker
- Cyril Quintin (cyqui)
- Gerard van Helden (drm)
- Johnny Peck (johnnypeck)
- David Romaní
- Patrick Allaert
- Gustavo Falco (gfalco)
@ -545,6 +552,7 @@ Symfony is the result of the work of many people who made the code better
- Aleksey Podskrebyshev
- David Marín Carreño (davefx)
- Jörn Lang (j.lang)
- Leo Feyer
- mwsaz
- Benoît Bourgeois
- corphi
@ -562,7 +570,6 @@ Symfony is the result of the work of many people who made the code better
- Christian Morgan
- Alexander Miehe (engerim)
- Morgan Auchede (mauchede)
- Titouan Galopin (tgalopin)
- Don Pinkster
- Maksim Muruev
- Emil Einarsson
@ -595,6 +602,7 @@ Symfony is the result of the work of many people who made the code better
- Reece Fowell (reecefowell)
- stefan.r
- Matthieu Napoli (mnapoli)
- Alexandru Furculita (afurculita)
- Ben Ramsey (ramsey)
- Christian Jul Jensen
- The Whole Life to Learn
@ -610,7 +618,6 @@ Symfony is the result of the work of many people who made the code better
- Sander Marechal
- Radosław Benkel
- Gennady Telegin (gtelegin)
- Marcos Sánchez
- ttomor
- Mei Gwilym (meigwilym)
- Michael H. Arieli (excelwebzone)
@ -647,6 +654,7 @@ Symfony is the result of the work of many people who made the code better
- Per Sandström (per)
- Goran Juric
- Laurent Ghirardotti (laurentg)
- Nicolas Macherey
- Jan Rosier (rosier)
- Lin Clark
- Jeremy David (jeremy.david)
@ -695,7 +703,6 @@ Symfony is the result of the work of many people who made the code better
- Jochen Bayer (jocl)
- Jeremy Bush
- wizhippo
- Diego Saint Esteben (dosten)
- rpg600
- Péter Buri (burci)
- Davide Borsatto (davide.borsatto)
@ -750,7 +757,6 @@ Symfony is the result of the work of many people who made the code better
- Jakub Kulhan
- Mo Di (modi)
- Jeroen van den Enden (stoefke)
- origaminal
- Quique Porta (quiqueporta)
- Tomasz Szymczyk (karion)
- ConneXNL
@ -782,8 +788,10 @@ Symfony is the result of the work of many people who made the code better
- Adrien Gallou (agallou)
- Karol Sójko (karolsojko)
- sl_toto (sl_toto)
- Walter Dal Mut (wdalmut)
- Sébastien HOUZÉ
- Jingyu Wang
- Daniel Espendiller
- steveYeah
- Samy Dindane (dinduks)
- Keri Henare (kerihenare)
@ -823,10 +831,12 @@ Symfony is the result of the work of many people who made the code better
- Tadcka
- Beth Binkovitz
- Romain Geissler
- Tomaz Ahlin
- Benjamin Cremer (bcremer)
- Marcus Stöhr (dafish)
- Emmanuel Vella (emmanuel.vella)
- Carsten Nielsen (phreaknerd)
- Mathieu Rochette
- Jay Severson
- René Kerner
- Nathaniel Catchpole
@ -861,6 +871,7 @@ Symfony is the result of the work of many people who made the code better
- Sebastian Ionescu
- Thomas Ploch
- Simon Neidhold
- Valentin VALCIU
- Kevin Dew
- James Cowgill
- Nicolas Schwartz (nicoschwartz)
@ -911,6 +922,7 @@ Symfony is the result of the work of many people who made the code better
- 2manypeople
- Wing
- Thomas Bibb
- Matt Farmer
- catch
- Alexandre Segura
- Josef Cech
@ -936,11 +948,11 @@ Symfony is the result of the work of many people who made the code better
- Manatsawin Hanmongkolchai
- Gunther Konig
- Maciej Schmidt
- nuncanada
- flack
- František Bereň
- Christoph Nissle (derstoffel)
- Ionel Scutelnicu (ionelscutelnicu)
- Johnny Peck (johnnypeck)
- Nicolas Tallefourtané (nicolab)
- Botond Dani (picur)
- Thierry Marianne (thierrymarianne)
@ -1035,6 +1047,7 @@ Symfony is the result of the work of many people who made the code better
- Florian Pfitzer (marmelatze)
- Martin Mayer (martin)
- Grzegorz Łukaszewicz (newicz)
- Veres Lajos
- grifx
- Robert Campbell
- Matt Lehner
@ -1095,11 +1108,11 @@ Symfony is the result of the work of many people who made the code better
- Kevin Herrera (kherge)
- Luis Ramón López López (lrlopez)
- Muriel (metalmumu)
- Michaël Perrin (michael.perrin)
- Michael Pohlers (mick_the_big)
- Cayetano Soriano Gallego (neoshadybeat)
- Pablo Monterde Perez (plebs)
- Jimmy Leger (redpanda)
- Pavel Batanov (scaytrase)
- Cyrille Jouineau (tuxosaurus)
- Yorkie Chadwick (yorkie76)
- Yanick Witschi
@ -1123,6 +1136,7 @@ Symfony is the result of the work of many people who made the code better
- Ismail Asci (ismailasci)
- Simon CONSTANS (kosssi)
- Kristof Van Cauwenbergh (kristofvc)
- Tristan Darricau (nicofuma)
- Ramon Henrique Ornelas (ramonornela)
- Markus S. (staabm)
- Till Klampaeckel (till)
@ -1180,6 +1194,7 @@ Symfony is the result of the work of many people who made the code better
- Skorney
- mieszko4
- Neophy7e
- bokonet
- Arrilot
- Markus Staab
- Pierre-Louis LAUNAY
@ -1190,6 +1205,7 @@ Symfony is the result of the work of many people who made the code better
- Abdulkadir N. A.
- Yevgen Kovalienia
- Sema
- Elan Ruusamäe
- Thorsten Hallwas
- Michael Squires
- Norman Soetbeer
@ -1203,7 +1219,6 @@ Symfony is the result of the work of many people who made the code better
- Penny Leach
- Richard Trebichavský
- g123456789l
- Giorgio Premi
- oscartv
- DanSync
- Peter Zwosta
@ -1261,6 +1276,7 @@ Symfony is the result of the work of many people who made the code better
- samuel laulhau (lalop)
- Laurent Bachelier (laurentb)
- Jérôme Parmentier (lctrs)
- Florent Viel (luxifer)
- Matthieu Moquet (mattketmo)
- Moritz Borgmann (mborgmann)
- Matt Drollette (mdrollette)
@ -1279,6 +1295,7 @@ Symfony is the result of the work of many people who made the code better
- Rich Sage (richsage)
- Ruud Kamphuis (ruudk)
- Bart Ruysseveldt (ruyss)
- Sascha Dens (saschadens)
- scourgen hung (scourgen)
- Sebastian Busch (sebu)
- André Filipe Gonçalves Neves (seven)

View File

@ -479,7 +479,7 @@ class FrameworkExtension extends Extension
'sublime' => 'subl://open?url=file://%%f&line=%%l',
);
$container->setParameter('templating.helper.code.file_link_format', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: (isset($links[$ide]) ? $links[$ide] : $ide));
$container->setParameter('templating.helper.code.file_link_format', str_replace('%', '%%', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')) ?: (isset($links[$ide]) ? $links[$ide] : $ide));
}
$container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']);

View File

@ -520,7 +520,7 @@ class Command
*/
public function getHelp()
{
return $this->help;
return $this->help ?: $this->description;
}
/**

View File

@ -131,6 +131,8 @@ class CommandTest extends \PHPUnit_Framework_TestCase
$ret = $command->setHelp('help1');
$this->assertEquals($command, $ret, '->setHelp() implements a fluent interface');
$this->assertEquals('help1', $command->getHelp(), '->setHelp() sets the help');
$command->setHelp('');
$this->assertEquals('description', $command->getHelp(), '->getHelp() fallback to the description');
}
public function testGetProcessedHelp()

View File

@ -106,7 +106,7 @@
<usage>afoobar</usage>
</usages>
<description>The foo:bar command</description>
<help/>
<help>The foo:bar command</help>
<arguments/>
<options>
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">

View File

@ -7,7 +7,7 @@
<usage>afoobar</usage>
</usages>
<description>The foo:bar command</description>
<help/>
<help>The foo:bar command</help>
<arguments/>
<options>
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">

View File

@ -29,7 +29,7 @@ class TimeZoneTransformer extends Transformer
{
$timeZone = substr($dateTime->getTimezone()->getName(), 0, 3);
if (!in_array($timeZone, array('Etc', 'UTC'))) {
if (!in_array($timeZone, array('Etc', 'UTC', 'GMT'))) {
throw new NotImplementedException('Time zone different than GMT or UTC is not supported as a formatting output.');
}

View File

@ -811,7 +811,7 @@ class NumberFormatter
* @param mixed $value The value to be converted
* @param int $type The type to convert. Can be TYPE_DOUBLE (float) or TYPE_INT32 (int)
*
* @return int|float The converted value
* @return int|float|false The converted value
*/
private function convertValueDataType($value, $type)
{
@ -831,7 +831,7 @@ class NumberFormatter
*
* @param mixed $value The value to be converted
*
* @return int The converted value
* @return int|false The converted value
*/
private function getInt32Value($value)
{
@ -847,7 +847,7 @@ class NumberFormatter
*
* @param mixed $value The value to be converted
*
* @return int|float The converted value
* @return int|float|false The converted value
*
* @see https://bugs.php.net/bug.php?id=59597 Bug #59597
*/

View File

@ -385,14 +385,21 @@ abstract class AbstractIntlDateFormatterTest extends \PHPUnit_Framework_TestCase
);
}
public function testFormatWithDateTimeZone()
public function testFormatWithDateTimeZoneGmt()
{
if (PHP_VERSION_ID < 50500) {
$this->markTestSkipped('Only in PHP 5.5+ IntlDateFormatter allows to use DateTimeZone objects.');
}
if (defined('HHVM_VERSION_ID')) {
$this->markTestSkipped('This test cannot work on HHVM. See https://github.com/facebook/hhvm/issues/5875 for the issue.');
$formatter = $this->getDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('GMT'), IntlDateFormatter::GREGORIAN, 'zzzz');
$this->assertEquals('GMT', $formatter->format(0));
}
public function testFormatWithDateTimeZoneGmtOffset()
{
if (defined('HHVM_VERSION_ID') || PHP_VERSION_ID <= 50509) {
$this->markTestSkipped('DateTimeZone GMT offsets are supported since 5.5.10. See https://github.com/facebook/hhvm/issues/5875 for HHVM.');
}
$formatter = $this->getDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('GMT+03:00'), IntlDateFormatter::GREGORIAN, 'zzzz');

View File

@ -190,6 +190,13 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
{
// detect circular references
$c = $catalogue;
while ($c = $c->getFallbackCatalogue()) {
if ($c->getLocale() === $this->getLocale()) {
throw new \LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
}
}
$c = $this;
do {
if ($c->getLocale() === $catalogue->getLocale()) {

View File

@ -127,7 +127,7 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
/**
* @expectedException \LogicException
*/
public function testAddFallbackCatalogueWithCircularReference()
public function testAddFallbackCatalogueWithParentCircularReference()
{
$main = new MessageCatalogue('en_US');
$fallback = new MessageCatalogue('fr_FR');
@ -136,6 +136,20 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
$main->addFallbackCatalogue($fallback);
}
/**
* @expectedException \LogicException
*/
public function testAddFallbackCatalogueWithFallbackCircularReference()
{
$fr = new MessageCatalogue('fr');
$en = new MessageCatalogue('en');
$es = new MessageCatalogue('es');
$fr->addFallbackCatalogue($en);
$es->addFallbackCatalogue($en);
$en->addFallbackCatalogue($fr);
}
/**
* @expectedException \LogicException
*/
@ -178,10 +192,10 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
$this->assertEquals(array(), $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 is array');
$catalogue->deleteMetadata('key2', 'messages');
$this->assertEquals(null, $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.');
$this->assertNull($catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.');
$catalogue->deleteMetadata('key2', 'domain');
$this->assertEquals(null, $catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.');
$this->assertNull($catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.');
}
public function testMetadataMerge()

View File

@ -449,8 +449,9 @@ EOF
$this->doLoadCatalogue($fallback);
}
$current->addFallbackCatalogue($this->catalogues[$fallback]);
$current = $this->catalogues[$fallback];
$fallbackCatalogue = new MessageCatalogue($fallback, $this->catalogues[$fallback]->all());
$current->addFallbackCatalogue($fallbackCatalogue);
$current = $fallbackCatalogue;
}
}