[Multilinguisme]Application / Site web. Les meilleures soluces ?

Application / Site web. Les meilleures soluces ? [Multilinguisme] - Divers - Programmation

Marsh Posté le 08-09-2003 à 19:55:32    

Je groupe les deux, car comme ca, ca répondra a quasiment tous les besoins d'internationalisation.
 
j'aimerai en fait dans un premier temps, sortir mon site web en version multilingue.
 
Quelle est la technique que vous recommandez pour s'en sortir sans trop de problemes ? ( php inside... je suppose que ca impliquera le XML, nan ? ).
 
Pour une application, pareil, quelle est la meilleure technique pour une application multilingue via des fichiers de langue, pour éviter de tout recoder a la mano et de faire des milliers d'assignements ?
 
je pense notamment a comment gérer le retour a la ligne avec les compos d'affichage ( Tmemo, Tlable sous delphi par exemple), comment enregistrer facilement le tout, si des techniques épurées toutes pretes pour des languages connus existent déjà ( Delphi, C++, etc).
 
bref, que vous apportiez vos idées et vos solutions pour un site web multilingue sans trop de prises de tete, et une appli multilingue avec fichier de langue sans trop d'emmerdes non plus :jap:
 
Merci :jap:
 


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-09-2003 à 19:55:32   

Reply

Marsh Posté le 08-09-2003 à 20:40:39    

bah en Delphi t'as le TJvTranslator qui marche bien et qui utilise des fichiers XML.
Sinon y a le même genre pour des fichiers INI que j'ai fait (en fait Zion a fait la version XML parce qu'il trouvait mes INI pas assez optimisés :ange:)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-09-2003 à 20:55:06    

antp a écrit :

