\n\n"; return; } $phpfile = $argv[1]; $pofile = dirname($phpfile)."/hmessages.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 (!preg_match("/^msgstr\[[1-9]/",$l)) { if ($k!="" && (substr($l,0,7)=="msgstr " || substr($l,0,8)=="msgstr[0")){ $ink = False; $k = str_replace('\"','"',$k); $v = ""; if (isset(App::$strings[$k])) { $v = App::$strings[$k]; } else { $k = "__ctx:".$c."__ ".$k; if (isset(App::$strings[$k])) $v = App::$strings[$k]; } if (!empty($v)) { if (is_array($v)) { $l = ""; $n = 0; foreach ($v as &$value) { $l .= "msgstr[".$n."] \"".str_replace('"','\"',$value)."\"\n"; $n++; } } else { $l = "msgstr \"".str_replace('"','\"',$v)."\"\n"; } } } if (substr($l,0,6)=="msgid_" || substr($l,0,7)=="msgstr[") $ink = False; if ($ink) { $k .= trim($l,"\"\r\n"); } if (substr($l,0,6)=="msgid ") { preg_match('/^msgid "(.*)"/',$l,$m); $k = $m[1]; $ink = True; } if (substr($l,0,8)=="msgctxt ") { preg_match('/^msgctxt "(.*)"/',$l,$m); $c = $m[1]; } $out .= $l; } } file_put_contents($pofile, $out); ?>