Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Développement d'un site multilingue, ma méthode.

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Référencement de sites multilingues   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Crisalid
WRInaute discret
WRInaute discret

Inscrit le: 06 Jan 2006
Messages: 51
Localisation: Moselle

URL permanente de ce messagePosté le : Mar Fév 28, 2006 17:13    Sujet du message: Développement d'un site multilingue, ma méthode.

Bonjour,

Voici une petite participation au forum. Il s'agit plus d'une aide au développement plus qu'au référencement - Encore que cela reste étroitement liée.

Pour tout ce qui concerne les textes de mon site, je n'utilise qu'un seul fichier texte dit "String Table" que je place dans un répertoire (Ex. : french.lng). Sa structure est la suivante :

Citation:
IdentifiantA5Chiffres, "Texte" (Ex. : 10000, "Accueil")


A chaque nouvelle entrée, j'incrèmente mon identifiant unique.
Ensuite pour afficher le texte sur ma page, j'utilise une petite fonction de lecture de ce fichier texte; en passant comme paramètre l'identifiant du texte que je souhaite afficher

Code:
function f1($idString = null, $directory = null) {
   $Buffer = @file($directory);
   $i = 0;
   while ($i <= sizeOf($Buffer) - 1) {   
      $stringID = substr($Buffer[$i], 0, 5);
      $stringValue = substr($Buffer[$i], 8, (strrpos('"', $Buffer[$i]) - 3));
      if ($idString == null) { $result[$stringID] = $stringValue; } else {
         if ($idString == $stringID) {
            $result = $stringValue;
            break;
            }
         }
      $i++;
   }      
   return $result;
}

echo f1(10000); // Exemple !
 


Et voila il ne me reste plus qu'à traduire un simple fichier texte, pour passer mon site dans une autre langue Wink Ca ne résoud pas le problème de la base de données, mais bon... Wink Ca sera peut-être pour une prochaine fois ! Pour le reste je suis sur un hébergement Français et la liaison ce fait par de simple sous-domaine. Je pense que c'est la meilleure solution au vue de mon référencement actuel (Non je ne parle pas du site de mon profil - Celui la est en cours de formatage Wink)).

Salutations Wink
 
Kwiz
Nouveau WRInaute

Inscrit le: 06 Oct 2004
Messages: 48
Localisation: Paris

URL permanente de ce messagePosté le : Mar Fév 28, 2006 18:37    Sujet du message: Développement d'un site multilingue, ma méthode.

Voici ma version qui reprend le même principe que toi avec un document texte :

Le fichier texte de la langue :
Code:

LG_BonjourLeMonde='Bonjour le monde !'
LG_AuRevoirLeMonde='Au revoir le monde!'


Le parseur à appeller au début de ta page :
Code:

$FichierLangue  = "langues/fr.lang.php";
$FichierContenu = file($FichierLangue);
while (list($NumeroLigne, $Ligne) = each($FichierContenu)) {
   preg_match("/^([a-zA-Z_]+)=(.+)$/", $Ligne, $Var);
   $$Var[1] = preg_replace("/\\r/","",$Var[2]);
}


Dans ta page tu appelles la variable $LG_BonjourLeMonde à la place du texte.

Kwiz
 
Kwiz
Crisalid
WRInaute discret
WRInaute discret

Inscrit le: 06 Jan 2006
Messages: 51
Localisation: Moselle

URL permanente de ce messagePosté le : Mar Fév 28, 2006 19:19    Sujet du message: Développement d'un site multilingue, ma méthode.

J'utilisé ça aussi au départ, mais le problème est que quand tu a beaucoup de texte entrecoupé sur une page c'est un peu long à taper. J'prefère une fonction au nom cours et un chiffre en paramètres c'est beaucoup plus rapide.
 
Kwiz
magic corp.
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Juin 2004
Messages: 422
Localisation: Suisse

URL permanente de ce messagePosté le : Mar Fév 28, 2006 19:42    Sujet du message: Développement d'un site multilingue, ma méthode.

Une petite question ... pourquoi privilégiez vous cette technique plutot que d'utilisé des DEFINE ?

Exemple:
lang_fr.php
Code:
define('TEXT_WELCOME', 'Bienvenu');

index.php
Code:
require("lang_fr.php");
...
echo(TEXT_WELCOME);


C'est ce que j'utilise, parcontre je n'ai pas qu'un seul fichier de langue, mais un par page plus un général pour ne pas définir des textes inutile pour la page en cours et donc de surchargé le serveur inutilement. Est-ce que vos solution sont là pour résoudre se problème et donc d'avoir tout dans un seul fichier ?

- Magic -
 
magic corp. Visiter le site web du posteur
absoluteweb
WRInaute impliqué
WRInaute impliqué

Inscrit le: 22 Nov 2002
Messages: 472
Localisation: Nanteuil-lès-Meaux

URL permanente de ce messagePosté le : Mer Mar 01, 2006 0:02    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

