Bonjour,

Je suis entrain de re-construire l'un de mes sites internet avec du php (enfin juste un include) et CSS. voici l'ancienne version toujours en ligne.

Il est construit selon le modèle trouvée sur Alsacreations. Le menu de mon site se trouve dans le header, et le contenu "centre" contient un php include.

Il doit être en deux langues français/anglais (les textes français sont traduits par nos soins).

Je me demande quel est la meilleure solution pour programmer mon site ? . Voici mes pistes actuelles...

J'ai pensé mettre une liste de liens (Français/Anglais) qui permettrait le chargement d'une nouvelle page soit française (index-fr.php) soit anglaise (index-en.php). Chaque langue aurait son répertoire d'includes.

Un site comme l'officiel de Bumcello m'inspire. Le webmaster m'a dit qu'il s'était appuyé sur le tutorial. J'ai essayé de reproduire l'exercice (avant toute adaptation) et je fais chou blanc quand il s'agit de passer à l'anglais.

J'ai vu une autre solution.

Quel est votre avis ?
il y a 2 solutions (surement d'autre mais moi je n'en vois que deux), soit tu récupère ton texte par l'intermédiaire de fichier texte comme dans le tutorial que tu as vu soit tu le récupère par l'intermédiaire d'une base de donnée.
En faite ça dépend beaucoup de comment tu souhaites mettre à jour le site par la suite. Si tu préfères trifouiller ou si tu préfère avoir une belle page d'administration.
Et là tu peux coupler ça avec Xstandard par exemple qui est un très bonne édiiteur de texte pour le web.
Merci de ta réponse, masseuro.

D'après ce que j'ai lu Xstandard est un plugin pour des CMS. Moi, je développe mon site de façon "classique".

Mon site aura très peu de mise à jour. (une à trois fois par an).
Bonjour,
si ça peut t'aider je développe un site avec 8 langues, pour celà, à chaque fois qu'il y a du texte je met une variable php (des tableaux en fait) puis je créée 8 fichiers langue, la détection se fait par un cookie, c'est simple et efficace.
Salut Dream-Time ton cookie m'intéresse fortement tu peux balancé?

