]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3181 caching language js on server side with proper headers
authorcash <cash.costello@gmail.com>
Fri, 9 Dec 2011 03:12:32 +0000 (22:12 -0500)
committercash <cash.costello@gmail.com>
Fri, 9 Dec 2011 03:12:32 +0000 (22:12 -0500)
engine/lib/languages.php
js/lib/languages.js

index 7607ea3bffa6abeba162763b76058160dcbfecc3..0400843af351aad16e9bbdbc87c48803c7d481d7 100644 (file)
@@ -301,4 +301,15 @@ function get_missing_language_keys($language) {
        return false;
 }
 
+/**
+ * Initialize the language library
+ * @access private
+ */
+function elgg_languages_init() {
+       $lang = get_current_language();
+       elgg_register_simplecache_view("cache/js/languages/$lang");
+}
+
+elgg_register_event_handler('init', 'system', 'elgg_languages_init');
+
 register_translations(dirname(dirname(dirname(__FILE__))) . "/languages/");
index ae7ba63e20565b06e7a6537200f21443dcf60dad..bfa858364e7acc2148107e6b92644771e5b146e6 100644 (file)
@@ -26,16 +26,22 @@ elgg.add_translation = function(lang, translations) {
 elgg.reload_all_translations = function(language) {
        var lang = language || elgg.get_language();
 
-       elgg.getJSON('ajax/view/js/languages', {
-               data: {
-                       language: lang
-               },
-               success: function(json) {
-                       elgg.add_translation(lang, json);
-                       elgg.config.languageReady = true;
-                       elgg.initWhenReady();
-               }
-       });
+       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}};
+       }
+
+       options['success'] = function(json) {
+               elgg.add_translation(lang, json);
+               elgg.config.languageReady = true;
+               elgg.initWhenReady();
+       };
+
+       elgg.getJSON(url, options);
 };
 
 /**