diff options
author | Andrew Dolgov <[email protected]> | 2008-12-16 08:13:09 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2008-12-16 08:13:09 +0100 |
commit | 7c33dbd479df8b95c0ec05dcacad0666d9550194 (patch) | |
tree | 1cf76c816f49dba8cf555c2d217f9480db23f55b | |
parent | ed0551c27442c87442c4e6ada790eabc8fc34f77 (diff) |
translations support for mobile version
-rw-r--r-- | functions.php | 14 | ||||
-rw-r--r-- | mobile/login_form.php | 48 | ||||
-rw-r--r-- | mobile/mobile.js | 48 | ||||
-rw-r--r-- | mobile/tt-rss.php | 2 |
4 files changed, 109 insertions, 3 deletions
diff --git a/functions.php b/functions.php index bb8586719..38b11c665 100644 --- a/functions.php +++ b/functions.php @@ -53,6 +53,12 @@ $lang = $_COOKIE["ttrss_lang"]; } + /* In login action of mobile version */ + if ($_POST["language"] && defined('MOBILE_VERSION')) { + $lang = $_POST["language"]; + $_COOKIE["ttrss_lang"] = $lang; + } + if ($lang) { if (defined('LC_MESSAGES')) { _setlocale(LC_MESSAGES, $lang); @@ -61,7 +67,13 @@ } else { die("can't setlocale(): please set ENABLE_TRANSLATIONS to false in config.php"); } - _bindtextdomain("messages", "locale"); + + if (defined('MOBILE_VERSION')) { + _bindtextdomain("messages", "../locale"); + } else { + _bindtextdomain("messages", "locale"); + } + _textdomain("messages"); _bind_textdomain_codeset("messages", "UTF-8"); } diff --git a/mobile/login_form.php b/mobile/login_form.php index 567d1aa97..dd5b4acdc 100644 --- a/mobile/login_form.php +++ b/mobile/login_form.php @@ -3,14 +3,50 @@ <title>Tiny Tiny RSS : Login</title> <link rel="stylesheet" type="text/css" href="mobile.css"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <script type="text/javascript" charset="utf-8" src="mobile.js"></script> </head> +<script type="text/javascript"> +function init() { + + if (arguments.callee.done) return; + arguments.callee.done = true; + + var login = document.forms["loginForm"].login; + var click = document.forms["loginForm"].click; + + login.focus(); + click.disabled = false; + +} +function languageChange(elem) { + try { + document.forms['loginForm']['click'].disabled = true; + + var lang = elem[elem.selectedIndex].value; + setCookie("ttrss_lang", lang, <?php print SESSION_COOKIE_LIFETIME ?>); + window.location.reload(); + } catch (e) { + exception_error("languageChange", e); + } +} + +</script> + +<script type="text/javascript"> +if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", init, null); +} +window.onload = init; +</script> + + <body> <div id="content"> <div id="heading">Tiny Tiny RSS</div> - <form action="tt-rss.php" method="POST"> + <form action="tt-rss.php" method="POST" name="loginForm"> <input type="hidden" name="rt" value="<?php echo $_GET['rt'] ?>"> <input type="hidden" name="login_action" value="do_login"> @@ -23,8 +59,16 @@ <tr><td align='right'><?php echo __("Login:") ?></td><td><input name="login"></td> <tr><td align='right'><?php echo __("Password:") ?></td><td><input type="password" name="password"></tr> + <tr><td align="right"><?php echo __("Language:") ?></td> + <td> + <?php + print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(), + "style='width : 100%' onchange='languageChange(this)'"); + + ?> + </td></tr> <tr><td colspan='2'> - <input type="submit" class="button" value="Login"> + <input type="submit" class="button" value="<?php echo __('Log in') ?>" name="click"> </td></tr> </table> </form> diff --git a/mobile/mobile.js b/mobile/mobile.js new file mode 100644 index 000000000..64d581410 --- /dev/null +++ b/mobile/mobile.js @@ -0,0 +1,48 @@ +function debug(msg) { + // no-op +} + +function setCookie(name, value, lifetime, path, domain, secure) { + + var d = false; + + if (lifetime) { + d = new Date(); + d.setTime(d.getTime() + (lifetime * 1000)); + } + + debug("setCookie: " + name + " => " + value + ": " + d); + + int_setCookie(name, value, d, path, domain, secure); + +} + +function int_setCookie(name, value, expires, path, domain, secure) { + document.cookie= name + "=" + escape(value) + + ((expires) ? "; expires=" + expires.toGMTString() : "") + + ((path) ? "; path=" + path : "") + + ((domain) ? "; domain=" + domain : "") + + ((secure) ? "; secure" : ""); +} + +function exception_error(location, e, silent) { + var msg; + + if (e.fileName) { + var base_fname = e.fileName.substring(e.fileName.lastIndexOf("/") + 1); + + msg = "Exception: " + e.name + ", " + e.message + + "\nFunction: " + location + "()" + + "\nLocation: " + base_fname + ":" + e.lineNumber; + + } else if (e.description) { + msg = "Exception: " + e.description + "\nFunction: " + location + "()"; + } else { + msg = "Exception: " + e + "\nFunction: " + location + "()"; + } + + if (!silent) { + alert(msg); + } +} + diff --git a/mobile/tt-rss.php b/mobile/tt-rss.php index a23bc8b6a..9521e66dc 100644 --- a/mobile/tt-rss.php +++ b/mobile/tt-rss.php @@ -1,6 +1,8 @@ <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); + define('MOBILE_VERSION', true); + require_once "../config.php"; require_once "functions.php"; require_once "../functions.php"; |