diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/php2po.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/util/php2po.php b/util/php2po.php new file mode 100644 index 000000000..d3ce0a5af --- /dev/null +++ b/util/php2po.php @@ -0,0 +1,71 @@ +<?php + + if(! class_exists('App')) { + class TmpA { + public $strings = Array(); + } + $a = new TmpA(); + } + + if ($argc!=2) { + print "Usage: ".$argv[0]." <strings.php>\n\n"; + return; + } + + $phpfile = $argv[1]; + $pofile = dirname($phpfile)."/messages.po"; + + if (!file_exists($phpfile)){ + print "Unable to find '$phpfile'\n"; + return; + } + + include_once($phpfile); + + print "Out to '$pofile'\n"; + + $out = ""; + $infile = file($pofile); + $k=""; + $ink = False; + foreach ($infile as $l) { + + if ($k!="" && substr($l,0,7)=="msgstr "){ + $ink = False; + $v = '""'; + //echo "DBG: k:'$k'\n"; + if (isset($a->strings[$k])) { + $v= '"'.$a->strings[$k].'"'; + //echo "DBG\n"; + //var_dump($k, $v, $a->strings[$k], $v); + //echo "/DBG\n"; + + } + //echo "DBG: v:'$v'\n"; + $l = "msgstr ".$v."\n"; + } + + if (substr($l,0,6)=="msgid_" || substr($l,0,7)=="msgstr[" )$ink = False;; + + if ($ink) { + $k .= trim($l,"\"\r\n"); + $k = str_replace('\"','"',$k); + } + + if (substr($l,0,6)=="msgid "){ + $arr=False; + $k = str_replace("msgid ","",$l); + if ($k != '""' ) { + $k = trim($k,"\"\r\n"); + $k = str_replace('\"','"',$k); + } else { + $k = ""; + } + $ink = True; + } + + $out .= $l; + } + //echo $out; + file_put_contents($pofile, $out); +?>
\ No newline at end of file |