From dce48d58b64d56f272ea52c8a991fb627f60271d Mon Sep 17 00:00:00 2001 From: Umair Khan Date: Tue, 5 Jul 2016 16:05:51 +0500 Subject: [PATCH] Cache translations. Fixes: #1158 --- package.json | 3 ++- static/js/src/main.js | 11 ++++++++++- zerver/tests/tests.py | 1 + zerver/views/__init__.py | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 477d358cf0..a02d46cc8a 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "i18next": "3.0.0", "i18next-parser": "0.7.0", "i18next-xhr-backend": "0.5.4", - "i18next-browser-languagedetector": "0.3.0" + "i18next-browser-languagedetector": "0.3.0", + "i18next-localstorage-cache": "0.3.0" }, "scripts": {}, "repository": { diff --git a/static/js/src/main.js b/static/js/src/main.js index 74bb33cc2d..b0f08447ec 100644 --- a/static/js/src/main.js +++ b/static/js/src/main.js @@ -4,6 +4,8 @@ var i18n = window.i18n = require('i18next'); var XHR = require('i18next-xhr-backend'); var lngDetector = require('i18next-browser-languagedetector'); + var Cache = require('i18next-localstorage-cache'); + var backendOptions = { loadPath: '/static/locale/__lng__/translations.json' }; @@ -15,8 +17,14 @@ htmlTag: document.documentElement }; + var cacheOptions = { + enabled: true, + prefix: page_params.server_generation + ':' + }; + i18n.use(XHR) .use(lngDetector) + .use(Cache) .init({ nsSeparator: false, keySeparator: false, @@ -25,7 +33,8 @@ suffix: "__" }, backend: backendOptions, - detection: detectionOptions + detection: detectionOptions, + cache: cacheOptions }, function () { var i; initialized = true; diff --git a/zerver/tests/tests.py b/zerver/tests/tests.py index 72dd7eeba5..2dbc9e208f 100644 --- a/zerver/tests/tests.py +++ b/zerver/tests/tests.py @@ -1799,6 +1799,7 @@ class HomeTest(AuthedTestCase): "realm_restricted_to_domain", "referrals", "save_stacktraces", + "server_generation", "share_the_love", "show_digest_email", "sounds_enabled", diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py index 8cf2413385..10e1025f6c 100644 --- a/zerver/views/__init__.py +++ b/zerver/views/__init__.py @@ -931,6 +931,7 @@ def home(request): poll_timeout = settings.POLL_TIMEOUT, login_page = settings.HOME_NOT_LOGGED_IN, maxfilesize = settings.MAX_FILE_UPLOAD_SIZE, + server_generation = settings.SERVER_GENERATION, password_auth_enabled = password_auth_enabled(user_profile.realm), have_initial_messages = user_has_messages, subbed_info = register_ret['subscriptions'],