Tossing in a basic i18n message export to script code. Plugins can hook StartScriptMessage/EndScriptMessage, or directly add needed mappings in Action::getScriptMessages(). Exported entries are accessible as SN.msg(key) at runtime.
StatusNet core code now sets the tooltip text on .attachment.more links when they receive their attachment-expansion magic; this will override the hardcoded tooltip text saved from OStatus plugin when displaying timelines in the web UI.
This commit is contained in:
parent
151eebcc28
commit
5a9bb0adc4
11
js/util.js
11
js/util.js
|
@ -56,6 +56,15 @@ var SN = { // StatusNet
|
||||||
NoticeDataGeoCookie: 'NoticeDataGeo',
|
NoticeDataGeoCookie: 'NoticeDataGeo',
|
||||||
NoticeDataGeoSelected: 'notice_data-geo_selected',
|
NoticeDataGeoSelected: 'notice_data-geo_selected',
|
||||||
StatusNetInstance:'StatusNetInstance'
|
StatusNetInstance:'StatusNetInstance'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
messages: {},
|
||||||
|
msg: function(key) {
|
||||||
|
if (typeof SN.messages[key] == "undefined") {
|
||||||
|
return '[' + key + ']';
|
||||||
|
} else {
|
||||||
|
return SN.messages[key];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -416,7 +425,7 @@ var SN = { // StatusNet
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
}).attr('title', SN.msg('showmore_tooltip'));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$.fn.jOverlay.options = {
|
$.fn.jOverlay.options = {
|
||||||
|
|
|
@ -283,6 +283,7 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
if (Event::handle('StartShowStatusNetScripts', array($this)) &&
|
if (Event::handle('StartShowStatusNetScripts', array($this)) &&
|
||||||
Event::handle('StartShowLaconicaScripts', array($this))) {
|
Event::handle('StartShowLaconicaScripts', array($this))) {
|
||||||
$this->script('util.js');
|
$this->script('util.js');
|
||||||
|
$this->showScriptMessages();
|
||||||
// Frame-busting code to avoid clickjacking attacks.
|
// Frame-busting code to avoid clickjacking attacks.
|
||||||
$this->inlineScript('if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
|
$this->inlineScript('if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
|
||||||
Event::handle('EndShowStatusNetScripts', array($this));
|
Event::handle('EndShowStatusNetScripts', array($this));
|
||||||
|
@ -292,6 +293,54 @@ class Action extends HTMLOutputter // lawsuit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exports a map of localized text strings to JavaScript code.
|
||||||
|
*
|
||||||
|
* Plugins can add to what's exported by hooking the StartScriptMessages or EndScriptMessages
|
||||||
|
* events and appending to the array. Try to avoid adding strings that won't be used, as
|
||||||
|
* they'll be added to HTML output.
|
||||||
|
*/
|
||||||
|
function showScriptMessages()
|
||||||
|
{
|
||||||
|
$messages = array();
|
||||||
|
if (Event::handle('StartScriptMessages', array($this, &$messages))) {
|
||||||
|
// Common messages needed for timeline views etc...
|
||||||
|
|
||||||
|
// TRANS: Localized tooltip for '...' expansion button on overlong remote messages.
|
||||||
|
$messages['showmore_tooltip'] = _m('TOOLTIP', 'Show more');
|
||||||
|
|
||||||
|
$messages = array_merge($messages, $this->getScriptMessages());
|
||||||
|
}
|
||||||
|
if ($messages) {
|
||||||
|
$this->inlineScript('SN.messages=' . json_encode($messages));
|
||||||
|
}
|
||||||
|
Event::handle('EndScriptMessages', array($this, &$messages));
|
||||||
|
return $messages;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the action will need localizable text strings, export them here like so:
|
||||||
|
*
|
||||||
|
* return array('pool_deepend' => _('Deep end'),
|
||||||
|
* 'pool_shallow' => _('Shallow end'));
|
||||||
|
*
|
||||||
|
* The exported map will be available via SN.msg() to JS code:
|
||||||
|
*
|
||||||
|
* $('#pool').html('<div class="deepend"></div><div class="shallow"></div>');
|
||||||
|
* $('#pool .deepend').text(SN.msg('pool_deepend'));
|
||||||
|
* $('#pool .shallow').text(SN.msg('pool_shallow'));
|
||||||
|
*
|
||||||
|
* Exports a map of localized text strings to JavaScript code.
|
||||||
|
*
|
||||||
|
* Plugins can add to what's exported on any action by hooking the StartScriptMessages or
|
||||||
|
* EndScriptMessages events and appending to the array. Try to avoid adding strings that won't
|
||||||
|
* be used, as they'll be added to HTML output.
|
||||||
|
*/
|
||||||
|
function getScriptMessages()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show OpenSearch headers
|
* Show OpenSearch headers
|
||||||
*
|
*
|
||||||
|
|
|
@ -588,7 +588,8 @@ class Ostatus_profile extends Memcached_DataObject
|
||||||
// We mark up the attachment link specially for the HTML output
|
// We mark up the attachment link specially for the HTML output
|
||||||
// so we can fold-out the full version inline.
|
// so we can fold-out the full version inline.
|
||||||
|
|
||||||
// TRANS: Shown when a notice is longer than supported and/or when attachments are present.
|
// @fixme I18N this tooltip will be saved with the site's default language
|
||||||
|
// TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime this will usually be replaced with localized text from StatusNet core messages.
|
||||||
$showMoreText = _m('Show more');
|
$showMoreText = _m('Show more');
|
||||||
$attachUrl = common_local_url('attachment',
|
$attachUrl = common_local_url('attachment',
|
||||||
array('attachment' => $attachment->id));
|
array('attachment' => $attachment->id));
|
||||||
|
|
Loading…
Reference in New Issue
Block a user