Merge branch 'master' into 1.0.x
This commit is contained in:
commit
7183175429
41
README
41
README
@ -2,8 +2,8 @@
|
|||||||
README
|
README
|
||||||
------
|
------
|
||||||
|
|
||||||
StatusNet 0.9.3 ("Half a World Away")
|
StatusNet 0.9.4beta2
|
||||||
29 June 2010
|
11 August 2010
|
||||||
|
|
||||||
This is the README file for StatusNet, the Open Source microblogging
|
This is the README file for StatusNet, the Open Source microblogging
|
||||||
platform. It includes installation instructions, descriptions of
|
platform. It includes installation instructions, descriptions of
|
||||||
@ -43,6 +43,10 @@ on status.net is identical to the software available for download, so
|
|||||||
you can move back and forth between a hosted version or a version
|
you can move back and forth between a hosted version or a version
|
||||||
installed on your own servers.
|
installed on your own servers.
|
||||||
|
|
||||||
|
A commercial software subscription is available from StatusNet Inc. It
|
||||||
|
includes 24-hour technical support and developer support. More
|
||||||
|
information at http://status.net/contact or email sales@status.net.
|
||||||
|
|
||||||
License
|
License
|
||||||
=======
|
=======
|
||||||
|
|
||||||
@ -77,27 +81,31 @@ for additional terms.
|
|||||||
New this version
|
New this version
|
||||||
================
|
================
|
||||||
|
|
||||||
This is a minor bug and feature release since version 0.9.2 released on
|
This is a security, bug and feature release since version 0.9.3 released on
|
||||||
4 May 2010.
|
29 June 2010.
|
||||||
|
|
||||||
For best compatibility with client software and site federation, and a lot of
|
For best compatibility with client software and site federation, and a lot of
|
||||||
bug fixes, it is highly recommended that all public sites upgrade to the new
|
bug fixes, it is highly recommended that all public sites upgrade to the new
|
||||||
version.
|
version.
|
||||||
|
|
||||||
|
Changes from 0.9.4beta1:
|
||||||
|
- fix for daemon config switching on multi-site setup
|
||||||
|
|
||||||
Notable changes this version:
|
Notable changes this version:
|
||||||
|
|
||||||
- Enhanced API output to aid StatusNet-specific clients
|
- OpenID and OAuth libraries patched for potential timing attack
|
||||||
|
- OStatus feed i/o updated for Activity Streams
|
||||||
|
- Correctness fixes on XRD, other discovery bits
|
||||||
|
- Support for contacting SNI-based SSL virtual hosts when SSL
|
||||||
|
certificate verification is enabled (requires PHP 5.3.2+ or
|
||||||
|
enabling CURL backend with $config['http']['curl'] = true)
|
||||||
|
- Experimental SubMirror plugin
|
||||||
|
- Multi-site status_network table mode has been tweaked to support
|
||||||
|
multiple tags better
|
||||||
- Many updates to user interface translation from TranslateWiki
|
- Many updates to user interface translation from TranslateWiki
|
||||||
- OStatus now works subscribing to SSL-protected sites by default
|
|
||||||
- OpenID now works on PHP 5.3, supports closer site integration.
|
|
||||||
- Numerous API and FOAF output fixes.
|
|
||||||
- Fixes to Facebook integration for FB API behavior changes
|
|
||||||
- PostgreSQL support updates
|
|
||||||
- Initial version of a custom theme uploader (disabled by default)
|
|
||||||
- LDAP auth plugins cleanup
|
|
||||||
- Many other bugfixes
|
- Many other bugfixes
|
||||||
|
|
||||||
A full changelog is available at http://status.net/wiki/StatusNet_0.9.3.
|
A full changelog is available at http://status.net/wiki/StatusNet_0.9.4.
|
||||||
|
|
||||||
Prerequisites
|
Prerequisites
|
||||||
=============
|
=============
|
||||||
@ -125,7 +133,6 @@ Your PHP installation must include the following PHP extensions:
|
|||||||
- MySQL. For accessing the database.
|
- MySQL. For accessing the database.
|
||||||
- GD. For scaling down avatar images.
|
- GD. For scaling down avatar images.
|
||||||
- mbstring. For handling Unicode (UTF-8) encoded strings.
|
- mbstring. For handling Unicode (UTF-8) encoded strings.
|
||||||
- gettext. For multiple languages. Default on many PHP installs.
|
|
||||||
|
|
||||||
For some functionality, you will also need the following extensions:
|
For some functionality, you will also need the following extensions:
|
||||||
|
|
||||||
@ -140,6 +147,8 @@ For some functionality, you will also need the following extensions:
|
|||||||
Sphinx server to serve the search queries.
|
Sphinx server to serve the search queries.
|
||||||
- bcmath or gmp. For Salmon signatures (part of OStatus). Needed
|
- bcmath or gmp. For Salmon signatures (part of OStatus). Needed
|
||||||
if you have OStatus configured.
|
if you have OStatus configured.
|
||||||
|
- gettext. For multiple languages. Default on many PHP installs;
|
||||||
|
will be emulated if not present.
|
||||||
|
|
||||||
You will almost definitely get 2-3 times better performance from your
|
You will almost definitely get 2-3 times better performance from your
|
||||||
site if you install a PHP bytecode cache/accelerator. Some well-known
|
site if you install a PHP bytecode cache/accelerator. Some well-known
|
||||||
@ -209,7 +218,7 @@ especially if you've previously installed PHP/MySQL packages.
|
|||||||
1. Unpack the tarball you downloaded on your Web server. Usually a
|
1. Unpack the tarball you downloaded on your Web server. Usually a
|
||||||
command like this will work:
|
command like this will work:
|
||||||
|
|
||||||
tar zxf statusnet-0.9.2.tar.gz
|
tar zxf statusnet-0.9.4.tar.gz
|
||||||
|
|
||||||
...which will make a statusnet-0.9.2 subdirectory in your current
|
...which will make a statusnet-0.9.2 subdirectory in your current
|
||||||
directory. (If you don't have shell access on your Web server, you
|
directory. (If you don't have shell access on your Web server, you
|
||||||
@ -219,7 +228,7 @@ especially if you've previously installed PHP/MySQL packages.
|
|||||||
2. Move the tarball to a directory of your choosing in your Web root
|
2. Move the tarball to a directory of your choosing in your Web root
|
||||||
directory. Usually something like this will work:
|
directory. Usually something like this will work:
|
||||||
|
|
||||||
mv statusnet-0.9.2 /var/www/statusnet
|
mv statusnet-0.9.4 /var/www/statusnet
|
||||||
|
|
||||||
This will make your StatusNet instance available in the statusnet path of
|
This will make your StatusNet instance available in the statusnet path of
|
||||||
your server, like "http://example.net/statusnet". "microblog" or
|
your server, like "http://example.net/statusnet". "microblog" or
|
||||||
|
@ -240,6 +240,14 @@ class File_redirection extends Memcached_DataObject
|
|||||||
} else if (is_string($redir_data)) {
|
} else if (is_string($redir_data)) {
|
||||||
// The file is a known redirect target.
|
// The file is a known redirect target.
|
||||||
$file = File::staticGet('url', $redir_data);
|
$file = File::staticGet('url', $redir_data);
|
||||||
|
if (empty($file)) {
|
||||||
|
// @fixme should we save a new one?
|
||||||
|
// this case was triggering sometimes for redirects
|
||||||
|
// with unresolvable targets; found while fixing
|
||||||
|
// "can't linkify" bugs with shortened links to
|
||||||
|
// SSL sites with cert issues.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$file_id = $file->id;
|
$file_id = $file->id;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -485,7 +485,7 @@ class Notice extends Memcached_DataObject
|
|||||||
function saveKnownUrls($urls)
|
function saveKnownUrls($urls)
|
||||||
{
|
{
|
||||||
// @fixme validation?
|
// @fixme validation?
|
||||||
foreach ($urls as $url) {
|
foreach (array_unique($urls) as $url) {
|
||||||
File::processNew($url, $this->id);
|
File::processNew($url, $this->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -893,7 +893,7 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
$groups = array();
|
$groups = array();
|
||||||
foreach ($group_ids as $id) {
|
foreach (array_unique($group_ids) as $id) {
|
||||||
$group = User_group::staticGet('id', $id);
|
$group = User_group::staticGet('id', $id);
|
||||||
if ($group) {
|
if ($group) {
|
||||||
common_log(LOG_ERR, "Local delivery to group id $id, $group->nickname");
|
common_log(LOG_ERR, "Local delivery to group id $id, $group->nickname");
|
||||||
@ -1016,7 +1016,7 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
$sender = Profile::staticGet($this->profile_id);
|
$sender = Profile::staticGet($this->profile_id);
|
||||||
|
|
||||||
foreach ($uris as $uri) {
|
foreach (array_unique($uris) as $uri) {
|
||||||
|
|
||||||
$user = User::staticGet('uri', $uri);
|
$user = User::staticGet('uri', $uri);
|
||||||
|
|
||||||
@ -1029,6 +1029,7 @@ class Notice extends Memcached_DataObject
|
|||||||
|
|
||||||
$reply->notice_id = $this->id;
|
$reply->notice_id = $this->id;
|
||||||
$reply->profile_id = $user->id;
|
$reply->profile_id = $user->id;
|
||||||
|
common_log(LOG_INFO, __METHOD__ . ": saving reply: notice $this->id to profile $user->id");
|
||||||
|
|
||||||
$id = $reply->insert();
|
$id = $reply->insert();
|
||||||
}
|
}
|
||||||
|
@ -464,11 +464,9 @@ class Profile extends Memcached_DataObject
|
|||||||
|
|
||||||
$sub = new Subscription();
|
$sub = new Subscription();
|
||||||
$sub->subscribed = $this->id;
|
$sub->subscribed = $this->id;
|
||||||
|
$sub->whereAdd('subscriber != subscribed');
|
||||||
$cnt = (int) $sub->count('distinct subscriber');
|
$cnt = (int) $sub->count('distinct subscriber');
|
||||||
|
|
||||||
$cnt = ($cnt > 0) ? $cnt - 1 : $cnt;
|
|
||||||
|
|
||||||
if (!empty($c)) {
|
if (!empty($c)) {
|
||||||
$c->set(common_cache_key('profile:subscriber_count:'.$this->id), $cnt);
|
$c->set(common_cache_key('profile:subscriber_count:'.$this->id), $cnt);
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,7 @@ class ActivityContext
|
|||||||
|
|
||||||
$links = $element->getElementsByTagNameNS(ActivityUtils::ATOM, ActivityUtils::LINK);
|
$links = $element->getElementsByTagNameNS(ActivityUtils::ATOM, ActivityUtils::LINK);
|
||||||
|
|
||||||
|
$attention = array();
|
||||||
for ($i = 0; $i < $links->length; $i++) {
|
for ($i = 0; $i < $links->length; $i++) {
|
||||||
|
|
||||||
$link = $links->item($i);
|
$link = $links->item($i);
|
||||||
@ -80,11 +81,12 @@ class ActivityContext
|
|||||||
// XXX: Deprecate this in favour of "mentioned" from Salmon spec
|
// XXX: Deprecate this in favour of "mentioned" from Salmon spec
|
||||||
// http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#SALR
|
// http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#SALR
|
||||||
if ($linkRel == self::ATTENTION) {
|
if ($linkRel == self::ATTENTION) {
|
||||||
$this->attention[] = $link->getAttribute(self::HREF);
|
$attention[] = $link->getAttribute(self::HREF);
|
||||||
} elseif ($linkRel == self::MENTIONED) {
|
} elseif ($linkRel == self::MENTIONED) {
|
||||||
$this->attention[] = $link->getAttribute(self::HREF);
|
$attention[] = $link->getAttribute(self::HREF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$this->attention = array_unique($attention);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,10 +22,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
|||||||
//exit with 200 response, if this is checking fancy from the installer
|
//exit with 200 response, if this is checking fancy from the installer
|
||||||
if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; }
|
if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; }
|
||||||
|
|
||||||
define('STATUSNET_VERSION', '0.9.3');
|
define('STATUSNET_VERSION', '0.9.4beta2');
|
||||||
define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility
|
define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility
|
||||||
|
|
||||||
define('STATUSNET_CODENAME', 'Half a World Away');
|
define('STATUSNET_CODENAME', 'Orange Crush');
|
||||||
|
|
||||||
define('AVATAR_PROFILE_SIZE', 96);
|
define('AVATAR_PROFILE_SIZE', 96);
|
||||||
define('AVATAR_STREAM_SIZE', 48);
|
define('AVATAR_STREAM_SIZE', 48);
|
||||||
|
@ -321,6 +321,7 @@ $default =
|
|||||||
'maxlength' => 25,
|
'maxlength' => 25,
|
||||||
'maxnoticelength' => -1),
|
'maxnoticelength' => -1),
|
||||||
'http' => // HTTP client settings when contacting other sites
|
'http' => // HTTP client settings when contacting other sites
|
||||||
array('ssl_cafile' => false // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
|
array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
|
||||||
|
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -145,6 +145,10 @@ class HTTPClient extends HTTP_Request2
|
|||||||
$this->config['ssl_verify_peer'] = false;
|
$this->config['ssl_verify_peer'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (common_config('http', 'curl') && extension_loaded('curl')) {
|
||||||
|
$this->config['adapter'] = 'HTTP_Request2_Adapter_Curl';
|
||||||
|
}
|
||||||
|
|
||||||
parent::__construct($url, $method, $config);
|
parent::__construct($url, $method, $config);
|
||||||
$this->setHeader('User-Agent', $this->userAgent());
|
$this->setHeader('User-Agent', $this->userAgent());
|
||||||
}
|
}
|
||||||
@ -204,6 +208,15 @@ class HTTPClient extends HTTP_Request2
|
|||||||
protected function doRequest($url, $method, $headers)
|
protected function doRequest($url, $method, $headers)
|
||||||
{
|
{
|
||||||
$this->setUrl($url);
|
$this->setUrl($url);
|
||||||
|
|
||||||
|
// Workaround for HTTP_Request2 not setting up SNI in socket contexts;
|
||||||
|
// This fixes cert validation for SSL virtual hosts using SNI.
|
||||||
|
// Requires PHP 5.3.2 or later and OpenSSL with SNI support.
|
||||||
|
if ($this->url->getScheme() == 'https' && defined('OPENSSL_TLSEXT_SERVER_NAME')) {
|
||||||
|
$this->config['ssl_SNI_enabled'] = true;
|
||||||
|
$this->config['ssl_SNI_server_name'] = $this->url->getHost();
|
||||||
|
}
|
||||||
|
|
||||||
$this->setMethod($method);
|
$this->setMethod($method);
|
||||||
if ($headers) {
|
if ($headers) {
|
||||||
foreach ($headers as $header) {
|
foreach ($headers as $header) {
|
||||||
|
@ -310,6 +310,7 @@ function get_all_languages() {
|
|||||||
'da' => array('q' => 0.8, 'lang' => 'da', 'name' => 'Danish', 'direction' => 'ltr'),
|
'da' => array('q' => 0.8, 'lang' => 'da', 'name' => 'Danish', 'direction' => 'ltr'),
|
||||||
'de' => array('q' => 0.8, 'lang' => 'de', 'name' => 'German', 'direction' => 'ltr'),
|
'de' => array('q' => 0.8, 'lang' => 'de', 'name' => 'German', 'direction' => 'ltr'),
|
||||||
'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'),
|
'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'),
|
||||||
|
'eo' => array('q' => 0.8, 'lang' => 'eo', 'name' => 'Esperanto', 'direction' => 'ltr'),
|
||||||
'en-us' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
'en-us' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||||
'en-gb' => array('q' => 1, 'lang' => 'en_GB', 'name' => 'English (British)', 'direction' => 'ltr'),
|
'en-gb' => array('q' => 1, 'lang' => 'en_GB', 'name' => 'English (British)', 'direction' => 'ltr'),
|
||||||
'en' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
'en' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'),
|
||||||
|
@ -224,6 +224,7 @@ class MailboxAction extends CurrentUserDesignAction
|
|||||||
|
|
||||||
if ($message->source) {
|
if ($message->source) {
|
||||||
$this->elementStart('span', 'source');
|
$this->elementStart('span', 'source');
|
||||||
|
// FIXME: bad i18n. Device should be a parameter (from %s).
|
||||||
$this->text(_('from'));
|
$this->text(_('from'));
|
||||||
$this->element('span', 'device', $this->showSource($message->source));
|
$this->element('span', 'device', $this->showSource($message->source));
|
||||||
$this->elementEnd('span');
|
$this->elementEnd('span');
|
||||||
|
@ -333,7 +333,7 @@ class MysqlSchema extends Schema
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($name)) {
|
if (empty($name)) {
|
||||||
$name = "$table_".implode("_", $columnNames)."_idx";
|
$name = "{$table}_".implode("_", $columnNames)."_idx";
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $this->conn->query("ALTER TABLE $table ".
|
$res = $this->conn->query("ALTER TABLE $table ".
|
||||||
|
@ -499,9 +499,10 @@ class NoticeListItem extends Widget
|
|||||||
$ns = $this->notice->getSource();
|
$ns = $this->notice->getSource();
|
||||||
|
|
||||||
if ($ns) {
|
if ($ns) {
|
||||||
$source_name = _($ns->code);
|
$source_name = (empty($ns->name)) ? ($ns->code ? _($ns->code) : _('web')) : _($ns->name);
|
||||||
$this->out->text(' ');
|
$this->out->text(' ');
|
||||||
$this->out->elementStart('span', 'source');
|
$this->out->elementStart('span', 'source');
|
||||||
|
// FIXME: probably i18n issue. If "from" is followed by text, that should be a parameter to "from" (from %s).
|
||||||
$this->out->text(_('from'));
|
$this->out->text(_('from'));
|
||||||
$this->out->text(' ');
|
$this->out->text(' ');
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ class StatusNet
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sn = Status_network::staticGet($nickname);
|
$sn = Status_network::staticGet('nickname', $nickname);
|
||||||
if (empty($sn)) {
|
if (empty($sn)) {
|
||||||
return false;
|
return false;
|
||||||
throw new Exception("No such site nickname '$nickname'");
|
throw new Exception("No such site nickname '$nickname'");
|
||||||
|
@ -649,7 +649,7 @@ class StompQueueManager extends QueueManager
|
|||||||
*/
|
*/
|
||||||
protected function updateSiteConfig($nickname)
|
protected function updateSiteConfig($nickname)
|
||||||
{
|
{
|
||||||
$sn = Status_network::staticGet($nickname);
|
$sn = Status_network::staticGet('nickname', $nickname);
|
||||||
if ($sn) {
|
if ($sn) {
|
||||||
$this->switchSite($nickname);
|
$this->switchSite($nickname);
|
||||||
if (!in_array($nickname, $this->sites)) {
|
if (!in_array($nickname, $this->sites)) {
|
||||||
|
@ -845,7 +845,10 @@ function common_linkify($url) {
|
|||||||
} elseif (is_string($longurl_data)) {
|
} elseif (is_string($longurl_data)) {
|
||||||
$longurl = $longurl_data;
|
$longurl = $longurl_data;
|
||||||
} else {
|
} else {
|
||||||
throw new ServerException("Can't linkify url '$url'");
|
// Unable to reach the server to verify contents, etc
|
||||||
|
// Just pass the link on through for now.
|
||||||
|
common_log(LOG_ERR, "Can't linkify url '$url'");
|
||||||
|
$longurl = $url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$attrs = array('href' => $canon, 'title' => $longurl, 'rel' => 'external');
|
$attrs = array('href' => $canon, 'title' => $longurl, 'rel' => 'external');
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:39+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:01+0000\n"
|
||||||
"Language-Team: Arabic\n"
|
"Language-Team: Arabic\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ar\n"
|
"X-Language-Code: ar\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4740,21 +4740,21 @@ msgstr "مشكلة أثناء حفظ الإشعار."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "آر تي @%1$s %2$s"
|
msgstr "آر تي @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:41+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:02+0000\n"
|
||||||
"Language-Team: Egyptian Spoken Arabic\n"
|
"Language-Team: Egyptian Spoken Arabic\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: arz\n"
|
"X-Language-Code: arz\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4768,21 +4768,21 @@ msgstr "مشكله أثناء حفظ الإشعار."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "آر تى @%1$s %2$s"
|
msgstr "آر تى @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:42+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:08+0000\n"
|
||||||
"Language-Team: Bulgarian\n"
|
"Language-Team: Bulgarian\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: bg\n"
|
"X-Language-Code: bg\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4920,21 +4920,21 @@ msgstr "Проблем при записване на бележката."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:45+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:12+0000\n"
|
||||||
"Language-Team: Catalan\n"
|
"Language-Team: Catalan\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ca\n"
|
"X-Language-Code: ca\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4992,21 +4992,21 @@ msgstr "S'ha produït un problema en desar la safata d'entrada del grup."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:47+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:14+0000\n"
|
||||||
"Language-Team: Czech\n"
|
"Language-Team: Czech\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: cs\n"
|
"X-Language-Code: cs\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4954,21 +4954,21 @@ msgstr "Problém při ukládání sdělení"
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:48+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:15+0000\n"
|
||||||
"Language-Team: Danish\n"
|
"Language-Team: Danish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: da\n"
|
"X-Language-Code: da\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4728,21 +4728,21 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -16,12 +16,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:49+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:17+0000\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: de\n"
|
"X-Language-Code: de\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5003,14 +5003,14 @@ msgstr "Problem bei Speichern der Nachricht."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -5019,7 +5019,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:51+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:18+0000\n"
|
||||||
"Language-Team: Greek\n"
|
"Language-Team: Greek\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: el\n"
|
"X-Language-Code: el\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4879,21 +4879,21 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:52+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:11:54+0000\n"
|
||||||
"Language-Team: British English\n"
|
"Language-Team: British English\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: en-gb\n"
|
"X-Language-Code: en-gb\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -173,8 +173,8 @@ msgid ""
|
|||||||
"You can try to [nudge %1$s](../%2$s) from their profile or [post something "
|
"You can try to [nudge %1$s](../%2$s) from their profile or [post something "
|
||||||
"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"You can try to [nudge %1$s](../%2$s) from his profile or [post something to "
|
"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
|
||||||
"his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
"status_textarea=%s)!"
|
||||||
|
|
||||||
#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
|
#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
@ -182,8 +182,8 @@ msgid ""
|
|||||||
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
|
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
|
||||||
"post a notice to them."
|
"post a notice to them."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
|
"Why not [register an account](%%action.register%%) and be the first to add a "
|
||||||
"post a notice to his or her attention."
|
"notice to your favourites!"
|
||||||
|
|
||||||
#. TRANS: H1 text
|
#. TRANS: H1 text
|
||||||
#: actions/all.php:182
|
#: actions/all.php:182
|
||||||
@ -367,7 +367,7 @@ msgstr "Could not delete favourite."
|
|||||||
#: actions/apifriendshipscreate.php:109
|
#: actions/apifriendshipscreate.php:109
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Could not follow user: profile not found."
|
msgid "Could not follow user: profile not found."
|
||||||
msgstr "Could not follow user: User not found."
|
msgstr "Could not unfollow user: User not found."
|
||||||
|
|
||||||
#: actions/apifriendshipscreate.php:118
|
#: actions/apifriendshipscreate.php:118
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -383,9 +383,8 @@ msgid "You cannot unfollow yourself."
|
|||||||
msgstr "You cannot unfollow yourself."
|
msgstr "You cannot unfollow yourself."
|
||||||
|
|
||||||
#: actions/apifriendshipsexists.php:91
|
#: actions/apifriendshipsexists.php:91
|
||||||
#, fuzzy
|
|
||||||
msgid "Two valid IDs or screen_names must be supplied."
|
msgid "Two valid IDs or screen_names must be supplied."
|
||||||
msgstr "Two user ids or screen_names must be supplied."
|
msgstr ""
|
||||||
|
|
||||||
#: actions/apifriendshipsshow.php:134
|
#: actions/apifriendshipsshow.php:134
|
||||||
msgid "Could not determine source user."
|
msgid "Could not determine source user."
|
||||||
@ -789,7 +788,7 @@ msgid "Preview"
|
|||||||
msgstr "Preview"
|
msgstr "Preview"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
|
|
||||||
@ -1070,7 +1069,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Do not delete this notice"
|
msgstr "Do not delete this notice"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Delete this notice"
|
msgstr "Delete this notice"
|
||||||
|
|
||||||
@ -2128,8 +2127,9 @@ msgid "This is your inbox, which lists your incoming private messages."
|
|||||||
msgstr "This is your inbox, which lists your incoming private messages."
|
msgstr "This is your inbox, which lists your incoming private messages."
|
||||||
|
|
||||||
#: actions/invite.php:39
|
#: actions/invite.php:39
|
||||||
|
#, fuzzy
|
||||||
msgid "Invites have been disabled."
|
msgid "Invites have been disabled."
|
||||||
msgstr ""
|
msgstr "Invitations enabled"
|
||||||
|
|
||||||
#: actions/invite.php:41
|
#: actions/invite.php:41
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -2493,11 +2493,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!"
|
|||||||
msgstr "Updates matching search term \"%1$s\" on %2$s!"
|
msgstr "Updates matching search term \"%1$s\" on %2$s!"
|
||||||
|
|
||||||
#: actions/nudge.php:85
|
#: actions/nudge.php:85
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This user doesn't allow nudges or hasn't confirmed or set their email yet."
|
"This user doesn't allow nudges or hasn't confirmed or set their email yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This user doesn't allow nudges or hasn't confirmed or set his e-mail yet."
|
|
||||||
|
|
||||||
#: actions/nudge.php:94
|
#: actions/nudge.php:94
|
||||||
msgid "Nudge sent"
|
msgid "Nudge sent"
|
||||||
@ -2529,8 +2527,9 @@ msgid "Connected applications"
|
|||||||
msgstr "Connected applications"
|
msgstr "Connected applications"
|
||||||
|
|
||||||
#: actions/oauthconnectionssettings.php:83
|
#: actions/oauthconnectionssettings.php:83
|
||||||
|
#, fuzzy
|
||||||
msgid "You have allowed the following applications to access you account."
|
msgid "You have allowed the following applications to access you account."
|
||||||
msgstr ""
|
msgstr "You have not authorised any applications to use your account."
|
||||||
|
|
||||||
#: actions/oauthconnectionssettings.php:175
|
#: actions/oauthconnectionssettings.php:175
|
||||||
msgid "You are not a user of that application."
|
msgid "You are not a user of that application."
|
||||||
@ -2609,8 +2608,9 @@ msgid "View profile designs"
|
|||||||
msgstr "View profile designs"
|
msgstr "View profile designs"
|
||||||
|
|
||||||
#: actions/othersettings.php:123
|
#: actions/othersettings.php:123
|
||||||
|
#, fuzzy
|
||||||
msgid "Show or hide profile designs."
|
msgid "Show or hide profile designs."
|
||||||
msgstr ""
|
msgstr "View profile designs"
|
||||||
|
|
||||||
#: actions/othersettings.php:153
|
#: actions/othersettings.php:153
|
||||||
msgid "URL shortening service is too long (max 50 chars)."
|
msgid "URL shortening service is too long (max 50 chars)."
|
||||||
@ -2717,8 +2717,9 @@ msgid "Paths"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:70
|
#: actions/pathsadminpanel.php:70
|
||||||
|
#, fuzzy
|
||||||
msgid "Path and server settings for this StatusNet site."
|
msgid "Path and server settings for this StatusNet site."
|
||||||
msgstr ""
|
msgstr "Basic settings for this StatusNet site"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:157
|
#: actions/pathsadminpanel.php:157
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -2785,16 +2786,19 @@ msgid "Theme"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:264
|
#: actions/pathsadminpanel.php:264
|
||||||
|
#, fuzzy
|
||||||
msgid "Theme server"
|
msgid "Theme server"
|
||||||
msgstr ""
|
msgstr "SSL server"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:268
|
#: actions/pathsadminpanel.php:268
|
||||||
|
#, fuzzy
|
||||||
msgid "Theme path"
|
msgid "Theme path"
|
||||||
msgstr ""
|
msgstr "Site path"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:272
|
#: actions/pathsadminpanel.php:272
|
||||||
|
#, fuzzy
|
||||||
msgid "Theme directory"
|
msgid "Theme directory"
|
||||||
msgstr ""
|
msgstr "Avatar directory"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:279
|
#: actions/pathsadminpanel.php:279
|
||||||
msgid "Avatars"
|
msgid "Avatars"
|
||||||
@ -2813,20 +2817,24 @@ msgid "Avatar directory"
|
|||||||
msgstr "Avatar directory"
|
msgstr "Avatar directory"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:301
|
#: actions/pathsadminpanel.php:301
|
||||||
|
#, fuzzy
|
||||||
msgid "Backgrounds"
|
msgid "Backgrounds"
|
||||||
msgstr ""
|
msgstr "Background"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:305
|
#: actions/pathsadminpanel.php:305
|
||||||
|
#, fuzzy
|
||||||
msgid "Background server"
|
msgid "Background server"
|
||||||
msgstr ""
|
msgstr "Background"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:309
|
#: actions/pathsadminpanel.php:309
|
||||||
|
#, fuzzy
|
||||||
msgid "Background path"
|
msgid "Background path"
|
||||||
msgstr ""
|
msgstr "Background"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:313
|
#: actions/pathsadminpanel.php:313
|
||||||
|
#, fuzzy
|
||||||
msgid "Background directory"
|
msgid "Background directory"
|
||||||
msgstr ""
|
msgstr "Background directory not writable: %s."
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:320
|
#: actions/pathsadminpanel.php:320
|
||||||
msgid "SSL"
|
msgid "SSL"
|
||||||
@ -2845,8 +2853,9 @@ msgid "Always"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:329
|
#: actions/pathsadminpanel.php:329
|
||||||
|
#, fuzzy
|
||||||
msgid "Use SSL"
|
msgid "Use SSL"
|
||||||
msgstr ""
|
msgstr "SSL"
|
||||||
|
|
||||||
#: actions/pathsadminpanel.php:330
|
#: actions/pathsadminpanel.php:330
|
||||||
msgid "When to use SSL"
|
msgid "When to use SSL"
|
||||||
@ -3062,21 +3071,24 @@ msgid "Public Stream Feed (Atom)"
|
|||||||
msgstr "Public Stream Feed (Atom)"
|
msgstr "Public Stream Feed (Atom)"
|
||||||
|
|
||||||
#: actions/public.php:188
|
#: actions/public.php:188
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is the public timeline for %%site.name%% but no one has posted anything "
|
"This is the public timeline for %%site.name%% but no one has posted anything "
|
||||||
"yet."
|
"yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"This is the timeline for %s and friends but no one has posted anything yet."
|
||||||
|
|
||||||
#: actions/public.php:191
|
#: actions/public.php:191
|
||||||
msgid "Be the first to post!"
|
msgid "Be the first to post!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/public.php:195
|
#: actions/public.php:195
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Why not [register an account](%%action.register%%) and be the first to post!"
|
"Why not [register an account](%%action.register%%) and be the first to post!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Why not [register an account](%%action.register%%) and be the first to add a "
|
||||||
|
"notice to your favourites!"
|
||||||
|
|
||||||
#: actions/public.php:242
|
#: actions/public.php:242
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -3121,11 +3133,13 @@ msgid "Be the first to post one!"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/publictagcloud.php:75
|
#: actions/publictagcloud.php:75
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Why not [register an account](%%action.register%%) and be the first to post "
|
"Why not [register an account](%%action.register%%) and be the first to post "
|
||||||
"one!"
|
"one!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Why not [register an account](%%action.register%%) and be the first to add a "
|
||||||
|
"notice to your favourites!"
|
||||||
|
|
||||||
#: actions/publictagcloud.php:134
|
#: actions/publictagcloud.php:134
|
||||||
msgid "Tag cloud"
|
msgid "Tag cloud"
|
||||||
@ -3172,8 +3186,9 @@ msgid "You have been identified. Enter a new password below. "
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/recoverpassword.php:188
|
#: actions/recoverpassword.php:188
|
||||||
|
#, fuzzy
|
||||||
msgid "Password recovery"
|
msgid "Password recovery"
|
||||||
msgstr ""
|
msgstr "Password recovery requested"
|
||||||
|
|
||||||
#: actions/recoverpassword.php:191
|
#: actions/recoverpassword.php:191
|
||||||
msgid "Nickname or email address"
|
msgid "Nickname or email address"
|
||||||
@ -3463,7 +3478,7 @@ msgstr "You can't repeat your own notice."
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "You already repeated that notice."
|
msgstr "You already repeated that notice."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Repeated"
|
msgstr "Repeated"
|
||||||
|
|
||||||
@ -3502,9 +3517,7 @@ msgstr "Notice feed for %s"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"This is the timeline showing replies to %1$s but %2$s hasn't received a "
|
"This is the timeline showing replies to %1$s but %2$s hasn't received a "
|
||||||
"notice to them yet."
|
"notice to them yet."
|
||||||
msgstr ""
|
msgstr "This is the timeline for %1$s but %2$s hasn't posted anything yet."
|
||||||
"This is the timeline showing replies to %1$s but %2$s hasn't received a "
|
|
||||||
"notice to his attention yet."
|
|
||||||
|
|
||||||
#: actions/replies.php:204
|
#: actions/replies.php:204
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -3519,8 +3532,8 @@ msgid ""
|
|||||||
"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
|
"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
|
||||||
"newnotice%%%%?status_textarea=%3$s)."
|
"newnotice%%%%?status_textarea=%3$s)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"You can try to [nudge %1$s](../%2$s) or [post something to his or her "
|
"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
|
||||||
"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
"status_textarea=%s)!"
|
||||||
|
|
||||||
#: actions/repliesrss.php:72
|
#: actions/repliesrss.php:72
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -3550,8 +3563,9 @@ msgstr "User is already sandboxed."
|
|||||||
#. TRANS: Menu item for site administration
|
#. TRANS: Menu item for site administration
|
||||||
#: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
|
#: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
|
||||||
#: lib/adminpanelaction.php:392
|
#: lib/adminpanelaction.php:392
|
||||||
|
#, fuzzy
|
||||||
msgid "Sessions"
|
msgid "Sessions"
|
||||||
msgstr ""
|
msgstr "Version"
|
||||||
|
|
||||||
#: actions/sessionsadminpanel.php:65
|
#: actions/sessionsadminpanel.php:65
|
||||||
msgid "Session settings for this StatusNet site."
|
msgid "Session settings for this StatusNet site."
|
||||||
@ -3619,16 +3633,18 @@ msgid "Created by %1$s - %2$s access by default - %3$d users"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/showapplication.php:213
|
#: actions/showapplication.php:213
|
||||||
|
#, fuzzy
|
||||||
msgid "Application actions"
|
msgid "Application actions"
|
||||||
msgstr ""
|
msgstr "Application not found."
|
||||||
|
|
||||||
#: actions/showapplication.php:236
|
#: actions/showapplication.php:236
|
||||||
msgid "Reset key & secret"
|
msgid "Reset key & secret"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/showapplication.php:261
|
#: actions/showapplication.php:261
|
||||||
|
#, fuzzy
|
||||||
msgid "Application info"
|
msgid "Application info"
|
||||||
msgstr ""
|
msgstr "Application not found."
|
||||||
|
|
||||||
#: actions/showapplication.php:263
|
#: actions/showapplication.php:263
|
||||||
msgid "Consumer key"
|
msgid "Consumer key"
|
||||||
@ -3693,13 +3709,11 @@ msgstr ""
|
|||||||
"notices you like to bookmark them for later or shed a spotlight on them."
|
"notices you like to bookmark them for later or shed a spotlight on them."
|
||||||
|
|
||||||
#: actions/showfavorites.php:208
|
#: actions/showfavorites.php:208
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s hasn't added any favorite notices yet. Post something interesting they "
|
"%s hasn't added any favorite notices yet. Post something interesting they "
|
||||||
"would add to their favorites :)"
|
"would add to their favorites :)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s hasn't added any notices to his favourites yet. Post something "
|
|
||||||
"interesting they would add to their favourites :)"
|
|
||||||
|
|
||||||
#: actions/showfavorites.php:212
|
#: actions/showfavorites.php:212
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
@ -3708,9 +3722,8 @@ msgid ""
|
|||||||
"action.register%%%%) and then post something interesting they would add to "
|
"action.register%%%%) and then post something interesting they would add to "
|
||||||
"their favorites :)"
|
"their favorites :)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s hasn't added any notices to his favourites yet. Why not [register an "
|
"Why not [register an account](%%action.register%%) and be the first to add a "
|
||||||
"account](%%%%action.register%%%%) and then post something interesting they "
|
"notice to your favourites!"
|
||||||
"would add to their favourites :)"
|
|
||||||
|
|
||||||
#: actions/showfavorites.php:243
|
#: actions/showfavorites.php:243
|
||||||
msgid "This is a way to share what you like."
|
msgid "This is a way to share what you like."
|
||||||
@ -3892,17 +3905,21 @@ msgid ""
|
|||||||
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
||||||
"%?status_textarea=%2$s)."
|
"%?status_textarea=%2$s)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"You can try to nudge %1$s or [post something to his or her attention](%%%%"
|
"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
|
||||||
"action.newnotice%%%%?status_textarea=%2$s)."
|
"status_textarea=%s)!"
|
||||||
|
|
||||||
#: actions/showstream.php:243
|
#: actions/showstream.php:243
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
|
"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
|
||||||
"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
|
"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
|
||||||
"[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to "
|
"[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to "
|
||||||
"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
|
"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
|
||||||
|
"blogging) service based on the Free Software [StatusNet](http://status.net/) "
|
||||||
|
"tool. [Join now](%%action.register%%) to share notices about yourself with "
|
||||||
|
"friends, family, and colleagues! ([Read more](%%doc.help%%))"
|
||||||
|
|
||||||
#: actions/showstream.php:248
|
#: actions/showstream.php:248
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -3990,8 +4007,9 @@ msgid "Local"
|
|||||||
msgstr "Local"
|
msgstr "Local"
|
||||||
|
|
||||||
#: actions/siteadminpanel.php:256
|
#: actions/siteadminpanel.php:256
|
||||||
|
#, fuzzy
|
||||||
msgid "Default timezone"
|
msgid "Default timezone"
|
||||||
msgstr ""
|
msgstr "Default subscription"
|
||||||
|
|
||||||
#: actions/siteadminpanel.php:257
|
#: actions/siteadminpanel.php:257
|
||||||
msgid "Default timezone for the site; usually UTC."
|
msgid "Default timezone for the site; usually UTC."
|
||||||
@ -4217,16 +4235,18 @@ msgid "Manage snapshot configuration"
|
|||||||
msgstr "Manage snapshot configuration"
|
msgstr "Manage snapshot configuration"
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:127
|
#: actions/snapshotadminpanel.php:127
|
||||||
|
#, fuzzy
|
||||||
msgid "Invalid snapshot run value."
|
msgid "Invalid snapshot run value."
|
||||||
msgstr ""
|
msgstr "Invalid role."
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:133
|
#: actions/snapshotadminpanel.php:133
|
||||||
msgid "Snapshot frequency must be a number."
|
msgid "Snapshot frequency must be a number."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:144
|
#: actions/snapshotadminpanel.php:144
|
||||||
|
#, fuzzy
|
||||||
msgid "Invalid snapshot report URL."
|
msgid "Invalid snapshot report URL."
|
||||||
msgstr ""
|
msgstr "nvalid logo URL."
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:200
|
#: actions/snapshotadminpanel.php:200
|
||||||
msgid "Randomly during web hit"
|
msgid "Randomly during web hit"
|
||||||
@ -4237,8 +4257,9 @@ msgid "In a scheduled job"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:206
|
#: actions/snapshotadminpanel.php:206
|
||||||
|
#, fuzzy
|
||||||
msgid "Data snapshots"
|
msgid "Data snapshots"
|
||||||
msgstr ""
|
msgstr "Save snapshot settings"
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:208
|
#: actions/snapshotadminpanel.php:208
|
||||||
msgid "When to send statistical data to status.net servers"
|
msgid "When to send statistical data to status.net servers"
|
||||||
@ -4253,8 +4274,9 @@ msgid "Snapshots will be sent once every N web hits"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:226
|
#: actions/snapshotadminpanel.php:226
|
||||||
|
#, fuzzy
|
||||||
msgid "Report URL"
|
msgid "Report URL"
|
||||||
msgstr ""
|
msgstr "Source URL"
|
||||||
|
|
||||||
#: actions/snapshotadminpanel.php:227
|
#: actions/snapshotadminpanel.php:227
|
||||||
msgid "Snapshots will be sent to this URL"
|
msgid "Snapshots will be sent to this URL"
|
||||||
@ -4322,11 +4344,13 @@ msgid "%s has no subscribers. Want to be the first?"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/subscribers.php:114
|
#: actions/subscribers.php:114
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s has no subscribers. Why not [register an account](%%%%action.register%%%"
|
"%s has no subscribers. Why not [register an account](%%%%action.register%%%"
|
||||||
"%) and be the first?"
|
"%) and be the first?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Why not [register an account](%%action.register%%) and be the first to add a "
|
||||||
|
"notice to your favourites!"
|
||||||
|
|
||||||
#: actions/subscriptions.php:52
|
#: actions/subscriptions.php:52
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -4472,8 +4496,9 @@ msgid "User"
|
|||||||
msgstr "User"
|
msgstr "User"
|
||||||
|
|
||||||
#: actions/useradminpanel.php:70
|
#: actions/useradminpanel.php:70
|
||||||
|
#, fuzzy
|
||||||
msgid "User settings for this StatusNet site."
|
msgid "User settings for this StatusNet site."
|
||||||
msgstr ""
|
msgstr "Design settings for this StausNet site."
|
||||||
|
|
||||||
#: actions/useradminpanel.php:149
|
#: actions/useradminpanel.php:149
|
||||||
msgid "Invalid bio limit. Must be numeric."
|
msgid "Invalid bio limit. Must be numeric."
|
||||||
@ -4507,12 +4532,14 @@ msgid "New users"
|
|||||||
msgstr "New users"
|
msgstr "New users"
|
||||||
|
|
||||||
#: actions/useradminpanel.php:235
|
#: actions/useradminpanel.php:235
|
||||||
|
#, fuzzy
|
||||||
msgid "New user welcome"
|
msgid "New user welcome"
|
||||||
msgstr ""
|
msgstr "New users"
|
||||||
|
|
||||||
#: actions/useradminpanel.php:236
|
#: actions/useradminpanel.php:236
|
||||||
|
#, fuzzy
|
||||||
msgid "Welcome text for new users (Max 255 chars)."
|
msgid "Welcome text for new users (Max 255 chars)."
|
||||||
msgstr ""
|
msgstr "Name is too long (max 255 chars)."
|
||||||
|
|
||||||
#: actions/useradminpanel.php:241
|
#: actions/useradminpanel.php:241
|
||||||
msgid "Default subscription"
|
msgid "Default subscription"
|
||||||
@ -4622,9 +4649,9 @@ msgid "Profile URL ‘%s’ is for a local user."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/userauthorization.php:345
|
#: actions/userauthorization.php:345
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid "Avatar URL ‘%s’ is not valid."
|
msgid "Avatar URL ‘%s’ is not valid."
|
||||||
msgstr ""
|
msgstr "Callback URL is not valid."
|
||||||
|
|
||||||
#: actions/userauthorization.php:350
|
#: actions/userauthorization.php:350
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -4696,8 +4723,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/version.php:163
|
#: actions/version.php:163
|
||||||
|
#, fuzzy
|
||||||
msgid "Contributors"
|
msgid "Contributors"
|
||||||
msgstr ""
|
msgstr "Connections"
|
||||||
|
|
||||||
#: actions/version.php:170
|
#: actions/version.php:170
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -4894,21 +4922,21 @@ msgstr "Problem saving group inbox."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4932,8 +4960,9 @@ msgstr "You have been banned from subscribing."
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to subscribe while already subscribed.
|
#. TRANS: Exception thrown when trying to subscribe while already subscribed.
|
||||||
#: classes/Subscription.php:80
|
#: classes/Subscription.php:80
|
||||||
|
#, fuzzy
|
||||||
msgid "Already subscribed!"
|
msgid "Already subscribed!"
|
||||||
msgstr ""
|
msgstr "Not subscribed!"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user.
|
#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user.
|
||||||
#: classes/Subscription.php:85
|
#: classes/Subscription.php:85
|
||||||
@ -4950,19 +4979,19 @@ msgstr "Not subscribed!"
|
|||||||
#: classes/Subscription.php:178
|
#: classes/Subscription.php:178
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Could not delete self-subscription."
|
msgid "Could not delete self-subscription."
|
||||||
msgstr "Couldn't delete self-subscription."
|
msgstr "Could not save subscription."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
||||||
#: classes/Subscription.php:206
|
#: classes/Subscription.php:206
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Could not delete subscription OMB token."
|
msgid "Could not delete subscription OMB token."
|
||||||
msgstr "Couldn't delete subscription OMB token."
|
msgstr "Could not save subscription."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
||||||
#: classes/Subscription.php:218
|
#: classes/Subscription.php:218
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Could not delete subscription."
|
msgid "Could not delete subscription."
|
||||||
msgstr "Couldn't delete subscription."
|
msgstr "Could not save subscription."
|
||||||
|
|
||||||
#. TRANS: Notice given on user registration.
|
#. TRANS: Notice given on user registration.
|
||||||
#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname.
|
#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname.
|
||||||
@ -5400,13 +5429,15 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Form legend.
|
#. TRANS: Form legend.
|
||||||
#: lib/applicationeditform.php:137
|
#: lib/applicationeditform.php:137
|
||||||
|
#, fuzzy
|
||||||
msgid "Edit application"
|
msgid "Edit application"
|
||||||
msgstr ""
|
msgstr "Edit Application"
|
||||||
|
|
||||||
#. TRANS: Form guide.
|
#. TRANS: Form guide.
|
||||||
#: lib/applicationeditform.php:187
|
#: lib/applicationeditform.php:187
|
||||||
|
#, fuzzy
|
||||||
msgid "Icon for this application"
|
msgid "Icon for this application"
|
||||||
msgstr ""
|
msgstr "Do not delete this application"
|
||||||
|
|
||||||
#. TRANS: Form input field instructions.
|
#. TRANS: Form input field instructions.
|
||||||
#: lib/applicationeditform.php:209
|
#: lib/applicationeditform.php:209
|
||||||
@ -5503,13 +5534,15 @@ msgstr "Revoke"
|
|||||||
|
|
||||||
#. TRANS: DT element label in attachment list.
|
#. TRANS: DT element label in attachment list.
|
||||||
#: lib/attachmentlist.php:88
|
#: lib/attachmentlist.php:88
|
||||||
|
#, fuzzy
|
||||||
msgid "Attachments"
|
msgid "Attachments"
|
||||||
msgstr ""
|
msgstr "No attachments."
|
||||||
|
|
||||||
#. TRANS: DT element label in attachment list item.
|
#. TRANS: DT element label in attachment list item.
|
||||||
#: lib/attachmentlist.php:265
|
#: lib/attachmentlist.php:265
|
||||||
|
#, fuzzy
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr "Authorise URL"
|
||||||
|
|
||||||
#. TRANS: DT element label in attachment list item.
|
#. TRANS: DT element label in attachment list item.
|
||||||
#: lib/attachmentlist.php:279
|
#: lib/attachmentlist.php:279
|
||||||
@ -5521,8 +5554,9 @@ msgid "Notices where this attachment appears"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/attachmenttagcloudsection.php:48
|
#: lib/attachmenttagcloudsection.php:48
|
||||||
|
#, fuzzy
|
||||||
msgid "Tags for this attachment"
|
msgid "Tags for this attachment"
|
||||||
msgstr ""
|
msgstr "No such attachment."
|
||||||
|
|
||||||
#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
|
#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
|
||||||
msgid "Password changing failed"
|
msgid "Password changing failed"
|
||||||
@ -5912,8 +5946,9 @@ msgstr ""
|
|||||||
"You can upload your personal background image. The maximum file size is 2MB."
|
"You can upload your personal background image. The maximum file size is 2MB."
|
||||||
|
|
||||||
#: lib/designsettings.php:418
|
#: lib/designsettings.php:418
|
||||||
|
#, fuzzy
|
||||||
msgid "Design defaults restored."
|
msgid "Design defaults restored."
|
||||||
msgstr ""
|
msgstr "Design preferences saved."
|
||||||
|
|
||||||
#: lib/disfavorform.php:114 lib/disfavorform.php:140
|
#: lib/disfavorform.php:114 lib/disfavorform.php:140
|
||||||
msgid "Disfavor this notice"
|
msgid "Disfavor this notice"
|
||||||
@ -6313,9 +6348,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mail.php:657
|
#: lib/mail.php:657
|
||||||
#, php-format
|
#, fuzzy, php-format
|
||||||
msgid "%s (@%s) sent a notice to your attention"
|
msgid "%s (@%s) sent a notice to your attention"
|
||||||
msgstr ""
|
msgstr "%s (@%s) added your notice as a favorite"
|
||||||
|
|
||||||
#. TRANS: Body of @-reply notification e-mail.
|
#. TRANS: Body of @-reply notification e-mail.
|
||||||
#: lib/mail.php:660
|
#: lib/mail.php:660
|
||||||
@ -6355,7 +6390,7 @@ msgid ""
|
|||||||
"users in conversation. People can send you messages for your eyes only."
|
"users in conversation. People can send you messages for your eyes only."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "from"
|
msgstr "from"
|
||||||
|
|
||||||
@ -6509,23 +6544,23 @@ msgstr ""
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "in context"
|
msgstr "in context"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Repeated by"
|
msgstr "Repeated by"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Reply to this notice"
|
msgstr "Reply to this notice"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Reply"
|
msgstr "Reply"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Notice repeated"
|
msgstr "Notice repeated"
|
||||||
|
|
||||||
@ -6827,16 +6862,18 @@ msgid "Top posters"
|
|||||||
msgstr "Top posters"
|
msgstr "Top posters"
|
||||||
|
|
||||||
#: lib/unsandboxform.php:69
|
#: lib/unsandboxform.php:69
|
||||||
|
#, fuzzy
|
||||||
msgid "Unsandbox"
|
msgid "Unsandbox"
|
||||||
msgstr ""
|
msgstr "Sandbox"
|
||||||
|
|
||||||
#: lib/unsandboxform.php:80
|
#: lib/unsandboxform.php:80
|
||||||
msgid "Unsandbox this user"
|
msgid "Unsandbox this user"
|
||||||
msgstr "Unsandbox this user"
|
msgstr "Unsandbox this user"
|
||||||
|
|
||||||
#: lib/unsilenceform.php:67
|
#: lib/unsilenceform.php:67
|
||||||
|
#, fuzzy
|
||||||
msgid "Unsilence"
|
msgid "Unsilence"
|
||||||
msgstr ""
|
msgstr "Silence"
|
||||||
|
|
||||||
#: lib/unsilenceform.php:78
|
#: lib/unsilenceform.php:78
|
||||||
msgid "Unsilence this user"
|
msgid "Unsilence this user"
|
||||||
|
7093
locale/eo/LC_MESSAGES/statusnet.po
Normal file
7093
locale/eo/LC_MESSAGES/statusnet.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -15,12 +15,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:54+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:22+0000\n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: es\n"
|
"X-Language-Code: es\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4990,21 +4990,21 @@ msgstr "Hubo un problema al guarda la bandeja de entrada del grupo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr "No se puede revocar rol \"%1$s\" para usuario #%2$d; no existe."
|
msgstr "No se puede revocar rol \"%1$s\" para usuario #%2$d; no existe."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -12,8 +12,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:57+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:25+0000\n"
|
||||||
"Last-Translator: Ahmad Sufi Mahmudi\n"
|
"Last-Translator: Ahmad Sufi Mahmudi\n"
|
||||||
"Language-Team: Persian\n"
|
"Language-Team: Persian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -22,7 +22,7 @@ msgstr ""
|
|||||||
"X-Language-Code: fa\n"
|
"X-Language-Code: fa\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
|
|
||||||
#. TRANS: Page title
|
#. TRANS: Page title
|
||||||
@ -4934,21 +4934,21 @@ msgstr "هنگام ذخیرهٔ صندوق ورودی گروه مشکلی رخ
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:55+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:23+0000\n"
|
||||||
"Language-Team: Finnish\n"
|
"Language-Team: Finnish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: fi\n"
|
"X-Language-Code: fi\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5057,21 +5057,21 @@ msgstr "Ongelma päivityksen tallentamisessa."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "%1$s (%2$s)"
|
msgstr "%1$s (%2$s)"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -15,12 +15,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:21:58+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:12:08+0000\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: fr\n"
|
"X-Language-Code: fr\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -805,7 +805,7 @@ msgid "Preview"
|
|||||||
msgstr "Aperçu"
|
msgstr "Aperçu"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
@ -1086,7 +1086,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Ne pas supprimer cet avis"
|
msgstr "Ne pas supprimer cet avis"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Supprimer cet avis"
|
msgstr "Supprimer cet avis"
|
||||||
|
|
||||||
@ -3538,7 +3538,7 @@ msgstr "Vous ne pouvez pas reprendre votre propre avis."
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "Vous avez déjà repris cet avis."
|
msgstr "Vous avez déjà repris cet avis."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Repris"
|
msgstr "Repris"
|
||||||
|
|
||||||
@ -4940,7 +4940,7 @@ msgstr "Impossible de créer le jeton d’identification pour %s"
|
|||||||
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
||||||
#: classes/Memcached_DataObject.php:533
|
#: classes/Memcached_DataObject.php:533
|
||||||
msgid "No database name or DSN found anywhere."
|
msgid "No database name or DSN found anywhere."
|
||||||
msgstr "Aucune base de données de nom ou DSN trouvée nulle part."
|
msgstr "Aucun nom de base de données ou DSN trouvé nulle part."
|
||||||
|
|
||||||
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
||||||
#: classes/Message.php:46
|
#: classes/Message.php:46
|
||||||
@ -5020,14 +5020,14 @@ msgstr "Problème lors de l’enregistrement de la boîte de réception du group
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -5036,7 +5036,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -6594,7 +6594,7 @@ msgstr ""
|
|||||||
"pour démarrer des conversations avec d’autres utilisateurs. Ceux-ci peuvent "
|
"pour démarrer des conversations avec d’autres utilisateurs. Ceux-ci peuvent "
|
||||||
"vous envoyer des messages destinés à vous seul(e)."
|
"vous envoyer des messages destinés à vous seul(e)."
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "de"
|
msgstr "de"
|
||||||
|
|
||||||
@ -6754,23 +6754,23 @@ msgstr "%1$u° %2$u' %3$u\" %4$s %5$u° %6$u' %7$u\" %8$s"
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr "chez"
|
msgstr "chez"
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "dans le contexte"
|
msgstr "dans le contexte"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Repris par"
|
msgstr "Repris par"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Répondre à cet avis"
|
msgstr "Répondre à cet avis"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Répondre"
|
msgstr "Répondre"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Avis repris"
|
msgstr "Avis repris"
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:00+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:29+0000\n"
|
||||||
"Language-Team: Irish\n"
|
"Language-Team: Irish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ga\n"
|
"X-Language-Code: ga\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5114,21 +5114,21 @@ msgstr "Aconteceu un erro ó gardar o chío."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "%1$s (%2$s)"
|
msgstr "%1$s (%2$s)"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:01+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:30+0000\n"
|
||||||
"Language-Team: Galician\n"
|
"Language-Team: Galician\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: gl\n"
|
"X-Language-Code: gl\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -166,7 +166,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@"
|
#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@"
|
||||||
#: actions/all.php:146
|
#: actions/all.php:146
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can try to [nudge %1$s](../%2$s) from their profile or [post something "
|
"You can try to [nudge %1$s](../%2$s) from their profile or [post something "
|
||||||
"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
|
||||||
@ -176,7 +176,7 @@ msgstr ""
|
|||||||
"status_textarea=%3$s)."
|
"status_textarea=%3$s)."
|
||||||
|
|
||||||
#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
|
#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
|
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
|
||||||
"post a notice to them."
|
"post a notice to them."
|
||||||
@ -512,9 +512,8 @@ msgid "groups on %s"
|
|||||||
msgstr "grupos en %s"
|
msgstr "grupos en %s"
|
||||||
|
|
||||||
#: actions/apimediaupload.php:99
|
#: actions/apimediaupload.php:99
|
||||||
#, fuzzy
|
|
||||||
msgid "Upload failed."
|
msgid "Upload failed."
|
||||||
msgstr "Cargar un ficheiro"
|
msgstr "Houbo un erro durante a carga."
|
||||||
|
|
||||||
#: actions/apioauthauthorize.php:101
|
#: actions/apioauthauthorize.php:101
|
||||||
msgid "No oauth_token parameter provided."
|
msgid "No oauth_token parameter provided."
|
||||||
@ -663,7 +662,7 @@ msgstr "Non se atopou ningún estado con esa ID."
|
|||||||
|
|
||||||
#: actions/apistatusesupdate.php:221
|
#: actions/apistatusesupdate.php:221
|
||||||
msgid "Client must provide a 'status' parameter with a value."
|
msgid "Client must provide a 'status' parameter with a value."
|
||||||
msgstr ""
|
msgstr "O cliente debe proporcionar un parámetro de \"estado\" cun valor."
|
||||||
|
|
||||||
#: actions/apistatusesupdate.php:242 actions/newnotice.php:155
|
#: actions/apistatusesupdate.php:242 actions/newnotice.php:155
|
||||||
#: lib/mailhandler.php:60
|
#: lib/mailhandler.php:60
|
||||||
@ -3555,7 +3554,7 @@ msgid "Replies feed for %s (Atom)"
|
|||||||
msgstr "Fonte de novas coas respostas a %s (Atom)"
|
msgstr "Fonte de novas coas respostas a %s (Atom)"
|
||||||
|
|
||||||
#: actions/replies.php:199
|
#: actions/replies.php:199
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is the timeline showing replies to %1$s but %2$s hasn't received a "
|
"This is the timeline showing replies to %1$s but %2$s hasn't received a "
|
||||||
"notice to them yet."
|
"notice to them yet."
|
||||||
@ -3573,7 +3572,7 @@ msgstr ""
|
|||||||
"grupos](%%action.groups%%)."
|
"grupos](%%action.groups%%)."
|
||||||
|
|
||||||
#: actions/replies.php:206
|
#: actions/replies.php:206
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
|
"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
|
||||||
"newnotice%%%%?status_textarea=%3$s)."
|
"newnotice%%%%?status_textarea=%3$s)."
|
||||||
@ -3953,7 +3952,7 @@ msgstr ""
|
|||||||
"bo momento para comezar :)"
|
"bo momento para comezar :)"
|
||||||
|
|
||||||
#: actions/showstream.php:207
|
#: actions/showstream.php:207
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
||||||
"%?status_textarea=%2$s)."
|
"%?status_textarea=%2$s)."
|
||||||
@ -4843,12 +4842,12 @@ msgstr "Autores"
|
|||||||
#: classes/File.php:143
|
#: classes/File.php:143
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot process URL '%s'"
|
msgid "Cannot process URL '%s'"
|
||||||
msgstr ""
|
msgstr "Non se pode procesar o URL \"%s\""
|
||||||
|
|
||||||
#. TRANS: Server exception thrown when... Robin thinks something is impossible!
|
#. TRANS: Server exception thrown when... Robin thinks something is impossible!
|
||||||
#: classes/File.php:175
|
#: classes/File.php:175
|
||||||
msgid "Robin thinks something is impossible."
|
msgid "Robin thinks something is impossible."
|
||||||
msgstr ""
|
msgstr "Robin pensa que algo é imposible."
|
||||||
|
|
||||||
#. TRANS: Message given if an upload is larger than the configured maximum.
|
#. TRANS: Message given if an upload is larger than the configured maximum.
|
||||||
#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
|
#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
|
||||||
@ -4878,9 +4877,8 @@ msgstr "Un ficheiro deste tamaño excedería a súa cota mensual de %d bytes."
|
|||||||
|
|
||||||
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
||||||
#: classes/File.php:248 classes/File.php:263
|
#: classes/File.php:248 classes/File.php:263
|
||||||
#, fuzzy
|
|
||||||
msgid "Invalid filename."
|
msgid "Invalid filename."
|
||||||
msgstr "Tamaño non válido."
|
msgstr "Nome de ficheiro incorrecto."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when joining a group fails.
|
#. TRANS: Exception thrown when joining a group fails.
|
||||||
#: classes/Group_member.php:42
|
#: classes/Group_member.php:42
|
||||||
@ -4912,7 +4910,7 @@ msgstr "Non se puido crear un pase de sesión para %s"
|
|||||||
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
||||||
#: classes/Memcached_DataObject.php:533
|
#: classes/Memcached_DataObject.php:533
|
||||||
msgid "No database name or DSN found anywhere."
|
msgid "No database name or DSN found anywhere."
|
||||||
msgstr ""
|
msgstr "Non se atopou por ningures o nome da base de datos ou DSN."
|
||||||
|
|
||||||
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
||||||
#: classes/Message.php:46
|
#: classes/Message.php:46
|
||||||
@ -4932,9 +4930,9 @@ msgstr "Non se puido actualizar a mensaxe co novo URI."
|
|||||||
#. TRANS: Server exception thrown when a user profile for a notice cannot be found.
|
#. TRANS: Server exception thrown when a user profile for a notice cannot be found.
|
||||||
#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
|
#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
|
||||||
#: classes/Notice.php:98
|
#: classes/Notice.php:98
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid "No such profile (%1$d) for notice (%2$d)."
|
msgid "No such profile (%1$d) for notice (%2$d)."
|
||||||
msgstr "Non existe tal perfil (%d) para a nota (%d)"
|
msgstr "Non existe tal perfil (%1$d) para a nota (%2$d)."
|
||||||
|
|
||||||
#. TRANS: Server exception. %s are the error details.
|
#. TRANS: Server exception. %s are the error details.
|
||||||
#: classes/Notice.php:190
|
#: classes/Notice.php:190
|
||||||
@ -4983,7 +4981,7 @@ msgstr "Houbo un problema ao gardar a nota."
|
|||||||
#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
|
#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
|
||||||
#: classes/Notice.php:892
|
#: classes/Notice.php:892
|
||||||
msgid "Bad type provided to saveKnownGroups"
|
msgid "Bad type provided to saveKnownGroups"
|
||||||
msgstr ""
|
msgstr "O tipo dado para saveKnownGroups era incorrecto"
|
||||||
|
|
||||||
#. TRANS: Server exception thrown when an update for a group inbox fails.
|
#. TRANS: Server exception thrown when an update for a group inbox fails.
|
||||||
#: classes/Notice.php:991
|
#: classes/Notice.php:991
|
||||||
@ -4992,30 +4990,31 @@ msgstr "Houbo un problema ao gardar a caixa de entrada do grupo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "♻ @%1$s %2$s"
|
msgstr "♻ @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Non se pode revogar o rol \"%1$s\" do usuario #%2$d: o usuario non existe."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Non se pode revogar o rol \"%1$s\" do usuario #%2$d: erro na base de datos."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
|
#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
|
||||||
#: classes/Remote_profile.php:54
|
#: classes/Remote_profile.php:54
|
||||||
#, fuzzy
|
|
||||||
msgid "Missing profile."
|
msgid "Missing profile."
|
||||||
msgstr "O usuario non ten perfil."
|
msgstr "Falta o perfil de usuario."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a tag cannot be saved.
|
#. TRANS: Exception thrown when a tag cannot be saved.
|
||||||
#: classes/Status_network.php:346
|
#: classes/Status_network.php:346
|
||||||
@ -5044,19 +5043,16 @@ msgstr "Non está subscrito!"
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
|
#. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
|
||||||
#: classes/Subscription.php:178
|
#: classes/Subscription.php:178
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete self-subscription."
|
msgid "Could not delete self-subscription."
|
||||||
msgstr "Non se puido borrar a subscrición a si mesmo."
|
msgstr "Non se puido borrar a subscrición a si mesmo."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
||||||
#: classes/Subscription.php:206
|
#: classes/Subscription.php:206
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete subscription OMB token."
|
msgid "Could not delete subscription OMB token."
|
||||||
msgstr "Non se puido borrar o pase de subscrición OMB."
|
msgstr "Non se puido borrar o pase de subscrición OMB."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
||||||
#: classes/Subscription.php:218
|
#: classes/Subscription.php:218
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete subscription."
|
msgid "Could not delete subscription."
|
||||||
msgstr "Non se puido borrar a subscrición."
|
msgstr "Non se puido borrar a subscrición."
|
||||||
|
|
||||||
|
@ -7,12 +7,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:03+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:32+0000\n"
|
||||||
"Language-Team: Hebrew\n"
|
"Language-Team: Hebrew\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: he\n"
|
"X-Language-Code: he\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4957,21 +4957,21 @@ msgstr "בעיה בשמירת ההודעה."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:04+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:33+0000\n"
|
||||||
"Language-Team: Dutch\n"
|
"Language-Team: Dutch\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: hsb\n"
|
"X-Language-Code: hsb\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4705,21 +4705,21 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:07+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:12:24+0000\n"
|
||||||
"Language-Team: Interlingua\n"
|
"Language-Team: Interlingua\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ia\n"
|
"X-Language-Code: ia\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -790,7 +790,7 @@ msgid "Preview"
|
|||||||
msgstr "Previsualisation"
|
msgstr "Previsualisation"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Deler"
|
msgstr "Deler"
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Non deler iste nota"
|
msgstr "Non deler iste nota"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Deler iste nota"
|
msgstr "Deler iste nota"
|
||||||
|
|
||||||
@ -3499,7 +3499,7 @@ msgstr "Tu non pote repeter tu proprie nota."
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "Tu ha ja repetite iste nota."
|
msgstr "Tu ha ja repetite iste nota."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Repetite"
|
msgstr "Repetite"
|
||||||
|
|
||||||
@ -3734,24 +3734,24 @@ msgstr ""
|
|||||||
"mitter los in evidentia."
|
"mitter los in evidentia."
|
||||||
|
|
||||||
#: actions/showfavorites.php:208
|
#: actions/showfavorites.php:208
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s hasn't added any favorite notices yet. Post something interesting they "
|
"%s hasn't added any favorite notices yet. Post something interesting they "
|
||||||
"would add to their favorites :)"
|
"would add to their favorites :)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s non ha ancora addite alcun nota a su favorites. Publica alique "
|
"%s non ha ancora addite un nota favorite. Publica alique interessante que "
|
||||||
"interessante que ille favoritisarea :)"
|
"ille adderea a su favorites :)"
|
||||||
|
|
||||||
#: actions/showfavorites.php:212
|
#: actions/showfavorites.php:212
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s hasn't added any favorite notices yet. Why not [register an account](%%%%"
|
"%s hasn't added any favorite notices yet. Why not [register an account](%%%%"
|
||||||
"action.register%%%%) and then post something interesting they would add to "
|
"action.register%%%%) and then post something interesting they would add to "
|
||||||
"their favorites :)"
|
"their favorites :)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s non ha ancora addite alcun nota a su favorites. Proque non [registrar un "
|
"%s non ha ancora addite un nota favorite. Proque non [crear un conto](%%%%"
|
||||||
"conto](%%%%action.register%%%%) e postea publicar alique interessante que "
|
"action.register%%%%) e postea publicar alique interessante que ille adderea "
|
||||||
"ille favoritisarea :)"
|
"a su favorites :)"
|
||||||
|
|
||||||
#: actions/showfavorites.php:243
|
#: actions/showfavorites.php:243
|
||||||
msgid "This is a way to share what you like."
|
msgid "This is a way to share what you like."
|
||||||
@ -3931,13 +3931,13 @@ msgstr ""
|
|||||||
"alcun nota, dunque iste es un bon momento pro comenciar :)"
|
"alcun nota, dunque iste es un bon momento pro comenciar :)"
|
||||||
|
|
||||||
#: actions/showstream.php:207
|
#: actions/showstream.php:207
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
|
||||||
"%?status_textarea=%2$s)."
|
"%?status_textarea=%2$s)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Tu pote tentar pulsar %1$s o [publicar un nota a su attention](%%%%action."
|
"Tu pote tentar dar un pulsata a %1$s o [publicar un nota a su attention](%%%%"
|
||||||
"newnotice%%%%?status_textarea=%2$s)."
|
"action.newnotice%%%%?status_textarea=%2$s)."
|
||||||
|
|
||||||
#: actions/showstream.php:243
|
#: actions/showstream.php:243
|
||||||
#, php-format
|
#, php-format
|
||||||
@ -4817,23 +4817,23 @@ msgstr "Autor(es)"
|
|||||||
#: classes/File.php:143
|
#: classes/File.php:143
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot process URL '%s'"
|
msgid "Cannot process URL '%s'"
|
||||||
msgstr ""
|
msgstr "Impossibile processar le URL '%s'"
|
||||||
|
|
||||||
#. TRANS: Server exception thrown when... Robin thinks something is impossible!
|
#. TRANS: Server exception thrown when... Robin thinks something is impossible!
|
||||||
#: classes/File.php:175
|
#: classes/File.php:175
|
||||||
msgid "Robin thinks something is impossible."
|
msgid "Robin thinks something is impossible."
|
||||||
msgstr ""
|
msgstr "Robin pensa que alique es impossibile."
|
||||||
|
|
||||||
#. TRANS: Message given if an upload is larger than the configured maximum.
|
#. TRANS: Message given if an upload is larger than the configured maximum.
|
||||||
#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
|
#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
|
||||||
#: classes/File.php:190
|
#: classes/File.php:190
|
||||||
#, fuzzy, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
|
"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
|
||||||
"Try to upload a smaller version."
|
"Try to upload a smaller version."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nulle file pote esser plus grande que %d bytes e le file que tu inviava ha %"
|
"Nulle file pote esser plus grande que %1$d bytes e le file que tu inviava ha "
|
||||||
"d bytes. Tenta incargar un version minus grande."
|
"%2$d bytes. Tenta incargar un version minus grande."
|
||||||
|
|
||||||
#. TRANS: Message given if an upload would exceed user quota.
|
#. TRANS: Message given if an upload would exceed user quota.
|
||||||
#. TRANS: %d (number) is the user quota in bytes.
|
#. TRANS: %d (number) is the user quota in bytes.
|
||||||
@ -4851,9 +4851,8 @@ msgstr "Un file de iste dimension excederea tu quota mensual de %d bytes."
|
|||||||
|
|
||||||
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
||||||
#: classes/File.php:248 classes/File.php:263
|
#: classes/File.php:248 classes/File.php:263
|
||||||
#, fuzzy
|
|
||||||
msgid "Invalid filename."
|
msgid "Invalid filename."
|
||||||
msgstr "Dimension invalide."
|
msgstr "Nomine de file invalide."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when joining a group fails.
|
#. TRANS: Exception thrown when joining a group fails.
|
||||||
#: classes/Group_member.php:42
|
#: classes/Group_member.php:42
|
||||||
@ -4885,7 +4884,7 @@ msgstr "Non poteva crear indicio de identification pro %s"
|
|||||||
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
#. TRANS: Exception thrown when database name or Data Source Name could not be found.
|
||||||
#: classes/Memcached_DataObject.php:533
|
#: classes/Memcached_DataObject.php:533
|
||||||
msgid "No database name or DSN found anywhere."
|
msgid "No database name or DSN found anywhere."
|
||||||
msgstr ""
|
msgstr "Nulle nomine de base de datos o DSN trovate."
|
||||||
|
|
||||||
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
|
||||||
#: classes/Message.php:46
|
#: classes/Message.php:46
|
||||||
@ -4907,7 +4906,7 @@ msgstr "Non poteva actualisar message con nove URI."
|
|||||||
#: classes/Notice.php:98
|
#: classes/Notice.php:98
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "No such profile (%1$d) for notice (%2$d)."
|
msgid "No such profile (%1$d) for notice (%2$d)."
|
||||||
msgstr ""
|
msgstr "Nulle profilo (%1$d) trovate pro le nota (%2$d)."
|
||||||
|
|
||||||
#. TRANS: Server exception. %s are the error details.
|
#. TRANS: Server exception. %s are the error details.
|
||||||
#: classes/Notice.php:190
|
#: classes/Notice.php:190
|
||||||
@ -4956,7 +4955,7 @@ msgstr "Problema salveguardar nota."
|
|||||||
#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
|
#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
|
||||||
#: classes/Notice.php:892
|
#: classes/Notice.php:892
|
||||||
msgid "Bad type provided to saveKnownGroups"
|
msgid "Bad type provided to saveKnownGroups"
|
||||||
msgstr ""
|
msgstr "Mal typo fornite a saveKnownGroups"
|
||||||
|
|
||||||
#. TRANS: Server exception thrown when an update for a group inbox fails.
|
#. TRANS: Server exception thrown when an update for a group inbox fails.
|
||||||
#: classes/Notice.php:991
|
#: classes/Notice.php:991
|
||||||
@ -4965,36 +4964,36 @@ msgstr "Problema salveguardar le cassa de entrata del gruppo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr "Non pote revocar le rolo \"%1$s\" del usator #%2$d; non existe."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Non pote revocar le rolo \"%1$s\" del usator #%2$d; error in le base de "
|
||||||
|
"datos."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
|
#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
|
||||||
#: classes/Remote_profile.php:54
|
#: classes/Remote_profile.php:54
|
||||||
#, fuzzy
|
|
||||||
msgid "Missing profile."
|
msgid "Missing profile."
|
||||||
msgstr "Le usator non ha un profilo."
|
msgstr "Profilo mancante."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a tag cannot be saved.
|
#. TRANS: Exception thrown when a tag cannot be saved.
|
||||||
#: classes/Status_network.php:346
|
#: classes/Status_network.php:346
|
||||||
#, fuzzy
|
|
||||||
msgid "Unable to save tag."
|
msgid "Unable to save tag."
|
||||||
msgstr "Impossibile salveguardar le aviso del sito."
|
msgstr "Impossibile salveguardar le etiquetta."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
|
#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
|
||||||
#: classes/Subscription.php:75 lib/oauthstore.php:465
|
#: classes/Subscription.php:75 lib/oauthstore.php:465
|
||||||
@ -5018,19 +5017,16 @@ msgstr "Non subscribite!"
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
|
#. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
|
||||||
#: classes/Subscription.php:178
|
#: classes/Subscription.php:178
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete self-subscription."
|
msgid "Could not delete self-subscription."
|
||||||
msgstr "Non poteva deler auto-subscription."
|
msgstr "Non poteva deler auto-subscription."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
|
||||||
#: classes/Subscription.php:206
|
#: classes/Subscription.php:206
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete subscription OMB token."
|
msgid "Could not delete subscription OMB token."
|
||||||
msgstr "Non poteva deler le indicio OMB del subscription."
|
msgstr "Non poteva deler le indicio OMB del subscription."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
#. TRANS: Exception thrown when a subscription could not be deleted on the server.
|
||||||
#: classes/Subscription.php:218
|
#: classes/Subscription.php:218
|
||||||
#, fuzzy
|
|
||||||
msgid "Could not delete subscription."
|
msgid "Could not delete subscription."
|
||||||
msgstr "Non poteva deler subscription."
|
msgstr "Non poteva deler subscription."
|
||||||
|
|
||||||
@ -6526,7 +6522,7 @@ msgstr ""
|
|||||||
"altere usatores in conversation. Altere personas pote inviar te messages que "
|
"altere usatores in conversation. Altere personas pote inviar te messages que "
|
||||||
"solmente tu pote leger."
|
"solmente tu pote leger."
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "de"
|
msgstr "de"
|
||||||
|
|
||||||
@ -6686,23 +6682,23 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr "a"
|
msgstr "a"
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "in contexto"
|
msgstr "in contexto"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Repetite per"
|
msgstr "Repetite per"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Responder a iste nota"
|
msgstr "Responder a iste nota"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Responder"
|
msgstr "Responder"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Nota repetite"
|
msgstr "Nota repetite"
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:08+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:37+0000\n"
|
||||||
"Language-Team: Icelandic\n"
|
"Language-Team: Icelandic\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: is\n"
|
"X-Language-Code: is\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5009,21 +5009,21 @@ msgstr "Vandamál komu upp við að vista babl."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "%1$s (%2$s)"
|
msgstr "%1$s (%2$s)"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:10+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:38+0000\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: it\n"
|
"X-Language-Code: it\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4968,21 +4968,21 @@ msgstr "Problema nel salvare la casella della posta del gruppo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:11+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:41+0000\n"
|
||||||
"Language-Team: Japanese\n"
|
"Language-Team: Japanese\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ja\n"
|
"X-Language-Code: ja\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5001,21 +5001,21 @@ msgstr "グループ受信箱を保存する際に問題が発生しました。
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:14+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:12:44+0000\n"
|
||||||
"Language-Team: Macedonian\n"
|
"Language-Team: Macedonian\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: mk\n"
|
"X-Language-Code: mk\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -792,7 +792,7 @@ msgid "Preview"
|
|||||||
msgstr "Преглед"
|
msgstr "Преглед"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Бриши"
|
msgstr "Бриши"
|
||||||
|
|
||||||
@ -1074,7 +1074,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Не ја бриши оваа забелешка"
|
msgstr "Не ја бриши оваа забелешка"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Бриши ја оваа забелешка"
|
msgstr "Бриши ја оваа забелешка"
|
||||||
|
|
||||||
@ -3510,7 +3510,7 @@ msgstr "Не можете да повторувате сопствена заб
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "Веќе ја имате повторено таа забелешка."
|
msgstr "Веќе ја имате повторено таа забелешка."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Повторено"
|
msgstr "Повторено"
|
||||||
|
|
||||||
@ -4983,14 +4983,14 @@ msgstr "Проблем при зачувувањето на групното п
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4999,7 +4999,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -5377,13 +5377,13 @@ msgstr "Прелом на страници"
|
|||||||
#. TRANS: present than the currently displayed information.
|
#. TRANS: present than the currently displayed information.
|
||||||
#: lib/action.php:1203
|
#: lib/action.php:1203
|
||||||
msgid "After"
|
msgid "After"
|
||||||
msgstr "По"
|
msgstr "Следно"
|
||||||
|
|
||||||
#. TRANS: Pagination message to go to a page displaying information more in the
|
#. TRANS: Pagination message to go to a page displaying information more in the
|
||||||
#. TRANS: past than the currently displayed information.
|
#. TRANS: past than the currently displayed information.
|
||||||
#: lib/action.php:1213
|
#: lib/action.php:1213
|
||||||
msgid "Before"
|
msgid "Before"
|
||||||
msgstr "Пред"
|
msgstr "Претходно"
|
||||||
|
|
||||||
#. TRANS: Client exception thrown when a feed instance is a DOMDocument.
|
#. TRANS: Client exception thrown when a feed instance is a DOMDocument.
|
||||||
#: lib/activity.php:122
|
#: lib/activity.php:122
|
||||||
@ -6547,7 +6547,7 @@ msgstr ""
|
|||||||
"впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки "
|
"впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки "
|
||||||
"што ќе можете да ги видите само Вие."
|
"што ќе можете да ги видите само Вие."
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "од"
|
msgstr "од"
|
||||||
|
|
||||||
@ -6709,23 +6709,23 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr "во"
|
msgstr "во"
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "во контекст"
|
msgstr "во контекст"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Повторено од"
|
msgstr "Повторено од"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Одговори на забелешкава"
|
msgstr "Одговори на забелешкава"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Одговор"
|
msgstr "Одговор"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Забелешката е повторена"
|
msgstr "Забелешката е повторена"
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:16+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:47+0000\n"
|
||||||
"Language-Team: Norwegian (bokmål)\n"
|
"Language-Team: Norwegian (bokmål)\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: no\n"
|
"X-Language-Code: no\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4895,21 +4895,21 @@ msgstr "Problem ved lagring av gruppeinnboks."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:19+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:12:58+0000\n"
|
||||||
"Language-Team: Dutch\n"
|
"Language-Team: Dutch\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: nl\n"
|
"X-Language-Code: nl\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -804,7 +804,7 @@ msgid "Preview"
|
|||||||
msgstr "Voorvertoning"
|
msgstr "Voorvertoning"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
@ -1086,7 +1086,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Deze mededeling niet verwijderen"
|
msgstr "Deze mededeling niet verwijderen"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Deze mededeling verwijderen"
|
msgstr "Deze mededeling verwijderen"
|
||||||
|
|
||||||
@ -3537,7 +3537,7 @@ msgstr "U kunt uw eigen mededeling niet herhalen."
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "U hent die mededeling al herhaald."
|
msgstr "U hent die mededeling al herhaald."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Herhaald"
|
msgstr "Herhaald"
|
||||||
|
|
||||||
@ -4907,7 +4907,7 @@ msgstr ""
|
|||||||
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
#. TRANS: Client exception thrown if a file upload does not have a valid name.
|
||||||
#: classes/File.php:248 classes/File.php:263
|
#: classes/File.php:248 classes/File.php:263
|
||||||
msgid "Invalid filename."
|
msgid "Invalid filename."
|
||||||
msgstr "Ongeldig bestandsnaam."
|
msgstr "Ongeldige bestandsnaam."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when joining a group fails.
|
#. TRANS: Exception thrown when joining a group fails.
|
||||||
#: classes/Group_member.php:42
|
#: classes/Group_member.php:42
|
||||||
@ -5026,14 +5026,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -5042,7 +5042,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -6599,7 +6599,7 @@ msgstr ""
|
|||||||
"U hebt geen privéberichten. U kunt privéberichten verzenden aan andere "
|
"U hebt geen privéberichten. U kunt privéberichten verzenden aan andere "
|
||||||
"gebruikers. Mensen kunnen u privéberichten sturen die alleen u kunt lezen."
|
"gebruikers. Mensen kunnen u privéberichten sturen die alleen u kunt lezen."
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "van"
|
msgstr "van"
|
||||||
|
|
||||||
@ -6697,7 +6697,7 @@ msgstr "Beschikbare tekens"
|
|||||||
#: lib/messageform.php:178 lib/noticeform.php:236
|
#: lib/messageform.php:178 lib/noticeform.php:236
|
||||||
msgctxt "Send button for sending notice"
|
msgctxt "Send button for sending notice"
|
||||||
msgid "Send"
|
msgid "Send"
|
||||||
msgstr "OK"
|
msgstr "Verzenden"
|
||||||
|
|
||||||
#: lib/noticeform.php:160
|
#: lib/noticeform.php:160
|
||||||
msgid "Send a notice"
|
msgid "Send a notice"
|
||||||
@ -6761,23 +6761,23 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr "op"
|
msgstr "op"
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "in context"
|
msgstr "in context"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Herhaald door"
|
msgstr "Herhaald door"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Op deze mededeling antwoorden"
|
msgstr "Op deze mededeling antwoorden"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Antwoorden"
|
msgstr "Antwoorden"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Mededeling herhaald"
|
msgstr "Mededeling herhaald"
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:17+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:48+0000\n"
|
||||||
"Language-Team: Norwegian Nynorsk\n"
|
"Language-Team: Norwegian Nynorsk\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: nn\n"
|
"X-Language-Code: nn\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5047,21 +5047,21 @@ msgstr "Eit problem oppstod ved lagring av notis."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "%1$s (%2$s)"
|
msgstr "%1$s (%2$s)"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,8 +11,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:20+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:52+0000\n"
|
||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||||
"Language-Team: Polish <pl@li.org>\n"
|
"Language-Team: Polish <pl@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -20,7 +20,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"|| n%100>=20) ? 1 : 2);\n"
|
"|| n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: pl\n"
|
"X-Language-Code: pl\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4955,21 +4955,21 @@ msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr "Nie można unieważnić roli \"\"%1$s\" użytkownika #%2$d; nie istnieje."
|
msgstr "Nie można unieważnić roli \"\"%1$s\" użytkownika #%2$d; nie istnieje."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:22+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:54+0000\n"
|
||||||
"Language-Team: Portuguese\n"
|
"Language-Team: Portuguese\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: pt\n"
|
"X-Language-Code: pt\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4959,14 +4959,14 @@ msgstr "Problema na gravação da caixa de entrada do grupo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4974,7 +4974,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -13,12 +13,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:23+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:55+0000\n"
|
||||||
"Language-Team: Brazilian Portuguese\n"
|
"Language-Team: Brazilian Portuguese\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: pt-br\n"
|
"X-Language-Code: pt-br\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4995,21 +4995,21 @@ msgstr "Problema no salvamento das mensagens recebidas do grupo."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -12,12 +12,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:25+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:57+0000\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: ru\n"
|
"X-Language-Code: ru\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4971,14 +4971,14 @@ msgstr "Проблемы с сохранением входящих сообще
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -4987,7 +4987,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:48+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -763,7 +763,7 @@ msgid "Preview"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1036,7 +1036,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3310,7 +3310,7 @@ msgstr ""
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4679,21 +4679,21 @@ msgstr ""
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -6071,7 +6071,7 @@ msgid ""
|
|||||||
"users in conversation. People can send you messages for your eyes only."
|
"users in conversation. People can send you messages for your eyes only."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -6225,23 +6225,23 @@ msgstr ""
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -10,12 +10,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:26+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:24:59+0000\n"
|
||||||
"Language-Team: Swedish\n"
|
"Language-Team: Swedish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: sv\n"
|
"X-Language-Code: sv\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4957,21 +4957,21 @@ msgstr "Problem med att spara gruppinkorg."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:28+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:25:01+0000\n"
|
||||||
"Language-Team: Telugu\n"
|
"Language-Team: Telugu\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: te\n"
|
"X-Language-Code: te\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4842,21 +4842,21 @@ msgstr "సందేశాన్ని భద్రపరచడంలో పొ
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -9,12 +9,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:29+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:25:03+0000\n"
|
||||||
"Language-Team: Turkish\n"
|
"Language-Team: Turkish\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: tr\n"
|
"X-Language-Code: tr\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -4960,21 +4960,21 @@ msgstr "Durum mesajını kaydederken hata oluştu."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -11,12 +11,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-11 10:11+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:31+0000\n"
|
"PO-Revision-Date: 2010-08-11 10:13:19+0000\n"
|
||||||
"Language-Team: Ukrainian\n"
|
"Language-Team: Ukrainian\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: uk\n"
|
"X-Language-Code: uk\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -792,7 +792,7 @@ msgid "Preview"
|
|||||||
msgstr "Перегляд"
|
msgstr "Перегляд"
|
||||||
|
|
||||||
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
#: actions/avatarsettings.php:149 actions/showapplication.php:252
|
||||||
#: lib/deleteuserform.php:66 lib/noticelist.php:656
|
#: lib/deleteuserform.php:66 lib/noticelist.php:657
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Видалити"
|
msgstr "Видалити"
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgid "Do not delete this notice"
|
|||||||
msgstr "Не видаляти цей допис"
|
msgstr "Не видаляти цей допис"
|
||||||
|
|
||||||
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
#. TRANS: Submit button title for 'Yes' when deleting a notice.
|
||||||
#: actions/deletenotice.php:158 lib/noticelist.php:656
|
#: actions/deletenotice.php:158 lib/noticelist.php:657
|
||||||
msgid "Delete this notice"
|
msgid "Delete this notice"
|
||||||
msgstr "Видалити допис"
|
msgstr "Видалити допис"
|
||||||
|
|
||||||
@ -3494,7 +3494,7 @@ msgstr "Ви не можете повторювати свої власні до
|
|||||||
msgid "You already repeated that notice."
|
msgid "You already repeated that notice."
|
||||||
msgstr "Ви вже повторили цей допис."
|
msgstr "Ви вже повторили цей допис."
|
||||||
|
|
||||||
#: actions/repeat.php:114 lib/noticelist.php:675
|
#: actions/repeat.php:114 lib/noticelist.php:676
|
||||||
msgid "Repeated"
|
msgid "Repeated"
|
||||||
msgstr "Повторено"
|
msgstr "Повторено"
|
||||||
|
|
||||||
@ -4960,21 +4960,21 @@ msgstr "Проблема при збереженні вхідних дописі
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "RT @%1$s %2$s"
|
msgstr "RT @%1$s %2$s"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr "Не вдалося скасувати роль «%s» для користувача #%2$s; не існує."
|
msgstr "Не вдалося скасувати роль «%s» для користувача #%2$s; не існує."
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -6210,17 +6210,17 @@ msgid ""
|
|||||||
"Thanks for your time, \n"
|
"Thanks for your time, \n"
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Агов, %s.\n"
|
"Агов, %s!\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Хтось щойно ввів цю електронну адресу на %s.\n"
|
"Хтось щойно ввів цю електронну адресу на %s.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Якщо то були Ви, мусите це підтвердити використовуючи посилання:\n"
|
"Якщо то були Ви, мусите це підтвердити, використовуючи посилання:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\t%s\n"
|
"%s\n"
|
||||||
"\n"
|
"\n"
|
||||||
"А якщо ні, то просто проігноруйте це повідомлення.\n"
|
"А якщо ні, просто ігноруйте це повідомлення.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Дякуємо за Ваш час \n"
|
"Вибачте за турботу, \n"
|
||||||
"%s\n"
|
"%s\n"
|
||||||
|
|
||||||
#. TRANS: Subject of new-subscriber notification e-mail
|
#. TRANS: Subject of new-subscriber notification e-mail
|
||||||
@ -6517,7 +6517,7 @@ msgstr ""
|
|||||||
"повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите "
|
"повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите "
|
||||||
"лише Ви."
|
"лише Ви."
|
||||||
|
|
||||||
#: lib/mailbox.php:227 lib/noticelist.php:505
|
#: lib/mailbox.php:228 lib/noticelist.php:506
|
||||||
msgid "from"
|
msgid "from"
|
||||||
msgstr "від"
|
msgstr "від"
|
||||||
|
|
||||||
@ -6676,23 +6676,23 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
|
|||||||
msgid "at"
|
msgid "at"
|
||||||
msgstr "в"
|
msgstr "в"
|
||||||
|
|
||||||
#: lib/noticelist.php:567
|
#: lib/noticelist.php:568
|
||||||
msgid "in context"
|
msgid "in context"
|
||||||
msgstr "в контексті"
|
msgstr "в контексті"
|
||||||
|
|
||||||
#: lib/noticelist.php:602
|
#: lib/noticelist.php:603
|
||||||
msgid "Repeated by"
|
msgid "Repeated by"
|
||||||
msgstr "Повторено"
|
msgstr "Повторено"
|
||||||
|
|
||||||
#: lib/noticelist.php:629
|
#: lib/noticelist.php:630
|
||||||
msgid "Reply to this notice"
|
msgid "Reply to this notice"
|
||||||
msgstr "Відповісти на цей допис"
|
msgstr "Відповісти на цей допис"
|
||||||
|
|
||||||
#: lib/noticelist.php:630
|
#: lib/noticelist.php:631
|
||||||
msgid "Reply"
|
msgid "Reply"
|
||||||
msgstr "Відповісти"
|
msgstr "Відповісти"
|
||||||
|
|
||||||
#: lib/noticelist.php:674
|
#: lib/noticelist.php:675
|
||||||
msgid "Notice repeated"
|
msgid "Notice repeated"
|
||||||
msgstr "Допис повторили"
|
msgstr "Допис повторили"
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: StatusNet\n"
|
"Project-Id-Version: StatusNet\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-08-03 13:21+0000\n"
|
"POT-Creation-Date: 2010-08-07 16:23+0000\n"
|
||||||
"PO-Revision-Date: 2010-08-03 13:22:32+0000\n"
|
"PO-Revision-Date: 2010-08-07 16:25:06+0000\n"
|
||||||
"Language-Team: Vietnamese\n"
|
"Language-Team: Vietnamese\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n"
|
"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n"
|
||||||
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
|
||||||
"X-Language-Code: vi\n"
|
"X-Language-Code: vi\n"
|
||||||
"X-Message-Group: out-statusnet\n"
|
"X-Message-Group: out-statusnet\n"
|
||||||
@ -5103,21 +5103,21 @@ msgstr "Có lỗi xảy ra khi lưu tin nhắn."
|
|||||||
|
|
||||||
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
#: classes/Notice.php:1614
|
#: classes/Notice.php:1745
|
||||||
#, fuzzy, php-format
|
#, fuzzy, php-format
|
||||||
msgid "RT @%1$s %2$s"
|
msgid "RT @%1$s %2$s"
|
||||||
msgstr "%s (%s)"
|
msgstr "%s (%s)"
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:740
|
#: classes/Profile.php:737
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
|
||||||
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
#. TRANS: %1$s is the role name, %2$s is the user ID (number).
|
||||||
#: classes/Profile.php:749
|
#: classes/Profile.php:746
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -30,11 +30,13 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
|||||||
|
|
||||||
class GravatarPlugin extends Plugin
|
class GravatarPlugin extends Plugin
|
||||||
{
|
{
|
||||||
function onInitializePlugin() {
|
function onInitializePlugin()
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStartAvatarFormData($action) {
|
function onStartAvatarFormData($action)
|
||||||
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
$hasGravatar = $this->hasGravatar($user->id);
|
$hasGravatar = $this->hasGravatar($user->id);
|
||||||
|
|
||||||
@ -43,7 +45,8 @@ class GravatarPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onEndAvatarFormData(&$action) {
|
function onEndAvatarFormData($action)
|
||||||
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
$hasGravatar = $this->hasGravatar($user->id);
|
$hasGravatar = $this->hasGravatar($user->id);
|
||||||
|
|
||||||
@ -89,7 +92,8 @@ class GravatarPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStartAvatarSaveForm($action) {
|
function onStartAvatarSaveForm($action)
|
||||||
|
{
|
||||||
if ($action->arg('add')) {
|
if ($action->arg('add')) {
|
||||||
$result = $this->gravatar_save();
|
$result = $this->gravatar_save();
|
||||||
|
|
||||||
@ -178,7 +182,8 @@ class GravatarPlugin extends Plugin
|
|||||||
'success' => true);
|
'success' => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function gravatar_url($email, $size) {
|
function gravatar_url($email, $size)
|
||||||
|
{
|
||||||
$url = "http://www.gravatar.com/avatar.php?gravatar_id=".
|
$url = "http://www.gravatar.com/avatar.php?gravatar_id=".
|
||||||
md5(strtolower($email)).
|
md5(strtolower($email)).
|
||||||
"&default=".urlencode(Avatar::defaultImage($size)).
|
"&default=".urlencode(Avatar::defaultImage($size)).
|
||||||
@ -197,4 +202,4 @@ class GravatarPlugin extends Plugin
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -28,6 +28,15 @@ set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/ext
|
|||||||
|
|
||||||
class FeedSubException extends Exception
|
class FeedSubException extends Exception
|
||||||
{
|
{
|
||||||
|
function __construct($msg=null)
|
||||||
|
{
|
||||||
|
$type = get_class($this);
|
||||||
|
if ($msg) {
|
||||||
|
parent::__construct("$type: $msg");
|
||||||
|
} else {
|
||||||
|
parent::__construct($type);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OStatusPlugin extends Plugin
|
class OStatusPlugin extends Plugin
|
||||||
@ -479,6 +488,24 @@ class OStatusPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tell the FeedSub infrastructure whether we have any active OStatus
|
||||||
|
* usage for the feed; if not it'll be able to garbage-collect the
|
||||||
|
* feed subscription.
|
||||||
|
*
|
||||||
|
* @param FeedSub $feedsub
|
||||||
|
* @param integer $count in/out
|
||||||
|
* @return mixed hook return code
|
||||||
|
*/
|
||||||
|
function onFeedSubSubscriberCount($feedsub, &$count)
|
||||||
|
{
|
||||||
|
$oprofile = Ostatus_profile::staticGet('feeduri', $feedsub->uri);
|
||||||
|
if ($oprofile) {
|
||||||
|
$count += $oprofile->subscriberCount();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When about to subscribe to a remote user, start a server-to-server
|
* When about to subscribe to a remote user, start a server-to-server
|
||||||
* PuSH subscription if needed. If we can't establish that, abort.
|
* PuSH subscription if needed. If we can't establish that, abort.
|
||||||
|
@ -1,18 +1,42 @@
|
|||||||
Plugin to support importing updates from external RSS and Atom feeds into your timeline.
|
Plugin to support importing and exporting notices through Atom and RSS feeds.
|
||||||
|
The OStatus plugin concentrates on user-to-user cases for federating StatusNet
|
||||||
|
and similar social networking / microblogging / blogging sites, but includes
|
||||||
|
low-level feed subscription systems which are used by some other plugins.
|
||||||
|
|
||||||
|
Uses PubSubHubbub for push feed updates; currently non-PuSH feeds cannot be
|
||||||
|
subscribed unless an external PuSH hub proxy is used.
|
||||||
|
|
||||||
Uses PubSubHubbub for push feed updates; currently non-PuSH feeds cannot be subscribed.
|
|
||||||
|
|
||||||
Configuration options available:
|
Configuration options available:
|
||||||
|
|
||||||
$config['ostatus']['hub']
|
$config['ostatus']['hub']
|
||||||
(default internal hub)
|
(default internal hub)
|
||||||
Set to URL of an external PuSH hub to use it instead of our internal hub.
|
Set to URL of an external PuSH hub to use it instead of our internal hub
|
||||||
|
for sending outgoing updates in user and group feeds.
|
||||||
|
|
||||||
$config['ostatus']['hub_retries']
|
$config['ostatus']['hub_retries']
|
||||||
(default 0)
|
(default 0)
|
||||||
Number of times to retry a PuSH send to consumers if using internal hub
|
Number of times to retry a PuSH send to consumers if using internal hub
|
||||||
|
|
||||||
|
|
||||||
|
Settings controlling incoming feed subscription:
|
||||||
|
|
||||||
|
$config['feedsub']['fallback_hub']
|
||||||
|
To subscribe to feeds that don't have a hub, an external PuSH proxy hub
|
||||||
|
such as Superfeedr may be used. Any feed without a hub of its own will
|
||||||
|
be subscribed through the specified hub URL instead. If the external hub
|
||||||
|
has usage charges, be aware that there is no restriction placed to how
|
||||||
|
many feeds may be subscribed!
|
||||||
|
|
||||||
|
$config['feedsub']['fallback_hub'] = 'https://superfeedr.com/hubbub';
|
||||||
|
|
||||||
|
$config['feedsub']['hub_user']
|
||||||
|
$config['feedsub']['hub_password']
|
||||||
|
If using the fallback hub mode, these settings may be used to provide
|
||||||
|
HTTP authentication credentials for contacting the hub. Default hubs
|
||||||
|
specified from feeds are assumed to not require
|
||||||
|
|
||||||
|
|
||||||
For testing, shouldn't be used in production:
|
For testing, shouldn't be used in production:
|
||||||
|
|
||||||
$config['ostatus']['skip_signatures']
|
$config['ostatus']['skip_signatures']
|
||||||
@ -23,12 +47,11 @@ $config['feedsub']['nohub']
|
|||||||
(default require hub)
|
(default require hub)
|
||||||
Allow low-level feed subscription setup for feeds without hubs.
|
Allow low-level feed subscription setup for feeds without hubs.
|
||||||
Not actually usable at this stage, OStatus will check for hubs too
|
Not actually usable at this stage, OStatus will check for hubs too
|
||||||
and we have no polling backend.
|
and we have no polling backend. (The fallback hub option can be used
|
||||||
|
with a 3rd-party service to provide such polling.)
|
||||||
|
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
* fully functional l10n
|
* better support for feeds that aren't natively oriented at social networking
|
||||||
* redo non-OStatus feed support
|
|
||||||
** rssCloud support?
|
|
||||||
** possibly a polling daemon to support non-PuSH feeds?
|
|
||||||
* make use of tags/categories from feeds
|
* make use of tags/categories from feeds
|
||||||
|
* better repeat handling
|
||||||
|
@ -61,7 +61,7 @@ class GroupsalmonAction extends SalmonAction
|
|||||||
function handlePost()
|
function handlePost()
|
||||||
{
|
{
|
||||||
// @fixme process all objects?
|
// @fixme process all objects?
|
||||||
switch ($this->act->objects[0]->type) {
|
switch ($this->activity->objects[0]->type) {
|
||||||
case ActivityObject::ARTICLE:
|
case ActivityObject::ARTICLE:
|
||||||
case ActivityObject::BLOGENTRY:
|
case ActivityObject::BLOGENTRY:
|
||||||
case ActivityObject::NOTE:
|
case ActivityObject::NOTE:
|
||||||
@ -74,7 +74,7 @@ class GroupsalmonAction extends SalmonAction
|
|||||||
|
|
||||||
// Notice must be to the attention of this group
|
// Notice must be to the attention of this group
|
||||||
|
|
||||||
$context = $this->act->context;
|
$context = $this->activity->context;
|
||||||
|
|
||||||
if (empty($context->attention)) {
|
if (empty($context->attention)) {
|
||||||
throw new ClientException("Not to the attention of anyone.");
|
throw new ClientException("Not to the attention of anyone.");
|
||||||
|
@ -55,10 +55,10 @@ class UsersalmonAction extends SalmonAction
|
|||||||
*/
|
*/
|
||||||
function handlePost()
|
function handlePost()
|
||||||
{
|
{
|
||||||
common_log(LOG_INFO, "Received post of '{$this->act->objects[0]->id}' from '{$this->act->actor->id}'");
|
common_log(LOG_INFO, "Received post of '{$this->activity->objects[0]->id}' from '{$this->activity->actor->id}'");
|
||||||
|
|
||||||
// @fixme: process all activity objects?
|
// @fixme: process all activity objects?
|
||||||
switch ($this->act->objects[0]->type) {
|
switch ($this->activity->objects[0]->type) {
|
||||||
case ActivityObject::ARTICLE:
|
case ActivityObject::ARTICLE:
|
||||||
case ActivityObject::BLOGENTRY:
|
case ActivityObject::BLOGENTRY:
|
||||||
case ActivityObject::NOTE:
|
case ActivityObject::NOTE:
|
||||||
@ -72,7 +72,7 @@ class UsersalmonAction extends SalmonAction
|
|||||||
// Notice must either be a) in reply to a notice by this user
|
// Notice must either be a) in reply to a notice by this user
|
||||||
// or b) to the attention of this user
|
// or b) to the attention of this user
|
||||||
|
|
||||||
$context = $this->act->context;
|
$context = $this->activity->context;
|
||||||
|
|
||||||
if (!empty($context->replyToID)) {
|
if (!empty($context->replyToID)) {
|
||||||
$notice = Notice::staticGet('uri', $context->replyToID);
|
$notice = Notice::staticGet('uri', $context->replyToID);
|
||||||
@ -92,7 +92,7 @@ class UsersalmonAction extends SalmonAction
|
|||||||
throw new ClientException("Not to anyone in reply to anything!");
|
throw new ClientException("Not to anyone in reply to anything!");
|
||||||
}
|
}
|
||||||
|
|
||||||
$existing = Notice::staticGet('uri', $this->act->objects[0]->id);
|
$existing = Notice::staticGet('uri', $this->activity->objects[0]->id);
|
||||||
|
|
||||||
if (!empty($existing)) {
|
if (!empty($existing)) {
|
||||||
common_log(LOG_ERR, "Not saving notice '{$existing->uri}'; already exists.");
|
common_log(LOG_ERR, "Not saving notice '{$existing->uri}'; already exists.");
|
||||||
@ -143,7 +143,7 @@ class UsersalmonAction extends SalmonAction
|
|||||||
|
|
||||||
function handleFavorite()
|
function handleFavorite()
|
||||||
{
|
{
|
||||||
$notice = $this->getNotice($this->act->objects[0]);
|
$notice = $this->getNotice($this->activity->objects[0]);
|
||||||
$profile = $this->ensureProfile()->localProfile();
|
$profile = $this->ensureProfile()->localProfile();
|
||||||
|
|
||||||
$old = Fave::pkeyGet(array('user_id' => $profile->id,
|
$old = Fave::pkeyGet(array('user_id' => $profile->id,
|
||||||
@ -164,7 +164,7 @@ class UsersalmonAction extends SalmonAction
|
|||||||
*/
|
*/
|
||||||
function handleUnfavorite()
|
function handleUnfavorite()
|
||||||
{
|
{
|
||||||
$notice = $this->getNotice($this->act->objects[0]);
|
$notice = $this->getNotice($this->activity->objects[0]);
|
||||||
$profile = $this->ensureProfile()->localProfile();
|
$profile = $this->ensureProfile()->localProfile();
|
||||||
|
|
||||||
$fave = Fave::pkeyGet(array('user_id' => $profile->id,
|
$fave = Fave::pkeyGet(array('user_id' => $profile->id,
|
||||||
|
@ -207,8 +207,8 @@ class FeedSub extends Memcached_DataObject
|
|||||||
$discover = new FeedDiscovery();
|
$discover = new FeedDiscovery();
|
||||||
$discover->discoverFromFeedURL($feeduri);
|
$discover->discoverFromFeedURL($feeduri);
|
||||||
|
|
||||||
$huburi = $discover->getAtomLink('hub');
|
$huburi = $discover->getHubLink();
|
||||||
if (!$huburi) {
|
if (!$huburi && !common_config('feedsub', 'fallback_hub')) {
|
||||||
throw new FeedSubNoHubException();
|
throw new FeedSubNoHubException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,8 +241,12 @@ class FeedSub extends Memcached_DataObject
|
|||||||
common_log(LOG_WARNING, "Attempting to (re)start PuSH subscription to $this->uri in unexpected state $this->sub_state");
|
common_log(LOG_WARNING, "Attempting to (re)start PuSH subscription to $this->uri in unexpected state $this->sub_state");
|
||||||
}
|
}
|
||||||
if (empty($this->huburi)) {
|
if (empty($this->huburi)) {
|
||||||
if (common_config('feedsub', 'nohub')) {
|
if (common_config('feedsub', 'fallback_hub')) {
|
||||||
|
// No native hub on this feed?
|
||||||
|
// Use our fallback hub, which handles polling on our behalf.
|
||||||
|
} else if (common_config('feedsub', 'nohub')) {
|
||||||
// Fake it! We're just testing remote feeds w/o hubs.
|
// Fake it! We're just testing remote feeds w/o hubs.
|
||||||
|
// We'll never actually get updates in this mode.
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
throw new ServerException("Attempting to start PuSH subscription for feed with no hub");
|
throw new ServerException("Attempting to start PuSH subscription for feed with no hub");
|
||||||
@ -255,6 +259,9 @@ class FeedSub extends Memcached_DataObject
|
|||||||
/**
|
/**
|
||||||
* Send a PuSH unsubscription request to the hub for this feed.
|
* Send a PuSH unsubscription request to the hub for this feed.
|
||||||
* The hub will later send us a confirmation POST to /main/push/callback.
|
* The hub will later send us a confirmation POST to /main/push/callback.
|
||||||
|
* Warning: this will cancel the subscription even if someone else in
|
||||||
|
* the system is using it. Most callers will want garbageCollect() instead,
|
||||||
|
* which confirms there's no uses left.
|
||||||
*
|
*
|
||||||
* @return bool true on success, false on failure
|
* @return bool true on success, false on failure
|
||||||
* @throws ServerException if feed state is not valid
|
* @throws ServerException if feed state is not valid
|
||||||
@ -264,8 +271,12 @@ class FeedSub extends Memcached_DataObject
|
|||||||
common_log(LOG_WARNING, "Attempting to (re)end PuSH subscription to $this->uri in unexpected state $this->sub_state");
|
common_log(LOG_WARNING, "Attempting to (re)end PuSH subscription to $this->uri in unexpected state $this->sub_state");
|
||||||
}
|
}
|
||||||
if (empty($this->huburi)) {
|
if (empty($this->huburi)) {
|
||||||
if (common_config('feedsub', 'nohub')) {
|
if (common_config('feedsub', 'fallback_hub')) {
|
||||||
|
// No native hub on this feed?
|
||||||
|
// Use our fallback hub, which handles polling on our behalf.
|
||||||
|
} else if (common_config('feedsub', 'nohub')) {
|
||||||
// Fake it! We're just testing remote feeds w/o hubs.
|
// Fake it! We're just testing remote feeds w/o hubs.
|
||||||
|
// We'll never actually get updates in this mode.
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
throw new ServerException("Attempting to end PuSH subscription for feed with no hub");
|
throw new ServerException("Attempting to end PuSH subscription for feed with no hub");
|
||||||
@ -275,6 +286,33 @@ class FeedSub extends Memcached_DataObject
|
|||||||
return $this->doSubscribe('unsubscribe');
|
return $this->doSubscribe('unsubscribe');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if there are any active local uses of this feed, and if not then
|
||||||
|
* make sure it's inactive, unsubscribing if necessary.
|
||||||
|
*
|
||||||
|
* @return boolean true if the subscription is now inactive, false if still active.
|
||||||
|
*/
|
||||||
|
public function garbageCollect()
|
||||||
|
{
|
||||||
|
if ($this->sub_state == '' || $this->sub_state == 'inactive') {
|
||||||
|
// No active PuSH subscription, we can just leave it be.
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
// PuSH subscription is either active or in an indeterminate state.
|
||||||
|
// Check if we're out of subscribers, and if so send an unsubscribe.
|
||||||
|
$count = 0;
|
||||||
|
Event::handle('FeedSubSubscriberCount', array($this, &$count));
|
||||||
|
|
||||||
|
if ($count) {
|
||||||
|
common_log(LOG_INFO, __METHOD__ . ': ok, ' . $count . ' user(s) left for ' . $this->uri);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
common_log(LOG_INFO, __METHOD__ . ': unsubscribing, no users left for ' . $this->uri);
|
||||||
|
return $this->unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function doSubscribe($mode)
|
protected function doSubscribe($mode)
|
||||||
{
|
{
|
||||||
$orig = clone($this);
|
$orig = clone($this);
|
||||||
@ -296,7 +334,21 @@ class FeedSub extends Memcached_DataObject
|
|||||||
'hub.secret' => $this->secret,
|
'hub.secret' => $this->secret,
|
||||||
'hub.topic' => $this->uri);
|
'hub.topic' => $this->uri);
|
||||||
$client = new HTTPClient();
|
$client = new HTTPClient();
|
||||||
$response = $client->post($this->huburi, $headers, $post);
|
if ($this->huburi) {
|
||||||
|
$hub = $this->huburi;
|
||||||
|
} else {
|
||||||
|
if (common_config('feedsub', 'fallback_hub')) {
|
||||||
|
$hub = common_config('feedsub', 'fallback_hub');
|
||||||
|
if (common_config('feedsub', 'hub_user')) {
|
||||||
|
$u = common_config('feedsub', 'hub_user');
|
||||||
|
$p = common_config('feedsub', 'hub_pass');
|
||||||
|
$client->setAuth($u, $p);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new FeedSubException('WTF?');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$response = $client->post($hub, $headers, $post);
|
||||||
$status = $response->getStatus();
|
$status = $response->getStatus();
|
||||||
if ($status == 202) {
|
if ($status == 202) {
|
||||||
common_log(LOG_INFO, __METHOD__ . ': sub req ok, awaiting verification callback');
|
common_log(LOG_INFO, __METHOD__ . ': sub req ok, awaiting verification callback');
|
||||||
|
@ -215,22 +215,13 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a PuSH unsubscription request to the hub for this feed.
|
* Check if this remote profile has any active local subscriptions, and
|
||||||
* The hub will later send us a confirmation POST to /main/push/callback.
|
* if not drop the PuSH subscription feed.
|
||||||
*
|
*
|
||||||
* @return bool true on success, false on failure
|
* @return bool true on success, false on failure
|
||||||
* @throws ServerException if feed state is not valid
|
|
||||||
*/
|
*/
|
||||||
public function unsubscribe() {
|
public function unsubscribe() {
|
||||||
$feedsub = FeedSub::staticGet('uri', $this->feeduri);
|
$this->garbageCollect();
|
||||||
if (!$feedsub || $feedsub->sub_state == '' || $feedsub->sub_state == 'inactive') {
|
|
||||||
// No active PuSH subscription, we can just leave it be.
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
// PuSH subscription is either active or in an indeterminate state.
|
|
||||||
// Send an unsubscribe.
|
|
||||||
return $feedsub->unsubscribe();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -240,6 +231,21 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function garbageCollect()
|
public function garbageCollect()
|
||||||
|
{
|
||||||
|
$feedsub = FeedSub::staticGet('uri', $this->feeduri);
|
||||||
|
return $feedsub->garbageCollect();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if this remote profile has any active local subscriptions, so the
|
||||||
|
* PuSH subscription layer can decide if it can drop the feed.
|
||||||
|
*
|
||||||
|
* This gets called via the FeedSubSubscriberCount event when running
|
||||||
|
* FeedSub::garbageCollect().
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function subscriberCount()
|
||||||
{
|
{
|
||||||
if ($this->isGroup()) {
|
if ($this->isGroup()) {
|
||||||
$members = $this->localGroup()->getMembers(0, 1);
|
$members = $this->localGroup()->getMembers(0, 1);
|
||||||
@ -247,13 +253,14 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
} else {
|
} else {
|
||||||
$count = $this->localProfile()->subscriberCount();
|
$count = $this->localProfile()->subscriberCount();
|
||||||
}
|
}
|
||||||
if ($count == 0) {
|
common_log(LOG_INFO, __METHOD__ . " SUB COUNT BEFORE: $count");
|
||||||
common_log(LOG_INFO, "Unsubscribing from now-unused remote feed $this->feeduri");
|
|
||||||
$this->unsubscribe();
|
// Other plugins may be piggybacking on OStatus without having
|
||||||
return true;
|
// an active group or user-to-user subscription we know about.
|
||||||
} else {
|
Event::handle('Ostatus_profileSubscriberCount', array($this, &$count));
|
||||||
return false;
|
common_log(LOG_INFO, __METHOD__ . " SUB COUNT AFTER: $count");
|
||||||
}
|
|
||||||
|
return $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -438,26 +445,31 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
* @param DOMElement $feed for context
|
* @param DOMElement $feed for context
|
||||||
* @param string $source identifier ("push" or "salmon")
|
* @param string $source identifier ("push" or "salmon")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function processEntry($entry, $feed, $source)
|
public function processEntry($entry, $feed, $source)
|
||||||
{
|
{
|
||||||
$activity = new Activity($entry, $feed);
|
$activity = new Activity($entry, $feed);
|
||||||
|
|
||||||
// @todo process all activity objects
|
if (Event::handle('StartHandleFeedEntry', array($activity))) {
|
||||||
switch ($activity->objects[0]->type) {
|
|
||||||
case ActivityObject::ARTICLE:
|
|
||||||
case ActivityObject::BLOGENTRY:
|
|
||||||
case ActivityObject::NOTE:
|
|
||||||
case ActivityObject::STATUS:
|
|
||||||
case ActivityObject::COMMENT:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new ClientException("Can't handle that kind of post.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($activity->verb == ActivityVerb::POST) {
|
// @todo process all activity objects
|
||||||
$this->processPost($activity, $source);
|
switch ($activity->objects[0]->type) {
|
||||||
} else {
|
case ActivityObject::ARTICLE:
|
||||||
common_log(LOG_INFO, "Ignoring activity with unrecognized verb $activity->verb");
|
case ActivityObject::BLOGENTRY:
|
||||||
|
case ActivityObject::NOTE:
|
||||||
|
case ActivityObject::STATUS:
|
||||||
|
case ActivityObject::COMMENT:
|
||||||
|
if ($activity->verb == ActivityVerb::POST) {
|
||||||
|
$this->processPost($activity, $source);
|
||||||
|
} else {
|
||||||
|
common_log(LOG_INFO, "Ignoring activity with unrecognized verb $activity->verb");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ClientException("Can't handle that kind of post.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Event::handle('EndHandleFeedEntry', array($activity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,8 +498,14 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
// OK here! assume the default
|
// OK here! assume the default
|
||||||
} else if ($actor->id == $this->uri || $actor->link == $this->uri) {
|
} else if ($actor->id == $this->uri || $actor->link == $this->uri) {
|
||||||
$this->updateFromActivityObject($actor);
|
$this->updateFromActivityObject($actor);
|
||||||
} else {
|
} else if ($actor->id) {
|
||||||
|
// We have an ActivityStreams actor with an explicit ID that doesn't match the feed owner.
|
||||||
|
// This isn't what we expect from mainline OStatus person feeds!
|
||||||
|
// Group feeds go down another path, with different validation.
|
||||||
throw new Exception("Got an actor '{$actor->title}' ({$actor->id}) on single-user feed for {$this->uri}");
|
throw new Exception("Got an actor '{$actor->title}' ({$actor->id}) on single-user feed for {$this->uri}");
|
||||||
|
} else {
|
||||||
|
// Plain <author> without ActivityStreams actor info.
|
||||||
|
// We'll just ignore this info for now and save the update under the feed's identity.
|
||||||
}
|
}
|
||||||
|
|
||||||
$oprofile = $this;
|
$oprofile = $this;
|
||||||
@ -668,7 +686,7 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
common_log(LOG_DEBUG, "Original reply recipients: " . implode(', ', $attention_uris));
|
common_log(LOG_DEBUG, "Original reply recipients: " . implode(', ', $attention_uris));
|
||||||
$groups = array();
|
$groups = array();
|
||||||
$replies = array();
|
$replies = array();
|
||||||
foreach ($attention_uris as $recipient) {
|
foreach (array_unique($attention_uris) as $recipient) {
|
||||||
// Is the recipient a local user?
|
// Is the recipient a local user?
|
||||||
$user = User::staticGet('uri', $recipient);
|
$user = User::staticGet('uri', $recipient);
|
||||||
if ($user) {
|
if ($user) {
|
||||||
@ -862,12 +880,12 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
$feeduri = $discover->discoverFromFeedURL($feed_url);
|
$feeduri = $discover->discoverFromFeedURL($feed_url);
|
||||||
$hints['feedurl'] = $feeduri;
|
$hints['feedurl'] = $feeduri;
|
||||||
|
|
||||||
$huburi = $discover->getAtomLink('hub');
|
$huburi = $discover->getHubLink();
|
||||||
$hints['hub'] = $huburi;
|
$hints['hub'] = $huburi;
|
||||||
$salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES);
|
$salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES);
|
||||||
$hints['salmon'] = $salmonuri;
|
$hints['salmon'] = $salmonuri;
|
||||||
|
|
||||||
if (!$huburi) {
|
if (!$huburi && !common_config('feedsub', 'fallback_hub')) {
|
||||||
// We can only deal with folks with a PuSH hub
|
// We can only deal with folks with a PuSH hub
|
||||||
throw new FeedSubNoHubException();
|
throw new FeedSubNoHubException();
|
||||||
}
|
}
|
||||||
@ -1263,10 +1281,10 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
$discover = new FeedDiscovery();
|
$discover = new FeedDiscovery();
|
||||||
$discover->discoverFromFeedURL($hints['feedurl']);
|
$discover->discoverFromFeedURL($hints['feedurl']);
|
||||||
}
|
}
|
||||||
$huburi = $discover->getAtomLink('hub');
|
$huburi = $discover->getHubLink();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$huburi) {
|
if (!$huburi && !common_config('feedsub', 'fallback_hub')) {
|
||||||
// We can only deal with folks with a PuSH hub
|
// We can only deal with folks with a PuSH hub
|
||||||
throw new FeedSubNoHubException();
|
throw new FeedSubNoHubException();
|
||||||
}
|
}
|
||||||
|
@ -87,6 +87,16 @@ class FeedDiscovery
|
|||||||
return ActivityUtils::getLink($this->root, $rel, $type);
|
return ActivityUtils::getLink($this->root, $rel, $type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the referenced PuSH hub link from an Atom feed.
|
||||||
|
*
|
||||||
|
* @return mixed string or false
|
||||||
|
*/
|
||||||
|
public function getHubLink()
|
||||||
|
{
|
||||||
|
return $this->getAtomLink('hub');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $url
|
* @param string $url
|
||||||
* @param bool $htmlOk pass false here if you don't want to follow web pages.
|
* @param bool $htmlOk pass false here if you don't want to follow web pages.
|
||||||
|
@ -210,13 +210,13 @@ class MagicEnvelope
|
|||||||
}
|
}
|
||||||
|
|
||||||
$data_element = $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'data')->item(0);
|
$data_element = $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'data')->item(0);
|
||||||
|
$sig_element = $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'sig')->item(0);
|
||||||
return array(
|
return array(
|
||||||
'data' => trim($data_element->nodeValue),
|
'data' => preg_replace('/\s/', '', $data_element->nodeValue),
|
||||||
'data_type' => $data_element->getAttribute('type'),
|
'data_type' => $data_element->getAttribute('type'),
|
||||||
'encoding' => $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'encoding')->item(0)->nodeValue,
|
'encoding' => $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'encoding')->item(0)->nodeValue,
|
||||||
'alg' => $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'alg')->item(0)->nodeValue,
|
'alg' => $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'alg')->item(0)->nodeValue,
|
||||||
'sig' => $env_element->getElementsByTagNameNS(MagicEnvelope::NS, 'sig')->item(0)->nodeValue,
|
'sig' => preg_replace('/\s/', '', $sig_element->nodeValue),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ class SalmonAction extends Action
|
|||||||
|
|
||||||
$xml = file_get_contents('php://input');
|
$xml = file_get_contents('php://input');
|
||||||
|
|
||||||
|
|
||||||
// Check the signature
|
// Check the signature
|
||||||
$salmon = new Salmon;
|
$salmon = new Salmon;
|
||||||
if (!$salmon->verifyMagicEnv($xml)) {
|
if (!$salmon->verifyMagicEnv($xml)) {
|
||||||
@ -58,7 +57,6 @@ class SalmonAction extends Action
|
|||||||
$env = $magic_env->parse($xml);
|
$env = $magic_env->parse($xml);
|
||||||
$xml = $magic_env->unfold($env);
|
$xml = $magic_env->unfold($env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$dom = DOMDocument::loadXML($xml);
|
$dom = DOMDocument::loadXML($xml);
|
||||||
if ($dom->documentElement->namespaceURI != Activity::ATOM ||
|
if ($dom->documentElement->namespaceURI != Activity::ATOM ||
|
||||||
@ -67,7 +65,7 @@ class SalmonAction extends Action
|
|||||||
$this->clientError(_m('Salmon post must be an Atom entry.'));
|
$this->clientError(_m('Salmon post must be an Atom entry.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->act = new Activity($dom->documentElement);
|
$this->activity = new Activity($dom->documentElement);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,9 +77,9 @@ class SalmonAction extends Action
|
|||||||
{
|
{
|
||||||
StatusNet::setApi(true); // Send smaller error pages
|
StatusNet::setApi(true); // Send smaller error pages
|
||||||
|
|
||||||
common_log(LOG_DEBUG, "Got a " . $this->act->verb);
|
common_log(LOG_DEBUG, "Got a " . $this->activity->verb);
|
||||||
if (Event::handle('StartHandleSalmon', array($this->activity))) {
|
if (Event::handle('StartHandleSalmon', array($this->activity))) {
|
||||||
switch ($this->act->verb)
|
switch ($this->activity->verb)
|
||||||
{
|
{
|
||||||
case ActivityVerb::POST:
|
case ActivityVerb::POST:
|
||||||
$this->handlePost();
|
$this->handlePost();
|
||||||
@ -164,12 +162,12 @@ class SalmonAction extends Action
|
|||||||
*/
|
*/
|
||||||
function handleUpdateProfile()
|
function handleUpdateProfile()
|
||||||
{
|
{
|
||||||
$oprofile = Ostatus_profile::getActorProfile($this->act);
|
$oprofile = Ostatus_profile::getActorProfile($this->activity);
|
||||||
if ($oprofile) {
|
if ($oprofile) {
|
||||||
common_log(LOG_INFO, "Got a profile-update ping from $oprofile->uri");
|
common_log(LOG_INFO, "Got a profile-update ping from $oprofile->uri");
|
||||||
$oprofile->updateFromActivityObject($this->act->actor);
|
$oprofile->updateFromActivityObject($this->activity->actor);
|
||||||
} else {
|
} else {
|
||||||
common_log(LOG_INFO, "Ignoring profile-update ping from unknown " . $this->act->actor->id);
|
common_log(LOG_INFO, "Ignoring profile-update ping from unknown " . $this->activity->actor->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,10 +176,10 @@ class SalmonAction extends Action
|
|||||||
*/
|
*/
|
||||||
function ensureProfile()
|
function ensureProfile()
|
||||||
{
|
{
|
||||||
$actor = $this->act->actor;
|
$actor = $this->activity->actor;
|
||||||
if (empty($actor->id)) {
|
if (empty($actor->id)) {
|
||||||
common_log(LOG_ERR, "broken actor: " . var_export($actor, true));
|
common_log(LOG_ERR, "broken actor: " . var_export($actor, true));
|
||||||
common_log(LOG_ERR, "activity with no actor: " . var_export($this->act, true));
|
common_log(LOG_ERR, "activity with no actor: " . var_export($this->activity, true));
|
||||||
throw new Exception("Received a salmon slap from unidentified actor.");
|
throw new Exception("Received a salmon slap from unidentified actor.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,6 +189,6 @@ class SalmonAction extends Action
|
|||||||
function saveNotice()
|
function saveNotice()
|
||||||
{
|
{
|
||||||
$oprofile = $this->ensureProfile();
|
$oprofile = $this->ensureProfile();
|
||||||
return $oprofile->processPost($this->act, 'salmon');
|
return $oprofile->processPost($this->activity, 'salmon');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ print "Re-running feed discovery for profile URL $oprofile->uri\n";
|
|||||||
// @fixme will bork where the URI isn't the profile URL for now
|
// @fixme will bork where the URI isn't the profile URL for now
|
||||||
$discover = new FeedDiscovery();
|
$discover = new FeedDiscovery();
|
||||||
$feedurl = $discover->discoverFromURL($oprofile->uri);
|
$feedurl = $discover->discoverFromURL($oprofile->uri);
|
||||||
$huburi = $discover->getAtomLink('hub');
|
$huburi = $discover->getHubLink();
|
||||||
$salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES);
|
$salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES);
|
||||||
|
|
||||||
print " Feed URL: $feedurl\n";
|
print " Feed URL: $feedurl\n";
|
||||||
|
@ -10,7 +10,7 @@ define('STATUSNET', true);
|
|||||||
define('LACONICA', true);
|
define('LACONICA', true);
|
||||||
|
|
||||||
require_once INSTALLDIR . '/lib/common.php';
|
require_once INSTALLDIR . '/lib/common.php';
|
||||||
require_once INSTALLDIR . '/plugins/FeedSub/feedsub.php';
|
require_once INSTALLDIR . '/plugins/OStatus/lib/feeddiscovery.php';
|
||||||
|
|
||||||
class FeedDiscoveryTest extends PHPUnit_Framework_TestCase
|
class FeedDiscoveryTest extends PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
@ -53,6 +53,8 @@ class SitemapAction extends Action
|
|||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
|
parent::handle($args);
|
||||||
|
|
||||||
header('Content-Type: text/xml; charset=UTF-8');
|
header('Content-Type: text/xml; charset=UTF-8');
|
||||||
$this->startXML();
|
$this->startXML();
|
||||||
|
|
||||||
@ -67,6 +69,27 @@ class SitemapAction extends Action
|
|||||||
$this->endXML();
|
$this->endXML();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function lastModified()
|
||||||
|
{
|
||||||
|
$y = $this->trimmed('year');
|
||||||
|
|
||||||
|
$m = $this->trimmed('month');
|
||||||
|
$d = $this->trimmed('day');
|
||||||
|
|
||||||
|
$y += 0;
|
||||||
|
$m += 0;
|
||||||
|
$d += 0;
|
||||||
|
|
||||||
|
$begdate = strtotime("$y-$m-$d 00:00:00");
|
||||||
|
$enddate = $begdate + (24 * 60 * 60);
|
||||||
|
|
||||||
|
if ($enddate < time()) {
|
||||||
|
return $enddate;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function showUrl($url, $lastMod=null, $changeFreq=null, $priority=null)
|
function showUrl($url, $lastMod=null, $changeFreq=null, $priority=null)
|
||||||
{
|
{
|
||||||
$this->elementStart('url');
|
$this->elementStart('url');
|
||||||
|
168
plugins/SubMirror/SubMirrorPlugin.php
Normal file
168
plugins/SubMirror/SubMirrorPlugin.php
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2009-2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package SubMirrorPlugin
|
||||||
|
* @maintainer Brion Vibber <brion@status.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
||||||
|
|
||||||
|
|
||||||
|
class SubMirrorPlugin extends Plugin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Hook for RouterInitialized event.
|
||||||
|
*
|
||||||
|
* @param Net_URL_Mapper $m path-to-action mapper
|
||||||
|
* @return boolean hook return
|
||||||
|
*/
|
||||||
|
function onRouterInitialized($m)
|
||||||
|
{
|
||||||
|
$m->connect('settings/mirror',
|
||||||
|
array('action' => 'mirrorsettings'));
|
||||||
|
$m->connect('settings/mirror/add',
|
||||||
|
array('action' => 'addmirror'));
|
||||||
|
$m->connect('settings/mirror/edit',
|
||||||
|
array('action' => 'editmirror'));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automatically load the actions and libraries used by the plugin
|
||||||
|
*
|
||||||
|
* @param Class $cls the class
|
||||||
|
*
|
||||||
|
* @return boolean hook return
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function onAutoload($cls)
|
||||||
|
{
|
||||||
|
$base = dirname(__FILE__);
|
||||||
|
$lower = strtolower($cls);
|
||||||
|
$files = array("$base/lib/$lower.php",
|
||||||
|
"$base/classes/$cls.php");
|
||||||
|
if (substr($lower, -6) == 'action') {
|
||||||
|
$files[] = "$base/actions/" . substr($lower, 0, -6) . ".php";
|
||||||
|
}
|
||||||
|
foreach ($files as $file) {
|
||||||
|
if (file_exists($file)) {
|
||||||
|
include_once $file;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function handle($notice)
|
||||||
|
{
|
||||||
|
// Is anybody mirroring?
|
||||||
|
$mirror = new SubMirror();
|
||||||
|
$mirror->subscribed = $notice->profile_id;
|
||||||
|
if ($mirror->find()) {
|
||||||
|
while ($mirror->fetch()) {
|
||||||
|
$mirror->repeat($notice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onPluginVersion(&$versions)
|
||||||
|
{
|
||||||
|
$versions[] = array('name' => 'SubMirror',
|
||||||
|
'version' => STATUSNET_VERSION,
|
||||||
|
'author' => 'Brion Vibber',
|
||||||
|
'homepage' => 'http://status.net/wiki/Plugin:SubMirror',
|
||||||
|
'rawdescription' =>
|
||||||
|
_m('Pull feeds into your timeline!'));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Menu item for settings
|
||||||
|
*
|
||||||
|
* @param Action &$action Action being executed
|
||||||
|
*
|
||||||
|
* @return boolean hook return
|
||||||
|
*/
|
||||||
|
|
||||||
|
function onEndAccountSettingsNav(&$action)
|
||||||
|
{
|
||||||
|
$action_name = $action->trimmed('action');
|
||||||
|
|
||||||
|
$action->menuItem(common_local_url('mirrorsettings'),
|
||||||
|
// TRANS: SubMirror plugin menu item on user settings page.
|
||||||
|
_m('MENU', 'Mirroring'),
|
||||||
|
// TRANS: SubMirror plugin tooltip for user settings menu item.
|
||||||
|
_m('Configure mirroring of posts from other feeds'),
|
||||||
|
$action_name === 'mirrorsettings');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCheckSchema()
|
||||||
|
{
|
||||||
|
$schema = Schema::get();
|
||||||
|
$schema->ensureTable('submirror', SubMirror::schemaDef());
|
||||||
|
|
||||||
|
// @hack until key definition support is merged
|
||||||
|
SubMirror::fixIndexes($schema);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set up queue handlers for outgoing hub pushes
|
||||||
|
* @param QueueManager $qm
|
||||||
|
* @return boolean hook return
|
||||||
|
*/
|
||||||
|
function onEndInitializeQueueManager(QueueManager $qm)
|
||||||
|
{
|
||||||
|
// After each notice save, check if there's any repeat mirrors.
|
||||||
|
$qm->connect('mirror', 'MirrorQueueHandler');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onStartEnqueueNotice($notice, &$transports)
|
||||||
|
{
|
||||||
|
$transports[] = 'mirror';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let the OStatus subscription garbage collection know if we're
|
||||||
|
* making use of a remote feed, so it doesn't get dropped out
|
||||||
|
* from under us.
|
||||||
|
*
|
||||||
|
* @param Ostatus_profile $oprofile
|
||||||
|
* @param int $count in/out
|
||||||
|
* @return mixed hook return value
|
||||||
|
*/
|
||||||
|
function onOstatus_profileSubscriberCount($oprofile, &$count)
|
||||||
|
{
|
||||||
|
if ($oprofile->profile_id) {
|
||||||
|
$mirror = new SubMirror();
|
||||||
|
$mirror->subscribed = $oprofile->profile_id;
|
||||||
|
if ($mirror->find()) {
|
||||||
|
while ($mirror->fetch()) {
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
77
plugins/SubMirror/actions/addmirror.php
Normal file
77
plugins/SubMirror/actions/addmirror.php
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Brion Vibber <brion@status.net>
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes parameters:
|
||||||
|
*
|
||||||
|
* - feed: a profile ID
|
||||||
|
* - token: session token to prevent CSRF attacks
|
||||||
|
* - ajax: boolean; whether to return Ajax or full-browser results
|
||||||
|
*
|
||||||
|
* Only works if the current user is logged in.
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
class AddMirrorAction extends BaseMirrorAction
|
||||||
|
{
|
||||||
|
var $feedurl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check pre-requisites and instantiate attributes
|
||||||
|
*
|
||||||
|
* @param Array $args array of arguments (URL, GET, POST)
|
||||||
|
*
|
||||||
|
* @return boolean success flag
|
||||||
|
*/
|
||||||
|
|
||||||
|
function prepare($args)
|
||||||
|
{
|
||||||
|
parent::prepare($args);
|
||||||
|
$this->feedurl = $this->validateFeedUrl($this->trimmed('feedurl'));
|
||||||
|
$this->profile = $this->profileForFeed($this->feedurl);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveMirror()
|
||||||
|
{
|
||||||
|
if ($this->oprofile->subscribe()) {
|
||||||
|
SubMirror::saveMirror($this->user, $this->profile);
|
||||||
|
} else {
|
||||||
|
$this->serverError(_m("Could not subscribe to feed."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
169
plugins/SubMirror/actions/basemirror.php
Normal file
169
plugins/SubMirror/actions/basemirror.php
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Brion Vibber <brion@status.net>
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes parameters:
|
||||||
|
*
|
||||||
|
* - feed: a profile ID
|
||||||
|
* - token: session token to prevent CSRF attacks
|
||||||
|
* - ajax: boolean; whether to return Ajax or full-browser results
|
||||||
|
*
|
||||||
|
* Only works if the current user is logged in.
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class BaseMirrorAction extends Action
|
||||||
|
{
|
||||||
|
var $user;
|
||||||
|
var $profile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check pre-requisites and instantiate attributes
|
||||||
|
*
|
||||||
|
* @param Array $args array of arguments (URL, GET, POST)
|
||||||
|
*
|
||||||
|
* @return boolean success flag
|
||||||
|
*/
|
||||||
|
|
||||||
|
function prepare($args)
|
||||||
|
{
|
||||||
|
parent::prepare($args);
|
||||||
|
return $this->sharedBoilerplate();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function validateFeedUrl($url)
|
||||||
|
{
|
||||||
|
if (common_valid_http_url($url)) {
|
||||||
|
return $url;
|
||||||
|
} else {
|
||||||
|
$this->clientError(_m("Invalid feed URL."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function validateProfile($id)
|
||||||
|
{
|
||||||
|
$id = intval($id);
|
||||||
|
$profile = Profile::staticGet('id', $id);
|
||||||
|
if ($profile && $profile->id != $this->user->id) {
|
||||||
|
return $profile;
|
||||||
|
}
|
||||||
|
// TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed.
|
||||||
|
$this->clientError(_m("Invalid profile for mirroring."));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param string $url
|
||||||
|
* @return Profile
|
||||||
|
*/
|
||||||
|
protected function profileForFeed($url)
|
||||||
|
{
|
||||||
|
$oprofile = Ostatus_profile::ensureProfileURL($url);
|
||||||
|
if ($oprofile->isGroup()) {
|
||||||
|
$this->clientError(_m("Can't mirror a StatusNet group at this time."));
|
||||||
|
}
|
||||||
|
$this->oprofile = $oprofile; // @fixme ugly side effect :D
|
||||||
|
return $oprofile->localProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fixme none of this belongs in end classes
|
||||||
|
* this stuff belongs in shared code!
|
||||||
|
*/
|
||||||
|
function sharedBoilerplate()
|
||||||
|
{
|
||||||
|
// Only allow POST requests
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
||||||
|
$this->clientError(_('This action only accepts POST requests.'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSRF protection
|
||||||
|
|
||||||
|
$token = $this->trimmed('token');
|
||||||
|
|
||||||
|
if (!$token || $token != common_session_token()) {
|
||||||
|
$this->clientError(_('There was a problem with your session token.'.
|
||||||
|
' Try again, please.'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only for logged-in users
|
||||||
|
|
||||||
|
$this->user = common_current_user();
|
||||||
|
|
||||||
|
if (empty($this->user)) {
|
||||||
|
$this->clientError(_('Not logged in.'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle request
|
||||||
|
*
|
||||||
|
* Does the subscription and returns results.
|
||||||
|
*
|
||||||
|
* @param Array $args unused.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function handle($args)
|
||||||
|
{
|
||||||
|
// Throws exception on error
|
||||||
|
$this->saveMirror();
|
||||||
|
|
||||||
|
if ($this->boolean('ajax')) {
|
||||||
|
$this->startHTML('text/xml;charset=utf-8');
|
||||||
|
$this->elementStart('head');
|
||||||
|
$this->element('title', null, _('Subscribed'));
|
||||||
|
$this->elementEnd('head');
|
||||||
|
$this->elementStart('body');
|
||||||
|
$unsubscribe = new EditMirrorForm($this, $this->profile);
|
||||||
|
$unsubscribe->show();
|
||||||
|
$this->elementEnd('body');
|
||||||
|
$this->elementEnd('html');
|
||||||
|
} else {
|
||||||
|
$url = common_local_url('mirrorsettings');
|
||||||
|
common_redirect($url, 303);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract function saveMirror();
|
||||||
|
}
|
112
plugins/SubMirror/actions/editmirror.php
Normal file
112
plugins/SubMirror/actions/editmirror.php
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Brion Vibber <brion@status.net>
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes parameters:
|
||||||
|
*
|
||||||
|
* - feed: a profile ID
|
||||||
|
* - token: session token to prevent CSRF attacks
|
||||||
|
* - ajax: boolean; whether to return Ajax or full-browser results
|
||||||
|
*
|
||||||
|
* Only works if the current user is logged in.
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
class EditMirrorAction extends BaseMirrorAction
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check pre-requisites and instantiate attributes
|
||||||
|
*
|
||||||
|
* @param Array $args array of arguments (URL, GET, POST)
|
||||||
|
*
|
||||||
|
* @return boolean success flag
|
||||||
|
*/
|
||||||
|
|
||||||
|
function prepare($args)
|
||||||
|
{
|
||||||
|
parent::prepare($args);
|
||||||
|
|
||||||
|
$this->profile = $this->validateProfile($this->trimmed('profile'));
|
||||||
|
|
||||||
|
$this->mirror = SubMirror::pkeyGet(array('subscriber' => $this->user->id,
|
||||||
|
'subscribed' => $this->profile->id));
|
||||||
|
|
||||||
|
if (!$this->mirror) {
|
||||||
|
$this->clientError(_m("Requested invalid profile to edit."));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->style = $this->validateStyle($this->trimmed('style'));
|
||||||
|
|
||||||
|
// DO NOT change to $this->boolean(), it will be wrong.
|
||||||
|
// We're checking for the presence of the setting, not its value.
|
||||||
|
$this->delete = (bool)$this->arg('delete');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function validateStyle($style)
|
||||||
|
{
|
||||||
|
$allowed = array('repeat', 'copy');
|
||||||
|
if (in_array($style, $allowed)) {
|
||||||
|
return $style;
|
||||||
|
} else {
|
||||||
|
$this->clientError(_m("Bad form data."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveMirror()
|
||||||
|
{
|
||||||
|
$mirror = SubMirror::getMirror($this->user, $this->profile);
|
||||||
|
if (!$mirror) {
|
||||||
|
$this->clientError(_m('Requested edit of missing mirror'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->delete) {
|
||||||
|
$mirror->delete();
|
||||||
|
$oprofile = Ostatus_profile::staticGet('profile_id', $this->profile->id);
|
||||||
|
if ($oprofile) {
|
||||||
|
$oprofile->garbageCollect();
|
||||||
|
}
|
||||||
|
} else if ($this->style != $mirror->style) {
|
||||||
|
$orig = clone($mirror);
|
||||||
|
$mirror->style = $this->style;
|
||||||
|
$mirror->modified = common_sql_now();
|
||||||
|
$mirror->update($orig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
106
plugins/SubMirror/actions/mirrorsettings.php
Normal file
106
plugins/SubMirror/actions/mirrorsettings.php
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet, the distributed open-source microblogging tool
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* LICENCE: This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @category Plugins
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Brion Vibber <brion@status.net>
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
class MirrorSettingsAction extends AccountSettingsAction
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Title of the page
|
||||||
|
*
|
||||||
|
* @return string Page title
|
||||||
|
*/
|
||||||
|
|
||||||
|
function title()
|
||||||
|
{
|
||||||
|
return _m('Feed mirror settings');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instructions for use
|
||||||
|
*
|
||||||
|
* @return string Instructions for use
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getInstructions()
|
||||||
|
{
|
||||||
|
return _m('You can mirror updates from many RSS and Atom feeds ' .
|
||||||
|
'into your StatusNet timeline!');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for OpenID management
|
||||||
|
*
|
||||||
|
* We have one form with a few different submit buttons to do different things.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function showContent()
|
||||||
|
{
|
||||||
|
$user = common_current_user();
|
||||||
|
|
||||||
|
$this->showAddFeedForm();
|
||||||
|
|
||||||
|
$mirror = new SubMirror();
|
||||||
|
$mirror->subscriber = $user->id;
|
||||||
|
if ($mirror->find()) {
|
||||||
|
while ($mirror->fetch()) {
|
||||||
|
$this->showFeedForm($mirror);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showFeedForm($mirror)
|
||||||
|
{
|
||||||
|
$profile = Profile::staticGet('id', $mirror->subscribed);
|
||||||
|
if ($profile) {
|
||||||
|
$form = new EditMirrorForm($this, $profile);
|
||||||
|
$form->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAddFeedForm()
|
||||||
|
{
|
||||||
|
$form = new AddMirrorForm($this);
|
||||||
|
$form->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle a POST request
|
||||||
|
*
|
||||||
|
* Muxes to different sub-functions based on which button was pushed
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function handlePost()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
229
plugins/SubMirror/classes/SubMirror.php
Normal file
229
plugins/SubMirror/classes/SubMirror.php
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package SubMirrorPlugin
|
||||||
|
* @maintainer Brion Vibber <brion@status.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
class SubMirror extends Memcached_DataObject
|
||||||
|
{
|
||||||
|
public $__table = 'submirror';
|
||||||
|
|
||||||
|
public $subscriber;
|
||||||
|
public $subscribed;
|
||||||
|
|
||||||
|
public $style;
|
||||||
|
|
||||||
|
public $created;
|
||||||
|
public $modified;
|
||||||
|
|
||||||
|
public /*static*/ function staticGet($k, $v=null)
|
||||||
|
{
|
||||||
|
return parent::staticGet(__CLASS__, $k, $v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return table definition for DB_DataObject
|
||||||
|
*
|
||||||
|
* DB_DataObject needs to know something about the table to manipulate
|
||||||
|
* instances. This method provides all the DB_DataObject needs to know.
|
||||||
|
*
|
||||||
|
* @return array array of column definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
function table()
|
||||||
|
{
|
||||||
|
return array('subscriber' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
|
||||||
|
'subscribed' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
|
||||||
|
|
||||||
|
'style' => DB_DATAOBJECT_STR,
|
||||||
|
|
||||||
|
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL,
|
||||||
|
'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function schemaDef()
|
||||||
|
{
|
||||||
|
// @fixme need a reverse key on (subscribed, subscriber) as well
|
||||||
|
return array(new ColumnDef('subscriber', 'integer',
|
||||||
|
null, false, 'PRI'),
|
||||||
|
new ColumnDef('subscribed', 'integer',
|
||||||
|
null, false, 'PRI'),
|
||||||
|
|
||||||
|
new ColumnDef('style', 'varchar',
|
||||||
|
16, true),
|
||||||
|
|
||||||
|
new ColumnDef('created', 'datetime',
|
||||||
|
null, false),
|
||||||
|
new ColumnDef('modified', 'datetime',
|
||||||
|
null, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Temporary hack to set up the compound index, since we can't do
|
||||||
|
* it yet through regular Schema interface. (Coming for 1.0...)
|
||||||
|
*
|
||||||
|
* @param Schema $schema
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
static function fixIndexes($schema)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$schema->createIndex('submirror', array('subscribed', 'subscriber'));
|
||||||
|
} catch (Exception $e) {
|
||||||
|
common_log(LOG_ERR, __METHOD__ . ': ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return key definitions for DB_DataObject
|
||||||
|
*
|
||||||
|
* DB_DataObject needs to know about keys that the table has; this function
|
||||||
|
* defines them.
|
||||||
|
*
|
||||||
|
* @return array key definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
function keys()
|
||||||
|
{
|
||||||
|
return array_keys($this->keyTypes());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return key definitions for Memcached_DataObject
|
||||||
|
*
|
||||||
|
* Our caching system uses the same key definitions, but uses a different
|
||||||
|
* method to get them.
|
||||||
|
*
|
||||||
|
* @return array key definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
function keyTypes()
|
||||||
|
{
|
||||||
|
// @fixme keys
|
||||||
|
// need a sane key for reverse lookup too
|
||||||
|
return array('subscriber' => 'K', 'subscribed' => 'K');
|
||||||
|
}
|
||||||
|
|
||||||
|
function sequenceKey()
|
||||||
|
{
|
||||||
|
return array(false, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Profile $subscribed
|
||||||
|
* @param Profile $subscribed
|
||||||
|
* @return SubMirror
|
||||||
|
* @throws ServerException
|
||||||
|
*/
|
||||||
|
public static function saveMirror($subscriber, $subscribed, $style='repeat')
|
||||||
|
{
|
||||||
|
// @fixme make sure they're subscribed!
|
||||||
|
$mirror = new SubMirror();
|
||||||
|
|
||||||
|
$mirror->subscriber = $subscriber->id;
|
||||||
|
$mirror->subscribed = $subscribed->id;
|
||||||
|
$mirror->style = $style;
|
||||||
|
|
||||||
|
$mirror->created = common_sql_now();
|
||||||
|
$mirror->modified = common_sql_now();
|
||||||
|
$mirror->insert();
|
||||||
|
|
||||||
|
return $mirror;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Notice $notice
|
||||||
|
* @return mixed Notice on successful mirroring, boolean if not
|
||||||
|
*/
|
||||||
|
public function mirrorNotice($notice)
|
||||||
|
{
|
||||||
|
$profile = Profile::staticGet('id', $this->subscriber);
|
||||||
|
if (!$profile) {
|
||||||
|
common_log(LOG_ERROR, "SubMirror plugin skipping auto-repeat of notice $notice->id for missing user $profile->id");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->style == 'copy') {
|
||||||
|
return $this->copyNotice($profile, $notice);
|
||||||
|
} else { // default to repeat mode
|
||||||
|
return $this->repeatNotice($profile, $notice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mirror a notice using StatusNet's repeat functionality.
|
||||||
|
* This retains attribution within the site, and other nice things,
|
||||||
|
* but currently ends up looking like 'RT @foobar bla bla' when
|
||||||
|
* bridged out over OStatus or TwitterBridge.
|
||||||
|
*
|
||||||
|
* @param Notice $notice
|
||||||
|
* @return mixed Notice on successful repeat, true if already repeated, false on failure
|
||||||
|
*/
|
||||||
|
protected function repeatNotice($profile, $notice)
|
||||||
|
{
|
||||||
|
if($profile->hasRepeated($notice->id)) {
|
||||||
|
common_log(LOG_INFO, "SubMirror plugin skipping auto-repeat of notice $notice->id for user $profile->id; already repeated.");
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
common_log(LOG_INFO, "SubMirror plugin auto-repeating notice $notice->id for $profile->id");
|
||||||
|
return $notice->repeat($profile->id, 'mirror');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mirror a notice by emitting a new notice with the same contents.
|
||||||
|
* Kind of dirty, but if pulling an external data feed into an account
|
||||||
|
* that may be what you want.
|
||||||
|
*
|
||||||
|
* @param Notice $notice
|
||||||
|
* @return mixed Notice on successful repeat, true if already repeated, false on failure
|
||||||
|
*/
|
||||||
|
protected function copyNotice($profile, $notice)
|
||||||
|
{
|
||||||
|
$options = array('is_local' => Notice::LOCAL_PUBLIC,
|
||||||
|
'url' => $notice->bestUrl(), // pass through the foreign link...
|
||||||
|
'rendered' => $notice->rendered);
|
||||||
|
|
||||||
|
$saved = Notice::saveNew($profile->id,
|
||||||
|
$notice->content,
|
||||||
|
'feed',
|
||||||
|
$options);
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
|
||||||
|
public /*static*/ function pkeyGet($v)
|
||||||
|
{
|
||||||
|
return parent::pkeyGet(__CLASS__, $v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the mirroring setting for a pair of profiles, if existing.
|
||||||
|
*
|
||||||
|
* @param Profile $subscriber
|
||||||
|
* @param Profile $subscribed
|
||||||
|
* @return mixed Profile or empty
|
||||||
|
*/
|
||||||
|
public static function getMirror($subscriber, $subscribed)
|
||||||
|
{
|
||||||
|
return self::pkeyGet(array('subscriber' => $subscriber->id,
|
||||||
|
'subscribed' => $subscribed->id));
|
||||||
|
}
|
||||||
|
}
|
141
plugins/SubMirror/lib/addmirrorform.php
Normal file
141
plugins/SubMirror/lib/addmirrorform.php
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet, the distributed open-source microblogging tool
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* LICENCE: This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package StatusNet
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
class AddMirrorForm extends Form
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the form
|
||||||
|
*
|
||||||
|
* Sub-classes should overload this with the name of their form.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formLegend()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visible or invisible data elements
|
||||||
|
*
|
||||||
|
* Display the form fields that make up the data of the form.
|
||||||
|
* Sub-classes should overload this to show their data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formData()
|
||||||
|
{
|
||||||
|
$this->out->elementStart('fieldset');
|
||||||
|
|
||||||
|
$this->out->elementStart('ul');
|
||||||
|
|
||||||
|
$this->li();
|
||||||
|
$this->doInput('addmirror-feedurl',
|
||||||
|
'feedurl',
|
||||||
|
_m('Web page or feed URL:'),
|
||||||
|
$this->out->trimmed('feedurl'));
|
||||||
|
$this->unli();
|
||||||
|
|
||||||
|
$this->li();
|
||||||
|
$this->out->submit('addmirror-save', _m('Add feed'));
|
||||||
|
$this->unli();
|
||||||
|
$this->out->elementEnd('ul');
|
||||||
|
$this->out->elementEnd('fieldset');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doInput($id, $name, $label, $value=null, $instructions=null)
|
||||||
|
{
|
||||||
|
$this->out->element('label', array('for' => $id), $label);
|
||||||
|
$attrs = array('name' => $name,
|
||||||
|
'type' => 'text',
|
||||||
|
'id' => $id,
|
||||||
|
'style' => 'width: 80%');
|
||||||
|
if ($value) {
|
||||||
|
$attrs['value'] = $value;
|
||||||
|
}
|
||||||
|
$this->out->element('input', $attrs);
|
||||||
|
if ($instructions) {
|
||||||
|
$this->out->element('p', 'form_guide', $instructions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Buttons for form actions
|
||||||
|
*
|
||||||
|
* Submit and cancel buttons (or whatever)
|
||||||
|
* Sub-classes should overload this to show their own buttons.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formActions()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID of the form
|
||||||
|
*
|
||||||
|
* Should be unique on the page. Sub-classes should overload this
|
||||||
|
* to show their own IDs.
|
||||||
|
*
|
||||||
|
* @return string ID of the form
|
||||||
|
*/
|
||||||
|
|
||||||
|
function id()
|
||||||
|
{
|
||||||
|
return 'add-mirror-form';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action of the form.
|
||||||
|
*
|
||||||
|
* URL to post to. Should be overloaded by subclasses to give
|
||||||
|
* somewhere to post to.
|
||||||
|
*
|
||||||
|
* @return string URL to post to
|
||||||
|
*/
|
||||||
|
|
||||||
|
function action()
|
||||||
|
{
|
||||||
|
return common_local_url('addmirror');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class of the form.
|
||||||
|
*
|
||||||
|
* @return string the form's class
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formClass()
|
||||||
|
{
|
||||||
|
return 'form_settings';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
189
plugins/SubMirror/lib/editmirrorform.php
Normal file
189
plugins/SubMirror/lib/editmirrorform.php
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet, the distributed open-source microblogging tool
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* LICENCE: This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package StatusNet
|
||||||
|
* @copyright 2010 StatusNet, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
class EditMirrorForm extends Form
|
||||||
|
{
|
||||||
|
function __construct($action, $profile)
|
||||||
|
{
|
||||||
|
parent::__construct($action);
|
||||||
|
|
||||||
|
$this->profile = clone($profile);
|
||||||
|
$this->user = common_current_user();
|
||||||
|
$this->mirror = SubMirror::pkeyGet(array('subscriber' => $this->user->id,
|
||||||
|
'subscribed' => $this->profile->id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the form
|
||||||
|
*
|
||||||
|
* Sub-classes should overload this with the name of their form.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formLegend()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visible or invisible data elements
|
||||||
|
*
|
||||||
|
* Display the form fields that make up the data of the form.
|
||||||
|
* Sub-classes should overload this to show their data.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formData()
|
||||||
|
{
|
||||||
|
$this->out->elementStart('fieldset');
|
||||||
|
|
||||||
|
$this->out->hidden('profile', $this->profile->id);
|
||||||
|
|
||||||
|
$this->out->elementStart('div', array('style' => 'float: left; width: 80px;'));
|
||||||
|
$img = $this->getAvatar($this->profile);
|
||||||
|
$feed = $this->getFeed($this->profile);
|
||||||
|
$this->out->elementStart('a', array('href' => $this->profile->profileurl));
|
||||||
|
$this->out->element('img', array('src' => $img, 'style' => 'float: left'));
|
||||||
|
$this->out->elementEnd('a');
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
|
||||||
|
|
||||||
|
$this->out->elementStart('div', array('style' => 'margin-left: 80px; margin-right: 20px'));
|
||||||
|
$this->out->elementStart('p');
|
||||||
|
$this->out->elementStart('div');
|
||||||
|
$this->out->element('a', array('href' => $this->profile->profileurl), $this->profile->getBestName());
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
$this->out->elementStart('div');
|
||||||
|
if ($feed) {
|
||||||
|
$this->out->text(_m('LABEL', 'Remote feed:') . ' ');
|
||||||
|
//$this->out->element('a', array('href' => $feed), $feed);
|
||||||
|
$this->out->element('input', array('value' => $feed, 'readonly' => 'readonly', 'style' => 'width: 100%'));
|
||||||
|
} else {
|
||||||
|
$this->out->text(_m('LABEL', 'Local user'));
|
||||||
|
}
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
$this->out->elementEnd('p');
|
||||||
|
|
||||||
|
$this->out->elementStart('fieldset', array('style' => 'margin-top: 20px'));
|
||||||
|
$this->out->element('legend', false, _m("Mirroring style"));
|
||||||
|
|
||||||
|
$styles = array('repeat' => _m("Repeat: reference the original user's post (sometimes shows as 'RT @blah')"),
|
||||||
|
'copy' => _m("Repost the content under my account"));
|
||||||
|
foreach ($styles as $key => $label) {
|
||||||
|
$this->out->elementStart('div');
|
||||||
|
$attribs = array('type' => 'radio',
|
||||||
|
'value' => $key,
|
||||||
|
'name' => 'style',
|
||||||
|
'id' => $this->id() . '-style');
|
||||||
|
if ($key == $this->mirror->style || ($key == 'repeat' && empty($this->mirror->style))) {
|
||||||
|
$attribs['checked'] = 'checked';
|
||||||
|
}
|
||||||
|
$this->out->element('input', $attribs);
|
||||||
|
$this->out->element('span', false, $label); // @fixme should be label, but the styles muck it up for now
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
|
||||||
|
}
|
||||||
|
$this->out->elementEnd('fieldset');
|
||||||
|
|
||||||
|
|
||||||
|
$this->out->elementStart('div');
|
||||||
|
$this->out->submit($this->id() . '-save', _m('Save'));
|
||||||
|
$this->out->element('input', array('type' => 'submit',
|
||||||
|
'value' => _m('Stop mirroring'),
|
||||||
|
'name' => 'delete',
|
||||||
|
'class' => 'submit'));
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
$this->out->elementEnd('fieldset');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getAvatar($profile)
|
||||||
|
{
|
||||||
|
$avatar = $this->profile->getAvatar(48);
|
||||||
|
if ($avatar) {
|
||||||
|
return $avatar->displayUrl();
|
||||||
|
} else {
|
||||||
|
return Avatar::defaultImage(48);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getFeed($profile)
|
||||||
|
{
|
||||||
|
// Ok this is a bit of a hack. ;)
|
||||||
|
if (class_exists('Ostatus_profile')) {
|
||||||
|
$oprofile = Ostatus_profile::staticGet('profile_id', $profile->id);
|
||||||
|
if ($oprofile) {
|
||||||
|
return $oprofile->feeduri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_dump('wtf');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID of the form
|
||||||
|
*
|
||||||
|
* Should be unique on the page. Sub-classes should overload this
|
||||||
|
* to show their own IDs.
|
||||||
|
*
|
||||||
|
* @return string ID of the form
|
||||||
|
*/
|
||||||
|
|
||||||
|
function id()
|
||||||
|
{
|
||||||
|
return 'edit-mirror-form-' . $this->profile->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action of the form.
|
||||||
|
*
|
||||||
|
* URL to post to. Should be overloaded by subclasses to give
|
||||||
|
* somewhere to post to.
|
||||||
|
*
|
||||||
|
* @return string URL to post to
|
||||||
|
*/
|
||||||
|
|
||||||
|
function action()
|
||||||
|
{
|
||||||
|
return common_local_url('editmirror');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class of the form.
|
||||||
|
*
|
||||||
|
* @return string the form's class
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formClass()
|
||||||
|
{
|
||||||
|
return 'form_settings';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
45
plugins/SubMirror/lib/mirrorqueuehandler.php
Normal file
45
plugins/SubMirror/lib/mirrorqueuehandler.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2010, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for subscription mirroring options on each newly seen post!
|
||||||
|
*
|
||||||
|
* @package SubMirror
|
||||||
|
* @author Brion Vibber <brion@status.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
class MirrorQueueHandler extends QueueHandler
|
||||||
|
{
|
||||||
|
function transport()
|
||||||
|
{
|
||||||
|
return 'mirror';
|
||||||
|
}
|
||||||
|
|
||||||
|
function handle($notice)
|
||||||
|
{
|
||||||
|
$mirror = new SubMirror();
|
||||||
|
$mirror->subscribed = $notice->profile_id;
|
||||||
|
if ($mirror->find()) {
|
||||||
|
while ($mirror->fetch()) {
|
||||||
|
$mirror->mirrorNotice($notice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user