[CODE] Traduire facilement votre interface web en plusieurs langues

Standard


C’est une fonctionnalité de plus en plus demandée sur les sites web et qui va devenir un incontournable : votre site doit pouvoir être consultable en plusieurs langues. C’est vrai qu’il existe des moyens de traduire du contenu par l’utilisateur lui même, mais les traductions proposées par Google Traduction ne sont jamais fidèles. Voici donc la méthode que j’utilise et que j’ai créé pour Pretty Web.

Comment savoir en quelle langue faut-il traduire ?

Avant de traduire votre site en biélorusse, il faudra d’abord le traduire dans les incontournables : la langue locale du pays dans lequel votre site à sa place, et l’anglais qui est la langue internationale.

Et comment savoir ce que l’utilisateur veut ? Après y avoir longtemps pensé, j’ai préféré choisir l’enregistrement par cookies. Enregistrer en base de données était impossible pour les utilisateurs visiteurs et ne possédant pas de comptes (la grande majorité) et l’enregistrement par variables de sessions ne permet pas de garder en mémoire le choix de l’utilisateur lorsqu’il revient après le time out de session.

Ce système peut être facilement améliorer : il suffit d’enregistrer en cookies pour les visiteurs non enregistrés et en BDD pour les membres (on préférera enregistrer dans une colonne int pour optimiser l’enregistrement, inutile de faire trop lourd avec une colonne varchar).

Voici donc le code que j’utilise :

if (isset($_GET['english']))
{
setcookie("french", 1 , time() -4200);
setcookie("english", 1 , time() + (((3600*24)*30)*12));
echo "";
}

if (isset($_GET['french']))
{
setcookie("english", 1 , time() -4200);
setcookie("french", 1 , time() + (((3600*24)*30)*12));
echo "";
}

if (isset($_COOKIE['english']) OR !isset($_COOKIE['french'])) {
$language="english";
}
else{
$language="french";
}

Le code se passe de commentaires, il reste très basique. J’ai fais le choix de définir l’anglais par défaut, sans cookies ce sera cette langue qui sera utilisée. Bien évidemment il est très facile de rajouter une autre langue, il suffit de suivre le même schéma !

Comment traduire notre interface ?

Maintenant que nous savons quelle langue nous avons choisi d’utiliser pour notre utilisateur, il faut donc traduire le site. Notre langue est enregistrée dans la variable $language, il est temps de s’en servir.

La méthode la plus simple est de créer un dossier “lang” qui regroupera tous vos fichiers de traduction. Dans ce dossier, vous créerez des sous-dossiers, un par langue. Dans mon cas j’ai donc créé un dossier “french” et un autre “english”. A l’intérieur de ces dossiers, vous mettrez tous vos fichiers, qui ne contiendront donc que des fichiers PHP avec des variables et du texte.

Je vous conseille de créer un fichier par page (par exemple pour la page search.php, vous créerez un fichier search.php dans chaque sous dossier de langues de traduction qui contiendra le texte utilisé dans la page search.php à la racine). Enfin, vous pouvez créer un fichier general.php (toujours dans chaque sous-dossier !) qui contient les textes qui sont présents sur chaque page.

Voici un exemple de fichier general.php que j’utilise :

$next_page = "Page suivante";
$previous_page = "Page précédente";
$search = "Rechercher";
$sign_in = "Connexion";
$log_me = "Connexion";
$sign_up = "S'inscrire";
$forget = "J'ai oublié !";
$about = "À propos";
$created_by = "Créé par";
$legal_terms = "Mentions légales";
$home = "Accueil";
$by = "par";
$share = "Partager";
$on = "le";
$comment="commentaire";
$comments="commentaires";
$no_comments="Pas de commentaires";
$logout = "Déconnexion";
$my_account = "Mon compte";
$my_profile = "Mon profil";
$connected_as = "Connecté en tant que";
$co_succes = "Vous vous êtes bien connecté.";
$deco_succes = "Vous vous êtes bien déconnecté.";
$lien_retour='



» Retour

'; $error = "Erreur !"; $edit = "Éditer"; $random_quote = "Citation aléatoire"; $add_a_quote = "Ajouter une citation"; $developer="Développeur"; $add_favorite="Ajouter cette citation à vos favoris !"; $unfavorite="Supprimer cette citation de vos favoris"; $mobile_website="Site mobile"; $full_website="Site normal";

Et le même en anglais :

