Problème de trad Symfony

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de trad Symfony

Re: Problème de trad Symfony

par BaLiSTiK » 14 déc. 2018, 17:31

Essaie cette configuration :

config\service.yaml

Code : Tout sélectionner

parameters: locale: 'en' # ou fr suivant ta principale locale app.locales: en|fr| # liste des locales-> attention au dernier |, il sera tres utile pour le routing par langue
config\packages\translations.yaml

Code : Tout sélectionner

framework: default_locale: '%locale%' translator: default_path: '%kernel.project_dir%/translations' fallbacks: - '%locale%'
Les fichiers de traductions doivent être dans le dossier /translations
ex :
messages.fr.yaml, message.en.yaml. Je ne pense pas que tu aies besoin d'appeler les YAML dans ton controller, je n'ai jamais eu à le faire :).
Si tu veux ajouter la locale dans ton URL, ajoute ceci :
config\routes\annotations.yaml

Code : Tout sélectionner

controllers: resource: ../../src/Controller/ type: annotation prefix: /{_locale} requirements: _locale: '%app.locales%' defaults: _locale: '%locale%'
Normalement ça devrait être suffisant :)

Problème de trad Symfony

par CrazySloth » 28 sept. 2018, 19:52

Bonjour,
Je commence mon 1er projet et c'est le début des galères :D
J'ai une erreur de trad dans ma navbar, de ce que je comprend, il ne trouve pas mon local pourtant je l'ai mis dans mon routing.yaml je pense que j'ai mal config le tout si quelqu'un a le temps de m'aider :)

Merci d'avance !

Code : Tout sélectionner

//config.yml translator: fallbacks: ["%default_locale%"] secret: "%secret%" router: resource: "%kernel.root_dir%/config/routing.yml" strict_requirements: ~ ---------------------------------------------- // TranslationController <?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Routing\Loader\YamlFileLoader; use Symfony\Component\Translation\Translator; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Translation\TranslatorInterface; class TranslationController extends Controller { /** * @param TranslatorInterface $translator * @return Response */ public function indexAction(TranslatorInterface $translator) { $translator = new Translator('fr_FR'); $translator->addLoader('yaml', new YamlFileLoader()); $translator->addResource('yaml', 'path/to/messages.fr.yaml', 'fr_FR'); $translator->addResource('yaml', 'path/to/messages.en.yaml', 'en_EN'); return $this->render('base.html.twig'); } } ---------------------------------------------- // base.html.twig <li class="nav-item"> <a href="#intro" class="nav-link link-scroll">{{ 'navbar.intro'|trans }}</a> </li> // Error These messages are not available for the given locale and cannot be found in the fallback locales. Add them to the translation catalogue to avoid Symfony outputting untranslated contents. Locale Domain Times used Message ID Message Preview fr messages 1 navbar.intro navbar.intro