Accueil > > > TRADUCTION DE FICHIERS DE LANGUE AVEC GOOGLE GTRANSLATE
TRADUCTION DE FICHIERS DE LANGUE AVEC GOOGLE GTRANSLATE
Information sur la source
Description
Un petit script vite fait qui traduit des fichier de langue PHP via un traitement par lot en utilisant l'API Gtranslate de Google. Evidement, c'est de la traduction automatique donc ça vaut ce que ça vaut... Je l'ai laissé tel quel car je m'en suis servit une seule et unique fois donc ça vaut pas trop le coup de l'optimiser (pour 4000 lignes à traduire, ça valait quand même le coup de le faire). Il faut que les fichiers d'origine soient écrits comme ceci (j'ai mis un exemple dans le zip) : <?php $var1 = "bla bla"; $var2 = "plop plop"; etc. ?> Enjoy !
Source
- <?php
- require("gtranslate/GTranslate.php");
- $languages = parse_ini_file("gtranslate/languages.ini");
-
- // Mettre le repertoire d'origine ici
- $path_from = "lang/fr/";
- // Mettre le repertoire de destination ici
- $path_to = "lang/en/";
- // Mettre la langue desiree ici
- $lang_to = "english";
- $lang_to_iso = $languages[strtoupper($lang_to)];
-
- // On recupere la liste des fichiers contenus dans le repertoire d'origine
- $rep = dir($path_from);
- $files_to_translate = array();
- while ($nametmp = $rep->read()) {
- if (is_file($path_from.$nametmp) && $nametmp!="." && $nametmp!=".." && $nametmp!="Thumbs.db") $files_to_translate[] = $nametmp;
- }
- $rep->close();
-
- $gt = new Gtranslate;
- foreach($files_to_translate as $filename){
- $translation = "";
- // On traite le contenu du fichier ligne par ligne
- $filecontent = file($path_from.$filename);
- foreach($filecontent as $line){
- // Si la ligne contient un variable PHP, alors on traduit
- if(strstr($line,'$')){
- // On extrait le nom et la valeur de la variable
- list($name,$value) = explode("=",$line);
- $value = str_replace('";','',$value);
- $value = str_replace(' "','',$value);
- $value = htmlentities($value);
- // On reecrit la ligne avec la traduction de la valeur de la variable
- $translation .= $name.'= "'.$gt->{"french_to_".$lang_to}($value).'";';
- $translation .= "\n";
- }
- // Si la ligne ne contient pas de variable, alors on recopie la ligne telle quelle
- else {
- $translation .= $line;
- }
- }
-
- // Ecriture du nouveau fichier de langue
- if(!is_dir($path_to)) mkdir($path_to);
- $newfilename = str_replace("_fr","_".$lang_to_iso,$filename);
- $fp = fopen($path_to.$newfilename, "w");
- fwrite($fp,$translation);
- fclose($fp);
- }
<?php
require("gtranslate/GTranslate.php");
$languages = parse_ini_file("gtranslate/languages.ini");
// Mettre le repertoire d'origine ici
$path_from = "lang/fr/";
// Mettre le repertoire de destination ici
$path_to = "lang/en/";
// Mettre la langue desiree ici
$lang_to = "english";
$lang_to_iso = $languages[strtoupper($lang_to)];
// On recupere la liste des fichiers contenus dans le repertoire d'origine
$rep = dir($path_from);
$files_to_translate = array();
while ($nametmp = $rep->read()) {
if (is_file($path_from.$nametmp) && $nametmp!="." && $nametmp!=".." && $nametmp!="Thumbs.db") $files_to_translate[] = $nametmp;
}
$rep->close();
$gt = new Gtranslate;
foreach($files_to_translate as $filename){
$translation = "";
// On traite le contenu du fichier ligne par ligne
$filecontent = file($path_from.$filename);
foreach($filecontent as $line){
// Si la ligne contient un variable PHP, alors on traduit
if(strstr($line,'$')){
// On extrait le nom et la valeur de la variable
list($name,$value) = explode("=",$line);
$value = str_replace('";','',$value);
$value = str_replace(' "','',$value);
$value = htmlentities($value);
// On reecrit la ligne avec la traduction de la valeur de la variable
$translation .= $name.'= "'.$gt->{"french_to_".$lang_to}($value).'";';
$translation .= "\n";
}
// Si la ligne ne contient pas de variable, alors on recopie la ligne telle quelle
else {
$translation .= $line;
}
}
// Ecriture du nouveau fichier de langue
if(!is_dir($path_to)) mkdir($path_to);
$newfilename = str_replace("_fr","_".$lang_to_iso,$filename);
$fp = fopen($path_to.$newfilename, "w");
fwrite($fp,$translation);
fclose($fp);
}
Conclusion
L'API Gtranslate peut être téléchargée ici : http://code.google.com/p/gtranslate-api-php/
Sources de la même categorie
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBERÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE Le code est simple, il permet depuis une url youtube de récupérer son identifiant et de se connecter au serveur de miniatures pour en récupérer les im...
par tefa24600
CONVERTISSEUR DE NOMBRES EN TEXTECONVERTISSEUR DE NOMBRES EN TEXTEQu'est-ce ? Un convertisseur de nombre en texte.
Ses particularités?
- pas de limitation sur la taille du nombre (traitement en string, et non en ...
par macruz
CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGECODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGECe script php permet, comme son nom l'indique de coder un texte pour remplacer les caractères spéciaux, ou apprendre à comprendre les htmlentities, sp...
par Salva9473
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Multi langue [ par panpan ]
Hello,Je suis en train de concevoir un site en plusieurs langues mais j'ai un problème pour un chose:J'ai défini toute mes traduction dans les fichier
probleme avec la langue tchèque [ par mitali ]
Je suis entrain de construire un site multi-langues dont l'une et tchèque .tout les textes du site je les mis dans un fichier csv , lors de la lecture
Google Maps Api [ par lammiiaa ]
Bonjour,Je travaille avec google maps api et je veux afficher un point sur le map en utilisant GlatLng,mais les coordonnees en parametres de GlatLng s
Site multilingue avec des variables dans les traductions [ par dvdstory ]
Bonjour,Je souhaite faire un site multilingue, mais des variables me posent problème, je connais le principe, On detecte la langue du navigateur puis
Modifier la ligne X d'un fichier txt [ par Bastagogne ]
Bonjour à vous,Je suis pas très fort en php et je n''arrive pas à réaliser un petit script pour mon site, je m''explique:Je souhaiterai modifier la li
PHP et ouverture de fichier [ par Slyders ]
Bonjour, je cherche à ouvrir un docmuent RTf sous WORD et pas son substitue d'IE ou il manque 90% des choses.j'ai pour le mment le code suivant : &l
Upload d'image ==> Problème :s [ par robapt ]
Bonjour à tous!J'ai un petit problème pour uploader un fichier (une image) ! Enfin c'est plutôt que je ne vois pas comment il faut faire ! En fait, le
upload ? [ par robapt ]
Bonjours!Comment pourrai-ton uploader un fichier et en même temps mettre un petit commentaire?En gros moi je veux que le visiteur upload une image et
Problème pour creer un fichier texte! [ par robapt ]
Bonjours à tous, voila ma page se compose de deux zone de texte ou le visiteur peut écrire :La première est un chemin à choisir pour uploader une imag
Buffer et variables au sein d'une fonction [ par Ordinastie ]
Bonjour,J'ai une classe permettant l'affichage d'un cadre plus ou moins grahique autour d'un contenu. Pour chaque chaque cadre j'appelle une méthode p
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|