Crisalid a écrit:
Ca ne résoud pas le problème de la base de données, mais bon... Wink Ca sera peut-être pour une prochaine fois !

Bonsoir,

Pour les bases de données j'utilise cette solution :
<fr>texte en français</fr><en>texte en anglais</en><sp>...</sp>
Un seul champ avec toutes les langues.
Une petite fonction me permet de récupérer la version voulue.

Pour les textes en dur, ton histoire de nombres n'est vraiment pas pratique pour "relire" le contenu d'un code source. Avec un $message_remerciement c'est quand même plus parlant qu'un f1(853)...

Nicolas.
 
absoluteweb Visiter le site web du posteur
ChezThierry
WRInaute impliqué
WRInaute impliqué

Inscrit le: 21 Oct 2005
Messages: 273

URL permanente de ce messagePosté le : Mer Mar 01, 2006 0:19    Sujet du message: Développement d'un site multilingue, ma méthode.

Et pourquoi n'utilisez-vous pas la librairie gettext de gnu ?
 
ChezThierry Visiter le site web du posteur
Crisalid
WRInaute discret
WRInaute discret

Inscrit le: 06 Jan 2006
Messages: 51
Localisation: Moselle

URL permanente de ce messagePosté le : Mer Mar 01, 2006 8:48    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

absoluteweb a écrit:
Crisalid a écrit:
Ca ne résoud pas le problème de la base de données, mais bon... Wink Ca sera peut-être pour une prochaine fois !

Bonsoir,

Pour les bases de données j'utilise cette solution :
<fr>texte en français</fr><en>texte en anglais</en><sp>...</sp>
Un seul champ avec toutes les langues.
Une petite fonction me permet de récupérer la version voulue.

Pour les textes en dur, ton histoire de nombres n'est vraiment pas pratique pour "relire" le contenu d'un code source. Avec un $message_remerciement c'est quand même plus parlant qu'un f1(853)...

Nicolas.


Pas mal, ta solution pour la base de données Wink J'essayerai surement !
Pour les chiffres ou les lettres, franchement pour avoir essayé les lettres... Je trouve que ça manque de productivité, et retrouver une référence avec un bon éditeur va très vite avec les chiffres. Mais bon les gouts et les couleurs comme on dit ! Wink
 
ChezThierry Visiter le site web du posteur
Suede
WRInaute accro
WRInaute accro

Inscrit le: 04 Oct 2002
Messages: 3642
Localisation: Suède

URL permanente de ce messagePosté le : Mer Mar 01, 2006 11:17    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

absoluteweb a écrit:
Crisalid a écrit:
Ca ne résoud pas le problème de la base de données, mais bon... Wink Ca sera peut-être pour une prochaine fois !

Bonsoir,

Pour les bases de données j'utilise cette solution :
<fr>texte en français</fr><en>texte en anglais</en><sp>...</sp>
Un seul champ avec toutes les langues.
Une petite fonction me permet de récupérer la version voulue.

Nicolas.


Si tu utilises une base de données, pourquoi ne pas avoir un champ langue ? Tant qu'à faire une requete sur base de donnée, autant éviter d'avoir à parser le résultat dans une fonction en plus.

François
 
Suede Visiter le site web du posteur
Kwiz
Nouveau WRInaute

Inscrit le: 06 Oct 2004
Messages: 48
Localisation: Paris

URL permanente de ce messagePosté le : Mer Mar 01, 2006 11:17    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

absoluteweb a écrit:

Pour les bases de données j'utilise cette solution :
<fr>texte en français</fr><en>texte en anglais</en><sp>...</sp>
Un seul champ avec toutes les langues.
Une petite fonction me permet de récupérer la version voulue.


N'est-t-il préférable d'avoir un fichier par langue, histoire d'économiser la mémoire à chaque appel du fichier ?

Kwiz
 
Kwiz
absoluteweb
WRInaute impliqué
WRInaute impliqué

Inscrit le: 22 Nov 2002
Messages: 472
Localisation: Nanteuil-lès-Meaux

URL permanente de ce messagePosté le : Mer Mar 01, 2006 15:12    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

Suede a écrit:
Si tu utilises une base de données, pourquoi ne pas avoir un champ langue ? Tant qu'à faire une requete sur base de donnée, autant éviter d'avoir à parser le résultat dans une fonction en plus.


Tu veux dire par exemple pour un site immobilier avoir autant de champ que de langues ?

TitreFR
TitreEN
TitreIT
TitreSP
TitreDE
DescriptionFR
DescriptionEN
DescriptionIT
DescriptionSP
DescriptionDE
SituationFR
SituationEN
SituationIT
SituationSP
SituationDE
...
...

J'ai préféré
Titre
Description
Situation
...

Quand j'aurais à ajouter d'autre langues, aucune manip à faire sur les tables !

Nicolas.
 
absoluteweb Visiter le site web du posteur
absoluteweb
WRInaute impliqué
WRInaute impliqué

Inscrit le: 22 Nov 2002
Messages: 472
Localisation: Nanteuil-lès-Meaux

