<?php

/* 

 * phpMyVisites : website statistics and audience measurements

 * Copyright (C) 2002 - 2006

 * http://www.phpmyvisites.net/ 

 * phpMyVisites is free software (license GNU/GPL)

 * Authors : phpMyVisites team

*/



// $Id: updateLangFiles.php 87 2006-09-15 19:05:30Z matthieu_ $





//=========

// HOW TO

//=========

// - backup /langs/ directory

// - copy paste new languages files version

// - run the script directly 

// - look at the result in the output dir

// - copy paste from the output dir in the /langs/ dir if OK





error_reporting(E_ALL);



define('LANGS_PATH', '../../langs/');

define('ORIGINAL_FILE', 'en-utf-8.php');

define('ORIGINAL_FILE_PATH', LANGS_PATH . 'en-utf-8.php');

define('PATH_DESTINATION', LANGS_PATH . 'afterUpdate/');



if(!function_exists('file_put_contents')) {

 function file_put_contents($filename, $data, $file_append = false) {

  $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));

  if(!$fp) {

   trigger_error('file_put_contents ne peut pas écrire dans le fichier.', E_USER_ERROR);

   return;

  }

  fputs($fp, $data);

  fclose($fp);

 }

}



function copyArrayInFile( $file, &$a)

{

	$contenu = '';

	foreach($a as $l) $contenu.=$l;

	file_put_contents($file, $contenu);

}



function getFileInArray( $file)

{

	$f = fopen( $file, 'r');

	if(!$f) { print("Error loading $file..."); return;}

	while (!feof($f))

		$return[] = fgets($f, 4096);

	return $return;

}



function getLangFiles()

{

	$handle = opendir( LANGS_PATH );

	while ($file = readdir($handle)) 

	{

		print("<br>To analyse : ". $file);

		if (strpos($file, '-utf-8.php') && $file != ORIGINAL_FILE)

		{

			print(" YES ");

			$return[] = LANGS_PATH . $file;

		}

	}

	if(sizeof($return) == 0)

		print("No lang file detected.");

	return $return;

}



// Tests

//======

//var_dump( getFileInArray('./en-utf-8.php') );

// $a = array('toto' => 'titi', 'tata' => 1 );

// copyArrayInFile( 'test.php', $a );



function searchForStringInArray( $stringToSearch, $old)

{

	// go throught new from currentLine

	$stop = sizeof($old);

	//print("search for $stringToSearch...");

	for($i = 0;$i < $stop; $i++)

	{

		if(substr_count($old[$i], $stringToSearch) == 1)

		{

		//	print("found!<br>");

			return $old[$i];

		}

	}

	//print("not found!<br>");

	return false;

	// if ereg string

	// return whole line

	// else false

}



// opens original files and save in array

$english = getFileInArray( ORIGINAL_FILE_PATH );



$all = getLangFiles();



//$all = array('../../langs/cz-utf-8.php'); //, '../../langs/si-utf-8.php');



foreach($all as $file)

{

	print($file."<br><br>");

	$fileDestination = PATH_DESTINATION. substr($file, strrpos( $file, '/') + 1) ;

	print("<br>".$fileDestination);



	$new = $english;

	$old = getFileInArray( $file );

	

	// algo

	// go througt $new file

	$currentLine = 0;

	foreach($new as $newLine)

	{

		$stringToSearch = '';

		if(ereg("] =", $newLine))

		{

			$stringToSearch = substr( $newLine, 0, strpos( $newLine, '='));

		//	print($stringToSearch . "<br>");

		}

		elseif(ereg("=>", $newLine))

		{

			$stringToSearch = substr( $newLine, 1, strpos( $newLine, '=>'));

		//	print($stringToSearch . "<br>");

		}	



		if( !empty($stringToSearch) 

				&& $oldLineWhichIsOk = searchForStringInArray( $stringToSearch, $old))

		{

			$new[$currentLine] = $oldLineWhichIsOk;

		}

		$currentLine++;

	}

	flush();

	// foreach '] =

	// search the string before = in the $old file

	// if found, copy the old string in the new one



	// TODO: Countries copy

	// saves new file in $fileDestination

	copyArrayInFile( $fileDestination, $new );

}



?>