IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Symfony PHP Discussion :

gestion i18N chaotique /:sf_culture = fr_FR pas fr [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut gestion i18N chaotique /:sf_culture = fr_FR pas fr
    dans mon module frontend j'ai tenté de suivre le training de jobeet pour gérer deux langues dans mon site.

    malheureusement, je me retrouve avec une URL du type fr_FR alors qu'il attend fr.
    Je voie pas du tout ou j'ai pu lui forcer ça.
    J'ai du modifier des fichiers symfony pour compenser son impossibilité a gérer des enregistrements multilingues mais je voie pas le rapport la

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Il y a un conflit connu (et hélas non résolu) dans la définition des langues entre symfony et doctrine. Symfony gère la culture (langue + culture) sous la forme de xx_YY alors que doctrine ne gère que la langue.

    Le problème étant qu'il (doctrine) utilise le code culture de symfony pour trouver la langue, sans le nettoyer de la culture.

    D'où, dans plusieurs tutoriel, notamment Jobeet, une simplification qui consiste à utiliser dans culture uniquement la langue, ce qui, le plus souvent, marche.

    Mais parfois génère des conflits comme le tiens. Je n'ai pas de bonne solution, tous dépend de ce que tu souhaites gérer pour ton application.

  3. #3
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Parfois, oui, mais pourquoi ?

    je suis tombé aujourd'hui exactement sur le même problème dans le tuto jobeet. Ce qui est curieux, c'est que le comportement dépend de l'environnement. Le test qui echoue est dans apiActionsTest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $browser->info('3 - The web service supports the JSON format')->
            get('/api/sensio_labs/jobs.json')->
            with('request')->isFormat('json')->
            with('response')->matches('/"category"\: "Programmation"/')->
    [...]
    Si j'appelle cette url en prod ou en dev :
    http://127.0.0.1:8080/frontend_dev.p...labs/jobs.json
    j'obtiens par exemple pour la premier job :
    {
    "url": "http://127.0.0.1:8080/frontend_dev.php/fr/job/company-124/paris-france/28/web-developer",
    "category": "Programmation",
    ...
    Pour ce même test, la tâche test:functional frontend apiActions tombe en erreur car elle ne trouve pas la catégorie 'Programmation'. La sortie json qu'elle reçoit est :
    {
    "url": "http://127.0.0.1:8080/frontend_dev.php/fr_FR/job/company-124/paris-france/28/web-developer",
    "category": null,
    ...
    Pourquoi cela fonctionne t'il dans tous les environnements sauf test ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A priori je dirais que l'environnement de test n'est pas le même que celui par défaut.

    Vérifie la structure de la base (peut probable) et les données chargées (plus probable) et enfin s'il y a des paramètres dédiés à test dans les fichier yml.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est pas la culture mais la région

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    bon je suis de nouveau reparti de zéro et le bug n'apparait plus.

    Pas très fiable tout ça. J'ai vraiment besoin de gérer le multilingue et j'ai comme qui dirait l'impression que symfony ne sait pas le gérer aussi bien qu'il le dit

    je met a résolu tout en espérant que la mise en prod ne me réserve pas des surprises désagréables

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

Discussions similaires

  1. gestion memoire set_new_handler ne marche pas
    Par mikeOSX dans le forum C++
    Réponses: 8
    Dernier message: 31/07/2007, 16h51
  2. Gestion passage avec cookie ou pas
    Par delavega dans le forum Flash
    Réponses: 1
    Dernier message: 22/04/2007, 23h10
  3. Réponses: 2
    Dernier message: 23/06/2006, 10h23
  4. [I18N] internationalisation ne marche pas
    Par gloglo dans le forum Struts 1
    Réponses: 44
    Dernier message: 31/05/2006, 10h59
  5. Réponses: 5
    Dernier message: 02/09/2005, 07h46

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