JeuWeb - Crée ton jeu par navigateur
[PHP] Quelles sont les solutions pour faire un site multilingue ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Quelles sont les solutions pour faire un site multilingue ? (/showthread.php?tid=5876)

Pages : 1 2 3 4


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - php_addict - 29-12-2011

-> http://codeigniter.com/wiki/Category:Internationalization::Gettext ?

je pense donc utiliser gettext() . Je me demande pourquoi il faut compiler les fichiers langues, quel est l'intérêt?

avez vous déjà mis en place gettext ? ca alourdit pas mal les vues niveau lisibilité non ?


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - niahoo - 29-12-2011

Je l'ai utilisé dans wordpress.

Niveau visibilité c'est cool au lieu de 'blalbla' tu as _('blabla')

C'est compilé pour les performances, ça va plus vite.


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - Argorate - 30-12-2011

Dans l'entreprise de jeu où j'ai fais mon stage, ils utilisé un fichier lang.xx.php qu'il inclué en fonction de la lang choisis et qui contient des milliers de CONSTANTE Wink
Après, es-ce la meilleure façon de faire, ça c'est autre chose !


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - php_addict - 31-12-2011

(30-12-2011, 07:51 PM)Argorate a écrit : Dans l'entreprise de jeu où j'ai fais mon stage, ils utilisé un fichier lang.xx.php qu'il inclué en fonction de la lang choisis et qui contient des milliers de CONSTANTE Wink
Après, es-ce la meilleure façon de faire, ça c'est autre chose !

j'utilisais les constantes mais finalement je vais changer car je trouve cela horrible... :

- le soucis c'est qu'en php des define de constante est assez lent d'après ce que j'ai pu lire (à tester)
- l'autre soucis et pas des moindres c'est qu'il faut vérifier la présence des constantes avant d'en rajouter une autre sinon collision de constantes
- et d'un point de vue lisibilité des vues c'est pénible:

<?php echo JE_SUIS_UNE_CONSTANTE;?>

avec gettext() il me semble que la lisibilité est bien meilleur en fait

pour les textes statiques je pense utiliser gettext()

par contre: le soucis que je risque d'avoir est pour les textes dynamiques: expl:

"Machin attaque Truc" ou des textes dynamiques plus longs, je pense à l'allemand où la structure des phrases est très différente (verbes à la fin)

d'où une question annexe:

Comment se débrouiller pour traduire des textes générés dynamiquement



RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - djidi - 31-12-2011

En utilisant sprintf et ta variable de langue.
Dans la doc, il y a un exemple avec les échanges d'arguments.


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - Holy - 31-12-2011

Personnellement, si je dois un jour internationaliser mon site (j'ai quelques doutes de cet intérêt pour un projet amateur, m'fin), j'utiliserai sans doute sprintf et une page de tableau de langue à inclure. La seule difficulté restante concerne les pages statiques genre aide de jeu et autre. Mais ça doit être gérable facilement en interne.


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - Sephi-Chan - 31-12-2011

Je pense bien que Gettext supporte des systèmes de placeholder ou à défaut une syntaxe proche du printf.

Pour ma part (avec le système d'i18n de Rails mais je pense que c'est un mécanisme courant), ça donne ça.


Pour la déclaration des traductions (dans un fichier YAML) :


fr:
game:
notifications:
start: "La partie %{name} a commencé."

comments:
delete_checked_messages:
zero: "Aucun commentaire n'a été supprimé."
one: "Un seul commentaire a été supprimé."
other: "%{count} commentaires ont été supprimés."


À l'utilisation :


t("game.notifications.start", name: @game.name)
t("comments.delete_checked_messages", count: @messages.length)


Pour les pages statiques, genre une grosse page où on ne veut pas se faire chier à traduire mot à mot, j'utilise le système de rendu du framework.

Si j'ai une vue about.fr.html.haml et une vue about.en.html.haml, celle à utiliser sera déterminée selon la locale définie dans l'application.


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - Holy - 31-12-2011

Au vu des solutions proposées, je comprends pas trop pourquoi l'internationalisation pose problème en général ? Est-ce réellement une question d'ordre technique ? N'est-ce pas plutôt lié à la maintenabilité du site et les moyens humains nécessaires à cette maintenabilité ?

J'ai l'impression qu'on parle régulièrement de l'internationalisation sur le forum, mais qu'en fait quasiment personne n'a jamais vraiment internationalisé son application. Vous me direz que quasiment personne n'arrive à produire un jeu qui soit rentable ou qui soit même jouable durant plusieurs années d'affilé, mais bon...

Enfin, je me rends compte que je m'écarte un peu du sujet, mais je trouve que la question reste pertinente. Est-ce que ça n'est pas prématuré de s'intéresser à l'internationalisation pour des projets comme la majorité d'entre nous conçoit ?

En même temps, ça permet de gérer facilement les textes, même quand il s'agit d'un site unilingue.


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - Sephi-Chan - 31-12-2011

(31-12-2011, 03:42 PM)Holy a écrit : Enfin, je me rends compte que je m'écarte un peu du sujet, mais je trouve que la question reste pertinente. Est-ce que ça n'est pas prématuré de s'intéresser à l'internationalisation pour des projets comme la majorité d'entre nous conçoit ?

En même temps, ça permet de gérer facilement les textes, même quand il s'agit d'un site unilingue.

Je te propose de lancer une discussion sur ce sujet.
En plus j'ai plein de choses à dire ! Big Grin


RE: [PHP] Quelles sont les solutions pour faire un site multilingue ? - keke - 02-01-2012

Coucou,

J'ai travaillé sur l'aspect technique de l'internationalisation de Magdales entre mars et décembre 2011.
Gettext s'est avéré une très bonne affaire pour la partie statique.
J'ai géré le côté dynamique par une méthode personnelle, n'ayant pas trouvé de réelle méthode toute faite.

Les fichiers texts qui sont fournis sont éditables et lisible par l'être humain. Ce qui n'est pas très optimum pour un ordinateur. Lui préfère une version compilée qu'il puisse directement charger en mémoire.

Gettext reste cependant simple à mettre en place. Utiliser du sprinf() et du _() n'est pas trop compliqué à faire.

Gettext a des défauts, comme par exemple l'abominable façon dont il faut arranger l'arboressance + la mise à disposition des locales côté serveurs.

L'internationalisation m'a apportée un lot de surprise. Par exemple, la redéfinition des variables locales ... qui donc modifiait aussi la manière de calculer (une virgule en français, un point en anglais), les dates, etc.

Au plaisir !
kéké