Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2967 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  site multilangue : quelle stratégie sur les fichiers à traduire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

site multilangue : quelle stratégie sur les fichiers à traduire ?

n°2153038
domi_bu
Posté le 09-08-2012 à 20:50:50  profilanswer
 

Bonjour
 
Je développe un site qui sera multi langue. Je mets toutes les traductions de mes champs dans des fichiers à parts qui sont ensuite lus par des inludes.  
 
Quelle est la meilleure technique sur ces fichiers texte : 1 seul avec tous les libelles de toutes les pages ? OU X fichiers correspondants aux X pages à traduire ?  
 
Dans le premier cas je trouve que ça ferai un trop gros fichier. Mais c'est beaucoup plus simple à intégrer dans mon controller : 1 seul include à faire .
Dans le second cas, c'est plus performant car l'appli ne charge que les libellés de la page à afficher et pas les autres. Mais ça fait X includes à faire pour les X pages , et sans doute moins pratique pour communiquer le tout à un traducteur.  
 
Bref, entre les 2 techniques mon coeur balance. Que faites vous  de votre côté ?  
Merci d'avance pour vos retours d'expérience sur ce sujet.  
 
Dominique

mood
Publicité
Posté le 09-08-2012 à 20:50:50  profilanswer
 

n°2153050
NewsletTux
<Insérez ici votre vie />
Posté le 09-08-2012 à 23:41:33  profilanswer
 

hello
pour ma part, je préfère un seul fichier, au pire que je divise en 2 voire 3 (front office, back office, textes communs). Mais je trouve plus difficile de faire "1 fichier par page", pour la maintenance, et puis ça fait plus d'appels de fichiers ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2153108
rufo
Pas me confondre avec Lycos!
Posté le 11-08-2012 à 09:05:54  profilanswer
 

Surtout que souvent, les pages ont certains msg en commun :/
 
Perso, je fais un fichier par langue.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2153236
synoyx
Codeur fou
Posté le 14-08-2012 à 11:01:37  profilanswer
 

Perso je fais un fichier que j'appelle location.
Je met toutes mes traductions dedans et je sépare les différentes langues par des commentaires visibles :)


---------------
L'ennui est le pire ennemi d'un travail réussi
n°2153250
rufo
Pas me confondre avec Lycos!
Posté le 14-08-2012 à 11:38:07  profilanswer
 

synoyx a écrit :

Perso je fais un fichier que j'appelle location.
Je met toutes mes traductions dedans et je sépare les différentes langues par des commentaires visibles :)


Si le soft est "gros", tu risques d'avoir au final un fichier location vachement gros ! En plus, tu vas consommer de la mémoire pour rien puisque tu charges toutes les langues alors que t'en utilises qu'une. :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2153378
polo7
Posté le 16-08-2012 à 00:09:42  profilanswer
 

Des mon côté, j'utilise des fichiers et la bdd, mais je préfère la bdd, c'est plus simple, plus propre et moins problématique pour les MAJ.

n°2153432
rufo
Pas me confondre avec Lycos!
Posté le 16-08-2012 à 21:51:23  profilanswer
 

Ben avec la BD, pour les traductions, ça te fait plus d'accès en BD, même quand, à part les traduction, t'as rien à aller chercher en base :/ Si ton site est à fort trafic, c'est pas optimisé...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2153899
KLeMiX
Laisse pas trainer ton site
Posté le 22-08-2012 à 15:50:30  profilanswer
 

C'est un petit peu hors sujet mais vous semblez vous y connaitre.
 
Pourquoi quand y a une alfa de Firefox ou Ubuntu par exemple qui sort, ils n'utilisent pas les traductions d'avant ? Seul l'anglais est dispo
 
Ils refont tout a chaque fois ?


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
n°2153906
rufo
Pas me confondre avec Lycos!
Posté le 22-08-2012 à 16:35:35  profilanswer
 

Non, je pense pas qu'ils refassent tout de zéro mais quand tu développes un soft multi-langue, tu le fais que pour une langue (dans le cas de FF, l'anglais). Quand t'as tout fini et que le soft marche, ben tu mets à jour les fichiers de traduction des autres langues (c'est pas ce genre de fichier qui induit des bug généralement). FF étant traduit dans pleins de langues, l'équipe de dév principale n'est pas capable de faire toutes les traducs. En plus, ça serait contre-productif car en cours de dév, on rajoute/supprime/modifie les messages affichés dans l'IHM. Or à chaque message = une entrée dans le fichier de traduction.
 
Et ils peuvent pas diffuser une version d'un soft dont tous les msgs seraient pas traduits ou manqueraient (dans ce dernier cas, là, ça pourrait générer des bugs).
 
