Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

translation, traduction application fr -> en [4.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    maçon
    Inscrit en
    octobre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : maçon
    Secteur : Bâtiment

    Informations forums :
    Inscription : octobre 2018
    Messages : 31
    Points : 17
    Points
    17
    Par défaut translation, traduction application fr -> en
    Bonjour.

    j'utilise symfony 4.3

    je souhaiterais traduire mon projet symfony en deux langue. FR et EN.

    de base le site est en FR

    j'ai donc utilisé le module tranlation de symfony.

    Mon soucis c'est que le site est directement traduit en EN alors que moi je voudrais que le site ce traduise en EN uniquement si on choisit cette langue via un bouton.

    j'ai donc fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     composer require symfony/translation
    voici le fichier service.yaml

    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    parameters:
        locale: 'fr'
        translator:
            fallbacks: ['fr']
     
    services:
        # default configuration for services in *this* file
        _defaults:
            autowire: true      # Automatically injects dependencies in your services.
            autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
     
        # makes classes in src/ available to be used as services
        # this creates a service per class whose id is the fully-qualified class name
        App\:
            resource: '../src/*'
            exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
     
        # controllers are imported separately to make sure services can be injected
        # as action arguments even if you don't extend any base controller class
        App\Controller\:
            resource: '../src/Controller'
            tags: ['controller.service_arguments']
     
        # add more service definitions when explicit configuration is needed
        # please note that last definitions always *replace* previous ones

    le fichier translation.yaml

    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    framework:
        default_locale: 'fr'
        translator:
            default_path: '%kernel.project_dir%/translations'
            fallbacks: ['fr']

    le fichier messages.fr.yaml
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    Gardez le contrôle !: Keep control !

    Alors au lieu d'avoir GARDEZ LE CONTROLE ! j'ai directement KEEP CONTROL !

    voici le profiler de symfony.

    Nom : translation_profiler.png
Affichages : 39
Taille : 29,3 Ko

    merci de votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 533
    Points : 935
    Points
    935
    Par défaut
    bonjour,
    ça parait logique. La chaîne Gardez le contrôle ! n'est pas le message à traduire mais plutôt la clé de traduction. C'est la clé qui permet d'afficher le message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #messages.fr.yaml
    keep.control: Gardez le contrôle !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #messages.en.yaml
    keep.control: Keep control !
    dans la vue twig:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{ 'keep.control' | trans }}
    au passage symfony recommande d'utiliser pour les fichiers de traduction le format xlf

  3. #3
    Membre à l'essai
    Femme Profil pro
    maçon
    Inscrit en
    octobre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : maçon
    Secteur : Bâtiment

    Informations forums :
    Inscription : octobre 2018
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Bonjour.

    merci pour ta réponse.

    effectivement j'ai lu la doc et il recommande le format xls je vais donc modifier cela rapidement.

    avec les infos que tu m'as donnés je n'ai pas réussis a faire fonctionner la traduction, je vais retenter ma chance

    Citation Envoyé par Symfony Profiler
    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.
    EDIT:
    autant pour moi j'ai pu faire une traction.

    je vais tout passer en xls et essayé de faire fonctionner tout ça.

    merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 533
    Points : 935
    Points
    935
    Par défaut
    il faut souvent vider le cache quand t’apporte des modifs dans les fichiers de traduction.

    Après xlif c'est juste un standard recommandé mais le yaml est toujours supporté par Symfony.

  5. #5
    Membre à l'essai
    Femme Profil pro
    maçon
    Inscrit en
    octobre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : maçon
    Secteur : Bâtiment

    Informations forums :
    Inscription : octobre 2018
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    ça me fera l'occasion de tester et d'appliquer les recommandations.

    Avec mon niveau tout cela n'est pas simple, je me demande comment toute la traduction sera gérée proprement.

    EDIT

    j'ai copier "bêtement" la doc symfony : https://symfony.com/doc/current/translation.html

    j'ai un controller TranslationController pour faire des essais.

    Mais la encore une fois je n'ai pas d'erreur dans Symfony profiler, mais le site en directement traduit en EN au lieu de rester en FR.

    je souhaite avant le site en FR et si on choisis anglais passer a la traduction anglais, je n'ai toujours pas de bouton opérationnel, donc le site devrait rester en français.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2018, 09h35
  2. Traduction application en Arabe
    Par hackoofr dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/11/2010, 13h37
  3. Réponses: 1
    Dernier message: 23/06/2009, 15h16
  4. Traduction en plusieurs langues d'une application
    Par Furlaz dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2006, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo