aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorvdigital <vdigital@piwigo.org>2008-05-31 11:43:13 +0000
committervdigital <vdigital@piwigo.org>2008-05-31 11:43:13 +0000
commit6d8c172ee2e06b2f9e14f9189273403a990cdefa (patch)
tree44ceb3d753a5242fe58379ff020c49cd904c5640 /include
parent93a4c7a150346956c8a53a0255d1e4ed6c334260 (diff)
Feature 0000080: Browser language detection (Use first active browser language as language for guest, generic members, registering process). If the language is not available PHPWG_DEFAULT_LANGUAGE is used as previously.
git-svn-id: http://piwigo.org/svn/trunk@2371 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include')
-rw-r--r--include/config_default.inc.php4
-rw-r--r--include/functions_user.inc.php28
-rw-r--r--include/user.inc.php5
3 files changed, 35 insertions, 2 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php
index f5c9d64c8..e7a8c117d 100644
--- a/include/config_default.inc.php
+++ b/include/config_default.inc.php
@@ -473,6 +473,10 @@ $conf['guest_id'] = 2;
// default_user_id : id of user used for default value
$conf['default_user_id'] = $conf['guest_id'];
+// Registering process and guest/generic members get language from the browser
+// if language isn't available PHPWG_DEFAULT_LANGUAGE is used as previously
+$conf['browser_language'] = true;
+
// webmaster_id : webmaster'id.
$conf['webmaster_id'] = 1;
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index d2c9530e2..58b35e541 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -838,7 +838,32 @@ function get_default_template()
*/
function get_default_language()
{
- return get_default_user_value('language', PHPWG_DEFAULT_LANGUAGE);
+ global $conf;
+ if (isset($conf['browser_language']) and $conf['browser_language'])
+ {
+ return get_browser_language();
+ }
+ else
+ {
+ return get_default_user_value('language', PHPWG_DEFAULT_LANGUAGE);
+ }
+}
+
+/*
+ * Returns the browser language value
+ *
+ */
+function get_browser_language()
+{
+ $browser_language = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
+ foreach (get_languages() as $language_code => $language_name)
+ {
+ if (substr($language_code, 0, 2) == $browser_language)
+ {
+ return $language_code;
+ }
+ }
+ return PHPWG_DEFAULT_LANGUAGE;
}
/**
@@ -898,6 +923,7 @@ function create_user_infos($arg_id, $override_values = null)
{
$status = 'normal';
}
+ $default_user['language'] = get_default_language();
$insert = array_merge(
$default_user,
diff --git a/include/user.inc.php b/include/user.inc.php
index b267790f8..1cb9ce7c0 100644
--- a/include/user.inc.php
+++ b/include/user.inc.php
@@ -69,6 +69,9 @@ if ($conf['apache_authentication'] and isset($_SERVER['REMOTE_USER']))
$user = build_user( $user['id'],
( defined('IN_ADMIN') and IN_ADMIN ) ? false : true // use cache ?
);
-
+if (is_a_guest() or is_generic())
+{
+ $user['language'] = get_default_language();
+}
trigger_action('user_init', $user);
?>