Afficher du contenu selon langues

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 : Afficher du contenu selon langues

Re: Afficher du contenu selon langues

par Mazarini » 04 mai 2011, 16:04

Bonjour,

Il faut que tu trouve un moyen de connaitre la langue (url de la page ?)
Eventuellement parcours le code pour voir comment c'est fait dans wordpress. Dans le code qui fait tu ajoutes un $_GLOBAL['MaVariableDeLangue'] = X en fonction de la langue calculée. Ensuite, tu utilises $_GLOBAL['MaVariableDeLangue'] pour connaitre la langue quand tu en a besoin. Fais attention à trouver un nom qui ne risque pas d'être utilisé ailleurs pour 'MaVariableDeLangue'.
Tu peux aussi rechercher html lang="fr-FR" pour trouver affecter la variable la ou ce code est calculé.

Re: Afficher du contenu selon langues

par imudo » 04 mai 2011, 14:47

Et si je vire le $config->getValue('language') ?

Juste cela n'est pas suffisant pour afficher en fonction de <html lang="fr-FR" ? :

Code : Tout sélectionner

<?php if ($lang=="en-US") echo 'mon texte en anglais'; else if ($lang=="fr-FR") echo 'mon texte en français'; else if ($lang=="nl-NL") echo 'mon texte en néerlandais'; ?>

Re: Afficher du contenu selon langues

par imudo » 03 mai 2011, 20:04

En fait il s'agit d'un site créé sous Wordpress. Les langues (menus et contenus) sont automatiquement gérés par un plugin multilingue.
Donc pour une page donnée (il n'existe qu'une seule page index.php, single.php, etc), le plugin appelle les bonnes traductions que j'ai créées dans mon backoffice.

Simplement, j'ai une colonne (appelée en include dans chacun de mes fichiers index.php, single.php, etc) dans laquelle je veux insérer un lien vers un sommaire de catégorie d'article (j'ai donc 3 adresses différentes en fonction des langues). Il s'agit simplement d'un "petit" lien dont l'intitulé et l'URL doivent changer en fonction de la langue.
Mais ça, WP et mon plugin ne le gère pas en natif donc je voulais le faire à la mano.

Est-ce que cela aide à répondre ?

Re: Afficher du contenu selon langues

par Mazarini » 03 mai 2011, 12:08

Bonjour,

La premier problème est de déterminer comment tu décides de la langue à utiliser :
- en fonction d'un choix de l'utilisateur
- en fonction d'un paramétrage de l'utilisateur après sa connexion
- en fonction de son IP
- en fonction du paramétrage de son navigateur

Ensuite il faut que tu gère le multi-langue dans le contenu statique et dans le contenu dynamique. Je me demande d'ailleurs si le plus simple n'est pas de faire 3 sites.

Re: Afficher du contenu selon langues

par macgawel » 03 mai 2011, 11:22

Mon idée était toute simple : dire IF c'est du Français, tu ECHO "xxxx", ELSE IF c'est de l'Anglais, tu ECHO "zzzz", etc..

Bon, j'imagine que je suis en train de projeter du php à ma sauce qui n'existe peut-être pas.

Mais peut-être ma solution n'est pas la bonne et il existe une piste beaucoup plus simple pour atteindre mon objectif ?
Dans l'idée, c'est juste.

Les problèmes :
1. Dans ton code, tu utilises $config->getValue('language'); pour obtenir la langue.
Ce serait bien de savoir à quoi correspond ce $config, puisque c'est ça qui détermine la langue...

2. Au niveau technique :
- Si tu dois rajouter une/des langue(s), ça va vite devenir illisible.
- Pour modifier un texte, il va falloir aller trifouiller les fichiers PHP, et ce n'est jamais bon.

Ce n'est pas évident d'en dire plus sans avoir le code complet, mais a priori pour pouvoir maintenir facilement les textes, il y a plusieurs solutions :
- Utilisation d'une Base de données. C'est à terme le plus efficace. Mais c'est aussi le plus complexe à mettre en oeuvre...
- Stockage dans des fichiers textes. Là encore, ça dépend du reste, mais en gros il s'agit de faire un include() d'un fichier qui contiendra le texte de la page, en passant en paramètre la langue (par exemple, tu crées un répertoire par langue et tu fais include($malangue/fichier.html) )
- Comme tu veux le faire, mettre en dur des tests.

Re: Afficher du contenu selon langues

par imudo » 03 mai 2011, 09:03

Bonjour,

Rien ne marche ! En fait je suis intégratrice, donc le html/css c'est ok, mais alors le php... Je ne comprends même pas ce que tu entends par :
il faudrait regarder du coté de l'initialisation de la variable $config et de l'objet associé
Cela sous-entend qu'il y a du code supplémentaire à insérer dans le header ?

Mon idée était toute simple : dire IF c'est du Français, tu ECHO "xxxx", ELSE IF c'est de l'Anglais, tu ECHO "zzzz", etc..

Bon, j'imagine que je suis en train de projeter du php à ma sauce qui n'existe peut-être pas.

Mais peut-être ma solution n'est pas la bonne et il existe une piste beaucoup plus simple pour atteindre mon objectif ?

Re: Afficher du contenu selon langues

par Mazarini » 03 mai 2011, 08:04

Bonjour,

Ca serait bien de nous dire ce qui marche pas...

A priori, il faudrait regarder du coté de l'initialisation de la variable $config et de l'objet associé.
$config->getValue('language');

Afficher du contenu selon langues

par imudo » 03 mai 2011, 01:26

Bonjour à tous,

Je construit un site multilingue en 3 langues (FR, EN et NL) et je cherche à afficher du html qui diffère selon les langues.

Je manque complètement de connaissances en php et en furetant sur divers forums, j'ai trouvé ce type de chose :

Code : Tout sélectionner

<p>Voici le début du texte</p> <?php $lang=$config->getValue('language'); if ($lang=="en-US") echo 'mon texte en anglais'; else if ($lang=="fr-FR") echo 'mon texte en français'; else if ($lang=="nl-NL") echo 'mon texte en néerlandais'; ?> <p>Et là c'est fini</p>
Cela ne marche pas, mais j'imagine que je chauffe non ?

Qelqu'un peut-il m'aider ? Je vous remercie d'avance pour vos conseils ! :)