Esempio n. 1
0
 /**
  * Enter description here...
  *
  * @param unknown_type $domain
  * @param unknown_type $langdir
  */
 function compile($lang, $textdomain, $enc = 'utf-8')
 {
     if (!is_dir("{$textdomain}/{$lang}/LC_MESSAGES")) {
         mkdir("{$textdomain}/{$lang}/LC_MESSAGES/");
     }
     $catalog = new PHPGettext_catalog($lang, $textdomain);
     $catalog->setproperty('mode', _MODE_PO_);
     $catalog->setproperty('lang', $lang);
     $headers = $this->header();
     $catalog->setproperty('comments', $headers[0]);
     $catalog->setproperty('headers', $headers[1]);
     $catalog->load();
     $d = dir($textdomain . "/" . $lang);
     while (false !== ($file = $d->read())) {
         if (preg_match('/.po$/', $file)) {
             list($file, $ext) = explode(".", $file);
             $catalog_aux = new PHPGettext_catalog($file, $textdomain);
             $catalog_aux->setproperty('mode', _MODE_PO_);
             $catalog_aux->setproperty('lang', $lang);
             $catalog_aux->load();
             foreach ($catalog_aux->strings as $msgid => $string) {
                 if (!$string->is_fuzzy) {
                     if (is_array($string->msgstr)) {
                         if (in_array("", $string->msgstr)) {
                             continue;
                         }
                     } else {
                         if (!$string->msgstr) {
                             continue;
                         }
                     }
                     $catalog->addentry($string->msgid, $string->msgid_plural, $string->msgstr, $string->comments);
                 }
             }
         }
     }
     $catalog->setproperty('mode', _MODE_MO_);
     $catalog->save();
     return true;
 }