示例#1
0
 /**
  * @dataProvider getPluralFormDP
  */
 public function testGetPluralForm($a, $b, $c)
 {
     $obj = new _Utils();
     $this->string($obj->getPluralForm($a, $b))->isEqualTo($c);
 }
示例#2
0
    foreach (array_keys($webprojects['locales'][$locale]) as $product_code) {
        $available_products[$product_code] = $webprojects['locales'][$locale][$product_code]['name'];
    }
    asort($available_products);
    $link = "https://l10n.mozilla-community.org/webdashboard/?locale={$locale}#web_projects";
    $tmp_message = '';
    foreach ($available_products as $product_code => $product_name) {
        $webproject = $webprojects['locales'][$locale][$product_code];
        $webproject_errors = $webproject['error_status'];
        $webproject_incomplete = $webproject['missing'] + $webproject['untranslated'] > 0;
        if ($webproject_incomplete || $webproject_errors) {
            // Web project is incomplete (either missing or untranslated strings)
            $tmp_message .= "<p><strong>{$webproject['name']}</strong><br/>";
            $tmp_message .= Utils::getPluralForm($webproject['missing'], 'missing string') . ', ';
            $tmp_message .= Utils::getPluralForm($webproject['untranslated'], 'untranslated string') . ', ';
            $tmp_message .= Utils::getPluralForm($webproject['fuzzy'], 'fuzzy string') . '.';
            if ($webproject_errors) {
                $tmp_message .= '<br/>' . htmlspecialchars($webproject['error_message']);
            }
            $tmp_message .= '</p>';
        }
    }
    if ($tmp_message != '') {
        array_push($rss_data, ['Incomplete Web Projects', $link, $tmp_message]);
    }
} else {
    $locale_has_web_projects = false;
}
// Build a RSS feed
$rss_feed = new FeedRSS("L10n Web Dashboard - {$locale}", "https://l10n.mozilla-community.org/webdashboard/?locale={$locale}", "[{$locale}] Localization Status of Web Content", $rss_data);
include __DIR__ . '/../views/locale.php';
示例#3
0
        $stats[$locale]['complete'] = true;
        $stats[$locale]['percentage'] = 100;
    } else {
        $stats[$locale]['percentage'] = round($stats[$locale]['strings_done'] / $stats[$locale]['strings_total'] * 100, 2);
    }
}
$percent_locale_done = round(count($locale_done) / $total_locales * 100, 2);
// Compute user base coverage for each page then an average
$page_coverage = [];
$sum_percent_covered_users = $sum_locales_per_page = 0;
foreach ($locale_done_per_page as $page => $locales) {
    $page_coverage[$page] = Utils::getUserBaseCoverage($locales, LANG_CHECKER);
    $sum_percent_covered_users += $page_coverage[$page];
    $sum_locales_per_page += count($locales);
}
$perfect_locales_coverage = Utils::getUserBaseCoverage($locale_done, LANG_CHECKER);
$average_coverage = round($sum_percent_covered_users / $sum_pages, 2);
$average_nb_locales = round($sum_locales_per_page / $sum_pages, 2);
// Organize data in $stats to display a summary of all locales
$locales_summary = ['perfect' => ['title' => 'Perfect', 'description' => 'No missing strings', 'locales' => [], 'locamotion_locales' => []], 'good' => ['title' => 'Good', 'description' => 'Less than 10% missing', 'locales' => [], 'locamotion_locales' => []], 'average' => ['title' => 'Average', 'description' => 'Between 10% and 40% missing', 'locales' => [], 'locamotion_locales' => []], 'bad' => ['title' => 'Bad', 'description' => 'Between 40% and 70% missing', 'locales' => [], 'locamotion_locales' => []], 'verybad' => ['title' => 'Very Bad', 'description' => 'Over 70% missing', 'locales' => [], 'locamotion_locales' => []]];
foreach ($stats as $locale => $locale_stats) {
    $category = '';
    if ($locale_stats['percentage'] == 100) {
        $category = 'perfect';
    } elseif ($locale_stats['percentage'] >= 90) {
        $category = 'good';
    } elseif ($locale_stats['percentage'] >= 60) {
        $category = 'average';
    } elseif ($locale_stats['percentage'] >= 30) {
        $category = 'bad';
    } else {