$next_page = "Next page";
$previous_page = "Previous page";
$search = "Search";
$sign_in = "Sign in !";
$log_me = "Log me";
$sign_up = "Sign up";
$forget = "Forget ?";
$about = "About";
$created_by = "Created by";
$legal_terms = "Legal terms";
$home = "Home";
$by = "by";
$share = "Share";
$on = "on";
$logout = "Logout";
$comment="comment";
$comments="comments";
$no_comments="No comments";
$my_account = "My account";
$my_profile = "My profile";
$connected_as = "Connected as";
$co_succes = "You have successfully logged.";
$deco_succes = "You have been disconnected successfully.";
$lien_retour='



» Back

'; $error = "Error !"; $edit = "Edit"; $random_quote = "Random Quote"; $add_a_quote = "Add your quote"; $developer="Developer"; $add_favorite="Add this quote to your favorites !"; $unfavorite="Delete this quote from your favorites"; $mobile_website="Mobile website"; $full_website="Full website";

Vous noterez que j’ai mis toutes mes variables en anglais, c’est un choix, il est toujours mieux de coder et de commenter en anglais : si vous avez besoin d’aide, vous serez plus facilement compris !

Utiliser ces fichiers de traduction

Rien de plus facile, il suffit juste de faire des include et des echo des variables !

Voici la ligne à mettre dans votre header.php que vous incluez sur chaque page :

$page=$_SERVER['PHP_SELF'];
$taille= strlen($name_page);
$taille2=$taille-4;
$name_page = substr("$page",1,$taille2);

require 'lang/'.$language.'/general.php'; 
if ($page!="/index.php") {require 'lang/'.$language.'/'.$name_page.'';}

Ce code ci est plutôt facile aussi à comprendre, mais il est ingénieux ! Comme je vous l’ai conseillé auparavant, il est mieux de créer un fichier par page que l’on veut traduire (on s’y retrouve plus facilement…) avec ce code c’est exactement ce qui est fait !

Il ne vous reste plus qu’à faire de jolis echo partout dans votre code, et vous aurez votre interface disponible dans autant de langues que vous le voulez (et que vous pouvez traduire !)

# - '1'){echo "$nombre_commentaires $comments";}elseif($nombre_commentaires=='1'){echo "$nombre_commentaires $comment";}else{echo"$no_comments";} ?>   

Ça fait beaucoup de PHP, mais on s’y retrouve je vous assure !

Le 1er Avril sur Internet

Standard

Quelle joyeuse journée que ce 1er Avril ! Peut être avez vous eu la chance de vous balader toute la journée avec un (ou des !) poissons dans le dos, sans que vous ne vous en soyez aperçu qui sait ! Le 1er Avril s’étend également sur la Toile, et chaque entreprise fait son maximum pour faire la meilleure blague : faire rire, c’est aussi faire du marketing après tout.

Chacun se creuse donc la tête pour essayer de sortir la blague qui aura le plus d’effet, voici un concentré des meilleurs poissons d’Avril sur Internet à ne pas rater.

Sardineza, le nouveau site de Sarenza

Vous connaissez probablement Sarenza.com, le fameux vente de chaussures en ligne. Sarenza nous offre donc une belle blague avec sa newsletter quotidienne titrée : “Remède anti teint de moule :  découvrez le numero 1 du poissson en ligne !” proposant de découvrir le numéro 1 du poisson en ligne : Sardineza ! Une blague originale et bien pensée, qui reprend la même présentation que le site officiel de Sarenza : http://www.sardineza.com
Angry Birds

Google lance Gmail Motion

Google nous présente dans ces vidéos “très sérieuse” le nouveau produit de Gmail. Après tout utiliser un clavier et une souris, c’est dépassé ! Avec Gmail Motion, gérez vos emails facilement avec votre corps !

Google recrute des autocompleter

Angry Birds
Vous aimez les suggestions Google ? Ce qui vous permet généralement de ne même pas avoir besoin de finir votre mot pour rechercher ce que vous désirez ? Google recrute les personnes qui sont derrière tout ce mécanisme ingénieux !

Youtube 1911

Youtube se lance dans les effets rétro et propose de visualiser toutes les vidéos présentes sur son site avec un effet rétro, et la musique qui va avec ! Rendez vous sur Youtube !

Angry Birds

Je termine cet article en vous invitant à chercher “comic sans ms” ou “helvetica” sur Google et d’apprécier le résultat !

Le YouTube Symphony Orchestra en direct de l’Opéra de Sydney

Standard

Photo
Le YouTube Symphony Orchestra 2011 est un projet monté en partenariat avec l’Orchestre Symphonique de Londres, l’Orchestre Philarmonique de Berlin, l’Orchestre Symphonique de Sydney et d’autres institutions de premier plan du monde de la musique classique.

