diff options
author | Arun Persaud <arun@nubati.net> | 2012-12-31 15:11:45 +0000 |
---|---|---|
committer | Arun Persaud <arun@nubati.net> | 2012-12-31 15:11:45 +0000 |
commit | aeb9ef98850e762291bc6a1d39b31d1ac4db4817 (patch) | |
tree | 263ce358d5299b3b1214279b58b33ba9bf73f4ca /include | |
parent | 059f17ad6897e250b2bdfdc9837a39af62859d7e (diff) | |
download | e-DoKo-aeb9ef98850e762291bc6a1d39b31d1ac4db4817.tar.gz e-DoKo-aeb9ef98850e762291bc6a1d39b31d1ac4db4817.tar.bz2 e-DoKo-aeb9ef98850e762291bc6a1d39b31d1ac4db4817.zip |
improved language detection using browser information; set the language directly in more places
previously one had to reload to get the language correct, now it should be correct right away.
We also read out the browser request for a language now.
Diffstat (limited to 'include')
-rw-r--r-- | include/functions.php | 28 | ||||
-rw-r--r-- | include/game.php | 1 | ||||
-rw-r--r-- | include/preferences.php | 1 | ||||
-rw-r--r-- | include/stats.php | 1 | ||||
-rw-r--r-- | include/user.php | 1 |
5 files changed, 32 insertions, 0 deletions
diff --git a/include/functions.php b/include/functions.php index cb78457..1f8f2cc 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1699,4 +1699,32 @@ function verify_password($email, $password) return 3; } +/* language functions */ +function detectlanguage() +{ + /* read out browser's prefered language, taken from php-manual*/ + $langcode = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']); + $langcode = explode(",", $langcode['0']); + return $langcode['0']; +} + +function set_language($language) +{ + switch($language) + { + case 'de': + putenv("LC_ALL=de_DE"); + setlocale(LC_ALL, "de_DE"); + // Specify location of translation tables + bindtextdomain("edoko", "./locale"); + // Choose domain + textdomain("edoko"); + break; + default: + /* do nothing */ + } + + return; +} + ?> diff --git a/include/game.php b/include/game.php index ae7d6f7..d116049 100644 --- a/include/game.php +++ b/include/game.php @@ -59,6 +59,7 @@ $playid = DB_get_current_playid($gameid); /* might be -1 at beginning of the g $PREF = DB_get_PREF(isset($_SESSION['id'])?$_SESSION['id']:$myid); /* set language chosen in preferences, will become active on the next reload (see index.php)*/ $_SESSION['language'] = $PREF['language']; +set_language($PREF['language']); /* get rule set for this game */ diff --git a/include/preferences.php b/include/preferences.php index a20913a..3517a42 100644 --- a/include/preferences.php +++ b/include/preferences.php @@ -51,6 +51,7 @@ display_user_menu($myid); $PREF = DB_get_PREF($myid); /* set language chosen in preferences, will become active on the next reload (see index.php)*/ $_SESSION['language'] = $PREF['language']; +set_language($PREF['language']); $timezone = DB_get_user_timezone($myid); DB_update_user_timestamp($myid); diff --git a/include/stats.php b/include/stats.php index f0d436b..bb6d693 100644 --- a/include/stats.php +++ b/include/stats.php @@ -37,6 +37,7 @@ if(!$myid) $PREF = DB_get_PREF($myid); /* set language chosen in preferences, will become active on the next reload (see index.php)*/ $_SESSION['language'] = $PREF['language']; +set_language($PREF['language']); DB_update_user_timestamp($myid); diff --git a/include/user.php b/include/user.php index 607e89d..551e7d5 100644 --- a/include/user.php +++ b/include/user.php @@ -120,6 +120,7 @@ else $PREF = DB_get_PREF($myid); /* set language chosen in preferences, will become active on the next reload (see index.php)*/ $_SESSION['language'] = $PREF['language']; + set_language($PREF['language']); DB_update_user_timestamp($myid); |