Implements hook_form_FORM_ID_alter() for language_admin_overview_form().
function locale_form_language_admin_overview_form_alter(&$form, &$form_state) {
$languages = $form['languages']['#languages'];
$total_strings = locale_storage()
->countStrings();
$stats = array_fill_keys(array_keys($languages), array());
// If we have source strings, count translations and calculate progress.
if (!empty($total_strings)) {
$translations = locale_storage()
->countTranslations();
foreach ($translations as $langcode => $translated) {
$stats[$langcode]['translated'] = $translated;
if ($translated > 0) {
$stats[$langcode]['ratio'] = round($translated / $total_strings * 100, 2);
}
}
}
array_splice($form['languages']['#header'], -1, 0, t('Interface translation'));
foreach ($languages as $langcode => $language) {
$stats[$langcode] += array(
'translated' => 0,
'ratio' => 0,
);
if (!$language->locked && ($langcode != 'en' || locale_translate_english())) {
$form['languages'][$langcode]['locale_statistics'] = array(
'#markup' => l(t('@translated/@total (@ratio%)', array(
'@translated' => $stats[$langcode]['translated'],
'@total' => $total_strings,
'@ratio' => $stats[$langcode]['ratio'],
)), 'admin/config/regional/translate/translate', array(
'query' => array(
'langcode' => $langcode,
),
)),
);
}
else {
$form['languages'][$langcode]['locale_statistics'] = array(
'#markup' => t('not applicable'),
);
}
}
}