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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish] Afficher choix langues


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [eZ Publish] Afficher choix langues
    Mon problème est très bête : j'aimerais afficher, sous forme de liens, ou mieux, de petits drapeaux, le choix des différentes langues dispo sur mon site.

    J'ai lu pas mal la doc de ez.no mais je m'y suis perdue...

    edit : un élément de réponse?
    http://ez.no/developer/articles/new_...ingual_content

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    afficher des drapeau avec lien n'est pas difficile.

    Ensuite, tout depend comment tu geres les differentes langues pour tes pages :
    1- redirection vers les pages en fonction de la langue ?
    (dans le meme dossier ?)
    ex. : FRaccueil.php (par defaut, francais), ESaccueil.php, ENaccueil.php, ...
    2- dans des dossiers differents ? (dossier "FR", "EN", "ES", ...)
    ex. : FR/accueil.php, ES/accueil.php, EN/accueil.php, ...
    3- inclure une fonction contenant la langue concernée ?
    4- ... ?

    1- les drapeaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a href="FRaccueil.php?LANG=FR">
    <img alt="Francais" src="IMAGES/FR-drapeau.jpg" width="30" height="20" border="0" /></a>
    &nbsp;
    <a href="ESaccueil.php?LANG=ES">
    <img alt="Espanol" src="IMAGES/ES-drapeau.jpg" width="30" height="20" border="0" /></a>
    &nbsp;
    <a href="ENaccueil.php?LANG=EN">
    <img alt="English" src="IMAGES/EN-drapeau.jpg" width="30" height="20" border="0" /></a>
    1- On commence par recuperer la langue dans une variable de session,
    puis on redirige vers la bonne page, dans le meme dossier...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php session_start();
    // -------------------------------
    // par defaut
    $_SESSION['LANG'] = 'FR';
    // -------------------------------
    // autre langue ?
    if ($_GET['LANG'] != '' && $_GET['LANG'] != 'FR') {
    	// redirection
    	header('location: '.$_SESSION['LANG'].accueil.php);
    	exit;
    }
    // -------------------------------
    ?>
    ...ou le dossier "FR", "EN", "ES", contenant les pages de la langue concernée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a href="FR/accueil.php?LANG=FR">
    <img alt="Francais" src="IMAGES/FR-drapeau.jpg" width="30" height="20" border="0" /></a>
    &nbsp;
    <a href="ES/accueil.php?LANG=ES">
    <img alt="Espanol" src="IMAGES/ES-drapeau.jpg" width="30" height="20" border="0" /></a>
    &nbsp;
    <a href="EN/accueil.php?LANG=EN">
    <img alt="English" src="IMAGES/EN-drapeau.jpg" width="30" height="20" border="0" /></a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php session_start();
    // -------------------------------
    // par defaut
    $_SESSION['LANG'] = 'FR';
    // -------------------------------
    // autre langue ?
    if ($_GET['LANG'] != '' && $_GET['LANG'] != 'FR') {
    	// redirection
    	header('location: /'.$_SESSION['LANG'].'/'.accueil.php);
    	exit;
    }
    // -------------------------------
    ?>

  3. #3
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut,

    Ce que jreaux62 t'as dis n'a strictement rien à voir avec eZ Publish...

    Si tu veux afficher les langues sous eZ Publish il faut ajouter ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    {def $locales=fetch( 'content', 'translation_list' )}
     
    {foreach $locales as $locale}
       <a href={$locale.language_code|downcase()|ezroot}>
           <img src={concat('images/', $locale.language_code, '.jpg')|ezdesign()} alt="{$locale.language_name}" title="{$locale.language_name}"/>
       </a>
    {/foreach}
    ensuite tu dois bien évidemment mettre à disposition les images fre.jpg eng.jpg etc... dans le dossier design/ton_design/images
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  4. #4
    Invité
    Invité(e)
    Par défaut
    En effet, mea culpa !
    Je n'avais pas lu la rubrique !
    (j'étais dans la section "PHP"). Désolé.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci à vous deux.
    jreaux62, merci de ton aide, mais je n'ai pas besoin de faire le système en PHP
    Yoteco, ton système me liste les langues disponibles, avec liens, et drapeaux, c'est impeccable !

    Yoteco, j'oserais te demander un peu plus d'aide, car j'ai utilisé plusieurs design pour simuler plusieurs site_access vers les différentes langues...c'est une erreur ?
    Comment vaut-il mieux faire ?
    La documentation indique TOUTES les manières possibles à la fois, cela m'égare complètement.

  6. #6
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Il n'y a pas de science exact. Mais d'après ce que j'ai pu voir le plus correct et de faire un siteaccess par langue. Ceci te permet si nécessaire de complètement séparé le site pour chaque langue design config etc...

    Pour chaque siteaccess tu spécifies le même design. Puis pour les particularités tu utilise le système de fallback. Ensuite pour les langues tu configures dans le site.ini.append.php de chaque siteaccess la locale.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut à vous,

    suis avec Yoteco, le mieux c'est d'avoir une même charte pour le site quelque soit la langue, seul le contenu pourras changer.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  8. #8
    Invité
    Invité(e)
    Par défaut
    Voici le code que j'ai utilisé (les drapeaux sont déjà présents dans l'application, autant les reprendre):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {def $site_languages=ezini('RegionalSettings', 'SiteLanguageList')}
    {def $locales=fetch('content','locale_list')}
    {foreach $site_languages as $lang}
            {foreach $locales as $locale}
                     {if eq($locale.locale_code, $lang)}
                     <a href={concat('index.php/',$locale.language_code|downcase())|ezroot}>
           <img src={$locale.locale_code |flag_icon} alt="{$locale.language_name}" title="{$locale.language_name}"/>&nbsp;
       </a>
                         {break}
                     {/if}
            {/foreach}
    {/foreach}

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    Je ne comprend pas pourquoi mere-teresa utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {def $site_languages=ezini('RegionalSettings', 'SiteLanguageList')}
    J'ai inséré le bout de code proposé et il ne fonctionne pas correctement.
    J'utilise anglais/français et si je suis sur la page française, les 2 drapeaux s'affichent et dès que je passe sur la page anglaise, le drapeau français disparaît...
    J'ai recherché un bon moment et finalement j'ai utilisé le code proposé par Yoteco et adapté pour utilisé les drapeaux déjà existant dans eZpublish.

    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {def $locales=fetch( 'content', 'translation_list' )}
    {foreach $locales as $locale}
    <a href={concat('index.php/',$locale.language_code|downcase())|ezroot}>
         <img src={$locale.locale_code |flag_icon} alt="{$locale.language_name}" title="{$locale.language_name}"/>
    </a>
    {/foreach}

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

Discussions similaires

  1. [PHP 5.4] Choix langue avec bouton
    Par maxiNoob dans le forum Langage
    Réponses: 12
    Dernier message: 27/03/2011, 23h34
  2. [eZ Publish 4.0] Langue française?
    Par jeremm dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 13
    Dernier message: 18/12/2008, 17h53
  3. Afficher choix a partir d'une liste deroulante
    Par amne26 dans le forum IHM
    Réponses: 11
    Dernier message: 22/09/2008, 19h20
  4. Réponses: 6
    Dernier message: 22/09/2008, 14h55
  5. [eZ Publish] Afficher une image placé dans Related images
    Par clara2005 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 01/02/2008, 11h56

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