You've already forked postfixadmin
mirror of
https://github.com/postfixadmin/postfixadmin.git
synced 2025-08-09 05:02:44 +03:00
Summary: Added language selector to login form
functions.inc.php: - function check_language - new optional parameter $use_post (needed by login.php) - check for language cookie - check for $_POST['lang'] - removed substr() call because it made pt-br translation unuseable - new function language_selector - returns a HTML dropdown language selector - new function safecookie - similar to safeget, but for cookies templates/login.php, templates/users_login.php: - display language selector dropdown login.php, users/login.php: - check for selected language - set cookie if user selected non-default language languages/language.php: (NEW FILE) - list of supported languages - language names taken from phpMyAdmin login form common.php: - include languages/language.php git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@280 a1433add-5e2c-0410-b055-b7f2511e0802
This commit is contained in:
@@ -142,19 +142,29 @@ function _flash_string($type, $string) {
|
||||
// check_language
|
||||
// Action: checks what language the browser uses
|
||||
// Call: check_language
|
||||
// Parameter: $use_post - set to 1 if $_POST should NOT be read
|
||||
//
|
||||
function check_language ()
|
||||
function check_language ($use_post = 1)
|
||||
{
|
||||
global $CONF;
|
||||
$lang = $CONF['default_language'];
|
||||
$supported_languages = array ('bg', 'ca', 'cn', 'cs', 'da', 'de', 'en', 'es', 'et', 'eu', 'fi', 'fo', 'fr', 'hu', 'is', 'it', 'mk', 'nl', 'nn', 'pl', 'pt-br', 'ru', 'sl', 'sv', 'tr', 'tw');
|
||||
# TODO: use global $supported_languages (from languages/languages.php) instead
|
||||
|
||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
|
||||
{
|
||||
$lang_array = preg_split ('/(\s*,\s*)/', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
||||
if (safecookie('lang')) {
|
||||
array_unshift($lang_array, safecookie('lang')); # prefer language from cookie
|
||||
}
|
||||
if ( $use_post && safepost('lang')) {
|
||||
array_unshift($lang_array, safepost('lang')); # but prefer $_POST['lang'] even more
|
||||
}
|
||||
|
||||
for($i = 0; $i < count($lang_array); $i++)
|
||||
{
|
||||
$lang_next = $lang_array[$i];
|
||||
$lang_next = strtolower(substr(trim($lang_next), 0, 2));
|
||||
$lang_next = strtolower(trim($lang_next));
|
||||
if(in_array($lang_next, $supported_languages))
|
||||
{
|
||||
$lang = $lang_next;
|
||||
@@ -165,7 +175,30 @@ function check_language ()
|
||||
return $lang;
|
||||
}
|
||||
|
||||
//
|
||||
// language_selector
|
||||
// Action: returns a language selector dropdown with the browser (or cookie) language preselected
|
||||
// Call: language_selector()
|
||||
//
|
||||
function language_selector()
|
||||
{
|
||||
global $supported_languages; # from languages/languages.php
|
||||
|
||||
$current_lang = check_language();
|
||||
|
||||
$selector = '<select name="lang" xml:lang="en" dir="ltr">';
|
||||
|
||||
foreach($supported_languages as $lang => $lang_name) {
|
||||
if ($lang == $current_lang) {
|
||||
$selected = ' selected="selected"';
|
||||
} else {
|
||||
$selected = '';
|
||||
}
|
||||
$selector .= "<option value='$lang'$selected>$lang_name</option>";
|
||||
}
|
||||
$selector .= "</select>";
|
||||
return $selector;
|
||||
}
|
||||
|
||||
//
|
||||
// check_string
|
||||
@@ -374,6 +407,19 @@ function safeserver ($param, $default="") {
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* safecookie
|
||||
* @see safeget()
|
||||
* @param String $param
|
||||
* @param String $default (optional)
|
||||
* @return String value from $_COOKIE[$param] or $default
|
||||
*/
|
||||
function safecookie ($param, $default="") {
|
||||
$retval=$default;
|
||||
if (isset($_COOKIE[$param])) $retval=$_COOKIE[$param];
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// get_domain_properties
|
||||
|
Reference in New Issue
Block a user