Forum Pixou.net >> Les mots du monde >> Présentation du site >> Évolutions et mises à jour du site
Page 1
 
 

Évolutions et mises à jour du site

08/11/2007 à 12:00:04
Grâce à ce sujet, vous serez au courant des dernières évolutions du site, aussi bien en ce qui concerne son interface que les nouvelles fonctionnalités qu'il propose.
Je vous indiquerai également les mises à jour récentes, relatives à la correction de certains bugs.

Le site

- Amélioration de la gestion des cookies
- Possibilité de définir une langue d'interface différente pour les 3 sections
- Factorisation du code
- Correction de bugs mineurs

Les mots du monde

- Modification des liens et de leur ordre dans l'en-tête
- Amélioration de la page de recherche
- Ajout des articles
- Ajout d'une page d'options permettant la configuration de certains paramètres d'affichage
- Ajout d'une fonction de validation des traductions en ligne

Les conjugaisons du monde

- Rien à signaler pour le moment.

Les échos du monde

- Rien à signaler pour le moment.

Bien sûr, n'hésitez pas non plus à me faire part de vos suggestions et critiques, pour que les mots du monde répondent toujours plus à vos attentes  :jap:
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
08/11/2007 à 12:02:47
Mise à jour du 8 novembre 2007

Plusieurs remarques à faire sur les évolutions et corrections signalées aujourd'hui.

Traduction de l'interface

Vous ne le saviez peut-être pas, mais sur les mots du monde, vous pouvez choisir la langue de l'interface en cliquant sur les petits drapeaux relatifs aux pays. Le nom des langues, certains liens et certains textes sont ainsi traduits dans différentes langues et changent quand on passe d'une langue à une autre.
Auparavant, cette gestion n'était pas très propre, et son utilisation dans le code s'en trouvait peu aisée. J'ai donc décidé de l'uniformiser : cela permet à la fois d'optimiser le site, mais aussi d'améliorer les traductions et d'en étendre la portée.

Optimisation et amélioration du code

Quand je travaille sur mon site, ce qui me plaît, c'est de créer et de le faire évoluer en permanence (à défaut de le remplir, certes  :cpamafote: ). Quand j'ai une idée, je la prends comme elle vient et je la code au petit bonheur la chance... Futurs informaticiens, sachez-le : ce n'est pas du tout comme ça qu'il faudrait procéder !  :P
Cela dit, je n'ai pas non plus le temps de la réflexion, et au final, le code paraît brouillon (bien qu'il marche), ou alors je m'y emmêle les pinceaux. J'ai donc décidé de rendre un peu de lisibilité à tout ça, et je me réoriente vers une programmation beaucoup plus propre et plus souple, notamment à l'aide du langage objet (que j'avais laissé de côté en php pour le moment).
En particulier, j'ai fait un gros travail sur "Les conjugaisons du monde". J'ai repensé le mécanisme de génération des conjugaisons tout en revoyant le traitement des exceptions, et j'avoue que j'en suis plutôt fier pour le moment  :)

Voilà pour les nouveautés du jour. N'hésitez pas à me donner votre avis  ;)
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
14/11/2007 à 18:45:25
Pixel, 08/11/2007 12:02:47

Traduction de l'interface

Vous ne le saviez peut-être pas, mais sur les mots du monde, vous pouvez choisir la langue de l'interface en cliquant sur les petits drapeaux relatifs aux pays. Le nom des langues, certains liens et certains textes sont ainsi traduits dans différentes langues et changent quand on passe d'une langue à une autre.
Auparavant, cette gestion n'était pas très propre, et son utilisation dans le code s'en trouvait peu aisée. J'ai donc décidé de l'uniformiser : cela permet à la fois d'optimiser le site, mais aussi d'améliorer les traductions et d'en étendre la portée.

Faudrait que tu m'expliques comment tu procèdes, si c'est pas trop compliqué, je pense permettre d'avoir une gestion des langues dans la version 6 du forum  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
28/11/2007 à 08:21:43
En fait, c'est tout bête... et même si y a sans doute mieux, ça marche pas trop mal  :P

Ce que j'ai fait (en simplifiant), c'est que j'ai créé 3 tables : une contenant les langues elles-mêmes (id, nom de langue), une contenant les "labels" à traduire pour l'interface du site (id, clé), et une dernière table contenant les traductions elles-mêmes (id_clé, id_langue, traduction).

La clé correspond à une chaîne de caractères permettant d'identifier le label. Par exemple : "forum/accueil.titre" pourrait correspondre au titre du forum, "fonctions/recherche.titre" et "fonctions/recherche.resultats" pourraient correspondre aux textes de recherche et de résultats dans le forum (après, à toi de définir clairement tes labels).