bah en Delphi t'as le TJvTranslator qui marche bien et qui utilise des fichiers XML.
Sinon y a le même genre pour des fichiers INI que j'ai fait (en fait Zion a fait la version XML parce qu'il trouvait mes INI pas assez optimisés :ange:)


 
Sympa, mais excuse moi, je vois pas de doc pour ce composant ( comme 90% des compos jvcl :( )


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-09-2003 à 21:00:12    

pas besoin de doc :o
tu peux tj downloader la source de mon soft Ant Renamer si tu veux voir comment je l'utilise :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-09-2003 à 21:13:35    

pas besoin de doc heu t'es chaud toi :D
 
Ca marche comment ?
 
C quoi les fonctions ?
 
la structure dudit fichier xml ?
 
etc etc etc
 
mais bon, je vais voir sur ant renamer, mais spa tres clair quand meme :D
 
reste le site :jap:
 
Et les autres languages : C++, etc


Message édité par Tetedeiench le 08-09-2003 à 21:13:50

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 08-09-2003 à 21:17:48    

tetedeiench a écrit :

pas besoin de doc heu t'es chaud toi :D
 
Ca marche comment ?
 
C quoi les fonctions ?
 
la structure dudit fichier xml ?
 
etc etc etc
 
mais bon, je vais voir sur ant renamer, mais spa tres clair quand meme :D
 
reste le site :jap:
 
Et les autres languages : C++, etc


 
Pour les sites, tu peux utiliser des templates, mais pour ma part je préfère les fichiers langues avec des tableaux du style :
 
$tonmot = array('en_français','en_anglais','en_allemand');
 
Ensuite dans ta page, tu fais un bête include et tu testes la variable de langue que tu passes dans l'URL, genre : index.php?lang=0
 
Tu vas simplement faire :
 
echo $tonmot[$_GET['lang']];
 
C'est en simplifié là... évidemment, mais tu as le principe. C'est plus rapide que les systèmes de template...

Reply

Marsh Posté le 08-09-2003 à 22:53:29    

oui, mais c pas un peu le bordel a force ?
 
Imaginons le mec qui a des articles en plusieurs langues... il fait quoi/comment ?


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 09-09-2003 à 02:52:29    

tetedeiench a écrit :

oui, mais c pas un peu le bordel a force ?
 
Imaginons le mec qui a des articles en plusieurs langues... il fait quoi/comment ?


 
Nom, mon système ne s'applique pas pour des articles. Pour des articles, on utilise une BDD évidemment...

Reply

Marsh Posté le 09-09-2003 à 09:29:46    

pareil que gm_superstar
 
tous mes textes, du titre au bouton sont stockés dans des tableaux, un fichier de traduction par page
 

Code :
  1. $TXT_Title = array (
  2.   'fr' => 'contenu',
  3.   'us' => 'contenu',
  4.   'de' => 'contenu'
  5. );
  6. $TXT_FormField = array .....etc..


 
avantages :
 
c'est rapide
facile à maintenir (page admin avec include des textes dans des <textarea> pour modifs)  
extensible (suffit de bien organiser le fichier et on peut facilement rajouter des infos)
 
inconvénients :  
 
j'en vois pas à l'heure actuelle, mais c'est clairement fait pour peu de contenu, au dela faut taper dans une BDD
 
la gestion de la langue se fait avec url_rewrite, j'ajoute un répertoire /fr /us selon les cas, avec enregistrement dans un cookie pour rappel ultèrieur (les moteurs de recherche adorent, ils références les 2 versions sans problème)


Message édité par Sh@rdar le 09-09-2003 à 09:31:03

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 09-09-2003 à 09:35:26    

tetedeiench a écrit :


Et les autres languages : C++, etc


GNU gettext http://www.gnu.org/software/gettext/

Reply

Marsh Posté le 09-09-2003 à 09:35:26   

Reply

Marsh Posté le 09-09-2003 à 12:02:22    

Sh@rdar a écrit :

pareil que gm_superstar
 
 


 
 :??:  :??:  GM n'a encore rien dit ici...

Reply

Marsh Posté le 09-09-2003 à 12:10:21    

Hermes le Messager a écrit :


 
 :??:  :??:  GM n'a encore rien dit ici...  


 
méga confusion :o !!! j'étais pas bien réveillé :whistle:
 
il s'agissait de toi :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 09-09-2003 à 12:44:43    

moi j'ai un /fr dans l'URL qui provoque la modif d'un paramètre "lang"
 
Puis dans chaque page j'ai un case qui initialise des variables avec le texte de la page, selon la langue.
Puis je fais des echo du code HTML, et entre les tags je mets les variables contenant le texte.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-09-2003 à 00:23:18    

personne n'evoque ici l'include  
 
avec variable en session  
 

Code :
  1. if($_SESSION['lang']=="fr" ) include_once("mapage_fr.php" );
  2. if($_SESSION['lang']=="en" ) include_once("mapage_en.php" );
  3. if($_SESSION['lang']=="es" ) include_once("mapage_es.php" );


 
ainsi on ne charge que les variables dont on a besoin et non pas un tableau contenant l'ensemble des trads  [:spamafote]

Reply

Marsh Posté le 10-09-2003 à 09:31:17    

utiliser une session pour gérer la langue c'est pas franchement génial  
 
tu dois utiliser la session dès la première page (résultat sans "bidouilles" bye bye le référencement, les bots aiment pas les SID)
 
ça fait 2 accés disque par visiteur et par page supplémentaires par rapport aux tableaux (lecture et écriture du fichier de session pour finalement inclure quand même un fichier)
 
définir quelques variables en plus quitte à les détruire est bien plus propre à mon gout


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 09:44:14    

ca me semble au contraire un cas exemplaire d'utilisation des sessions  [:spamafote]  
 
jamais entendu parlé de cette histoire de réferencement et session_id .... tu peux développer  :??:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 10-09-2003 à 09:50:12    

La Java permet de créer assez facilement des applis multilangues.
 
i18n Powaaaa :D


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 10-09-2003 à 10:13:08    

en PHP gettext semble bien approprié...  :)  
http://www.mandragor.org/tutoriels [...] d=9&chap=0
 
jamais utilisé jusqu'a maintenant ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 10-09-2003 à 11:09:16    

simogeo a écrit :

ca me semble au contraire un cas exemplaire d'utilisation des sessions  [:spamafote]  
 
jamais entendu parlé de cette histoire de réferencement et session_id .... tu peux développer  :??:  


 
Pour transmettre une variable de page en page sans avoir besoin de la modifier et donc l'influence sur la sécurité est inexistante, y'a des cookies pour ça, des variables get, les sessions c'est complètement démesuré
 
un panier ecommerce ça c'est typique de l'utilisation de session
 
faut pas oublier que les sessions c'est à double tranchant, 2 accés disque pour le serveur par visiteur et par page, mine de rien ça lui fait du boulot en plus
 
les robots d'indexation des 3/4 des moteurs de recherche ne parcourent pas les lient contenant un SID stout..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 12:08:04    

Sh@rdar a écrit :


Pour transmettre une variable de page en page sans avoir besoin de la modifier et donc l'influence sur la sécurité est inexistante, y'a des cookies pour ça, des variables get, les sessions c'est complètement démesuré


c'est jamais qu'un cookie côté serveur  [:spamafote]  
 
 

Sh@rdar a écrit :


les robots d'indexation des 3/4 des moteurs de recherche ne parcourent pas les lient contenant un SID stout..


rien ne t'oblige a transmettre l'id dans l'url :/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 10-09-2003 à 13:17:42    

simogeo a écrit :