URL permanente de ce messagePosté le : Mer Mar 01, 2006 15:17    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

Kwiz a écrit:
absoluteweb a écrit:

Pour les bases de données j'utilise cette solution :
<fr>texte en français</fr><en>texte en anglais</en><sp>...</sp>
Un seul champ avec toutes les langues.
Une petite fonction me permet de récupérer la version voulue.


N'est-t-il préférable d'avoir un fichier par langue, histoire d'économiser la mémoire à chaque appel du fichier ?

Kwiz
On parle de base de données là, je ne comprends pas la question. J'utilise des fichiers textes pour les pages "statiques" d'un site, mais si j'ai besoin d'une base de données (annonces immobilières par exemple), je ne vois pas comment tu peux utiliser un fichier langue à la place.

Nicolas.
 
absoluteweb Visiter le site web du posteur
magic corp.
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Juin 2004
Messages: 422
Localisation: Suisse

URL permanente de ce messagePosté le : Mer Mar 01, 2006 15:37    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

absoluteweb a écrit:
Suede a écrit:
Si tu utilises une base de données, pourquoi ne pas avoir un champ langue ? Tant qu'à faire une requete sur base de donnée, autant éviter d'avoir à parser le résultat dans une fonction en plus.


Tu veux dire par exemple pour un site immobilier avoir autant de champ que de langues ?

TitreFR
TitreEN
TitreIT
TitreSP
TitreDE
DescriptionFR
DescriptionEN
DescriptionIT
DescriptionSP
DescriptionDE
SituationFR
SituationEN
SituationIT
SituationSP
SituationDE
...
...

J'ai préféré
Titre
Description
Situation
...

Quand j'aurais à ajouter d'autre langues, aucune manip à faire sur les tables !

Nicolas.

Je penses qu'il voulais dire, d'avoir un champ en plus, par exemple de 2 caractère, où tu spécifie la langue de l'enregistrement.

Ce qui te permet de faire directement des requetes "SQL" sur une langue, style : SELECT * FROM `table_text_langue` WEHRE `lang`="fr"

- Magic -
 
magic corp. Visiter le site web du posteur
Kwiz
Nouveau WRInaute

Inscrit le: 06 Oct 2004
Messages: 48
Localisation: Paris

URL permanente de ce messagePosté le : Mer Mar 01, 2006 16:00    Sujet du message: Développement d'un site multilingue, ma méthode.

Citation:
On parle de base de données là, je ne comprends pas la question. J'utilise des fichiers textes pour les pages "statiques" d'un site, mais si j'ai besoin d'une base de données (annonces immobilières par exemple), je ne vois pas comment tu peux utiliser un fichier langue à la place.


Personnellement pour des questions de performance, je préfère utiliser des fichiers avec les textes traduits dans plusieurs langues, plutôt que de devoir interroger SQL à chaque rechargement de la page.

L'affichage celle-ci n'en sera que plus rapide et le serveur SQL solicité uniquement pour renvoyer des données plus dynamique (par exemple pour les résultats d'un moteur de recherche)

Kwiz
 
Kwiz
HawkEye
Modérateur
Modérateur

Inscrit le: 23 Fév 2004
Messages: 12410
Localisation: Google

URL permanente de ce messagePosté le : Mer Mar 01, 2006 16:10    Sujet du message: Développement d'un site multilingue, ma méthode.

De mon côté le stocke le contenu linguistique par strings dans une db, style <id_text><lg_fr><lg_en><lg_$$>.

La langue est définie par l'url rewriting (/fr/blabla.html), et il suffit d'un SELECT lg_$lang FROM...

Note: Ca permet aussi d'éditer les langues en ligne via une interface d'admin, et d'afficher le string "fr" à côté du "en" pour faire les traductions.
 
HawkEye Visiter le site web du posteur
absoluteweb
WRInaute impliqué
WRInaute impliqué

Inscrit le: 22 Nov 2002
Messages: 472
Localisation: Nanteuil-lès-Meaux

URL permanente de ce messagePosté le : Mer Mar 01, 2006 16:12    Sujet du message: Re: Développement d'un site multilingue, ma méthode.

magic corp. a écrit:
Je penses qu'il voulais dire, d'avoir un champ en plus, par exemple de 2 caractère, où tu spécifie la langue de l'enregistrement.

Ce qui te permet de faire directement des requetes "SQL" sur une langue, style : SELECT * FROM `table_text_langue` WEHRE `lang`="fr"
Ce qui implique 5 fois plus d'enregistrements dans les tables pour gérer 5 langues... Des updates dans 5 enregistrements en cas de modifs...
Je préfère ma solution avec ma toute petite fonction pour extraire la langue choisie.
Code:
function recup_xml($chaine,$item) {
   // $chaine = <fr>version française</fr><en>version anglaise</en>, $item = fr ou en ...
   $tmp = preg_split("/<\/?".$item.">/",$chaine);
   return $tmp[1];
}
 
absoluteweb Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Référencement de sites multilingues Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort