From 2937a633de8f54d0f5f20f8ced6e8914da40d312 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Mon, 16 Sep 2013 17:39:32 +0200 Subject: also translate title, fix #350 --- CHANGELOG | 1 + js/app/controllers/feedcontroller.coffee | 4 +-- js/app/directives/translate.coffee | 32 +++++++++++++++++++ js/public/app.js | 44 ++++++++++++++++++++++++-- js/tests/controllers/feedcontrollerSpec.coffee | 4 +++ templates/main.php | 2 +- 6 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 js/app/directives/translate.coffee diff --git a/CHANGELOG b/CHANGELOG index 963ddeabb..ba4f9df01 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ owncloud-news (1.602) * Added ThemeRepublic.net Enhancer * Remove unsigned from articles_per_update column to not fail with a weird error * Manually convert ' to ' in title and author fields of articles because its not build into PHP +* Fix localisation of app name in tab title owncloud-news (1.601) * Remove Google Reader import diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee index 415072579..07fb22238 100644 --- a/js/app/controllers/feedcontroller.coffee +++ b/js/app/controllers/feedcontroller.coffee @@ -56,9 +56,9 @@ ActiveFeed, FeedType, $window) -> # and it has nothing to do with the body structure if count > 0 titleCount = @_unreadCountFormatter(count) - title = 'News (' + titleCount + ') | ownCloud' + title = @_$scope.translations.appName + ' (' + titleCount + ') | ownCloud' else - title = 'News | ownCloud' + title = @_$scope.translations.appName + ' | ownCloud' # only update title when it changed to prevent highlighting the # tab diff --git a/js/app/directives/translate.coffee b/js/app/directives/translate.coffee new file mode 100644 index 000000000..c3e2dfd47 --- /dev/null +++ b/js/app/directives/translate.coffee @@ -0,0 +1,32 @@ +### + +ownCloud - News + +@author Bernhard Posselt +@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +License as published by the Free Software Foundation; either +version 3 of the License, or any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU AFFERO GENERAL PUBLIC LICENSE for more details. + +You should have received a copy of the GNU Affero General Public +License along with this library. If not, see . + +### + + +# Binds translated values to scope and hides the element +angular.module('News').directive 'newsTranslate', -> + directive = + restrict: 'E' + link: (scope, element, attributes) -> + $element = $(element) + scope.translations or= scope.translations + scope.translations[attributes.key] = $element.text() + $element.remove() diff --git a/js/public/app.js b/js/public/app.js index eab057778..751834832 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -502,6 +502,46 @@ License along with this library. If not, see . */ +(function() { + angular.module('News').directive('newsTranslate', function() { + var directive; + return directive = { + restrict: 'E', + link: function(scope, element, attributes) { + var $element; + $element = $(element); + scope.translations || (scope.translations = scope.translations); + scope.translations[attributes.key] = $element.text(); + return $element.remove(); + } + }; + }); + +}).call(this); + +// Generated by CoffeeScript 1.6.3 +/* + +ownCloud - News + +@author Bernhard Posselt +@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +License as published by the Free Software Foundation; either +version 3 of the License, or any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU AFFERO GENERAL PUBLIC LICENSE for more details. + +You should have received a copy of the GNU Affero General Public +License along with this library. If not, see . +*/ + + (function() { angular.module('News').directive('undoNotification', [ '$rootScope', '$timeout', 'Config', function($rootScope, $timeout, Config) { @@ -646,9 +686,9 @@ License along with this library. If not, see . count = _this._subscriptionsBusinessLayer.getUnreadCount(0); if (count > 0) { titleCount = _this._unreadCountFormatter(count); - title = 'News (' + titleCount + ') | ownCloud'; + title = _this._$scope.translations.appName + ' (' + titleCount + ') | ownCloud'; } else { - title = 'News | ownCloud'; + title = _this._$scope.translations.appName + ' | ownCloud'; } if (_this._$window.document.title !== title) { _this._$window.document.title = title; diff --git a/js/tests/controllers/feedcontrollerSpec.coffee b/js/tests/controllers/feedcontrollerSpec.coffee index 2d51000ea..13ce1bb44 100644 --- a/js/tests/controllers/feedcontrollerSpec.coffee +++ b/js/tests/controllers/feedcontrollerSpec.coffee @@ -79,6 +79,8 @@ describe 'FeedController', -> it 'should set the window title to the total unread count', => + @scope.translations = + appName: 'News' expect(@$window.document.title).toBe('') @scope.getTotalUnreadCount() @@ -92,6 +94,8 @@ describe 'FeedController', -> it 'should show 99+ if in window title when more than 99 unread count', => + @scope.translations = + appName: 'News' item = {id: 3, unreadCount: 1, faviconLink: 'test', url: 'hi'} item1 = {id: 5, unreadCount: 999, faviconLink: 'test', url: 'his'} @FeedModel.add(item) diff --git a/templates/main.php b/templates/main.php index 80cf5eb86..90d3896d1 100644 --- a/templates/main.php +++ b/templates/main.php @@ -34,8 +34,8 @@ if($version[0] > 5 || ($version[0] >= 5 && $version[1] >= 80)) { t('Undo deletion of %s', '{{ getCaption() }}')); ?> -
+ t('News')); ?>
    inc('part.addnew')) ?> -- cgit v1.2.3