Bonjour,
Je travaille sous Symfony3 et j'essai de mettre en place un système de traduction avec les phrases contenues dans un fichier JSON.
Tout marche sauf que quand je mets des balises HTML dans le JSON, ces balises s'affichent sur ma page. Ex :[img]http://image.noelshack.com/minis/2016/43/1477319316-capture-d-ecran-2016-10-24-a-13-38-04.png[/img][/url]

Voici le code de mon Lang.php :

<?php

namespace AppBundle\Lang;

use Symfony\Component\HttpFoundation\Response;

class Lang extends \Twig_Extension
{

  protected $language = 'Fr_fr';

  public function security(){

    if (isset($_COOKIE['gsg__lang'])){

        $this->language = $_COOKIE['gsg__lang'];

    }

  }

  public function get(){

      $this->security();
      $string = file_get_contents(ROOT . 'app' . DS . 'config' . DS . 'lang' . DS . $this->language . '.json');
      $j = json_decode($string, true);
      return $j;

  }

}

Ma div ou j'affiche :

<div class="copyright">
        <p>
            {{ Lang.get['COPYRIGHT'] }}
        </p>
      </div>

Ce qui est bizard, c'est que quand j'affiche via un echo dans mon controller, j'ai pas ce problème.
Merci de votre aide,
Cordialement

2 réponses


Bonjour Skraf,

as-tu essayé en faisant ceci :

{{ Lang.get['COPYRIGHT'] | raw }}

De base, twig échappe le html pour des raisons de sécurités. Il faut explicitement lui dire de ne pas le faire en utilisant le filtre 'raw'.

Skraf
Auteur

A oui, ça marche :D.
Merci de ton aide.

Cordialement