locale_translate_overview_screen
includes/locale.inc, строка 483
- Версии
- 6
locale_translate_overview_screen()
Overview screen for translations.
Связанные темы
Код
<?php
function locale_translate_overview_screen() {
$languages = language_list('language', TRUE);
$groups = module_invoke_all('locale', 'groups');
// Build headers with all groups in order.
$headers = array_merge(array(t('Language')), array_values($groups));
// Collect summaries of all source strings in all groups.
$sums = db_query("SELECT COUNT(*) AS strings, textgroup FROM {locales_source} GROUP BY textgroup");
$groupsums = array();
while ($group = db_fetch_object($sums)) {
$groupsums[$group->textgroup] = $group->strings;
}
// Set up overview table with default values, ensuring common order for values.
$rows = array();
foreach ($languages as $langcode => $language) {
$rows[$langcode] = array('name' => ($langcode == 'en' ? t('English (built-in)') : t($language->name)));
foreach ($groups as $group => $name) {
$rows[$langcode][$group] = ($langcode == 'en' ? t('n/a') : '0/'. (isset($groupsums[$group]) ? $groupsums[$group] : 0) .' (0%)');
}
}
// Languages with at least one record in the locale table.
$translations = db_query("SELECT COUNT(*) AS translation, t.language, s.textgroup FROM {locales_source} s INNER JOIN {locales_target} t ON s.lid = t.lid GROUP BY textgroup, language");
while ($data = db_fetch_object($translations)) {
$ratio = (!empty($groupsums[$data->textgroup]) && $data->translation > 0) ? round(($data->translation/$groupsums[$data->textgroup])*100., 2) : 0;
$rows[$data->language][$data->textgroup] = $data->translation .'/'. $groupsums[$data->textgroup] ." ($ratio%)";
}
return theme('table', $headers, $rows);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии