From bdf1fed4626a53256eb72460d482faf474a9d1bd Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 30 Jul 2014 14:22:36 +0100 Subject: [PATCH] jquery translations work --- .../infrastructure/ExpressLocals.coffee | 3 +++ .../app/coffee/infrastructure/Server.coffee | 4 ++++ services/web/app/views/layout.jade | 7 +++++++ services/web/app/views/project/list.jade | 14 +++++++++++++ .../web/app/views/project/list/side-bar.jade | 5 +++-- services/web/public/coffee/libs.coffee | 4 ++++ .../public/coffee/main/project-list.coffee | 4 +--- .../coffee/utils/i18nextProvider.coffee | 20 +++++++++++++++++++ 8 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 services/web/public/coffee/utils/i18nextProvider.coffee diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index 34035e66fe..0dbacd28ca 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -50,6 +50,9 @@ module.exports = (app)-> next() app.use (req, res, next)-> + console.log req.i18n + console.log req.i18n.t("profile_complete_percentage", {percent:88}) + console.log req.i18n.translate("profile_complete_percentage", {percent:87}) res.locals.translate = req.i18n.translate next() diff --git a/services/web/app/coffee/infrastructure/Server.coffee b/services/web/app/coffee/infrastructure/Server.coffee index 39bf636e91..27ec298946 100644 --- a/services/web/app/coffee/infrastructure/Server.coffee +++ b/services/web/app/coffee/infrastructure/Server.coffee @@ -40,6 +40,8 @@ ignoreCsrfRoutes = [] app.ignoreCsrf = (method, route) -> ignoreCsrfRoutes.push new express.Route(method, route) + + app.configure () -> if Settings.behindProxy app.enable('trust proxy') @@ -71,6 +73,8 @@ app.configure () -> app.use ReferalConnect.use app.use express.methodOverride() + app.use translations.serverStaticFiles + expressLocals(app) diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 0f38f197ca..c1ed572b3a 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -3,6 +3,8 @@ html(itemscope, itemtype='http://schema.org/Product') block vars head + + - if (typeof(priority_title) !== "undefined" && priority_title) title= title + ' - Online LaTeX Editor ShareLaTeX' - else @@ -34,6 +36,11 @@ html(itemscope, itemtype='http://schema.org/Product') block scripts script(src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js") script(src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.14/angular.min.js") + script(src="/js/libs/i18next.js") + //- script(src="/js/libs/ng-i18next/provider.js") + //- script(src="/js/libs/ng-i18next/filter/filter.js") + //- script(src="/js/libs/ng-i18next/directive/directive.js") + script. window.sharelatex = { diff --git a/services/web/app/views/project/list.jade b/services/web/app/views/project/list.jade index 06a0024c98..7ff274fb06 100644 --- a/services/web/app/views/project/list.jade +++ b/services/web/app/views/project/list.jade @@ -3,6 +3,9 @@ extends ../layout block content //- We need to do .replace(/\//g, '\\/') do that '' -> '<\/script>' //- and doesn't prematurely end the script tag. + + + script(type="text/javascript"). window.data = { projects: !{JSON.stringify(projects).replace(/\//g, '\\/')}, @@ -15,6 +18,17 @@ block content } }; + + + $.i18n.init({ + lng: 'en-gb', + fallbackLng: 'en', + resGetPath: 'locales/__lng__.json' + }, function() { + console.log($.t('new_project')); // -> i18n (from en-US resourcefile) + }); + + .content.content-alt(ng-controller="ProjectPageController") .container .row diff --git a/services/web/app/views/project/list/side-bar.jade b/services/web/app/views/project/list/side-bar.jade index 862da5e471..0d23c900d5 100644 --- a/services/web/app/views/project/list/side-bar.jade +++ b/services/web/app/views/project/list/side-bar.jade @@ -2,7 +2,8 @@ a.btn.btn-primary.dropdown-toggle( href="#", data-toggle="dropdown" - ) #{translate("new_project")} + ) + p(ng-i18next="new_project") ul.dropdown-menu(role="menu") li a( @@ -85,7 +86,7 @@ .progress-bar.progress-bar-info(ng-style="{'width' : (percentComplete+'%')}") p.small - | #{translate("profile_complete_percentage", {percent:FIX ME})} + | #{translate("profile_complete_percentage", {percent:"FIX ME"})} button#completeUserProfileInformation.btn.btn-info( ng-hide="formVisable", diff --git a/services/web/public/coffee/libs.coffee b/services/web/public/coffee/libs.coffee index b25e273586..3a21822e03 100644 --- a/services/web/public/coffee/libs.coffee +++ b/services/web/public/coffee/libs.coffee @@ -8,4 +8,8 @@ define [ "libs/jquery.storage" "libs/fineuploader" "libs/angular-sanitize-1.2.17" + "libs/i18next" + "libs/ng-i18next/provider" + "libs/ng-i18next/directive/directive" + "libs/ng-i18next/filter/filter" ], () -> diff --git a/services/web/public/coffee/main/project-list.coffee b/services/web/public/coffee/main/project-list.coffee index f18b9eda6d..aadd94c568 100644 --- a/services/web/public/coffee/main/project-list.coffee +++ b/services/web/public/coffee/main/project-list.coffee @@ -1,7 +1,7 @@ define [ "base" ], (App) -> - App.factory "queuedHttp", ["$http", "$q", ($http, $q) -> + App.factory "queuedHttp", ($http, $q) -> pendingRequests = [] inflight = false @@ -48,8 +48,6 @@ define [ return queuedHttp - ] - App.controller "ProjectPageController", ($scope, $modal, $q, $window, queuedHttp, event_tracking, $timeout) -> $scope.projects = window.data.projects $scope.tags = window.data.tags diff --git a/services/web/public/coffee/utils/i18nextProvider.coffee b/services/web/public/coffee/utils/i18nextProvider.coffee new file mode 100644 index 0000000000..f536f3bd05 --- /dev/null +++ b/services/web/public/coffee/utils/i18nextProvider.coffee @@ -0,0 +1,20 @@ +define [ + +], () -> + + + console.log "hello", angular.module('jm.i18next') + angular.module('jm.i18next').config ($i18nextProvider)-> + console.log "hello 222" + $i18nextProvider.options = { + lng: 'en-GB', + useCookie: false, + useLocalStorage: false, + fallbackLng: 'dev', + resGetPath: '../locales/__lng__/__ns__.json', + defaultLoadingValue: '' # ng-i18next option, *NOT* directly supported by i18next + } + console.log "SUP" + console.log $i18nextProvider + +