From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Fri, 17 Apr 2015 06:28:40 -0400 Subject: [PATCH] Allow preference sections to define CSS class names --- bin/importgettext.sh | 36 +++++++++++++++++++----------------- 1 files changed, 19 insertions(+), 17 deletions(-) diff --git a/bin/importgettext.sh b/bin/importgettext.sh index d9c34ec..5a91e6b 100755 --- a/bin/importgettext.sh +++ b/bin/importgettext.sh @@ -1,7 +1,6 @@ #!/usr/bin/env php <?php /* - +-----------------------------------------------------------------------+ | bin/importgettext.sh | | | @@ -14,12 +13,9 @@ +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ - - $Id$ - */ -define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' ); +define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' ); require INSTALL_PATH.'program/include/clisetup.php'; if ($argc < 2) { @@ -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,23 +50,24 @@ +-----------------------------------------------------------------------+ | Author: %-62s| +-----------------------------------------------------------------------+ - @version $Id$ */ $%s = array(); EOF; - $output = sprintf($header, $lang, $varname.'.inc', date('Y'), $texts['_translator'], $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 ($label[0] != '_') + 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"; } @@ -95,8 +92,12 @@ { $out = array(); $lines = file($fn); - $language = 'xx_XX'; + $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; @@ -124,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(); @@ -162,8 +164,8 @@ $out[$file]['_translator'] = $translator; } } - - return $out; + + return $language ? $out : array(); } @@ -177,18 +179,18 @@ */ function expand_langcode($lang) { - static $rcube_language_aliases; + static $rcube_language_aliases, $rcube_languages; if (!$rcube_language_aliases) include(INSTALL_PATH . 'program/localization/index.inc'); if ($rcube_language_aliases[$lang]) return $rcube_language_aliases[$lang]; - else if (strlen($lang) == 2) + else if (strlen($lang) == 2 && !isset($rcube_languages[$lang])) return strtolower($lang) . '_' . strtoupper($lang); else return $lang; } -?> \ No newline at end of file +?> -- Gitblit v1.9.1