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';
/** * @dataProvider getPluralFormDP */ public function testGetPluralForm($a, $b, $c) { $obj = new _Utils(); $this->string($obj->getPluralForm($a, $b))->isEqualTo($c); }