Je pense que ta solution est la plus flexible pour ma part.
Bonjour,
Je suis aussi en train de travailler sur un site multilangue. En fait, j'ai à peu près fini la partie française et je vais m'attaquer à la gestion des langues dès que possible (j'ai reçu les textes anglais ce matin).

J'ai trouvé un tutoriel sur Le Site du Zéro qui explique une méthode (ça devrait intéresser Nikolours pour la partie cookie, s'il n'est pas trop tard). L'auteur définit un cookie pour la langue et gère ensuite le texte via des constantes PHP.

Je me demande ce qu'il y a comme autres solutions et laquelle est la plus pertinente ? Par exemple, comment gérer la situation d'un utilisateur n'ayant pas activé les cookies ?
D'autre part, est-il plus pertinent (en-dehors de la facilité de gestion) d'utiliser des fichiers externes pour les différentes textes ou une base de donnée ? Dans une BdD, les requêtes ne seront-elles pas plus lourdes à gérer pour le serveur que de simples appels (includes PHP) de fichiers externes ? ou est-ce que la charge est négligeable pour un site relativement petit ?
bonjour,
j'ai une question qui peut vous paraitre etrange.
je reflechis en ce moment à la réalisation d'un site (en css bien sur Smiley cligne ), mais un site multi langue (6 langues).

je viens de parcourir tous les tutoriaux sur les différents sites et forums.

les solutions sont multiple, soit bdd, soit avec des variables.
le tutorial du site sitedu zero me semble interessant mais...

dans le cas des variables,

define('PAGEX_1_1', 'On parle d un sujet 1');


comment faire par exemple pour mettre le texte d'une biographie qui contient image, et textes.
car dans le cas de plusieurs lignes, si on met tout dans la variable on en fini pas.
et question mises a jours ce ne sera pas simple

doit-on tout encode (le texte, le code)

ou n'existe-il pas un moyen d'appeler une page, par ex bio_fr.php et de l'inclure automatiquement .

je ne sais pas si ma question est claire.

mais si vous comprenez n'éhsitez pas a me donner des conseils.

merci d'avance
a+
Modifié par Angelik (11 Apr 2007 - 12:03)
Pour ma part, j'ai résolu le problème en prenant Dotclear 2.0 comme système de blog et en le configurant comme un site.
Jean-Michel a écrit :
Pour ma part, j'ai résolu le problème en prenant Dotclear 2.0 comme système de blog et en le configurant comme un site.


bonjour Jean Michel Smiley cligne

oui mais le resultat ne sera pas celui que je souhaite si j'utilise dotclear.
j'utilise dotclear, ordpress pour des blog.
mais pour ce site la pas interessant pour moi.

j'ia commencé en faisant des include simple des pages entières, mais vu qu'il va y avoir 6 ou 7 langues je ne pense pas que ce soit la solution.
une solution dynamique sera plus judicieuse, mais...

donc je vais y réfléchir a nouveau aujourd'hui
a+
Angelik a écrit :
j'ia commencé en faisant des include simple des pages entières, mais vu qu'il va y avoir 6 ou 7 langues je ne pense pas que ce soit la solution.
une solution dynamique sera plus judicieuse, mais...

Et adapter un CMS qui gère des sites multilingues, et qui soit plus orienté vers ce que tu veux ?

Des CMS comme SPIP ou Typo3 gèrent des langues multiples (même si pour Typo3 mieux vaut connaitre le système, car c'est pas un logiciel évident...). Et ce ne sont probablement pas les seuls.
Florent V. a écrit :

Et adapter un CMS qui gère des sites multilingues, et qui soit plus orienté vers ce que tu veux ?

Des CMS comme SPIP ou Typo3 gèrent des langues multiples (même si pour Typo3 mieux vaut connaitre le système, car c'est pas un logiciel évident...). Et ce ne sont probablement pas les seuls.


je passerais plus de temps a adapter qu'a creer toutes les pages normalement.

je pense que je vais rester en include "simples".
ce sera plus simple dans le cas ou je ne serais pas la seule a gerer le site par la suite.
ou voir si je peux combiner les 2,
include pour les pages et variables pour les differents sommaires peux-etre.
je vais voir.

a+
en revanche s'il y a des doués en php je veux boen poser une autre question... je pense qu'il s'agit d'une question sur la syntaxe


je souhaite regrouper les modifications dans un seul fichier pour chaque langue.

ex: lang-fr.php / lang-en.php

je souhaite y mettre par ex les variables pour les titres des pages.

mais j'ai une question au sujet des titres des pages.

dans mon header (page commune a toutes les pages)

je mets d'habitude :


<title> <?php echo $title; ?> </title>  




et d'habitude encore je mets dans les pages

<?php $title = "titre de la page ex: biographie ";   
include("header.php");   
?>  

le contenu de ma page

puis l'inculde du footer.php 




le probleme que j'ai doit avoir doit etre un probleme de syntaxe je pense, a moins que ce que je veux faire soit impossible ?

je souhaite mettre dans mon fichier langue-fr.php



// TITRE PAGE / ENTETE   
    //---------------------------------------------------------    
    define('TITRE_ACCUEIL', 'page d'accueil du site');  
define('TITRE_bio, 'page bio du site');  

etc...  
pour chaque page  





mon probleme c'est que je n'arrive pas a "déclarer" correctement ma nouvelle variable, pour qu'elle change a chaque nouvelle page (un titre different pour chaque page)

je souhaite faire clea pour eviter d'avoir a ouvrir chaque page si je veux modifier les titres des pages.

je pensais a un truc du genre :

<?php $title = TITRE_ACCUEIL;    
include("header.php");    
... 


mais bien sur ce n'est pas correct

merci d'avance de vos suggestions
si ce n'est pas possible merci de me prevenir, car je cherche encore et encore Smiley cligne

a+


edit : je viens de poster ce dernier message dans le salon php qui me semble plus adapté.
Modifié par Angelik (12 Apr 2007 - 15:39)
Hello,

Les solutions techniques sont une choses, mais à mon sens la première question à résoudre, c'est "Disposes-tu de toutes les version de chaque textes en mêmes temps ?"


Ce que sous-entends la question c'est va tu servir une page vide à un visiteur dans le cas ou l'article qu'il souhaite lire n'a pas encore été traduit ?


En fait je me suis souvent posé la question car la plupart du temps un site est écrit dans une version "initiale" pour l'exemple le français, puis traduit ensuite en d'autres langues.

Le délai entre la parution du texte en français et en langue 2 ou 4 n'ai que très rarement tenu sous contrôle.

Donc à la réflexion il m'a paru important lors des développement que j'ai fait en ce sens de mettre en place un système de gestion de langue basé sur cette réalité.

exemple pour la gestion d'actus dans un site. (le tout basé sur l'utilisation d'une base de données)

Le lundi je publie une actu en français. J'aurais la traduction en coréen le mecredi.

Je pourrais alors saisir nom pas une copie de l'article mais une traduction.

Dans la base une table gère la relation entre l'article et la traduction ça donne un truc du genre :

TRAD.ID
TRAD.ARTICLE
TRAD.LANGUAGE
TRAD.PARENT_ID

En référence donc via le PARENT_ID l'article ID de la table gérant les actus, puis une autre clé pour la langue, de cette manière y'a pas de limite du nombre de langue.

Au moment de la publication, si l'article Coréen n'est pas dispo, j'ai plusieurs possibilités, soit comme évoqué ci-dessus je ne publie pas, soit je publi le français, puisque langue de référence du site accompagné d'une note en coréen expliquant que l'article est en cours de traduction..

Je ne sais pas si je suis clair : )

Après que ce soit basé sur un cookie ou une session c'est de toute façon identique.