Commit bbb240e4 authored by Siebrand Mazeland's avatar Siebrand Mazeland

Update translator documentation.

Whitespace updates.
Line break changes in README.
i18n updates.
parent d6fe675f
......@@ -117,8 +117,8 @@ class XCachePlugin extends Plugin
'author' => 'Craig Andrews',
'homepage' => 'http://status.net/wiki/Plugin:XCache',
'rawdescription' =>
// TRANS: Plugin description.
_m('Use the <a href="http://xcache.lighttpd.net/">XCache</a> variable cache to cache query results.'));
return true;
}
}
The XMPP plugin allows users to send and receive notices over the XMPP/Jabber/GTalk network.
The XMPP plugin allows users to send and receive notices over the
XMPP/Jabber/GTalk network.
Installation
============
......@@ -6,9 +7,10 @@ add "addPlugin('xmpp',
array('setting'=>'value', 'setting2'=>'value2', ...);"
to the bottom of your config.php
The daemon included with this plugin must be running. It will be started by
the plugin along with their other daemons when you run scripts/startdaemons.sh.
See the StatusNet README for more about queuing and daemons.
The daemon included with this plugin must be running. It will be
started by the plugin along with their other daemons when you run
scripts/startdaemons.sh. See the StatusNet README for more about queuing and
daemons.
Settings
========
......@@ -32,4 +34,3 @@ addPlugin('xmpp', array(
'password'=>'...',
'public'=>array('bob@aol.com', 'sue@google.com')
));
......@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class XmppPlugin extends ImPlugin
{
public $server = null;
......@@ -59,22 +58,22 @@ class XmppPlugin extends ImPlugin
public $transport = 'xmpp';
function getDisplayName(){
// TRANS: Plugin display name.
return _m('XMPP/Jabber/GTalk');
}
/**
* Splits a Jabber ID (JID) into node, domain, and resource portions.
*
*
* Based on validation routine submitted by:
* @copyright 2009 Patrick Georgi <patrick@georgi-clan.de>
* @license Licensed under ISC-L, which is compatible with everything else that keeps the copyright notice intact.
* @license Licensed under ISC-L, which is compatible with everything else that keeps the copyright notice intact.
*
* @param string $jid string to check
*
* @return array with "node", "domain", and "resource" indices
* @throws Exception if input is not valid
*/
protected function splitJid($jid)
{
$chars = '';
......@@ -102,11 +101,11 @@ class XmppPlugin extends ImPlugin
$chars .= "\x{340}\x{341}\x{200e}\x{200f}\x{202a}-\x{202e}\x{206a}-\x{206f}";
/* C9 - Tagging characters */
$chars .= "\x{e0001}\x{e0020}-\x{e007f}";
/* Nodeprep forbids some more characters */
$nodeprepchars = $chars;
$nodeprepchars .= "\x{22}\x{26}\x{27}\x{2f}\x{3a}\x{3c}\x{3e}\x{40}";
$parts = explode("/", $jid, 2);
if (count($parts) > 1) {
$resource = $parts[1];
......@@ -117,10 +116,11 @@ class XmppPlugin extends ImPlugin
} else {
$resource = null;
}
$node = explode("@", $parts[0]);
if ((count($node) > 2) || (count($node) == 0)) {
throw new Exception("Invalid JID: too many @s");
// TRANS: Exception thrown when using too many @ signs in a Jabber ID.
throw new Exception(_m('Invalid JID: too many @s.'));
} else if (count($node) == 1) {
$domain = $node[0];
$node = null;
......@@ -128,47 +128,57 @@ class XmppPlugin extends ImPlugin
$domain = $node[1];
$node = $node[0];
if ($node == '') {
throw new Exception("Invalid JID: @ but no node");
// TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
throw new Exception(_m('Invalid JID: @ but no node'));
}
}
// Length limits per http://xmpp.org/rfcs/rfc3920.html#addressing
if ($node !== null) {
if (strlen($node) > 1023) {
throw new Exception("Invalid JID: node too long.");
// TRANS: Exception thrown when using too long a Jabber ID (>1023).
throw new Exception(_m('Invalid JID: node too long.'));
}
if (preg_match("/[".$nodeprepchars."]/u", $node)) {
throw new Exception("Invalid JID node '$node'");
// TRANS: Exception thrown when using an invalid Jabber ID.
// TRANS: %s is the invalid Jabber ID.
throw new Exception(sprintf(_m('Invalid JID node "%s".'),$node));
}
}
if (strlen($domain) > 1023) {
throw new Exception("Invalid JID: domain too long.");
// TRANS: Exception thrown when using too long a Jabber domain (>1023).
throw new Exception(_m('Invalid JID: domain too long.'));
}
if (!common_valid_domain($domain)) {
throw new Exception("Invalid JID domain name '$domain'");
// TRANS: Exception thrown when using an invalid Jabber domain name.
// TRANS: %s is the invalid domain name.
throw new Exception(sprintf(_m('Invalid JID domain name "%s".'),$domain));
}
if ($resource !== null) {
if (strlen($resource) > 1023) {
// TRANS: Exception thrown when using too long a resource (>1023).
throw new Exception("Invalid JID: resource too long.");
}
if (preg_match("/[".$chars."]/u", $resource)) {
throw new Exception("Invalid JID resource '$resource'");
// TRANS: Exception thrown when using an invalid Jabber resource.
// TRANS: %s is the invalid resource.
throw new Exception(sprintf(_m('Invalid JID resource "%s".'),$resource));
}
}
return array('node' => is_null($node) ? null : mb_strtolower($node),
'domain' => is_null($domain) ? null : mb_strtolower($domain),
'resource' => $resource);
}
/**
* Checks whether a string is a syntactically valid Jabber ID (JID),
* either with or without a resource.
*
*
* Note that a bare domain can be a valid JID.
*
*
* @param string $jid string to check
* @param bool $check_domain whether we should validate that domain...
*
......@@ -188,15 +198,15 @@ class XmppPlugin extends ImPlugin
return false;
}
}
/**
* Checks whether a string is a syntactically valid base Jabber ID (JID).
* A base JID won't include a resource specifier on the end; since we
* take it off when reading input we can't really use them reliably
* to direct outgoing messages yet (sorry guys!)
*
*
* Note that a bare domain can be a valid JID.
*
*
* @param string $jid string to check
* @param bool $check_domain whether we should validate that domain...
*
......@@ -225,7 +235,6 @@ class XmppPlugin extends ImPlugin
*
* @return string an equivalent JID in normalized (lowercase) form
*/
function normalize($jid)
{
try {
......@@ -308,7 +317,7 @@ class XmppPlugin extends ImPlugin
function microiduri($screenname)
{
return 'xmpp:' . $screenname;
return 'xmpp:' . $screenname;
}
function sendMessage($screenname, $body)
......@@ -320,7 +329,7 @@ class XmppPlugin extends ImPlugin
{
$msg = $this->formatNotice($notice);
$entry = $this->format_entry($notice);
$this->queuedConnection()->message($screenname, $msg, 'chat', null, $entry);
return true;
}
......@@ -333,7 +342,6 @@ class XmppPlugin extends ImPlugin
*
* @return string Extra information (Atom, HTML, addresses) in string format
*/
function format_entry($notice)
{
$profile = $notice->getProfile();
......@@ -355,6 +363,7 @@ class XmppPlugin extends ImPlugin
$xs->element('a', array(
'href'=>common_local_url('conversation',
array('id' => $notice->conversation)).'#notice-'.$notice->id),
// TRANS: Link description to notice in conversation.
// TRANS: %s is a notice ID.
sprintf(_m('[%s]'),$notice->id));
$xs->elementEnd('body');
......@@ -380,14 +389,14 @@ class XmppPlugin extends ImPlugin
}
$this->handleIncoming($from, $pl['body']);
return true;
}
/**
* Build a queue-proxied XMPP interface object. Any outgoing messages
* will be run back through us for enqueing rather than sent directly.
*
*
* @return Queued_XMPP
* @throws Exception if server settings are invalid.
*/
......
......@@ -29,16 +29,14 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
* In a multi-site queuedaemon.php run, one connection will be instantiated
* for each site being handled by the current process that has XMPP enabled.
*/
class XmppManager extends ImManager
{
protected $lastping = null;
protected $pingid = null;
public $conn = null;
const PING_INTERVAL = 120;
/**
* Initialize connection to server.
......@@ -114,7 +112,7 @@ class XmppManager extends ImManager
*
* Side effect: kills process on exception from XMPP library.
*
* @fixme non-dying error handling
* @todo FIXME: non-dying error handling
*/
public function idle($timeout=0)
{
......@@ -165,6 +163,7 @@ class XmppManager extends ImManager
}
$this->conn->processUntil('session_start');
// TRANS: Presence announcement for XMPP.
$this->send_presence(_m('Send me a message to post a notice'), 'available', null, 'available', 100);
}
return $this->conn;
......@@ -204,6 +203,7 @@ class XmppManager extends ImManager
common_log(LOG_NOTICE, 'XMPP reconnected');
$this->conn->processUntil('session_start');
// TRANS: Message for XMPP reconnect.
$this->send_presence(_m('Send me a message to post a notice'), 'available', null, 'available', 100);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment