-
- $warnings = "";
- foreach ($a->strings as $key=>$str) {
- $msgid = massage_string($key);
-
- if (preg_match("|%[sd0-9](\$[sn])*|", $msgid)) {
- $out .= "#, php-format\n";
- }
- $msgid = find_original_msgid($msgid);
- $out .= 'msgid '. $msgid . "\n";
-
- if (is_array($str)) {
- if (array_key_exists($msgid, $base_msgids) && isset($base_msgids[$msgid][1])) {
- $out .= 'msgid_plural '. $base_msgids[$msgid][1] . "\n";
- } else {
- $out .= 'msgid_plural '. $msgid . "\n";
- $warnings .= "[W] No source plural form for msgid:\n". str_replace("\n","\n\t", $msgid) . "\n\n";
- }
- foreach ( $str as $n => $msgstr) {
- $out .= 'msgstr['.$n.'] '. massage_string($msgstr) . "\n";
- }
- } else {
- $out .= 'msgstr '. massage_string($str) . "\n";
- }
-
- $out .= "\n";
-
+
+ if (startsWith($l, '"') && $_f==1) {
+ $_mid .= "\n".$l;
+ $_mids[count($_mids)-1] .= "\n".$l;
+ //~ print "\t+mid: $_mid \n";
+ }
+ if (startsWith($l, 'msgid ')) {
+ $_f = 1;
+ $_mid = str_replace('msgid ', '' , $l);
+ $_mids = [$_mid];
+ //~ print "\t mid: $_mid \n";
+ }
+ //~ print "\t\t\t\t$_f\n\n";
+}
+
+print " done\n";
+print "Creating '$pofile'...";
+// create msgid and msgstr
+
+/**
+ * Get a string and retun a message.po ready text
+ * - replace " with \"
+ * - replace tab char with \t
+ * - manage multiline strings
+ */
+function massage_string($str) {
+ $str = str_replace('\\','\\\\',$str);
+ $str = str_replace('"','\"',$str);
+ $str = str_replace("\t",'\t',$str);
+ $str = str_replace("\n",'\n"'."\n".'"',$str);
+ if (strpos($str, "\n")!==false && $str[0]!=='"') $str = '"'."\n".$str;
+ $str = preg_replace("|\n([^\"])|", "\n\"$1", $str);
+ return sprintf('"%s"', $str);
+}
+
+function find_original_msgid($str) {
+ global $norm_base_msgids;
+ $norm_str = preg_replace(NORM_REGEXP, "", $str);
+ if (array_key_exists($norm_str, $norm_base_msgids)) {
+ return $norm_base_msgids[$norm_str];