rien ne t'oblige a transmettre l'id dans l'url :/


 
si le client n'accepte pas le cookie, faut bien transmettre le sid non ? sinon c'est cookies obligatoire pour surfer
 
si le client est un robot qui n'accepte pas les cookies ? tu références mal ton site
 
dans les deux cas la solution n'est pas optimale, y'a des solutions plus simples et plus fiables, autant en profiter
 


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 13:20:43    

Et si le cookie ne sert qu'à éventuellement rediriger vers le /fr quand on arrive sur la page principale ? Une fois que c'est sur un /fr, tu sais que tu dois rajouter /fr à la fin de tous tes liens (c'est ce que je fais)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-09-2003 à 13:25:27    

personnellement je ne garde le cookie que pour que le visiteur retrouve la même langue à sa prochaine visite
 
dans l'ordre de priorité des variables le cookie passe avant le get (parce que le visiteur peut provenir d'un lien vers une autre langue par ex, ou se gourrer en tapant l'url, là ça ajuste automatiquement)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 16:42:12    

Sh@rdar a écrit :

la gestion de la langue se fait avec url_rewrite, j'ajoute un répertoire /fr /us selon les cas, avec enregistrement dans un cookie pour rappel ultèrieur (les moteurs de recherche adorent, ils références les 2 versions sans problème)


 
qu'entends-tu par url_rewrite ?

Reply

Marsh Posté le 10-09-2003 à 17:16:53    

réécriture d'url à la volée (une fonction apache du tonnerre) ce qui permet de taper une url, mais d'en appeler une autre avec ce que tu veux  
 
le tout est basé sur des regexp
 
tu génères un masque dans un .htaccess comme ça :
 

Code :
  1. RewriteRule ^mapage_([0-9])\.html$      monscript.php?id=$1


 
et quand tu tapes http://mondomaine.com/mapage_12.html ça se transforme en http://mondomaine.com/monscript.php?id=12
 
le tout est totalement transparent pour l'utilisateur qui ne verra que la page qu'il a tapé, c'est excellent pour le référencement (les robots pensent avoir à faire à un site statique et les url sont plus "propres" )


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 17:23:41    

moi j'appelle www.antp.be/software/renamer/fr, ça appelle software.php (y a 5 ou 6 fichiers comme ça, les "zones" du site) qui fait un include de index.php. Ensuite index.php récupère l'URL complète pour transformer les "dossiers" en variables PHP.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-09-2003 à 17:28:56    

Sh@rdar a écrit :

réécriture d'url à la volée (une fonction apache du tonnerre) ce qui permet de taper une url, mais d'en appeler une autre avec ce que tu veux  
 
le tout est basé sur des regexp
 
tu génères un masque dans un .htaccess comme ça :
 

Code :
  1. RewriteRule ^mapage_([0-9])\.html$      monscript.php?id=$1


 
et quand tu tapes http://mondomaine.com/mapage_12.html ça se transforme en http://mondomaine.com/monscript.php?id=12
 
le tout est totalement transparent pour l'utilisateur qui ne verra que la page qu'il a tapé, c'est excellent pour le référencement (les robots pensent avoir à faire à un site statique et les url sont plus "propres" )


 
c'est bien ce qu'il me semblait, je connaissais celà sous le nom de mod_rewrite c'est pour ça  :D

Reply

Marsh Posté le 10-09-2003 à 17:32:31    

ratibus a écrit :


 
c'est bien ce qu'il me semblait, je connaissais celà sous le nom de mod_rewrite c'est pour ça  :D  


 
et je me fends d'une explication parce que Mossieu n'a pas eu le nom exact du mod apache :pfff:


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 17:35:23    

pour ceux qui utilisent l'url rewriting, je vous conseille d'activer le log_rewrite et de vérifier combien de requêtes se mange apache par réécriture
 
j'ai eu des surprises en voyant 4-5 GET par url, depuis j'ai modifié pas mal de trucs :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 10-09-2003 à 17:40:57    

Sh@rdar a écrit :


 
et je me fends d'une explication parce que Mossieu n'a pas eu le nom exact du mod apache :pfff:


bah, consoles toi, ça m'a été utile :D

Reply

Marsh Posté le 10-09-2003 à 17:50:31    

Sh@rdar a écrit :


 
et je me fends d'une explication parce que Mossieu n'a pas eu le nom exact du mod apache :pfff:


le prends pas mal, je pensais que tu parlais d'autre chose  :)

Reply

Marsh Posté le 11-09-2003 à 08:38:42    

ratibus a écrit :


le prends pas mal, je pensais que tu parlais d'autre chose  :)  


 
j'aurais pu ajouter un :D quand même :whistle:


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed