From d10eeaf83ea305447a5cb06c3a60ece40d960b0e Mon Sep 17 00:00:00 2001 From: gustavf Date: Tue, 20 Jun 2000 08:22:08 +0000 Subject: [PATCH] Fixed up porblem with language selection. Now uses HTTP content negotiation if cookie is not set and sets charset correctly. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@548 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/login.php | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/login.php b/src/login.php index 8772933e..c053f480 100644 --- a/src/login.php +++ b/src/login.php @@ -14,6 +14,8 @@ include("../config/config.php"); if (!isset($strings_php)) include("../functions/strings.php"); + if (!isset($i18n_php)) + include("../functions/i18n.php"); // let's check to see if they compiled with gettext support if (!function_exists("_")) { @@ -22,12 +24,19 @@ } } else { // $squirrelmail_language is set by a cookie when the user selects - // language + // language and logs out + + // Use HTTP content language negotiation if cookie not set + if (!isset($squirrelmail_language) && isset($HTTP_ACCEPT_LANGUAGE)) { + $squirrelmail_language = substr($HTTP_ACCEPT_LANGUAGE, 0, 2); + } + if (isset($squirrelmail_language)) { - if ($squirrelmail_language != "en") { - putenv("LANG=".$squirrelmail_language); + if ($squirrelmail_language != "en" && $squirrelmail_language != "") { + putenv("LC_ALL=".$squirrelmail_language); bindtextdomain("squirrelmail", "../locale/"); textdomain("squirrelmail"); + header ("Content-Type: text/html; charset=".$languages[$squirrelmail_language]["CHARSET"]); } } } @@ -41,12 +50,16 @@ echo "
\n"; echo "
\n"; echo "
"; - echo _("SquirrelMail version $version
By the SquirrelMail Development Team"); + printf (_("SquirrelMail version %s"), $version); + echo "
\n"; + echo _("By the SquirrelMail Development Team"); echo "
\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; - echo "
$org_name Login
\n"; + echo "
"; + printf (_("%s Login"), $org_name); + echo "
\n"; echo "
\n"; -- 2.25.1