Ensuite, pour les afficher, c'est assez simple : avant l'affichage de chaque page, je charge les labels dans un tableau associatif du type :
$tableau["clé"] = traduction
en mettant à chaque fois la traduction en français quand elle n'existe pas dans la langue désirée.

Enfin, dans le code, à l'endroit du label, je fais :
echo $tableau["clé"];
qui contiendra la valeur demandée.

C'est pas trop confus ?  :ange:

Edit : j'ai oublié de préciser que la langue d'interface était stockée dans une variable de session, afin d'être accessible dans toutes les pages  ;)
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
28/11/2007 à 08:50:17
Mise à jour du 27 novembre 2007

Hier, j'ai fait une mise à jour sur "Les mots du monde", qui reste dans une optique d'amélioration du code. En résumé : j'analyse, je factorise, j'optimise.

Notez que j'ai également rajouté une fonctionnalité que je voulais implémenter depuis longtemps : la possibilité d'ajouter les articles associés aux mots (e.g. : un chat, la tête, des chaussures). Celle-ci n'est pas encore visible pour ceux qui n'ont pas de compte de traduction... mais j'en reparlerai  :)
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
28/11/2007 à 12:52:20
Citation :
Ensuite, pour les afficher, c'est assez simple : avant l'affichage de chaque page, je charge les labels dans un tableau associatif du type :
$tableau["clé"] = traduction
en mettant à chaque fois la traduction en français quand elle n'existe pas dans la langue désirée.
Donc à chaque page, tu décharges toute la table des traductions pour la langue choisie ? C'est un peu lourdeau comme technique non ? Ca serait pas plus efficace d'avoir toutes les traductions de l'interface dans un fichier spécifique à chaque langue et qui contient directement le tableau associatif ?  ;)
Si tu veux avoir la possibilité d'ajouter facilement des traductions, rajoute une exportation à la demane depuis la base de données vers le fichier  :) Enfin je vois qu'à ce détail près, tu utilises ce que je pensais mettre en place  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
28/11/2007 à 15:47:15
Poulpe, 28/11/2007 12:52:20
Donc à chaque page, tu décharges toute la table des traductions pour la langue choisie ? C'est un peu lourdeau comme technique non ? Ca serait pas plus efficace d'avoir toutes les traductions de l'interface dans un fichier spécifique à chaque langue et qui contient directement le tableau associatif ?  ;)

Disons que je fais une requête bien ciblée, et je mets tout ça dans un tableau. En gros, y a qu'une différence entre "requête - lecture du résultat" et "ouverture de fichier - lecture", non ? Je suis pas sûr que niveau performance, y ait de gros écarts...
En plus, la traduction des labels est possible directement en ligne, donc le passage par un base de données au lieu de fichiers rend le système plus pratique à différents points de vue.
Enfin, je pense hein  ;)

Edit : en fait, il faudrait même lire à chaque fois 2 fichiers, vu que si une traduction n'existe pas dans une langue, je mets celle en français... Ou alors, il faudrait dupliquer les infos en français dans les différents fichiers où les traductions manquent...
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
28/11/2007 à 18:56:47
Je vois surtout qu'un include c'est de l'ordre de la milliseconde en ayant directement le tableau dans le fichier associatif ; une requête puis le fetch du résultat de ta requête c'est au minimum de l'ordre de 10ms (je bencherais ça plus précisément ce week-end, j'ai un truc affreux dans ce style à virer du forum dans la V6 et j'ai bien envie de quantifier précisément le gain).

J'avais fais le comparatif sur plongée-actu où j'avais prévu de mettre les pages en cache au début, une page avec la requête sur une clé unique (l'id de la news) mettait de mémoire 10ms à se générer là où la page incluant le fichier de cache de la news en mettait entre 1 et 2  ;) Y a quand même un facteur 5 à 10 entre les 2 versions. Je voulais vérifier ça mais la version actuellement en ligne ne gère plus la mise en cache, le gain de temps n'était pas pertinent par rapport au trafic  :-/
Dans ton cas, je pense qu'on doit monter facilement à un facteur 10 à 20 rien que par l'ajout du fetch et la création du tableau en plus  :) Et si tu veux garder la possibilité de modifier tes traductions à la volée, tu peux ajouter un script qui extrait ta base en un fichier, ça se fait vite ça  :p

L'idéal, mais ça c'est pas possible sur un hébergement mutualisé, c'est d'avoir les fichiers de cache des langues dans un ramdrive (un lecteur virtuel uniquement stocké en ram), avec une regénération automatique s'il n'existe plus et là ça booste bien  :p Mais bon, c'est un peu de l'enculage de mouches quand même là je te l'accorde, surtout si ton site est peu fréquenté  :p Par contre, si tu te retrouves souvent avec plusieurs 10aines de visiteurs simultanés, la mise en cache est vraiment intéressante  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
28/11/2007 à 21:22:21
Poulpe, 28/11/2007 18:56:47
Je vois surtout qu'un include c'est de l'ordre de la milliseconde en ayant directement le tableau dans le fichier associatif

