]> git.mxchange.org Git - friendica.git/commitdiff
change language dynamically - bound to F8 key
authorFriendika <info@friendika.com>
Thu, 31 Mar 2011 11:57:31 +0000 (04:57 -0700)
committerFriendika <info@friendika.com>
Thu, 31 Mar 2011 11:57:31 +0000 (04:57 -0700)
boot.php
include/main.js
include/nav.php
index.php
view/theme/duepuntozero/style.css
view/theme/loozah/style.css

index abbacdf4e7675fd3f9bb507344f651c9a4794032..8a2706252a6996062ff8e877d7f9b569c4247aaa 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -2669,3 +2669,23 @@ function extract_item_authors($arr,$uid) {
        }
        return array();         
 }}
+
+if(! function_exists('lang_selector')) {
+function lang_selector() {
+       global $lang;
+       $o .= '<div id="language-selector" style="display: none;" >';
+       $o .= '<form action="" method="post" ><select name="system_language" onchange="this.form.submit();" >';
+       $langs = glob('view/*/strings.php');
+       if(is_array($langs) && count($langs)) {
+               if(! in_array('view/en/strings.php',$langs))
+                       $langs[] = 'view/en/';
+               foreach($langs as $l) {
+                       $ll = substr($l,5);
+                       $ll = substr($ll,0,strrpos($ll,'/'));
+                       $selected = (($ll === $lang) ? ' selected="selected" ' : '');
+                       $o .= '<option value="' . $ll . '"' . $selected . '>' . $ll . '</option>';
+               }
+       }
+       $o .= '</select></form></div>';
+       return $o;
+}}
index 750cce74c0ed11a3fdf440071d8f0c01b2eeaaad..18e884b3171253aba9733f77b2b3403a28753afb 100644 (file)
@@ -26,6 +26,7 @@
        var pr = 0;
        var liking = 0;
        var in_progress = false;
+       var langSelect = false;
 
        $(document).ready(function() {
                $.ajaxSetup({cache: false});
                                        $('#pause').html('');
                                }
                        }
+                       // F8 - show/hide language selector
+                       if(event.keyCode == '119') {
+                               if(langSelect) {
+                                       langSelect = false;
+                                       $('#language-selector').hide();
+                               }
+                               else {
+                                       langSelect = true;
+                                       $('#language-selector').show();
+                               }
+                       }               
+
 // this is shift-home on FF, but $ on IE, disabling until I figure out why the diff.
 // update: incompatible usage of onKeyDown vs onKeyPress
 //                     if(event.keyCode == '36' && event.shiftKey == true) {
index db3b909af19da6b0f974b201ff59aed2c09d197e..b8b65f84d00b1f24e62e120545cd173bb6aff55d 100644 (file)
@@ -16,6 +16,7 @@ function nav(&$a) {
         */
 
        $a->page['nav'] .= '<div id="panel" style="display: none;"></div>' ;
+       $a->page['nav'] .= lang_selector();
 
        /**
         *
index ab722df2aa3533ff5a99058473213ee771a6281e..9412c1e3bdb29fe27306828ae89db7569682d01a 100644 (file)
--- a/index.php
+++ b/index.php
@@ -42,6 +42,11 @@ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
 } else {
        $lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
 }
+if(x($_POST,'system_language'))
+if(x($_SESSION,'language'))
+       $lang = $_SESSION['language'];
+
+
        
 load_translation_table($lang);
 
@@ -86,6 +91,19 @@ $a->init_pagehead();
 
 session_start();
 
+/**
+ * Language was set earlier, but we can over-ride it in the session.
+ * We have to do it here because the session was just now opened.
+ */
+
+if(x($_POST,'system_language'))
+       $_SESSION['language'] = $_POST['system_language'];
+if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
+       $lang = $_SESSION['language'];
+       load_translation_table($lang);
+}
+
+
 /**
  *
  * For Mozilla auth manager - still needs sorting, and this might conflict with LRDD header.
index 042cc380ff516cd28be0cf497634b2097b3da59b..0d59b65900745e51ffa0a5bd5281cdaf024c7c0f 100644 (file)
@@ -2183,3 +2183,9 @@ a.mail-list-link {
 .side-link {
        margin-bottom: 15px;
 }
+
+#language-selector {
+       position: absolute;
+       top: 0;
+       left: 0;
+)
index a618381575529145d9e8d646204743ba03485034..5662207115f24bab93953e9bb1e29049e153515c 100644 (file)
@@ -2205,3 +2205,9 @@ a.mail-list-link {
 .side-link {
        margin-bottom: 15px;
 }
+
+#language-selector {
+       position: absolute;
+       top: 0;
+       left: 0;
+)