Site multilingue

Voilà, la question est simple: je dois faire un site en 3 langues différentes et seule la langue change.

Donc je voulais savoir comment faire pour faire un seul site et que seule le texte change en fonction de la langue choisie (le texte serait alors contenu dans un fichier texte ou un truc du style).

Si possible en html :stuck_out_tongue:

Merci d’avance.

Il y a quoi comme technologies derrière ?
Parce que si ce sont juste des pages HTML sans rien d’autre, je vois pas comment on peut faire ça facilement (sans écrire une page par langue, bien entendu)…

[quote name=‘rorotaz’ date=’ 21 Sep 2005, 13:25’]Il y a quoi comme technologies derrière ?
Parce que si ce sont juste des pages HTML sans rien d’autre, je vois pas comment on peut faire ça facilement (sans écrire une page par langue, bien entendu)…
[right][post=“399823”]<{POST_SNAPBACK}>[/post][/right][/quote]
Justement, c’est juste du html à la base parce que je dois le faire rapidement. Mais si il y a pas moyen de le faire en html pur, j’aimerais savoir quelle technologie utiliser et comment.

Edit: ouaip, j’ai oublié de dire que le serveur ne gere pas le php, le sql et tout ça… par contre je sais pas si les applets java peuvent être utilisés sur n’importe quels serveurs ou si il faut que ce soit aussi compatible.

Pour information, les applets, niveau serveur, c’est rien : tu stockes ton fichier .jar (l’applet compilée) et c’est tout !
Après, c’est au visiteur d’être compatible (donc d’avoir un JDK ou JRE dispo sur sa machine).
Personnellement, je te déconseille d’utiliser des applets, c’est pourri et c’est lourd. Surtout pour ton cas.

Sinon, y a pas moyen de gérer tout ça par des CGI, qui prendrait le paramètre de la langue, et qui prend ce qu’il faut dans des fichiers textes et l’intègre à un fichier squelette html ?

Edit: Ca ne gère pas le SQL / php ? Tu peux pas t’installer un petit serveur Apache et MySQL ?

[quote name=‘rorotaz’ date=’ 21 Sep 2005, 13:37’]Sinon, y a pas moyen de gérer tout ça par des CGI, qui prendrait le paramètre de la langue, et qui prend ce qu’il faut dans des fichiers textes et l’intègre à un fichier squelette html ?

Edit: Ca ne gère pas le SQL / php ? Tu peux pas t’installer un petit serveur Apache et MySQL ?
[right][post=“399831”]<{POST_SNAPBACK}>[/post][/right][/quote]
Oui, c’est un peu ça que je veux faire, un squelette et un paramètre qu prends en compte la langue mais comme je m’y connait pas grand chose, je sais pas trop comment faire. (J’arrive juste à faire le site de base avec les liens et un peu de design, c’est tout).

Sinon je fait ce site pour quelqu’un qui n’y connait rien et qui l’hébergera sur son espace qu’il a reçu avec sa connection web, les possibilités ne sont donc pas énormes!

dans ce cas, le plus simple c’est de faire 3 versions du site dans 3 dossier différents (fr, en, de au pif) avec une page d’accueil qui propose le choix…

Mais c’est pas bien hein…

[quote name=‘lucasbfr’ date=’ 21 Sep 2005, 15:40’]dans ce cas, le plus simple c’est de faire 3 versions du site dans 3 dossier différents (fr, en, de au pif) avec une page d’accueil qui propose le choix…

Mais c’est pas bien hein…
[right][post=“399901”]<{POST_SNAPBACK}>[/post][/right][/quote]
Oui, c’est ce que je comptais faire si je trouvais pas de solution, mais tant qu’à être payé, autant bien le faire!

Mais si quelqu’un a une solution même en php ou sql je suis preneur, je le referai plus tard si il faut. Le problème pour l’instant c’est le temps!

Tu peux utiliser Javascript, avec un tableau associatif. Ca devrait le faire, et t’éviter de faire 3 fois le même site.

Je pense que le plus simple serait d’avoir un fichier de langue qui contiendrait un array associatif $lang[] (à la phpBB quoi…)

Et tu aurais un script comme ca au début de page :

[code]<?php
$default = « fr »; // Tu définis la langue par défaut.

if(isset($_POST[‹ change_langue ›])) {
// Si le formulaire a été soumis

if (file_exists('lang/' . $_POST['langue'] . '.php')) {
// Si le fichier contenant tes arrays de langue existe :

setcookie(‹ lang ›, $_POST[‹ langue ›], time()+(365243600));
// Tu fais un cookie contenant la langue de l’utilisateur (ici, mémorisée pour un an)

	$langue = $_POST['langue'];
	// Si le fichier de lang existe, tu gardes le tout dans une variable
} 

else 

$langue = $default;
}

elseif (isset($_COOKIE['langue']))
	// Si le formulaire n'a pas été soumis et si le cookie existe, on assigne la variable
	$langue = $_COOKIE['langue'];

else
	// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit le lange par défaut.
	$langue = $default;

function selected($input) {
if($input == $GLOBALS[‹ langue ›])
echo ‹ selected=« selected » ›;
}
// Fonction BONUS pour le formulaire.

include(« lang/ » . $_POST[‹ langue ›] . « .php »);
// Tu inclus le fichier de lang contenant un array avec tous les textes de ton site
?>[/code]

Puis un formulaire du type :
[html]<?php echo $lang['choose_lang']; ?>

>Français >English >Deutsh [/html]

Et dans ton fichier lang/fr.php tu aurais :

[code]<?php
$lang = array(

'submit_change_lang' => 'Changer de langue',
'choose_lang' => 'Veuillez choisir une langue',
'etc..' => 'Et tout ca..'

);
?>[/code]

Par contre, si tu maitrises pas trop le PHP, ca peut vite t’embrouiller :stuck_out_tongue:
Et tu seras obligé d’afficher tous tes textes, même un seul mot isolé, par un <?php echo $lang['key']; ?> et il faudra que tu ais défini cet extrait avant dans le $langue.php

Voilà, c’est une des solutions en PHP, c’est peut-être une des plus lourdes, je ne me suis jamais penché là-dessus…

Notre unreal national a écrit un article sur la l10n (localisation).

Mouais, mais bon, les short tags, c’est pas très recommandé…
Ici

Y’a pas un CMS qui permet de faire ça ? :P"

==> [ ] :stuck_out_tongue:

Bon, j’ai décidé de le faire en triple simplement, c’est le plus facile pour l’instant et le plus rapide (du moins pour moi qui n’y connait pas grand chose).

Mais il reste toujours le même problème: deux pages sont communes aux 3 langues et la personne pour qui le site est destiné doit pouvoir les modifier regulierement d’où mon idée d’inserer une page html unique dans un tableau… ce dont j’ai du mal a trouver comment faire, même dans l’aide.

Donc si quelqu’un a la solution ou une solution alternative, merci de m’en faire part :stuck_out_tongue: Les pages en question est un agenda (donc du texte) et des photos.

Bha et Dotclear ? Ok c’est plus blog mais bon…de plus xave viens de nous sortir un cadeau pour la rentrée : un thème spécial multilingue…