En fait, comment tu fais ça en pratique ?  :P
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
28/11/2007 à 23:15:43
En écrivant directement tes messages dans un fichier :
langue.fr.php
<?php
$traduction['bonjour']='Bonjour';
$traduction['au revoir']='Au revoir';

langue.en.php
<?php
$traduction['bonjour']='Hello';
$traduction['au revoir']='Good bye';

Non ?  :p Tu peux remplacer les clés littérales par des clés numériques, le fonctionnement reste le même  :)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
29/11/2007 à 10:09:18
Ah ouais !  :D

Je pensais que t'avais une solution bien propre en mettant ça dans des fichiers txt et en les lisant avec des fgets() ou des file()... mais en fait c'est une solution à la wallagain que tu proposes je trouve  :P

Pour l'instant, je pense rester avec ce système, mais si tu as d'autres suggestions  ;)
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
29/11/2007 à 18:40:18
C'est quand même la solution la plus propre et la plus performante que de générer dynamiquement le fichier de langue, puis de l'inclure ensuite  ;)
L'objectif là étant de minimiser les boucles de parcours de tableau et les accès à la base de données  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
31/03/2008 à 10:38:47
Mise à jour du 30 mars 2008

Hier, j'ai fait une mise à jour assez importante sur les mots du monde... J'espère d'ailleurs que ça ne va pas tout casser  :P

En plus d'évolutions ou de corrections mineures visant surtout à l'optimisation du code ou l'amélioration de sa clarté (gestion des cookies, factorisation), j'ai effectué un travail important sur la section "Les mots du monde". J'ai notamment fini 3 chantiers dont je suis assez fier : la recherche, l'ajout des articles aux mots, et les options d'affichage.

Fonction de recherche

Si vous recherchez un mot dans les lexiques, vous avez désormais 3 possibilités :
- explorer les lexiques par thèmes (en français uniquement)
- explorer les lexiques par classement alphabétique (toute langue, sachant que seuls les mots disposant d'une écriture "romanisée" apparaîssent)
- utiliser la recherche avancée, avec possibilité de chercher dans les mots secondaires (traductions alternatives et mots connexes), les remarques et les commentaires.

Ajout des articles

Depuis quelque temps, certaines personnes me disaient qu'il vaudrait mieux mettre les articles en regard des mots (sorte de "mise en situation" de tel ou tel mot), ou par exemple qu'il était impensable de ne pas mettre le déterminant en allemand pour connaître le genre du mot.

Dans un premier temps, j'ai donc décidé d'ajouter les articles aux mots, en ne les affichant que lorsque l'on clique sur le mot lui-même. Ceux-ci sont disponibles uniquement dans certaines langues pour le moment, sachant que dans d'autres ce ne sera jamais pertinent de toute façon (en japonais par exemple). De plus, à chaque fois, j'essaie d'associer à un mot soit l'article le plus utilisé pour le mot en question, soit l'article qui a un sens pour la découverte du mot (détermination du genre en allemand par exemple).

Ma crainte au départ, quand j'ai décidé de ne pas mettre l'article, était que ça surcharge inutilement les listes. C'est pourquoi j'ai décidé dans un second temps d'ajouter des options d'affichage personnalisables...

Options d'affichage

Ce qui est bien sur Internet, c'est de pouvoir configurer les sites qu'on visite le plus souvent, sans avoir à cliquer sur 15 boutons avant de retomber sur l'apparence que l'on avait lors de notre dernier passage... Eh bien ! c'est chose faite sur Pixou.net !... ou en tout cas sur les mots du monde  :)

En cliquant sur le lien "Options d'affichage", vous pouvez notamment choisir :
- la langue d'interface
- les langues qui vous intéressent
- les langues à charger au démarrage de la section
- l'affichage ou non des articles.

Et c'est déjà pas mal, non ?  ;)

Pour le reste...

Et pour le reste... quelques petites choses, telles que la modification de l'ordre des liens dans l'en-tête - qui me paraît finalement plus logique -, et l'ajout d'une fonction de validation des traductions en ligne (me permettant de voir s'il y a de nouvelles traductions, et si elles semblent justes)...

Bien sûr, on n'est jamais à l'abri de bugs ou de soucis, donc prévenez-moi dès que possible si quelque chose ne tourne pas rond  :D

Merci d'avance et à bientôt  :hello:
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
31/03/2008 à 19:35:56
Petite suggestion pour la recherche qui la rendrait utilisable dans toutes les langues, ça serait de phonétiser les mots  ;)
Reste juste à créer une règle qui va bien pour phonétiser les mots de façon à peu près correcte  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
01/04/2008 à 09:54:06
Yep, ça pourrait être une bonne idée... sauf que c'est pas si simple  :-/

En fait, comme pour la transcription, la phonétique utilisée peut dépendre de la langue de celui qui fait la recherche. En effet, un Anglais n'écrira pas forcément phonétiquement "chat" ou "Tôkyô" de la même façon qu'un Français...

Après, l'idéal serait d'utiliser un code de phonétique international, mais je ne suis pas assez calé dans le domaine. Peut-être que je pourrais quand même rajouter le champ correspondant dans la table, au cas où y en ait qui sachent ?

Qu'en pensez-vous ?
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
23/04/2008 à 09:18:25
Pour ma part, je préfère que ce soit toujours compatible avec le français: L'alphabet phonétique international parait être universel, mais il me semble que c'est une illusion, car il y a une très grande variation dans la prononciation du même symbole.
Par exemple, il suffit de regarder l'immense variabilité des sons J et CH français, lesquels ont le même symbole en alphabet phonétique international.
24/04/2008 à 09:57:05
Lemanic, 23/04/2008 09:18:25
Par exemple, il suffit de regarder l'immense variabilité des sons J et CH français, lesquels ont le même symbole en alphabet phonétique international.

Je ne comprends pas très bien ce que tu veux dire par là...

L'API associe à chaque symbole une prononciation unique, la même pour tous et indépendamment de la langue. Par exemple, le "u" prononcé à la française s'écrit "y", et si un Anglais voit un "y" en phonétique, il saura qu'il se prononce comme un "u" français.

Mais ça peut être déstabilisant, justement par qu'on associe un son à un caractère, et que ce dernier n'est pas forcément le même dans la langue maternelle de celui qui utilise l'API (en français, quand on lit "y", on lit "i").

Bref, c'est compliqué, et je ne parle pas des nuances et des subtilités qu'on peut apporter à cette transcription pour la rendre la plus fidèle possible à la prononciation originale...

Après, si ça peut aider, pourquoi pas. En fait, même si le portail est destiné principalement aux francophones, de nombreuses fonctionnalités (que j'avais prévues et que je n'utilise pas) permettraient de le rendre accessible à tous assez rapidement. Et je me dis qu'un champ dédié à la prononciation - codée de façon "internationale" - pourrait éviter une transcription des mots trop francisée, comme pour le russe ou l'arabe par exemple...

Qu'en pensez-vous ?  :???: Je suis clair au moins ?  :D
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
24/04/2008 à 19:05:03
Je pensais pas vraiment à ça en faisant cette proposition  :p
L'idée au départ était juste de phonétiser pour un usage interne au site (par exemple vert, verre en français, were en anglais seraient phonétisés pareil) histoire de rendre la recherche plus exhaustive et faire abstraction (en partie) de l'orthographe pitoyable de certains  ;)
En fait, la phonétisation (le mot est peut-être pas le mieux choisi en fait) se ferrait donc uniquement sur l'orthographe.