Les 101 musiciens du YouTube Symphony Orchestra 2011 se produisent ce 20 mars à l’Opéra de Sydney en direct sur YouTube. L’orchestre rassemble des musiciens issus de plus de 30 pays qui ont été sélectionnés lors d’une audition mondiale en ligne sur YouTube. Ils ont participé à une semaine de répétitions et de concerts sur la scène mythique de l’Opéra de Sydney sous la direction du chef d’orchestre Michael Tilson Thomas.

Sélectionné par un jury d’experts issus des plus grands orchestres du monde puis soumis au vote des internautes, l’orchestre est composé de musiciens amateurs et professionnels, âgés de 14 à 49 ans.

Un show multimédia

Les voiles de l’Opéra de Sydney serviront de toile de fond à un show lumière créant un environnement multimédia composé d’œuvres d’art, d’effets visuels et d’une vidéo du concert diffusée en temps réel à l’extérieur et à l’intérieur de ce bâtiment mythique. Ces projections seront retransmises en simultané du concert pour le public présent au port de Sydney et les internautes du monde entier sur Youtube.

Une représentation en live sur Internet

La représentation finale débute ce dimanche 20 mars, à 20h, heure locale (10h heure française). Elle sera diffusée en direct sur la chaîne du YouTube Symphony Orchestra, http://www.youtube.com/symphony, et depuis la page d’accueil de YouTube dans plus d’une douzaine de pays.

L’occasion de profiter d’un concert exceptionnel, gratuitement, avec une présentation originale !

Les drôles de ponts de Google Earth

Standard

Photo

Décidément, on ne se lassera des petits bugs des logiciels Google ! Après le beatbox dans Google Translate ou des traversées d’océan en jet ski dans Google Maps, c’est le tour de Google Earth : le logiciel préféré des voyageurs immobiles qui permet d’explorer notre planète grâce à des images satellites saisissantes. Google Earth a donc une façon bien à lui de redessiner les plus beaux ouvrages d’architectes routiers.

La faute à la cartographie aérienne qui fait tout ce qu’elle peut pour faire de la fausse 3D avec des images plates, ce qui donne forcément quelques bugs d’affichage là ou personne n’a encore modélisé réellement la topographie des terrains en vraie 3D.

Après avoir découvert les routes torturées et les ponts tordus de Google Earth, Clement Valla, un artiste architecte et designer de Brooklyn a recensé tout ce qu’il pouvait trouver comme anomalies dans les rendus du logiciel de cartographie et les a réunis sur son site. Le résultat donne une galerie totalement insolite et déjantée comme un si un terrible séisme s’était abattu sur ces ponts pour réinventer le paysage… Highway to hell, sort of.

Photo

Photo

Photo

Photo

Photo

L’intégralité des photos peut être vu ici.

La route du plus attendu des mariages sur Google Earth en 3D

Pour préparer le mariage entre Prince William et Kate Middleton qui se tiendra le 29 Avril prochain en Angleterre, Google a étendu son imagerie 3D du centre ville de Londres afin de pouvoir suivre le trajet du couple royal lors de leur mariage.

Le résultat est une vidéo sympathique qui donne un premier aperçu de la modélisation 3D de la terre que nous pourrons avoir bientôt partout dans le monde.

Angry Birds arrive sur Facebook

Standard

Angry Birds
Mikael Hed, le PDG de Rovio a annoncé que le célèbre jeu Angry Birds arrivera sur Facebook dès le mois prochain avec “de nouveaux concepts, qui ne sont pas présents sur aucune autre plateforme de jeu”. Hed a parlé de “collaboration” pour décrire ce nouveau concept, en ajoutant que “les cochons auront un rôle plus important dans le jeu”.

Rovio a promis de tenir informé ses utilisateurs quant à la prochaine migration d’Angry Birds sur le plus grand réseau social. Si vous ne “likez” pas encore la page d’Angry Birds sur Facebook, il est temps de le faire !

Les autres développeurs de jeux doivent être jaloux de la montée fulgurante d’Angry Birds. Le jeu a commencé tout d’abord sur iPhone, puis sur Android, Palm et Nokia, puis tout à coup le jeu s’est étendu sur d’autres plateformes : PC, PSP/PS3, les téléphones Windows 7. Rovio a pour projet de réaliser un film, une série animée et une version 3D de son jeu phare.

Le succès d’Angry Birds sur le plus grand réseau social au monde promet d’être gigantesque !

Gmail perd les emails de 150 000 de ses comptes

Standard

Gmai
Une mauvaise surprise attendait 150 000 utilisateurs de la messagerie de Google, Gmail, quand ils se sont connectés dimanche soir à leur compte : leurs boîtes emails ont été vidées de tous les courriers, pièces jointes et historique de chat Google. Un cauchemar pour les utilisateurs qui utilisent au quotidien Gmail, souvent pour leur travail.

