8000 [TranslationDebug] workaround for getFallbackLocales. · symfony/symfony@991d20a · GitHub
[go: up one dir, main page]

Skip to content

Commit 991d20a

Browse files
committed
[TranslationDebug] workaround for getFallbackLocales.
1 parent 7e53eab commit 991d20a

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use Symfony\Component\Console\Input\InputOption;
2020
use Symfony\Component\Translation\MessageCatalogue;
2121
use Symfony\Component\Translation\Translator;
22+
use Symfony\Component\Translation\DataCollectorTranslator;
23+
use Symfony\Component\Translation\LoggingTranslator;
2224

2325
/**
2426
* Helps finding unused or missing translation messages in a given locale
@@ -157,21 +159,30 @@ protected function execute(InputInterface $input, OutputInterface $output)
157159
// Load the fallback catalogues
158160
$fallbackCatalogues = array();
159161
$translator = $this->getContainer()->get('translator');
160-
if ($translator instanceof Translator) {
161-
foreach ($translator->getFallbackLocales() as $fallbackLocale) {
162-
if ($fallbackLocale === $locale) {
163-
continue;
164-
}
165162

166-
$fallbackCatalogue = new MessageCatalogue($fallbackLocale);
167-
foreach ($transPaths as $path) {
168-
$path = $path.'translations';
169-
if (is_dir($path)) {
170-
$loader->loadMessages($path, $fallbackCatalogue);
171-
}
163+
$fallbackLocales = [];
164+
if ($translator instanceof DataCollectorTranslator || $translator instanceof LoggingTranslator) {
165+
try {
166+
$fallbackLocales = $translator->getFallbackLocales();
167+
} catch (\Throwable $e) {
168+
}
169+
} elseif ($translator instanceof Translator) {
170+
$fallbackLocales = $translator->getFallbackLocales();
171+
}
172+
173+
foreach ($fallbackLocales as $fallbackLocale) {
174+
if ($fallbackLocale === $locale) {
175+
continue;
176+
}
177+
178+
$fallbackCatalogue = new MessageCatalogue($fallbackLocale);
179+
foreach ($transPaths as $path) {
180+
$path = $path.'translations';
181+
if (is_dir($path)) {
182+
$loader->loadMessages($path, $fallbackCatalogue);
172183
}
173-
$fallbackCatalogues[] = $fallbackCatalogue;
174184
}
185+
$fallbackCatalogues[] = $fallbackCatalogue;
175186
}
176187

177188
// Display header line

0 commit comments

Comments
 (0)
0