Ceci dit, intégrer la phonétisation pour l'affichage et aider à la prononciation est une très bonne idée  :) Surtout que ça ne devrait pas te demander énormément de travail pour intégrer ça  ;)
Et après ça, t'auras plus qu'à intégrer un module de restitution sonore qui permet de lire les mots  ;)
Créateur de bugs.                               Moi je suis con hein, mais putain j'aime ça... (Coluche)
25/04/2008 à 09:01:23
Poulpe, 24/04/2008 19:05:03
L'idée au départ était juste de phonétiser pour un usage interne au site (par exemple vert, verre en français, were en anglais seraient phonétisés pareil)

Oui, mais en résumé, ce que je voulais dire, c'est que si tu décides de phonétiser "vert", "verre" et "were" pareil, c'est que tu prends un point de vue francophone  ;) Et du coup, je pense que ça peut perturber les éventuels étrangers qui passeraient sur le site...
C'est vrai que je pourrais toujours faire une section "Résultats approchés" dans la page de résultats, mais c'est peut-être du boulot pour pas grand chose (d'autant plus que les lexiques sont quand même classés par thèmes à l'origine  :P )...

Poulpe, 24/04/2008 19:05:03
Ceci dit, intégrer la phonétisation pour l'affichage et aider à la prononciation est une très bonne idée  :) Surtout que ça ne devrait pas te demander énormément de travail pour intégrer ça  ;)
Et après ça, t'auras plus qu'à intégrer un module de restitution sonore qui permet de lire les mots  ;)

Je vais donc y songer... mais dans un premier temps, je vais essayer de remplir le site et de voir son évolution et les besoins qui en découlent  :)
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
Page 1
 
 
Forum Pixou.net >> Les mots du monde >> Présentation du site >> Évolutions et mises à jour du site
 
Forum Octopus30 version 6.0.7 / Poulpe 2001-2012
Page générée en 179ms (10 requêtes SQL : 137ms)