science-ation/config/languagepacks.php
2025-02-14 00:19:02 +00:00

121 lines
4.0 KiB
PHP

<?
/*
* This file is part of the 'Science Fair In A Box' project
* SFIAB Website: http://www.sfiab.ca
*
* Copyright (C) 2006 Sci-Tech Ontario Inc <info@scitechontario.org>
* Copyright (C) 2006 James Grant <james@lightbox.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation, version 2.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
?>
<?
require ('../common.inc.php');
require_once ('../user.inc.php');
user_auth_required('committee', 'config');
send_header('Language Packs',
array('Committee Main' => 'committee_main.php',
'Science-ation Configuration' => 'config/index.php'),
'language_pack_installer');
echo i18n("Checking for language packs will access a remote server, if you wish to continue click the 'Check for available language packs' link below");
echo '<br />';
echo '<br />';
echo '<a href="languagepacks.php?action=check">' . i18n('Check for available language packs') . '</a><br />';
function loadLanguagePacks()
{
$ret = array();
// // FIXME Replace!
// if($packs=file("http://www.sfiab.ca/languages/langpacklist.txt"))
if (false) {
$num = count($packs);
// format of each line is:
// lang:filename:lastupdate
if (count($packs)) {
foreach ($packs AS $p) {
list($langpack, $filename, $lastupdate) = explode("\t", trim($p));
$ret[$langpack] = array('lang' => $langpack, 'filename' => $filename, 'lastupdate' => $lastupdate);
}
}
} else {
echo error(i18n('There was an error connecting to the language pack server'));
}
return $ret;
}
if (get_value_from_array($_GET, 'action') == 'check') {
$packs = loadLanguagePacks();
$num = count($packs);
echo '<hr />';
echo i18n('Found %1 available language pack(s)', array($num));
// format of each line is:
// lang:filename:lastupdate
if (count($packs)) {
echo '<table class="summarytable">';
echo '<tr>';
echo '<th>' . i18n('Language') . '</th>';
echo '<th>' . i18n('Filename') . '</th>';
echo '<th>' . i18n('Last Update') . '</th>';
echo '<th>' . i18n('Install') . '</th>';
echo '</tr>';
foreach ($packs AS $p) {
echo "<tr><td align=\"center\">{$p['lang']}</td><td>{$p['filename']}</td><td>{$p['lastupdate']}</td>";
echo '<td align="center">';
echo "<a href=\"languagepacks.php?action=install&install={$p['lang']}\">" . i18n('Install') . '</a>';
echo '</td>';
echo '</tr>';
}
echo '</table>';
}
}
if (get_value_from_array($_GET, 'action') == 'install' && get_value_from_array($_GET, 'install')) {
$packs = loadLanguagePacks();
$loaded = 0;
if ($packs[$_GET['install']]) {
$lines = file("http://www.sfiab.ca/languages/?");
$totallines = count($lines);
$numtranslations = round($totallines / 2);
echo i18n('There are %1 translations in this language pack... processing...', array($numtranslations));
if (count($lines)) {
foreach ($lines AS $line) {
$line = trim($line);
if (substr($line, 0, 6) == 'UPDATE' || substr($line, 0, 6) == 'INSERT') {
$stmt = $pdo->prepare($line);
$stmt->execute([$packs[$_GET['install']]['filename']]);
$a = $pdo->rowwCount();
$loaded += $a;
} else
echo notice('Ignoring invalid language pack line: %1', array($l));
}
if ($loaded == 0)
echo notice(i18n('You already have all of the translations in this language pack'));
else
echo happy(i18n('Successfully loaded %1 new translations', array($loaded)));
} else {
echo error(i18n('Error downloading language pack'));
}
} else {
echo error(i18n('Invalid language pack to install'));
}
}
send_footer();
?>