Description
Q | A |
---|---|
Bundle version | master |
Symfony version | 3.4 |
PHP version | 7.2 |
This is not a bug issue.
Is more of a RFC.
Currently Translation/Loader/Symfony/XliffLoader.php loads all the translations in the symfony catalogue.
Does it make sense to skip translations marked as new
?
The reason for this is that new
strings are in 99% of cases not translated. Currently the loader considers them as translated and does not fallback on the default locale setting.
In my case i have:
PHP:
echo $translator->trans('welcome_message');
I extract the translations using the extract command (extracted for en
and es
language). This generates:
messages.en.xlf
<trans-unit id="123" resname="welcome_message">
<source>welcome_message</source>
<target state="new">welcome_message</target>
</trans-unit>
messages.es.xlf
<trans-unit id="123" resname="welcome_message">
<source>welcome_message</source>
<target state="new">welcome_message</target>
</trans-unit>
A as first thing I translate messages.en.xlf
.
welcome_message
is translated as Hi!
.
messages.en.xlf
<trans-unit id="123" resname="welcome_message">
<source>welcome_message</source>
<target>Hi!</target>
</trans-unit>
When a user has es
locale:
$translator->setLocale('es');
echo $translator->trans('welcome_message'); // prints welcome_message
prints welcome_message
instead of Hi!
.
This is because <target state="new">welcome_message</target>
is considered as translated.