diff options
author | Erik Lundin <erik@lun.nu> | 2014-12-29 17:24:53 +0100 |
---|---|---|
committer | Erik Lundin <erik@lun.nu> | 2014-12-29 17:24:53 +0100 |
commit | d029d3a9f939f2691e3091a93fa4561dab13f15a (patch) | |
tree | 03d996944416b5a4bc5fc68900b8215a63eee7a0 /util/po2php.php | |
parent | a70e42edac9580eab7013f1fcdc5eae252a10dd1 (diff) | |
download | volse-hubzilla-d029d3a9f939f2691e3091a93fa4561dab13f15a.tar.gz volse-hubzilla-d029d3a9f939f2691e3091a93fa4561dab13f15a.tar.bz2 volse-hubzilla-d029d3a9f939f2691e3091a93fa4561dab13f15a.zip |
Don't trim escaped quotes
Diffstat (limited to 'util/po2php.php')
-rw-r--r-- | util/po2php.php | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/util/po2php.php b/util/po2php.php index d3e6d190c..cf295d8cb 100644 --- a/util/po2php.php +++ b/util/po2php.php @@ -73,7 +73,7 @@ function po2php_run($argv, $argc) { } $match=Array(); preg_match("|\[([0-9]*)\] (.*)|", $l, $match); - $out .= "\t". + $out .= "\t". preg_replace_callback($escape_s_exp,'escape_s',$match[1]) ." => " .preg_replace_callback($escape_s_exp,'escape_s',$match[2]) .",\n"; @@ -83,7 +83,7 @@ function po2php_run($argv, $argc) { if ($ink) { - $k .= trim($l,"\"\r\n"); + $k .= trim_message($l); $k = preg_replace_callback($escape_s_exp,'escape_s',$k); //$out .= '$a->strings['.$k.'] = '; } @@ -93,7 +93,7 @@ function po2php_run($argv, $argc) { if ($k!="") $out .= $arr?");\n":";\n"; $arr=False; $k = str_replace("msgid ","",$l); - $k = trim($k,"\"\r\n"); + $k = trim_message($k); $k = $ctx.$k; // echo $ctx ? $ctx."\nX\n":""; $k = preg_replace_callback($escape_s_exp,'escape_s',$k); @@ -102,14 +102,14 @@ function po2php_run($argv, $argc) { } if ($inv && substr($l,0,6)!="msgstr" && substr($l,0,7)!="msgctxt") { - $v .= trim($l,"\"\r\n"); + $v .= trim_message($l); $v = preg_replace_callback($escape_s_exp,'escape_s',$v); //$out .= '$a->strings['.$k.'] = '; } if (substr($l,0,7)=="msgctxt") { $ctx = str_replace("msgctxt ","",$l); - $ctx = trim($ctx,"\"\r\n"); + $ctx = trim_message($ctx); $ctx = "__ctx:".$ctx."__ "; $ctx = preg_replace_callback($escape_s_exp,'escape_s',$ctx); } @@ -123,6 +123,14 @@ function po2php_run($argv, $argc) { } +function trim_message($str) { + // Almost same as trim("\"\r\n") except that escaped quotes are preserved + $str = trim($str, "\r\n"); + $str = ltrim($str, "\""); + $str = preg_replace('/(?<!\\\)"+$/', '', $str); + return $str; +} + if (array_search(__file__,get_included_files())===0){ po2php_run($argv,$argc); } |