Refresh lang cookie

Language names

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@291 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana 2007-08-04 19:36:22 +00:00
parent bba76d8df6
commit 231187df0a

View file

@ -1,13 +1,13 @@
<?php <?php
static $translations = array( static $langs = array(
'en' => array(), 'en' => 'English',
'cs' => array(), // Jakub Vrána - http://php.vrana.cz 'cs' => 'Čeština', // Jakub Vrána - http://php.vrana.cz
'sk' => array(), // Ivan Suchy - http://www.ivansuchy.com 'sk' => 'Slovenčina', // Ivan Suchy - http://www.ivansuchy.com
); );
function lang($idf, $number = null) { function lang($idf, $number = null) {
global $LANG, $translations; global $LANG, $translations;
$translation = $translations[$LANG][$idf]; $translation = $translations[$idf];
if (is_array($translation) && $translation) { if (is_array($translation) && $translation) {
switch ($LANG) { switch ($LANG) {
case 'cs': $pos = ($number == 1 ? 0 : (!$number || $number >= 5 ? 2 : 1)); break; case 'cs': $pos = ($number == 1 ? 0 : (!$number || $number >= 5 ? 2 : 1)); break;
@ -22,24 +22,24 @@ function lang($idf, $number = null) {
} }
function switch_lang() { function switch_lang() {
global $translations; global $langs;
echo "<p>" . lang('Language') . ":"; echo "<p>" . lang('Language') . ":";
$base = remove_from_uri("lang"); $base = remove_from_uri("lang");
foreach ($translations as $lang => $val) { foreach ($langs as $lang => $val) {
echo ' <a href="' . htmlspecialchars($base . (strpos($base, "?") !== false ? "&" : "?")) . "lang=$lang\">$lang</a>"; echo ' <a href="' . htmlspecialchars($base . (strpos($base, "?") !== false ? "&" : "?")) . "lang=$lang\" title='$val'>$lang</a>";
} }
echo "</p>\n"; echo "</p>\n";
} }
if (isset($_GET["lang"])) { if (isset($_GET["lang"])) {
setcookie("lang", $_GET["lang"], strtotime("+1 month"), preg_replace('~\\?.*~', '', $_SERVER["REQUEST_URI"]));
$_COOKIE["lang"] = $_GET["lang"]; $_COOKIE["lang"] = $_GET["lang"];
$_SESSION["lang"] = $_GET["lang"]; $_SESSION["lang"] = $_GET["lang"];
} }
if (isset($translations[$_COOKIE["lang"]])) { if (isset($langs[$_COOKIE["lang"]])) {
setcookie("lang", $_GET["lang"], strtotime("+1 month"), preg_replace('~\\?.*~', '', $_SERVER["REQUEST_URI"]));
$LANG = $_COOKIE["lang"]; $LANG = $_COOKIE["lang"];
} elseif (isset($translations[$_SESSION["lang"]])) { } elseif (isset($langs[$_SESSION["lang"]])) {
$LANG = $_SESSION["lang"]; $LANG = $_SESSION["lang"];
} else { } else {
$accept_language = array(); $accept_language = array();
@ -50,12 +50,12 @@ if (isset($translations[$_COOKIE["lang"]])) {
arsort($accept_language); arsort($accept_language);
$LANG = "en"; $LANG = "en";
foreach ($accept_language as $lang => $q) { foreach ($accept_language as $lang => $q) {
if (isset($translations[$lang])) { if (isset($langs[$lang])) {
$LANG = $lang; $LANG = $lang;
break; break;
} }
$lang = preg_replace('~-.*~', '', $LANG); $lang = preg_replace('~-.*~', '', $LANG);
if (!isset($accept_language[$lang]) && isset($translations[$lang])) { if (!isset($accept_language[$lang]) && isset($langs[$lang])) {
$LANG = $lang; $LANG = $lang;
break; break;
} }