From c5ccf4333b4b50baa97b1d2c29091951edf11c4c Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 5 Jul 2014 16:58:57 -0400 Subject: [PATCH] translate helpers --- public/src/forum/categoryTools.js | 15 +++------------ public/src/forum/topic/events.js | 4 +--- public/src/forum/topic/fork.js | 4 +--- public/src/forum/topic/move.js | 4 +--- public/src/forum/topic/postTools.js | 7 ++----- public/src/forum/topic/threadTools.js | 8 ++------ public/src/modules/chat.js | 5 +---- public/src/modules/composer.js | 4 +--- public/src/modules/navigator.js | 4 +--- public/src/modules/notifications.js | 5 +---- public/src/overrides.js | 21 +++++++++++++++++++++ 11 files changed, 35 insertions(+), 46 deletions(-) diff --git a/public/src/forum/categoryTools.js b/public/src/forum/categoryTools.js index dc66fe02f6..f40fb26b2f 100644 --- a/public/src/forum/categoryTools.js +++ b/public/src/forum/categoryTools.js @@ -129,18 +129,9 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect'], function(move var isAnyPinned = isAny(isTopicPinned, tids); var isAnyLocked = isAny(isTopicLocked, tids); - translator.translate(' [[topic:thread_tools.' + (isAnyDeleted ? 'restore' : 'delete') + ']]', function(translated) { - $('.delete_thread span').html(translated); - }); - - translator.translate(' [[topic:thread_tools.' + (isAnyPinned ? 'unpin' : 'pin') + ']]', function(translated) { - $('.pin_thread').html(translated); - }); - - translator.translate(' [[topic:thread_tools.' + (isAnyLocked ? 'un': '') + 'lock]]', function(translated) { - $('.lock_thread').html(translated); - }); - + $('.delete_thread span').translateHtml(' [[topic:thread_tools.' + (isAnyDeleted ? 'restore' : 'delete') + ']]'); + $('.pin_thread').translateHtml(' [[topic:thread_tools.' + (isAnyPinned ? 'unpin' : 'pin') + ']]'); + $('.lock_thread').translateHtml(' [[topic:thread_tools.' + (isAnyLocked ? 'un': '') + 'lock]]'); $('.purge_thread').toggleClass('none', !areAllDeleted); } diff --git a/public/src/forum/topic/events.js b/public/src/forum/topic/events.js index 7241318380..e1d7becc8c 100644 --- a/public/src/forum/topic/events.js +++ b/public/src/forum/topic/events.js @@ -134,9 +134,7 @@ define('forum/topic/events', ['forum/topic/browsing', 'forum/topic/postTools', ' if (!app.isAdmin && parseInt(data.uid, 10) !== parseInt(app.uid, 10)) { if (isDeleted) { - translator.translate('[[topic:post_is_deleted]]', function(translated) { - postEl.find('.post-content').html(translated); - }); + postEl.find('.post-content').translateHtml('[[topic:post_is_deleted]]'); } else { postEl.find('.post-content').html(data.content); } diff --git a/public/src/forum/topic/fork.js b/public/src/forum/topic/fork.js index dde247baa7..38052fa35b 100644 --- a/public/src/forum/topic/fork.js +++ b/public/src/forum/topic/fork.js @@ -90,9 +90,7 @@ define('forum/topic/fork', function() { } function showNoPostsSelected() { - translator.translate('[[topic:fork_no_pids]]', function(translated) { - forkModal.find('#fork-pids').html(translated); - }); + forkModal.find('#fork-pids').translateHtml('[[topic:fork_no_pids]]'); } function checkForkButtonEnable() { diff --git a/public/src/forum/topic/move.js b/public/src/forum/topic/move.js index 1027f44ff1..c94dfb40f2 100644 --- a/public/src/forum/topic/move.js +++ b/public/src/forum/topic/move.js @@ -21,9 +21,7 @@ define('forum/topic/move', function() { $('#move-confirm').hide(); if (Move.moveAll || (tids && tids.length > 1)) { - translator.translate('[[topic:move_topics]]', function(translated) { - modal.find('.modal-header h3').text(translated); - }); + modal.find('.modal-header h3').translateText('[[topic:move_topics]]'); } modal.modal('show'); diff --git a/public/src/forum/topic/postTools.js b/public/src/forum/topic/postTools.js index cdb44dc5e4..f27a3ef320 100644 --- a/public/src/forum/topic/postTools.js +++ b/public/src/forum/topic/postTools.js @@ -22,11 +22,8 @@ define('forum/topic/postTools', ['composer', 'share', 'navigator'], function(com postEl.find('.quote, .favourite, .post_reply, .chat').toggleClass('none', isDeleted); postEl.find('.purge').toggleClass('none', !isDeleted); - - translator.translate(isDeleted ? ' [[topic:restore]]' : ' [[topic:delete]]', function(translated) { - postEl.find('.delete').find('i').toggleClass('fa-trash-o', !isDeleted).toggleClass('fa-history', isDeleted); - postEl.find('.delete').find('span').html(translated); - }); + postEl.find('.delete .i').toggleClass('fa-trash-o', !isDeleted).toggleClass('fa-history', isDeleted); + postEl.find('.delete span').translateHtml(isDeleted ? ' [[topic:restore]]' : ' [[topic:delete]]'); }; PostTools.updatePostCount = function() { diff --git a/public/src/forum/topic/threadTools.js b/public/src/forum/topic/threadTools.js index 30f2f11a66..1e8e63b14f 100644 --- a/public/src/forum/topic/threadTools.js +++ b/public/src/forum/topic/threadTools.js @@ -104,10 +104,8 @@ define('forum/topic/threadTools', ['forum/topic/fork', 'forum/topic/move'], func var threadEl = $('#post-container'); if (parseInt(data.tid, 10) === parseInt(threadEl.attr('data-tid'), 10)) { var isLocked = data.isLocked && !app.isAdmin; - translator.translate(' [[topic:thread_tools.' + (data.isLocked ? 'un': '') + 'lock]]', function(translated) { - $('.lock_thread').html(translated); - }); + $('.lock_thread').translateHtml(' [[topic:thread_tools.' + (data.isLocked ? 'un': '') + 'lock]]'); translator.translate(isLocked ? '[[topic:locked]]' : '[[topic:reply]]', function(translated) { var className = isLocked ? 'fa-lock' : 'fa-reply'; @@ -127,9 +125,7 @@ define('forum/topic/threadTools', ['forum/topic/fork', 'forum/topic/move'], func return; } - translator.translate(' [[topic:thread_tools.' + (data.isDelete ? 'restore' : 'delete') + ']]', function(translated) { - $('.delete_thread span').html(translated); - }); + $('.delete_thread span').translateHtml(' [[topic:thread_tools.' + (data.isDelete ? 'restore' : 'delete') + ']]'); threadEl.toggleClass('deleted', data.isDelete); ThreadTools.threadState.deleted = data.isDelete; diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index 5e305d8525..5143179a6d 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -210,10 +210,7 @@ define('chat', ['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) { checkOnlineStatus(chatModal); }); - translator.translate('[[modules:chat.user_typing, ' + username + ']]', function(translated) { - chatModal.find('.user-typing .text').text(translated); - }); - + chatModal.find('.user-typing .text').translateText('[[modules:chat.user_typing, ' + username + ']]'); taskbar.push('chat', chatModal.attr('UUID'), { title: username, diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js index f10629db59..84ad64c8b1 100644 --- a/public/src/modules/composer.js +++ b/public/src/modules/composer.js @@ -297,9 +297,7 @@ define('composer', dependencies, function(taskbar, controls, uploads, formatting var titleEl = postContainer.find('.title'); if (parseInt(postData.tid, 10) > 0) { - translator.translate('[[topic:composer.replying_to, ' + postData.title + ']]', function(newTitle) { - titleEl.val(newTitle); - }); + titleEl.translateVal('[[topic:composer.replying_to, ' + postData.title + ']]'); titleEl.prop('disabled', true); } else if (parseInt(postData.pid, 10) > 0) { titleEl.val(postData.title); diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 72869c5912..4f8d57895b 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -91,10 +91,8 @@ define('navigator', ['forum/topic/pagination'], function(pagination) { navigator.updateTextAndProgressBar = function() { index = index > count ? count : index; - translator.translate('[[global:pagination.out_of, ' + index + ', ' + count + ']]', function(translated) { - $('#pagination').html(translated); - }); + $('#pagination').translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]'); $('.pagination-block .progress-bar').width((index / count * 100) + '%'); }; diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index bf257c2e20..ef00636f45 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -52,10 +52,7 @@ define('notifications', ['sounds'], function(sound) { } - translator.translate(html, function(translated) { - notifList.html(translated); - }); - + notifList.translateHtml(html); updateNotifCount(data.unread.length); diff --git a/public/src/overrides.js b/public/src/overrides.js index f3b36e54d2..978dea0720 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -51,6 +51,27 @@ if ('undefined' !== typeof window) { }); }; + $.fn.translateHtml = function(str) { + return translate(this, 'html', str); + }; + + $.fn.translateText = function(str) { + return translate(this, 'text', str); + }; + + $.fn.translateVal = function(str) { + return translate(this, 'val', str); + }; + + function translate(elements, type, str) { + return elements.each(function() { + var el = $(this); + translator.translate(str, function(translated) { + el[type](translated); + }); + }); + } + })(jQuery || {fn:{}});