Site Multi-Langues....Comment procéder ? - PHP - Programmation
Marsh Posté le 09-06-2008 à 10:07:19
Salut,
le sujet a plusieurs fois été abordé.
pour ma part, je fais un tableau (php) de paires index/valeurs pour une langue, tableau que je décline en plusieurs fichiers selon les langues.
concrètement, par exemple, le fichier fr.php contient :
Code :
|
puis à coté, je fais mes autres langues
par exemple, en.php :
Code :
|
puis dans le programme, je passe en paramètre (en session, par exemple) ma langue : $_SESSION['lang'] = 'fr'; et j'inclue le fichier correspondant : include($_SESSION['lang'].'.php');
pour les fonctions, je passe en global mon tableau :
Code :
|
Pour le référencement, faut juste voir pour un peu de réécriture d'URL plutôt qu'avoir ?lang=fr ...
Il n'y a pas de *meilleure* solution, il faut que tu arrives à trouver laquelle t'es plus pratique, laquelle te permet la maintenance la plus simple ...
Point de vvue référencement
Marsh Posté le 09-06-2008 à 10:31:12
le dernier topic à ce propos :
http://forum.hardware.fr/hfr/Progr [...] 5783_1.htm
Marsh Posté le 09-06-2008 à 16:09:53
Perso, j'ai une fonction très simple dédiée à la gestion de l'internationalisation :
Code :
|
Le fichier de langue français par exemple :
Code :
|
Suivant la langue définie (fichier de conf, choix utilisateur...), la fonction __($string) renvoie la bonne traduction. L'avantage d'utiliser une clef compréhensible (Hello world), c'est que la lecture et la compréhension des templates est grandement facilitée, et la langue principale du site ne nécessite pas de fichiers de langues.
Marsh Posté le 09-06-2008 à 22:51:42
Comme dit précédemment, il n'y a pas de meilleure solution.
Je suis plutôt de l'avis de NewsletTux (mais en transformant la variable globale en session, c'est plus joli ), bien que cela reste un choix personnel.
Marsh Posté le 10-06-2008 à 08:41:34
CyberDenix a écrit : Comme dit précédemment, il n'y a pas de meilleure solution. |
En session ? Ptain t'as pas peur toi
Marsh Posté le 10-06-2008 à 13:33:56
j'ai préféré opter pour globaliser la variable afin de ne pas surcharger les ressources de la Session, si ton tableau comporte une centaine de lignes, ce n'est *pas forcément* dérangeant, mais quand tu as 1500 ou 2000 lignes de traduction ... ça t'augmente la taille de la variable s_SESSION inutilement je trouve.
Marsh Posté le 10-06-2008 à 14:36:36
NewsletTux a écrit : j'ai préféré opter pour globaliser la variable afin de ne pas surcharger les ressources de la Session, si ton tableau comporte une centaine de lignes, ce n'est *pas forcément* dérangeant, mais quand tu as 1500 ou 2000 lignes de traduction ... ça t'augmente la taille de la variable s_SESSION inutilement je trouve. |
et ça la duplique pour chaque user, bonjour l'économie.
Marsh Posté le 09-06-2008 à 09:09:21
Bonjour,
Je viens vous pour avoir un avis sur une solution. Je dois faire un site en Multi-Langues.
Quelles est la manière façon de procéder ?
- Un template par langues ?
- Mettre les champs et le texte dans la base de donnée ?
- Utiliser des fichiers externes ?
Je dévellope en PHP / MYSQL.
J'hésite entre les trois solutions, notament pour le référencement.
Quelle est la meillieur ? S'il en n'existe d'autres lesquels sont-elles ?
D'avance merci
Cvb