« Nous avons publié une mise à jour logicielle de stockage qui a causé un bug inattendu, et qui a eu pour conséquence la perte temporaire d’accès à leurs e-mail pour 0,02% des utilisateurs de Gmail. Quand nous avons découvert le problème, nous avons immédiatement arrêté le déploiement du nouveau logiciel et sommes revenus revenir à l’ancienne version », précise Ben Treynor, ingénieur chez Google, dans une note de blog. C’est donc une mise à jour logicielle qui serait à l’origine de la suppression des emails pour 150 000 des 170 millions d’utilisateurs deGmail, dans la nuit de dimanche à lundi.

Google essaie de rendre à chaque utilisateur affecté ce qu’il a perdu le plus rapidement possible, mais à l’heure actuelle il reste encore quelques milliers d’utilisateurs qui possèdent encore un compte vierge de tout email.

Une mauvaise  pub pour Google qui vient tout juste de lancer son offre de backup de serveur Exchange, Google Message Continuity, en communiquant assez largement sur les pannes fréquentes d’Exchange. En effet, dans cette situation c’est bien les sauvegardes de Google qui sont mises en cause : elles ont été affectées et les équipes de Google mettent plusieurs jours à réparer l’incident en limitant les pertes.

Le bouton “Like” va remplacer l’ancien bouton “Partager” Facebook

Standard

Idée

Dites au revoir au bouton de partage Facebook, car le Like est en train de lui prendre sa place !

Après des mois de changements à son bouton Like, Facebook vient de sortir une modification changeant radicalement le fonctionnement du fameux bouton. Maintenant, après avoir cliqué sur le bouton Like, une mention indiquant que vous avez aimé ce lien sera publié sur votre profil, avec un court extrait de la page et une miniature. Auparavant, seul un lien était publié sur votre profil, ce qui n’était pas très visible pour les autres utilisateurs.

Voici par exemple ce qui sera publié si vous aimez cet article :
Idée

Les utilisateurs devront dorénavant réfléchir à deux fois avant d’aimer quelque chose sur Internet en pensant à la place que ce geste prendra sur leur mur, sur le Newsfeed de leurs amis et du trafic que ceci engendra pour le propriétaire du site.

Facebook a changé au fur et à mesure son bouton Like et a cessé de développer le bouton Share. Malorie Lucich, responsable de la communication de Facebook a annoncé que le bouton Share fonctionnerait toujours, mais que le bouton Like prenait plus une forme de “recommandation”. Lucich appelle ceci un test et déclare “Nous testons en permanence des nouveaux produits en tenant compte du feedback des développeurs souhaitant améliorer la plateforme. Nous n’avons pas plus de détails à communiquer pour le moment”.

Ce changement ne ressemble en rien à un test : généralement les tests de Facebook n’affectent qu’une petite poignée d’utilisateurs tandis que ce changement a été déployé à l’ensemble des boutons Like.

Peut être que le changement était nécessaire, beaucoup d’utilisateurs confondaient le bouton Like et le bouton Share. Dorénavant, lorsqu’un utilisateur “aimera” quelque chose, ses amis en seront plus directement informés grâce (ou à cause) de la place que prendra l’information sur son mur ou le Newsfeed.

[PHILO] Les priorités de la vie

Standard

Cet article n’est pas de moi, je l’ai trouvé quelque part il y a bien longtemps, mais je tenais à le faire partager….

IdéeAvant son cours de philosophie, un professeur est debout en avant de la classe avec quelques objets devant lui. Lorsque le cours commence, il prend doucement un très grand pot de mayonnaise vide et commence à le remplir avec des balles de golf. Ensuite, il demande aux étudiants si le pot est plein.

Ils sont tous d’accord pour dire que le pot est plein. Le professeur prend alors une boîte de cailloux et les verse dans le pot. Il secoue le pot doucement. Les cailloux roulent dans les espaces laissés entre les balles de golf. Ensuite, il redemande aux étudiants si le pot est plein.

Ils sont tous d’accord pour dire que le pot est plein. Le professeur prend ensuite une boîte de sable et verse le sable dans le pot. Évidemment, le sable remplit tout l’espace restant. Il demande une autre fois si le pot est plein.

Les étudiants répondent unanimement que le pot est plein. Le professeur prend ensuite deux tasses de café cachées sous son bureau et les verse complètement dans le pot et le café remplit tous l’espace laissé par le sable. Les étudiants rient.

