Exemple #1
0
 public function execute()
 {
     // Generate a template .pot based on source tree
     $this->output("Getting 'gettext' default messages from sources:");
     $this->generatePot();
     $this->output("done.\n");
     $langTool = new languages();
     if ($this->getOption('lang', ALL_LANGUAGES) === ALL_LANGUAGES) {
         $codes = $langTool->getLanguages();
     } else {
         $codes = array($this->getOption('lang'));
     }
     // Do all languages
     foreach ($codes as $langcode) {
         $this->output("Loading messages for {$langcode}:\n");
         if (!$this->generatePo($langcode, $langTool->getMessages($langcode))) {
             $this->error("ERROR: Failed to write file.");
         } else {
             $this->output("Applying template:");
             $this->applyPot($langcode);
         }
     }
 }
$wgOut->element('%', true);
$wgOut->element('Obsolete', true);
$wgOut->element('%', true);
$wgOut->element('Problematic', true);
$wgOut->element('%', true);
$wgOut->blockend();
$wgGeneralMessages = $wgLanguages->getGeneralMessages();
$wgRequiredMessagesNumber = count($wgGeneralMessages['required']);
foreach ($wgLanguages->getLanguages() as $code) {
    # Don't check English or RTL English
    if ($code == 'en' || $code == 'enRTL') {
        continue;
    }
    # Calculate the numbers
    $language = $wgContLang->getLanguageName($code);
    $messages = $wgLanguages->getMessages($code);
    $messagesNumber = count($messages['translated']);
    $requiredMessagesNumber = count($messages['required']);
    $requiredMessagesPercent = $wgOut->formatPercent($requiredMessagesNumber, $wgRequiredMessagesNumber);
    $obsoleteMessagesNumber = count($messages['obsolete']);
    $obsoleteMessagesPercent = $wgOut->formatPercent($obsoleteMessagesNumber, $messagesNumber, true);
    $messagesWithoutVariables = $wgLanguages->getMessagesWithoutVariables($code);
    $emptyMessages = $wgLanguages->getEmptyMessages($code);
    $messagesWithWhitespace = $wgLanguages->getMessagesWithWhitespace($code);
    $nonXHTMLMessages = $wgLanguages->getNonXHTMLMessages($code);
    $messagesWithWrongChars = $wgLanguages->getMessagesWithWrongChars($code);
    $problematicMessagesNumber = count(array_unique(array_merge($messagesWithoutVariables, $emptyMessages, $messagesWithWhitespace, $nonXHTMLMessages, $messagesWithWrongChars)));
    $problematicMessagesPercent = $wgOut->formatPercent($problematicMessagesNumber, $messagesNumber, true);
    # Output them
    $wgOut->blockstart();
    $wgOut->element("{$language}");
Exemple #3
0
    $langdir = LOCALE_OUTPUT_DIR . '/' . $langcode;
    $from = $langdir . '/fromlanguagefile.po';
    $pot = LOCALE_OUTPUT_DIR . '/wfMsg.pot';
    $dest = $langdir . '/messages.po';
    // Merge template and generate file to get final .po
    exec(MSGMERGE_BIN . MSGMERGE_OPTIONS . " {$from} {$pot} -o {$dest} ");
    // delete no more needed file
    //	unlink($from);
}
// Generate a template .pot based on source tree
echo "Getting 'gettext' default messages from sources:";
generatePot();
echo "done.\n";
$langTool = new languages();
// Do all languages
foreach ($langTool->getMessages() as $langcode) {
    echo "Loading messages for {$langcode}:\t";
    require_once Language::getClassFileName($langcode);
    $arr = 'wgAllMessages' . $langcode;
    if (!@is_array(${$arr})) {
        echo "NONE FOUND\n";
    } else {
        echo "ok\n";
        if (!generatePo($langcode, ${$arr})) {
            echo "ERROR: Failed to wrote file.\n";
        } else {
            echo "Applying template:";
            applyPot($langcode);
        }
    }
}
Exemple #4
0
function applyPot($langcode)
{
    $langdir = LOCALE_OUTPUT_DIR . '/' . $langcode;
    $from = $langdir . '/fromlanguagefile.po';
    $pot = LOCALE_OUTPUT_DIR . '/wfMsg.pot';
    $dest = $langdir . '/messages.po';
    // Merge template and generate file to get final .po
    exec(MSGMERGE_BIN . MSGMERGE_OPTIONS . " {$from} {$pot} -o {$dest} ");
    // delete no more needed file
    //	unlink($from);
}
// Generate a template .pot based on source tree
echo "Getting 'gettext' default messages from sources:";
generatePot();
echo "done.\n";
$langTool = new languages();
if ($options['lang'] === ALL_LANGUAGES) {
    $codes = $langTool->getLanguages();
} else {
    $codes = array($options['lang']);
}
// Do all languages
foreach ($codes as $langcode) {
    echo "Loading messages for {$langcode}:\n";
    if (!generatePo($langcode, $langTool->getMessages($langcode))) {
        echo "ERROR: Failed to write file.\n";
    } else {
        echo "Applying template:";
        applyPot($langcode);
    }
}