OVH Cloud OVH Cloud

Site bilingue: liens page-à-page ?

6 réponses
Avatar
Dexdex
Bonjour,
je suis entrain de préparer un site bilingue (fr-en) et un trilingue
(fr-en-de). Dans les 2 cas, je vais utiliser une page d'accueil commune,
sous laquelle il y aura une arborescence par langue (vous me suivez
jusquezici ?). Chaque partie linguistique aura la même structure. Je précise
que je compte utiliser une bordure partagée avec barre de navigation basée
sur la structure.
Question: existe-t-il une astuce permettant d'ajouter à chaque page une
petite barre de navigation (2 ou 3 boutons) permettant de passer d'une
langue à l'autre en allant vers la page équivalente ? Je peux évidemment
définir autant de boutons qu'il y a de pages, mais je me demandais si il
existait une façon plus élégante (composant ?).
Merci db

6 réponses

Avatar
Dexdex
Merci. Je n'en suis pas encore là, mais voilà bien une bonne raison d'aller
vers du dynamique. db
"JmmlOre" a écrit dans le message de
news:06f301c34c3d$b71e05e0$
La seule solution élégante qui existe est d'utiliser un
langage dynamique comme le PHP ou l'ASP. Il faut stocker
tes textes dans une base de données (Access ou MySQL par
exemple) et générer les pages au fur et à mesure.
Avatar
Jean-Michel Berthier
Est-il "élégant" de bouffer des tonnes de bande passante en générant des
requêtes SQL à chaque appel de page pour simplement ne pas se fatiguer à
recopier une page ?
Oui, il peut être pratique d'avoir une base de données avec des textes, mais
il faut bien étudier le problème et voir s'il n'est pas plus simple de se
servir du php en local pour générer ses pages html (merci pour les voisins).
Quant à la "seule solution", je ne commente pas.

Sinon peut-être qu'avec les thèmes et les bannières de FrontPage, il y a des
possibilités aussi.

"JmmlOre" a écrit dans le message de
news:06f301c34c3d$b71e05e0$
La seule solution élégante qui existe est d'utiliser un
langage dynamique comme le PHP ou l'ASP. Il faut stocker
tes textes dans une base de données (Access ou MySQL par
exemple) et générer les pages au fur et à mesure.
Avatar
Michel Thiffault
Il y a aussi la lecture du contenu à partir d'un fichier XML. Plus efficace
et rapide que des accès à une BD.

JmmlOre wrote:
La seule solution élégante qui existe est d'utiliser un
langage dynamique comme le PHP ou l'ASP. Il faut stocker
tes textes dans une base de données (Access ou MySQL par
exemple) et générer les pages au fur et à mesure.


Avatar
Jean-Michel Berthier
PS : le code que vous proposez serait peut-être plus clair ainsi :

[...]
<script type="text/javascript">
var attente = 7000;

function importTexte(i){
if (i<t.length){
document.getElementById('div1').innerHTML= t[i++];
setTimeout("importTexte("+i+")",attente);
}
else importTexte(0);
}
</script>
[...]

Et dans text.txt (avec bien sûr les variables chaînes sur une seule ligne)

var t = new Array(3);

t[0] ='test <strong>1</strong><br />test test test test test test test
test';
t[1] ='test <em>2</em><p>test test test test test test test test';
t[2] ='<big>3</big><br />test test test test <a href="#">test</a> test test
test test test test test';

Vous pouvez améliorer votre code avec ma bénédiction et sans me citer, je ne
demande pas de copyright :-)))
(car il n'y a rien de neuf. Ce sont des techniques qu'on trouve un peu
partout et que tout programmeur de base sait et peut créer)


"Phantôme" <Phantô a écrit dans le message de
news:%23$
Salut,

Jean-Michel Berthier nous disait :
[...]
>Si c'est fait automatiquement, on n'a
> plus à se casser la tête avec les trois sites. Et le serveur se
> contente d'être un serveur de fichiers.
> On a alors :
> <a href=http://monsite/mapage-fr.html>Mapage en français</a>
> <a href=http://monsite/mapage-en.html>Mapage en anglais</a>
> <a href=http://monsite/mapage-de.html>Mapage en deutche</a>
> etc...
> Et c'est la machine qui l'a fait !
>

bon, puisque vous êtes gentils ;o) je vous offre une solution
qui passe sous tous les navigateurs récents, pour peu que
javascript soit acivé.
(IE 5.5 et + opera 7 et + netscape 7 et + mozzilla 1.3)