Edit ; je suis développeur, donc oui, j'ai qq connaissance en info ;)


Message édité par rufo le 22-08-2012 à 16:36:22

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2155263
CyberDenix
Posté le 01-09-2012 à 17:20:28  profilanswer
 

Il y a trois points à gérer :
 
1] Le premier truc à gérer sera l'inversion des mots selon la langue, il te faudra un système de variable
 
Ex : $this->translate('Fille de %ans ans', array('%ans'=>18)); // 18 years girl ou 18 year old girl
 
--
 
2] Il faut faire gaffe à la clé de traduction que tu vas utiliser.
 
Par exemple, si la clé de traduction est ton texte  
 
Ex : $this->translate('Ceci est un texte en français');
 
Tu peux avoir des soucis lors de la traduction de certains mots au pluriel :
 
Ex : $this->translate('%mois mois', array('%mois'=>1)) // 1 month
 
Ex : $this->translate('%mois mois', array('%mois'=>3)) // 3 months
 
Problème, la clé étant 'mois', on ne sait pas si on doit utiliser le pluriel ou le singulier.
Il te faudra une technique pour désambiguiser la clé de traduction.
 
--
 
3] Le dernier facteur à prendre en compte est que certaines langues possèdent des pluriels multiples, comme le russe (trois pluriels) ou le polonais (7 pluriels). Ce point peut être particulièrement compliqué à gérer.
 
--
 
D'une manière générale, les domaines couverts par la langue source et la langue de destination ne connaissent pas de bijection, il y aura toujours des approximations. L'idéal serait d'avoir comme langue source la langue la plus compliquée, mais je doute que ça soit une solution facile à gérer au quotidien ^.^

Message cité 1 fois
Message édité par CyberDenix le 01-09-2012 à 17:21:44
mood
Publicité
Posté le 01-09-2012 à 17:20:28  profilanswer
 

n°2155280
KLeMiX
Laisse pas trainer ton site
Posté le 02-09-2012 à 01:29:10  profilanswer
 

CyberDenix a écrit :

Il y a trois points à gérer :
 
1] Le premier truc à gérer sera l'inversion des mots selon la langue, il te faudra un système de variable
 
Ex : $this->translate('Fille de %ans ans', array('%ans'=>18)); // 18 years girl ou 18 year old girl
 
--


 
Le spécialiste des sites porn :o


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
n°2155800
NewsletTux
<Insérez ici votre vie />
Posté le 06-09-2012 à 01:02:26  profilanswer
 

KLeMiX a écrit :

 

Le spécialiste des sites porn :o


pour ça aussi, ya des langues :o

 

Quel est l'intérêt de faire ça en base ? (sans parler du nombre de requêtes, qu'on peut optimiser un minimum).
Tenchniquement, en quoi ce serait plus facile à maintenir ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2156277
CyberDenix
Posté le 10-09-2012 à 21:05:01  profilanswer
 

L'intérêt de faire ça en base, c'est de proposer une IHM pour les country managers, et donc de faire des selects un peu touchy.
 
Dans cette optique, le fichier sert plus de cache qu'autre chose (Array Cache, le plus rapide qui soit en PHP).  
On le génère à chaque modification dans une langue donnée, puis on le load en début d'appli pour éviter de faire des requêtes.
 
Après si t'es tout seul à développer, rien ne t'empêche d'écrire les traductions directement dans ton fichier de trad...


Message édité par CyberDenix le 10-09-2012 à 21:06:24

---------------
Directeur Technique (CTO)
n°2157771
czh
Posté le 22-09-2012 à 13:57:56  profilanswer
 

PHP intègre nativement une API destinée à la gestion des langues : http://php.net/manual/fr/book.gettext.php
 
Les traductions peuvent être éditées manuellement dans des fichiers texte .PO, puis compilé en .MO pour utilisation optimisée sur serveur de production.


Message édité par czh le 22-09-2012 à 13:58:43

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  site multilangue : quelle stratégie sur les fichiers à traduire ?

 

Sujets relatifs
probléme page html qui fonctionne sur pc mais pas sur siteProblème référencement site sur Google (redirection chez gandi)
CVS : lister les fichiers modifiés depuis une certaine date[SPIP-EvaWeb] Avis sur site de collège
Comment tester la sécurité de son site ?Référencer les images sur un site multilingue ?
Transfert site WP sur un autre ND/ HébergementTransfert d'un site WP et Import de BdD
[SOS] Débuggage divers sur un petit siteIntégrer un tchat à un site web avec intéraction sur iphone
Plus de sujets relatifs à : site multilangue : quelle stratégie sur les fichiers à traduire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR