From 86201761eadef3b124ee13e6ba2f9e661e697a5a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 2 Nov 2010 13:12:58 -0700 Subject: [PATCH] Use SN.msg() and onEndScriptMessages() to export localized UI messages from Realtime plugin and its descendents. --- lib/action.php | 2 +- plugins/Realtime/RealtimePlugin.php | 40 +++++++++++++++-------------- plugins/Realtime/realtimeupdate.js | 13 +++++----- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/lib/action.php b/lib/action.php index becd734b10..766cfca269 100644 --- a/lib/action.php +++ b/lib/action.php @@ -311,10 +311,10 @@ class Action extends HTMLOutputter // lawsuit $messages = array_merge($messages, $this->getScriptMessages()); } + Event::handle('EndScriptMessages', array($this, &$messages)); if ($messages) { $this->inlineScript('SN.messages=' . json_encode($messages)); } - Event::handle('EndScriptMessages', array($this, &$messages)); return $messages; } diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index 7a40cdca31..479e8cef2f 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -106,9 +106,7 @@ class RealtimePlugin extends Plugin $realtimeUI = ' RealtimeUpdate.initActions("'.$url.'", "'.$timeline.'", "'. $pluginPath .'");'; } - $i18n = $this->_getMessages(); $script = ' $(document).ready(function() { '. - 'RealtimeUpdate._messages=' . json_encode($i18n) . ';' . $realtimeUI. $this->_updateInitialize($timeline, $user_id). '}); '; @@ -329,25 +327,29 @@ class RealtimePlugin extends Plugin } /** - * Any i18n messages that need to be loaded at runtime. - * @return array of string key to output text string pairs + * Export any i18n messages that need to be loaded at runtime... + * + * @param Action $action + * @param array $messages + * + * @return boolean hook return value */ - function _getMessages() + function onEndScriptMessages($action, &$messages) { - return array( - // TRANS: Text label for realtime view "play" button, usually replaced by an icon. - 'play' => _m('BUTTON', 'Play'), - // TRANS: Tooltip for realtime view "play" button. - 'play_tooltip' => _m('TOOLTIP', 'Play'), - // TRANS: Text label for realtime view "pause" button - 'pause' => _m('BUTTON', 'Pause'), - // TRANS: Tooltip for realtime view "pause" button - 'pause_tooltip' => _m('TOOLTIP', 'Pause'), - // TRANS: Text label for realtime view "popup" button, usually replaced by an icon. - 'popup' => _m('BUTTON', 'Pop up'), - // TRANS: Tooltip for realtime view "popup" button. - 'popup_tooltip' => _m('TOOLTIP', 'Pop up in a window'), - ); + // TRANS: Text label for realtime view "play" button, usually replaced by an icon. + $messages['realtime_play'] = _m('BUTTON', 'Play'); + // TRANS: Tooltip for realtime view "play" button. + $messages['realtime_play_tooltip'] = _m('TOOLTIP', 'Play'); + // TRANS: Text label for realtime view "pause" button + $messages['realtime_pause'] = _m('BUTTON', 'Pause'); + // TRANS: Tooltip for realtime view "pause" button + $messages['realtime_pause_tooltip'] = _m('TOOLTIP', 'Pause'); + // TRANS: Text label for realtime view "popup" button, usually replaced by an icon. + $messages['realtime_popup'] = _m('BUTTON', 'Pop up'); + // TRANS: Tooltip for realtime view "popup" button. + $messages['realtime_popup_tooltip'] = _m('TOOLTIP', 'Pop up in a window'); + + return true; } function _updateInitialize($timeline, $user_id) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index f764ca738d..f49cef95e6 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -40,7 +40,6 @@ RealtimeUpdate = { _documenttitle: '', _paused:false, _queuedNotices:[], - _messages:{}, init: function(userid, replyurl, favorurl, repeaturl, deleteurl) { @@ -263,8 +262,8 @@ RealtimeUpdate = { $('#realtime_playpause').remove(); $('#realtime_actions').prepend('
  • '); - $('#realtime_pause').text(RealtimeUpdate._messages['pause']) - .attr('title', RealtimeUpdate._messages['pause_tooltip']) + $('#realtime_pause').text(SN.msg('realtime_pause')) + .attr('title', SN.msg('realtime_pause_tooltip')) .bind('click', function() { RealtimeUpdate.removeNoticesHover(); RealtimeUpdate.showPlay(); @@ -277,8 +276,8 @@ RealtimeUpdate = { RealtimeUpdate.setPause(true); $('#realtime_playpause').remove(); $('#realtime_actions').prepend('
  • '); - $('#realtime_play').text(RealtimeUpdate._messages['play']) - .attr('title', RealtimeUpdate._messages['play_tooltip']) + $('#realtime_play').text(SN.msg('realtime_play')) + .attr('title', SN.msg('realtime_play_tooltip')) .bind('click', function() { RealtimeUpdate.showPause(); return false; @@ -338,8 +337,8 @@ RealtimeUpdate = { initAddPopup: function(url, timeline, path) { $('#realtime_timeline').append(''); - $('#realtime_popup').text(RealtimeUpdate._messages['popup']) - .attr('title', RealtimeUpdate._messages['popup_tooltip']) + $('#realtime_popup').text(SN.msg('realtime_popup')) + .attr('title', SN.msg('realtime_popup_tooltip')) .bind('click', function() { window.open(url, '',