Thomas Bruederli
2015-12-23 2c0a550105f22e17307198bb295f83c210fb7cb5
bin/importgettext.sh
@@ -1,7 +1,6 @@
#!/usr/bin/env php
<?php
/*
 +-----------------------------------------------------------------------+
 | bin/importgettext.sh                                                  |
 |                                                                       |
@@ -14,9 +13,6 @@
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 +-----------------------------------------------------------------------+
 $Id$
*/
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
@@ -39,7 +35,7 @@
foreach ($out as $outfn => $texts) {
   $lang = preg_match('!/([a-z]{2}(_[A-Z]{2})?)[./]!', $outfn, $m) ? $m[1] : '';
   $varname = strpos($outfn, 'messages.inc') !== false ? 'messages' : 'labels';
   $header = <<<EOF
<?php
@@ -54,24 +50,24 @@
 +-----------------------------------------------------------------------+
 | Author: %-62s|
 +-----------------------------------------------------------------------+
 @version %s$
*/
$%s = array();
EOF;
   $output = sprintf($header, $lang, $varname.'.inc', date('Y'), $texts['_translator'], '$Id', $varname);
   $author = preg_replace('/\s*<Unknown>/i', '', $texts['_translator']);
   $output = sprintf($header, $lang, $varname.'.inc', date('Y'), $author, $varname);
   foreach ($texts as $label => $value) {
       if (is_array($value)) { var_dump($outfn, $label, $value); exit; }
      if (is_array($value)) { var_dump($outfn, $label, $value); exit; }
      if ($label[0] != '_' && strlen($value))
         $output .= sprintf("\$%s['%s'] = '%s';\n", $varname, $label, strtr(addcslashes($value, "'"), array("\r" => '', "\n" => '\n')));
   }
   $output .= "\n";
   $dir = dirname($outfn);
   @mkdir($dir, 664, true);
   @mkdir($dir, 0755, true);
   if (file_put_contents($outfn, $output))
      echo "-> $outfn\n";
}
@@ -99,6 +95,10 @@
   $language = '';
   $translator = '';
   // get language code from file name
   if (preg_match('/-([a-z_]+).po$/i', $fn, $m))
     $language = expand_langcode($m[1]);
   $is_header = true;
   $msgid = null;
   $msgstr = '';
@@ -125,9 +125,10 @@
            foreach ($dests as $dest) {
               list($file, $label) = explode(':', $dest);
               $out[$file][$label] = $msgstr;
               $out[$file]['_translator'] = $translator;
            }
         }
         $msgid = null;
         $msgstr = '';
         $dests = array();
@@ -163,7 +164,7 @@
         $out[$file]['_translator'] = $translator;
      }
   }
   return $language ? $out : array();
}