Exemple #1
0
 public function execute()
 {
     if (!function_exists('memory_get_usage')) {
         $this->error("You must compile PHP with --enable-memory-limit", true);
     }
     $langtool = new languages();
     $memlast = $memstart = memory_get_usage();
     $this->output("Base memory usage: {$memstart}\n");
     foreach ($langtool->getLanguages() as $langcode) {
         Language::factory($langcode);
         $memstep = memory_get_usage();
         $this->output(sprintf("%12s: %d\n", $langcode, $memstep - $memlast));
         $memlast = $memstep;
     }
     $memend = memory_get_usage();
     $this->output(' Total Usage: ' . ($memend - $memstart) . "\n");
 }
Exemple #2
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);
         }
     }
 }
TEXT;
    exit(1);
}
# Get the language code
if (isset($options['lang'])) {
    $wgCode = $options['lang'];
} else {
    $wgCode = $wgContLang->getCode();
}
# Get the duplicate message source
if (isset($options['remove-duplicates']) && strcmp($options['remove-duplicates'], '')) {
    $wgDupeMessageSource = $options['remove-duplicates'];
} else {
    $wgDupeMessageSource = '';
}
# Get the options
$wgWriteToFile = !isset($options['dry-run']);
$wgListUnknownMessages = !isset($options['no-unknown']);
$wgRemoveUnknownMessages = isset($options['remove-unknown']);
$wgRemoveDuplicateMessages = isset($options['remove-duplicates']);
$messagesFolder = isset($options['messages-folder']) ? $options['messages-folder'] : false;
# Get language objects
$languages = new languages();
# Write all the language
if ($wgCode == 'all') {
    foreach ($languages->getLanguages() as $languageCode) {
        rebuildLanguage($languages, $languageCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder);
    }
} else {
    rebuildLanguage($languages, $wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource, $messagesFolder);
}
$wgLanguages = new languages();
# Header
$wgOut->heading();
$wgOut->blockstart();
$wgOut->element('Language', true);
$wgOut->element('Code', true);
$wgOut->element('Translated', true);
$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);
Exemple #5
0
<?php

/**
 * Dumb program that tries to get the memory usage
 * for each language file.
 */
/** This is a command line script */
require_once dirname(__FILE__) . '/../commandLine.inc';
require_once dirname(__FILE__) . '/languages.inc';
$langtool = new languages();
if (!function_exists('memory_get_usage')) {
    wfDie("You must compile PHP with --enable-memory-limit\n");
}
$memlast = $memstart = memory_get_usage();
print 'Base memory usage: ' . $memstart . "\n";
foreach ($langtool->getLanguages() as $langcode) {
    Language::factory($langcode);
    $memstep = memory_get_usage();
    printf("%12s: %d\n", $langcode, $memstep - $memlast);
    $memlast = $memstep;
}
$memend = memory_get_usage();
echo ' Total Usage: ' . ($memend - $memstart) . "\n";
Exemple #6
0
TEXT;
    exit(1);
}
# Get the language code
if (isset($options['lang'])) {
    $wgCode = $options['lang'];
} else {
    $wgCode = $wgContLang->getCode();
}
# Get the duplicate message source
if (isset($options['remove-duplicates']) && strcmp($options['remove-duplicates'], '')) {
    $wgDupeMessageSource = $options['remove-duplicates'];
} else {
    $wgDupeMessageSource = '';
}
# Get the options
$wgWriteToFile = !isset($options['dry-run']);
$wgListUnknownMessages = !isset($options['no-unknown']);
$wgRemoveUnknownMessages = isset($options['remove-unknown']);
$wgRemoveDuplicateMessages = isset($options['remove-duplicates']);
# Get language objects
$wgLanguages = new languages();
# Write all the language
if ($wgCode == 'all') {
    foreach ($wgLanguages->getLanguages() as $language) {
        rebuildLanguage($language, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource);
    }
} else {
    rebuildLanguage($wgCode, $wgWriteToFile, $wgListUnknownMessages, $wgRemoveUnknownMessages, $wgRemoveDuplicateMessages, $wgDupeMessageSource);
}
Exemple #7
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);
    }
}