[Translation] Collect original locale in case of fallback translation
This commit is contained in:
parent
2b0f2de485
commit
5564e149cb
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
{% set text %}
|
{% set text %}
|
||||||
<div class="sf-toolbar-info-piece">
|
<div class="sf-toolbar-info-piece">
|
||||||
<b>Locale</b>
|
<b>Default locale</b>
|
||||||
<span class="sf-toolbar-status">
|
<span class="sf-toolbar-status">
|
||||||
{{ collector.locale|default('-') }}
|
{{ collector.locale|default('-') }}
|
||||||
</span>
|
</span>
|
||||||
@ -73,7 +73,7 @@
|
|||||||
<div class="metrics">
|
<div class="metrics">
|
||||||
<div class="metric">
|
<div class="metric">
|
||||||
<span class="value">{{ collector.locale|default('-') }}</span>
|
<span class="value">{{ collector.locale|default('-') }}</span>
|
||||||
<span class="label">Locale</span>
|
<span class="label">Default locale</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="metric">
|
<div class="metric">
|
||||||
<span class="value">{{ collector.fallbackLocales|join(', ')|default('-') }}</span>
|
<span class="value">{{ collector.fallbackLocales|join(', ')|default('-') }}</span>
|
||||||
@ -152,7 +152,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% block fallback_messages %}
|
{% block fallback_messages %}
|
||||||
{{ helper.render_table(messages_fallback) }}
|
{{ helper.render_table(messages_fallback, true) }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@ -185,11 +185,14 @@
|
|||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% macro render_table(messages) %}
|
{% macro render_table(messages, is_fallback) %}
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Locale</th>
|
<th>Locale</th>
|
||||||
|
{% if is_fallback %}
|
||||||
|
<th>Fallback locale</th>
|
||||||
|
{% endif %}
|
||||||
<th>Domain</th>
|
<th>Domain</th>
|
||||||
<th>Times used</th>
|
<th>Times used</th>
|
||||||
<th>Message ID</th>
|
<th>Message ID</th>
|
||||||
@ -200,6 +203,9 @@
|
|||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="font-normal text-small nowrap">{{ message.locale }}</td>
|
<td class="font-normal text-small nowrap">{{ message.locale }}</td>
|
||||||
|
{% if is_fallback %}
|
||||||
|
<td class="font-normal text-small nowrap">{{ message.fallbackLocale|default('-') }}</td>
|
||||||
|
{% endif %}
|
||||||
<td class="font-normal text-small text-bold nowrap">{{ message.domain }}</td>
|
<td class="font-normal text-small text-bold nowrap">{{ message.domain }}</td>
|
||||||
<td class="font-normal text-small nowrap">{{ message.count }}</td>
|
<td class="font-normal text-small nowrap">{{ message.count }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -145,6 +145,7 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter
|
|||||||
$id = (string) $id;
|
$id = (string) $id;
|
||||||
$catalogue = $this->translator->getCatalogue($locale);
|
$catalogue = $this->translator->getCatalogue($locale);
|
||||||
$locale = $catalogue->getLocale();
|
$locale = $catalogue->getLocale();
|
||||||
|
$fallbackLocale = null;
|
||||||
if ($catalogue->defines($id, $domain)) {
|
if ($catalogue->defines($id, $domain)) {
|
||||||
$state = self::MESSAGE_DEFINED;
|
$state = self::MESSAGE_DEFINED;
|
||||||
} elseif ($catalogue->has($id, $domain)) {
|
} elseif ($catalogue->has($id, $domain)) {
|
||||||
@ -153,10 +154,9 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter
|
|||||||
$fallbackCatalogue = $catalogue->getFallbackCatalogue();
|
$fallbackCatalogue = $catalogue->getFallbackCatalogue();
|
||||||
while ($fallbackCatalogue) {
|
while ($fallbackCatalogue) {
|
||||||
if ($fallbackCatalogue->defines($id, $domain)) {
|
if ($fallbackCatalogue->defines($id, $domain)) {
|
||||||
$locale = $fallbackCatalogue->getLocale();
|
$fallbackLocale = $fallbackCatalogue->getLocale();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue();
|
$fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -165,6 +165,7 @@ class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInter
|
|||||||
|
|
||||||
$this->messages[] = [
|
$this->messages[] = [
|
||||||
'locale' => $locale,
|
'locale' => $locale,
|
||||||
|
'fallbackLocale' => $fallbackLocale,
|
||||||
'domain' => $domain,
|
'domain' => $domain,
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'translation' => $translation,
|
'translation' => $translation,
|
||||||
|
@ -34,6 +34,7 @@ class DataCollectorTranslatorTest extends TestCase
|
|||||||
'id' => 'foo',
|
'id' => 'foo',
|
||||||
'translation' => 'foo (en)',
|
'translation' => 'foo (en)',
|
||||||
'locale' => 'en',
|
'locale' => 'en',
|
||||||
|
'fallbackLocale' => null,
|
||||||
'domain' => 'messages',
|
'domain' => 'messages',
|
||||||
'state' => DataCollectorTranslator::MESSAGE_DEFINED,
|
'state' => DataCollectorTranslator::MESSAGE_DEFINED,
|
||||||
'parameters' => [],
|
'parameters' => [],
|
||||||
@ -42,7 +43,8 @@ class DataCollectorTranslatorTest extends TestCase
|
|||||||
$expectedMessages[] = [
|
$expectedMessages[] = [
|
||||||
'id' => 'bar',
|
'id' => 'bar',
|
||||||
'translation' => 'bar (fr)',
|
'translation' => 'bar (fr)',
|
||||||
'locale' => 'fr',
|
'locale' => 'en',
|
||||||
|
'fallbackLocale' => 'fr',
|
||||||
'domain' => 'messages',
|
'domain' => 'messages',
|
||||||
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
||||||
'parameters' => [],
|
'parameters' => [],
|
||||||
@ -52,6 +54,7 @@ class DataCollectorTranslatorTest extends TestCase
|
|||||||
'id' => 'choice',
|
'id' => 'choice',
|
||||||
'translation' => 'choice',
|
'translation' => 'choice',
|
||||||
'locale' => 'en',
|
'locale' => 'en',
|
||||||
|
'fallbackLocale' => null,
|
||||||
'domain' => 'messages',
|
'domain' => 'messages',
|
||||||
'state' => DataCollectorTranslator::MESSAGE_MISSING,
|
'state' => DataCollectorTranslator::MESSAGE_MISSING,
|
||||||
'parameters' => [],
|
'parameters' => [],
|
||||||
@ -60,7 +63,8 @@ class DataCollectorTranslatorTest extends TestCase
|
|||||||
$expectedMessages[] = [
|
$expectedMessages[] = [
|
||||||
'id' => 'bar_ru',
|
'id' => 'bar_ru',
|
||||||
'translation' => 'bar (ru)',
|
'translation' => 'bar (ru)',
|
||||||
'locale' => 'ru',
|
'locale' => 'en',
|
||||||
|
'fallbackLocale' => 'ru',
|
||||||
'domain' => 'messages',
|
'domain' => 'messages',
|
||||||
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
||||||
'parameters' => [],
|
'parameters' => [],
|
||||||
@ -69,7 +73,8 @@ class DataCollectorTranslatorTest extends TestCase
|
|||||||
$expectedMessages[] = [
|
$expectedMessages[] = [
|
||||||
'id' => 'bar_ru',
|
'id' => 'bar_ru',
|
||||||
'translation' => 'bar (ru)',
|
'translation' => 'bar (ru)',
|
||||||
'locale' => 'ru',
|
'locale' => 'en',
|
||||||
|
'fallbackLocale' => 'ru',
|
||||||
'domain' => 'messages',
|
'domain' => 'messages',
|
||||||
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
|
||||||
'parameters' => ['foo' => 'bar'],
|
'parameters' => ['foo' => 'bar'],
|
||||||
|
Reference in New Issue
Block a user