summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-04 18:15:37 +0400
committerAndrew Dolgov <[email protected]>2013-04-04 18:15:37 +0400
commit29c8fa080e28f6c1c43343d68c36de96f7f9f086 (patch)
tree03299e663dfd87b5df4447efd4c2123af4574bfe
parentaadd636a01e039802db63eb3c7ccbb10eb535e1b (diff)
add language dropdown to prefs
-rw-r--r--classes/pref/prefs.php47
1 files changed, 43 insertions, 4 deletions
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index b491a930e..730d556a5 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -99,6 +99,8 @@ class Pref_Prefs extends Handler_Protected {
if (!isset($_POST[$pref])) $_POST[$pref] = 'false';
}
+ $need_reload = false;
+
foreach (array_keys($_POST) as $pref_name) {
$pref_name = db_escape_string($this->link, $pref_name);
@@ -113,11 +115,25 @@ class Pref_Prefs extends Handler_Protected {
}
}
- set_pref($this->link, $pref_name, $value);
+ if ($pref_name == "language") {
+ if ($_SESSION["language"] != $value) {
+ setcookie("ttrss_lang", $value,
+ time() + SESSION_COOKIE_LIFETIME);
+ $_SESSION["language"] = $value;
+
+ $need_reload = true;
+ }
+ } else {
+ set_pref($this->link, $pref_name, $value);
+ }
}
- print __("The configuration was saved.");
+ if ($need_reload) {
+ print "PREFS_NEED_RELOAD";
+ } else {
+ print __("The configuration was saved.");
+ }
}
function getHelp() {
@@ -438,8 +454,15 @@ class Pref_Prefs extends Handler_Protected {
parameters: dojo.objectToQuery(this.getValues()),
onComplete: function(transport) {
var msg = transport.responseText;
- notify_info(msg);
- if (quit) gotoMain();
+ if (quit) {
+ gotoMain();
+ } else {
+ if (msg == 'PREFS_NEED_RELOAD') {
+ window.location.reload();
+ } else {
+ notify_info(msg);
+ }
+ }
} });
}
</script>";
@@ -520,6 +543,22 @@ class Pref_Prefs extends Handler_Protected {
print "<tr><td colspan=\"3\"><h3>".$section_name."</h3></td></tr>";
$lnum = 0;
+
+ if ($active_section == 2) {
+ print "<tr>";
+
+ print "<td width=\"40%\" class=\"prefName\">";
+ print "<label>";
+ print __("Language:");
+ print "</label>";
+
+ print "<td>";
+ print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(),
+ "style='width : 220px; margin : 0px' dojoType='dijit.form.Select'");
+ print "</td>";
+ print "</tr>";
+ }
+
}
print "<tr>";