― Maintenant, dit le professeur, lorsque les rires s’estompent, je veux que vous imaginiez que ce pot représente votre vie. Les balles de golf représentent les choses importantes : votre famille, vos enfants, votre santé, vos ami(e)s et vos passions favorites. Si vous perdiez tout le reste, sauf ces choses, votre vie resterait remplie.

Les cailloux représentent les autres choses importantes à vos yeux comme votre emploi, votre maison et votre auto. Le sable représente tout le reste des petites choses.

Si vous placez le sable en premier dans le pot, continue le professeur, alors, il n’y aura plus de place pour les cailloux ni pour les balles de golf. C’est la même chose dans la vie. Si vous dépensez toute votre énergie sur les petites choses, vous n’aurez jamais de place dans votre vie pour les choses que vous trouvez importantes.

Portez attention aux moments critiques de votre bonheur. Jouez avec vos enfants. Prenez le temps d’aller voir votre médecin pour votre examen général. Invitez votre amoureux(se) au restaurant. Jouez un autre 18 trous. Il sera toujours temps de nettoyer la maison et de réparer le broyeur. Prenez soin de vos balles de golf en premier. Les choses ayant vraiment de l’importance. Réévaluez vos priorités. Le reste étant seulement du sable.

Un des étudiants lève la main et demande :

― Qu’est-ce que le café représente?

Le professeur répond en souriant :

― Je suis heureux que vous me posiez la question. Le café est là seulement pour vous rappeler que peu importe comment votre vie semble remplie, il y a toujours de la place pour déguster deux bons cafés avec un(e) ami(e).

Watson, le supercalculateur d’IBM l’emporte sur les humains

Standard

Watson
Après Deep Blue , l’ordinateur qui était parvenu à battre Garry Kasparov aux échecs en 1997, voici Watson, le supercalculateur qui bat les humains aux jeux télévisés. Le jeu télévisé américain Jeopardy, accueille depuis 2 jours le dernier prodige d’IBM, pour une semaine de compétition : un concours entre les 2 plus grands champions du jeu aux Etats-Unis et un supercalculateur.

Watson est un monstre de silicium tournant avec un système GNU-Linux sur une base de Power 7 d’IBM, équipé de 2 880 cœurs de calcul et de 15 téraoctets de RAM. Au deuxième jour de la compétition, il a littéralement laissé sur place les représentants de la race humaine en répondant aux questions de l’animateur avec une précision et une vitesse diabolique.

Le fonctionnement

L’IA (intelligence artificielle) de Watson est en effet capable de répondre de façon compréhensible à des questions complexes en langage naturel. C’est un vieux rêve des chercheurs en intelligence artificielle qui prend forme. Au cœur des algorithmes qui animent la machine, il y a de la sémantique : par un travail d’association et de compréhension de mots et de concepts, Watson est capable d’interpréter une question et de déterminer ce qu’on lui demande.

Pour cela, il utilise de grandes quantités de textes en langage naturel pour tenter de deviner le sujet de la question. L’équivalent, selon IBM, de 200 millions de pages de contenus. En effet, pour être sur un pied d’égalité avec ses concurrents humains, Watson n’a aucun moyen d’accéder à Internet.

Ainsi, le supercalculateur interprète la question posée par l’animateur, la “comprend”, et fouille dans sa gigantesque base de données interne pour extraire la réponse à la question, le tout en quelques millisecondes. Une fois la réponse trouvée, le supercalculateur exprime la réponse dans un anglais parfait, grâce à un module de synthèse vocale maison.

Une machine qui “apprend”

Watson possède une intelligence qui lui permet de déterminer la réponse exacte, avec une exactitude proche de la perfection. Le défi était de faire comprendre à l’ordinateur quelle information il faut rechercher, après avoir compris le sens d’une question posée pour un humain, puis enfin de trouver la réponse exacte.

Il faut ainsi inculquer les rudiments de la langue au supercalculateur (comment faire comprendre à un ordinateur que “l’homme de la jungle” désigne Tarzan ?) pour que celui-ci comprenne véritablement le sens de la question posée. Une fois que le supercalculateur sait ce qu’il doit trouver, il lance une gigantesque recherche dans ses “connaissances” et trouve la bonne réponse en recoupant plusieurs informations qui sont identiques, en effectuant des probabilités.

Ainsi, l’ordinateur sort une réponse à une question qu’il n’a jamais véritablement “comprise” grâce à de savants calculs associés à une base de connaissances gigantesque.

Enfin, Watson apprend de ses propres erreurs ou de celles de ses concurrents, il apprend aussi des réponses faites au cours du jeu en analysant notamment la thématique du quiz. La machine devient donc au fil du temps, de plus en plus “intelligente”…