Bonjour,

Je viens de trouver un script de traduction de fichier langue php.

Celui-ci utilise l'API Google Gtranslate, je viens de le tester, il marche à merveille,
ce n'est qu'une traduction, mais si on doit traduire 3000 lignes, cela devient très fastigieux.

Mon problème, mon fichier de langue à traduire n'est pas en php, c'est un fichier ini.

Cela ne devrai pas changer grand chose mais le script vérifie s'il s'agit bien d'une variable "$"
pour poursuivre la traduction, dans le cas contraire le fichier reste pareille, sans aucun changement.

Je vais donc poster le fichier index.php du script, peu être quelqu'un peut m'aider, je ne m'y conait pas trop en php.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?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);
 
}
Ci quelqu'un es interessé je peux également lui fournir les liens du script complet.

J'attends vos réponses avec impatiente