From 5ecd127960654865716742282e1c5db66ca398af Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 23 Feb 2013 11:29:13 -0500 Subject: Fixes #4971 serving languages from ajax page handler rather than simplecache (which cannot handle languages) --- js/lib/languages.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'js/lib/languages.js') diff --git a/js/lib/languages.js b/js/lib/languages.js index 99a1ba0ee..44ea56d2b 100644 --- a/js/lib/languages.js +++ b/js/lib/languages.js @@ -28,13 +28,8 @@ elgg.reload_all_translations = function(language) { var lang = language || elgg.get_language(); var url, options; - if (elgg.config.simplecache_enabled) { - url = 'cache/js/default/languages/' + lang + '.' + elgg.config.lastcache + '.js'; - options = {}; - } else { - url = 'ajax/view/js/languages'; - options = {data: {language: lang}}; - } + url = 'ajax/view/js/languages'; + options = {data: {language: lang}}; options['success'] = function(json) { elgg.add_translation(lang, json); -- cgit v1.2.3 From 31f5e27f60f3d9e5fcb3b6b9ab01b9d64a244b87 Mon Sep 17 00:00:00 2001 From: Steve Clay Date: Sun, 31 Mar 2013 18:18:33 -0400 Subject: Fixes #3754: Language JS views send cache headers and support conditional get --- js/lib/languages.js | 3 +++ views/default/js/languages.php | 24 +++++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'js/lib/languages.js') diff --git a/js/lib/languages.js b/js/lib/languages.js index 44ea56d2b..d218cbc4f 100644 --- a/js/lib/languages.js +++ b/js/lib/languages.js @@ -30,6 +30,9 @@ elgg.reload_all_translations = function(language) { var url, options; url = 'ajax/view/js/languages'; options = {data: {language: lang}}; + if (elgg.config.simplecache_enabled) { + options.data.lc = elgg.config.lastcache; + } options['success'] = function(json) { elgg.add_translation(lang, json); diff --git a/views/default/js/languages.php b/views/default/js/languages.php index c51d7bcb2..fcf903d4b 100644 --- a/views/default/js/languages.php +++ b/views/default/js/languages.php @@ -1,15 +1,33 @@ translations['en']; +// @todo add server-side caching +if ($lastcache) { + // we're relying on lastcache changes to predict language changes + $etag = '"' . md5("$language|$lastcache") . '"'; + + header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true); + header("Pragma: public", true); + header("Cache-Control: public", true); + header("ETag: $etag"); + + if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) === $etag) { + header("HTTP/1.1 304 Not Modified"); + exit; + } +} + +$all_translations = elgg_get_config('translations'); +$translations = $all_translations['en']; if ($language != 'en') { - $translations = array_merge($translations, $CONFIG->translations[$language]); + $translations = array_merge($translations, $all_translations[$language]); } echo json_encode($translations); \ No newline at end of file -- cgit v1.2.3