[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] tools language_file_merger.php,1.1,1.2
From: |
gsmet |
Subject: |
[Gforge-commits] tools language_file_merger.php,1.1,1.2 |
Date: |
Tue, 02 Mar 2004 05:24:25 -0600 |
Update of /cvsroot/gforge/tools
In directory db.perdue.net:/tmp/cvs-serv25699
Modified Files:
language_file_merger.php
Log Message:
* Added stderr output to generate a log file
* Now it adds lines with a #TO_TRANSLATE# flag and it signals removable lines
by #TO_REMOVE# flag
Index: language_file_merger.php
===================================================================
RCS file: /cvsroot/gforge/tools/language_file_merger.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- language_file_merger.php 3 Feb 2004 21:18:12 -0000 1.1
+++ language_file_merger.php 2 Mar 2004 11:24:22 -0000 1.2
@@ -1,46 +1,72 @@
#!/usr/bin/php -q
-<?
+<?php
#$argc=$ARGC;
#$argv=$ARGV;
-if ($argc!=3 || ("-h"==$argv[1] || "--help"==$argv[1])) {
+define('TO_TRANSLATE', '#TO_TRANSLATE#');
+define('TO_REMOVE', '#TO_REMOVE#');
+
+if ($argc!=3 || ('-h'==$argv[1] || '--help'==$argv[1])) {
showHelp();
exit;
}
+$languageDir = '/www/include/languages/';
-$langdir = "/www/include/languages/";
-$basefile = $argv[1] . $langdir . "Base.tab";
-if (!eregi("\.tab$", $argv[2])) {
- $targfile = $argv[1] . $langdir . $argv[2] . ".tab";
+$baseFile = $argv[1].$languageDir.'Base.tab';
+if(!eregi('\.tab$', $argv[2])) {
+ $targetFile = $argv[1].$languageDir.$argv[2].'.tab';
} else {
- $targfile = $argv[1] . $langdir . $argv[2];
+ $targetFile = $argv[1].$languageDir.$argv[2];
}
-if (!file_exists($basefile) || !file_exists($targfile)) {
- echo "FATAL: Base.tab or $argv[2] may not exist.\n";
+if (!file_exists($baseFile) || !file_exists($targetFile)) {
+ echo "FATAL: Base.tab or $argv[2].tab may not exist.\n";
exit;
}
-$basectnt = getLangAsArray($basefile);
-$targctnt = getLangAsArray($targfile);
+$baseContent = getLanguageAsArray($baseFile);
+$targetContent = getLanguageAsArray($targetFile);
-reset($basectnt);
+reset($baseContent);
+$resultContent = array();
-while (list($k1, $v1) = each($basectnt)) {
- while (list($k2, $v2) = each($v1)) {
- if (!isset($targctnt[$k1][$k2])) {
- $targctnt[$k1][$k2] = $v2 ;
+$stderr = fopen('php://stderr', 'w');
+foreach($baseContent AS $pageName=>$page) {
+ foreach($page AS $key => $value) {
+ if(!isset($targetContent[$pageName][$key])) {
+ fwrite($stderr, 'TO_TRANSLATE - added : '.$pageName.'
'.$key."\n");
+ $resultContent[$pageName][$key] = array('value' =>
$value['value'], 'prefix' => TO_TRANSLATE);
+ } else {
+ if($targetContent[$pageName][$key]['prefix'] ==
TO_TRANSLATE) {
+ fwrite($stderr, 'TO_TRANSLATE - updated :
'.$pageName.' '.$key."\n");
+ $resultContent[$pageName][$key] = array('value'
=> $value['value'], 'prefix' => TO_TRANSLATE);
+ } else {
+ $resultContent[$pageName][$key] =
$targetContent[$pageName][$key];
+ }
+ unset($targetContent[$pageName][$key]);
}
}
}
-ksort($targctnt);
-reset($targctnt);
+reset($targetContent);
+foreach($targetContent AS $pageName => $page) {
+ fwrite($stderr, 'TO_REMOVE - added : '.$pageName.' '.$key."\n");
+ foreach($page AS $key => $value) {
+ $resultContent[$pageName][$key] = array('value' =>
$value['value'], 'prefix' => TO_REMOVE);
+ }
+}
+fclose($stderr);
-while (list($k1, $v1) = each($targctnt)) {
- while (list($k2, $v2) = each($v1)) {
- echo "$k1\t$k2\t$v2";
+unset($targetContent);
+unset($baseContent);
+
+ksort($resultContent);
+reset($resultContent);
+
+foreach($resultContent AS $pageName => $page) {
+ foreach($page AS $key => $value) {
+ echo
$value['prefix'].$pageName."\t".$key."\t".$value['value']."\n";
}
}
@@ -48,26 +74,38 @@
global $argc, $argv;
$self = basename($argv[0]);
?>
->> GForge language file merge utility, by Hunte Swee<address@hidden> <<
+>> GForge language file merge utility, by Hunte Swee<address@hidden> and
Guillaume Smet<address@hidden><<
Usage:
-<?=$self?> <GForge root directory> <Target language>
+<?=$self?> <GForge root directory> <Target language> 1>merge.tab 2>merge.log
Example:
-<?=$self?> /usr/share/gforge SimplifiedChinese
+<?=$self?> /usr/share/gforge SimplifiedChinese 1>merge.tab 2>merge.log
-<?
+<?php
}
-function getLangAsArray($langfile) {
- $ctnt = file($langfile);
- reset($ctnt);
- while (list(, $line)=each($ctnt)) {
- if (eregi("^#", trim($line))) {
- continue;
+function getLanguageAsArray($languageFile) {
+ $content = file($languageFile);
+ reset($content);
+ $result = array();
+ while(list(, $line)=each($content)) {
+ $line = trim($line);
+ if(!empty($line)) {
+ if(eregi('^'.TO_TRANSLATE, $line)) {
+ $line = substr($line, strlen(TO_TRANSLATE));
+ $prefix = TO_TRANSLATE;
+ } elseif(eregi('^'.TO_REMOVE, $line)) {
+ $line = substr($line, strlen(TO_REMOVE));
+ $prefix = TO_REMOVE;
+ } elseif(eregi('^#', $line)) {
+ continue;
+ } else {
+ $prefix = '';
+ }
+ list($pn, $key, $val) = explode("\t", $line, 3);
+ $result[$pn][$key] = array('value' => $val, 'prefix' =>
$prefix);
}
- list($pn, $key, $val) = explode("\t", $line, 3);
- $result[$pn][$key] = $val;
}
return $result;
}
-?>
+?>
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] tools language_file_merger.php,1.1,1.2,
gsmet <=