le fichier html :

<style type="text/css">
/*<![CDATA[*/
<!--
#div1{
width: 150px;
height: 150px;
border: 1px solid black;
padding: 8px;
}
-->
/*]]>*/
</style>
<!-- chargement des textes -->
<script type="text/javascript" src="text.txt"></script>
<!-- traitement des données à afficher -->
<script type="text/javascript">
/*<![CDATA[*/
<!--
function importTexte(i){
LeTexte=Texte.split('|');
if(i<LeTexte.length){
document.getElementById('div1').innerHTML=LeTexte[i];
i=i+1;
setTimeout("importTexte("+i+")",7000);
}
else{
importTexte(i=0);
}
}
// -->
/*]]>*/
</script>

</head>
<body onload="importTexte(0);">
<!-- affichage des textes -->
<div id="div1"></div>
</body>

**
le fichier txt : (sans retour de ligne, donc sur une seule ligne) ;o)

Texte='test <strong>1</strong><br />test test test test test test test
test|test <em>2</em><p>test test test test test test test test</p>|test
<big>3</big><br />test test test test <a href="#">test</a> test test test
test test test test'

au cas ou vous voudriez vous servir de ce code,
il serait sympa de bien vouloir me contacter, affin d'obtenir
ma bénédicton, et le petit commentaire à ajouter au code
pour dire que c'est moi qui l'ai fait ;o) )

sur ce, testez bien et amusez vous ;o)

bon week end à tous

--
*** Phantôme ***




Avatar
Jean-Michel Berthier
[...]
> <script type="text/javascript">
> var attente = 7000;
>
> function importTexte(i){
> if (i<t.length){
> document.getElementById('div1').innerHTML= t[i++];
> setTimeout("importTexte("+i+")",attente);
> }
> else importTexte(0);
> }
> </script>

je t'accorde le i++ à la place de i=i+1 ;o)



J'aurais plutôt pensé à ImportText(0);

par contre ci-dessous, pourquoi créer un tableau
alors que split() le fait tout seul
[...]



Pour la même raison que je trouve le code du début plus clair que :
<script type="text/javascript">var attentep00; function
importTexte(i){if(i<t.length){document.getElementById('div1').innerHTML t[i++];setTimeout("importTexte("+i+")",attente);}else
importTexte(0);}</script>
(c'est sur une seule ligne, bien sûr !)
même si cela donne le même résultat.

Et l'idée de départ, c'était de proposer des pages multilingues.
Pour compléter mon idée, j'aurai plutôt vu ça comme code :

<script type="text/javascript">
var fr=0; var en=1; var de=2; // etc.
// ou dans un fichier include
var t = new Array(3);
t[fr] ='Français ..blabla....';
t[en] ='English ..blabla....';
t[de] ='Deutsch ..blabla....';

function Affiche(lang)
{ document.getElementById('div1').innerHTML= t[lang]; }
</script>
</head>

<body OnLoad="Affiche(fr);">
<a href="#" OnClick="Affiche(fr);">Français</a>
<a href="#" OnClick="Affiche(en);">English</a>
<a href="#" OnClick="Affiche(de);">Deutsch</a>
<br>
<div id="div1"></div>


Pour l'ironie, désolé de n'avoir pas saisi.
Avatar
Phantôme
Jean-Michel Berthier nous disait :

[...]

Et l'idée de départ, c'était de proposer des pages multilingues.
Pour compléter mon idée, j'aurai plutôt vu ça comme code :

<script type="text/javascript">
var fr=0; var en=1; var de=2; // etc.
// ou dans un fichier include
var t = new Array(3);
t[fr] ='Français ..blabla....';
t[en] ='English ..blabla....';
t[de] ='Deutsch ..blabla....';

function Affiche(lang)
{ document.getElementById('div1').innerHTML= t[lang]; }
</script>
</head>

<body OnLoad="Affiche(fr);">
<a href="#" OnClick="Affiche(fr);">Français</a>
<a href="#" OnClick="Affiche(en);">English</a>
<a href="#" OnClick="Affiche(de);">Deutsch</a>
<br>
<div id="div1"></div>



c'est une idée aussi ;o)

bref je pense qu'a nous deux on à réussi à proposer un solution alternative
aux asp php et autre technos serveur ;o)



Pour l'ironie, désolé de n'avoir pas saisi.



pas de soucis ;o)

--
*** Phantôme ***