thomascube
2011-12-07 7d84ff643abcb3d818260c240dc9d51dade5a835
Improve gettext exporter to correctly convert a single directory

1 files modified
14 ■■■■■ changed files
bin/exportgettext.sh 14 ●●●●● patch | view | raw | blame | history
bin/exportgettext.sh
@@ -43,9 +43,12 @@
        }
    }
}
// converting plugin localization
// converting single localization directory
else if (is_dir($srcdir)) {
    load_en_US($srcdir.'/en_US.inc');
    if (is_file($srcdir.'/en_US.inc'))  // plugin localization
        load_en_US($srcdir.'/en_US.inc');
    else
        load_en_US(realpath($srcdir.'/../en_US'));  // single language
    convert_dir($srcdir, $destdir);
}
// converting a single file
@@ -149,8 +152,7 @@
msgstr ""
"Project-Id-Version: %s\\n"
"Report-Msgid-Bugs-To: \\n"
"POT-Creation-Date: %s\\n"
"PO-Revision-Date: %s\\n"
"%s: %s\\n"
"Last-Translator: \\n"
"Language-Team: Translations <hello@roundcube.net>\\n"
"Language: %s\\n"
@@ -158,12 +160,12 @@
"Content-Transfer-Encoding: 8bit\\n"
EOF;
    
    $out = sprintf($header, $srcname, $product, date('c'), date('c'), $lang);
    $out = sprintf($header, $srcname, $product, $is_pot ? "POT-Creation-Date" : "PO-Revision-Date", date('c'), $lang);
    $out .= "\n";
    
    $messages = array();
    foreach ((array)$texts as $label => $msgstr) {
        $msgid = $GLOBALS['en_US'][$label] ?: $label;
        $msgid = $is_pot ? $msgstr : ($GLOBALS['en_US'][$label] ?: $label);
        $messages[$msgid][] = $label;
    }