diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/translation.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/translation.html.twig index cd85ce3bad..79c6e60ffb 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/translation.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/translation.html.twig @@ -13,7 +13,7 @@ {% set text %}
- Locale + Default locale {{ collector.locale|default('-') }} @@ -73,7 +73,7 @@
{{ collector.locale|default('-') }} - Locale + Default locale
{{ collector.fallbackLocales|join(', ')|default('-') }} @@ -152,7 +152,7 @@
{% else %} {% block fallback_messages %} - {{ helper.render_table(messages_fallback) }} + {{ helper.render_table(messages_fallback, true) }} {% endblock %} {% endif %}
@@ -185,11 +185,14 @@ {% endblock %} -{% macro render_table(messages) %} +{% macro render_table(messages, is_fallback) %} + {% if is_fallback %} + + {% endif %} @@ -200,6 +203,9 @@ {% for message in messages %} + {% if is_fallback %} + + {% endif %}
LocaleFallback localeDomain Times used Message ID
{{ message.locale }}{{ message.fallbackLocale|default('-') }}{{ message.domain }} {{ message.count }} diff --git a/src/Symfony/Component/Translation/DataCollectorTranslator.php b/src/Symfony/Component/Translation/DataCollectorTranslator.php index 7eaf928e7f..e70e5f5e14 100644 --- a/src/Symfony/Component/Translation/DataCollectorTranslator.php +++ b/src/Symfony/Component/Translation/DataCollectorTranslator.php @@ -145,6 +145,7 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter $id = (string) $id; $catalogue = $this->translator->getCatalogue($locale); $locale = $catalogue->getLocale(); + $fallbackLocale = null; if ($catalogue->defines($id, $domain)) { $state = self::MESSAGE_DEFINED; } elseif ($catalogue->has($id, $domain)) { @@ -153,10 +154,9 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter $fallbackCatalogue = $catalogue->getFallbackCatalogue(); while ($fallbackCatalogue) { if ($fallbackCatalogue->defines($id, $domain)) { - $locale = $fallbackCatalogue->getLocale(); + $fallbackLocale = $fallbackCatalogue->getLocale(); break; } - $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue(); } } else { @@ -165,6 +165,7 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter $this->messages[] = [ 'locale' => $locale, + 'fallbackLocale' => $fallbackLocale, 'domain' => $domain, 'id' => $id, 'translation' => $translation, diff --git a/src/Symfony/Component/Translation/Tests/DataCollectorTranslatorTest.php b/src/Symfony/Component/Translation/Tests/DataCollectorTranslatorTest.php index 059d074648..5cb7c31a40 100644 --- a/src/Symfony/Component/Translation/Tests/DataCollectorTranslatorTest.php +++ b/src/Symfony/Component/Translation/Tests/DataCollectorTranslatorTest.php @@ -34,6 +34,7 @@ class DataCollectorTranslatorTest extends TestCase 'id' => 'foo', 'translation' => 'foo (en)', 'locale' => 'en', + 'fallbackLocale' => null, 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_DEFINED, 'parameters' => [], @@ -42,7 +43,8 @@ class DataCollectorTranslatorTest extends TestCase $expectedMessages[] = [ 'id' => 'bar', 'translation' => 'bar (fr)', - 'locale' => 'fr', + 'locale' => 'en', + 'fallbackLocale' => 'fr', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK, 'parameters' => [], @@ -52,6 +54,7 @@ class DataCollectorTranslatorTest extends TestCase 'id' => 'choice', 'translation' => 'choice', 'locale' => 'en', + 'fallbackLocale' => null, 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_MISSING, 'parameters' => [], @@ -60,7 +63,8 @@ class DataCollectorTranslatorTest extends TestCase $expectedMessages[] = [ 'id' => 'bar_ru', 'translation' => 'bar (ru)', - 'locale' => 'ru', + 'locale' => 'en', + 'fallbackLocale' => 'ru', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK, 'parameters' => [], @@ -69,7 +73,8 @@ class DataCollectorTranslatorTest extends TestCase $expectedMessages[] = [ 'id' => 'bar_ru', 'translation' => 'bar (ru)', - 'locale' => 'ru', + 'locale' => 'en', + 'fallbackLocale' => 'ru', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK, 'parameters' => ['foo' => 'bar'],