Search code examples
phphtmlsymfonytranslationtranslate

Symfony2 Translation Add Html


I want to add some HTML to Symfony 2 Translation. This way I will know which phrases in my application are translated and which not. I found in "Symfony\Component\Translation\Translator.php" function "trans". Now i want to add something in function return, for example "< /br>":

/**
 * {@inheritdoc}
 *
 * @api
 */
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
    if (null === $locale) {
        $locale = $this->getLocale();
    } else {
        $this->assertValidLocale($locale);
    }

    if (null === $domain) {
        $domain = 'messages';
    }

    if (!isset($this->catalogues[$locale])) {
        $this->loadCatalogue($locale);
    }

    return strtr($this->catalogues[$locale]->get((string) $id, $domain)."</br>", $parameters);
}

The issue is that when I run my application I'm getting for example "Tag< / b r>" (I have add spaces because in normal way it doesn't show here. HTML doesn't interprate this as HTML code but as a string. Is there any way to achieve what I want ? Maybe it is but in the other way ?


Solution

  • MY SOLUTION:

    I have achieved what I wanted in few steps:

    1. Override Translator.php and change translator.class in parameters.yml

      public function trans($id, $parameters, $domain, $locale) { $return = parent::trans($id, $parameters, $domain, $locale); return "".$return.''); }

    2. Set translation class in your css.

    3. Set autoescape option to false in parameters.yml

      twig: autoescape: false