For the best performance you can serve these files as a pre-defined group with a URI
+like: /min/?g=keyName
+
To do this, add a line like this to /min/groupsConfig.php:
+
+
return array(
+ ... your existing groups here ...
+
+);
+
+
Make sure to replace keyName with a unique key for this group.
+
+
+
+
Find URIs on a Page
+
You can use the bookmarklet below to fetch all CSS & Javascript URIs from a page
+on your site. When you active it, this page will open in a new window with a list of
+available URIs to add.
If your CSS files contain @import declarations, Minify will not
+remove them. Therefore, you will want to remove those that point to files already
+in your list, and move any others to the top of the first file in your list
+(imports below any styles will be ignored by browsers as invalid).
+
If you desire, you can use Minify URIs in imports and they will not be touched
+by Minify. E.g. @import "/min/?g=css2";
+
+
+
+
+
+
+ ob_get_contents()
+ ,'id' => __FILE__
+ ,'lastModifiedTime' => max(
+ // regenerate cache if either of these change
+ filemtime(__FILE__)
+ ,filemtime(dirname(__FILE__) . '/../config.php')
+ )
+ ,'minifyAll' => true
+ ,'encodeOutput' => $encodeOutput
+);
+ob_end_clean();
+
+set_include_path(dirname(__FILE__) . '/../lib' . PATH_SEPARATOR . get_include_path());
+
+require 'Minify.php';
+
+if (0 === stripos(PHP_OS, 'win')) {
+ Minify::setDocRoot(); // we may be on IIS
+}
+Minify::setCache(isset($min_cachePath) ? $min_cachePath : null);
+Minify::$uploaderHoursBehind = $min_uploaderHoursBehind;
+
+Minify::serve('Page', $serveOpts);
diff --git a/plugins/Minify/extlib/minify/min/builder/ocCheck.php b/plugins/Minify/extlib/minify/min/builder/ocCheck.php
new file mode 100644
index 0000000000..c47baa33db
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/builder/ocCheck.php
@@ -0,0 +1,36 @@
+ 'World!'
+ ,'method' => 'deflate'
+ ));
+ $he->encode();
+ $he->sendAll();
+
+} else {
+ // echo status "0" or "1"
+ header('Content-Type: text/plain');
+ echo (int)$_oc;
+}
diff --git a/plugins/Minify/extlib/minify/min/builder/rewriteTest.js b/plugins/Minify/extlib/minify/min/builder/rewriteTest.js
new file mode 100644
index 0000000000..56a6051ca2
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/builder/rewriteTest.js
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min/groupsConfig.php b/plugins/Minify/extlib/minify/min/groupsConfig.php
new file mode 100644
index 0000000000..9e2514d7ad
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/groupsConfig.php
@@ -0,0 +1,34 @@
+ array('//js/file1.js', '//js/file2.js'),
+ // 'css' => array('//css/file1.css', '//css/file2.css'),
+
+ // custom source example
+ /*'js2' => array(
+ dirname(__FILE__) . '/../min_unit_tests/_test_files/js/before.js',
+ // do NOT process this file
+ new Minify_Source(array(
+ 'filepath' => dirname(__FILE__) . '/../min_unit_tests/_test_files/js/before.js',
+ 'minifier' => create_function('$a', 'return $a;')
+ ))
+ ),//*/
+
+ /*'js3' => array(
+ dirname(__FILE__) . '/../min_unit_tests/_test_files/js/before.js',
+ // do NOT process this file
+ new Minify_Source(array(
+ 'filepath' => dirname(__FILE__) . '/../min_unit_tests/_test_files/js/before.js',
+ 'minifier' => array('Minify_Packer', 'minify')
+ ))
+ ),//*/
+);
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min/index.php b/plugins/Minify/extlib/minify/min/index.php
new file mode 100644
index 0000000000..51c352569a
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/index.php
@@ -0,0 +1,66 @@
+
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ *
+ * For more information see: http://www.firephp.org/
+ *
+ * @copyright Copyright (C) 2007-2008 Christoph Dorn
+ * @author Christoph Dorn
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+class FirePHP {
+
+ /**
+ * FirePHP version
+ *
+ * @var string
+ */
+ const VERSION = '0.2.0';
+
+ /**
+ * Firebug LOG level
+ *
+ * Logs a message to firebug console.
+ *
+ * @var string
+ */
+ const LOG = 'LOG';
+
+ /**
+ * Firebug INFO level
+ *
+ * Logs a message to firebug console and displays an info icon before the message.
+ *
+ * @var string
+ */
+ const INFO = 'INFO';
+
+ /**
+ * Firebug WARN level
+ *
+ * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.
+ *
+ * @var string
+ */
+ const WARN = 'WARN';
+
+ /**
+ * Firebug ERROR level
+ *
+ * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
+ *
+ * @var string
+ */
+ const ERROR = 'ERROR';
+
+ /**
+ * Dumps a variable to firebug's server panel
+ *
+ * @var string
+ */
+ const DUMP = 'DUMP';
+
+ /**
+ * Displays a stack trace in firebug console
+ *
+ * @var string
+ */
+ const TRACE = 'TRACE';
+
+ /**
+ * Displays an exception in firebug console
+ *
+ * Increments the firebug error count.
+ *
+ * @var string
+ */
+ const EXCEPTION = 'EXCEPTION';
+
+ /**
+ * Displays an table in firebug console
+ *
+ * @var string
+ */
+ const TABLE = 'TABLE';
+
+ /**
+ * Starts a group in firebug console
+ *
+ * @var string
+ */
+ const GROUP_START = 'GROUP_START';
+
+ /**
+ * Ends a group in firebug console
+ *
+ * @var string
+ */
+ const GROUP_END = 'GROUP_END';
+
+ /**
+ * Singleton instance of FirePHP
+ *
+ * @var FirePHP
+ */
+ protected static $instance = null;
+
+ /**
+ * Wildfire protocol message index
+ *
+ * @var int
+ */
+ protected $messageIndex = 1;
+
+ /**
+ * Options for the library
+ *
+ * @var array
+ */
+ protected $options = array();
+
+ /**
+ * Filters used to exclude object members when encoding
+ *
+ * @var array
+ */
+ protected $objectFilters = array();
+
+ /**
+ * A stack of objects used to detect recursion during object encoding
+ *
+ * @var object
+ */
+ protected $objectStack = array();
+
+ /**
+ * Flag to enable/disable logging
+ *
+ * @var boolean
+ */
+ protected $enabled = true;
+
+ /**
+ * The object constructor
+ */
+ function __construct() {
+ $this->options['maxObjectDepth'] = 10;
+ $this->options['maxArrayDepth'] = 20;
+ $this->options['useNativeJsonEncode'] = true;
+ $this->options['includeLineNumbers'] = true;
+ }
+
+ /**
+ * When the object gets serialized only include specific object members.
+ *
+ * @return array
+ */
+ public function __sleep() {
+ return array('options','objectFilters','enabled');
+ }
+
+ /**
+ * Gets singleton instance of FirePHP
+ *
+ * @param boolean $AutoCreate
+ * @return FirePHP
+ */
+ public static function getInstance($AutoCreate=false) {
+ if($AutoCreate===true && !self::$instance) {
+ self::init();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Creates FirePHP object and stores it for singleton access
+ *
+ * @return FirePHP
+ */
+ public static function init() {
+ return self::$instance = new self();
+ }
+
+ /**
+ * Enable and disable logging to Firebug
+ *
+ * @param boolean $Enabled TRUE to enable, FALSE to disable
+ * @return void
+ */
+ public function setEnabled($Enabled) {
+ $this->enabled = $Enabled;
+ }
+
+ /**
+ * Check if logging is enabled
+ *
+ * @return boolean TRUE if enabled
+ */
+ public function getEnabled() {
+ return $this->enabled;
+ }
+
+ /**
+ * Specify a filter to be used when encoding an object
+ *
+ * Filters are used to exclude object members.
+ *
+ * @param string $Class The class name of the object
+ * @param array $Filter An array or members to exclude
+ * @return void
+ */
+ public function setObjectFilter($Class, $Filter) {
+ $this->objectFilters[$Class] = $Filter;
+ }
+
+ /**
+ * Set some options for the library
+ *
+ * Options:
+ * - maxObjectDepth: The maximum depth to traverse objects (default: 10)
+ * - maxArrayDepth: The maximum depth to traverse arrays (default: 20)
+ * - useNativeJsonEncode: If true will use json_encode() (default: true)
+ * - includeLineNumbers: If true will include line numbers and filenames (default: true)
+ *
+ * @param array $Options The options to be set
+ * @return void
+ */
+ public function setOptions($Options) {
+ $this->options = array_merge($this->options,$Options);
+ }
+
+ /**
+ * Register FirePHP as your error handler
+ *
+ * Will throw exceptions for each php error.
+ */
+ public function registerErrorHandler()
+ {
+ //NOTE: The following errors will not be caught by this error handler:
+ // E_ERROR, E_PARSE, E_CORE_ERROR,
+ // E_CORE_WARNING, E_COMPILE_ERROR,
+ // E_COMPILE_WARNING, E_STRICT
+
+ set_error_handler(array($this,'errorHandler'));
+ }
+
+ /**
+ * FirePHP's error handler
+ *
+ * Throws exception for each php error that will occur.
+ *
+ * @param int $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param int $errline
+ * @param array $errcontext
+ */
+ public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
+ {
+ // Don't throw exception if error reporting is switched off
+ if (error_reporting() == 0) {
+ return;
+ }
+ // Only throw exceptions for errors we are asking for
+ if (error_reporting() & $errno) {
+ throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
+ }
+ }
+
+ /**
+ * Register FirePHP as your exception handler
+ */
+ public function registerExceptionHandler()
+ {
+ set_exception_handler(array($this,'exceptionHandler'));
+ }
+
+ /**
+ * FirePHP's exception handler
+ *
+ * Logs all exceptions to your firebug console and then stops the script.
+ *
+ * @param Exception $Exception
+ * @throws Exception
+ */
+ function exceptionHandler($Exception) {
+ $this->fb($Exception);
+ }
+
+ /**
+ * Set custom processor url for FirePHP
+ *
+ * @param string $URL
+ */
+ public function setProcessorUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-ProcessorURL', $URL);
+ }
+
+ /**
+ * Set custom renderer url for FirePHP
+ *
+ * @param string $URL
+ */
+ public function setRendererUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-RendererURL', $URL);
+ }
+
+ /**
+ * Start a group for following messages
+ *
+ * @param string $Name
+ * @return true
+ * @throws Exception
+ */
+ public function group($Name) {
+ return $this->fb(null, $Name, FirePHP::GROUP_START);
+ }
+
+ /**
+ * Ends a group you have started before
+ *
+ * @return true
+ * @throws Exception
+ */
+ public function groupEnd() {
+ return $this->fb(null, null, FirePHP::GROUP_END);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::LOG
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function log($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::LOG);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::INFO
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function info($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::INFO);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::WARN
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function warn($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::WARN);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::ERROR
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function error($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::ERROR);
+ }
+
+ /**
+ * Dumps key and variable to firebug server panel
+ *
+ * @see FirePHP::DUMP
+ * @param string $Key
+ * @param mixed $Variable
+ * @return true
+ * @throws Exception
+ */
+ public function dump($Key, $Variable) {
+ return $this->fb($Variable, $Key, FirePHP::DUMP);
+ }
+
+ /**
+ * Log a trace in the firebug console
+ *
+ * @see FirePHP::TRACE
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function trace($Label) {
+ return $this->fb($Label, FirePHP::TRACE);
+ }
+
+ /**
+ * Log a table in the firebug console
+ *
+ * @see FirePHP::TABLE
+ * @param string $Label
+ * @param string $Table
+ * @return true
+ * @throws Exception
+ */
+ public function table($Label, $Table) {
+ return $this->fb($Table, $Label, FirePHP::TABLE);
+ }
+
+ /**
+ * Check if FirePHP is installed on client
+ *
+ * @return boolean
+ */
+ public function detectClientExtension() {
+ /* Check if FirePHP is installed on client */
+ if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
+ !version_compare($m[1][0],'0.0.6','>=')) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Log varible to Firebug
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object The variable to be logged
+ * @return true Return TRUE if message was added to headers, FALSE otherwise
+ * @throws Exception
+ */
+ public function fb($Object) {
+
+ if(!$this->enabled) {
+ return false;
+ }
+
+ if (headers_sent($filename, $linenum)) {
+ throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
+ }
+
+ $Type = null;
+ $Label = null;
+
+ if(func_num_args()==1) {
+ } else
+ if(func_num_args()==2) {
+ switch(func_get_arg(1)) {
+ case self::LOG:
+ case self::INFO:
+ case self::WARN:
+ case self::ERROR:
+ case self::DUMP:
+ case self::TRACE:
+ case self::EXCEPTION:
+ case self::TABLE:
+ case self::GROUP_START:
+ case self::GROUP_END:
+ $Type = func_get_arg(1);
+ break;
+ default:
+ $Label = func_get_arg(1);
+ break;
+ }
+ } else
+ if(func_num_args()==3) {
+ $Type = func_get_arg(2);
+ $Label = func_get_arg(1);
+ } else {
+ throw $this->newException('Wrong number of arguments to fb() function!');
+ }
+
+
+ if(!$this->detectClientExtension()) {
+ return false;
+ }
+
+ $meta = array();
+ $skipFinalObjectEncode = false;
+
+ if($Object instanceof Exception) {
+
+ $meta['file'] = $this->_escapeTraceFile($Object->getFile());
+ $meta['line'] = $Object->getLine();
+
+ $trace = $Object->getTrace();
+ if($Object instanceof ErrorException
+ && isset($trace[0]['function'])
+ && $trace[0]['function']=='errorHandler'
+ && isset($trace[0]['class'])
+ && $trace[0]['class']=='FirePHP') {
+
+ $severity = false;
+ switch($Object->getSeverity()) {
+ case E_WARNING: $severity = 'E_WARNING'; break;
+ case E_NOTICE: $severity = 'E_NOTICE'; break;
+ case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
+ case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
+ case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
+ case E_STRICT: $severity = 'E_STRICT'; break;
+ case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
+ case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
+ case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
+ }
+
+ $Object = array('Class'=>get_class($Object),
+ 'Message'=>$severity.': '.$Object->getMessage(),
+ 'File'=>$this->_escapeTraceFile($Object->getFile()),
+ 'Line'=>$Object->getLine(),
+ 'Type'=>'trigger',
+ 'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
+ $skipFinalObjectEncode = true;
+ } else {
+ $Object = array('Class'=>get_class($Object),
+ 'Message'=>$Object->getMessage(),
+ 'File'=>$this->_escapeTraceFile($Object->getFile()),
+ 'Line'=>$Object->getLine(),
+ 'Type'=>'throw',
+ 'Trace'=>$this->_escapeTrace($trace));
+ $skipFinalObjectEncode = true;
+ }
+ $Type = self::EXCEPTION;
+
+ } else
+ if($Type==self::TRACE) {
+
+ $trace = debug_backtrace();
+ if(!$trace) return false;
+ for( $i=0 ; $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if($trace[$i]['function']=='fb'
+ || $trace[$i]['function']=='trace'
+ || $trace[$i]['function']=='send') {
+ $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
+ 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
+ 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
+ 'Message'=>$trace[$i]['args'][0],
+ 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
+ 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
+ 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
+ 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
+
+ $skipFinalObjectEncode = true;
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ } else
+ if($Type==self::TABLE) {
+
+ if(isset($Object[0]) && is_string($Object[0])) {
+ $Object[1] = $this->encodeTable($Object[1]);
+ } else {
+ $Object = $this->encodeTable($Object);
+ }
+
+ $skipFinalObjectEncode = true;
+
+ } else {
+ if($Type===null) {
+ $Type = self::LOG;
+ }
+ }
+
+ if($this->options['includeLineNumbers']) {
+ if(!isset($meta['file']) || !isset($meta['line'])) {
+
+ $trace = debug_backtrace();
+ for( $i=0 ; $trace && $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if(isset($trace[$i]['file'])
+ && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip FB::fb() */
+ } else {
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ }
+ } else {
+ unset($meta['file']);
+ unset($meta['line']);
+ }
+
+ $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
+ $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
+
+ $structure_index = 1;
+ if($Type==self::DUMP) {
+ $structure_index = 2;
+ $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
+ } else {
+ $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
+ }
+
+ if($Type==self::DUMP) {
+ $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
+ } else {
+ $msg_meta = array('Type'=>$Type);
+ if($Label!==null) {
+ $msg_meta['Label'] = $Label;
+ }
+ if(isset($meta['file'])) {
+ $msg_meta['File'] = $meta['file'];
+ }
+ if(isset($meta['line'])) {
+ $msg_meta['Line'] = $meta['line'];
+ }
+ $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
+ }
+
+ $parts = explode("\n",chunk_split($msg, 5000, "\n"));
+
+ for( $i=0 ; $i2) {
+ // Message needs to be split into multiple parts
+ $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ (($i==0)?strlen($msg):'')
+ . '|' . $part . '|'
+ . (($isetHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ strlen($part) . '|' . $part . '|');
+ }
+
+ $this->messageIndex++;
+
+ if ($this->messageIndex > 99999) {
+ throw new Exception('Maximum number (99,999) of messages reached!');
+ }
+ }
+ }
+
+ $this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
+
+ return true;
+ }
+
+ /**
+ * Standardizes path for windows systems.
+ *
+ * @param string $Path
+ * @return string
+ */
+ protected function _standardizePath($Path) {
+ return preg_replace('/\\\\+/','/',$Path);
+ }
+
+ /**
+ * Escape trace path for windows systems
+ *
+ * @param array $Trace
+ * @return array
+ */
+ protected function _escapeTrace($Trace) {
+ if(!$Trace) return $Trace;
+ for( $i=0 ; $i_escapeTraceFile($Trace[$i]['file']);
+ }
+ if(isset($Trace[$i]['args'])) {
+ $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
+ }
+ }
+ return $Trace;
+ }
+
+ /**
+ * Escape file information of trace for windows systems
+ *
+ * @param string $File
+ * @return string
+ */
+ protected function _escapeTraceFile($File) {
+ /* Check if we have a windows filepath */
+ if(strpos($File,'\\')) {
+ /* First strip down to single \ */
+
+ $file = preg_replace('/\\\\+/','\\',$File);
+
+ return $file;
+ }
+ return $File;
+ }
+
+ /**
+ * Send header
+ *
+ * @param string $Name
+ * @param string_type $Value
+ */
+ protected function setHeader($Name, $Value) {
+ return header($Name.': '.$Value);
+ }
+
+ /**
+ * Get user agent
+ *
+ * @return string|false
+ */
+ protected function getUserAgent() {
+ if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
+ return $_SERVER['HTTP_USER_AGENT'];
+ }
+
+ /**
+ * Returns a new exception
+ *
+ * @param string $Message
+ * @return Exception
+ */
+ protected function newException($Message) {
+ return new Exception($Message);
+ }
+
+ /**
+ * Encode an object into a JSON string
+ *
+ * Uses PHP's jeson_encode() if available
+ *
+ * @param object $Object The object to be encoded
+ * @return string The JSON string
+ */
+ protected function jsonEncode($Object, $skipObjectEncode=false)
+ {
+ if(!$skipObjectEncode) {
+ $Object = $this->encodeObject($Object);
+ }
+
+ if(function_exists('json_encode')
+ && $this->options['useNativeJsonEncode']!=false) {
+
+ return json_encode($Object);
+ } else {
+ return $this->json_encode($Object);
+ }
+ }
+
+ /**
+ * Encodes a table by encoding each row and column with encodeObject()
+ *
+ * @param array $Table The table to be encoded
+ * @return array
+ */
+ protected function encodeTable($Table) {
+ if(!$Table) return $Table;
+ for( $i=0 ; $iencodeObject($Table[$i][$j]);
+ }
+ }
+ }
+ return $Table;
+ }
+
+ /**
+ * Encodes an object including members with
+ * protected and private visibility
+ *
+ * @param Object $Object The object to be encoded
+ * @param int $Depth The current traversal depth
+ * @return array All members of the object
+ */
+ protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
+ {
+ $return = array();
+
+ if (is_object($Object)) {
+
+ if ($ObjectDepth > $this->options['maxObjectDepth']) {
+ return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
+ }
+
+ foreach ($this->objectStack as $refVal) {
+ if ($refVal === $Object) {
+ return '** Recursion ('.get_class($Object).') **';
+ }
+ }
+ array_push($this->objectStack, $Object);
+
+ $return['__className'] = $class = get_class($Object);
+
+ $reflectionClass = new ReflectionClass($class);
+ $properties = array();
+ foreach( $reflectionClass->getProperties() as $property) {
+ $properties[$property->getName()] = $property;
+ }
+
+ $members = (array)$Object;
+
+ foreach( $properties as $raw_name => $property ) {
+
+ $name = $raw_name;
+ if($property->isStatic()) {
+ $name = 'static:'.$name;
+ }
+ if($property->isPublic()) {
+ $name = 'public:'.$name;
+ } else
+ if($property->isPrivate()) {
+ $name = 'private:'.$name;
+ $raw_name = "\0".$class."\0".$raw_name;
+ } else
+ if($property->isProtected()) {
+ $name = 'protected:'.$name;
+ $raw_name = "\0".'*'."\0".$raw_name;
+ }
+
+ if(!(isset($this->objectFilters[$class])
+ && is_array($this->objectFilters[$class])
+ && in_array($raw_name,$this->objectFilters[$class]))) {
+
+ if(array_key_exists($raw_name,$members)
+ && !$property->isStatic()) {
+
+ $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);
+
+ } else {
+ if(method_exists($property,'setAccessible')) {
+ $property->setAccessible(true);
+ $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
+ } else
+ if($property->isPublic()) {
+ $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
+ } else {
+ $return[$name] = '** Need PHP 5.3 to get value **';
+ }
+ }
+ } else {
+ $return[$name] = '** Excluded by Filter **';
+ }
+ }
+
+ // Include all members that are not defined in the class
+ // but exist in the object
+ foreach( $members as $raw_name => $value ) {
+
+ $name = $raw_name;
+
+ if ($name{0} == "\0") {
+ $parts = explode("\0", $name);
+ $name = $parts[2];
+ }
+
+ if(!isset($properties[$name])) {
+ $name = 'undeclared:'.$name;
+
+ if(!(isset($this->objectFilters[$class])
+ && is_array($this->objectFilters[$class])
+ && in_array($raw_name,$this->objectFilters[$class]))) {
+
+ $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
+ } else {
+ $return[$name] = '** Excluded by Filter **';
+ }
+ }
+ }
+
+ array_pop($this->objectStack);
+
+ } elseif (is_array($Object)) {
+
+ if ($ArrayDepth > $this->options['maxArrayDepth']) {
+ return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
+ }
+
+ foreach ($Object as $key => $val) {
+
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($key=='GLOBALS'
+ && is_array($val)
+ && array_key_exists('GLOBALS',$val)) {
+ $val['GLOBALS'] = '** Recursion (GLOBALS) **';
+ }
+
+ $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
+ }
+ } else {
+ if(self::is_utf8($Object)) {
+ return $Object;
+ } else {
+ return utf8_encode($Object);
+ }
+ }
+ return $return;
+ }
+
+ /**
+ * Returns true if $string is valid UTF-8 and false otherwise.
+ *
+ * @param mixed $str String to be tested
+ * @return boolean
+ */
+ protected static function is_utf8($str) {
+ $c=0; $b=0;
+ $bits=0;
+ $len=strlen($str);
+ for($i=0; $i<$len; $i++){
+ $c=ord($str[$i]);
+ if($c > 128){
+ if(($c >= 254)) return false;
+ elseif($c >= 252) $bits=6;
+ elseif($c >= 248) $bits=5;
+ elseif($c >= 240) $bits=4;
+ elseif($c >= 224) $bits=3;
+ elseif($c >= 192) $bits=2;
+ else return false;
+ if(($i+$bits) > $len) return false;
+ while($bits > 1){
+ $i++;
+ $b=ord($str[$i]);
+ if($b < 128 || $b > 191) return false;
+ $bits--;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Converts to and from JSON format.
+ *
+ * JSON (JavaScript Object Notation) is a lightweight data-interchange
+ * format. It is easy for humans to read and write. It is easy for machines
+ * to parse and generate. It is based on a subset of the JavaScript
+ * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
+ * This feature can also be found in Python. JSON is a text format that is
+ * completely language independent but uses conventions that are familiar
+ * to programmers of the C-family of languages, including C, C++, C#, Java,
+ * JavaScript, Perl, TCL, and many others. These properties make JSON an
+ * ideal data-interchange language.
+ *
+ * This package provides a simple encoder and decoder for JSON notation. It
+ * is intended for use with client-side Javascript applications that make
+ * use of HTTPRequest to perform server communication functions - data can
+ * be encoded into JSON notation for use in a client-side javascript, or
+ * decoded from incoming Javascript requests. JSON format is native to
+ * Javascript, and can be directly eval()'ed with no further parsing
+ * overhead
+ *
+ * All strings should be in ASCII or UTF-8 format!
+ *
+ * LICENSE: Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: Redistributions of source code must retain the
+ * above copyright notice, this list of conditions and the following
+ * disclaimer. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * @category
+ * @package Services_JSON
+ * @author Michal Migurski
+ * @author Matt Knapp
+ * @author Brett Stimmerman
+ * @author Christoph Dorn
+ * @copyright 2005 Michal Migurski
+ * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
+ */
+
+
+ /**
+ * Keep a list of objects as we descend into the array so we can detect recursion.
+ */
+ private $json_objectStack = array();
+
+
+ /**
+ * convert a string from one UTF-8 char to one UTF-16 char
+ *
+ * Normally should be handled by mb_convert_encoding, but
+ * provides a slower PHP-only method for installations
+ * that lack the multibye string extension.
+ *
+ * @param string $utf8 UTF-8 character
+ * @return string UTF-16 character
+ * @access private
+ */
+ private function json_utf82utf16($utf8)
+ {
+ // oh please oh please oh please oh please oh please
+ if(function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+ }
+
+ switch(strlen($utf8)) {
+ case 1:
+ // this case should never be reached, because we are in ASCII range
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return $utf8;
+
+ case 2:
+ // return a UTF-16 character from a 2-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr(0x07 & (ord($utf8{0}) >> 2))
+ . chr((0xC0 & (ord($utf8{0}) << 6))
+ | (0x3F & ord($utf8{1})));
+
+ case 3:
+ // return a UTF-16 character from a 3-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr((0xF0 & (ord($utf8{0}) << 4))
+ | (0x0F & (ord($utf8{1}) >> 2)))
+ . chr((0xC0 & (ord($utf8{1}) << 6))
+ | (0x7F & ord($utf8{2})));
+ }
+
+ // ignoring UTF-32 for now, sorry
+ return '';
+ }
+
+ /**
+ * encodes an arbitrary variable into JSON format
+ *
+ * @param mixed $var any number, boolean, string, array, or object to be encoded.
+ * see argument 1 to Services_JSON() above for array-parsing behavior.
+ * if var is a strng, note that encode() always expects it
+ * to be in ASCII or UTF-8 format!
+ *
+ * @return mixed JSON string representation of input var or an error if a problem occurs
+ * @access public
+ */
+ private function json_encode($var)
+ {
+
+ if(is_object($var)) {
+ if(in_array($var,$this->json_objectStack)) {
+ return '"** Recursion **"';
+ }
+ }
+
+ switch (gettype($var)) {
+ case 'boolean':
+ return $var ? 'true' : 'false';
+
+ case 'NULL':
+ return 'null';
+
+ case 'integer':
+ return (int) $var;
+
+ case 'double':
+ case 'float':
+ return (float) $var;
+
+ case 'string':
+ // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
+ $ascii = '';
+ $strlen_var = strlen($var);
+
+ /*
+ * Iterate over every character in the string,
+ * escaping with a slash or encoding to UTF-8 where necessary
+ */
+ for ($c = 0; $c < $strlen_var; ++$c) {
+
+ $ord_var_c = ord($var{$c});
+
+ switch (true) {
+ case $ord_var_c == 0x08:
+ $ascii .= '\b';
+ break;
+ case $ord_var_c == 0x09:
+ $ascii .= '\t';
+ break;
+ case $ord_var_c == 0x0A:
+ $ascii .= '\n';
+ break;
+ case $ord_var_c == 0x0C:
+ $ascii .= '\f';
+ break;
+ case $ord_var_c == 0x0D:
+ $ascii .= '\r';
+ break;
+
+ case $ord_var_c == 0x22:
+ case $ord_var_c == 0x2F:
+ case $ord_var_c == 0x5C:
+ // double quote, slash, slosh
+ $ascii .= '\\'.$var{$c};
+ break;
+
+ case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
+ // characters U-00000000 - U-0000007F (same as ASCII)
+ $ascii .= $var{$c};
+ break;
+
+ case (($ord_var_c & 0xE0) == 0xC0):
+ // characters U-00000080 - U-000007FF, mask 110XXXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
+ $c += 1;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF0) == 0xE0):
+ // characters U-00000800 - U-0000FFFF, mask 1110XXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}));
+ $c += 2;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF8) == 0xF0):
+ // characters U-00010000 - U-001FFFFF, mask 11110XXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}));
+ $c += 3;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFC) == 0xF8):
+ // characters U-00200000 - U-03FFFFFF, mask 111110XX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}));
+ $c += 4;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFE) == 0xFC):
+ // characters U-04000000 - U-7FFFFFFF, mask 1111110X
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}),
+ ord($var{$c + 5}));
+ $c += 5;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+ }
+ }
+
+ return '"'.$ascii.'"';
+
+ case 'array':
+ /*
+ * As per JSON spec if any array key is not an integer
+ * we must treat the the whole array as an object. We
+ * also try to catch a sparsely populated associative
+ * array with numeric keys here because some JS engines
+ * will create an array with empty indexes up to
+ * max_index which can cause memory issues and because
+ * the keys, which may be relevant, will be remapped
+ * otherwise.
+ *
+ * As per the ECMA and JSON specification an object may
+ * have any string as a property. Unfortunately due to
+ * a hole in the ECMA specification if the key is a
+ * ECMA reserved word or starts with a digit the
+ * parameter is only accessible using ECMAScript's
+ * bracket notation.
+ */
+
+ // treat as a JSON object
+ if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($var),
+ array_values($var));
+
+ array_pop($this->json_objectStack);
+
+ foreach($properties as $property) {
+ if($property instanceof Exception) {
+ return $property;
+ }
+ }
+
+ return '{' . join(',', $properties) . '}';
+ }
+
+ $this->json_objectStack[] = $var;
+
+ // treat it like a regular array
+ $elements = array_map(array($this, 'json_encode'), $var);
+
+ array_pop($this->json_objectStack);
+
+ foreach($elements as $element) {
+ if($element instanceof Exception) {
+ return $element;
+ }
+ }
+
+ return '[' . join(',', $elements) . ']';
+
+ case 'object':
+ $vars = self::encodeObject($var);
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($vars),
+ array_values($vars));
+
+ array_pop($this->json_objectStack);
+
+ foreach($properties as $property) {
+ if($property instanceof Exception) {
+ return $property;
+ }
+ }
+
+ return '{' . join(',', $properties) . '}';
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * array-walking function for use in generating JSON-formatted name-value pairs
+ *
+ * @param string $name name of key to use
+ * @param mixed $value reference to an array element to be encoded
+ *
+ * @return string JSON-formatted name-value pair, like '"name":value'
+ * @access private
+ */
+ private function json_name_value($name, $value)
+ {
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($name=='GLOBALS'
+ && is_array($value)
+ && array_key_exists('GLOBALS',$value)) {
+ $value['GLOBALS'] = '** Recursion **';
+ }
+
+ $encoded_value = $this->json_encode($value);
+
+ if($encoded_value instanceof Exception) {
+ return $encoded_value;
+ }
+
+ return $this->json_encode(strval($name)) . ':' . $encoded_value;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/HTTP/ConditionalGet.php b/plugins/Minify/extlib/minify/min/lib/HTTP/ConditionalGet.php
new file mode 100644
index 0000000000..823db058fa
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/HTTP/ConditionalGet.php
@@ -0,0 +1,348 @@
+
+ * list($updateTime, $content) = getDbUpdateAndContent();
+ * $cg = new HTTP_ConditionalGet(array(
+ * 'lastModifiedTime' => $updateTime
+ * ,'isPublic' => true
+ * ));
+ * $cg->sendHeaders();
+ * if ($cg->cacheIsValid) {
+ * exit();
+ * }
+ * echo $content;
+ *
+ *
+ * E.g. Shortcut for the above
+ *
+ * HTTP_ConditionalGet::check($updateTime, true); // exits if client has cache
+ * echo $content;
+ *
+ *
+ * E.g. Content from DB with no update time:
+ *
+ * $content = getContentFromDB();
+ * $cg = new HTTP_ConditionalGet(array(
+ * 'contentHash' => md5($content)
+ * ));
+ * $cg->sendHeaders();
+ * if ($cg->cacheIsValid) {
+ * exit();
+ * }
+ * echo $content;
+ *
+ *
+ * E.g. Static content with some static includes:
+ *
+ * // before content
+ * $cg = new HTTP_ConditionalGet(array(
+ * 'lastUpdateTime' => max(
+ * filemtime(__FILE__)
+ * ,filemtime('/path/to/header.inc')
+ * ,filemtime('/path/to/footer.inc')
+ * )
+ * ));
+ * $cg->sendHeaders();
+ * if ($cg->cacheIsValid) {
+ * exit();
+ * }
+ *
+ * @package Minify
+ * @subpackage HTTP
+ * @author Stephen Clay
+ */
+class HTTP_ConditionalGet {
+
+ /**
+ * Does the client have a valid copy of the requested resource?
+ *
+ * You'll want to check this after instantiating the object. If true, do
+ * not send content, just call sendHeaders() if you haven't already.
+ *
+ * @var bool
+ */
+ public $cacheIsValid = null;
+
+ /**
+ * @param array $spec options
+ *
+ * 'isPublic': (bool) if true, the Cache-Control header will contain
+ * "public", allowing proxies to cache the content. Otherwise "private" will
+ * be sent, allowing only browser caching. (default false)
+ *
+ * 'lastModifiedTime': (int) if given, both ETag AND Last-Modified headers
+ * will be sent with content. This is recommended.
+ *
+ * 'encoding': (string) if set, the header "Vary: Accept-Encoding" will
+ * always be sent and a truncated version of the encoding will be appended
+ * to the ETag. E.g. "pub123456;gz". This will also trigger a more lenient
+ * checking of the client's If-None-Match header, as the encoding portion of
+ * the ETag will be stripped before comparison.
+ *
+ * 'contentHash': (string) if given, only the ETag header can be sent with
+ * content (only HTTP1.1 clients can conditionally GET). The given string
+ * should be short with no quote characters and always change when the
+ * resource changes (recommend md5()). This is not needed/used if
+ * lastModifiedTime is given.
+ *
+ * 'eTag': (string) if given, this will be used as the ETag header rather
+ * than values based on lastModifiedTime or contentHash. Also the encoding
+ * string will not be appended to the given value as described above.
+ *
+ * 'invalidate': (bool) if true, the client cache will be considered invalid
+ * without testing. Effectively this disables conditional GET.
+ * (default false)
+ *
+ * 'maxAge': (int) if given, this will set the Cache-Control max-age in
+ * seconds, and also set the Expires header to the equivalent GMT date.
+ * After the max-age period has passed, the browser will again send a
+ * conditional GET to revalidate its cache.
+ *
+ * @return null
+ */
+ public function __construct($spec)
+ {
+ $scope = (isset($spec['isPublic']) && $spec['isPublic'])
+ ? 'public'
+ : 'private';
+ $maxAge = 0;
+ // backwards compatibility (can be removed later)
+ if (isset($spec['setExpires'])
+ && is_numeric($spec['setExpires'])
+ && ! isset($spec['maxAge'])) {
+ $spec['maxAge'] = $spec['setExpires'] - $_SERVER['REQUEST_TIME'];
+ }
+ if (isset($spec['maxAge'])) {
+ $maxAge = $spec['maxAge'];
+ $this->_headers['Expires'] = self::gmtDate(
+ $_SERVER['REQUEST_TIME'] + $spec['maxAge']
+ );
+ }
+ $etagAppend = '';
+ if (isset($spec['encoding'])) {
+ $this->_stripEtag = true;
+ $this->_headers['Vary'] = 'Accept-Encoding';
+ if ('' !== $spec['encoding']) {
+ if (0 === strpos($spec['encoding'], 'x-')) {
+ $spec['encoding'] = substr($spec['encoding'], 2);
+ }
+ $etagAppend = ';' . substr($spec['encoding'], 0, 2);
+ }
+ }
+ if (isset($spec['lastModifiedTime'])) {
+ $this->_setLastModified($spec['lastModifiedTime']);
+ if (isset($spec['eTag'])) { // Use it
+ $this->_setEtag($spec['eTag'], $scope);
+ } else { // base both headers on time
+ $this->_setEtag($spec['lastModifiedTime'] . $etagAppend, $scope);
+ }
+ } elseif (isset($spec['eTag'])) { // Use it
+ $this->_setEtag($spec['eTag'], $scope);
+ } elseif (isset($spec['contentHash'])) { // Use the hash as the ETag
+ $this->_setEtag($spec['contentHash'] . $etagAppend, $scope);
+ }
+ $this->_headers['Cache-Control'] = "max-age={$maxAge}, {$scope}";
+ // invalidate cache if disabled, otherwise check
+ $this->cacheIsValid = (isset($spec['invalidate']) && $spec['invalidate'])
+ ? false
+ : $this->_isCacheValid();
+ }
+
+ /**
+ * Get array of output headers to be sent
+ *
+ * In the case of 304 responses, this array will only contain the response
+ * code header: array('_responseCode' => 'HTTP/1.0 304 Not Modified')
+ *
+ * Otherwise something like:
+ *
+ * array(
+ * 'Cache-Control' => 'max-age=0, public'
+ * ,'ETag' => '"foobar"'
+ * )
+ *
+ *
+ * @return array
+ */
+ public function getHeaders()
+ {
+ return $this->_headers;
+ }
+
+ /**
+ * Set the Content-Length header in bytes
+ *
+ * With most PHP configs, as long as you don't flush() output, this method
+ * is not needed and PHP will buffer all output and set Content-Length for
+ * you. Otherwise you'll want to call this to let the client know up front.
+ *
+ * @param int $bytes
+ *
+ * @return int copy of input $bytes
+ */
+ public function setContentLength($bytes)
+ {
+ return $this->_headers['Content-Length'] = $bytes;
+ }
+
+ /**
+ * Send headers
+ *
+ * @see getHeaders()
+ *
+ * Note this doesn't "clear" the headers. Calling sendHeaders() will
+ * call header() again (but probably have not effect) and getHeaders() will
+ * still return the headers.
+ *
+ * @return null
+ */
+ public function sendHeaders()
+ {
+ $headers = $this->_headers;
+ if (array_key_exists('_responseCode', $headers)) {
+ header($headers['_responseCode']);
+ unset($headers['_responseCode']);
+ }
+ foreach ($headers as $name => $val) {
+ header($name . ': ' . $val);
+ }
+ }
+
+ /**
+ * Exit if the client's cache is valid for this resource
+ *
+ * This is a convenience method for common use of the class
+ *
+ * @param int $lastModifiedTime if given, both ETag AND Last-Modified headers
+ * will be sent with content. This is recommended.
+ *
+ * @param bool $isPublic (default false) if true, the Cache-Control header
+ * will contain "public", allowing proxies to cache the content. Otherwise
+ * "private" will be sent, allowing only browser caching.
+ *
+ * @param array $options (default empty) additional options for constructor
+ *
+ * @return null
+ */
+ public static function check($lastModifiedTime = null, $isPublic = false, $options = array())
+ {
+ if (null !== $lastModifiedTime) {
+ $options['lastModifiedTime'] = (int)$lastModifiedTime;
+ }
+ $options['isPublic'] = (bool)$isPublic;
+ $cg = new HTTP_ConditionalGet($options);
+ $cg->sendHeaders();
+ if ($cg->cacheIsValid) {
+ exit();
+ }
+ }
+
+
+ /**
+ * Get a GMT formatted date for use in HTTP headers
+ *
+ *
+ * header('Expires: ' . HTTP_ConditionalGet::gmtdate($time));
+ *
+ *
+ * @param int $time unix timestamp
+ *
+ * @return string
+ */
+ public static function gmtDate($time)
+ {
+ return gmdate('D, d M Y H:i:s \G\M\T', $time);
+ }
+
+ protected $_headers = array();
+ protected $_lmTime = null;
+ protected $_etag = null;
+ protected $_stripEtag = false;
+
+ protected function _setEtag($hash, $scope)
+ {
+ $this->_etag = '"' . substr($scope, 0, 3) . $hash . '"';
+ $this->_headers['ETag'] = $this->_etag;
+ }
+
+ protected function _setLastModified($time)
+ {
+ $this->_lmTime = (int)$time;
+ $this->_headers['Last-Modified'] = self::gmtDate($time);
+ }
+
+ /**
+ * Determine validity of client cache and queue 304 header if valid
+ */
+ protected function _isCacheValid()
+ {
+ if (null === $this->_etag) {
+ // lmTime is copied to ETag, so this condition implies that the
+ // server sent neither ETag nor Last-Modified, so the client can't
+ // possibly has a valid cache.
+ return false;
+ }
+ $isValid = ($this->resourceMatchedEtag() || $this->resourceNotModified());
+ if ($isValid) {
+ $this->_headers['_responseCode'] = 'HTTP/1.0 304 Not Modified';
+ }
+ return $isValid;
+ }
+
+ protected function resourceMatchedEtag()
+ {
+ if (!isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
+ return false;
+ }
+ $clientEtagList = get_magic_quotes_gpc()
+ ? stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])
+ : $_SERVER['HTTP_IF_NONE_MATCH'];
+ $clientEtags = explode(',', $clientEtagList);
+
+ $compareTo = $this->normalizeEtag($this->_etag);
+ foreach ($clientEtags as $clientEtag) {
+ if ($this->normalizeEtag($clientEtag) === $compareTo) {
+ // respond with the client's matched ETag, even if it's not what
+ // we would've sent by default
+ $this->_headers['ETag'] = trim($clientEtag);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected function normalizeEtag($etag) {
+ $etag = trim($etag);
+ return $this->_stripEtag
+ ? preg_replace('/;\\w\\w"$/', '"', $etag)
+ : $etag;
+ }
+
+ protected function resourceNotModified()
+ {
+ if (!isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
+ return false;
+ }
+ $ifModifiedSince = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
+ if (false !== ($semicolon = strrpos($ifModifiedSince, ';'))) {
+ // IE has tacked on extra data to this header, strip it
+ $ifModifiedSince = substr($ifModifiedSince, 0, $semicolon);
+ }
+ if ($ifModifiedSince == self::gmtDate($this->_lmTime)) {
+ // Apache 2.2's behavior. If there was no ETag match, send the
+ // non-encoded version of the ETag value.
+ $this->_headers['ETag'] = $this->normalizeEtag($this->_etag);
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/HTTP/Encoder.php b/plugins/Minify/extlib/minify/min/lib/HTTP/Encoder.php
new file mode 100644
index 0000000000..66c26789c3
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/HTTP/Encoder.php
@@ -0,0 +1,326 @@
+
+ * // Send a CSS file, compressed if possible
+ * $he = new HTTP_Encoder(array(
+ * 'content' => file_get_contents($cssFile)
+ * ,'type' => 'text/css'
+ * ));
+ * $he->encode();
+ * $he->sendAll();
+ *
+ *
+ *
+ * // Shortcut to encoding output
+ * header('Content-Type: text/css'); // needed if not HTML
+ * HTTP_Encoder::output($css);
+ *
+ *
+ *
+ * // Just sniff for the accepted encoding
+ * $encoding = HTTP_Encoder::getAcceptedEncoding();
+ *
+ *
+ * For more control over headers, use getHeaders() and getData() and send your
+ * own output.
+ *
+ * Note: If you don't need header mgmt, use PHP's native gzencode, gzdeflate,
+ * and gzcompress functions for gzip, deflate, and compress-encoding
+ * respectively.
+ *
+ * @package Minify
+ * @subpackage HTTP
+ * @author Stephen Clay
+ */
+class HTTP_Encoder {
+
+ /**
+ * Should the encoder allow HTTP encoding to IE6?
+ *
+ * If you have many IE6 users and the bandwidth savings is worth troubling
+ * some of them, set this to true.
+ *
+ * By default, encoding is only offered to IE7+. When this is true,
+ * getAcceptedEncoding() will return an encoding for IE6 if its user agent
+ * string contains "SV1". This has been documented in many places as "safe",
+ * but there seem to be remaining, intermittent encoding bugs in patched
+ * IE6 on the wild web.
+ *
+ * @var bool
+ */
+ public static $encodeToIe6 = false;
+
+
+ /**
+ * Default compression level for zlib operations
+ *
+ * This level is used if encode() is not given a $compressionLevel
+ *
+ * @var int
+ */
+ public static $compressionLevel = 6;
+
+
+ /**
+ * Get an HTTP Encoder object
+ *
+ * @param array $spec options
+ *
+ * 'content': (string required) content to be encoded
+ *
+ * 'type': (string) if set, the Content-Type header will have this value.
+ *
+ * 'method: (string) only set this if you are forcing a particular encoding
+ * method. If not set, the best method will be chosen by getAcceptedEncoding()
+ * The available methods are 'gzip', 'deflate', 'compress', and '' (no
+ * encoding)
+ *
+ * @return null
+ */
+ public function __construct($spec)
+ {
+ $this->_content = $spec['content'];
+ $this->_headers['Content-Length'] = (string)strlen($this->_content);
+ if (isset($spec['type'])) {
+ $this->_headers['Content-Type'] = $spec['type'];
+ }
+ if (isset($spec['method'])
+ && in_array($spec['method'], array('gzip', 'deflate', 'compress', '')))
+ {
+ $this->_encodeMethod = array($spec['method'], $spec['method']);
+ } else {
+ $this->_encodeMethod = self::getAcceptedEncoding();
+ }
+ }
+
+ /**
+ * Get content in current form
+ *
+ * Call after encode() for encoded content.
+ *
+ * return string
+ */
+ public function getContent()
+ {
+ return $this->_content;
+ }
+
+ /**
+ * Get array of output headers to be sent
+ *
+ * E.g.
+ *
+ * array(
+ * 'Content-Length' => '615'
+ * ,'Content-Encoding' => 'x-gzip'
+ * ,'Vary' => 'Accept-Encoding'
+ * )
+ *
+ *
+ * @return array
+ */
+ public function getHeaders()
+ {
+ return $this->_headers;
+ }
+
+ /**
+ * Send output headers
+ *
+ * You must call this before headers are sent and it probably cannot be
+ * used in conjunction with zlib output buffering / mod_gzip. Errors are
+ * not handled purposefully.
+ *
+ * @see getHeaders()
+ *
+ * @return null
+ */
+ public function sendHeaders()
+ {
+ foreach ($this->_headers as $name => $val) {
+ header($name . ': ' . $val);
+ }
+ }
+
+ /**
+ * Send output headers and content
+ *
+ * A shortcut for sendHeaders() and echo getContent()
+ *
+ * You must call this before headers are sent and it probably cannot be
+ * used in conjunction with zlib output buffering / mod_gzip. Errors are
+ * not handled purposefully.
+ *
+ * @return null
+ */
+ public function sendAll()
+ {
+ $this->sendHeaders();
+ echo $this->_content;
+ }
+
+ /**
+ * Determine the client's best encoding method from the HTTP Accept-Encoding
+ * header.
+ *
+ * If no Accept-Encoding header is set, or the browser is IE before v6 SP2,
+ * this will return ('', ''), the "identity" encoding.
+ *
+ * A syntax-aware scan is done of the Accept-Encoding, so the method must
+ * be non 0. The methods are favored in order of gzip, deflate, then
+ * compress. Deflate is always smallest and generally faster, but is
+ * rarely sent by servers, so client support could be buggier.
+ *
+ * @param bool $allowCompress allow the older compress encoding
+ *
+ * @param bool $allowDeflate allow the more recent deflate encoding
+ *
+ * @return array two values, 1st is the actual encoding method, 2nd is the
+ * alias of that method to use in the Content-Encoding header (some browsers
+ * call gzip "x-gzip" etc.)
+ */
+ public static function getAcceptedEncoding($allowCompress = true, $allowDeflate = true)
+ {
+ // @link http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
+
+ if (! isset($_SERVER['HTTP_ACCEPT_ENCODING'])
+ || self::_isBuggyIe())
+ {
+ return array('', '');
+ }
+ $ae = $_SERVER['HTTP_ACCEPT_ENCODING'];
+ // gzip checks (quick)
+ if (0 === strpos($ae, 'gzip,') // most browsers
+ || 0 === strpos($ae, 'deflate, gzip,') // opera
+ ) {
+ return array('gzip', 'gzip');
+ }
+ // gzip checks (slow)
+ if (preg_match(
+ '@(?:^|,)\\s*((?:x-)?gzip)\\s*(?:$|,|;\\s*q=(?:0\\.|1))@'
+ ,$ae
+ ,$m)) {
+ return array('gzip', $m[1]);
+ }
+ if ($allowDeflate) {
+ // deflate checks
+ $aeRev = strrev($ae);
+ if (0 === strpos($aeRev, 'etalfed ,') // ie, webkit
+ || 0 === strpos($aeRev, 'etalfed,') // gecko
+ || 0 === strpos($ae, 'deflate,') // opera
+ // slow parsing
+ || preg_match(
+ '@(?:^|,)\\s*deflate\\s*(?:$|,|;\\s*q=(?:0\\.|1))@', $ae)) {
+ return array('deflate', 'deflate');
+ }
+ }
+ if ($allowCompress && preg_match(
+ '@(?:^|,)\\s*((?:x-)?compress)\\s*(?:$|,|;\\s*q=(?:0\\.|1))@'
+ ,$ae
+ ,$m)) {
+ return array('compress', $m[1]);
+ }
+ return array('', '');
+ }
+
+ /**
+ * Encode (compress) the content
+ *
+ * If the encode method is '' (none) or compression level is 0, or the 'zlib'
+ * extension isn't loaded, we return false.
+ *
+ * Then the appropriate gz_* function is called to compress the content. If
+ * this fails, false is returned.
+ *
+ * The header "Vary: Accept-Encoding" is added. If encoding is successful,
+ * the Content-Length header is updated, and Content-Encoding is also added.
+ *
+ * @param int $compressionLevel given to zlib functions. If not given, the
+ * class default will be used.
+ *
+ * @return bool success true if the content was actually compressed
+ */
+ public function encode($compressionLevel = null)
+ {
+ $this->_headers['Vary'] = 'Accept-Encoding';
+ if (null === $compressionLevel) {
+ $compressionLevel = self::$compressionLevel;
+ }
+ if ('' === $this->_encodeMethod[0]
+ || ($compressionLevel == 0)
+ || !extension_loaded('zlib'))
+ {
+ return false;
+ }
+ if ($this->_encodeMethod[0] === 'deflate') {
+ $encoded = gzdeflate($this->_content, $compressionLevel);
+ } elseif ($this->_encodeMethod[0] === 'gzip') {
+ $encoded = gzencode($this->_content, $compressionLevel);
+ } else {
+ $encoded = gzcompress($this->_content, $compressionLevel);
+ }
+ if (false === $encoded) {
+ return false;
+ }
+ $this->_headers['Content-Length'] = strlen($encoded);
+ $this->_headers['Content-Encoding'] = $this->_encodeMethod[1];
+ $this->_content = $encoded;
+ return true;
+ }
+
+ /**
+ * Encode and send appropriate headers and content
+ *
+ * This is a convenience method for common use of the class
+ *
+ * @param string $content
+ *
+ * @param int $compressionLevel given to zlib functions. If not given, the
+ * class default will be used.
+ *
+ * @return bool success true if the content was actually compressed
+ */
+ public static function output($content, $compressionLevel = null)
+ {
+ if (null === $compressionLevel) {
+ $compressionLevel = self::$compressionLevel;
+ }
+ $he = new HTTP_Encoder(array('content' => $content));
+ $ret = $he->encode($compressionLevel);
+ $he->sendAll();
+ return $ret;
+ }
+
+ protected $_content = '';
+ protected $_headers = array();
+ protected $_encodeMethod = array('', '');
+
+ /**
+ * Is the browser an IE version earlier than 6 SP2?
+ */
+ protected static function _isBuggyIe()
+ {
+ $ua = $_SERVER['HTTP_USER_AGENT'];
+ // quick escape for non-IEs
+ if (0 !== strpos($ua, 'Mozilla/4.0 (compatible; MSIE ')
+ || false !== strpos($ua, 'Opera')) {
+ return false;
+ }
+ // no regex = faaast
+ $version = (float)substr($ua, 30);
+ return self::$encodeToIe6
+ ? ($version < 6 || ($version == 6 && false === strpos($ua, 'SV1')))
+ : ($version < 7);
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/JSMin.php b/plugins/Minify/extlib/minify/min/lib/JSMin.php
new file mode 100644
index 0000000000..770e1c6104
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/JSMin.php
@@ -0,0 +1,314 @@
+ (PHP port)
+ * @author Steve Clay (modifications + cleanup)
+ * @author Andrea Giammarchi (spaceBeforeRegExp)
+ * @copyright 2002 Douglas Crockford (jsmin.c)
+ * @copyright 2008 Ryan Grove (PHP port)
+ * @license http://opensource.org/licenses/mit-license.php MIT License
+ * @link http://code.google.com/p/jsmin-php/
+ */
+
+class JSMin {
+ const ORD_LF = 10;
+ const ORD_SPACE = 32;
+ const ACTION_KEEP_A = 1;
+ const ACTION_DELETE_A = 2;
+ const ACTION_DELETE_A_B = 3;
+
+ protected $a = "\n";
+ protected $b = '';
+ protected $input = '';
+ protected $inputIndex = 0;
+ protected $inputLength = 0;
+ protected $lookAhead = null;
+ protected $output = '';
+
+ /**
+ * Minify Javascript
+ *
+ * @param string $js Javascript to be minified
+ * @return string
+ */
+ public static function minify($js)
+ {
+ $jsmin = new JSMin($js);
+ return $jsmin->min();
+ }
+
+ /**
+ * Setup process
+ */
+ public function __construct($input)
+ {
+ $this->input = str_replace("\r\n", "\n", $input);
+ $this->inputLength = strlen($this->input);
+ }
+
+ /**
+ * Perform minification, return result
+ */
+ public function min()
+ {
+ if ($this->output !== '') { // min already run
+ return $this->output;
+ }
+ $this->action(self::ACTION_DELETE_A_B);
+
+ while ($this->a !== null) {
+ // determine next command
+ $command = self::ACTION_KEEP_A; // default
+ if ($this->a === ' ') {
+ if (! $this->isAlphaNum($this->b)) {
+ $command = self::ACTION_DELETE_A;
+ }
+ } elseif ($this->a === "\n") {
+ if ($this->b === ' ') {
+ $command = self::ACTION_DELETE_A_B;
+ } elseif (false === strpos('{[(+-', $this->b)
+ && ! $this->isAlphaNum($this->b)) {
+ $command = self::ACTION_DELETE_A;
+ }
+ } elseif (! $this->isAlphaNum($this->a)) {
+ if ($this->b === ' '
+ || ($this->b === "\n"
+ && (false === strpos('}])+-"\'', $this->a)))) {
+ $command = self::ACTION_DELETE_A_B;
+ }
+ }
+ $this->action($command);
+ }
+ $this->output = trim($this->output);
+ return $this->output;
+ }
+
+ /**
+ * ACTION_KEEP_A = Output A. Copy B to A. Get the next B.
+ * ACTION_DELETE_A = Copy B to A. Get the next B.
+ * ACTION_DELETE_A_B = Get the next B.
+ */
+ protected function action($command)
+ {
+ switch ($command) {
+ case self::ACTION_KEEP_A:
+ $this->output .= $this->a;
+ // fallthrough
+ case self::ACTION_DELETE_A:
+ $this->a = $this->b;
+ if ($this->a === "'" || $this->a === '"') { // string literal
+ $str = $this->a; // in case needed for exception
+ while (true) {
+ $this->output .= $this->a;
+ $this->a = $this->get();
+ if ($this->a === $this->b) { // end quote
+ break;
+ }
+ if (ord($this->a) <= self::ORD_LF) {
+ throw new JSMin_UnterminatedStringException(
+ 'Unterminated String: ' . var_export($str, true));
+ }
+ $str .= $this->a;
+ if ($this->a === '\\') {
+ $this->output .= $this->a;
+ $this->a = $this->get();
+ $str .= $this->a;
+ }
+ }
+ }
+ // fallthrough
+ case self::ACTION_DELETE_A_B:
+ $this->b = $this->next();
+ if ($this->b === '/' && $this->isRegexpLiteral()) { // RegExp literal
+ $this->output .= $this->a . $this->b;
+ $pattern = '/'; // in case needed for exception
+ while (true) {
+ $this->a = $this->get();
+ $pattern .= $this->a;
+ if ($this->a === '/') { // end pattern
+ break; // while (true)
+ } elseif ($this->a === '\\') {
+ $this->output .= $this->a;
+ $this->a = $this->get();
+ $pattern .= $this->a;
+ } elseif (ord($this->a) <= self::ORD_LF) {
+ throw new JSMin_UnterminatedRegExpException(
+ 'Unterminated RegExp: '. var_export($pattern, true));
+ }
+ $this->output .= $this->a;
+ }
+ $this->b = $this->next();
+ }
+ // end case ACTION_DELETE_A_B
+ }
+ }
+
+ protected function isRegexpLiteral()
+ {
+ if (false !== strpos("\n{;(,=:[!&|?", $this->a)) { // we aren't dividing
+ return true;
+ }
+ if (' ' === $this->a) {
+ $length = strlen($this->output);
+ if ($length < 2) { // weird edge case
+ return true;
+ }
+ // you can't divide a keyword
+ if (preg_match('/(?:case|else|in|return|typeof)$/', $this->output, $m)) {
+ if ($this->output === $m[0]) { // odd but could happen
+ return true;
+ }
+ // make sure it's a keyword, not end of an identifier
+ $charBeforeKeyword = substr($this->output, $length - strlen($m[0]) - 1, 1);
+ if (! $this->isAlphaNum($charBeforeKeyword)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Get next char. Convert ctrl char to space.
+ */
+ protected function get()
+ {
+ $c = $this->lookAhead;
+ $this->lookAhead = null;
+ if ($c === null) {
+ if ($this->inputIndex < $this->inputLength) {
+ $c = $this->input[$this->inputIndex];
+ $this->inputIndex += 1;
+ } else {
+ return null;
+ }
+ }
+ if ($c === "\r" || $c === "\n") {
+ return "\n";
+ }
+ if (ord($c) < self::ORD_SPACE) { // control char
+ return ' ';
+ }
+ return $c;
+ }
+
+ /**
+ * Get next char. If is ctrl character, translate to a space or newline.
+ */
+ protected function peek()
+ {
+ $this->lookAhead = $this->get();
+ return $this->lookAhead;
+ }
+
+ /**
+ * Is $c a letter, digit, underscore, dollar sign, escape, or non-ASCII?
+ */
+ protected function isAlphaNum($c)
+ {
+ return (preg_match('/^[0-9a-zA-Z_\\$\\\\]$/', $c) || ord($c) > 126);
+ }
+
+ protected function singleLineComment()
+ {
+ $comment = '';
+ while (true) {
+ $get = $this->get();
+ $comment .= $get;
+ if (ord($get) <= self::ORD_LF) { // EOL reached
+ // if IE conditional comment
+ if (preg_match('/^\\/@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
+ return "/{$comment}";
+ }
+ return $get;
+ }
+ }
+ }
+
+ protected function multipleLineComment()
+ {
+ $this->get();
+ $comment = '';
+ while (true) {
+ $get = $this->get();
+ if ($get === '*') {
+ if ($this->peek() === '/') { // end of comment reached
+ $this->get();
+ // if comment preserved by YUI Compressor
+ if (0 === strpos($comment, '!')) {
+ return "\n/*" . substr($comment, 1) . "*/\n";
+ }
+ // if IE conditional comment
+ if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
+ return "/*{$comment}*/";
+ }
+ return ' ';
+ }
+ } elseif ($get === null) {
+ throw new JSMin_UnterminatedCommentException('Unterminated Comment: ' . var_export('/*' . $comment, true));
+ }
+ $comment .= $get;
+ }
+ }
+
+ /**
+ * Get the next character, skipping over comments.
+ * Some comments may be preserved.
+ */
+ protected function next()
+ {
+ $get = $this->get();
+ if ($get !== '/') {
+ return $get;
+ }
+ switch ($this->peek()) {
+ case '/': return $this->singleLineComment();
+ case '*': return $this->multipleLineComment();
+ default: return $get;
+ }
+ }
+}
+
+class JSMin_UnterminatedStringException extends Exception {}
+class JSMin_UnterminatedCommentException extends Exception {}
+class JSMin_UnterminatedRegExpException extends Exception {}
diff --git a/plugins/Minify/extlib/minify/min/lib/JSMinPlus.php b/plugins/Minify/extlib/minify/min/lib/JSMinPlus.php
new file mode 100644
index 0000000000..31a1a5cb48
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/JSMinPlus.php
@@ -0,0 +1,1872 @@
+
+ *
+ * Usage: $minified = JSMinPlus::minify($script [, $filename])
+ *
+ * Versionlog (see also changelog.txt):
+ * 12-04-2009 - some small bugfixes and performance improvements
+ * 09-04-2009 - initial open sourced version 1.0
+ *
+ * Latest version of this script: http://files.tweakers.net/jsminplus/jsminplus.zip
+ *
+ */
+
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is the Narcissus JavaScript engine.
+ *
+ * The Initial Developer of the Original Code is
+ * Brendan Eich .
+ * Portions created by the Initial Developer are Copyright (C) 2004
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s): Tino Zijdel
+ * PHP port, modifications and minifier routine are (C) 2009
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+define('TOKEN_END', 1);
+define('TOKEN_NUMBER', 2);
+define('TOKEN_IDENTIFIER', 3);
+define('TOKEN_STRING', 4);
+define('TOKEN_REGEXP', 5);
+define('TOKEN_NEWLINE', 6);
+define('TOKEN_CONDCOMMENT_MULTILINE', 7);
+
+define('JS_SCRIPT', 100);
+define('JS_BLOCK', 101);
+define('JS_LABEL', 102);
+define('JS_FOR_IN', 103);
+define('JS_CALL', 104);
+define('JS_NEW_WITH_ARGS', 105);
+define('JS_INDEX', 106);
+define('JS_ARRAY_INIT', 107);
+define('JS_OBJECT_INIT', 108);
+define('JS_PROPERTY_INIT', 109);
+define('JS_GETTER', 110);
+define('JS_SETTER', 111);
+define('JS_GROUP', 112);
+define('JS_LIST', 113);
+
+define('DECLARED_FORM', 0);
+define('EXPRESSED_FORM', 1);
+define('STATEMENT_FORM', 2);
+
+class JSMinPlus
+{
+ private $parser;
+ private $reserved = array(
+ 'break', 'case', 'catch', 'continue', 'default', 'delete', 'do',
+ 'else', 'finally', 'for', 'function', 'if', 'in', 'instanceof',
+ 'new', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'var',
+ 'void', 'while', 'with',
+ // Words reserved for future use
+ 'abstract', 'boolean', 'byte', 'char', 'class', 'const', 'debugger',
+ 'double', 'enum', 'export', 'extends', 'final', 'float', 'goto',
+ 'implements', 'import', 'int', 'interface', 'long', 'native',
+ 'package', 'private', 'protected', 'public', 'short', 'static',
+ 'super', 'synchronized', 'throws', 'transient', 'volatile',
+ // These are not reserved, but should be taken into account
+ // in isValidIdentifier (See jslint source code)
+ 'arguments', 'eval', 'true', 'false', 'Infinity', 'NaN', 'null', 'undefined'
+ );
+
+ private function __construct()
+ {
+ $this->parser = new JSParser();
+ }
+
+ public static function minify($js, $filename='')
+ {
+ static $instance;
+
+ // this is a singleton
+ if(!$instance)
+ $instance = new JSMinPlus();
+
+ return $instance->min($js, $filename);
+ }
+
+ private function min($js, $filename)
+ {
+ try
+ {
+ $n = $this->parser->parse($js, $filename, 1);
+ return $this->parseTree($n);
+ }
+ catch(Exception $e)
+ {
+ echo $e->getMessage() . "\n";
+ }
+
+ return false;
+ }
+
+ private function parseTree($n, $noBlockGrouping = false)
+ {
+ $s = '';
+
+ switch ($n->type)
+ {
+ case KEYWORD_FUNCTION:
+ $s .= 'function' . ($n->name ? ' ' . $n->name : '') . '(';
+ $params = $n->params;
+ for ($i = 0, $j = count($params); $i < $j; $i++)
+ $s .= ($i ? ',' : '') . $params[$i];
+ $s .= '){' . $this->parseTree($n->body, true) . '}';
+ break;
+
+ case JS_SCRIPT:
+ // we do nothing with funDecls or varDecls
+ $noBlockGrouping = true;
+ // fall through
+ case JS_BLOCK:
+ $childs = $n->treeNodes;
+ for ($c = 0, $i = 0, $j = count($childs); $i < $j; $i++)
+ {
+ $t = $this->parseTree($childs[$i]);
+ if (strlen($t))
+ {
+ if ($c)
+ {
+ if ($childs[$i]->type == KEYWORD_FUNCTION && $childs[$i]->functionForm == DECLARED_FORM)
+ $s .= "\n"; // put declared functions on a new line
+ else
+ $s .= ';';
+ }
+
+ $s .= $t;
+
+ $c++;
+ }
+ }
+
+ if ($c > 1 && !$noBlockGrouping)
+ {
+ $s = '{' . $s . '}';
+ }
+ break;
+
+ case KEYWORD_IF:
+ $s = 'if(' . $this->parseTree($n->condition) . ')';
+ $thenPart = $this->parseTree($n->thenPart);
+ $elsePart = $n->elsePart ? $this->parseTree($n->elsePart) : null;
+
+ // quite a rancid hack to see if we should enclose the thenpart in brackets
+ if ($thenPart[0] != '{')
+ {
+ if (strpos($thenPart, 'if(') !== false)
+ $thenPart = '{' . $thenPart . '}';
+ elseif ($elsePart)
+ $thenPart .= ';';
+ }
+
+ $s .= $thenPart;
+
+ if ($elsePart)
+ {
+ $s .= 'else';
+
+ if ($elsePart[0] != '{')
+ $s .= ' ';
+
+ $s .= $elsePart;
+ }
+ break;
+
+ case KEYWORD_SWITCH:
+ $s = 'switch(' . $this->parseTree($n->discriminant) . '){';
+ $cases = $n->cases;
+ for ($i = 0, $j = count($cases); $i < $j; $i++)
+ {
+ $case = $cases[$i];
+ if ($case->type == KEYWORD_CASE)
+ $s .= 'case' . ($case->caseLabel->type != TOKEN_STRING ? ' ' : '') . $this->parseTree($case->caseLabel) . ':';
+ else
+ $s .= 'default:';
+
+ $statement = $this->parseTree($case->statements);
+ if ($statement)
+ $s .= $statement . ';';
+ }
+ $s = rtrim($s, ';') . '}';
+ break;
+
+ case KEYWORD_FOR:
+ $s = 'for(' . ($n->setup ? $this->parseTree($n->setup) : '')
+ . ';' . ($n->condition ? $this->parseTree($n->condition) : '')
+ . ';' . ($n->update ? $this->parseTree($n->update) : '') . ')'
+ . $this->parseTree($n->body);
+ break;
+
+ case KEYWORD_WHILE:
+ $s = 'while(' . $this->parseTree($n->condition) . ')' . $this->parseTree($n->body);
+ break;
+
+ case JS_FOR_IN:
+ $s = 'for(' . ($n->varDecl ? $this->parseTree($n->varDecl) : $this->parseTree($n->iterator)) . ' in ' . $this->parseTree($n->object) . ')' . $this->parseTree($n->body);
+ break;
+
+ case KEYWORD_DO:
+ $s = 'do{' . $this->parseTree($n->body, true) . '}while(' . $this->parseTree($n->condition) . ')';
+ break;
+
+ case KEYWORD_BREAK:
+ case KEYWORD_CONTINUE:
+ $s = $n->value . ($n->label ? ' ' . $n->label : '');
+ break;
+
+ case KEYWORD_TRY:
+ $s = 'try{' . $this->parseTree($n->tryBlock, true) . '}';
+ $catchClauses = $n->catchClauses;
+ for ($i = 0, $j = count($catchClauses); $i < $j; $i++)
+ {
+ $t = $catchClauses[$i];
+ $s .= 'catch(' . $t->varName . ($t->guard ? ' if ' . $this->parseTree($t->guard) : '') . '){' . $this->parseTree($t->block, true) . '}';
+ }
+ if ($n->finallyBlock)
+ $s .= 'finally{' . $this->parseTree($n->finallyBlock, true) . '}';
+ break;
+
+ case KEYWORD_THROW:
+ $s = 'throw ' . $this->parseTree($n->exception);
+ break;
+
+ case KEYWORD_RETURN:
+ $s = 'return' . ($n->value ? ' ' . $this->parseTree($n->value) : '');
+ break;
+
+ case KEYWORD_WITH:
+ $s = 'with(' . $this->parseTree($n->object) . ')' . $this->parseTree($n->body);
+ break;
+
+ case KEYWORD_VAR:
+ case KEYWORD_CONST:
+ $s = $n->value . ' ';
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ {
+ $t = $childs[$i];
+ $s .= ($i ? ',' : '') . $t->name;
+ $u = $t->initializer;
+ if ($u)
+ $s .= '=' . $this->parseTree($u);
+ }
+ break;
+
+ case KEYWORD_DEBUGGER:
+ throw new Exception('NOT IMPLEMENTED: DEBUGGER');
+ break;
+
+ case TOKEN_CONDCOMMENT_MULTILINE:
+ $s = $n->value . ' ';
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ $s .= $this->parseTree($childs[$i]);
+ break;
+
+ case OP_SEMICOLON:
+ if ($expression = $n->expression)
+ $s = $this->parseTree($expression);
+ break;
+
+ case JS_LABEL:
+ $s = $n->label . ':' . $this->parseTree($n->statement);
+ break;
+
+ case OP_COMMA:
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ $s .= ($i ? ',' : '') . $this->parseTree($childs[$i]);
+ break;
+
+ case OP_ASSIGN:
+ $s = $this->parseTree($n->treeNodes[0]) . $n->value . $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case OP_HOOK:
+ $s = $this->parseTree($n->treeNodes[0]) . '?' . $this->parseTree($n->treeNodes[1]) . ':' . $this->parseTree($n->treeNodes[2]);
+ break;
+
+ case OP_OR: case OP_AND:
+ case OP_BITWISE_OR: case OP_BITWISE_XOR: case OP_BITWISE_AND:
+ case OP_EQ: case OP_NE: case OP_STRICT_EQ: case OP_STRICT_NE:
+ case OP_LT: case OP_LE: case OP_GE: case OP_GT:
+ case OP_LSH: case OP_RSH: case OP_URSH:
+ case OP_MUL: case OP_DIV: case OP_MOD:
+ $s = $this->parseTree($n->treeNodes[0]) . $n->type . $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case OP_PLUS:
+ case OP_MINUS:
+ $s = $this->parseTree($n->treeNodes[0]) . $n->type;
+ $nextTokenType = $n->treeNodes[1]->type;
+ if ( $nextTokenType == OP_PLUS || $nextTokenType == OP_MINUS ||
+ $nextTokenType == OP_INCREMENT || $nextTokenType == OP_DECREMENT ||
+ $nextTokenType == OP_UNARY_PLUS || $nextTokenType == OP_UNARY_MINUS
+ )
+ $s .= ' ';
+ $s .= $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case KEYWORD_IN:
+ $s = $this->parseTree($n->treeNodes[0]) . ' in ' . $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case KEYWORD_INSTANCEOF:
+ $s = $this->parseTree($n->treeNodes[0]) . ' instanceof ' . $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case KEYWORD_DELETE:
+ $s = 'delete ' . $this->parseTree($n->treeNodes[0]);
+ break;
+
+ case KEYWORD_VOID:
+ $s = 'void(' . $this->parseTree($n->treeNodes[0]) . ')';
+ break;
+
+ case KEYWORD_TYPEOF:
+ $s = 'typeof ' . $this->parseTree($n->treeNodes[0]);
+ break;
+
+ case OP_NOT:
+ case OP_BITWISE_NOT:
+ case OP_UNARY_PLUS:
+ case OP_UNARY_MINUS:
+ $s = $n->value . $this->parseTree($n->treeNodes[0]);
+ break;
+
+ case OP_INCREMENT:
+ case OP_DECREMENT:
+ if ($n->postfix)
+ $s = $this->parseTree($n->treeNodes[0]) . $n->value;
+ else
+ $s = $n->value . $this->parseTree($n->treeNodes[0]);
+ break;
+
+ case OP_DOT:
+ $s = $this->parseTree($n->treeNodes[0]) . '.' . $this->parseTree($n->treeNodes[1]);
+ break;
+
+ case JS_INDEX:
+ $s = $this->parseTree($n->treeNodes[0]);
+ // See if we can replace named index with a dot saving 3 bytes
+ if ( $n->treeNodes[0]->type == TOKEN_IDENTIFIER &&
+ $n->treeNodes[1]->type == TOKEN_STRING &&
+ $this->isValidIdentifier(substr($n->treeNodes[1]->value, 1, -1))
+ )
+ $s .= '.' . substr($n->treeNodes[1]->value, 1, -1);
+ else
+ $s .= '[' . $this->parseTree($n->treeNodes[1]) . ']';
+ break;
+
+ case JS_LIST:
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ $s .= ($i ? ',' : '') . $this->parseTree($childs[$i]);
+ break;
+
+ case JS_CALL:
+ $s = $this->parseTree($n->treeNodes[0]) . '(' . $this->parseTree($n->treeNodes[1]) . ')';
+ break;
+
+ case KEYWORD_NEW:
+ case JS_NEW_WITH_ARGS:
+ $s = 'new ' . $this->parseTree($n->treeNodes[0]) . '(' . ($n->type == JS_NEW_WITH_ARGS ? $this->parseTree($n->treeNodes[1]) : '') . ')';
+ break;
+
+ case JS_ARRAY_INIT:
+ $s = '[';
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ {
+ $s .= ($i ? ',' : '') . $this->parseTree($childs[$i]);
+ }
+ $s .= ']';
+ break;
+
+ case JS_OBJECT_INIT:
+ $s = '{';
+ $childs = $n->treeNodes;
+ for ($i = 0, $j = count($childs); $i < $j; $i++)
+ {
+ $t = $childs[$i];
+ if ($i)
+ $s .= ',';
+ if ($t->type == JS_PROPERTY_INIT)
+ {
+ // Ditch the quotes when the index is a valid identifier
+ if ( $t->treeNodes[0]->type == TOKEN_STRING &&
+ $this->isValidIdentifier(substr($t->treeNodes[0]->value, 1, -1))
+ )
+ $s .= substr($t->treeNodes[0]->value, 1, -1);
+ else
+ $s .= $t->treeNodes[0]->value;
+
+ $s .= ':' . $this->parseTree($t->treeNodes[1]);
+ }
+ else
+ {
+ $s .= $t->type == JS_GETTER ? 'get' : 'set';
+ $s .= ' ' . $t->name . '(';
+ $params = $t->params;
+ for ($i = 0, $j = count($params); $i < $j; $i++)
+ $s .= ($i ? ',' : '') . $params[$i];
+ $s .= '){' . $this->parseTree($t->body, true) . '}';
+ }
+ }
+ $s .= '}';
+ break;
+
+ case KEYWORD_NULL: case KEYWORD_THIS: case KEYWORD_TRUE: case KEYWORD_FALSE:
+ case TOKEN_IDENTIFIER: case TOKEN_NUMBER: case TOKEN_STRING: case TOKEN_REGEXP:
+ $s = $n->value;
+ break;
+
+ case JS_GROUP:
+ $s = '(' . $this->parseTree($n->treeNodes[0]) . ')';
+ break;
+
+ default:
+ throw new Exception('UNKNOWN TOKEN TYPE: ' . $n->type);
+ }
+
+ return $s;
+ }
+
+ private function isValidIdentifier($string)
+ {
+ return preg_match('/^[a-zA-Z_][a-zA-Z0-9_]*$/', $string) && !in_array($string, $this->reserved);
+ }
+}
+
+class JSParser
+{
+ private $t;
+
+ private $opPrecedence = array(
+ ';' => 0,
+ ',' => 1,
+ '=' => 2, '?' => 2, ':' => 2,
+ // The above all have to have the same precedence, see bug 330975.
+ '||' => 4,
+ '&&' => 5,
+ '|' => 6,
+ '^' => 7,
+ '&' => 8,
+ '==' => 9, '!=' => 9, '===' => 9, '!==' => 9,
+ '<' => 10, '<=' => 10, '>=' => 10, '>' => 10, 'in' => 10, 'instanceof' => 10,
+ '<<' => 11, '>>' => 11, '>>>' => 11,
+ '+' => 12, '-' => 12,
+ '*' => 13, '/' => 13, '%' => 13,
+ 'delete' => 14, 'void' => 14, 'typeof' => 14,
+ '!' => 14, '~' => 14, 'U+' => 14, 'U-' => 14,
+ '++' => 15, '--' => 15,
+ 'new' => 16,
+ '.' => 17,
+ JS_NEW_WITH_ARGS => 0, JS_INDEX => 0, JS_CALL => 0,
+ JS_ARRAY_INIT => 0, JS_OBJECT_INIT => 0, JS_GROUP => 0
+ );
+
+ private $opArity = array(
+ ',' => -2,
+ '=' => 2,
+ '?' => 3,
+ '||' => 2,
+ '&&' => 2,
+ '|' => 2,
+ '^' => 2,
+ '&' => 2,
+ '==' => 2, '!=' => 2, '===' => 2, '!==' => 2,
+ '<' => 2, '<=' => 2, '>=' => 2, '>' => 2, 'in' => 2, 'instanceof' => 2,
+ '<<' => 2, '>>' => 2, '>>>' => 2,
+ '+' => 2, '-' => 2,
+ '*' => 2, '/' => 2, '%' => 2,
+ 'delete' => 1, 'void' => 1, 'typeof' => 1,
+ '!' => 1, '~' => 1, 'U+' => 1, 'U-' => 1,
+ '++' => 1, '--' => 1,
+ 'new' => 1,
+ '.' => 2,
+ JS_NEW_WITH_ARGS => 2, JS_INDEX => 2, JS_CALL => 2,
+ JS_ARRAY_INIT => 1, JS_OBJECT_INIT => 1, JS_GROUP => 1,
+ TOKEN_CONDCOMMENT_MULTILINE => 1
+ );
+
+ public function __construct()
+ {
+ $this->t = new JSTokenizer();
+ }
+
+ public function parse($s, $f, $l)
+ {
+ // initialize tokenizer
+ $this->t->init($s, $f, $l);
+
+ $x = new JSCompilerContext(false);
+ $n = $this->Script($x);
+ if (!$this->t->isDone())
+ throw $this->t->newSyntaxError('Syntax error');
+
+ return $n;
+ }
+
+ private function Script($x)
+ {
+ $n = $this->Statements($x);
+ $n->type = JS_SCRIPT;
+ $n->funDecls = $x->funDecls;
+ $n->varDecls = $x->varDecls;
+
+ return $n;
+ }
+
+ private function Statements($x)
+ {
+ $n = new JSNode($this->t, JS_BLOCK);
+ array_push($x->stmtStack, $n);
+
+ while (!$this->t->isDone() && $this->t->peek() != OP_RIGHT_CURLY)
+ $n->addNode($this->Statement($x));
+
+ array_pop($x->stmtStack);
+
+ return $n;
+ }
+
+ private function Block($x)
+ {
+ $this->t->mustMatch(OP_LEFT_CURLY);
+ $n = $this->Statements($x);
+ $this->t->mustMatch(OP_RIGHT_CURLY);
+
+ return $n;
+ }
+
+ private function Statement($x)
+ {
+ $tt = $this->t->get();
+ $n2 = null;
+
+ // Cases for statements ending in a right curly return early, avoiding the
+ // common semicolon insertion magic after this switch.
+ switch ($tt)
+ {
+ case KEYWORD_FUNCTION:
+ return $this->FunctionDefinition(
+ $x,
+ true,
+ count($x->stmtStack) > 1 ? STATEMENT_FORM : DECLARED_FORM
+ );
+ break;
+
+ case OP_LEFT_CURLY:
+ $n = $this->Statements($x);
+ $this->t->mustMatch(OP_RIGHT_CURLY);
+ return $n;
+
+ case KEYWORD_IF:
+ $n = new JSNode($this->t);
+ $n->condition = $this->ParenExpression($x);
+ array_push($x->stmtStack, $n);
+ $n->thenPart = $this->Statement($x);
+ $n->elsePart = $this->t->match(KEYWORD_ELSE) ? $this->Statement($x) : null;
+ array_pop($x->stmtStack);
+ return $n;
+
+ case KEYWORD_SWITCH:
+ $n = new JSNode($this->t);
+ $this->t->mustMatch(OP_LEFT_PAREN);
+ $n->discriminant = $this->Expression($x);
+ $this->t->mustMatch(OP_RIGHT_PAREN);
+ $n->cases = array();
+ $n->defaultIndex = -1;
+
+ array_push($x->stmtStack, $n);
+
+ $this->t->mustMatch(OP_LEFT_CURLY);
+
+ while (($tt = $this->t->get()) != OP_RIGHT_CURLY)
+ {
+ switch ($tt)
+ {
+ case KEYWORD_DEFAULT:
+ if ($n->defaultIndex >= 0)
+ throw $this->t->newSyntaxError('More than one switch default');
+ // FALL THROUGH
+ case KEYWORD_CASE:
+ $n2 = new JSNode($this->t);
+ if ($tt == KEYWORD_DEFAULT)
+ $n->defaultIndex = count($n->cases);
+ else
+ $n2->caseLabel = $this->Expression($x, OP_COLON);
+ break;
+ default:
+ throw $this->t->newSyntaxError('Invalid switch case');
+ }
+
+ $this->t->mustMatch(OP_COLON);
+ $n2->statements = new JSNode($this->t, JS_BLOCK);
+ while (($tt = $this->t->peek()) != KEYWORD_CASE && $tt != KEYWORD_DEFAULT && $tt != OP_RIGHT_CURLY)
+ $n2->statements->addNode($this->Statement($x));
+
+ array_push($n->cases, $n2);
+ }
+
+ array_pop($x->stmtStack);
+ return $n;
+
+ case KEYWORD_FOR:
+ $n = new JSNode($this->t);
+ $n->isLoop = true;
+ $this->t->mustMatch(OP_LEFT_PAREN);
+
+ if (($tt = $this->t->peek()) != OP_SEMICOLON)
+ {
+ $x->inForLoopInit = true;
+ if ($tt == KEYWORD_VAR || $tt == KEYWORD_CONST)
+ {
+ $this->t->get();
+ $n2 = $this->Variables($x);
+ }
+ else
+ {
+ $n2 = $this->Expression($x);
+ }
+ $x->inForLoopInit = false;
+ }
+
+ if ($n2 && $this->t->match(KEYWORD_IN))
+ {
+ $n->type = JS_FOR_IN;
+ if ($n2->type == KEYWORD_VAR)
+ {
+ if (count($n2->treeNodes) != 1)
+ {
+ throw $this->t->SyntaxError(
+ 'Invalid for..in left-hand side',
+ $this->t->filename,
+ $n2->lineno
+ );
+ }
+
+ // NB: n2[0].type == IDENTIFIER and n2[0].value == n2[0].name.
+ $n->iterator = $n2->treeNodes[0];
+ $n->varDecl = $n2;
+ }
+ else
+ {
+ $n->iterator = $n2;
+ $n->varDecl = null;
+ }
+
+ $n->object = $this->Expression($x);
+ }
+ else
+ {
+ $n->setup = $n2 ? $n2 : null;
+ $this->t->mustMatch(OP_SEMICOLON);
+ $n->condition = $this->t->peek() == OP_SEMICOLON ? null : $this->Expression($x);
+ $this->t->mustMatch(OP_SEMICOLON);
+ $n->update = $this->t->peek() == OP_RIGHT_PAREN ? null : $this->Expression($x);
+ }
+
+ $this->t->mustMatch(OP_RIGHT_PAREN);
+ $n->body = $this->nest($x, $n);
+ return $n;
+
+ case KEYWORD_WHILE:
+ $n = new JSNode($this->t);
+ $n->isLoop = true;
+ $n->condition = $this->ParenExpression($x);
+ $n->body = $this->nest($x, $n);
+ return $n;
+
+ case KEYWORD_DO:
+ $n = new JSNode($this->t);
+ $n->isLoop = true;
+ $n->body = $this->nest($x, $n, KEYWORD_WHILE);
+ $n->condition = $this->ParenExpression($x);
+ if (!$x->ecmaStrictMode)
+ {
+ // ";
+ * $link = "";
+ *
+ * // in min.php
+ * Minify::serve('Groups', array(
+ * 'groups' => $groupSources
+ * ,'setExpires' => (time() + 86400 * 365)
+ * ));
+ *
+ *
+ * @package Minify
+ * @author Stephen Clay
+ */
+class Minify_Build {
+
+ /**
+ * Last modification time of all files in the build
+ *
+ * @var int
+ */
+ public $lastModified = 0;
+
+ /**
+ * String to use as ampersand in uri(). Set this to '&' if
+ * you are not HTML-escaping URIs.
+ *
+ * @var string
+ */
+ public static $ampersand = '&';
+
+ /**
+ * Get a time-stamped URI
+ *
+ *
+ * echo $b->uri('/site.js');
+ * // outputs "/site.js?1678242"
+ *
+ * echo $b->uri('/scriptaculous.js?load=effects');
+ * // outputs "/scriptaculous.js?load=effects&1678242"
+ *
+ *
+ * @param string $uri
+ * @param boolean $forceAmpersand (default = false) Force the use of ampersand to
+ * append the timestamp to the URI.
+ * @return string
+ */
+ public function uri($uri, $forceAmpersand = false) {
+ $sep = ($forceAmpersand || strpos($uri, '?') !== false)
+ ? self::$ampersand
+ : '?';
+ return "{$uri}{$sep}{$this->lastModified}";
+ }
+
+ /**
+ * Create a build object
+ *
+ * @param array $sources array of Minify_Source objects and/or file paths
+ *
+ * @return null
+ */
+ public function __construct($sources)
+ {
+ $max = 0;
+ foreach ((array)$sources as $source) {
+ if ($source instanceof Minify_Source) {
+ $max = max($max, $source->lastModified);
+ } elseif (is_string($source)) {
+ if (0 === strpos($source, '//')) {
+ $source = $_SERVER['DOCUMENT_ROOT'] . substr($source, 1);
+ }
+ if (is_file($source)) {
+ $max = max($max, filemtime($source));
+ }
+ }
+ }
+ $this->lastModified = $max;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/CSS.php b/plugins/Minify/extlib/minify/min/lib/Minify/CSS.php
new file mode 100644
index 0000000000..2220cf2211
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/CSS.php
@@ -0,0 +1,83 @@
+
+ * @author http://code.google.com/u/1stvamp/ (Issue 64 patch)
+ */
+class Minify_CSS {
+
+ /**
+ * Minify a CSS string
+ *
+ * @param string $css
+ *
+ * @param array $options available options:
+ *
+ * 'preserveComments': (default true) multi-line comments that begin
+ * with "/*!" will be preserved with newlines before and after to
+ * enhance readability.
+ *
+ * 'prependRelativePath': (default null) if given, this string will be
+ * prepended to all relative URIs in import/url declarations
+ *
+ * 'currentDir': (default null) if given, this is assumed to be the
+ * directory of the current CSS file. Using this, minify will rewrite
+ * all relative URIs in import/url declarations to correctly point to
+ * the desired files. For this to work, the files *must* exist and be
+ * visible by the PHP process.
+ *
+ * 'symlinks': (default = array()) If the CSS file is stored in
+ * a symlink-ed directory, provide an array of link paths to
+ * target paths, where the link paths are within the document root. Because
+ * paths need to be normalized for this to work, use "//" to substitute
+ * the doc root in the link paths (the array keys). E.g.:
+ *
+ * array('//symlink' => '/real/target/path') // unix
+ * array('//static' => 'D:\\staticStorage') // Windows
+ *
+ *
+ * @return string
+ */
+ public static function minify($css, $options = array())
+ {
+ require_once 'Minify/CSS/Compressor.php';
+ if (isset($options['preserveComments'])
+ && !$options['preserveComments']) {
+ $css = Minify_CSS_Compressor::process($css, $options);
+ } else {
+ require_once 'Minify/CommentPreserver.php';
+ $css = Minify_CommentPreserver::process(
+ $css
+ ,array('Minify_CSS_Compressor', 'process')
+ ,array($options)
+ );
+ }
+ if (! isset($options['currentDir']) && ! isset($options['prependRelativePath'])) {
+ return $css;
+ }
+ require_once 'Minify/CSS/UriRewriter.php';
+ if (isset($options['currentDir'])) {
+ return Minify_CSS_UriRewriter::rewrite(
+ $css
+ ,$options['currentDir']
+ ,isset($options['docRoot']) ? $options['docRoot'] : $_SERVER['DOCUMENT_ROOT']
+ ,isset($options['symlinks']) ? $options['symlinks'] : array()
+ );
+ } else {
+ return Minify_CSS_UriRewriter::prepend(
+ $css
+ ,$options['prependRelativePath']
+ );
+ }
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/CSS/Compressor.php b/plugins/Minify/extlib/minify/min/lib/Minify/CSS/Compressor.php
new file mode 100644
index 0000000000..a34828681d
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/CSS/Compressor.php
@@ -0,0 +1,250 @@
+
+ * @author http://code.google.com/u/1stvamp/ (Issue 64 patch)
+ */
+class Minify_CSS_Compressor {
+
+ /**
+ * Minify a CSS string
+ *
+ * @param string $css
+ *
+ * @param array $options (currently ignored)
+ *
+ * @return string
+ */
+ public static function process($css, $options = array())
+ {
+ $obj = new Minify_CSS_Compressor($options);
+ return $obj->_process($css);
+ }
+
+ /**
+ * @var array options
+ */
+ protected $_options = null;
+
+ /**
+ * @var bool Are we "in" a hack?
+ *
+ * I.e. are some browsers targetted until the next comment?
+ */
+ protected $_inHack = false;
+
+
+ /**
+ * Constructor
+ *
+ * @param array $options (currently ignored)
+ *
+ * @return null
+ */
+ private function __construct($options) {
+ $this->_options = $options;
+ }
+
+ /**
+ * Minify a CSS string
+ *
+ * @param string $css
+ *
+ * @return string
+ */
+ protected function _process($css)
+ {
+ $css = str_replace("\r\n", "\n", $css);
+
+ // preserve empty comment after '>'
+ // http://www.webdevout.net/css-hacks#in_css-selectors
+ $css = preg_replace('@>/\\*\\s*\\*/@', '>/*keep*/', $css);
+
+ // preserve empty comment between property and value
+ // http://css-discuss.incutio.com/?page=BoxModelHack
+ $css = preg_replace('@/\\*\\s*\\*/\\s*:@', '/*keep*/:', $css);
+ $css = preg_replace('@:\\s*/\\*\\s*\\*/@', ':/*keep*/', $css);
+
+ // apply callback to all valid comments (and strip out surrounding ws
+ $css = preg_replace_callback('@\\s*/\\*([\\s\\S]*?)\\*/\\s*@'
+ ,array($this, '_commentCB'), $css);
+
+ // remove ws around { } and last semicolon in declaration block
+ $css = preg_replace('/\\s*{\\s*/', '{', $css);
+ $css = preg_replace('/;?\\s*}\\s*/', '}', $css);
+
+ // remove ws surrounding semicolons
+ $css = preg_replace('/\\s*;\\s*/', ';', $css);
+
+ // remove ws around urls
+ $css = preg_replace('/
+ url\\( # url(
+ \\s*
+ ([^\\)]+?) # 1 = the URL (really just a bunch of non right parenthesis)
+ \\s*
+ \\) # )
+ /x', 'url($1)', $css);
+
+ // remove ws between rules and colons
+ $css = preg_replace('/
+ \\s*
+ ([{;]) # 1 = beginning of block or rule separator
+ \\s*
+ ([\\*_]?[\\w\\-]+) # 2 = property (and maybe IE filter)
+ \\s*
+ :
+ \\s*
+ (\\b|[#\'"]) # 3 = first character of a value
+ /x', '$1$2:$3', $css);
+
+ // remove ws in selectors
+ $css = preg_replace_callback('/
+ (?: # non-capture
+ \\s*
+ [^~>+,\\s]+ # selector part
+ \\s*
+ [,>+~] # combinators
+ )+
+ \\s*
+ [^~>+,\\s]+ # selector part
+ { # open declaration block
+ /x'
+ ,array($this, '_selectorsCB'), $css);
+
+ // minimize hex colors
+ $css = preg_replace('/([^=])#([a-f\\d])\\2([a-f\\d])\\3([a-f\\d])\\4([\\s;\\}])/i'
+ , '$1#$2$3$4$5', $css);
+
+ // remove spaces between font families
+ $css = preg_replace_callback('/font-family:([^;}]+)([;}])/'
+ ,array($this, '_fontFamilyCB'), $css);
+
+ $css = preg_replace('/@import\\s+url/', '@import url', $css);
+
+ // replace any ws involving newlines with a single newline
+ $css = preg_replace('/[ \\t]*\\n+\\s*/', "\n", $css);
+
+ // separate common descendent selectors w/ newlines (to limit line lengths)
+ $css = preg_replace('/([\\w#\\.\\*]+)\\s+([\\w#\\.\\*]+){/', "$1\n$2{", $css);
+
+ // Use newline after 1st numeric value (to limit line lengths).
+ $css = preg_replace('/
+ ((?:padding|margin|border|outline):\\d+(?:px|em)?) # 1 = prop : 1st numeric value
+ \\s+
+ /x'
+ ,"$1\n", $css);
+
+ // prevent triggering IE6 bug: http://www.crankygeek.com/ie6pebug/
+ $css = preg_replace('/:first-l(etter|ine)\\{/', ':first-l$1 {', $css);
+
+ return trim($css);
+ }
+
+ /**
+ * Replace what looks like a set of selectors
+ *
+ * @param array $m regex matches
+ *
+ * @return string
+ */
+ protected function _selectorsCB($m)
+ {
+ // remove ws around the combinators
+ return preg_replace('/\\s*([,>+~])\\s*/', '$1', $m[0]);
+ }
+
+ /**
+ * Process a comment and return a replacement
+ *
+ * @param array $m regex matches
+ *
+ * @return string
+ */
+ protected function _commentCB($m)
+ {
+ $hasSurroundingWs = (trim($m[0]) !== $m[1]);
+ $m = $m[1];
+ // $m is the comment content w/o the surrounding tokens,
+ // but the return value will replace the entire comment.
+ if ($m === 'keep') {
+ return '/**/';
+ }
+ if ($m === '" "') {
+ // component of http://tantek.com/CSS/Examples/midpass.html
+ return '/*" "*/';
+ }
+ if (preg_match('@";\\}\\s*\\}/\\*\\s+@', $m)) {
+ // component of http://tantek.com/CSS/Examples/midpass.html
+ return '/*";}}/* */';
+ }
+ if ($this->_inHack) {
+ // inversion: feeding only to one browser
+ if (preg_match('@
+ ^/ # comment started like /*/
+ \\s*
+ (\\S[\\s\\S]+?) # has at least some non-ws content
+ \\s*
+ /\\* # ends like /*/ or /**/
+ @x', $m, $n)) {
+ // end hack mode after this comment, but preserve the hack and comment content
+ $this->_inHack = false;
+ return "/*/{$n[1]}/**/";
+ }
+ }
+ if (substr($m, -1) === '\\') { // comment ends like \*/
+ // begin hack mode and preserve hack
+ $this->_inHack = true;
+ return '/*\\*/';
+ }
+ if ($m !== '' && $m[0] === '/') { // comment looks like /*/ foo */
+ // begin hack mode and preserve hack
+ $this->_inHack = true;
+ return '/*/*/';
+ }
+ if ($this->_inHack) {
+ // a regular comment ends hack mode but should be preserved
+ $this->_inHack = false;
+ return '/**/';
+ }
+ // Issue 107: if there's any surrounding whitespace, it may be important, so
+ // replace the comment with a single space
+ return $hasSurroundingWs // remove all other comments
+ ? ' '
+ : '';
+ }
+
+ /**
+ * Process a font-family listing and return a replacement
+ *
+ * @param array $m regex matches
+ *
+ * @return string
+ */
+ protected function _fontFamilyCB($m)
+ {
+ $m[1] = preg_replace('/
+ \\s*
+ (
+ "[^"]+" # 1 = family in double qutoes
+ |\'[^\']+\' # or 1 = family in single quotes
+ |[\\w\\-]+ # or 1 = unquoted family
+ )
+ \\s*
+ /x', '$1', $m[1]);
+ return 'font-family:' . $m[1] . $m[2];
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/CSS/UriRewriter.php b/plugins/Minify/extlib/minify/min/lib/Minify/CSS/UriRewriter.php
new file mode 100644
index 0000000000..824c6bb2a1
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/CSS/UriRewriter.php
@@ -0,0 +1,270 @@
+
+ */
+class Minify_CSS_UriRewriter {
+
+ /**
+ * Defines which class to call as part of callbacks, change this
+ * if you extend Minify_CSS_UriRewriter
+ * @var string
+ */
+ protected static $className = 'Minify_CSS_UriRewriter';
+
+ /**
+ * rewrite() and rewriteRelative() append debugging information here
+ * @var string
+ */
+ public static $debugText = '';
+
+ /**
+ * Rewrite file relative URIs as root relative in CSS files
+ *
+ * @param string $css
+ *
+ * @param string $currentDir The directory of the current CSS file.
+ *
+ * @param string $docRoot The document root of the web site in which
+ * the CSS file resides (default = $_SERVER['DOCUMENT_ROOT']).
+ *
+ * @param array $symlinks (default = array()) If the CSS file is stored in
+ * a symlink-ed directory, provide an array of link paths to
+ * target paths, where the link paths are within the document root. Because
+ * paths need to be normalized for this to work, use "//" to substitute
+ * the doc root in the link paths (the array keys). E.g.:
+ *
+ * array('//symlink' => '/real/target/path') // unix
+ * array('//static' => 'D:\\staticStorage') // Windows
+ *
+ *
+ * @return string
+ */
+ public static function rewrite($css, $currentDir, $docRoot = null, $symlinks = array())
+ {
+ self::$_docRoot = self::_realpath(
+ $docRoot ? $docRoot : $_SERVER['DOCUMENT_ROOT']
+ );
+ self::$_currentDir = self::_realpath($currentDir);
+ self::$_symlinks = array();
+
+ // normalize symlinks
+ foreach ($symlinks as $link => $target) {
+ $link = ($link === '//')
+ ? self::$_docRoot
+ : str_replace('//', self::$_docRoot . '/', $link);
+ $link = strtr($link, '/', DIRECTORY_SEPARATOR);
+ self::$_symlinks[$link] = self::_realpath($target);
+ }
+
+ self::$debugText .= "docRoot : " . self::$_docRoot . "\n"
+ . "currentDir : " . self::$_currentDir . "\n";
+ if (self::$_symlinks) {
+ self::$debugText .= "symlinks : " . var_export(self::$_symlinks, 1) . "\n";
+ }
+ self::$debugText .= "\n";
+
+ $css = self::_trimUrls($css);
+
+ // rewrite
+ $css = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/'
+ ,array(self::$className, '_processUriCB'), $css);
+ $css = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ ,array(self::$className, '_processUriCB'), $css);
+
+ return $css;
+ }
+
+ /**
+ * Prepend a path to relative URIs in CSS files
+ *
+ * @param string $css
+ *
+ * @param string $path The path to prepend.
+ *
+ * @return string
+ */
+ public static function prepend($css, $path)
+ {
+ self::$_prependPath = $path;
+
+ $css = self::_trimUrls($css);
+
+ // append
+ $css = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/'
+ ,array(self::$className, '_processUriCB'), $css);
+ $css = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ ,array(self::$className, '_processUriCB'), $css);
+
+ self::$_prependPath = null;
+ return $css;
+ }
+
+
+ /**
+ * @var string directory of this stylesheet
+ */
+ private static $_currentDir = '';
+
+ /**
+ * @var string DOC_ROOT
+ */
+ private static $_docRoot = '';
+
+ /**
+ * @var array directory replacements to map symlink targets back to their
+ * source (within the document root) E.g. '/var/www/symlink' => '/var/realpath'
+ */
+ private static $_symlinks = array();
+
+ /**
+ * @var string path to prepend
+ */
+ private static $_prependPath = null;
+
+ private static function _trimUrls($css)
+ {
+ return preg_replace('/
+ url\\( # url(
+ \\s*
+ ([^\\)]+?) # 1 = URI (assuming does not contain ")")
+ \\s*
+ \\) # )
+ /x', 'url($1)', $css);
+ }
+
+ private static function _processUriCB($m)
+ {
+ // $m matched either '/@import\\s+([\'"])(.*?)[\'"]/' or '/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ $isImport = ($m[0][0] === '@');
+ // determine URI and the quote character (if any)
+ if ($isImport) {
+ $quoteChar = $m[1];
+ $uri = $m[2];
+ } else {
+ // $m[1] is either quoted or not
+ $quoteChar = ($m[1][0] === "'" || $m[1][0] === '"')
+ ? $m[1][0]
+ : '';
+ $uri = ($quoteChar === '')
+ ? $m[1]
+ : substr($m[1], 1, strlen($m[1]) - 2);
+ }
+ // analyze URI
+ if ('/' !== $uri[0] // root-relative
+ && false === strpos($uri, '//') // protocol (non-data)
+ && 0 !== strpos($uri, 'data:') // data protocol
+ ) {
+ // URI is file-relative: rewrite depending on options
+ $uri = (self::$_prependPath !== null)
+ ? (self::$_prependPath . $uri)
+ : self::rewriteRelative($uri, self::$_currentDir, self::$_docRoot, self::$_symlinks);
+ }
+ return $isImport
+ ? "@import {$quoteChar}{$uri}{$quoteChar}"
+ : "url({$quoteChar}{$uri}{$quoteChar})";
+ }
+
+ /**
+ * Rewrite a file relative URI as root relative
+ *
+ *
+ * Minify_CSS_UriRewriter::rewriteRelative(
+ * '../img/hello.gif'
+ * , '/home/user/www/css' // path of CSS file
+ * , '/home/user/www' // doc root
+ * );
+ * // returns '/img/hello.gif'
+ *
+ * // example where static files are stored in a symlinked directory
+ * Minify_CSS_UriRewriter::rewriteRelative(
+ * 'hello.gif'
+ * , '/var/staticFiles/theme'
+ * , '/home/user/www'
+ * , array('/home/user/www/static' => '/var/staticFiles')
+ * );
+ * // returns '/static/theme/hello.gif'
+ *
+ *
+ * @param string $uri file relative URI
+ *
+ * @param string $realCurrentDir realpath of the current file's directory.
+ *
+ * @param string $realDocRoot realpath of the site document root.
+ *
+ * @param array $symlinks (default = array()) If the file is stored in
+ * a symlink-ed directory, provide an array of link paths to
+ * real target paths, where the link paths "appear" to be within the document
+ * root. E.g.:
+ *
+ * array('/home/foo/www/not/real/path' => '/real/target/path') // unix
+ * array('C:\\htdocs\\not\\real' => 'D:\\real\\target\\path') // Windows
+ *
+ *
+ * @return string
+ */
+ public static function rewriteRelative($uri, $realCurrentDir, $realDocRoot, $symlinks = array())
+ {
+ // prepend path with current dir separator (OS-independent)
+ $path = strtr($realCurrentDir, '/', DIRECTORY_SEPARATOR)
+ . DIRECTORY_SEPARATOR . strtr($uri, '/', DIRECTORY_SEPARATOR);
+
+ self::$debugText .= "file-relative URI : {$uri}\n"
+ . "path prepended : {$path}\n";
+
+ // "unresolve" a symlink back to doc root
+ foreach ($symlinks as $link => $target) {
+ if (0 === strpos($path, $target)) {
+ // replace $target with $link
+ $path = $link . substr($path, strlen($target));
+
+ self::$debugText .= "symlink unresolved : {$path}\n";
+
+ break;
+ }
+ }
+ // strip doc root
+ $path = substr($path, strlen($realDocRoot));
+
+ self::$debugText .= "docroot stripped : {$path}\n";
+
+ // fix to root-relative URI
+
+ $uri = strtr($path, '/\\', '//');
+
+ // remove /./ and /../ where possible
+ $uri = str_replace('/./', '/', $uri);
+ // inspired by patch from Oleg Cherniy
+ do {
+ $uri = preg_replace('@/[^/]+/\\.\\./@', '/', $uri, 1, $changed);
+ } while ($changed);
+
+ self::$debugText .= "traversals removed : {$uri}\n\n";
+
+ return $uri;
+ }
+
+ /**
+ * Get realpath with any trailing slash removed. If realpath() fails,
+ * just remove the trailing slash.
+ *
+ * @param string $path
+ *
+ * @return mixed path with no trailing slash
+ */
+ protected static function _realpath($path)
+ {
+ $realPath = realpath($path);
+ if ($realPath !== false) {
+ $path = $realPath;
+ }
+ return rtrim($path, '/\\');
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Cache/APC.php b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/APC.php
new file mode 100644
index 0000000000..ca84d29987
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/APC.php
@@ -0,0 +1,130 @@
+
+ * Minify::setCache(new Minify_Cache_APC());
+ *
+ *
+ * @package Minify
+ * @author Chris Edwards
+ **/
+class Minify_Cache_APC {
+
+ /**
+ * Create a Minify_Cache_APC object, to be passed to
+ * Minify::setCache().
+ *
+ *
+ * @param int $expire seconds until expiration (default = 0
+ * meaning the item will not get an expiration date)
+ *
+ * @return null
+ */
+ public function __construct($expire = 0)
+ {
+ $this->_exp = $expire;
+ }
+
+ /**
+ * Write data to cache.
+ *
+ * @param string $id cache id
+ *
+ * @param string $data
+ *
+ * @return bool success
+ */
+ public function store($id, $data)
+ {
+ return apc_store($id, "{$_SERVER['REQUEST_TIME']}|{$data}", $this->_exp);
+ }
+
+ /**
+ * Get the size of a cache entry
+ *
+ * @param string $id cache id
+ *
+ * @return int size in bytes
+ */
+ public function getSize($id)
+ {
+ return $this->_fetch($id)
+ ? strlen($this->_data)
+ : false;
+ }
+
+ /**
+ * Does a valid cache entry exist?
+ *
+ * @param string $id cache id
+ *
+ * @param int $srcMtime mtime of the original source file(s)
+ *
+ * @return bool exists
+ */
+ public function isValid($id, $srcMtime)
+ {
+ return ($this->_fetch($id) && ($this->_lm >= $srcMtime));
+ }
+
+ /**
+ * Send the cached content to output
+ *
+ * @param string $id cache id
+ */
+ public function display($id)
+ {
+ echo $this->_fetch($id)
+ ? $this->_data
+ : '';
+ }
+
+ /**
+ * Fetch the cached content
+ *
+ * @param string $id cache id
+ *
+ * @return string
+ */
+ public function fetch($id)
+ {
+ return $this->_fetch($id)
+ ? $this->_data
+ : '';
+ }
+
+ private $_exp = null;
+
+ // cache of most recently fetched id
+ private $_lm = null;
+ private $_data = null;
+ private $_id = null;
+
+ /**
+ * Fetch data and timestamp from apc, store in instance
+ *
+ * @param string $id
+ *
+ * @return bool success
+ */
+ private function _fetch($id)
+ {
+ if ($this->_id === $id) {
+ return true;
+ }
+ $ret = apc_fetch($id);
+ if (false === $ret) {
+ $this->_id = null;
+ return false;
+ }
+ list($this->_lm, $this->_data) = explode('|', $ret, 2);
+ $this->_id = $id;
+ return true;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Cache/File.php b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/File.php
new file mode 100644
index 0000000000..8744a7e04f
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/File.php
@@ -0,0 +1,125 @@
+_locking = $fileLocking;
+ $this->_path = $path;
+ }
+
+ /**
+ * Write data to cache.
+ *
+ * @param string $id cache id (e.g. a filename)
+ *
+ * @param string $data
+ *
+ * @return bool success
+ */
+ public function store($id, $data)
+ {
+ $flag = $this->_locking
+ ? LOCK_EX
+ : null;
+ if (is_file($this->_path . '/' . $id)) {
+ @unlink($this->_path . '/' . $id);
+ }
+ if (! @file_put_contents($this->_path . '/' . $id, $data, $flag)) {
+ return false;
+ }
+ // write control
+ if ($data !== $this->fetch($id)) {
+ @unlink($file);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Get the size of a cache entry
+ *
+ * @param string $id cache id (e.g. a filename)
+ *
+ * @return int size in bytes
+ */
+ public function getSize($id)
+ {
+ return filesize($this->_path . '/' . $id);
+ }
+
+ /**
+ * Does a valid cache entry exist?
+ *
+ * @param string $id cache id (e.g. a filename)
+ *
+ * @param int $srcMtime mtime of the original source file(s)
+ *
+ * @return bool exists
+ */
+ public function isValid($id, $srcMtime)
+ {
+ $file = $this->_path . '/' . $id;
+ return (is_file($file) && (filemtime($file) >= $srcMtime));
+ }
+
+ /**
+ * Send the cached content to output
+ *
+ * @param string $id cache id (e.g. a filename)
+ */
+ public function display($id)
+ {
+ if ($this->_locking) {
+ $fp = fopen($this->_path . '/' . $id, 'rb');
+ flock($fp, LOCK_SH);
+ fpassthru($fp);
+ flock($fp, LOCK_UN);
+ fclose($fp);
+ } else {
+ readfile($this->_path . '/' . $id);
+ }
+ }
+
+ /**
+ * Fetch the cached content
+ *
+ * @param string $id cache id (e.g. a filename)
+ *
+ * @return string
+ */
+ public function fetch($id)
+ {
+ if ($this->_locking) {
+ $fp = fopen($this->_path . '/' . $id, 'rb');
+ flock($fp, LOCK_SH);
+ $ret = stream_get_contents($fp);
+ flock($fp, LOCK_UN);
+ fclose($fp);
+ return $ret;
+ } else {
+ return file_get_contents($this->_path . '/' . $id);
+ }
+ }
+
+ /**
+ * Fetch the cache path used
+ *
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->_path;
+ }
+
+ private $_path = null;
+ private $_locking = null;
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Cache/Memcache.php b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/Memcache.php
new file mode 100644
index 0000000000..2b81e7a329
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Cache/Memcache.php
@@ -0,0 +1,137 @@
+
+ * // fall back to disk caching if memcache can't connect
+ * $memcache = new Memcache;
+ * if ($memcache->connect('localhost', 11211)) {
+ * Minify::setCache(new Minify_Cache_Memcache($memcache));
+ * } else {
+ * Minify::setCache();
+ * }
+ *
+ **/
+class Minify_Cache_Memcache {
+
+ /**
+ * Create a Minify_Cache_Memcache object, to be passed to
+ * Minify::setCache().
+ *
+ * @param Memcache $memcache already-connected instance
+ *
+ * @param int $expire seconds until expiration (default = 0
+ * meaning the item will not get an expiration date)
+ *
+ * @return null
+ */
+ public function __construct($memcache, $expire = 0)
+ {
+ $this->_mc = $memcache;
+ $this->_exp = $expire;
+ }
+
+ /**
+ * Write data to cache.
+ *
+ * @param string $id cache id
+ *
+ * @param string $data
+ *
+ * @return bool success
+ */
+ public function store($id, $data)
+ {
+ return $this->_mc->set($id, "{$_SERVER['REQUEST_TIME']}|{$data}", 0, $this->_exp);
+ }
+
+
+ /**
+ * Get the size of a cache entry
+ *
+ * @param string $id cache id
+ *
+ * @return int size in bytes
+ */
+ public function getSize($id)
+ {
+ return $this->_fetch($id)
+ ? strlen($this->_data)
+ : false;
+ }
+
+ /**
+ * Does a valid cache entry exist?
+ *
+ * @param string $id cache id
+ *
+ * @param int $srcMtime mtime of the original source file(s)
+ *
+ * @return bool exists
+ */
+ public function isValid($id, $srcMtime)
+ {
+ return ($this->_fetch($id) && ($this->_lm >= $srcMtime));
+ }
+
+ /**
+ * Send the cached content to output
+ *
+ * @param string $id cache id
+ */
+ public function display($id)
+ {
+ echo $this->_fetch($id)
+ ? $this->_data
+ : '';
+ }
+
+ /**
+ * Fetch the cached content
+ *
+ * @param string $id cache id
+ *
+ * @return string
+ */
+ public function fetch($id)
+ {
+ return $this->_fetch($id)
+ ? $this->_data
+ : '';
+ }
+
+ private $_mc = null;
+ private $_exp = null;
+
+ // cache of most recently fetched id
+ private $_lm = null;
+ private $_data = null;
+ private $_id = null;
+
+ /**
+ * Fetch data and timestamp from memcache, store in instance
+ *
+ * @param string $id
+ *
+ * @return bool success
+ */
+ private function _fetch($id)
+ {
+ if ($this->_id === $id) {
+ return true;
+ }
+ $ret = $this->_mc->get($id);
+ if (false === $ret) {
+ $this->_id = null;
+ return false;
+ }
+ list($this->_lm, $this->_data) = explode('|', $ret, 2);
+ $this->_id = $id;
+ return true;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/CommentPreserver.php b/plugins/Minify/extlib/minify/min/lib/Minify/CommentPreserver.php
new file mode 100644
index 0000000000..f56eb3461c
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/CommentPreserver.php
@@ -0,0 +1,90 @@
+
+ */
+class Minify_CommentPreserver {
+
+ /**
+ * String to be prepended to each preserved comment
+ *
+ * @var string
+ */
+ public static $prepend = "\n";
+
+ /**
+ * String to be appended to each preserved comment
+ *
+ * @var string
+ */
+ public static $append = "\n";
+
+ /**
+ * Process a string outside of C-style comments that begin with "/*!"
+ *
+ * On each non-empty string outside these comments, the given processor
+ * function will be called. The first "!" will be removed from the
+ * preserved comments, and the comments will be surrounded by
+ * Minify_CommentPreserver::$preprend and Minify_CommentPreserver::$append.
+ *
+ * @param string $content
+ * @param callback $processor function
+ * @param array $args array of extra arguments to pass to the processor
+ * function (default = array())
+ * @return string
+ */
+ public static function process($content, $processor, $args = array())
+ {
+ $ret = '';
+ while (true) {
+ list($beforeComment, $comment, $afterComment) = self::_nextComment($content);
+ if ('' !== $beforeComment) {
+ $callArgs = $args;
+ array_unshift($callArgs, $beforeComment);
+ $ret .= call_user_func_array($processor, $callArgs);
+ }
+ if (false === $comment) {
+ break;
+ }
+ $ret .= $comment;
+ $content = $afterComment;
+ }
+ return $ret;
+ }
+
+ /**
+ * Extract comments that YUI Compressor preserves.
+ *
+ * @param string $in input
+ *
+ * @return array 3 elements are returned. If a YUI comment is found, the
+ * 2nd element is the comment and the 1st and 2nd are the surrounding
+ * strings. If no comment is found, the entire string is returned as the
+ * 1st element and the other two are false.
+ */
+ private static function _nextComment($in)
+ {
+ if (
+ false === ($start = strpos($in, '/*!'))
+ || false === ($end = strpos($in, '*/', $start + 3))
+ ) {
+ return array($in, false, false);
+ }
+ $ret = array(
+ substr($in, 0, $start)
+ ,self::$prepend . '/*' . substr($in, $start + 3, $end - $start - 1) . self::$append
+ );
+ $endChars = (strlen($in) - $end - 2);
+ $ret[] = (0 === $endChars)
+ ? ''
+ : substr($in, -$endChars);
+ return $ret;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Base.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Base.php
new file mode 100644
index 0000000000..84889b3f0c
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Base.php
@@ -0,0 +1,202 @@
+
+ */
+abstract class Minify_Controller_Base {
+
+ /**
+ * Setup controller sources and set an needed options for Minify::source
+ *
+ * You must override this method in your subclass controller to set
+ * $this->sources. If the request is NOT valid, make sure $this->sources
+ * is left an empty array. Then strip any controller-specific options from
+ * $options and return it. To serve files, $this->sources must be an array of
+ * Minify_Source objects.
+ *
+ * @param array $options controller and Minify options
+ *
+ * return array $options Minify::serve options
+ */
+ abstract public function setupSources($options);
+
+ /**
+ * Get default Minify options for this controller.
+ *
+ * Override in subclass to change defaults
+ *
+ * @return array options for Minify
+ */
+ public function getDefaultMinifyOptions() {
+ return array(
+ 'isPublic' => true
+ ,'encodeOutput' => function_exists('gzdeflate')
+ ,'encodeMethod' => null // determine later
+ ,'encodeLevel' => 9
+ ,'minifierOptions' => array() // no minifier options
+ ,'contentTypeCharset' => 'utf-8'
+ ,'maxAge' => 1800 // 30 minutes
+ ,'rewriteCssUris' => true
+ ,'bubbleCssImports' => false
+ ,'quiet' => false // serve() will send headers and output
+ ,'debug' => false
+
+ // if you override this, the response code MUST be directly after
+ // the first space.
+ ,'badRequestHeader' => 'HTTP/1.0 400 Bad Request'
+
+ // callback function to see/modify content of all sources
+ ,'postprocessor' => null
+ // file to require to load preprocessor
+ ,'postprocessorRequire' => null
+ );
+ }
+
+ /**
+ * Get default minifiers for this controller.
+ *
+ * Override in subclass to change defaults
+ *
+ * @return array minifier callbacks for common types
+ */
+ public function getDefaultMinifers() {
+ $ret[Minify::TYPE_JS] = array('JSMin', 'minify');
+ $ret[Minify::TYPE_CSS] = array('Minify_CSS', 'minify');
+ $ret[Minify::TYPE_HTML] = array('Minify_HTML', 'minify');
+ return $ret;
+ }
+
+ /**
+ * Load any code necessary to execute the given minifier callback.
+ *
+ * The controller is responsible for loading minification code on demand
+ * via this method. This built-in function will only load classes for
+ * static method callbacks where the class isn't already defined. It uses
+ * the PEAR convention, so, given array('Jimmy_Minifier', 'minCss'), this
+ * function will include 'Jimmy/Minifier.php'.
+ *
+ * If you need code loaded on demand and this doesn't suit you, you'll need
+ * to override this function in your subclass.
+ * @see Minify_Controller_Page::loadMinifier()
+ *
+ * @param callback $minifierCallback callback of minifier function
+ *
+ * @return null
+ */
+ public function loadMinifier($minifierCallback)
+ {
+ if (is_array($minifierCallback)
+ && is_string($minifierCallback[0])
+ && !class_exists($minifierCallback[0], false)) {
+
+ require str_replace('_', '/', $minifierCallback[0]) . '.php';
+ }
+ }
+
+ /**
+ * Is a user-given file within an allowable directory, existing,
+ * and having an extension js/css/html/txt ?
+ *
+ * This is a convenience function for controllers that have to accept
+ * user-given paths
+ *
+ * @param string $file full file path (already processed by realpath())
+ *
+ * @param array $safeDirs directories where files are safe to serve. Files can also
+ * be in subdirectories of these directories.
+ *
+ * @return bool file is safe
+ */
+ public static function _fileIsSafe($file, $safeDirs)
+ {
+ $pathOk = false;
+ foreach ((array)$safeDirs as $safeDir) {
+ if (strpos($file, $safeDir) === 0) {
+ $pathOk = true;
+ break;
+ }
+ }
+ $base = basename($file);
+ if (! $pathOk || ! is_file($file) || $base[0] === '.') {
+ return false;
+ }
+ list($revExt) = explode('.', strrev($base));
+ return in_array(strrev($revExt), array('js', 'css', 'html', 'txt'));
+ }
+
+ /**
+ * @var array instances of Minify_Source, which provide content and
+ * any individual minification needs.
+ *
+ * @see Minify_Source
+ */
+ public $sources = array();
+
+ /**
+ * Mix in default controller options with user-given options
+ *
+ * @param array $options user options
+ *
+ * @return array mixed options
+ */
+ public final function mixInDefaultOptions($options)
+ {
+ $ret = array_merge(
+ $this->getDefaultMinifyOptions(), $options
+ );
+ if (! isset($options['minifiers'])) {
+ $options['minifiers'] = array();
+ }
+ $ret['minifiers'] = array_merge(
+ $this->getDefaultMinifers(), $options['minifiers']
+ );
+ return $ret;
+ }
+
+ /**
+ * Analyze sources (if there are any) and set $options 'contentType'
+ * and 'lastModifiedTime' if they already aren't.
+ *
+ * @param array $options options for Minify
+ *
+ * @return array options for Minify
+ */
+ public final function analyzeSources($options = array())
+ {
+ if ($this->sources) {
+ if (! isset($options['contentType'])) {
+ $options['contentType'] = Minify_Source::getContentType($this->sources);
+ }
+ // last modified is needed for caching, even if setExpires is set
+ if (! isset($options['lastModifiedTime'])) {
+ $max = 0;
+ foreach ($this->sources as $source) {
+ $max = max($source->lastModified, $max);
+ }
+ $options['lastModifiedTime'] = $max;
+ }
+ }
+ return $options;
+ }
+
+ /**
+ * Send message to the Minify logger
+ * @param string $msg
+ * @return null
+ */
+ protected function log($msg) {
+ require_once 'Minify/Logger.php';
+ Minify_Logger::log($msg);
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Files.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Files.php
new file mode 100644
index 0000000000..83f028adf7
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Files.php
@@ -0,0 +1,78 @@
+
+ * Minify::serve('Files', array(
+ * 'files' => array(
+ * '//js/jquery.js'
+ * ,'//js/plugins.js'
+ * ,'/home/username/file.js'
+ * )
+ * ));
+ *
+ *
+ * As a shortcut, the controller will replace "//" at the beginning
+ * of a filename with $_SERVER['DOCUMENT_ROOT'] . '/'.
+ *
+ * @package Minify
+ * @author Stephen Clay
+ */
+class Minify_Controller_Files extends Minify_Controller_Base {
+
+ /**
+ * Set up file sources
+ *
+ * @param array $options controller and Minify options
+ * @return array Minify options
+ *
+ * Controller options:
+ *
+ * 'files': (required) array of complete file paths, or a single path
+ */
+ public function setupSources($options) {
+ // strip controller options
+
+ $files = $options['files'];
+ // if $files is a single object, casting will break it
+ if (is_object($files)) {
+ $files = array($files);
+ } elseif (! is_array($files)) {
+ $files = (array)$files;
+ }
+ unset($options['files']);
+
+ $sources = array();
+ foreach ($files as $file) {
+ if ($file instanceof Minify_Source) {
+ $sources[] = $file;
+ continue;
+ }
+ if (0 === strpos($file, '//')) {
+ $file = $_SERVER['DOCUMENT_ROOT'] . substr($file, 1);
+ }
+ $realPath = realpath($file);
+ if (is_file($realPath)) {
+ $sources[] = new Minify_Source(array(
+ 'filepath' => $realPath
+ ));
+ } else {
+ $this->log("The path \"{$file}\" could not be found (or was not a file)");
+ return $options;
+ }
+ }
+ if ($sources) {
+ $this->sources = $sources;
+ }
+ return $options;
+ }
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Groups.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Groups.php
new file mode 100644
index 0000000000..1ac57703ad
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Groups.php
@@ -0,0 +1,94 @@
+
+ * Minify::serve('Groups', array(
+ * 'groups' => array(
+ * 'css' => array('//css/type.css', '//css/layout.css')
+ * ,'js' => array('//js/jquery.js', '//js/site.js')
+ * )
+ * ));
+ *
+ *
+ * If the above code were placed in /serve.php, it would enable the URLs
+ * /serve.php/js and /serve.php/css
+ *
+ * As a shortcut, the controller will replace "//" at the beginning
+ * of a filename with $_SERVER['DOCUMENT_ROOT'] . '/'.
+ *
+ * @package Minify
+ * @author Stephen Clay
+ */
+class Minify_Controller_Groups extends Minify_Controller_Base {
+
+ /**
+ * Set up groups of files as sources
+ *
+ * @param array $options controller and Minify options
+ * @return array Minify options
+ *
+ * Controller options:
+ *
+ * 'groups': (required) array mapping PATH_INFO strings to arrays
+ * of complete file paths. @see Minify_Controller_Groups
+ */
+ public function setupSources($options) {
+ // strip controller options
+ $groups = $options['groups'];
+ unset($options['groups']);
+
+ // mod_fcgid places PATH_INFO in ORIG_PATH_INFO
+ $pi = isset($_SERVER['ORIG_PATH_INFO'])
+ ? substr($_SERVER['ORIG_PATH_INFO'], 1)
+ : (isset($_SERVER['PATH_INFO'])
+ ? substr($_SERVER['PATH_INFO'], 1)
+ : false
+ );
+ if (false === $pi || ! isset($groups[$pi])) {
+ // no PATH_INFO or not a valid group
+ $this->log("Missing PATH_INFO or no group set for \"$pi\"");
+ return $options;
+ }
+ $sources = array();
+
+ $files = $groups[$pi];
+ // if $files is a single object, casting will break it
+ if (is_object($files)) {
+ $files = array($files);
+ } elseif (! is_array($files)) {
+ $files = (array)$files;
+ }
+ foreach ($files as $file) {
+ if ($file instanceof Minify_Source) {
+ $sources[] = $file;
+ continue;
+ }
+ if (0 === strpos($file, '//')) {
+ $file = $_SERVER['DOCUMENT_ROOT'] . substr($file, 1);
+ }
+ $realPath = realpath($file);
+ if (is_file($realPath)) {
+ $sources[] = new Minify_Source(array(
+ 'filepath' => $realPath
+ ));
+ } else {
+ $this->log("The path \"{$file}\" could not be found (or was not a file)");
+ return $options;
+ }
+ }
+ if ($sources) {
+ $this->sources = $sources;
+ }
+ return $options;
+ }
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/MinApp.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/MinApp.php
new file mode 100644
index 0000000000..9582d292ca
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/MinApp.php
@@ -0,0 +1,132 @@
+
+ */
+class Minify_Controller_MinApp extends Minify_Controller_Base {
+
+ /**
+ * Set up groups of files as sources
+ *
+ * @param array $options controller and Minify options
+ * @return array Minify options
+ *
+ */
+ public function setupSources($options) {
+ // filter controller options
+ $cOptions = array_merge(
+ array(
+ 'allowDirs' => '//'
+ ,'groupsOnly' => false
+ ,'groups' => array()
+ ,'maxFiles' => 10
+ )
+ ,(isset($options['minApp']) ? $options['minApp'] : array())
+ );
+ unset($options['minApp']);
+ $sources = array();
+ if (isset($_GET['g'])) {
+ // try groups
+ if (! isset($cOptions['groups'][$_GET['g']])) {
+ $this->log("A group configuration for \"{$_GET['g']}\" was not set");
+ return $options;
+ }
+
+ $files = $cOptions['groups'][$_GET['g']];
+ // if $files is a single object, casting will break it
+ if (is_object($files)) {
+ $files = array($files);
+ } elseif (! is_array($files)) {
+ $files = (array)$files;
+ }
+ foreach ($files as $file) {
+ if ($file instanceof Minify_Source) {
+ $sources[] = $file;
+ continue;
+ }
+ if (0 === strpos($file, '//')) {
+ $file = $_SERVER['DOCUMENT_ROOT'] . substr($file, 1);
+ }
+ $file = realpath($file);
+ if (is_file($file)) {
+ $sources[] = new Minify_Source(array(
+ 'filepath' => $file
+ ));
+ } else {
+ $this->log("The path \"{$file}\" could not be found (or was not a file)");
+ return $options;
+ }
+ }
+ } elseif (! $cOptions['groupsOnly'] && isset($_GET['f'])) {
+ // try user files
+ // The following restrictions are to limit the URLs that minify will
+ // respond to. Ideally there should be only one way to reference a file.
+ if (// verify at least one file, files are single comma separated,
+ // and are all same extension
+ ! preg_match('/^[^,]+\\.(css|js)(?:,[^,]+\\.\\1)*$/', $_GET['f'])
+ // no "//"
+ || strpos($_GET['f'], '//') !== false
+ // no "\"
+ || strpos($_GET['f'], '\\') !== false
+ // no "./"
+ || preg_match('/(?:^|[^\\.])\\.\\//', $_GET['f'])
+ ) {
+ $this->log("GET param 'f' invalid (see MinApp.php line 63)");
+ return $options;
+ }
+ $files = explode(',', $_GET['f']);
+ if (count($files) > $cOptions['maxFiles'] || $files != array_unique($files)) {
+ $this->log("Too many or duplicate files specified");
+ return $options;
+ }
+ if (isset($_GET['b'])) {
+ // check for validity
+ if (preg_match('@^[^/]+(?:/[^/]+)*$@', $_GET['b'])
+ && false === strpos($_GET['b'], '..')
+ && $_GET['b'] !== '.') {
+ // valid base
+ $base = "/{$_GET['b']}/";
+ } else {
+ $this->log("GET param 'b' invalid (see MinApp.php line 84)");
+ return $options;
+ }
+ } else {
+ $base = '/';
+ }
+ $allowDirs = array();
+ foreach ((array)$cOptions['allowDirs'] as $allowDir) {
+ $allowDirs[] = realpath(str_replace('//', $_SERVER['DOCUMENT_ROOT'] . '/', $allowDir));
+ }
+ foreach ($files as $file) {
+ $path = $_SERVER['DOCUMENT_ROOT'] . $base . $file;
+ $file = realpath($path);
+ if (false === $file) {
+ $this->log("Path \"{$path}\" failed realpath()");
+ return $options;
+ } elseif (! parent::_fileIsSafe($file, $allowDirs)) {
+ $this->log("Path \"{$path}\" failed Minify_Controller_Base::_fileIsSafe()");
+ return $options;
+ } else {
+ $sources[] = new Minify_Source(array(
+ 'filepath' => $file
+ ));
+ }
+ }
+ }
+ if ($sources) {
+ $this->sources = $sources;
+ } else {
+ $this->log("No sources to serve");
+ }
+ return $options;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Page.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Page.php
new file mode 100644
index 0000000000..fa4599abd9
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Page.php
@@ -0,0 +1,82 @@
+
+ */
+class Minify_Controller_Page extends Minify_Controller_Base {
+
+ /**
+ * Set up source of HTML content
+ *
+ * @param array $options controller and Minify options
+ * @return array Minify options
+ *
+ * Controller options:
+ *
+ * 'content': (required) HTML markup
+ *
+ * 'id': (required) id of page (string for use in server-side caching)
+ *
+ * 'lastModifiedTime': timestamp of when this content changed. This
+ * is recommended to allow both server and client-side caching.
+ *
+ * 'minifyAll': should all CSS and Javascript blocks be individually
+ * minified? (default false)
+ *
+ * @todo Add 'file' option to read HTML file.
+ */
+ public function setupSources($options) {
+ if (isset($options['file'])) {
+ $sourceSpec = array(
+ 'filepath' => $options['file']
+ );
+ } else {
+ // strip controller options
+ $sourceSpec = array(
+ 'content' => $options['content']
+ ,'id' => $options['id']
+ );
+ unset($options['content'], $options['id']);
+ }
+ if (isset($options['minifyAll'])) {
+ // this will be the 2nd argument passed to Minify_HTML::minify()
+ $sourceSpec['minifyOptions'] = array(
+ 'cssMinifier' => array('Minify_CSS', 'minify')
+ ,'jsMinifier' => array('JSMin', 'minify')
+ );
+ $this->_loadCssJsMinifiers = true;
+ unset($options['minifyAll']);
+ }
+ $this->sources[] = new Minify_Source($sourceSpec);
+
+ $options['contentType'] = Minify::TYPE_HTML;
+ return $options;
+ }
+
+ protected $_loadCssJsMinifiers = false;
+
+ /**
+ * @see Minify_Controller_Base::loadMinifier()
+ */
+ public function loadMinifier($minifierCallback)
+ {
+ if ($this->_loadCssJsMinifiers) {
+ // Minify will not call for these so we must manually load
+ // them when Minify/HTML.php is called for.
+ require_once 'Minify/CSS.php';
+ require_once 'JSMin.php';
+ }
+ parent::loadMinifier($minifierCallback); // load Minify/HTML.php
+ }
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Version1.php b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Version1.php
new file mode 100644
index 0000000000..1861aabc11
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Controller/Version1.php
@@ -0,0 +1,118 @@
+
+ * Minify::serve('Version1');
+ *
+ *
+ * @package Minify
+ * @author Stephen Clay
+ */
+class Minify_Controller_Version1 extends Minify_Controller_Base {
+
+ /**
+ * Set up groups of files as sources
+ *
+ * @param array $options controller and Minify options
+ * @return array Minify options
+ *
+ */
+ public function setupSources($options) {
+ self::_setupDefines();
+ if (MINIFY_USE_CACHE) {
+ $cacheDir = defined('MINIFY_CACHE_DIR')
+ ? MINIFY_CACHE_DIR
+ : '';
+ Minify::setCache($cacheDir);
+ }
+ $options['badRequestHeader'] = 'HTTP/1.0 404 Not Found';
+ $options['contentTypeCharset'] = MINIFY_ENCODING;
+
+ // The following restrictions are to limit the URLs that minify will
+ // respond to. Ideally there should be only one way to reference a file.
+ if (! isset($_GET['files'])
+ // verify at least one file, files are single comma separated,
+ // and are all same extension
+ || ! preg_match('/^[^,]+\\.(css|js)(,[^,]+\\.\\1)*$/', $_GET['files'], $m)
+ // no "//" (makes URL rewriting easier)
+ || strpos($_GET['files'], '//') !== false
+ // no "\"
+ || strpos($_GET['files'], '\\') !== false
+ // no "./"
+ || preg_match('/(?:^|[^\\.])\\.\\//', $_GET['files'])
+ ) {
+ return $options;
+ }
+ $extension = $m[1];
+
+ $files = explode(',', $_GET['files']);
+ if (count($files) > MINIFY_MAX_FILES) {
+ return $options;
+ }
+
+ // strings for prepending to relative/absolute paths
+ $prependRelPaths = dirname($_SERVER['SCRIPT_FILENAME'])
+ . DIRECTORY_SEPARATOR;
+ $prependAbsPaths = $_SERVER['DOCUMENT_ROOT'];
+
+ $sources = array();
+ $goodFiles = array();
+ $hasBadSource = false;
+
+ $allowDirs = isset($options['allowDirs'])
+ ? $options['allowDirs']
+ : MINIFY_BASE_DIR;
+
+ foreach ($files as $file) {
+ // prepend appropriate string for abs/rel paths
+ $file = ($file[0] === '/' ? $prependAbsPaths : $prependRelPaths) . $file;
+ // make sure a real file!
+ $file = realpath($file);
+ // don't allow unsafe or duplicate files
+ if (parent::_fileIsSafe($file, $allowDirs)
+ && !in_array($file, $goodFiles))
+ {
+ $goodFiles[] = $file;
+ $srcOptions = array(
+ 'filepath' => $file
+ );
+ $this->sources[] = new Minify_Source($srcOptions);
+ } else {
+ $hasBadSource = true;
+ break;
+ }
+ }
+ if ($hasBadSource) {
+ $this->sources = array();
+ }
+ if (! MINIFY_REWRITE_CSS_URLS) {
+ $options['rewriteCssUris'] = false;
+ }
+ return $options;
+ }
+
+ private static function _setupDefines()
+ {
+ $defaults = array(
+ 'MINIFY_BASE_DIR' => realpath($_SERVER['DOCUMENT_ROOT'])
+ ,'MINIFY_ENCODING' => 'utf-8'
+ ,'MINIFY_MAX_FILES' => 16
+ ,'MINIFY_REWRITE_CSS_URLS' => true
+ ,'MINIFY_USE_CACHE' => true
+ );
+ foreach ($defaults as $const => $val) {
+ if (! defined($const)) {
+ define($const, $val);
+ }
+ }
+ }
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/HTML.php b/plugins/Minify/extlib/minify/min/lib/Minify/HTML.php
new file mode 100644
index 0000000000..fb5c1e9829
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/HTML.php
@@ -0,0 +1,245 @@
+
+ */
+class Minify_HTML {
+
+ /**
+ * "Minify" an HTML page
+ *
+ * @param string $html
+ *
+ * @param array $options
+ *
+ * 'cssMinifier' : (optional) callback function to process content of STYLE
+ * elements.
+ *
+ * 'jsMinifier' : (optional) callback function to process content of SCRIPT
+ * elements. Note: the type attribute is ignored.
+ *
+ * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
+ * unset, minify will sniff for an XHTML doctype.
+ *
+ * @return string
+ */
+ public static function minify($html, $options = array()) {
+ $min = new Minify_HTML($html, $options);
+ return $min->process();
+ }
+
+
+ /**
+ * Create a minifier object
+ *
+ * @param string $html
+ *
+ * @param array $options
+ *
+ * 'cssMinifier' : (optional) callback function to process content of STYLE
+ * elements.
+ *
+ * 'jsMinifier' : (optional) callback function to process content of SCRIPT
+ * elements. Note: the type attribute is ignored.
+ *
+ * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
+ * unset, minify will sniff for an XHTML doctype.
+ *
+ * @return null
+ */
+ public function __construct($html, $options = array())
+ {
+ $this->_html = str_replace("\r\n", "\n", trim($html));
+ if (isset($options['xhtml'])) {
+ $this->_isXhtml = (bool)$options['xhtml'];
+ }
+ if (isset($options['cssMinifier'])) {
+ $this->_cssMinifier = $options['cssMinifier'];
+ }
+ if (isset($options['jsMinifier'])) {
+ $this->_jsMinifier = $options['jsMinifier'];
+ }
+ }
+
+
+ /**
+ * Minify the markeup given in the constructor
+ *
+ * @return string
+ */
+ public function process()
+ {
+ if ($this->_isXhtml === null) {
+ $this->_isXhtml = (false !== strpos($this->_html, '_html);
+
+ // fill placeholders
+ $this->_html = str_replace(
+ array_keys($this->_placeholders)
+ ,array_values($this->_placeholders)
+ ,$this->_html
+ );
+ return $this->_html;
+ }
+
+ protected function _commentCB($m)
+ {
+ return (0 === strpos($m[1], '[') || false !== strpos($m[1], '_replacementHash . count($this->_placeholders) . '%';
+ $this->_placeholders[$placeholder] = $content;
+ return $placeholder;
+ }
+
+ protected $_isXhtml = null;
+ protected $_replacementHash = null;
+ protected $_placeholders = array();
+ protected $_cssMinifier = null;
+ protected $_jsMinifier = null;
+
+ protected function _outsideTagCB($m)
+ {
+ return '>' . preg_replace('/^\\s+|\\s+$/', ' ', $m[1]) . '<';
+ }
+
+ protected function _removePreCB($m)
+ {
+ return $this->_reservePlace($m[1]);
+ }
+
+ protected function _removeTextareaCB($m)
+ {
+ return $this->_reservePlace($m[1]);
+ }
+
+ protected function _removeStyleCB($m)
+ {
+ $openStyle = $m[1];
+ $css = $m[2];
+ // remove HTML comments
+ $css = preg_replace('/(?:^\\s*\\s*$)/', '', $css);
+
+ // remove CDATA section markers
+ $css = $this->_removeCdata($css);
+
+ // minify
+ $minifier = $this->_cssMinifier
+ ? $this->_cssMinifier
+ : 'trim';
+ $css = call_user_func($minifier, $css);
+
+ return $this->_reservePlace($this->_needsCdata($css)
+ ? "{$openStyle}/**/"
+ : "{$openStyle}{$css}"
+ );
+ }
+
+ protected function _removeScriptCB($m)
+ {
+ $openScript = $m[2];
+ $js = $m[3];
+
+ // whitespace surrounding? preserve at least one space
+ $ws1 = ($m[1] === '') ? '' : ' ';
+ $ws2 = ($m[4] === '') ? '' : ' ';
+
+ // remove HTML comments (and ending "//" if present)
+ $js = preg_replace('/(?:^\\s*\\s*$)/', '', $js);
+
+ // remove CDATA section markers
+ $js = $this->_removeCdata($js);
+
+ // minify
+ $minifier = $this->_jsMinifier
+ ? $this->_jsMinifier
+ : 'trim';
+ $js = call_user_func($minifier, $js);
+
+ return $this->_reservePlace($this->_needsCdata($js)
+ ? "{$ws1}{$openScript}/**/{$ws2}"
+ : "{$ws1}{$openScript}{$js}{$ws2}"
+ );
+ }
+
+ protected function _removeCdata($str)
+ {
+ return (false !== strpos($str, ''), '', $str)
+ : $str;
+ }
+
+ protected function _needsCdata($str)
+ {
+ return ($this->_isXhtml && preg_match('/(?:[<&]|\\-\\-|\\]\\]>)/', $str));
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/ImportProcessor.php b/plugins/Minify/extlib/minify/min/lib/Minify/ImportProcessor.php
new file mode 100644
index 0000000000..0d6d90a816
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/ImportProcessor.php
@@ -0,0 +1,157 @@
+
+ */
+class Minify_ImportProcessor {
+
+ public static $filesIncluded = array();
+
+ public static function process($file)
+ {
+ self::$filesIncluded = array();
+ self::$_isCss = (strtolower(substr($file, -4)) === '.css');
+ $obj = new Minify_ImportProcessor(dirname($file));
+ return $obj->_getContent($file);
+ }
+
+ // allows callback funcs to know the current directory
+ private $_currentDir = null;
+
+ // allows _importCB to write the fetched content back to the obj
+ private $_importedContent = '';
+
+ private static $_isCss = null;
+
+ private function __construct($currentDir)
+ {
+ $this->_currentDir = $currentDir;
+ }
+
+ private function _getContent($file)
+ {
+ $file = realpath($file);
+ if (! $file
+ || in_array($file, self::$filesIncluded)
+ || false === ($content = @file_get_contents($file))
+ ) {
+ // file missing, already included, or failed read
+ return '';
+ }
+ self::$filesIncluded[] = realpath($file);
+ $this->_currentDir = dirname($file);
+
+ // remove UTF-8 BOM if present
+ if (pack("CCC",0xef,0xbb,0xbf) === substr($content, 0, 3)) {
+ $content = substr($content, 3);
+ }
+ // ensure uniform EOLs
+ $content = str_replace("\r\n", "\n", $content);
+
+ // process @imports
+ $content = preg_replace_callback(
+ '/
+ @import\\s+
+ (?:url\\(\\s*)? # maybe url(
+ [\'"]? # maybe quote
+ (.*?) # 1 = URI
+ [\'"]? # maybe end quote
+ (?:\\s*\\))? # maybe )
+ ([a-zA-Z,\\s]*)? # 2 = media list
+ ; # end token
+ /x'
+ ,array($this, '_importCB')
+ ,$content
+ );
+
+ if (self::$_isCss) {
+ // rewrite remaining relative URIs
+ $content = preg_replace_callback(
+ '/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ ,array($this, '_urlCB')
+ ,$content
+ );
+ }
+
+ return $this->_importedContent . $content;
+ }
+
+ private function _importCB($m)
+ {
+ $url = $m[1];
+ $mediaList = preg_replace('/\\s+/', '', $m[2]);
+
+ if (strpos($url, '://') > 0) {
+ // protocol, leave in place for CSS, comment for JS
+ return self::$_isCss
+ ? $m[0]
+ : "/* Minify_ImportProcessor will not include remote content */";
+ }
+ if ('/' === $url[0]) {
+ // protocol-relative or root path
+ $url = ltrim($url, '/');
+ $file = realpath($_SERVER['DOCUMENT_ROOT']) . DIRECTORY_SEPARATOR
+ . strtr($url, '/', DIRECTORY_SEPARATOR);
+ } else {
+ // relative to current path
+ $file = $this->_currentDir . DIRECTORY_SEPARATOR
+ . strtr($url, '/', DIRECTORY_SEPARATOR);
+ }
+ $obj = new Minify_ImportProcessor(dirname($file));
+ $content = $obj->_getContent($file);
+ if ('' === $content) {
+ // failed. leave in place for CSS, comment for JS
+ return self::$_isCss
+ ? $m[0]
+ : "/* Minify_ImportProcessor could not fetch '{$file}' */";;
+ }
+ return (!self::$_isCss || preg_match('@(?:^$|\\ball\\b)@', $mediaList))
+ ? $content
+ : "@media {$mediaList} {\n{$content}\n}\n";
+ }
+
+ private function _urlCB($m)
+ {
+ // $m[1] is either quoted or not
+ $quote = ($m[1][0] === "'" || $m[1][0] === '"')
+ ? $m[1][0]
+ : '';
+ $url = ($quote === '')
+ ? $m[1]
+ : substr($m[1], 1, strlen($m[1]) - 2);
+ if ('/' !== $url[0]) {
+ if (strpos($url, '//') > 0) {
+ // probably starts with protocol, do not alter
+ } else {
+ // prepend path with current dir separator (OS-independent)
+ $path = $this->_currentDir
+ . DIRECTORY_SEPARATOR . strtr($url, '/', DIRECTORY_SEPARATOR);
+ // strip doc root
+ $path = substr($path, strlen(realpath($_SERVER['DOCUMENT_ROOT'])));
+ // fix to absolute URL
+ $url = strtr($path, '/\\', '//');
+ // remove /./ and /../ where possible
+ $url = str_replace('/./', '/', $url);
+ // inspired by patch from Oleg Cherniy
+ do {
+ $url = preg_replace('@/[^/]+/\\.\\./@', '/', $url, 1, $changed);
+ } while ($changed);
+ }
+ }
+ return "url({$quote}{$url}{$quote})";
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Lines.php b/plugins/Minify/extlib/minify/min/lib/Minify/Lines.php
new file mode 100644
index 0000000000..6f94fb63c4
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Lines.php
@@ -0,0 +1,131 @@
+
+ * @author Adam Pedersen (Issue 55 fix)
+ */
+class Minify_Lines {
+
+ /**
+ * Add line numbers in C-style comments
+ *
+ * This uses a very basic parser easily fooled by comment tokens inside
+ * strings or regexes, but, otherwise, generally clean code will not be
+ * mangled. URI rewriting can also be performed.
+ *
+ * @param string $content
+ *
+ * @param array $options available options:
+ *
+ * 'id': (optional) string to identify file. E.g. file name/path
+ *
+ * 'currentDir': (default null) if given, this is assumed to be the
+ * directory of the current CSS file. Using this, minify will rewrite
+ * all relative URIs in import/url declarations to correctly point to
+ * the desired files, and prepend a comment with debugging information about
+ * this process.
+ *
+ * @return string
+ */
+ public static function minify($content, $options = array())
+ {
+ $id = (isset($options['id']) && $options['id'])
+ ? $options['id']
+ : '';
+ $content = str_replace("\r\n", "\n", $content);
+ $lines = explode("\n", $content);
+ $numLines = count($lines);
+ // determine left padding
+ $padTo = strlen($numLines);
+ $inComment = false;
+ $i = 0;
+ $newLines = array();
+ while (null !== ($line = array_shift($lines))) {
+ if (('' !== $id) && (0 == $i % 50)) {
+ array_push($newLines, '', "/* {$id} */", '');
+ }
+ ++$i;
+ $newLines[] = self::_addNote($line, $i, $inComment, $padTo);
+ $inComment = self::_eolInComment($line, $inComment);
+ }
+ $content = implode("\n", $newLines) . "\n";
+
+ // check for desired URI rewriting
+ if (isset($options['currentDir'])) {
+ require_once 'Minify/CSS/UriRewriter.php';
+ Minify_CSS_UriRewriter::$debugText = '';
+ $content = Minify_CSS_UriRewriter::rewrite(
+ $content
+ ,$options['currentDir']
+ ,isset($options['docRoot']) ? $options['docRoot'] : $_SERVER['DOCUMENT_ROOT']
+ ,isset($options['symlinks']) ? $options['symlinks'] : array()
+ );
+ $content = "/* Minify_CSS_UriRewriter::\$debugText\n\n"
+ . Minify_CSS_UriRewriter::$debugText . "*/\n"
+ . $content;
+ }
+
+ return $content;
+ }
+
+ /**
+ * Is the parser within a C-style comment at the end of this line?
+ *
+ * @param string $line current line of code
+ *
+ * @param bool $inComment was the parser in a comment at the
+ * beginning of the line?
+ *
+ * @return bool
+ */
+ private static function _eolInComment($line, $inComment)
+ {
+ while (strlen($line)) {
+ $search = $inComment
+ ? '*/'
+ : '/*';
+ $pos = strpos($line, $search);
+ if (false === $pos) {
+ return $inComment;
+ } else {
+ if ($pos == 0
+ || ($inComment
+ ? substr($line, $pos, 3)
+ : substr($line, $pos-1, 3)) != '*/*')
+ {
+ $inComment = ! $inComment;
+ }
+ $line = substr($line, $pos + 2);
+ }
+ }
+ return $inComment;
+ }
+
+ /**
+ * Prepend a comment (or note) to the given line
+ *
+ * @param string $line current line of code
+ *
+ * @param string $note content of note/comment
+ *
+ * @param bool $inComment was the parser in a comment at the
+ * beginning of the line?
+ *
+ * @param int $padTo minimum width of comment
+ *
+ * @return string
+ */
+ private static function _addNote($line, $note, $inComment, $padTo)
+ {
+ return $inComment
+ ? '/* ' . str_pad($note, $padTo, ' ', STR_PAD_RIGHT) . ' *| ' . $line
+ : '/* ' . str_pad($note, $padTo, ' ', STR_PAD_RIGHT) . ' */ ' . $line;
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Logger.php b/plugins/Minify/extlib/minify/min/lib/Minify/Logger.php
new file mode 100644
index 0000000000..7844eea356
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Logger.php
@@ -0,0 +1,45 @@
+
+ */
+class Minify_Logger {
+
+ /**
+ * Set logger object.
+ *
+ * The object should have a method "log" that accepts a value as 1st argument and
+ * an optional string label as the 2nd.
+ *
+ * @param mixed $obj or a "falsey" value to disable
+ * @return null
+ */
+ public static function setLogger($obj = null) {
+ self::$_logger = $obj
+ ? $obj
+ : null;
+ }
+
+ /**
+ * Pass a message to the logger (if set)
+ *
+ * @param string $msg message to log
+ * @return null
+ */
+ public static function log($msg, $label = 'Minify') {
+ if (! self::$_logger) return;
+ self::$_logger->log($msg, $label);
+ }
+
+ /**
+ * @var mixed logger object (like FirePHP) or null (i.e. no logger available)
+ */
+ private static $_logger = null;
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Packer.php b/plugins/Minify/extlib/minify/min/lib/Minify/Packer.php
new file mode 100644
index 0000000000..949c3eef04
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Packer.php
@@ -0,0 +1,37 @@
+pack());
+ }
+}
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/Source.php b/plugins/Minify/extlib/minify/min/lib/Minify/Source.php
new file mode 100644
index 0000000000..5a85d10d0d
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/Source.php
@@ -0,0 +1,187 @@
+
+ */
+class Minify_Source {
+
+ /**
+ * @var int time of last modification
+ */
+ public $lastModified = null;
+
+ /**
+ * @var callback minifier function specifically for this source.
+ */
+ public $minifier = null;
+
+ /**
+ * @var array minification options specific to this source.
+ */
+ public $minifyOptions = null;
+
+ /**
+ * @var string full path of file
+ */
+ public $filepath = null;
+
+ /**
+ * @var string HTTP Content Type (Minify requires one of the constants Minify::TYPE_*)
+ */
+ public $contentType = null;
+
+ /**
+ * Create a Minify_Source
+ *
+ * In the $spec array(), you can either provide a 'filepath' to an existing
+ * file (existence will not be checked!) or give 'id' (unique string for
+ * the content), 'content' (the string content) and 'lastModified'
+ * (unixtime of last update).
+ *
+ * As a shortcut, the controller will replace "//" at the beginning
+ * of a filepath with $_SERVER['DOCUMENT_ROOT'] . '/'.
+ *
+ * @param array $spec options
+ */
+ public function __construct($spec)
+ {
+ if (isset($spec['filepath'])) {
+ if (0 === strpos($spec['filepath'], '//')) {
+ $spec['filepath'] = $_SERVER['DOCUMENT_ROOT'] . substr($spec['filepath'], 1);
+ }
+ $segments = explode('.', $spec['filepath']);
+ $ext = strtolower(array_pop($segments));
+ switch ($ext) {
+ case 'js' : $this->contentType = 'application/x-javascript';
+ break;
+ case 'css' : $this->contentType = 'text/css';
+ break;
+ case 'htm' : // fallthrough
+ case 'html' : $this->contentType = 'text/html';
+ break;
+ }
+ $this->filepath = $spec['filepath'];
+ $this->_id = $spec['filepath'];
+ $this->lastModified = filemtime($spec['filepath'])
+ // offset for Windows uploaders with out of sync clocks
+ + round(Minify::$uploaderHoursBehind * 3600);
+ } elseif (isset($spec['id'])) {
+ $this->_id = 'id::' . $spec['id'];
+ if (isset($spec['content'])) {
+ $this->_content = $spec['content'];
+ } else {
+ $this->_getContentFunc = $spec['getContentFunc'];
+ }
+ $this->lastModified = isset($spec['lastModified'])
+ ? $spec['lastModified']
+ : time();
+ }
+ if (isset($spec['contentType'])) {
+ $this->contentType = $spec['contentType'];
+ }
+ if (isset($spec['minifier'])) {
+ $this->minifier = $spec['minifier'];
+ }
+ if (isset($spec['minifyOptions'])) {
+ $this->minifyOptions = $spec['minifyOptions'];
+ }
+ }
+
+ /**
+ * Get content
+ *
+ * @return string
+ */
+ public function getContent()
+ {
+ $content = (null !== $this->filepath)
+ ? file_get_contents($this->filepath)
+ : ((null !== $this->_content)
+ ? $this->_content
+ : call_user_func($this->_getContentFunc, $this->_id)
+ );
+ // remove UTF-8 BOM if present
+ return (pack("CCC",0xef,0xbb,0xbf) === substr($content, 0, 3))
+ ? substr($content, 3)
+ : $content;
+ }
+
+ /**
+ * Get id
+ *
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->_id;
+ }
+
+ /**
+ * Verifies a single minification call can handle all sources
+ *
+ * @param array $sources Minify_Source instances
+ *
+ * @return bool true iff there no sources with specific minifier preferences.
+ */
+ public static function haveNoMinifyPrefs($sources)
+ {
+ foreach ($sources as $source) {
+ if (null !== $source->minifier
+ || null !== $source->minifyOptions) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Get unique string for a set of sources
+ *
+ * @param array $sources Minify_Source instances
+ *
+ * @return string
+ */
+ public static function getDigest($sources)
+ {
+ foreach ($sources as $source) {
+ $info[] = array(
+ $source->_id, $source->minifier, $source->minifyOptions
+ );
+ }
+ return md5(serialize($info));
+ }
+
+ /**
+ * Get content type from a group of sources
+ *
+ * This is called if the user doesn't pass in a 'contentType' options
+ *
+ * @param array $sources Minify_Source instances
+ *
+ * @return string content type. e.g. 'text/css'
+ */
+ public static function getContentType($sources)
+ {
+ foreach ($sources as $source) {
+ if ($source->contentType !== null) {
+ return $source->contentType;
+ }
+ }
+ return 'text/plain';
+ }
+
+ protected $_content = null;
+ protected $_getContentFunc = null;
+ protected $_id = null;
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Minify/YUICompressor.php b/plugins/Minify/extlib/minify/min/lib/Minify/YUICompressor.php
new file mode 100644
index 0000000000..7cb61adbec
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Minify/YUICompressor.php
@@ -0,0 +1,139 @@
+
+ * Minify_YUICompressor::$jarFile = '/path/to/yuicompressor-2.3.5.jar';
+ * Minify_YUICompressor::$tempDir = '/tmp';
+ * $code = Minify_YUICompressor::minifyJs(
+ * $code
+ * ,array('nomunge' => true, 'line-break' => 1000)
+ * );
+ *
+ *
+ * @todo unit tests, $options docs
+ *
+ * @package Minify
+ * @author Stephen Clay
+ */
+class Minify_YUICompressor {
+
+ /**
+ * Filepath of the YUI Compressor jar file. This must be set before
+ * calling minifyJs() or minifyCss().
+ *
+ * @var string
+ */
+ public static $jarFile = null;
+
+ /**
+ * Writable temp directory. This must be set before calling minifyJs()
+ * or minifyCss().
+ *
+ * @var string
+ */
+ public static $tempDir = null;
+
+ /**
+ * Filepath of "java" executable (may be needed if not in shell's PATH)
+ *
+ * @var string
+ */
+ public static $javaExecutable = 'java';
+
+ /**
+ * Minify a Javascript string
+ *
+ * @param string $js
+ *
+ * @param array $options (verbose is ignored)
+ *
+ * @see http://www.julienlecomte.net/yuicompressor/README
+ *
+ * @return string
+ */
+ public static function minifyJs($js, $options = array())
+ {
+ return self::_minify('js', $js, $options);
+ }
+
+ /**
+ * Minify a CSS string
+ *
+ * @param string $css
+ *
+ * @param array $options (verbose is ignored)
+ *
+ * @see http://www.julienlecomte.net/yuicompressor/README
+ *
+ * @return string
+ */
+ public static function minifyCss($css, $options = array())
+ {
+ return self::_minify('css', $css, $options);
+ }
+
+ private static function _minify($type, $content, $options)
+ {
+ self::_prepare();
+ if (! ($tmpFile = tempnam(self::$tempDir, 'yuic_'))) {
+ throw new Exception('Minify_YUICompressor : could not create temp file.');
+ }
+ file_put_contents($tmpFile, $content);
+ exec(self::_getCmd($options, $type, $tmpFile), $output);
+ unlink($tmpFile);
+ return implode("\n", $output);
+ }
+
+ private static function _getCmd($userOptions, $type, $tmpFile)
+ {
+ $o = array_merge(
+ array(
+ 'charset' => ''
+ ,'line-break' => 5000
+ ,'type' => $type
+ ,'nomunge' => false
+ ,'preserve-semi' => false
+ ,'disable-optimizations' => false
+ )
+ ,$userOptions
+ );
+ $cmd = self::$javaExecutable . ' -jar ' . escapeshellarg(self::$jarFile)
+ . " --type {$type}"
+ . (preg_match('/^[a-zA-Z\\-]+$/', $o['charset'])
+ ? " --charset {$o['charset']}"
+ : '')
+ . (is_numeric($o['line-break']) && $o['line-break'] >= 0
+ ? ' --line-break ' . (int)$o['line-break']
+ : '');
+ if ($type === 'js') {
+ foreach (array('nomunge', 'preserve-semi', 'disable-optimizations') as $opt) {
+ $cmd .= $o[$opt]
+ ? " --{$opt}"
+ : '';
+ }
+ }
+ return $cmd . ' ' . escapeshellarg($tmpFile);
+ }
+
+ private static function _prepare()
+ {
+ if (! is_file(self::$jarFile)
+ || ! is_dir(self::$tempDir)
+ || ! is_writable(self::$tempDir)
+ ) {
+ throw new Exception('Minify_YUICompressor : $jarFile and $tempDir must be set.');
+ }
+ }
+}
+
diff --git a/plugins/Minify/extlib/minify/min/lib/Solar/Dir.php b/plugins/Minify/extlib/minify/min/lib/Solar/Dir.php
new file mode 100644
index 0000000000..37f7169624
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/lib/Solar/Dir.php
@@ -0,0 +1,199 @@
+
+ *
+ * @license http://opensource.org/licenses/bsd-license.php BSD
+ *
+ * @version $Id: Dir.php 2926 2007-11-09 16:25:44Z pmjones $
+ *
+ */
+class Solar_Dir {
+
+ /**
+ *
+ * The OS-specific temporary directory location.
+ *
+ * @var string
+ *
+ */
+ protected static $_tmp;
+
+ /**
+ *
+ * Hack for [[php::is_dir() | ]] that checks the include_path.
+ *
+ * Use this to see if a directory exists anywhere in the include_path.
+ *
+ * {{code: php
+ * $dir = Solar_Dir::exists('path/to/dir')
+ * if ($dir) {
+ * $files = scandir($dir);
+ * } else {
+ * echo "Not found in the include-path.";
+ * }
+ * }}
+ *
+ * @param string $dir Check for this directory in the include_path.
+ *
+ * @return mixed If the directory exists in the include_path, returns the
+ * absolute path; if not, returns boolean false.
+ *
+ */
+ public static function exists($dir)
+ {
+ // no file requested?
+ $dir = trim($dir);
+ if (! $dir) {
+ return false;
+ }
+
+ // using an absolute path for the file?
+ // dual check for Unix '/' and Windows '\',
+ // or Windows drive letter and a ':'.
+ $abs = ($dir[0] == '/' || $dir[0] == '\\' || $dir[1] == ':');
+ if ($abs && is_dir($dir)) {
+ return $dir;
+ }
+
+ // using a relative path on the file
+ $path = explode(PATH_SEPARATOR, ini_get('include_path'));
+ foreach ($path as $base) {
+ // strip Unix '/' and Windows '\'
+ $target = rtrim($base, '\\/') . DIRECTORY_SEPARATOR . $dir;
+ if (is_dir($target)) {
+ return $target;
+ }
+ }
+
+ // never found it
+ return false;
+ }
+
+ /**
+ *
+ * "Fixes" a directory string for the operating system.
+ *
+ * Use slashes anywhere you need a directory separator. Then run the
+ * string through fixdir() and the slashes will be converted to the
+ * proper separator (for example '\' on Windows).
+ *
+ * Always adds a final trailing separator.
+ *
+ * @param string $dir The directory string to 'fix'.
+ *
+ * @return string The "fixed" directory string.
+ *
+ */
+ public static function fix($dir)
+ {
+ $dir = str_replace('/', DIRECTORY_SEPARATOR, $dir);
+ return rtrim($dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
+ }
+
+ /**
+ *
+ * Convenience method for dirname() and higher-level directories.
+ *
+ * @param string $file Get the dirname() of this file.
+ *
+ * @param int $up Move up in the directory structure this many
+ * times, default 0.
+ *
+ * @return string The dirname() of the file.
+ *
+ */
+ public static function name($file, $up = 0)
+ {
+ $dir = dirname($file);
+ while ($up --) {
+ $dir = dirname($dir);
+ }
+ return $dir;
+ }
+
+ /**
+ *
+ * Returns the OS-specific directory for temporary files.
+ *
+ * @param string $sub Add this subdirectory to the returned temporary
+ * directory name.
+ *
+ * @return string The temporary directory path.
+ *
+ */
+ public static function tmp($sub = '')
+ {
+ // find the tmp dir if needed
+ if (! Solar_Dir::$_tmp) {
+
+ // use the system if we can
+ if (function_exists('sys_get_temp_dir')) {
+ $tmp = sys_get_temp_dir();
+ } else {
+ $tmp = Solar_Dir::_tmp();
+ }
+
+ // remove trailing separator and save
+ Solar_Dir::$_tmp = rtrim($tmp, DIRECTORY_SEPARATOR);
+ }
+
+ // do we have a subdirectory request?
+ $sub = trim($sub);
+ if ($sub) {
+ // remove leading and trailing separators, and force exactly
+ // one trailing separator
+ $sub = trim($sub, DIRECTORY_SEPARATOR)
+ . DIRECTORY_SEPARATOR;
+ }
+
+ return Solar_Dir::$_tmp . DIRECTORY_SEPARATOR . $sub;
+ }
+
+ /**
+ *
+ * Returns the OS-specific temporary directory location.
+ *
+ * @return string The temp directory path.
+ *
+ */
+ protected static function _tmp()
+ {
+ // non-Windows system?
+ if (strtolower(substr(PHP_OS, 0, 3)) != 'win') {
+ $tmp = empty($_ENV['TMPDIR']) ? getenv('TMPDIR') : $_ENV['TMPDIR'];
+ if ($tmp) {
+ return $tmp;
+ } else {
+ return '/tmp';
+ }
+ }
+
+ // Windows 'TEMP'
+ $tmp = empty($_ENV['TEMP']) ? getenv('TEMP') : $_ENV['TEMP'];
+ if ($tmp) {
+ return $tmp;
+ }
+
+ // Windows 'TMP'
+ $tmp = empty($_ENV['TMP']) ? getenv('TMP') : $_ENV['TMP'];
+ if ($tmp) {
+ return $tmp;
+ }
+
+ // Windows 'windir'
+ $tmp = empty($_ENV['windir']) ? getenv('windir') : $_ENV['windir'];
+ if ($tmp) {
+ return $tmp;
+ }
+
+ // final fallback for Windows
+ return getenv('SystemRoot') . '\\temp';
+ }
+}
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min/utils.php b/plugins/Minify/extlib/minify/min/utils.php
new file mode 100644
index 0000000000..c735941520
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min/utils.php
@@ -0,0 +1,90 @@
+
+ *
+ *
+ *
+ *
+ * If you do not want ampersands as HTML entities, set Minify_Build::$ampersand = "&"
+ * before using this function.
+ *
+ * @param string $group a key from groupsConfig.php
+ * @param boolean $forceAmpersand (default false) Set to true if the RewriteRule
+ * directives in .htaccess are functional. This will remove the "?" from URIs, making them
+ * more cacheable by proxies.
+ * @return string
+ */
+function Minify_groupUri($group, $forceAmpersand = false)
+{
+ $path = $forceAmpersand
+ ? "/g={$group}"
+ : "/?g={$group}";
+ return _Minify_getBuild($group)->uri(
+ '/' . basename(dirname(__FILE__)) . $path
+ ,$forceAmpersand
+ );
+}
+
+
+/**
+ * Get the last modification time of the source js/css files used by Minify to
+ * build the page.
+ *
+ * If you're caching the output of Minify_groupUri(), you'll want to rebuild
+ * the cache if it's older than this timestamp.
+ *
+ *
+ * // simplistic HTML cache system
+ * $file = '/path/to/cache/file';
+ * if (! file_exists($file) || filemtime($file) < Minify_groupsMtime(array('js', 'css'))) {
+ * // (re)build cache
+ * $page = buildPage(); // this calls Minify_groupUri() for js and css
+ * file_put_contents($file, $page);
+ * echo $page;
+ * exit();
+ * }
+ * readfile($file);
+ *
+ *
+ * @param array $groups an array of keys from groupsConfig.php
+ * @return int Unix timestamp of the latest modification
+ */
+function Minify_groupsMtime($groups)
+{
+ $max = 0;
+ foreach ((array)$groups as $group) {
+ $max = max($max, _Minify_getBuild($group)->lastModified);
+ }
+ return $max;
+}
+
+/**
+ * @param string $group a key from groupsConfig.php
+ * @return Minify_Build
+ * @private
+ */
+function _Minify_getBuild($group)
+{
+ static $builds = array();
+ static $gc = false;
+ if (false === $gc) {
+ $gc = (require dirname(__FILE__) . '/groupsConfig.php');
+ }
+ if (! isset($builds[$group])) {
+ $builds[$group] = new Minify_Build($gc[$group]);
+ }
+ return $builds[$group];
+}
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/2.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/2.php
new file mode 100644
index 0000000000..9b66f24932
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/2.php
@@ -0,0 +1,44 @@
+ $lastModified
+));
+if ($cg->cacheIsValid) {
+ $cg->sendHeaders();
+ // we're done
+ exit();
+}
+
+// generate content
+$title = 'Last-Modified is known : add Content-Length';
+$explain = '
+
Here, like the first example, we know the Last-Modified time,
+but we also want to set the Content-Length to increase cacheability and allow
+HTTP persistent connections. Instead of sending headers immediately, we first
+generate our content, then use setContentLength(strlen($content))
+to add the header. Then finally call sendHeaders() and send the
+content.
+
Note: This is not required if your PHP config buffers all
+output and your script doesn\'t do any incremental flushing of the output
+buffer. PHP will generally set Content-Length for you if it can.
+
This script emulates a document that changes every ' .$every. ' seconds.
+ This is version: ' . date('r', $lastModified) . '
+';
+
+require '_include.php';
+$content = get_content(array(
+ 'title' => $title
+ ,'explain' => $explain
+));
+
+$cg->setContentLength(strlen($content));
+$cg->sendHeaders();
+send_slowly($content);
+
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php
new file mode 100644
index 0000000000..8f5482ba89
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php
@@ -0,0 +1,40 @@
+When Last-Modified is unknown, you can still use ETags, but you need a short
+string that is unique for that content. In the worst case, you have to generate
+all the content first, then instantiate HTTP_ConditionalGet, setting
+the array key contentHash to the output of a hash function of the
+content. Since we have the full content, we might as well also use
+setContentLength(strlen($content)) in the case where we need to
+send it.
+
This script emulates a document that changes every ' .$every. ' seconds.
+ This is version: ' . date('r', $lastModified) . '
Using ConditionalGet and Encoder is straightforward. First impliment the
+ConditionalGet, then if the cache is not valid, encode and send the content
+
This script emulates a document that changes every ' .$every. ' seconds.
+ This is version: ' . date('r', $lastModified) . '
+';
+require '_include.php';
+$content = get_content(array(
+ 'title' => $title
+ ,'explain' => $explain
+));
+
+$he = new HTTP_Encoder(array(
+ 'content' => get_content(array(
+ 'title' => $title
+ ,'explain' => $explain
+ ))
+));
+$he->encode();
+
+// usually you would just $he->sendAll(), but here we want to emulate slow
+// connection
+$he->sendHeaders();
+send_slowly($he->getContent());
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php
new file mode 100644
index 0000000000..b443c19734
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php
@@ -0,0 +1,27 @@
+ 20
+ ,'lastModifiedTime' => filemtime(__FILE__)
+));
+$cg->sendHeaders();
+
+// generate, send content
+$title = 'Last-Modified + Expires';
+$explain = '
+
Here we set a static "lastModifiedTime" and "maxAge" to 20. The browser
+will consider this document fresh for 20 seconds, then revalidate its cache. After
+the 304 response, the cache will be good for another 20 seconds. Unless you force
+a reload, there will only be 304 responses for this page after the initial download.
+';
+
+require '_include.php';
+echo get_content(array(
+ 'title' => $title
+ ,'explain' => $explain
+));
+
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
new file mode 100644
index 0000000000..9b65ae12e4
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
@@ -0,0 +1,64 @@
+
+
+
+
For these pages all 200 responses are sent in chunks a second apart, so you
+should notice that 304 responses are quicker. You can also use HTTP sniffers
+like Fiddler (win) and
+LiveHTTPHeaders (Firefox add-on)
+to verify headers and content being sent.
+
Browser notes
+
+
Opera
+
Opera has a couple behaviors against the HTTP spec: Manual refreshes (F5)
+ prevents the ETag/If-Modified-Since headers from being sent; it only sends
+ them when following a link or bookmark. Also, Opera will not honor the
+ must-revalidate Cache-Control value unless max-age
+ is set. To get Opera to follow the spec, ConditionalGet will send Opera max-age=0
+ (if one is not already set).
+
Safari
+
ETag validation is unsupported, but Safari supports HTTP/1.0 validation via
+ If-Modified-Since headers as long as the cache is explicitly marked
+ "public" or "private" ("private" is default in ConditionalGet).
If your content has not changed since a certain timestamp, set this via the
+the lastModifiedTime array key when instantiating HTTP_ConditionalGet.
+You can immediately call the method sendHeaders() to set the
+Last-Modified, ETag, and Cache-Control headers. The, if cacheIsValid
+property is false, you echo the content.
+
This script emulates a document that changes every ' .$every. ' seconds.
+ This is version: ' . date('r', $lastModified) . '
+
+
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html
new file mode 100644
index 0000000000..58ba2bb988
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html
@@ -0,0 +1,36 @@
+css Zen Garden: The Beauty in CSS Design
Browser != IE
css Zen Garden
The Beauty of CSS Design
+ White space is important here!
+
A demonstration of what can be accomplished visually through CSS-based design. Select any style sheet from the list to load it into this page.
+
+Preserve at least 1 char of whitespace near scripts in case of document.write().
+
+
+
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html
new file mode 100644
index 0000000000..ae28465bcd
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html
@@ -0,0 +1,36 @@
+css Zen Garden: The Beauty in CSS Design
Browser != IE
css Zen Garden
The Beauty of CSS Design
+ White space is important here!
+
A demonstration of what can be accomplished visually through CSS-based design. Select any style sheet from the list to load it into this page.
" ] ||
+
+ // IE can't serialize and
\ No newline at end of file
diff --git a/plugins/Minify/minify.php b/plugins/Minify/minify.php
new file mode 100644
index 0000000000..2de2d6d26f
--- /dev/null
+++ b/plugins/Minify/minify.php
@@ -0,0 +1,122 @@
+.
+ */
+
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+
+// We bundle the minify library...
+set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/minify/min/lib');
+
+class MinifyAction extends Action
+{
+ const TYPE_CSS = 'text/css';
+ const TYPE_HTML = 'text/html';
+ // there is some debate over the ideal JS Content-Type, but this is the
+ // Apache default and what Yahoo! uses..
+ const TYPE_JS = 'application/x-javascript';
+
+ const cacheKey = 'minify';
+
+ var $file;
+
+ function isReadOnly($args)
+ {
+ return true;
+ }
+
+ function prepare($args)
+ {
+ parent::prepare($args);
+ $this->v = $args['v'];
+
+ $f = $this->arg('f');
+ if(isset($f)) {
+ $this->file = INSTALLDIR.'/'.$f;
+ if(file_exists($this->file)) {
+ return true;
+ } else {
+ $this->clientError(_('f parameter is not a valid path'),404);
+ return false;
+ }
+ }else{
+ $this->clientError(_('f parameter is required'),500);
+ return false;
+ }
+ }
+
+ function etag()
+ {
+ if(isset($this->v)) {
+ return "\"" . crc32($this->file . $this->v) . "\"";
+ }else{
+ $stat = stat($this->file);
+ return '"' . $stat['ino'] . '-' . $stat['size'] . '-' . $stat['mtime'] . '"';
+ }
+ }
+
+ function lastModified()
+ {
+ return filemtime($this->file);
+ }
+
+ function handle($args)
+ {
+ parent::handle($args);
+
+ $c = common_memcache();
+ if (!empty($c)) {
+ $out = $c->get(common_cache_key(self::cacheKey . ':' . $this->file));
+ }
+ if(empty($out)) {
+ $out = $this->minify($this->file);
+ }
+ if (!empty($c)) {
+ $c->set(common_cache_key(self::cacheKey . ':' . $this->file), $out);
+ }
+
+ $sec = session_cache_expire() * 60;
+ header('Cache-Control: public, max-age=' . $sec);
+ header('Pragma: public');
+ $this->raw($out);
+ }
+
+ function minify($file)
+ {
+ $info = pathinfo($file);
+ switch(strtolower($info['extension'])){
+ case 'js':
+ require_once('JSMin.php');
+ $out = JSMin::minify(file_get_contents($file));
+ header('Content-Type: ' . self::TYPE_JS);
+ break;
+ case 'css':
+ require_once('Minify/CSS.php');
+ $options = array();
+ $options['currentDir'] = dirname($file);
+ $options['docRoot'] = INSTALLDIR;
+ $out = Minify_CSS::minify(file_get_contents($file),$options);
+ header('Content-Type: ' . self::TYPE_CSS);
+ break;
+ default:
+ $this->clientError(_('File type not supported'),500);
+ return false;
+ }
+ return $out;
+ }
+}
+
From 2c07d4a530e2e8ea6a48f08806f5026df1132152 Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 13:39:51 -0500
Subject: [PATCH 09/51] utility function to output inline JavaScript
---
lib/htmloutputter.php | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index d267526c88..3fabc4037a 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -360,6 +360,25 @@ class HTMLOutputter extends XMLOutputter
' ');
}
+ /**
+ * output a script (almost always javascript) tag with inline
+ * code.
+ *
+ * @param string $code relative or absolute script path
+ * @param string $type 'type' attribute value of the tag
+ *
+ * @return void
+ */
+
+ function inlineScript($code, $type='text/javascript')
+ {
+ $this->elementStart('script', array('type' => $type));
+ $this->raw('/*raw($code);
+ $this->raw(' /*]]>*/'); // XHTML compat for Safari
+ $this->elementEnd('script');
+ }
+
/**
* output a css link
*
@@ -414,7 +433,6 @@ class HTMLOutputter extends XMLOutputter
}
}
-
/**
* Internal script to autofocus the given element on page onload.
*
From a92228c713c73b4015766b45eecd4769a57ae232 Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 14:31:19 -0500
Subject: [PATCH 10/51] Update Mapstraction to properly scrape data from
notice-list pages
Refactored the JavaScript for Mapstraction use so it scrapes data from
the HTML of the page it's on, if possible, and otherwise generates a
JSON array.
---
plugins/Mapstraction/MapstractionPlugin.php | 22 +++++-
plugins/Mapstraction/map.php | 9 +--
plugins/Mapstraction/usermap.js | 83 +++++++++++----------
3 files changed, 65 insertions(+), 49 deletions(-)
diff --git a/plugins/Mapstraction/MapstractionPlugin.php b/plugins/Mapstraction/MapstractionPlugin.php
index c4f9cd77de..ba7827151b 100644
--- a/plugins/Mapstraction/MapstractionPlugin.php
+++ b/plugins/Mapstraction/MapstractionPlugin.php
@@ -112,6 +112,11 @@ class MapstractionPlugin extends Plugin
{
$actionName = $action->trimmed('action');
+ if (!in_array($actionName,
+ array('showstream', 'all', 'usermap', 'allmap'))) {
+ return true;
+ }
+
switch ($this->provider)
{
case 'cloudmade':
@@ -143,9 +148,20 @@ class MapstractionPlugin extends Plugin
$action->script(common_path('plugins/Mapstraction/usermap.js'));
- $action->elementStart('script', array('type' => 'text/javascript'));
- $action->raw(sprintf('var _provider = "%s";', $this->provider));
- $action->elementEnd('script');
+ $action->inlineScript(sprintf('var _provider = "%s";', $this->provider));
+
+ // usermap and allmap handle this themselves
+
+ if (in_array($actionName,
+ array('showstream', 'all'))) {
+ $action->inlineScript('$(document).ready(function() { '.
+ ' var user = null; '.
+ (($actionName == 'showstream') ? ' user = scrapeUser(); ' : '') .
+ ' var notices = scrapeNotices(user); ' .
+ ' console.log(notices); ' .
+ ' showMapstraction($("#map_canvas"), notices); '.
+ '});');
+ }
return true;
}
diff --git a/plugins/Mapstraction/map.php b/plugins/Mapstraction/map.php
index 89723f43ce..734e480884 100644
--- a/plugins/Mapstraction/map.php
+++ b/plugins/Mapstraction/map.php
@@ -128,12 +128,9 @@ class MapAction extends OwnerDesignAction
}
}
- $this->elementStart('script', array('type' => 'text/javascript'));
- $this->raw('/*raw('var _notices = ' . json_encode($jsonArray).'; ');
- $this->raw('showMapstraction($("#map_canvas"),_notices);');
- $this->raw('/*]]>*/'); // XHTML compat for Safari
- $this->elementEnd('script');
+ $this->inlineScript('$(document).ready(function() { '.
+ ' var _notices = ' . json_encode($jsonArray).'; ' .
+ 'showMapstraction($("#map_canvas"), _notices); });');
return true;
}
diff --git a/plugins/Mapstraction/usermap.js b/plugins/Mapstraction/usermap.js
index e667dd5790..4b7a6c26b4 100644
--- a/plugins/Mapstraction/usermap.js
+++ b/plugins/Mapstraction/usermap.js
@@ -1,40 +1,32 @@
-$(document).ready(function() {
+function scrapeNotices(user)
+{
var notices = [];
$(".notice").each(function(){
- var notice = getNoticeFromElement($(this));
- if(notice['geo'])
- notices.push(notice);
+ var notice = getNoticeFromElement($(this));
+ if (user) {
+ notice['user'] = user;
+ } else {
+ notice['user'] = getUserFromElement($(this));
+ }
+ if(notice['geo'])
+ notices.push(notice);
});
- if($("#map_canvas").length && notices.length>0)
- {
- showMapstraction($("#map_canvas"), notices);
- }
- $('.geo').click(function(){
- var noticeElement = $(this).closest(".notice");
- notice = getNoticeFromElement(noticeElement);
+ return notices;
+}
- $.fn.jOverlay.options = {
- color : '#000',
- opacity : '0.6',
- zIndex : 99,
- center : false,
- bgClickToClose : true,
- autoHide : true,
- css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'}
- };
- var html="";
- html+="";
- html+=$("").append($(this).clone()).html();
- $().jOverlay({ "html": html });
- $('#jOverlayContent').show();
- $('#jOverlayContent button').click($.closeOverlay);
-
- showMapstraction($("#map_canvas_popup"), notice);
+function scrapeUser()
+{
+ var avatarURL = $(".entity_profile .entity_depiction img.avatar").attr('src');
+ var profileURL = $(".entity_profile .entity_nickname .url").attr('href');
+ var nickname = $(".entity_profile .entity_nickname .nickname").text();
- return false;
- });
-});
+ return {
+ 'profile_image_url': avatarURL,
+ 'profile_url': profileURL,
+ 'screen_name': nickname
+ };
+}
function getMicroformatValue(element)
{
@@ -48,23 +40,34 @@ function getMicroformatValue(element)
function getNoticeFromElement(noticeElement)
{
var notice = {};
- if(noticeElement.find(".geo").length){
+
+ if(noticeElement.find(".geo").length) {
var latlon = noticeElement.find(".geo").attr('title').split(";");
notice['geo']={'coordinates': [
parseFloat(latlon[0]),
parseFloat(latlon[1])] };
}
- notice['user']={
- 'profile_image_url': noticeElement.find("img.avatar").attr('src'),
- 'profile_url': noticeElement.find(".author a.url").attr('href'),
- 'screen_name': noticeElement.find(".author .nickname").text()
- };
- notice['html']=noticeElement.find(".entry-content").html();
- notice['url']=noticeElement.find("a.timestamp").attr('href');
- notice['created_at']=noticeElement.find("abbr.published").text();
+
+ notice['html'] = noticeElement.find(".entry-content").html();
+ notice['url'] = noticeElement.find("a.timestamp").attr('href');
+ notice['created_at'] = noticeElement.find("abbr.published").text();
+
return notice;
}
+function getUserFromElement(noticeElement)
+{
+ var avatarURL = noticeElement.find("img.avatar").attr('src');
+ var profileURL = noticeElement.find(".author a.url").attr('href');
+ var nickname = noticeElement.find(".author .nickname").text();
+
+ return {
+ 'profile_image_url': avatarURL,
+ 'profile_url': profileURL,
+ 'screen_name': nickname
+ };
+}
+
function showMapstraction(element, notices) {
if(element instanceof jQuery) element = element[0];
if(! $.isArray(notices)) notices = [notices];
From e7e9dfceb4fd6db81bf266d71a3ec0b1933fbd02 Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 14:36:24 -0500
Subject: [PATCH 11/51] remove unnecessary debugging code from mapstraction
output
---
plugins/Mapstraction/MapstractionPlugin.php | 1 -
1 file changed, 1 deletion(-)
diff --git a/plugins/Mapstraction/MapstractionPlugin.php b/plugins/Mapstraction/MapstractionPlugin.php
index ba7827151b..f20e81b0ea 100644
--- a/plugins/Mapstraction/MapstractionPlugin.php
+++ b/plugins/Mapstraction/MapstractionPlugin.php
@@ -158,7 +158,6 @@ class MapstractionPlugin extends Plugin
' var user = null; '.
(($actionName == 'showstream') ? ' user = scrapeUser(); ' : '') .
' var notices = scrapeNotices(user); ' .
- ' console.log(notices); ' .
' showMapstraction($("#map_canvas"), notices); '.
'});');
}
From cff12603cf13ddde59f82597cdf896bf0deaf596 Mon Sep 17 00:00:00 2001
From: Zach Copley
Date: Fri, 4 Dec 2009 20:17:42 +0000
Subject: [PATCH 12/51] Make imported Twitter notices show up via real time
plugins.
---
plugins/TwitterBridge/TwitterBridgePlugin.php | 7 ++++++-
.../daemons/twitterstatusfetcher.php | 18 +++++++++++++++---
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php
index ad3c2e551c..adf9ceda34 100644
--- a/plugins/TwitterBridge/TwitterBridgePlugin.php
+++ b/plugins/TwitterBridge/TwitterBridgePlugin.php
@@ -127,7 +127,12 @@ class TwitterBridgePlugin extends Plugin
*/
function onStartEnqueueNotice($notice, &$transports)
{
- array_push($transports, 'twitter');
+ // Avoid a possible loop
+
+ if ($notice->source != 'twitter') {
+ array_push($transports, 'twitter');
+ }
+
return true;
}
diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
index eba1d563b3..d8901f47ba 100755
--- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
+++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
@@ -209,7 +209,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon
continue;
}
- $this->saveStatus($status, $flink);
+ $notice = null;
+
+ $notice = $this->saveStatus($status, $flink);
+
+ common_broadcast_notice($notice);
}
// Okay, record the time we synced with Twitter for posterity
@@ -235,12 +239,14 @@ class TwitterStatusFetcher extends ParallelizingDaemon
$uri = 'http://twitter.com/' . $status->user->screen_name .
'/status/' . $status->id;
- $notice = Notice::staticGet('uri', $uri);
-
// check to see if we've already imported the status
+ $notice = Notice::staticGet('uri', $uri);
+
if (empty($notice)) {
+ // XXX: transaction here?
+
$notice = new Notice();
$notice->profile_id = $id;
@@ -257,6 +263,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
$id = $notice->insert();
Event::handle('EndNoticeSave', array($notice));
}
+
}
if (!Notice_inbox::pkeyGet(array('notice_id' => $notice->id,
@@ -270,7 +277,12 @@ class TwitterStatusFetcher extends ParallelizingDaemon
$inbox->source = NOTICE_INBOX_SOURCE_GATEWAY; // From a private source
$inbox->insert();
+
}
+
+ $notice->blowCaches();
+
+ return $notice;
}
function ensureProfile($user)
From 99b23782ef871d774e0c4abffc3632ea70ee149a Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 15:30:43 -0500
Subject: [PATCH 13/51] let Geonames clients use commercial Web service
---
plugins/GeonamesPlugin.php | 59 ++++++++++++++++++++++++--------------
1 file changed, 37 insertions(+), 22 deletions(-)
diff --git a/plugins/GeonamesPlugin.php b/plugins/GeonamesPlugin.php
index 340a6f0bfa..fdbf79e413 100644
--- a/plugins/GeonamesPlugin.php
+++ b/plugins/GeonamesPlugin.php
@@ -51,6 +51,10 @@ class GeonamesPlugin extends Plugin
{
const LOCATION_NS = 1;
+ public $host = 'ws.geonames.org';
+ public $username = null;
+ public $token = null;
+
/**
* convert a name into a Location object
*
@@ -75,12 +79,11 @@ class GeonamesPlugin extends Plugin
// XXX: break down a name by commas, narrow by each
- $str = http_build_query(array('maxRows' => 1,
- 'q' => $name,
- 'lang' => $language,
- 'type' => 'json'));
-
- $result = $client->get('http://ws.geonames.org/search?'.$str);
+ $result = $client->get($this->wsUrl('search',
+ array('maxRows' => 1,
+ 'q' => $name,
+ 'lang' => $language,
+ 'type' => 'json')));
if ($result->isOk()) {
$rj = json_decode($result->getBody());
@@ -135,10 +138,9 @@ class GeonamesPlugin extends Plugin
$client = HTTPClient::start();
- $str = http_build_query(array('geonameId' => $id,
- 'lang' => $language));
-
- $result = $client->get('http://ws.geonames.org/hierarchyJSON?'.$str);
+ $result = $client->get($this->wsUrl('hierarchyJSON',
+ array('geonameId' => $id,
+ 'lang' => $language)));
if ($result->isOk()) {
@@ -205,12 +207,11 @@ class GeonamesPlugin extends Plugin
$client = HTTPClient::start();
- $str = http_build_query(array('lat' => $lat,
- 'lng' => $lon,
- 'lang' => $language));
-
$result =
- $client->get('http://ws.geonames.org/findNearbyPlaceNameJSON?'.$str);
+ $client->get($this->wsUrl('findNearbyPlaceNameJSON',
+ array('lat' => $lat,
+ 'lng' => $lon,
+ 'lang' => $language)));
if ($result->isOk()) {
@@ -286,10 +287,9 @@ class GeonamesPlugin extends Plugin
$client = HTTPClient::start();
- $str = http_build_query(array('geonameId' => $location->location_id,
- 'lang' => $language));
-
- $result = $client->get('http://ws.geonames.org/hierarchyJSON?'.$str);
+ $result = $client->get($this->wsUrl('hierarchyJSON',
+ array('geonameId' => $location->location_id,
+ 'lang' => $language)));
if ($result->isOk()) {
@@ -376,7 +376,7 @@ class GeonamesPlugin extends Plugin
{
$c = common_memcache();
- if (!$c) {
+ if (empty($c)) {
return null;
}
@@ -387,7 +387,7 @@ class GeonamesPlugin extends Plugin
{
$c = common_memcache();
- if (!$c) {
+ if (empty($c)) {
return null;
}
@@ -398,7 +398,7 @@ class GeonamesPlugin extends Plugin
{
$c = common_memcache();
- if (!$c) {
+ if (empty($c)) {
return null;
}
@@ -411,4 +411,19 @@ class GeonamesPlugin extends Plugin
implode(',', array_keys($attrs)) . ':'.
common_keyize(implode(',', array_values($attrs))));
}
+
+ function wsUrl($method, $params)
+ {
+ if (!empty($this->username)) {
+ $params['username'] = $this->username;
+ }
+
+ if (!empty($this->token)) {
+ $params['token'] = $this->token;
+ }
+
+ $str = http_build_query($params);
+
+ return 'http://'.$this->host.'/'.$method.'?'.$str;
+ }
}
From e074fe659903cb6cbd3dace96889f34a8c8796c9 Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 15:34:25 -0500
Subject: [PATCH 14/51] add logging utilities to Plugin class
---
lib/plugin.php | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/lib/plugin.php b/lib/plugin.php
index 87d7be5a75..2c77c3e120 100644
--- a/lib/plugin.php
+++ b/lib/plugin.php
@@ -76,4 +76,14 @@ class Plugin
{
return true;
}
+
+ protected function log($level, $msg)
+ {
+ common_log($level, get_class($this) . ': '.$msg);
+ }
+
+ protected function debug($msg)
+ {
+ $this->log(LOG_DEBUG, $msg);
+ }
}
From 41f10b742c4c3c21a8783050c6bb55dad17f050d Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 15:34:41 -0500
Subject: [PATCH 15/51] remove duplicate log() function from RealtimePlugin
---
plugins/Realtime/RealtimePlugin.php | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php
index cbfa6bae00..030df405b0 100644
--- a/plugins/Realtime/RealtimePlugin.php
+++ b/plugins/Realtime/RealtimePlugin.php
@@ -120,7 +120,7 @@ class RealtimePlugin extends Plugin
function onEndShowStatusNetStyles($action)
{
- $action->cssLink(common_path('plugins/Realtime/realtimeupdate.css'),
+ $action->cssLink(common_path('plugins/Realtime/realtimeupdate.css'),
null, 'screen, projection, tv');
return true;
}
@@ -293,13 +293,6 @@ class RealtimePlugin extends Plugin
return $tags;
}
- // Push this up to Plugin
-
- function log($level, $msg)
- {
- common_log($level, get_class($this) . ': '.$msg);
- }
-
function _getScripts()
{
return array('plugins/Realtime/realtimeupdate.js',
From eb0a5977ff7e325022d460ae3cf540f3415bd33d Mon Sep 17 00:00:00 2001
From: Zach Copley
Date: Fri, 4 Dec 2009 20:39:50 +0000
Subject: [PATCH 16/51] Don't try to broadcast the notice if something went
wrong.
---
plugins/TwitterBridge/daemons/twitterstatusfetcher.php | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
index d8901f47ba..b4ca12be23 100755
--- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
+++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php
@@ -213,7 +213,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon
$notice = $this->saveStatus($status, $flink);
- common_broadcast_notice($notice);
+ if (!empty($notice)) {
+ common_broadcast_notice($notice);
+ }
}
// Okay, record the time we synced with Twitter for posterity
From 098426cee901d264332c0ad0dd2155d30487d35f Mon Sep 17 00:00:00 2001
From: Evan Prodromou
Date: Fri, 4 Dec 2009 16:25:05 -0500
Subject: [PATCH 17/51] configurable expiry for cached Geonames data defaults
to 90 days
---
plugins/GeonamesPlugin.php | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/plugins/GeonamesPlugin.php b/plugins/GeonamesPlugin.php
index fdbf79e413..a750f12426 100644
--- a/plugins/GeonamesPlugin.php
+++ b/plugins/GeonamesPlugin.php
@@ -54,6 +54,7 @@ class GeonamesPlugin extends Plugin
public $host = 'ws.geonames.org';
public $username = null;
public $token = null;
+ public $expiry = 7776000; // 90-day expiry
/**
* convert a name into a Location object
@@ -197,6 +198,9 @@ class GeonamesPlugin extends Plugin
function onLocationFromLatLon($lat, $lon, $language, &$location)
{
+ $lat = rtrim($lat, "0");
+ $lon = rtrim($lon, "0");
+
$loc = $this->getCache(array('lat' => $lat,
'lon' => $lon));
@@ -380,7 +384,11 @@ class GeonamesPlugin extends Plugin
return null;
}
- return $c->get($this->cacheKey($attrs));
+ $key = $this->cacheKey($attrs);
+
+ $value = $c->get($key);
+
+ return $value;
}
function setCache($attrs, $loc)
@@ -391,18 +399,11 @@ class GeonamesPlugin extends Plugin
return null;
}
- $c->set($this->cacheKey($attrs), $loc);
- }
+ $key = $this->cacheKey($attrs);
- function clearCache($attrs)
- {
- $c = common_memcache();
+ $result = $c->set($key, $loc, 0, time() + $this->expiry);
- if (empty($c)) {
- return null;
- }
-
- $c->delete($this->cacheKey($attrs));
+ return $result;
}
function cacheKey($attrs)
From 4881be47c798688c3ae20f621d06e15adbc9c17e Mon Sep 17 00:00:00 2001
From: Zach Copley
Date: Fri, 4 Dec 2009 22:40:07 +0000
Subject: [PATCH 18/51] Don't depend on a User being available when looking up
Design and timezone for a profile (because some profiles are remote, etc.)
---
lib/api.php | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/lib/api.php b/lib/api.php
index 5a3bb5ee45..eacb80dbea 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -134,19 +134,17 @@ class ApiAction extends Action
$twitter_user['protected'] = false; # not supported by StatusNet yet
$twitter_user['followers_count'] = $profile->subscriberCount();
- $design = null;
$user = $profile->getUser();
+ $design = null;
// Note: some profiles don't have an associated user
+ $defaultDesign = Design::siteDesign();
+
if (!empty($user)) {
$design = $user->getDesign();
}
- if (empty($design)) {
- $design = Design::siteDesign();
- }
-
$color = Design::toWebColor(empty($design->backgroundcolor) ? $defaultDesign->backgroundcolor : $design->backgroundcolor);
$twitter_user['profile_background_color'] = ($color == null) ? '' : '#'.$color->hexValue();
$color = Design::toWebColor(empty($design->textcolor) ? $defaultDesign->textcolor : $design->textcolor);
@@ -165,7 +163,7 @@ class ApiAction extends Action
$timezone = 'UTC';
- if ($user->timezone) {
+ if (!empty($user) && !empty($user->timezone)) {
$timezone = $user->timezone;
}
From 4c8bed8ba0558c5834621331f253e05029fa4e43 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 19:41:51 -0500
Subject: [PATCH 19/51] Use inlineScript() everywhere inline scripts are
written
---
lib/messageform.php | 3 +--
lib/noticeform.php | 3 +--
plugins/Facebook/FacebookPlugin.php | 4 +---
plugins/GoogleAnalyticsPlugin.php | 8 ++------
plugins/PiwikAnalyticsPlugin.php | 15 +++++----------
plugins/Realtime/RealtimePlugin.php | 6 +-----
plugins/UserFlag/UserFlagPlugin.php | 4 +---
7 files changed, 12 insertions(+), 31 deletions(-)
diff --git a/lib/messageform.php b/lib/messageform.php
index b034be3122..4df193c6d1 100644
--- a/lib/messageform.php
+++ b/lib/messageform.php
@@ -154,8 +154,7 @@ class MessageForm extends Form
$contentLimit = Message::maxContent();
- $this->out->element('script', array('type' => 'text/javascript'),
- 'maxLength = ' . $contentLimit . ';');
+ $this->out->inlineScript('maxLength = ' . $contentLimit . ';');
if ($contentLimit > 0) {
$this->out->elementStart('dl', 'form_note');
diff --git a/lib/noticeform.php b/lib/noticeform.php
index ec8624597e..0dd3f2d777 100644
--- a/lib/noticeform.php
+++ b/lib/noticeform.php
@@ -178,8 +178,7 @@ class NoticeForm extends Form
$contentLimit = Notice::maxContent();
- $this->out->element('script', array('type' => 'text/javascript'),
- 'maxLength = ' . $contentLimit . ';');
+ $this->out->inlineScript('maxLength = ' . $contentLimit . ';');
if ($contentLimit > 0) {
$this->out->elementStart('dl', 'form_note');
diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php
index 047477d9cb..40c911cce3 100644
--- a/plugins/Facebook/FacebookPlugin.php
+++ b/plugins/Facebook/FacebookPlugin.php
@@ -185,7 +185,6 @@ class FacebookPlugin extends Plugin
// XXX: Facebook says we don't need this FB_RequireFeatures(),
// but we actually do, for IE and Safari. Gar.
- $js = '';
$js = sprintf($js, $apikey, $login_url, $logout_url);
@@ -227,7 +225,7 @@ class FacebookPlugin extends Plugin
$js = str_replace(' ', '', $js);
- $action->raw(" $js"); // leading two spaces to make it line up
+ $action->inlineScript($js);
}
}
diff --git a/plugins/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalyticsPlugin.php
index 7f3d209ee6..6891ee6a7b 100644
--- a/plugins/GoogleAnalyticsPlugin.php
+++ b/plugins/GoogleAnalyticsPlugin.php
@@ -67,11 +67,7 @@ class GoogleAnalyticsPlugin extends Plugin
'pageTracker._trackPageview();'.
'} catch(err) {}',
$this->code);
- $action->elementStart('script', array('type' => 'text/javascript'));
- $action->raw($js1);
- $action->elementEnd('script');
- $action->elementStart('script', array('type' => 'text/javascript'));
- $action->raw($js2);
- $action->elementEnd('script');
+ $action->inlineScript($js1);
+ $action->inlineScript($js2);
}
}
diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalyticsPlugin.php
index 54faa0bdbe..fefd098671 100644
--- a/plugins/PiwikAnalyticsPlugin.php
+++ b/plugins/PiwikAnalyticsPlugin.php
@@ -81,25 +81,20 @@ class PiwikAnalyticsPlugin extends Plugin
function onEndShowScripts($action)
{
- $piwikCode = <<
-
-
-
-
ENDOFPIWIK;
- $action->raw($piwikCode);
+ $action->inlineScript($piwikCode1);
+ $action->inlineScript($piwikCode2);
return true;
}
}
diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php
index 030df405b0..3e33fdaf19 100644
--- a/plugins/Realtime/RealtimePlugin.php
+++ b/plugins/Realtime/RealtimePlugin.php
@@ -105,15 +105,11 @@ class RealtimePlugin extends Plugin
$realtimeUI = ' RealtimeUpdate.initActions("'.$url.'", "'.$timeline.'", "'. $pluginPath .'");';
}
- $action->elementStart('script', array('type' => 'text/javascript'));
-
$script = ' $(document).ready(function() { '.
$realtimeUI.
$this->_updateInitialize($timeline, $user_id).
'}); ';
- $action->raw($script);
-
- $action->elementEnd('script');
+ $action->inlineScript($script);
return true;
}
diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php
index e13c2555aa..75dcca4fcb 100644
--- a/plugins/UserFlag/UserFlagPlugin.php
+++ b/plugins/UserFlag/UserFlagPlugin.php
@@ -145,9 +145,7 @@ class UserFlagPlugin extends Plugin
function onEndShowScripts($action)
{
- $action->elementStart('script', array('type' => 'text/javascript'));
- $action->raw('/* 0) { SN.U.FormXHR($(".form_entity_flag")); } /*]]>*/');
- $action->elementEnd('script');
+ $action->inlineScript('if ($(".form_entity_flag").length > 0) { SN.U.FormXHR($(".form_entity_flag")); }');
return true;
}
}
From 847013db692303cde10f5f161d9fedd787421a37 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 19:44:45 -0500
Subject: [PATCH 20/51] only write the javascript CDATA blocks if the type is
javascript (it's not the correct syntax for other languages)
---
lib/htmloutputter.php | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index a0066594f2..539e356e82 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -367,7 +367,7 @@ class HTMLOutputter extends XMLOutputter
* output a script (almost always javascript) tag with inline
* code.
*
- * @param string $code relative or absolute script path
+ * @param string $code code to put in the script tag
* @param string $type 'type' attribute value of the tag
*
* @return void
@@ -376,9 +376,13 @@ class HTMLOutputter extends XMLOutputter
function inlineScript($code, $type='text/javascript')
{
$this->elementStart('script', array('type' => $type));
- $this->raw('/*raw('/*raw($code);
- $this->raw(' /*]]>*/'); // XHTML compat for Safari
+ if($type == 'text/javascript') {
+ $this->raw(' /*]]>*/'); // XHTML compat
+ }
$this->elementEnd('script');
}
From 7ddf911f5d54ba4997b3d237ae7cd1effb74a120 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 19:51:44 -0500
Subject: [PATCH 21/51] Add 2 new events: StartInlineScriptElement and
EndInlineScriptElement
---
EVENTS.txt | 10 ++++++++++
lib/htmloutputter.php | 19 +++++++++++--------
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/EVENTS.txt b/EVENTS.txt
index f4ec620338..678df8b0ae 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -595,3 +595,13 @@ EndScriptElement: After a element is written
- $action
- $src
- $type
+
+StartInlineScriptElement: Before a element is written
+- $action
+- &$code
+- &$type
+
+EndInlineScriptElement: After a element is written
+- $action
+- $code
+- $type
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index 539e356e82..0c2d18da32 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -375,15 +375,18 @@ class HTMLOutputter extends XMLOutputter
function inlineScript($code, $type='text/javascript')
{
- $this->elementStart('script', array('type' => $type));
- if($type == 'text/javascript') {
- $this->raw('/*elementStart('script', array('type' => $type));
+ if($type == 'text/javascript') {
+ $this->raw('/*raw($code);
+ if($type == 'text/javascript') {
+ $this->raw(' /*]]>*/'); // XHTML compat
+ }
+ $this->elementEnd('script');
+ Event::handle('EndInlineScriptElement', array($this,$code,$type));
}
- $this->raw($code);
- if($type == 'text/javascript') {
- $this->raw(' /*]]>*/'); // XHTML compat
- }
- $this->elementEnd('script');
}
/**
From b3086d3c68ed2d3ceff3ce8fc91a867fc07c441a Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 20:19:55 -0500
Subject: [PATCH 22/51] Add style function to output style() tags Add 2 new
events: StartStyleElement and EndStyleElement
---
EVENTS.txt | 12 ++++++++++++
lib/htmloutputter.php | 21 +++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/EVENTS.txt b/EVENTS.txt
index 678df8b0ae..a056aa0a1e 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -586,6 +586,18 @@ EndCssLinkElement: After a element is written
- $theme
- $media
+StartStyleElement: Before a element is written
+- $action
+- &$code
+- &$type
+- &$media
+
+EndStyleElement: After a element is written
+- $action
+- $code
+- $type
+- $media
+
StartScriptElement: Before a element is written
- $action
- &$src
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index 0c2d18da32..a88a5b82c5 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -418,6 +418,27 @@ class HTMLOutputter extends XMLOutputter
}
}
+ /**
+ * output a style (almost always css) tag with inline
+ * code.
+ *
+ * @param string $code code to put in the style tag
+ * @param string $type 'type' attribute value of the tag
+ * @param string $media 'media' attribute value of the tag
+ *
+ * @return void
+ */
+
+ function style($code, $type = 'text/css', $media = null)
+ {
+ if(Event::handle('StartStyleElement', array($this,&$code,&$type,&$media))) {
+ $this->elementStart('style', array('type' => $type, 'media' => $media));
+ $this->raw($code);
+ $this->elementEnd('style');
+ Event::handle('EndStyleElement', array($this,$code,$type,$media));
+ }
+ }
+
/**
* output an HTML textarea and associated elements
*
From d31b1d774e5fcbb424ec60688ff4c76badc2b136 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 20:20:44 -0500
Subject: [PATCH 23/51] use the new htmloutputter->style() function
---
classes/Design.php | 2 +-
plugins/Recaptcha/RecaptchaPlugin.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/classes/Design.php b/classes/Design.php
index 89ae50c8cb..4e7d7dfb25 100644
--- a/classes/Design.php
+++ b/classes/Design.php
@@ -101,7 +101,7 @@ class Design extends Memcached_DataObject
}
if (0 != mb_strlen($css)) {
- $out->element('style', array('type' => 'text/css'), $css);
+ $out->style($css);
}
}
diff --git a/plugins/Recaptcha/RecaptchaPlugin.php b/plugins/Recaptcha/RecaptchaPlugin.php
index 1a51b16beb..3a510ef11c 100644
--- a/plugins/Recaptcha/RecaptchaPlugin.php
+++ b/plugins/Recaptcha/RecaptchaPlugin.php
@@ -69,7 +69,7 @@ class RecaptchaPlugin extends Plugin
$action->startXML('html');
- $action->raw('');
+ $action->style('#recaptcha_area{float:left;}');
return false;
}
From 675e32ac9ac1bdcfbb6e293eb363d2b592140ae7 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 20:21:05 -0500
Subject: [PATCH 24/51] use cssLink() instead of element() to write out
references to CSS
---
plugins/MobileProfile/MobileProfilePlugin.php | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php
index 0b1e4de286..8b5e5f31da 100644
--- a/plugins/MobileProfile/MobileProfilePlugin.php
+++ b/plugins/MobileProfile/MobileProfilePlugin.php
@@ -243,19 +243,13 @@ class MobileProfilePlugin extends WAP20Plugin
if (file_exists(Theme::file('css/mp-screen.css'))) {
$action->cssLink('css/mp-screen.css', null, 'screen');
} else {
- $action->element('link', array('rel' => 'stylesheet',
- 'type' => 'text/css',
- 'href' => common_path('plugins/MobileProfile/mp-screen.css') . '?version=' . STATUSNET_VERSION,
- 'media' => 'screen'));
+ $action->cssLink('plugins/MobileProfile/mp-screen.css',null,'screen');
}
if (file_exists(Theme::file('css/mp-handheld.css'))) {
$action->cssLink('css/mp-handheld.css', null, 'handheld');
} else {
- $action->element('link', array('rel' => 'stylesheet',
- 'type' => 'text/css',
- 'href' => common_path('plugins/MobileProfile/mp-handheld.css') . '?version=' . STATUSNET_VERSION,
- 'media' => 'handheld'));
+ $action->cssLink('plugins/MobileProfile/mp-handheld.css',null,'handheld');
}
return false;
From d41a0a5ed03b2f4bbf8e8b3984960103383090d1 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 20:33:41 -0500
Subject: [PATCH 25/51] Use inlineScript() instead of element() to write inline
javascript
---
lib/htmloutputter.php | 7 ++-----
plugins/MobileProfile/MobileProfilePlugin.php | 3 +--
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index a88a5b82c5..cf93944e76 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -477,13 +477,10 @@ class HTMLOutputter extends XMLOutputter
*/
function autofocus($id)
{
- $this->elementStart('script', array('type' => 'text/javascript'));
- $this->raw('/*inlineScript(
' $(document).ready(function() {'.
' var el = $("#' . $id . '");'.
' if (el.length) { el.focus(); }'.
- ' });'.
- ' /*]]>*/');
- $this->elementEnd('script');
+ ' });');
}
}
diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php
index 8b5e5f31da..35678bedd3 100644
--- a/plugins/MobileProfile/MobileProfilePlugin.php
+++ b/plugins/MobileProfile/MobileProfilePlugin.php
@@ -352,8 +352,7 @@ class MobileProfilePlugin extends WAP20Plugin
$contentLimit = Notice::maxContent();
- $form->out->element('script', array('type' => 'text/javascript'),
- 'maxLength = ' . $contentLimit . ';');
+ $form->out->inlineScript('maxLength = ' . $contentLimit . ';');
if ($contentLimit > 0) {
$form->out->element('div', array('id' => 'notice_text-count'),
From fa6675550885e005f6a69dfd317320dff6c4a3cd Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 22:05:18 -0500
Subject: [PATCH 26/51] Append the StatusNet version to all local, static CSS
references
---
lib/htmloutputter.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index cf93944e76..fd448ced5e 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -405,10 +405,11 @@ class HTMLOutputter extends XMLOutputter
if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
{
if(file_exists(Theme::file($src,$theme))){
- $src = Theme::path($src, $theme) . '?version=' . STATUSNET_VERSION;
+ $src = Theme::path($src, $theme);
}else{
$src = common_path($src);
}
+ $src.= '?version=' . STATUSNET_VERSION;
}
$this->element('link', array('rel' => 'stylesheet',
'type' => 'text/css',
From f4fc8481e24ce4bd7714022109d75b2a22198fdf Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 23:17:19 -0500
Subject: [PATCH 27/51] Separate out some common code
---
plugins/Minify/minify.php | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/Minify/minify.php b/plugins/Minify/minify.php
index 2de2d6d26f..f8c17767c3 100644
--- a/plugins/Minify/minify.php
+++ b/plugins/Minify/minify.php
@@ -33,6 +33,7 @@ class MinifyAction extends Action
const cacheKey = 'minify';
var $file;
+ var $v;
function isReadOnly($args)
{
@@ -80,13 +81,14 @@ class MinifyAction extends Action
$c = common_memcache();
if (!empty($c)) {
- $out = $c->get(common_cache_key(self::cacheKey . ':' . $this->file));
+ $cacheKey = common_cache_key(self::cacheKey . ':' . $this->file . '?v=' . empty($this->v)?'':$this->v);
+ $out = $c->get($cacheKey);
}
if(empty($out)) {
$out = $this->minify($this->file);
}
if (!empty($c)) {
- $c->set(common_cache_key(self::cacheKey . ':' . $this->file), $out);
+ $c->set($cacheKey, $out);
}
$sec = session_cache_expire() * 60;
From 88e50003ae7840358c2a520c6cb808231b958769 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Fri, 4 Dec 2009 23:17:46 -0500
Subject: [PATCH 28/51] If a theme server is being used, do not minify theme
CSS (as doing so could cause 404s)
---
plugins/Minify/MinifyPlugin.php | 26 ++++++++++++++++++--------
plugins/Minify/README | 5 +++--
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/plugins/Minify/MinifyPlugin.php b/plugins/Minify/MinifyPlugin.php
index 4d37fbc708..77fd76a849 100644
--- a/plugins/Minify/MinifyPlugin.php
+++ b/plugins/Minify/MinifyPlugin.php
@@ -79,23 +79,33 @@ class MinifyPlugin extends Plugin
$url = parse_url($src);
if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
{
- $src = common_path('main/min?f='.$src.'&v=' . STATUSNET_VERSION);
+ $src = $this->minifyUrl($src);
}
}
function onStartCssLinkElement($action,&$src,&$theme,&$media) {
+ $allowThemeMinification =
+ is_null(common_config('theme', 'dir'))
+ && is_null(common_config('theme', 'path'))
+ && is_null(common_config('theme', 'server'));
$url = parse_url($src);
if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
{
- if(file_exists(Theme::file($src,$theme))){
- //src is a relative path, so we can do minification
- if(isset($theme)) {
- $src = common_path('main/min?f=theme/'.$theme.'/'.$src.'&v=' . STATUSNET_VERSION);
- } else {
- $src = common_path('main/min?f=theme/default/'.$src.'&v=' . STATUSNET_VERSION);
- }
+ if(!isset($theme)) {
+ $theme = common_config('site', 'theme');
+ }
+ if($allowThemeMinification && file_exists(INSTALLDIR.'/local/theme/'.$theme.'/'.$src)) {
+ $src = $this->minifyUrl('local/theme/'.$theme.'/'.$src);
+ } else if($allowThemeMinification && file_exists(INSTALLDIR.'/theme/'.$theme.'/'.$src)) {
+ $src = $this->minifyUrl('theme/'.$theme.'/'.$src);
+ }else if(file_exists(INSTALLDIR.'/'.$src)){
+ $src = $this->minifyUrl($src);
}
}
}
+
+ function minifyUrl($src) {
+ return common_local_url('minify',null,array('f' => $src ,v => STATUSNET_VERSION));
+ }
}
diff --git a/plugins/Minify/README b/plugins/Minify/README
index 7fb7e239a3..8f2eefa2c7 100644
--- a/plugins/Minify/README
+++ b/plugins/Minify/README
@@ -1,7 +1,8 @@
The Minify plugin minifies your CSS and Javascript, removing whitespace and comments.
-Note that if enabled this plugin and use a theme server
- ($config['theme']['server']), your theme server will not be used.
+Note that if enabled this plugin and use a theme server,
+ (if any of $config['theme']['server'], $config['theme']['path'],
+ $config['theme']['dir'] are set) theme CSS will not be minified.
Installation
============
From c08d7f1aa4ac235f524da3994c2f1aef3b0fd079 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 00:41:22 -0500
Subject: [PATCH 29/51] Minify inline JS and CSS (can be disable in
configuration)
---
plugins/Minify/MinifyPlugin.php | 57 +++++++++++++++++++++++++++++++++
plugins/Minify/README | 15 ++++++++-
plugins/Minify/minify.php | 13 ++------
3 files changed, 74 insertions(+), 11 deletions(-)
diff --git a/plugins/Minify/MinifyPlugin.php b/plugins/Minify/MinifyPlugin.php
index 77fd76a849..71fade19a5 100644
--- a/plugins/Minify/MinifyPlugin.php
+++ b/plugins/Minify/MinifyPlugin.php
@@ -33,8 +33,15 @@ Author URI: http://candrews.integralblue.com/
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+// We bundle the minify library...
+set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/minify/min/lib');
+
class MinifyPlugin extends Plugin
{
+ private $minifyInlineJs = true;
+ private $minifyInlineCss = true;
+
+ const cacheKey = 'minify';
/**
* Add Minification related paths to the router table
@@ -104,8 +111,58 @@ class MinifyPlugin extends Plugin
}
}
+ function onStartInlineScriptElement($action,&$code,&$type)
+ {
+ if($this->minifyInlineJs && $type=='text/javascript'){
+ $c = common_memcache();
+ if (!empty($c)) {
+ $cacheKey = common_cache_key(self::cacheKey . ':' . crc32($code));
+ $out = $c->get($cacheKey);
+ }
+ if(empty($out)) {
+ $out = $this->minifyJs($code);
+ }
+ if (!empty($c)) {
+ $c->set($cacheKey, $out);
+ }
+ if(!empty($out)) {
+ $code = $out;
+ }
+ }
+ }
+
+ function onStartStyleElement($action,&$code,&$type,&$media)
+ {
+ if($this->minifyInlineCss && $type=='text/css'){
+ $c = common_memcache();
+ if (!empty($c)) {
+ $cacheKey = common_cache_key(self::cacheKey . ':' . crc32($code));
+ $out = $c->get($cacheKey);
+ }
+ if(empty($out)) {
+ $out = $this->minifyCss($code);
+ }
+ if (!empty($c)) {
+ $c->set($cacheKey, $out);
+ }
+ if(!empty($out)) {
+ $code = $out;
+ }
+ }
+ }
+
function minifyUrl($src) {
return common_local_url('minify',null,array('f' => $src ,v => STATUSNET_VERSION));
}
+
+ static function minifyJs($code) {
+ require_once('JSMin.php');
+ return JSMin::minify($code);
+ }
+
+ static function minifyCss($code, $options = array()) {
+ require_once('Minify/CSS.php');
+ return Minify_CSS::minify($code,$options);
+ }
}
diff --git a/plugins/Minify/README b/plugins/Minify/README
index 8f2eefa2c7..f7763735ed 100644
--- a/plugins/Minify/README
+++ b/plugins/Minify/README
@@ -4,6 +4,10 @@ Note that if enabled this plugin and use a theme server,
(if any of $config['theme']['server'], $config['theme']['path'],
$config['theme']['dir'] are set) theme CSS will not be minified.
+This plugin will use memcache, if it is available, for storing minified inline
+ and file javascript and css. Because minification is non-trivial, using
+ memcache is recommended.
+
Installation
============
add "addPlugin('minify',
@@ -12,7 +16,16 @@ to the bottom of your config.php
Settings
========
-None at the moment
+minifyInlineJs (true): Minify inline javascript.
+ Because caching isn'tas effective for inline resources (due to its more
+ dynamic nature) than static files, minifying inline resources may adversely
+ affect performance for higher volume sites. Testing (and memcache usage)
+ are highly recommended.
+minifyInlineCss (true): Minify inline CSS.
+ Because caching isn'tas effective for inline resources (due to its more
+ dynamic nature) than static files, minifying inline resources may adversely
+ affect performance for higher volume sites. Testing (and memcache usage)
+ are highly recommended.
Example
=======
diff --git a/plugins/Minify/minify.php b/plugins/Minify/minify.php
index f8c17767c3..64727f5e7e 100644
--- a/plugins/Minify/minify.php
+++ b/plugins/Minify/minify.php
@@ -19,9 +19,6 @@
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-// We bundle the minify library...
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/minify/min/lib');
-
class MinifyAction extends Action
{
const TYPE_CSS = 'text/css';
@@ -30,8 +27,6 @@ class MinifyAction extends Action
// Apache default and what Yahoo! uses..
const TYPE_JS = 'application/x-javascript';
- const cacheKey = 'minify';
-
var $file;
var $v;
@@ -81,7 +76,7 @@ class MinifyAction extends Action
$c = common_memcache();
if (!empty($c)) {
- $cacheKey = common_cache_key(self::cacheKey . ':' . $this->file . '?v=' . empty($this->v)?'':$this->v);
+ $cacheKey = common_cache_key(MinifyPlugin::cacheKey . ':' . $this->file . '?v=' . empty($this->v)?'':$this->v);
$out = $c->get($cacheKey);
}
if(empty($out)) {
@@ -102,16 +97,14 @@ class MinifyAction extends Action
$info = pathinfo($file);
switch(strtolower($info['extension'])){
case 'js':
- require_once('JSMin.php');
- $out = JSMin::minify(file_get_contents($file));
+ $out = MinifyPlugin::minifyJs(file_get_contents($file));
header('Content-Type: ' . self::TYPE_JS);
break;
case 'css':
- require_once('Minify/CSS.php');
$options = array();
$options['currentDir'] = dirname($file);
$options['docRoot'] = INSTALLDIR;
- $out = Minify_CSS::minify(file_get_contents($file),$options);
+ $out = MinifyPlugin::minifyCss(file_get_contents($file),$options);
header('Content-Type: ' . self::TYPE_CSS);
break;
default:
From 51f0dd5e37db0e8d2a8690655555d399249942df Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 01:03:04 -0500
Subject: [PATCH 30/51] Add configuration option to toggle the indenting of the
output HTML. Defaults to indent enabled.
---
actions/twitapisearchatom.php | 2 +-
config.php.sample | 5 +++++
lib/action.php | 2 +-
lib/default.php | 1 +
lib/error.php | 2 +-
lib/htmloutputter.php | 2 +-
lib/rssaction.php | 2 +-
lib/xmloutputter.php | 5 ++++-
plugins/Facebook/facebookaction.php | 2 +-
plugins/Facebook/facebookutil.php | 2 +-
10 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/actions/twitapisearchatom.php b/actions/twitapisearchatom.php
index 526ca2ae8b..1cb8d7efe6 100644
--- a/actions/twitapisearchatom.php
+++ b/actions/twitapisearchatom.php
@@ -71,7 +71,7 @@ class TwitapisearchatomAction extends ApiAction
* @see Action::__construct
*/
- function __construct($output='php://output', $indent=true)
+ function __construct($output='php://output', $indent=null)
{
parent::__construct($output, $indent);
}
diff --git a/config.php.sample b/config.php.sample
index 9fccb84f3b..473eb74e2c 100644
--- a/config.php.sample
+++ b/config.php.sample
@@ -236,6 +236,11 @@ $config['sphinx']['port'] = 3312;
// Use a different hostname for SSL-encrypted pages
// $config['site']['sslserver'] = 'secure.example.org';
+// Indent HTML and XML
+// Enable (default) for easier to read markup for developers,
+// disable to save some bandwidth.
+// $config['site']['indent'] = true;
+
// If you have a lot of status networks on the same server, you can
// store the site data in a database and switch as follows
// Status_network::setupDB('localhost', 'statusnet', 'statuspass', 'statusnet');
diff --git a/lib/action.php b/lib/action.php
index 8ad3917550..87d8a43993 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -68,7 +68,7 @@ class Action extends HTMLOutputter // lawsuit
* @see XMLOutputter::__construct
* @see HTMLOutputter::__construct
*/
- function __construct($output='php://output', $indent=true)
+ function __construct($output='php://output', $indent=null)
{
parent::__construct($output, $indent);
}
diff --git a/lib/default.php b/lib/default.php
index d4ef045ea5..db90aeca3e 100644
--- a/lib/default.php
+++ b/lib/default.php
@@ -53,6 +53,7 @@ $default =
'shorturllength' => 30,
'dupelimit' => 60, # default for same person saying the same thing
'textlimit' => 140,
+ 'indent' => true,
),
'db' =>
array('database' => 'YOU HAVE TO SET THIS IN config.php',
diff --git a/lib/error.php b/lib/error.php
index 3162cfe656..87a4d913b4 100644
--- a/lib/error.php
+++ b/lib/error.php
@@ -50,7 +50,7 @@ class ErrorAction extends Action
var $message = null;
var $default = null;
- function __construct($message, $code, $output='php://output', $indent=true)
+ function __construct($message, $code, $output='php://output', $indent=null)
{
parent::__construct($output, $indent);
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php
index fd448ced5e..2091c6e2ca 100644
--- a/lib/htmloutputter.php
+++ b/lib/htmloutputter.php
@@ -67,7 +67,7 @@ class HTMLOutputter extends XMLOutputter
* @param boolean $indent Whether to indent output, default true
*/
- function __construct($output='php://output', $indent=true)
+ function __construct($output='php://output', $indent=null)
{
parent::__construct($output, $indent);
}
diff --git a/lib/rssaction.php b/lib/rssaction.php
index d591c99ed8..62e3f21b61 100644
--- a/lib/rssaction.php
+++ b/lib/rssaction.php
@@ -52,7 +52,7 @@ class Rss10Action extends Action
* @see Action::__construct
*/
- function __construct($output='php://output', $indent=true)
+ function __construct($output='php://output', $indent=null)
{
parent::__construct($output, $indent);
}
diff --git a/lib/xmloutputter.php b/lib/xmloutputter.php
index 5f06e491df..15b18e7d90 100644
--- a/lib/xmloutputter.php
+++ b/lib/xmloutputter.php
@@ -67,10 +67,13 @@ class XMLOutputter
* @param boolean $indent Whether to indent output, default true
*/
- function __construct($output='php://output', $indent=true)
+ function __construct($output='php://output', $indent=null)
{
$this->xw = new XMLWriter();
$this->xw->openURI($output);
+ if(is_null($indent)) {
+ $indent = common_config('site', 'indent');
+ }
$this->xw->setIndent($indent);
}
diff --git a/plugins/Facebook/facebookaction.php b/plugins/Facebook/facebookaction.php
index c852bbf5e6..b090e9bd9a 100644
--- a/plugins/Facebook/facebookaction.php
+++ b/plugins/Facebook/facebookaction.php
@@ -44,7 +44,7 @@ class FacebookAction extends Action
var $app_uri = null;
var $app_name = null;
- function __construct($output='php://output', $indent=true, $facebook=null, $flink=null)
+ function __construct($output='php://output', $indent=null, $facebook=null, $flink=null)
{
parent::__construct($output, $indent);
diff --git a/plugins/Facebook/facebookutil.php b/plugins/Facebook/facebookutil.php
index 6f50c173ad..2abcbb14e2 100644
--- a/plugins/Facebook/facebookutil.php
+++ b/plugins/Facebook/facebookutil.php
@@ -168,7 +168,7 @@ function facebookBroadcastNotice($notice)
function updateProfileBox($facebook, $flink, $notice) {
$fbaction = new FacebookAction($output = 'php://output',
- $indent = true, $facebook, $flink);
+ $indent = null, $facebook, $flink);
$fbaction->updateProfileBox($notice);
}
From 2ab01e040e224943b1b15131a6e51fe6b5d6e580 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 02:11:27 -0500
Subject: [PATCH 31/51] Add 2 new events to enable logger pluginization:
StartLog and EndLog
---
EVENTS.txt | 11 +++++++++++
lib/util.php | 25 ++++++++++++++-----------
2 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/EVENTS.txt b/EVENTS.txt
index a056aa0a1e..e0516f8f45 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -617,3 +617,14 @@ EndInlineScriptElement: After a element is written
- $action
- $code
- $type
+
+StartLog: Before writing to the logs
+- &$priority
+- &$msg
+- &$filename
+
+EndLog: After writing to the logs
+- $priority
+- $msg
+- $filename
+
diff --git a/lib/util.php b/lib/util.php
index ab046e871d..14d6665037 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -1070,18 +1070,21 @@ function common_request_id()
function common_log($priority, $msg, $filename=null)
{
- $msg = '[' . common_request_id() . '] ' . $msg;
- $logfile = common_config('site', 'logfile');
- if ($logfile) {
- $log = fopen($logfile, "a");
- if ($log) {
- $output = common_log_line($priority, $msg);
- fwrite($log, $output);
- fclose($log);
+ if(Event::handle('StartLog', array(&$priority, &$msg, &$filename))){
+ $msg = '[' . common_request_id() . '] ' . $msg;
+ $logfile = common_config('site', 'logfile');
+ if ($logfile) {
+ $log = fopen($logfile, "a");
+ if ($log) {
+ $output = common_log_line($priority, $msg);
+ fwrite($log, $output);
+ fclose($log);
+ }
+ } else {
+ common_ensure_syslog();
+ syslog($priority, $msg);
}
- } else {
- common_ensure_syslog();
- syslog($priority, $msg);
+ Event::handle('EndLog', array($priority, $msg, $filename));
}
}
From 9349d823ee744f4f2f7b9f36c00fc605acb728fd Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 02:13:40 -0500
Subject: [PATCH 32/51] Add FirePHP plugin - uses FirePHP as an output method
for logging
---
plugins/FirePHP/FirePHPPlugin.php | 59 +
plugins/FirePHP/README | 21 +
plugins/FirePHP/extlib/FirePHP/CHANGELOG | 110 ++
plugins/FirePHP/extlib/FirePHP/CREDITS | 12 +
plugins/FirePHP/extlib/FirePHP/README | 32 +
.../FirePHP/lib/FirePHPCore/FirePHP.class.php | 1529 +++++++++++++++++
.../lib/FirePHPCore/FirePHP.class.php4 | 1292 ++++++++++++++
.../extlib/FirePHP/lib/FirePHPCore/LICENSE | 29 +
.../extlib/FirePHP/lib/FirePHPCore/fb.php | 261 +++
.../extlib/FirePHP/lib/FirePHPCore/fb.php4 | 251 +++
10 files changed, 3596 insertions(+)
create mode 100644 plugins/FirePHP/FirePHPPlugin.php
create mode 100644 plugins/FirePHP/README
create mode 100644 plugins/FirePHP/extlib/FirePHP/CHANGELOG
create mode 100644 plugins/FirePHP/extlib/FirePHP/CREDITS
create mode 100644 plugins/FirePHP/extlib/FirePHP/README
create mode 100644 plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php
create mode 100644 plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php4
create mode 100644 plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/LICENSE
create mode 100644 plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php
create mode 100644 plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php4
diff --git a/plugins/FirePHP/FirePHPPlugin.php b/plugins/FirePHP/FirePHPPlugin.php
new file mode 100644
index 0000000000..37b397796e
--- /dev/null
+++ b/plugins/FirePHP/FirePHPPlugin.php
@@ -0,0 +1,59 @@
+
+Author URI: http://candrews.integralblue.com/
+*/
+
+/*
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, 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 .
+ */
+
+/**
+ * @package MinifyPlugin
+ * @maintainer Craig Andrews
+ */
+
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+
+// We bundle the FirePHP library...
+set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/FirePHP/lib');
+
+class FirePHPPlugin extends Plugin
+{
+ private $firephp;
+
+ function onInitializePlugin()
+ {
+ //Output buffering has to be enabled so FirePHP can send the HTTP headers it needs
+ ob_start();
+ require_once('FirePHPCore/FirePHP.class.php');
+ $this->firephp = FirePHP::getInstance(true);
+ }
+
+ function onStartLog(&$priority, &$msg, &$filename)
+ {
+ static $firephp_priorities = array(FirePHP::ERROR, FirePHP::ERROR, FirePHP::ERROR, FirePHP::ERROR,
+ FirePHP::WARN, FirePHP::LOG, FirePHP::LOG, FirePHP::INFO);
+ $priority = $firephp_priorities[$priority];
+ $this->firephp->fb($msg, $priority);
+ }
+}
+
diff --git a/plugins/FirePHP/README b/plugins/FirePHP/README
new file mode 100644
index 0000000000..ee22794d51
--- /dev/null
+++ b/plugins/FirePHP/README
@@ -0,0 +1,21 @@
+The FirePHP writes StatusNet's log output to FirePHP.
+
+Using FirePHP on production sites can expose sensitive information.
+ You must protect the security of your application by disabling FirePHP
+ logging on your live site.
+
+Installation
+============
+add "addPlugin('FirePHP',
+ array('setting'=>'value', 'setting2'=>'value2', ...);"
+to the bottom of your config.php
+
+Settings
+========
+None at the moment.
+
+Example
+=======
+
+addPlugin('FirePHP', array());
+
diff --git a/plugins/FirePHP/extlib/FirePHP/CHANGELOG b/plugins/FirePHP/extlib/FirePHP/CHANGELOG
new file mode 100644
index 0000000000..6191980795
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/CHANGELOG
@@ -0,0 +1,110 @@
+
+2008-06-14 - Release Version: 0.3.1
+
+ - (Issue 108) ignore class name case in object filter
+
+2009-05-11 - Release Version: 0.3
+2009-05-01 - Release Version: 0.3.rc.1
+
+ - (Issue 90) PHP4 compatible version of FirePHPCore
+ - (Issue 98) Thrown exceptions don't send an HTTP 500 if the FirePHP exception handler is enabled
+ - (Issue 85) Support associative arrays in encodeTable method in FirePHP.class.php
+ - (Issue 66) Add a new getOptions() public method in API
+ - (Issue 82) Define $this->options outside of __construct
+ - (Issue 72) Message error if group name is null
+ - (Issue 68) registerErrorHandler() and registerExceptionHandler() should returns previous handlers defined
+ - (Issue 69) Add the missing register handler in the triumvirate (error, exception, assert)
+ - (Issue 75) [Error & Exception Handling] Option to not exit script execution
+ - (Issue 83) Exception handler can't throw exceptions
+ - (Issue 80) Auto/Pre collapsing groups AND Custom group row colors
+
+2008-11-09 - Release Version: 0.2.1
+
+ - (Issue 70) Problem when logging resources
+
+2008-10-21 - Release Version: 0.2.0
+
+ - Updated version to 0.2.0
+ - Switched to using __sleep instead of __wakeup
+ - Added support to exclude object members when encoding
+ - Add support to enable/disable logging
+
+2008-10-17 - Release Version: 0.2.b.8
+
+ - New implementation for is_utf8()
+ - (Issue 55) maxObjectDepth Option not working correctly when using TABLE and EXCEPTION Type
+ - Bugfix for max[Object|Array]Depth when encoding nested array/object graphs
+ - Bugfix for FB::setOptions()
+
+2008-10-16 - Release Version: 0.2.b.7
+
+ - (Issue 45) Truncate dump when string have non utf8 cars
+ - (Issue 52) logging will not work when firephp object gets stored in the session.
+
+2008-10-16 - Release Version: 0.2.b.6
+
+ - (Issue 37) Display file and line information for each log message
+ - (Issue 51) Limit output of object graphs
+ - Bugfix for encoding object members set to NULL|false|''
+
+2008-10-14 - Release Version: 0.2.b.5
+
+ - Updated JsonStream wildfire protocol to be more robust
+ - (Issue 33) PHP error notices running demos
+ - (Issue 48) Warning: ReflectionProperty::getValue() expects exactly 1 parameter, 0 given
+
+2008-10-08 - Release Version: 0.2.b.4
+
+ - Bugfix for logging objects with recursion
+
+2008-10-08 - Release Version: 0.2.b.3
+
+ - (Issue 43) Notice message in 0.2b2
+ - Added support for PHP's native json_encode() if available
+ - Revised object encoder to detect object recursion
+
+2008-10-07 - Release Version: 0.2.b.2
+
+ - (Issue 28) Need solution for logging private and protected object variables
+ - Added trace() and table() aliases in FirePHP class
+ - (Issue 41) Use PHP doc in FirePHP
+ - (Issue 39) Static logging method for object oriented API
+
+2008-10-01 - Release Version: 0.2.b.1
+
+ - Added support for error and exception handling
+ - Updated min PHP version for PEAR package to 5.2
+ - Added version constant for library
+ - Gave server library it's own wildfire plugin namespace
+ - Migrated communication protocol to Wildfire JsonStream
+ - Added support for console groups using "group" and "groupEnd"
+ - Added support for log, info, warn and error logging aliases
+ - (Issue 29) problem with TRACE when using with error_handler
+ - (Issue 33) PHP error notices running demos
+ - (Issue 12) undefined index php notice
+ - Removed closing ?> php tags
+ - (Issue 13) the code in the fb() function has a second return statement that will never be reached
+
+2008-07-30 - Release Version: 0.1.1.3
+
+ - Include __className property in JSON string if variable was an object
+ - Bugfix - Mis-spelt "Exception" in JSON encoding code
+
+2008-06-13 - Release Version: 0.1.1.1
+
+ - Bugfix - Standardize windows paths in stack traces
+ - Bugfix - Display correct stack trace info in windows environments
+ - Bugfix - Check $_SERVER['HTTP_USER_AGENT'] before returning
+
+2008-06-13 - Release Version: 0.1.1
+
+ - Added support for FirePHP::TRACE log style
+ - Changed license to New BSD License
+
+2008-06-06 - Release Version: 0.0.2
+
+ - Bugfix - Added usleep() to header writing loop to ensure unique index
+ - Bugfix - Ensure chunk_split does not generate trailing "\n" with empty data header
+ - Added support for FirePHP::TABLE log style
+
+
\ No newline at end of file
diff --git a/plugins/FirePHP/extlib/FirePHP/CREDITS b/plugins/FirePHP/extlib/FirePHP/CREDITS
new file mode 100644
index 0000000000..5f0d463d16
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/CREDITS
@@ -0,0 +1,12 @@
+ _______________________________
+ F i r e P H P C o r e
+
+ Current Development
+ -------------------
+
+ Christoph Dorn
+ Michael Day
+
+ If you've done work on FirePHPCore and you are not listed here,
+ please feel free to add yourself.
+
diff --git a/plugins/FirePHP/extlib/FirePHP/README b/plugins/FirePHP/extlib/FirePHP/README
new file mode 100644
index 0000000000..033719fae2
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/README
@@ -0,0 +1,32 @@
+
+Version: 0.3.1
+
+------------------------------------------------------
+ Requirements
+------------------------------------------------------
+
+Client Side:
+
+ - Firefox - http://www.getfirefox.com/
+ - Firebug - http://www.getfirebug.com/
+ - FirePHP - http://www.firephp.org/
+
+Server Side:
+
+ - PHP 5 (complete functionality)
+ - PHP 4 (most functionality)
+
+
+------------------------------------------------------
+ Install Tutorial
+------------------------------------------------------
+
+ http://www.firephp.org/HQ/Install.htm
+
+
+------------------------------------------------------
+ Support
+------------------------------------------------------
+
+ http://forum.firephp.org/
+
diff --git a/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php
new file mode 100644
index 0000000000..d8ae13f349
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php
@@ -0,0 +1,1529 @@
+
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ *
+ * For more information see: http://www.firephp.org/
+ *
+ * @copyright Copyright (C) 2007-2009 Christoph Dorn
+ * @author Christoph Dorn
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+class FirePHP {
+
+ /**
+ * FirePHP version
+ *
+ * @var string
+ */
+ const VERSION = '0.3';
+
+ /**
+ * Firebug LOG level
+ *
+ * Logs a message to firebug console.
+ *
+ * @var string
+ */
+ const LOG = 'LOG';
+
+ /**
+ * Firebug INFO level
+ *
+ * Logs a message to firebug console and displays an info icon before the message.
+ *
+ * @var string
+ */
+ const INFO = 'INFO';
+
+ /**
+ * Firebug WARN level
+ *
+ * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.
+ *
+ * @var string
+ */
+ const WARN = 'WARN';
+
+ /**
+ * Firebug ERROR level
+ *
+ * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
+ *
+ * @var string
+ */
+ const ERROR = 'ERROR';
+
+ /**
+ * Dumps a variable to firebug's server panel
+ *
+ * @var string
+ */
+ const DUMP = 'DUMP';
+
+ /**
+ * Displays a stack trace in firebug console
+ *
+ * @var string
+ */
+ const TRACE = 'TRACE';
+
+ /**
+ * Displays an exception in firebug console
+ *
+ * Increments the firebug error count.
+ *
+ * @var string
+ */
+ const EXCEPTION = 'EXCEPTION';
+
+ /**
+ * Displays an table in firebug console
+ *
+ * @var string
+ */
+ const TABLE = 'TABLE';
+
+ /**
+ * Starts a group in firebug console
+ *
+ * @var string
+ */
+ const GROUP_START = 'GROUP_START';
+
+ /**
+ * Ends a group in firebug console
+ *
+ * @var string
+ */
+ const GROUP_END = 'GROUP_END';
+
+ /**
+ * Singleton instance of FirePHP
+ *
+ * @var FirePHP
+ */
+ protected static $instance = null;
+
+ /**
+ * Flag whether we are logging from within the exception handler
+ *
+ * @var boolean
+ */
+ protected $inExceptionHandler = false;
+
+ /**
+ * Flag whether to throw PHP errors that have been converted to ErrorExceptions
+ *
+ * @var boolean
+ */
+ protected $throwErrorExceptions = true;
+
+ /**
+ * Flag whether to convert PHP assertion errors to Exceptions
+ *
+ * @var boolean
+ */
+ protected $convertAssertionErrorsToExceptions = true;
+
+ /**
+ * Flag whether to throw PHP assertion errors that have been converted to Exceptions
+ *
+ * @var boolean
+ */
+ protected $throwAssertionExceptions = false;
+
+ /**
+ * Wildfire protocol message index
+ *
+ * @var int
+ */
+ protected $messageIndex = 1;
+
+ /**
+ * Options for the library
+ *
+ * @var array
+ */
+ protected $options = array('maxObjectDepth' => 10,
+ 'maxArrayDepth' => 20,
+ 'useNativeJsonEncode' => true,
+ 'includeLineNumbers' => true);
+
+ /**
+ * Filters used to exclude object members when encoding
+ *
+ * @var array
+ */
+ protected $objectFilters = array();
+
+ /**
+ * A stack of objects used to detect recursion during object encoding
+ *
+ * @var object
+ */
+ protected $objectStack = array();
+
+ /**
+ * Flag to enable/disable logging
+ *
+ * @var boolean
+ */
+ protected $enabled = true;
+
+ /**
+ * The object constructor
+ */
+ function __construct() {
+ }
+
+ /**
+ * When the object gets serialized only include specific object members.
+ *
+ * @return array
+ */
+ public function __sleep() {
+ return array('options','objectFilters','enabled');
+ }
+
+ /**
+ * Gets singleton instance of FirePHP
+ *
+ * @param boolean $AutoCreate
+ * @return FirePHP
+ */
+ public static function getInstance($AutoCreate=false) {
+ if($AutoCreate===true && !self::$instance) {
+ self::init();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Creates FirePHP object and stores it for singleton access
+ *
+ * @return FirePHP
+ */
+ public static function init() {
+ return self::$instance = new self();
+ }
+
+ /**
+ * Enable and disable logging to Firebug
+ *
+ * @param boolean $Enabled TRUE to enable, FALSE to disable
+ * @return void
+ */
+ public function setEnabled($Enabled) {
+ $this->enabled = $Enabled;
+ }
+
+ /**
+ * Check if logging is enabled
+ *
+ * @return boolean TRUE if enabled
+ */
+ public function getEnabled() {
+ return $this->enabled;
+ }
+
+ /**
+ * Specify a filter to be used when encoding an object
+ *
+ * Filters are used to exclude object members.
+ *
+ * @param string $Class The class name of the object
+ * @param array $Filter An array of members to exclude
+ * @return void
+ */
+ public function setObjectFilter($Class, $Filter) {
+ $this->objectFilters[strtolower($Class)] = $Filter;
+ }
+
+ /**
+ * Set some options for the library
+ *
+ * Options:
+ * - maxObjectDepth: The maximum depth to traverse objects (default: 10)
+ * - maxArrayDepth: The maximum depth to traverse arrays (default: 20)
+ * - useNativeJsonEncode: If true will use json_encode() (default: true)
+ * - includeLineNumbers: If true will include line numbers and filenames (default: true)
+ *
+ * @param array $Options The options to be set
+ * @return void
+ */
+ public function setOptions($Options) {
+ $this->options = array_merge($this->options,$Options);
+ }
+
+ /**
+ * Get options from the library
+ *
+ * @return array The currently set options
+ */
+ public function getOptions() {
+ return $this->options;
+ }
+
+ /**
+ * Register FirePHP as your error handler
+ *
+ * Will throw exceptions for each php error.
+ *
+ * @return mixed Returns a string containing the previously defined error handler (if any)
+ */
+ public function registerErrorHandler($throwErrorExceptions=true)
+ {
+ //NOTE: The following errors will not be caught by this error handler:
+ // E_ERROR, E_PARSE, E_CORE_ERROR,
+ // E_CORE_WARNING, E_COMPILE_ERROR,
+ // E_COMPILE_WARNING, E_STRICT
+
+ $this->throwErrorExceptions = $throwErrorExceptions;
+
+ return set_error_handler(array($this,'errorHandler'));
+ }
+
+ /**
+ * FirePHP's error handler
+ *
+ * Throws exception for each php error that will occur.
+ *
+ * @param int $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param int $errline
+ * @param array $errcontext
+ */
+ public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
+ {
+ // Don't throw exception if error reporting is switched off
+ if (error_reporting() == 0) {
+ return;
+ }
+ // Only throw exceptions for errors we are asking for
+ if (error_reporting() & $errno) {
+
+ $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
+ if($this->throwErrorExceptions) {
+ throw $exception;
+ } else {
+ $this->fb($exception);
+ }
+ }
+ }
+
+ /**
+ * Register FirePHP as your exception handler
+ *
+ * @return mixed Returns the name of the previously defined exception handler,
+ * or NULL on error.
+ * If no previous handler was defined, NULL is also returned.
+ */
+ public function registerExceptionHandler()
+ {
+ return set_exception_handler(array($this,'exceptionHandler'));
+ }
+
+ /**
+ * FirePHP's exception handler
+ *
+ * Logs all exceptions to your firebug console and then stops the script.
+ *
+ * @param Exception $Exception
+ * @throws Exception
+ */
+ function exceptionHandler($Exception) {
+
+ $this->inExceptionHandler = true;
+
+ header('HTTP/1.1 500 Internal Server Error');
+
+ $this->fb($Exception);
+
+ $this->inExceptionHandler = false;
+ }
+
+ /**
+ * Register FirePHP driver as your assert callback
+ *
+ * @param boolean $convertAssertionErrorsToExceptions
+ * @param boolean $throwAssertionExceptions
+ * @return mixed Returns the original setting or FALSE on errors
+ */
+ public function registerAssertionHandler($convertAssertionErrorsToExceptions=true, $throwAssertionExceptions=false)
+ {
+ $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
+ $this->throwAssertionExceptions = $throwAssertionExceptions;
+
+ if($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
+ throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
+ }
+
+ return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
+ }
+
+ /**
+ * FirePHP's assertion handler
+ *
+ * Logs all assertions to your firebug console and then stops the script.
+ *
+ * @param string $file File source of assertion
+ * @param int $line Line source of assertion
+ * @param mixed $code Assertion code
+ */
+ public function assertionHandler($file, $line, $code)
+ {
+
+ if($this->convertAssertionErrorsToExceptions) {
+
+ $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);
+
+ if($this->throwAssertionExceptions) {
+ throw $exception;
+ } else {
+ $this->fb($exception);
+ }
+
+ } else {
+
+ $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));
+
+ }
+ }
+
+ /**
+ * Set custom processor url for FirePHP
+ *
+ * @param string $URL
+ */
+ public function setProcessorUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-ProcessorURL', $URL);
+ }
+
+ /**
+ * Set custom renderer url for FirePHP
+ *
+ * @param string $URL
+ */
+ public function setRendererUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-RendererURL', $URL);
+ }
+
+ /**
+ * Start a group for following messages.
+ *
+ * Options:
+ * Collapsed: [true|false]
+ * Color: [#RRGGBB|ColorName]
+ *
+ * @param string $Name
+ * @param array $Options OPTIONAL Instructions on how to log the group
+ * @return true
+ * @throws Exception
+ */
+ public function group($Name, $Options=null) {
+
+ if(!$Name) {
+ throw $this->newException('You must specify a label for the group!');
+ }
+
+ if($Options) {
+ if(!is_array($Options)) {
+ throw $this->newException('Options must be defined as an array!');
+ }
+ if(array_key_exists('Collapsed', $Options)) {
+ $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
+ }
+ }
+
+ return $this->fb(null, $Name, FirePHP::GROUP_START, $Options);
+ }
+
+ /**
+ * Ends a group you have started before
+ *
+ * @return true
+ * @throws Exception
+ */
+ public function groupEnd() {
+ return $this->fb(null, null, FirePHP::GROUP_END);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::LOG
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function log($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::LOG);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::INFO
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function info($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::INFO);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::WARN
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function warn($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::WARN);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::ERROR
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function error($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP::ERROR);
+ }
+
+ /**
+ * Dumps key and variable to firebug server panel
+ *
+ * @see FirePHP::DUMP
+ * @param string $Key
+ * @param mixed $Variable
+ * @return true
+ * @throws Exception
+ */
+ public function dump($Key, $Variable) {
+ return $this->fb($Variable, $Key, FirePHP::DUMP);
+ }
+
+ /**
+ * Log a trace in the firebug console
+ *
+ * @see FirePHP::TRACE
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public function trace($Label) {
+ return $this->fb($Label, FirePHP::TRACE);
+ }
+
+ /**
+ * Log a table in the firebug console
+ *
+ * @see FirePHP::TABLE
+ * @param string $Label
+ * @param string $Table
+ * @return true
+ * @throws Exception
+ */
+ public function table($Label, $Table) {
+ return $this->fb($Table, $Label, FirePHP::TABLE);
+ }
+
+ /**
+ * Check if FirePHP is installed on client
+ *
+ * @return boolean
+ */
+ public function detectClientExtension() {
+ /* Check if FirePHP is installed on client */
+ if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
+ !version_compare($m[1][0],'0.0.6','>=')) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Log varible to Firebug
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object The variable to be logged
+ * @return true Return TRUE if message was added to headers, FALSE otherwise
+ * @throws Exception
+ */
+ public function fb($Object) {
+
+ if(!$this->enabled) {
+ return false;
+ }
+
+ if (headers_sent($filename, $linenum)) {
+ // If we are logging from within the exception handler we cannot throw another exception
+ if($this->inExceptionHandler) {
+ // Simply echo the error out to the page
+ echo '
FirePHP ERROR: Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.
';
+ } else {
+ throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
+ }
+ }
+
+ $Type = null;
+ $Label = null;
+ $Options = array();
+
+ if(func_num_args()==1) {
+ } else
+ if(func_num_args()==2) {
+ switch(func_get_arg(1)) {
+ case self::LOG:
+ case self::INFO:
+ case self::WARN:
+ case self::ERROR:
+ case self::DUMP:
+ case self::TRACE:
+ case self::EXCEPTION:
+ case self::TABLE:
+ case self::GROUP_START:
+ case self::GROUP_END:
+ $Type = func_get_arg(1);
+ break;
+ default:
+ $Label = func_get_arg(1);
+ break;
+ }
+ } else
+ if(func_num_args()==3) {
+ $Type = func_get_arg(2);
+ $Label = func_get_arg(1);
+ } else
+ if(func_num_args()==4) {
+ $Type = func_get_arg(2);
+ $Label = func_get_arg(1);
+ $Options = func_get_arg(3);
+ } else {
+ throw $this->newException('Wrong number of arguments to fb() function!');
+ }
+
+
+ if(!$this->detectClientExtension()) {
+ return false;
+ }
+
+ $meta = array();
+ $skipFinalObjectEncode = false;
+
+ if($Object instanceof Exception) {
+
+ $meta['file'] = $this->_escapeTraceFile($Object->getFile());
+ $meta['line'] = $Object->getLine();
+
+ $trace = $Object->getTrace();
+ if($Object instanceof ErrorException
+ && isset($trace[0]['function'])
+ && $trace[0]['function']=='errorHandler'
+ && isset($trace[0]['class'])
+ && $trace[0]['class']=='FirePHP') {
+
+ $severity = false;
+ switch($Object->getSeverity()) {
+ case E_WARNING: $severity = 'E_WARNING'; break;
+ case E_NOTICE: $severity = 'E_NOTICE'; break;
+ case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
+ case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
+ case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
+ case E_STRICT: $severity = 'E_STRICT'; break;
+ case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
+ case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
+ case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
+ }
+
+ $Object = array('Class'=>get_class($Object),
+ 'Message'=>$severity.': '.$Object->getMessage(),
+ 'File'=>$this->_escapeTraceFile($Object->getFile()),
+ 'Line'=>$Object->getLine(),
+ 'Type'=>'trigger',
+ 'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
+ $skipFinalObjectEncode = true;
+ } else {
+ $Object = array('Class'=>get_class($Object),
+ 'Message'=>$Object->getMessage(),
+ 'File'=>$this->_escapeTraceFile($Object->getFile()),
+ 'Line'=>$Object->getLine(),
+ 'Type'=>'throw',
+ 'Trace'=>$this->_escapeTrace($trace));
+ $skipFinalObjectEncode = true;
+ }
+ $Type = self::EXCEPTION;
+
+ } else
+ if($Type==self::TRACE) {
+
+ $trace = debug_backtrace();
+ if(!$trace) return false;
+ for( $i=0 ; $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if($trace[$i]['function']=='fb'
+ || $trace[$i]['function']=='trace'
+ || $trace[$i]['function']=='send') {
+ $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
+ 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
+ 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
+ 'Message'=>$trace[$i]['args'][0],
+ 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
+ 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
+ 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
+ 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
+
+ $skipFinalObjectEncode = true;
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ } else
+ if($Type==self::TABLE) {
+
+ if(isset($Object[0]) && is_string($Object[0])) {
+ $Object[1] = $this->encodeTable($Object[1]);
+ } else {
+ $Object = $this->encodeTable($Object);
+ }
+
+ $skipFinalObjectEncode = true;
+
+ } else
+ if($Type==self::GROUP_START) {
+
+ if(!$Label) {
+ throw $this->newException('You must specify a label for the group!');
+ }
+
+ } else {
+ if($Type===null) {
+ $Type = self::LOG;
+ }
+ }
+
+ if($this->options['includeLineNumbers']) {
+ if(!isset($meta['file']) || !isset($meta['line'])) {
+
+ $trace = debug_backtrace();
+ for( $i=0 ; $trace && $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if(isset($trace[$i]['file'])
+ && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip FB::fb() */
+ } else {
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ }
+ } else {
+ unset($meta['file']);
+ unset($meta['line']);
+ }
+
+ $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
+ $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
+
+ $structure_index = 1;
+ if($Type==self::DUMP) {
+ $structure_index = 2;
+ $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
+ } else {
+ $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
+ }
+
+ if($Type==self::DUMP) {
+ $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
+ } else {
+ $msg_meta = $Options;
+ $msg_meta['Type'] = $Type;
+ if($Label!==null) {
+ $msg_meta['Label'] = $Label;
+ }
+ if(isset($meta['file']) && !isset($msg_meta['File'])) {
+ $msg_meta['File'] = $meta['file'];
+ }
+ if(isset($meta['line']) && !isset($msg_meta['Line'])) {
+ $msg_meta['Line'] = $meta['line'];
+ }
+ $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
+ }
+
+ $parts = explode("\n",chunk_split($msg, 5000, "\n"));
+
+ for( $i=0 ; $i2) {
+ // Message needs to be split into multiple parts
+ $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ (($i==0)?strlen($msg):'')
+ . '|' . $part . '|'
+ . (($isetHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ strlen($part) . '|' . $part . '|');
+ }
+
+ $this->messageIndex++;
+
+ if ($this->messageIndex > 99999) {
+ throw $this->newException('Maximum number (99,999) of messages reached!');
+ }
+ }
+ }
+
+ $this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
+
+ return true;
+ }
+
+ /**
+ * Standardizes path for windows systems.
+ *
+ * @param string $Path
+ * @return string
+ */
+ protected function _standardizePath($Path) {
+ return preg_replace('/\\\\+/','/',$Path);
+ }
+
+ /**
+ * Escape trace path for windows systems
+ *
+ * @param array $Trace
+ * @return array
+ */
+ protected function _escapeTrace($Trace) {
+ if(!$Trace) return $Trace;
+ for( $i=0 ; $i_escapeTraceFile($Trace[$i]['file']);
+ }
+ if(isset($Trace[$i]['args'])) {
+ $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
+ }
+ }
+ return $Trace;
+ }
+
+ /**
+ * Escape file information of trace for windows systems
+ *
+ * @param string $File
+ * @return string
+ */
+ protected function _escapeTraceFile($File) {
+ /* Check if we have a windows filepath */
+ if(strpos($File,'\\')) {
+ /* First strip down to single \ */
+
+ $file = preg_replace('/\\\\+/','\\',$File);
+
+ return $file;
+ }
+ return $File;
+ }
+
+ /**
+ * Send header
+ *
+ * @param string $Name
+ * @param string_type $Value
+ */
+ protected function setHeader($Name, $Value) {
+ return header($Name.': '.$Value);
+ }
+
+ /**
+ * Get user agent
+ *
+ * @return string|false
+ */
+ protected function getUserAgent() {
+ if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
+ return $_SERVER['HTTP_USER_AGENT'];
+ }
+
+ /**
+ * Returns a new exception
+ *
+ * @param string $Message
+ * @return Exception
+ */
+ protected function newException($Message) {
+ return new Exception($Message);
+ }
+
+ /**
+ * Encode an object into a JSON string
+ *
+ * Uses PHP's jeson_encode() if available
+ *
+ * @param object $Object The object to be encoded
+ * @return string The JSON string
+ */
+ public function jsonEncode($Object, $skipObjectEncode=false)
+ {
+ if(!$skipObjectEncode) {
+ $Object = $this->encodeObject($Object);
+ }
+
+ if(function_exists('json_encode')
+ && $this->options['useNativeJsonEncode']!=false) {
+
+ return json_encode($Object);
+ } else {
+ return $this->json_encode($Object);
+ }
+ }
+
+ /**
+ * Encodes a table by encoding each row and column with encodeObject()
+ *
+ * @param array $Table The table to be encoded
+ * @return array
+ */
+ protected function encodeTable($Table) {
+
+ if(!$Table) return $Table;
+
+ $new_table = array();
+ foreach($Table as $row) {
+
+ if(is_array($row)) {
+ $new_row = array();
+
+ foreach($row as $item) {
+ $new_row[] = $this->encodeObject($item);
+ }
+
+ $new_table[] = $new_row;
+ }
+ }
+
+ return $new_table;
+ }
+
+ /**
+ * Encodes an object including members with
+ * protected and private visibility
+ *
+ * @param Object $Object The object to be encoded
+ * @param int $Depth The current traversal depth
+ * @return array All members of the object
+ */
+ protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
+ {
+ $return = array();
+
+ if (is_resource($Object)) {
+
+ return '** '.(string)$Object.' **';
+
+ } else
+ if (is_object($Object)) {
+
+ if ($ObjectDepth > $this->options['maxObjectDepth']) {
+ return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
+ }
+
+ foreach ($this->objectStack as $refVal) {
+ if ($refVal === $Object) {
+ return '** Recursion ('.get_class($Object).') **';
+ }
+ }
+ array_push($this->objectStack, $Object);
+
+ $return['__className'] = $class = get_class($Object);
+ $class_lower = strtolower($class);
+
+ $reflectionClass = new ReflectionClass($class);
+ $properties = array();
+ foreach( $reflectionClass->getProperties() as $property) {
+ $properties[$property->getName()] = $property;
+ }
+
+ $members = (array)$Object;
+
+ foreach( $properties as $raw_name => $property ) {
+
+ $name = $raw_name;
+ if($property->isStatic()) {
+ $name = 'static:'.$name;
+ }
+ if($property->isPublic()) {
+ $name = 'public:'.$name;
+ } else
+ if($property->isPrivate()) {
+ $name = 'private:'.$name;
+ $raw_name = "\0".$class."\0".$raw_name;
+ } else
+ if($property->isProtected()) {
+ $name = 'protected:'.$name;
+ $raw_name = "\0".'*'."\0".$raw_name;
+ }
+
+ if(!(isset($this->objectFilters[$class_lower])
+ && is_array($this->objectFilters[$class_lower])
+ && in_array($raw_name,$this->objectFilters[$class_lower]))) {
+
+ if(array_key_exists($raw_name,$members)
+ && !$property->isStatic()) {
+
+ $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1);
+
+ } else {
+ if(method_exists($property,'setAccessible')) {
+ $property->setAccessible(true);
+ $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
+ } else
+ if($property->isPublic()) {
+ $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1);
+ } else {
+ $return[$name] = '** Need PHP 5.3 to get value **';
+ }
+ }
+ } else {
+ $return[$name] = '** Excluded by Filter **';
+ }
+ }
+
+ // Include all members that are not defined in the class
+ // but exist in the object
+ foreach( $members as $raw_name => $value ) {
+
+ $name = $raw_name;
+
+ if ($name{0} == "\0") {
+ $parts = explode("\0", $name);
+ $name = $parts[2];
+ }
+
+ if(!isset($properties[$name])) {
+ $name = 'undeclared:'.$name;
+
+ if(!(isset($this->objectFilters[$class_lower])
+ && is_array($this->objectFilters[$class_lower])
+ && in_array($raw_name,$this->objectFilters[$class_lower]))) {
+
+ $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
+ } else {
+ $return[$name] = '** Excluded by Filter **';
+ }
+ }
+ }
+
+ array_pop($this->objectStack);
+
+ } elseif (is_array($Object)) {
+
+ if ($ArrayDepth > $this->options['maxArrayDepth']) {
+ return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
+ }
+
+ foreach ($Object as $key => $val) {
+
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($key=='GLOBALS'
+ && is_array($val)
+ && array_key_exists('GLOBALS',$val)) {
+ $val['GLOBALS'] = '** Recursion (GLOBALS) **';
+ }
+
+ $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
+ }
+ } else {
+ if(self::is_utf8($Object)) {
+ return $Object;
+ } else {
+ return utf8_encode($Object);
+ }
+ }
+ return $return;
+ }
+
+ /**
+ * Returns true if $string is valid UTF-8 and false otherwise.
+ *
+ * @param mixed $str String to be tested
+ * @return boolean
+ */
+ protected static function is_utf8($str) {
+ $c=0; $b=0;
+ $bits=0;
+ $len=strlen($str);
+ for($i=0; $i<$len; $i++){
+ $c=ord($str[$i]);
+ if($c > 128){
+ if(($c >= 254)) return false;
+ elseif($c >= 252) $bits=6;
+ elseif($c >= 248) $bits=5;
+ elseif($c >= 240) $bits=4;
+ elseif($c >= 224) $bits=3;
+ elseif($c >= 192) $bits=2;
+ else return false;
+ if(($i+$bits) > $len) return false;
+ while($bits > 1){
+ $i++;
+ $b=ord($str[$i]);
+ if($b < 128 || $b > 191) return false;
+ $bits--;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Converts to and from JSON format.
+ *
+ * JSON (JavaScript Object Notation) is a lightweight data-interchange
+ * format. It is easy for humans to read and write. It is easy for machines
+ * to parse and generate. It is based on a subset of the JavaScript
+ * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
+ * This feature can also be found in Python. JSON is a text format that is
+ * completely language independent but uses conventions that are familiar
+ * to programmers of the C-family of languages, including C, C++, C#, Java,
+ * JavaScript, Perl, TCL, and many others. These properties make JSON an
+ * ideal data-interchange language.
+ *
+ * This package provides a simple encoder and decoder for JSON notation. It
+ * is intended for use with client-side Javascript applications that make
+ * use of HTTPRequest to perform server communication functions - data can
+ * be encoded into JSON notation for use in a client-side javascript, or
+ * decoded from incoming Javascript requests. JSON format is native to
+ * Javascript, and can be directly eval()'ed with no further parsing
+ * overhead
+ *
+ * All strings should be in ASCII or UTF-8 format!
+ *
+ * LICENSE: Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: Redistributions of source code must retain the
+ * above copyright notice, this list of conditions and the following
+ * disclaimer. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * @category
+ * @package Services_JSON
+ * @author Michal Migurski
+ * @author Matt Knapp
+ * @author Brett Stimmerman
+ * @author Christoph Dorn
+ * @copyright 2005 Michal Migurski
+ * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
+ */
+
+
+ /**
+ * Keep a list of objects as we descend into the array so we can detect recursion.
+ */
+ private $json_objectStack = array();
+
+
+ /**
+ * convert a string from one UTF-8 char to one UTF-16 char
+ *
+ * Normally should be handled by mb_convert_encoding, but
+ * provides a slower PHP-only method for installations
+ * that lack the multibye string extension.
+ *
+ * @param string $utf8 UTF-8 character
+ * @return string UTF-16 character
+ * @access private
+ */
+ private function json_utf82utf16($utf8)
+ {
+ // oh please oh please oh please oh please oh please
+ if(function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+ }
+
+ switch(strlen($utf8)) {
+ case 1:
+ // this case should never be reached, because we are in ASCII range
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return $utf8;
+
+ case 2:
+ // return a UTF-16 character from a 2-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr(0x07 & (ord($utf8{0}) >> 2))
+ . chr((0xC0 & (ord($utf8{0}) << 6))
+ | (0x3F & ord($utf8{1})));
+
+ case 3:
+ // return a UTF-16 character from a 3-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr((0xF0 & (ord($utf8{0}) << 4))
+ | (0x0F & (ord($utf8{1}) >> 2)))
+ . chr((0xC0 & (ord($utf8{1}) << 6))
+ | (0x7F & ord($utf8{2})));
+ }
+
+ // ignoring UTF-32 for now, sorry
+ return '';
+ }
+
+ /**
+ * encodes an arbitrary variable into JSON format
+ *
+ * @param mixed $var any number, boolean, string, array, or object to be encoded.
+ * see argument 1 to Services_JSON() above for array-parsing behavior.
+ * if var is a strng, note that encode() always expects it
+ * to be in ASCII or UTF-8 format!
+ *
+ * @return mixed JSON string representation of input var or an error if a problem occurs
+ * @access public
+ */
+ private function json_encode($var)
+ {
+
+ if(is_object($var)) {
+ if(in_array($var,$this->json_objectStack)) {
+ return '"** Recursion **"';
+ }
+ }
+
+ switch (gettype($var)) {
+ case 'boolean':
+ return $var ? 'true' : 'false';
+
+ case 'NULL':
+ return 'null';
+
+ case 'integer':
+ return (int) $var;
+
+ case 'double':
+ case 'float':
+ return (float) $var;
+
+ case 'string':
+ // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
+ $ascii = '';
+ $strlen_var = strlen($var);
+
+ /*
+ * Iterate over every character in the string,
+ * escaping with a slash or encoding to UTF-8 where necessary
+ */
+ for ($c = 0; $c < $strlen_var; ++$c) {
+
+ $ord_var_c = ord($var{$c});
+
+ switch (true) {
+ case $ord_var_c == 0x08:
+ $ascii .= '\b';
+ break;
+ case $ord_var_c == 0x09:
+ $ascii .= '\t';
+ break;
+ case $ord_var_c == 0x0A:
+ $ascii .= '\n';
+ break;
+ case $ord_var_c == 0x0C:
+ $ascii .= '\f';
+ break;
+ case $ord_var_c == 0x0D:
+ $ascii .= '\r';
+ break;
+
+ case $ord_var_c == 0x22:
+ case $ord_var_c == 0x2F:
+ case $ord_var_c == 0x5C:
+ // double quote, slash, slosh
+ $ascii .= '\\'.$var{$c};
+ break;
+
+ case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
+ // characters U-00000000 - U-0000007F (same as ASCII)
+ $ascii .= $var{$c};
+ break;
+
+ case (($ord_var_c & 0xE0) == 0xC0):
+ // characters U-00000080 - U-000007FF, mask 110XXXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
+ $c += 1;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF0) == 0xE0):
+ // characters U-00000800 - U-0000FFFF, mask 1110XXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}));
+ $c += 2;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF8) == 0xF0):
+ // characters U-00010000 - U-001FFFFF, mask 11110XXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}));
+ $c += 3;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFC) == 0xF8):
+ // characters U-00200000 - U-03FFFFFF, mask 111110XX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}));
+ $c += 4;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFE) == 0xFC):
+ // characters U-04000000 - U-7FFFFFFF, mask 1111110X
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}),
+ ord($var{$c + 5}));
+ $c += 5;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+ }
+ }
+
+ return '"'.$ascii.'"';
+
+ case 'array':
+ /*
+ * As per JSON spec if any array key is not an integer
+ * we must treat the the whole array as an object. We
+ * also try to catch a sparsely populated associative
+ * array with numeric keys here because some JS engines
+ * will create an array with empty indexes up to
+ * max_index which can cause memory issues and because
+ * the keys, which may be relevant, will be remapped
+ * otherwise.
+ *
+ * As per the ECMA and JSON specification an object may
+ * have any string as a property. Unfortunately due to
+ * a hole in the ECMA specification if the key is a
+ * ECMA reserved word or starts with a digit the
+ * parameter is only accessible using ECMAScript's
+ * bracket notation.
+ */
+
+ // treat as a JSON object
+ if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($var),
+ array_values($var));
+
+ array_pop($this->json_objectStack);
+
+ foreach($properties as $property) {
+ if($property instanceof Exception) {
+ return $property;
+ }
+ }
+
+ return '{' . join(',', $properties) . '}';
+ }
+
+ $this->json_objectStack[] = $var;
+
+ // treat it like a regular array
+ $elements = array_map(array($this, 'json_encode'), $var);
+
+ array_pop($this->json_objectStack);
+
+ foreach($elements as $element) {
+ if($element instanceof Exception) {
+ return $element;
+ }
+ }
+
+ return '[' . join(',', $elements) . ']';
+
+ case 'object':
+ $vars = self::encodeObject($var);
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($vars),
+ array_values($vars));
+
+ array_pop($this->json_objectStack);
+
+ foreach($properties as $property) {
+ if($property instanceof Exception) {
+ return $property;
+ }
+ }
+
+ return '{' . join(',', $properties) . '}';
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * array-walking function for use in generating JSON-formatted name-value pairs
+ *
+ * @param string $name name of key to use
+ * @param mixed $value reference to an array element to be encoded
+ *
+ * @return string JSON-formatted name-value pair, like '"name":value'
+ * @access private
+ */
+ private function json_name_value($name, $value)
+ {
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($name=='GLOBALS'
+ && is_array($value)
+ && array_key_exists('GLOBALS',$value)) {
+ $value['GLOBALS'] = '** Recursion **';
+ }
+
+ $encoded_value = $this->json_encode($value);
+
+ if($encoded_value instanceof Exception) {
+ return $encoded_value;
+ }
+
+ return $this->json_encode(strval($name)) . ':' . $encoded_value;
+ }
+}
diff --git a/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php4 b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php4
new file mode 100644
index 0000000000..7cc4bfb04e
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/FirePHP.class.php4
@@ -0,0 +1,1292 @@
+
+ * @author Michael Day
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+
+/**
+ * FirePHP version
+ *
+ * @var string
+ */
+define('FirePHP_VERSION', '0.3');
+
+/**
+ * Firebug LOG level
+ *
+ * Logs a message to firebug console
+ *
+ * @var string
+ */
+define('FirePHP_LOG', 'LOG');
+
+/**
+ * Firebug INFO level
+ *
+ * Logs a message to firebug console and displays an info icon before the message
+ *
+ * @var string
+ */
+define('FirePHP_INFO', 'INFO');
+
+/**
+ * Firebug WARN level
+ *
+ * Logs a message to firebug console, displays a warning icon before the message and colors the line turquoise
+ *
+ * @var string
+ */
+define('FirePHP_WARN', 'WARN');
+
+/**
+ * Firebug ERROR level
+ *
+ * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
+ *
+ * @var string
+ */
+define('FirePHP_ERROR', 'ERROR');
+
+/**
+ * Dumps a variable to firebug's server panel
+ *
+ * @var string
+ */
+define('FirePHP_DUMP', 'DUMP');
+
+/**
+ * Displays a stack trace in firebug console
+ *
+ * @var string
+ */
+define('FirePHP_TRACE', 'TRACE');
+
+/**
+ * Displays a table in firebug console
+ *
+ * @var string
+ */
+define('FirePHP_TABLE', 'TABLE');
+
+/**
+ * Starts a group in firebug console
+ *
+ * @var string
+ */
+define('FirePHP_GROUP_START', 'GROUP_START');
+
+/**
+ * Ends a group in firebug console
+ *
+ * @var string
+ */
+define('FirePHP_GROUP_END', 'GROUP_END');
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ *
+ * For more information see: http://www.firephp.org/
+ *
+ * @copyright Copyright (C) 2007-2009 Christoph Dorn
+ * @author Christoph Dorn
+ * @author Michael Day
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+class FirePHP {
+ /**
+ * Wildfire protocol message index
+ *
+ * @var int
+ */
+ var $messageIndex = 1;
+
+ /**
+ * Options for the library
+ *
+ * @var array
+ */
+ var $options = array('maxObjectDepth' => 10,
+ 'maxArrayDepth' => 20,
+ 'useNativeJsonEncode' => true,
+ 'includeLineNumbers' => true);
+
+ /**
+ * Filters used to exclude object members when encoding
+ *
+ * @var array
+ */
+ var $objectFilters = array();
+
+ /**
+ * A stack of objects used to detect recursion during object encoding
+ *
+ * @var object
+ */
+ var $objectStack = array();
+
+ /**
+ * Flag to enable/disable logging
+ *
+ * @var boolean
+ */
+ var $enabled = true;
+
+ /**
+ * The object constructor
+ */
+ function FirePHP() {
+ }
+
+
+ /**
+ * When the object gets serialized only include specific object members.
+ *
+ * @return array
+ */
+ function __sleep() {
+ return array('options','objectFilters','enabled');
+ }
+
+ /**
+ * Gets singleton instance of FirePHP
+ *
+ * @param boolean $AutoCreate
+ * @return FirePHP
+ */
+ function &getInstance($AutoCreate=false) {
+ global $FirePHP_Instance;
+
+ if($AutoCreate===true && !$FirePHP_Instance) {
+ $FirePHP_Instance = new FirePHP();
+ }
+
+ return $FirePHP_Instance;
+ }
+
+ /**
+ * Enable and disable logging to Firebug
+ *
+ * @param boolean $Enabled TRUE to enable, FALSE to disable
+ * @return void
+ */
+ function setEnabled($Enabled) {
+ $this->enabled = $Enabled;
+ }
+
+ /**
+ * Check if logging is enabled
+ *
+ * @return boolean TRUE if enabled
+ */
+ function getEnabled() {
+ return $this->enabled;
+ }
+
+ /**
+ * Specify a filter to be used when encoding an object
+ *
+ * Filters are used to exclude object members.
+ *
+ * @param string $Class The class name of the object
+ * @param array $Filter An array of members to exclude
+ * @return void
+ */
+ function setObjectFilter($Class, $Filter) {
+ $this->objectFilters[strtolower($Class)] = $Filter;
+ }
+
+ /**
+ * Set some options for the library
+ *
+ * Options:
+ * - maxObjectDepth: The maximum depth to traverse objects (default: 10)
+ * - maxArrayDepth: The maximum depth to traverse arrays (default: 20)
+ * - useNativeJsonEncode: If true will use json_encode() (default: true)
+ * - includeLineNumbers: If true will include line numbers and filenames (default: true)
+ *
+ * @param array $Options The options to be set
+ * @return void
+ */
+ function setOptions($Options) {
+ $this->options = array_merge($this->options,$Options);
+ }
+
+ /**
+ * Get options from the library
+ *
+ * @return array The currently set options
+ */
+ function getOptions() {
+ return $this->options;
+ }
+
+ /**
+ * Register FirePHP as your error handler
+ *
+ * Will use FirePHP to log each php error.
+ *
+ * @return mixed Returns a string containing the previously defined error handler (if any)
+ */
+ function registerErrorHandler()
+ {
+ //NOTE: The following errors will not be caught by this error handler:
+ // E_ERROR, E_PARSE, E_CORE_ERROR,
+ // E_CORE_WARNING, E_COMPILE_ERROR,
+ // E_COMPILE_WARNING, E_STRICT
+
+ return set_error_handler(array($this,'errorHandler'));
+ }
+
+ /**
+ * FirePHP's error handler
+ *
+ * Logs each php error that will occur.
+ *
+ * @param int $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param int $errline
+ * @param array $errcontext
+ */
+ function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
+ {
+ global $FirePHP_Instance;
+ // Don't log error if error reporting is switched off
+ if (error_reporting() == 0) {
+ return;
+ }
+ // Only log error for errors we are asking for
+ if (error_reporting() & $errno) {
+ $FirePHP_Instance->group($errstr);
+ $FirePHP_Instance->error("{$errfile}, line $errline");
+ $FirePHP_Instance->groupEnd();
+ }
+ }
+
+ /**
+ * Register FirePHP driver as your assert callback
+ *
+ * @return mixed Returns the original setting
+ */
+ function registerAssertionHandler()
+ {
+ return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
+ }
+
+ /**
+ * FirePHP's assertion handler
+ *
+ * Logs all assertions to your firebug console and then stops the script.
+ *
+ * @param string $file File source of assertion
+ * @param int $line Line source of assertion
+ * @param mixed $code Assertion code
+ */
+ function assertionHandler($file, $line, $code)
+ {
+ $this->fb($code, 'Assertion Failed', FirePHP_ERROR, array('File'=>$file,'Line'=>$line));
+ }
+
+ /**
+ * Set custom processor url for FirePHP
+ *
+ * @param string $URL
+ */
+ function setProcessorUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-ProcessorURL', $URL);
+ }
+
+ /**
+ * Set custom renderer url for FirePHP
+ *
+ * @param string $URL
+ */
+ function setRendererUrl($URL)
+ {
+ $this->setHeader('X-FirePHP-RendererURL', $URL);
+ }
+
+ /**
+ * Start a group for following messages.
+ *
+ * Options:
+ * Collapsed: [true|false]
+ * Color: [#RRGGBB|ColorName]
+ *
+ * @param string $Name
+ * @param array $Options OPTIONAL Instructions on how to log the group
+ * @return true
+ * @throws Exception
+ */
+ function group($Name, $Options=null) {
+
+ if(!$Name) {
+ trigger_error('You must specify a label for the group!');
+ }
+
+ if($Options) {
+ if(!is_array($Options)) {
+ trigger_error('Options must be defined as an array!');
+ }
+ if(array_key_exists('Collapsed', $Options)) {
+ $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
+ }
+ }
+
+ return $this->fb(null, $Name, FirePHP_GROUP_START, $Options);
+ }
+
+ /**
+ * Ends a group you have started before
+ *
+ * @return true
+ * @throws Exception
+ */
+ function groupEnd() {
+ return $this->fb(null, null, FirePHP_GROUP_END);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::LOG
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ function log($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP_LOG);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::INFO
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ function info($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP_INFO);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::WARN
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ function warn($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP_WARN);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::ERROR
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ function error($Object, $Label=null) {
+ return $this->fb($Object, $Label, FirePHP_ERROR);
+ }
+
+ /**
+ * Dumps key and variable to firebug server panel
+ *
+ * @see FirePHP::DUMP
+ * @param string $Key
+ * @param mixed $Variable
+ * @return true
+ * @throws Exception
+ */
+ function dump($Key, $Variable) {
+ return $this->fb($Variable, $Key, FirePHP_DUMP);
+ }
+
+ /**
+ * Log a trace in the firebug console
+ *
+ * @see FirePHP::TRACE
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ function trace($Label) {
+ return $this->fb($Label, FirePHP_TRACE);
+ }
+
+ /**
+ * Log a table in the firebug console
+ *
+ * @see FirePHP::TABLE
+ * @param string $Label
+ * @param string $Table
+ * @return true
+ * @throws Exception
+ */
+ function table($Label, $Table) {
+ return $this->fb($Table, $Label, FirePHP_TABLE);
+ }
+
+ /**
+ * Check if FirePHP is installed on client
+ *
+ * @return boolean
+ */
+ function detectClientExtension() {
+ /* Check if FirePHP is installed on client */
+ if(!@preg_match_all('/\sFirePHP\/([\.|\d]*)\s?/si',$this->getUserAgent(),$m) ||
+ !version_compare($m[1][0],'0.0.6','>=')) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Log varible to Firebug
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object The variable to be logged
+ * @return true Return TRUE if message was added to headers, FALSE otherwise
+ * @throws Exception
+ */
+ function fb($Object) {
+
+ if(!$this->enabled) {
+ return false;
+ }
+
+ if (headers_sent($filename, $linenum)) {
+ trigger_error('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
+ }
+
+ $Type = null;
+ $Label = null;
+ $Options = array();
+
+ if(func_num_args()==1) {
+ } else
+ if(func_num_args()==2) {
+ switch(func_get_arg(1)) {
+ case FirePHP_LOG:
+ case FirePHP_INFO:
+ case FirePHP_WARN:
+ case FirePHP_ERROR:
+ case FirePHP_DUMP:
+ case FirePHP_TRACE:
+ case FirePHP_TABLE:
+ case FirePHP_GROUP_START:
+ case FirePHP_GROUP_END:
+ $Type = func_get_arg(1);
+ break;
+ default:
+ $Label = func_get_arg(1);
+ break;
+ }
+ } else
+ if(func_num_args()==3) {
+ $Type = func_get_arg(2);
+ $Label = func_get_arg(1);
+ } else
+ if(func_num_args()==4) {
+ $Type = func_get_arg(2);
+ $Label = func_get_arg(1);
+ $Options = func_get_arg(3);
+ } else {
+ trigger_error('Wrong number of arguments to fb() function!');
+ }
+
+
+ if(!$this->detectClientExtension()) {
+ return false;
+ }
+
+ $meta = array();
+ $skipFinalObjectEncode = false;
+
+ if($Type==FirePHP_TRACE) {
+
+ $trace = debug_backtrace();
+ if(!$trace) return false;
+ for( $i=0 ; $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if($trace[$i]['function']=='fb'
+ || $trace[$i]['function']=='trace'
+ || $trace[$i]['function']=='send') {
+ $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
+ 'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
+ 'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
+ 'Message'=>$trace[$i]['args'][0],
+ 'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
+ 'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
+ 'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
+ 'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
+
+ $skipFinalObjectEncode = true;
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ } else
+ if($Type==FirePHP_TABLE) {
+
+ if(isset($Object[0]) && is_string($Object[0])) {
+ $Object[1] = $this->encodeTable($Object[1]);
+ } else {
+ $Object = $this->encodeTable($Object);
+ }
+
+ $skipFinalObjectEncode = true;
+
+ } else
+ if($Type==FirePHP_GROUP_START) {
+
+ if(!$Label) {
+ trigger_error('You must specify a label for the group!');
+ }
+ } else {
+ if($Type===null) {
+ $Type = FirePHP_LOG;
+ }
+ }
+
+ if($this->options['includeLineNumbers']) {
+ if(!isset($meta['file']) || !isset($meta['line'])) {
+
+ $trace = debug_backtrace();
+ for( $i=0 ; $trace && $i_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+ || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+ } else
+ if(isset($trace[$i]['class'])
+ && isset($trace[$i+1]['file'])
+ && $trace[$i]['class']=='FirePHP'
+ && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip fb() */
+ } else
+ if(isset($trace[$i]['file'])
+ && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
+ /* Skip FB::fb() */
+ } else {
+ $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+ $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+ break;
+ }
+ }
+
+ }
+ } else {
+ unset($meta['file']);
+ unset($meta['line']);
+ }
+
+ $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
+ $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.FirePHP_VERSION);
+
+ $structure_index = 1;
+ if($Type==FirePHP_DUMP) {
+ $structure_index = 2;
+ $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
+ } else {
+ $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
+ }
+
+ if($Type==FirePHP_DUMP) {
+ $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
+ } else {
+ $msg_meta = $Options;
+ $msg_meta['Type'] = $Type;
+ if($Label!==null) {
+ $msg_meta['Label'] = $Label;
+ }
+ if(isset($meta['file']) && !isset($msg_meta['File'])) {
+ $msg_meta['File'] = $meta['file'];
+ }
+ if(isset($meta['line']) && !isset($msg_meta['Line'])) {
+ $msg_meta['Line'] = $meta['line'];
+ }
+ $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
+ }
+
+ $parts = explode("\n",chunk_split($msg, 5000, "\n"));
+
+ for( $i=0 ; $i2) {
+ // Message needs to be split into multiple parts
+ $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ (($i==0)?strlen($msg):'')
+ . '|' . $part . '|'
+ . (($isetHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+ strlen($part) . '|' . $part . '|');
+ }
+
+ $this->messageIndex++;
+
+ if ($this->messageIndex > 99999) {
+ trigger_error('Maximum number (99,999) of messages reached!');
+ }
+ }
+ }
+
+ $this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
+
+ return true;
+ }
+
+
+ /**
+ * Standardizes path for windows systems.
+ *
+ * @param string $Path
+ * @return string
+ */
+ function _standardizePath($Path) {
+ return preg_replace('/\\\\+/','/',$Path);
+ }
+
+ /**
+ * Escape trace path for windows systems
+ *
+ * @param array $Trace
+ * @return array
+ */
+ function _escapeTrace($Trace) {
+ if(!$Trace) return $Trace;
+ for( $i=0 ; $i_escapeTraceFile($Trace[$i]['file']);
+ }
+ if(isset($Trace[$i]['args'])) {
+ $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
+ }
+ }
+ return $Trace;
+ }
+
+ /**
+ * Escape file information of trace for windows systems
+ *
+ * @param string $File
+ * @return string
+ */
+ function _escapeTraceFile($File) {
+ /* Check if we have a windows filepath */
+ if(strpos($File,'\\')) {
+ /* First strip down to single \ */
+
+ $file = preg_replace('/\\\\+/','\\',$File);
+
+ return $file;
+ }
+ return $File;
+ }
+
+ /**
+ * Send header
+ *
+ * @param string $Name
+ * @param string_type $Value
+ */
+ function setHeader($Name, $Value) {
+ return header($Name.': '.$Value);
+ }
+
+ /**
+ * Get user agent
+ *
+ * @return string|false
+ */
+ function getUserAgent() {
+ if(!isset($_SERVER['HTTP_USER_AGENT'])) return false;
+ return $_SERVER['HTTP_USER_AGENT'];
+ }
+
+ /**
+ * Encode an object into a JSON string
+ *
+ * Uses PHP's jeson_encode() if available
+ *
+ * @param object $Object The object to be encoded
+ * @return string The JSON string
+ */
+ function jsonEncode($Object, $skipObjectEncode=false)
+ {
+ if(!$skipObjectEncode) {
+ $Object = $this->encodeObject($Object);
+ }
+
+ if(function_exists('json_encode')
+ && $this->options['useNativeJsonEncode']!=false) {
+
+ return json_encode($Object);
+ } else {
+ return $this->json_encode($Object);
+ }
+ }
+
+ /**
+ * Encodes a table by encoding each row and column with encodeObject()
+ *
+ * @param array $Table The table to be encoded
+ * @return array
+ */
+ function encodeTable($Table) {
+
+ if(!$Table) return $Table;
+
+ $new_table = array();
+ foreach($Table as $row) {
+
+ if(is_array($row)) {
+ $new_row = array();
+
+ foreach($row as $item) {
+ $new_row[] = $this->encodeObject($item);
+ }
+
+ $new_table[] = $new_row;
+ }
+ }
+
+ return $new_table;
+ }
+
+ /**
+ * Encodes an object
+ *
+ * @param Object $Object The object to be encoded
+ * @param int $Depth The current traversal depth
+ * @return array All members of the object
+ */
+ function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1)
+ {
+ $return = array();
+
+ if (is_resource($Object)) {
+
+ return '** '.(string)$Object.' **';
+
+ } else
+ if (is_object($Object)) {
+
+ if ($ObjectDepth > $this->options['maxObjectDepth']) {
+ return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
+ }
+
+ foreach ($this->objectStack as $refVal) {
+ if ($refVal === $Object) {
+ return '** Recursion ('.get_class($Object).') **';
+ }
+ }
+ array_push($this->objectStack, $Object);
+
+ $return['__className'] = $class = get_class($Object);
+ $class_lower = strtolower($class);
+
+ $members = (array)$Object;
+
+ // Include all members that are not defined in the class
+ // but exist in the object
+ foreach( $members as $raw_name => $value ) {
+
+ $name = $raw_name;
+
+ if ($name{0} == "\0") {
+ $parts = explode("\0", $name);
+ $name = $parts[2];
+ }
+
+ if(!isset($properties[$name])) {
+ $name = 'undeclared:'.$name;
+
+ if(!(isset($this->objectFilters[$class_lower])
+ && is_array($this->objectFilters[$class_lower])
+ && in_array($raw_name,$this->objectFilters[$class_lower]))) {
+
+ $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1);
+ } else {
+ $return[$name] = '** Excluded by Filter **';
+ }
+ }
+ }
+
+ array_pop($this->objectStack);
+
+ } elseif (is_array($Object)) {
+
+ if ($ArrayDepth > $this->options['maxArrayDepth']) {
+ return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
+ }
+
+ foreach ($Object as $key => $val) {
+
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($key=='GLOBALS'
+ && is_array($val)
+ && array_key_exists('GLOBALS',$val)) {
+ $val['GLOBALS'] = '** Recursion (GLOBALS) **';
+ }
+
+ $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1);
+ }
+ } else {
+ if($this->is_utf8($Object)) {
+ return $Object;
+ } else {
+ return utf8_encode($Object);
+ }
+ }
+ return $return;
+
+ }
+
+ /**
+ * Returns true if $string is valid UTF-8 and false otherwise.
+ *
+ * @param mixed $str String to be tested
+ * @return boolean
+ */
+ function is_utf8($str) {
+ $c=0; $b=0;
+ $bits=0;
+ $len=strlen($str);
+ for($i=0; $i<$len; $i++){
+ $c=ord($str[$i]);
+ if($c > 128){
+ if(($c >= 254)) return false;
+ elseif($c >= 252) $bits=6;
+ elseif($c >= 248) $bits=5;
+ elseif($c >= 240) $bits=4;
+ elseif($c >= 224) $bits=3;
+ elseif($c >= 192) $bits=2;
+ else return false;
+ if(($i+$bits) > $len) return false;
+ while($bits > 1){
+ $i++;
+ $b=ord($str[$i]);
+ if($b < 128 || $b > 191) return false;
+ $bits--;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Converts to and from JSON format.
+ *
+ * JSON (JavaScript Object Notation) is a lightweight data-interchange
+ * format. It is easy for humans to read and write. It is easy for machines
+ * to parse and generate. It is based on a subset of the JavaScript
+ * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
+ * This feature can also be found in Python. JSON is a text format that is
+ * completely language independent but uses conventions that are familiar
+ * to programmers of the C-family of languages, including C, C++, C#, Java,
+ * JavaScript, Perl, TCL, and many others. These properties make JSON an
+ * ideal data-interchange language.
+ *
+ * This package provides a simple encoder and decoder for JSON notation. It
+ * is intended for use with client-side Javascript applications that make
+ * use of HTTPRequest to perform server communication functions - data can
+ * be encoded into JSON notation for use in a client-side javascript, or
+ * decoded from incoming Javascript requests. JSON format is native to
+ * Javascript, and can be directly eval()'ed with no further parsing
+ * overhead
+ *
+ * All strings should be in ASCII or UTF-8 format!
+ *
+ * LICENSE: Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: Redistributions of source code must retain the
+ * above copyright notice, this list of conditions and the following
+ * disclaimer. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * @category
+ * @package Services_JSON
+ * @author Michal Migurski
+ * @author Matt Knapp
+ * @author Brett Stimmerman
+ * @author Christoph Dorn
+ * @copyright 2005 Michal Migurski
+ * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
+ */
+
+
+ /**
+ * Keep a list of objects as we descend into the array so we can detect recursion.
+ */
+ var $json_objectStack = array();
+
+
+ /**
+ * convert a string from one UTF-8 char to one UTF-16 char
+ *
+ * Normally should be handled by mb_convert_encoding, but
+ * provides a slower PHP-only method for installations
+ * that lack the multibye string extension.
+ *
+ * @param string $utf8 UTF-8 character
+ * @return string UTF-16 character
+ * @access private
+ */
+ function json_utf82utf16($utf8)
+ {
+ // oh please oh please oh please oh please oh please
+ if(function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+ }
+
+ switch(strlen($utf8)) {
+ case 1:
+ // this case should never be reached, because we are in ASCII range
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return $utf8;
+
+ case 2:
+ // return a UTF-16 character from a 2-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr(0x07 & (ord($utf8{0}) >> 2))
+ . chr((0xC0 & (ord($utf8{0}) << 6))
+ | (0x3F & ord($utf8{1})));
+
+ case 3:
+ // return a UTF-16 character from a 3-byte UTF-8 char
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ return chr((0xF0 & (ord($utf8{0}) << 4))
+ | (0x0F & (ord($utf8{1}) >> 2)))
+ . chr((0xC0 & (ord($utf8{1}) << 6))
+ | (0x7F & ord($utf8{2})));
+ }
+
+ // ignoring UTF-32 for now, sorry
+ return '';
+ }
+
+ /**
+ * encodes an arbitrary variable into JSON format
+ *
+ * @param mixed $var any number, boolean, string, array, or object to be encoded.
+ * see argument 1 to Services_JSON() above for array-parsing behavior.
+ * if var is a strng, note that encode() always expects it
+ * to be in ASCII or UTF-8 format!
+ *
+ * @return mixed JSON string representation of input var or an error if a problem occurs
+ * @access public
+ */
+ function json_encode($var)
+ {
+
+ if(is_object($var)) {
+ if(in_array($var,$this->json_objectStack)) {
+ return '"** Recursion **"';
+ }
+ }
+
+ switch (gettype($var)) {
+ case 'boolean':
+ return $var ? 'true' : 'false';
+
+ case 'NULL':
+ return 'null';
+
+ case 'integer':
+ return (int) $var;
+
+ case 'double':
+ case 'float':
+ return (float) $var;
+
+ case 'string':
+ // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
+ $ascii = '';
+ $strlen_var = strlen($var);
+
+ /*
+ * Iterate over every character in the string,
+ * escaping with a slash or encoding to UTF-8 where necessary
+ */
+ for ($c = 0; $c < $strlen_var; ++$c) {
+
+ $ord_var_c = ord($var{$c});
+
+ switch (true) {
+ case $ord_var_c == 0x08:
+ $ascii .= '\b';
+ break;
+ case $ord_var_c == 0x09:
+ $ascii .= '\t';
+ break;
+ case $ord_var_c == 0x0A:
+ $ascii .= '\n';
+ break;
+ case $ord_var_c == 0x0C:
+ $ascii .= '\f';
+ break;
+ case $ord_var_c == 0x0D:
+ $ascii .= '\r';
+ break;
+
+ case $ord_var_c == 0x22:
+ case $ord_var_c == 0x2F:
+ case $ord_var_c == 0x5C:
+ // double quote, slash, slosh
+ $ascii .= '\\'.$var{$c};
+ break;
+
+ case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
+ // characters U-00000000 - U-0000007F (same as ASCII)
+ $ascii .= $var{$c};
+ break;
+
+ case (($ord_var_c & 0xE0) == 0xC0):
+ // characters U-00000080 - U-000007FF, mask 110XXXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
+ $c += 1;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF0) == 0xE0):
+ // characters U-00000800 - U-0000FFFF, mask 1110XXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}));
+ $c += 2;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xF8) == 0xF0):
+ // characters U-00010000 - U-001FFFFF, mask 11110XXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}));
+ $c += 3;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFC) == 0xF8):
+ // characters U-00200000 - U-03FFFFFF, mask 111110XX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}));
+ $c += 4;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+
+ case (($ord_var_c & 0xFE) == 0xFC):
+ // characters U-04000000 - U-7FFFFFFF, mask 1111110X
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $char = pack('C*', $ord_var_c,
+ ord($var{$c + 1}),
+ ord($var{$c + 2}),
+ ord($var{$c + 3}),
+ ord($var{$c + 4}),
+ ord($var{$c + 5}));
+ $c += 5;
+ $utf16 = $this->json_utf82utf16($char);
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
+ break;
+ }
+ }
+
+ return '"'.$ascii.'"';
+
+ case 'array':
+ /*
+ * As per JSON spec if any array key is not an integer
+ * we must treat the the whole array as an object. We
+ * also try to catch a sparsely populated associative
+ * array with numeric keys here because some JS engines
+ * will create an array with empty indexes up to
+ * max_index which can cause memory issues and because
+ * the keys, which may be relevant, will be remapped
+ * otherwise.
+ *
+ * As per the ECMA and JSON specification an object may
+ * have any string as a property. Unfortunately due to
+ * a hole in the ECMA specification if the key is a
+ * ECMA reserved word or starts with a digit the
+ * parameter is only accessible using ECMAScript's
+ * bracket notation.
+ */
+
+ // treat as a JSON object
+ if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($var),
+ array_values($var));
+
+ array_pop($this->json_objectStack);
+
+ return '{' . join(',', $properties) . '}';
+ }
+
+ $this->json_objectStack[] = $var;
+
+ // treat it like a regular array
+ $elements = array_map(array($this, 'json_encode'), $var);
+
+ array_pop($this->json_objectStack);
+
+ return '[' . join(',', $elements) . ']';
+
+ case 'object':
+ $vars = FirePHP::encodeObject($var);
+
+ $this->json_objectStack[] = $var;
+
+ $properties = array_map(array($this, 'json_name_value'),
+ array_keys($vars),
+ array_values($vars));
+
+ array_pop($this->json_objectStack);
+
+ return '{' . join(',', $properties) . '}';
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * array-walking function for use in generating JSON-formatted name-value pairs
+ *
+ * @param string $name name of key to use
+ * @param mixed $value reference to an array element to be encoded
+ *
+ * @return string JSON-formatted name-value pair, like '"name":value'
+ * @access private
+ */
+ function json_name_value($name, $value)
+ {
+ // Encoding the $GLOBALS PHP array causes an infinite loop
+ // if the recursion is not reset here as it contains
+ // a reference to itself. This is the only way I have come up
+ // with to stop infinite recursion in this case.
+ if($name=='GLOBALS'
+ && is_array($value)
+ && array_key_exists('GLOBALS',$value)) {
+ $value['GLOBALS'] = '** Recursion **';
+ }
+
+ $encoded_value = $this->json_encode($value);
+
+ return $this->json_encode(strval($name)) . ':' . $encoded_value;
+ }
+}
+
diff --git a/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/LICENSE b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/LICENSE
new file mode 100644
index 0000000000..3e390f9d96
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/LICENSE
@@ -0,0 +1,29 @@
+Software License Agreement (New BSD License)
+
+Copyright (c) 2006-2009, Christoph Dorn
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ * Neither the name of Christoph Dorn nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php
new file mode 100644
index 0000000000..9d1857cbc9
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php
@@ -0,0 +1,261 @@
+
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+
+require_once dirname(__FILE__).'/FirePHP.class.php';
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object
+ * @return true
+ * @throws Exception
+ */
+function fb()
+{
+ $instance = FirePHP::getInstance(true);
+
+ $args = func_get_args();
+ return call_user_func_array(array($instance,'fb'),$args);
+}
+
+
+class FB
+{
+ /**
+ * Enable and disable logging to Firebug
+ *
+ * @see FirePHP->setEnabled()
+ * @param boolean $Enabled TRUE to enable, FALSE to disable
+ * @return void
+ */
+ public static function setEnabled($Enabled) {
+ $instance = FirePHP::getInstance(true);
+ $instance->setEnabled($Enabled);
+ }
+
+ /**
+ * Check if logging is enabled
+ *
+ * @see FirePHP->getEnabled()
+ * @return boolean TRUE if enabled
+ */
+ public static function getEnabled() {
+ $instance = FirePHP::getInstance(true);
+ return $instance->getEnabled();
+ }
+
+ /**
+ * Specify a filter to be used when encoding an object
+ *
+ * Filters are used to exclude object members.
+ *
+ * @see FirePHP->setObjectFilter()
+ * @param string $Class The class name of the object
+ * @param array $Filter An array or members to exclude
+ * @return void
+ */
+ public static function setObjectFilter($Class, $Filter) {
+ $instance = FirePHP::getInstance(true);
+ $instance->setObjectFilter($Class, $Filter);
+ }
+
+ /**
+ * Set some options for the library
+ *
+ * @see FirePHP->setOptions()
+ * @param array $Options The options to be set
+ * @return void
+ */
+ public static function setOptions($Options) {
+ $instance = FirePHP::getInstance(true);
+ $instance->setOptions($Options);
+ }
+
+ /**
+ * Get options for the library
+ *
+ * @see FirePHP->getOptions()
+ * @return array The options
+ */
+ public static function getOptions() {
+ $instance = FirePHP::getInstance(true);
+ return $instance->getOptions();
+ }
+
+ /**
+ * Log object to firebug
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object
+ * @return true
+ * @throws Exception
+ */
+ public static function send()
+ {
+ $instance = FirePHP::getInstance(true);
+ $args = func_get_args();
+ return call_user_func_array(array($instance,'fb'),$args);
+ }
+
+ /**
+ * Start a group for following messages
+ *
+ * Options:
+ * Collapsed: [true|false]
+ * Color: [#RRGGBB|ColorName]
+ *
+ * @param string $Name
+ * @param array $Options OPTIONAL Instructions on how to log the group
+ * @return true
+ */
+ public static function group($Name, $Options=null) {
+ $instance = FirePHP::getInstance(true);
+ return $instance->group($Name, $Options);
+ }
+
+ /**
+ * Ends a group you have started before
+ *
+ * @return true
+ * @throws Exception
+ */
+ public static function groupEnd() {
+ return self::send(null, null, FirePHP::GROUP_END);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::LOG
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public static function log($Object, $Label=null) {
+ return self::send($Object, $Label, FirePHP::LOG);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::INFO
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public static function info($Object, $Label=null) {
+ return self::send($Object, $Label, FirePHP::INFO);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::WARN
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public static function warn($Object, $Label=null) {
+ return self::send($Object, $Label, FirePHP::WARN);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::ERROR
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public static function error($Object, $Label=null) {
+ return self::send($Object, $Label, FirePHP::ERROR);
+ }
+
+ /**
+ * Dumps key and variable to firebug server panel
+ *
+ * @see FirePHP::DUMP
+ * @param string $Key
+ * @param mixed $Variable
+ * @return true
+ * @throws Exception
+ */
+ public static function dump($Key, $Variable) {
+ return self::send($Variable, $Key, FirePHP::DUMP);
+ }
+
+ /**
+ * Log a trace in the firebug console
+ *
+ * @see FirePHP::TRACE
+ * @param string $Label
+ * @return true
+ * @throws Exception
+ */
+ public static function trace($Label) {
+ return self::send($Label, FirePHP::TRACE);
+ }
+
+ /**
+ * Log a table in the firebug console
+ *
+ * @see FirePHP::TABLE
+ * @param string $Label
+ * @param string $Table
+ * @return true
+ * @throws Exception
+ */
+ public static function table($Label, $Table) {
+ return self::send($Table, $Label, FirePHP::TABLE);
+ }
+
+}
+
diff --git a/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php4 b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php4
new file mode 100644
index 0000000000..5b69e34873
--- /dev/null
+++ b/plugins/FirePHP/extlib/FirePHP/lib/FirePHPCore/fb.php4
@@ -0,0 +1,251 @@
+
+ * @author Michael Day
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @package FirePHP
+ */
+
+require_once dirname(__FILE__).'/FirePHP.class.php4';
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object
+ * @return true
+ * @throws Exception
+ */
+function fb()
+{
+ $instance =& FirePHP::getInstance(true);
+
+ $args = func_get_args();
+ return call_user_func_array(array(&$instance,'fb'),$args);
+}
+
+
+class FB
+{
+ /**
+ * Enable and disable logging to Firebug
+ *
+ * @see FirePHP->setEnabled()
+ * @param boolean $Enabled TRUE to enable, FALSE to disable
+ * @return void
+ */
+ function setEnabled($Enabled) {
+ $instance =& FirePHP::getInstance(true);
+ $instance->setEnabled($Enabled);
+ }
+
+ /**
+ * Check if logging is enabled
+ *
+ * @see FirePHP->getEnabled()
+ * @return boolean TRUE if enabled
+ */
+ function getEnabled() {
+ $instance =& FirePHP::getInstance(true);
+ return $instance->getEnabled();
+ }
+
+ /**
+ * Specify a filter to be used when encoding an object
+ *
+ * Filters are used to exclude object members.
+ *
+ * @see FirePHP->setObjectFilter()
+ * @param string $Class The class name of the object
+ * @param array $Filter An array or members to exclude
+ * @return void
+ */
+ function setObjectFilter($Class, $Filter) {
+ $instance =& FirePHP::getInstance(true);
+ $instance->setObjectFilter($Class, $Filter);
+ }
+
+ /**
+ * Set some options for the library
+ *
+ * @see FirePHP->setOptions()
+ * @param array $Options The options to be set
+ * @return void
+ */
+ function setOptions($Options) {
+ $instance =& FirePHP::getInstance(true);
+ $instance->setOptions($Options);
+ }
+
+ /**
+ * Get options for the library
+ *
+ * @see FirePHP->getOptions()
+ * @return array The options
+ */
+ function getOptions() {
+ $instance =& FirePHP::getInstance(true);
+ return $instance->getOptions();
+ }
+
+ /**
+ * Log object to firebug
+ *
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object
+ * @return true
+ */
+ function send()
+ {
+ $instance =& FirePHP::getInstance(true);
+ $args = func_get_args();
+ return call_user_func_array(array(&$instance,'fb'),$args);
+ }
+
+ /**
+ * Start a group for following messages
+ *
+ * Options:
+ * Collapsed: [true|false]
+ * Color: [#RRGGBB|ColorName]
+ *
+ * @param string $Name
+ * @param array $Options OPTIONAL Instructions on how to log the group
+ * @return true
+ */
+ function group($Name, $Options=null) {
+ $instance =& FirePHP::getInstance(true);
+ return $instance->group($Name, $Options);
+ }
+
+ /**
+ * Ends a group you have started before
+ *
+ * @return true
+ */
+ function groupEnd() {
+ return FB::send(null, null, FirePHP_GROUP_END);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::LOG
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ */
+ function log($Object, $Label=null) {
+ return FB::send($Object, $Label, FirePHP_LOG);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::INFO
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ */
+ function info($Object, $Label=null) {
+ return FB::send($Object, $Label, FirePHP_INFO);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::WARN
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ */
+ function warn($Object, $Label=null) {
+ return FB::send($Object, $Label, FirePHP_WARN);
+ }
+
+ /**
+ * Log object with label to firebug console
+ *
+ * @see FirePHP::ERROR
+ * @param mixes $Object
+ * @param string $Label
+ * @return true
+ */
+ function error($Object, $Label=null) {
+ return FB::send($Object, $Label, FirePHP_ERROR);
+ }
+
+ /**
+ * Dumps key and variable to firebug server panel
+ *
+ * @see FirePHP::DUMP
+ * @param string $Key
+ * @param mixed $Variable
+ * @return true
+ */
+ function dump($Key, $Variable) {
+ return FB::send($Variable, $Key, FirePHP_DUMP);
+ }
+
+ /**
+ * Log a trace in the firebug console
+ *
+ * @see FirePHP::TRACE
+ * @param string $Label
+ * @return true
+ */
+ function trace($Label) {
+ return FB::send($Label, FirePHP_TRACE);
+ }
+
+ /**
+ * Log a table in the firebug console
+ *
+ * @see FirePHP::TABLE
+ * @param string $Label
+ * @param string $Table
+ * @return true
+ */
+ function table($Label, $Table) {
+ return FB::send($Table, $Label, FirePHP_TABLE);
+ }
+}
From c9fcd73798ffb7ac050af510d65771aa1020a438 Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Sat, 5 Dec 2009 18:47:44 +0100
Subject: [PATCH 33/51] Changed input.submit style
---
.../images/illustrations/illu_pattern-01.png | Bin 0 -> 538 bytes
theme/default/css/display.css | 22 +++++++++++++++++-
theme/identica/css/display.css | 22 +++++++++++++++++-
3 files changed, 42 insertions(+), 2 deletions(-)
create mode 100644 theme/base/images/illustrations/illu_pattern-01.png
diff --git a/theme/base/images/illustrations/illu_pattern-01.png b/theme/base/images/illustrations/illu_pattern-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..833309e587081595bc549479a656b7dc29f0ddd4
GIT binary patch
literal 538
zcmV+#0_FXQP)Px$)Ja4^RA}DqSV3;XFbt!B{r^RK*t#CL!~Sis`%|0qz#hGX6Ue4a4DBqB^?
zx4KvaY=pr)+lZGN75dNE;{uxxj6@SDlPZ#m%;9p7Mn-0meMZyjA}x^k*?Y!k2S%!8
zv#S3nm}dcEwvlLYii~ERYuWb4jb#2!p-5IUsN@t!*LwD1D9A<1g@}=xSkzXH;F4ri
z2i+K1?U_~`NntFiZHIt*ElNd{5VSN9I)y32P^7hzjMXg)m5tmlE}+W2EMO*TUJs1?
zYm7OPMMJg9X9dNaTDEt;GmOkGG;1!iyrbHUSNB>7tdqgmnQq~9%$V%n1e|a!6v<6x
z4AqRN8)j16GN*DSw&jR2`Ro{T`l&028*ae7I>JQDRfeFnCmsu_wEpaD>S`Ui6;SIr
z)+-M6%#&922b6k>B6qr89k~@O4x(*G24E9GJlyx}S2=5%sTa@u*xEm=?&2Z96^TWs
zCCZU(+5uEZ3k%6zac=f7)&PK{0f3p2q?y?svGMnI?cE#S5nUH|3`C>RXfzs)Mx)Va
cG#Wd;04~J|s*~4%!~g&Q07*qoM6N<$g12b(N&o-=
literal 0
HcmV?d00001
diff --git a/theme/default/css/display.css b/theme/default/css/display.css
index ad64b4198f..d11bbe15e3 100644
--- a/theme/default/css/display.css
+++ b/theme/default/css/display.css
@@ -55,7 +55,6 @@ border-color:#DDDDDD;
background:none;
}
-input.submit,
.form_notice.warning #notice_text-count,
.form_settings .form_note,
.entity_remote_subscribe,
@@ -92,6 +91,27 @@ input.submit,
.entity_actions .form_notice input.submit {
color:#FFFFFF;
}
+input.submit {
+background:#AAAAAA url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x;
+text-shadow:0 1px 0 #FFFFFF;
+color:#000000;
+border-color:#AAAAAA;
+border-top-color:#CCCCCC;
+border-left-color:#CCCCCC;
+}
+input.submit:hover {
+background-position:0 -5px;
+}
+input.submit:focus {
+background-position:0 -15px;
+box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+text-shadow:none;
+}
+.entity_actions input.submit {
+text-shadow:none;
+}
a,
.form_settings input.form_action-primary,
diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css
index d5a5d38dee..d65ea2ef63 100644
--- a/theme/identica/css/display.css
+++ b/theme/identica/css/display.css
@@ -55,7 +55,6 @@ border-color:#DDDDDD;
background:none;
}
-input.submit,
.form_notice.warning #notice_text-count,
.form_settings .form_note,
.entity_remote_subscribe,
@@ -92,6 +91,27 @@ input.submit,
.entity_actions .form_notice input.submit {
color:#FFFFFF;
}
+input.submit {
+background:#AAAAAA url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x;
+text-shadow:0 1px 0 #FFFFFF;
+color:#000000;
+border-color:#AAAAAA;
+border-top-color:#CCCCCC;
+border-left-color:#CCCCCC;
+}
+input.submit:hover {
+background-position:0 -5px;
+}
+input.submit:focus {
+background-position:0 -15px;
+box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
+text-shadow:none;
+}
+.entity_actions input.submit {
+text-shadow:none;
+}
a,
.form_settings input.form_action-primary,
From 197a823be4713d4644491ec99cf00a70454c3086 Mon Sep 17 00:00:00 2001
From: Siebrand Mazeland
Date: Sat, 5 Dec 2009 21:01:18 +0100
Subject: [PATCH 34/51] Localisation updates for !StatusNet from
!translatewiki.net !sntrans
---
locale/ar/LC_MESSAGES/statusnet.po | 121 +-
locale/bg/LC_MESSAGES/statusnet.po | 94 +-
locale/ca/LC_MESSAGES/statusnet.po | 122 +-
locale/cs/LC_MESSAGES/statusnet.po | 196 +-
locale/de/LC_MESSAGES/statusnet.po | 296 ++-
locale/el/LC_MESSAGES/statusnet.po | 130 +-
locale/en_GB/LC_MESSAGES/statusnet.po | 94 +-
locale/es/LC_MESSAGES/statusnet.po | 94 +-
locale/fi/LC_MESSAGES/statusnet.po | 94 +-
locale/fr/LC_MESSAGES/statusnet.po | 369 +--
locale/ga/LC_MESSAGES/statusnet.po | 94 +-
locale/he/LC_MESSAGES/statusnet.po | 94 +-
locale/hsb/LC_MESSAGES/statusnet.po | 3139 ++++++++++++++++++++++++-
locale/is/LC_MESSAGES/statusnet.po | 94 +-
locale/it/LC_MESSAGES/statusnet.po | 94 +-
locale/ja/LC_MESSAGES/statusnet.po | 94 +-
locale/ko/LC_MESSAGES/statusnet.po | 94 +-
locale/mk/LC_MESSAGES/statusnet.po | 94 +-
locale/nb/LC_MESSAGES/statusnet.po | 94 +-
locale/nl/LC_MESSAGES/statusnet.po | 101 +-
locale/nn/LC_MESSAGES/statusnet.po | 94 +-
locale/pl/LC_MESSAGES/statusnet.po | 94 +-
locale/pt/LC_MESSAGES/statusnet.po | 188 +-
locale/pt_BR/LC_MESSAGES/statusnet.po | 98 +-
locale/ru/LC_MESSAGES/statusnet.po | 101 +-
locale/statusnet.po | 88 +-
locale/sv/LC_MESSAGES/statusnet.po | 1086 ++++-----
locale/te/LC_MESSAGES/statusnet.po | 94 +-
locale/tr/LC_MESSAGES/statusnet.po | 94 +-
locale/uk/LC_MESSAGES/statusnet.po | 167 +-
locale/vi/LC_MESSAGES/statusnet.po | 94 +-
locale/zh_CN/LC_MESSAGES/statusnet.po | 94 +-
locale/zh_TW/LC_MESSAGES/statusnet.po | 94 +-
33 files changed, 5507 insertions(+), 2481 deletions(-)
diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po
index 2b8f80bdc8..1cffffcf3d 100644
--- a/locale/ar/LC_MESSAGES/statusnet.po
+++ b/locale/ar/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:01+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:53:47+0000\n"
"Language-Team: Arabic\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ar\n"
"X-Message-Group: out-statusnet\n"
@@ -181,7 +181,12 @@ msgstr "ليس للمستخدم ملف شخصي."
msgid "Could not save profile."
msgstr "تعذّر حفظ الملف الشخصي."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "لا يمكنك حذف المستخدمين."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "فشل منع المستخدم."
@@ -805,100 +810,100 @@ msgstr "التصميم"
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "مسار شعار غير صالح."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "السمة غير متوفرة: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "غيّر الشعار"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "شعار الموقع"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "غيّر السمة"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "سمة الموقع"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "سمة الموقع."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "تغيير صورة الخلفية"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "الخلفية"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr ""
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "مكّن"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "عطّل"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "مكّن صورة الخلفية أو عطّلها."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "تغيير الألوان"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "المحتوى"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "الشريط الجانبي"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "النص"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "وصلات"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "استخدم المبدئيات"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "استعد التصميمات المبدئية"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "ارجع إلى المبدئي"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -908,7 +913,7 @@ msgstr "ارجع إلى المبدئي"
msgid "Save"
msgstr "أرسل"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "احفظ التصميم"
@@ -1135,16 +1140,16 @@ msgstr ""
#: actions/favorited.php:65 lib/popularnoticesection.php:88
#: lib/publicgroupnav.php:93
msgid "Popular notices"
-msgstr ""
+msgstr "إشعارات مشهورة"
#: actions/favorited.php:67
#, php-format
msgid "Popular notices, page %d"
-msgstr ""
+msgstr "إشعارات مشهورة، الصفحة %d"
#: actions/favorited.php:79
msgid "The most popular notices on the site right now."
-msgstr ""
+msgstr "أشهر الإشعارات على الموقع حاليًا."
#: actions/favorited.php:150
msgid "Favorite notices appear on this page but no one has favorited one yet."
@@ -1306,11 +1311,11 @@ msgstr "لا تمنع هذا المستخدم من هذه المجموعة"
#: actions/groupblock.php:179
msgid "Block this user from this group"
-msgstr ""
+msgstr "امنع هذا المستخدم من هذه المجموعة"
#: actions/groupblock.php:196
msgid "Database error blocking user from group."
-msgstr ""
+msgstr "خطأ في قاعدة البيانات أثناء منع المستخدم من المجموعة."
#: actions/groupbyid.php:74
msgid "No ID"
@@ -1330,18 +1335,18 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "تعذّر تحديث تصميمك."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr ""
@@ -1637,7 +1642,7 @@ msgstr "رسالة شخصية"
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "أرسل"
@@ -1922,8 +1927,8 @@ msgstr "نوع المحتوى "
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "ليس نسق بيانات مدعوم."
@@ -2500,7 +2505,7 @@ msgstr ""
#: actions/recoverpassword.php:352
msgid "Password must be 6 chars or more."
-msgstr ""
+msgstr "يجب أن تكون كلمة السر 6 محارف أو أكثر."
#: actions/recoverpassword.php:356
msgid "Password and confirmation do not match."
@@ -2516,7 +2521,7 @@ msgstr ""
#: actions/register.php:85 actions/register.php:189 actions/register.php:404
msgid "Sorry, only invited people can register."
-msgstr ""
+msgstr "عذرًا، الأشخاص المدعوون وحدهم يستطيعون التسجيل."
#: actions/register.php:92
msgid "Sorry, invalid invitation code."
@@ -3062,9 +3067,8 @@ msgid "Contact email address for your site"
msgstr "عنوان البريد الإلكتروني للاتصال بموقعك"
#: actions/siteadminpanel.php:290
-#, fuzzy
msgid "Local"
-msgstr "الموقع"
+msgstr "محلي"
#: actions/siteadminpanel.php:301
msgid "Default timezone"
@@ -3103,13 +3107,12 @@ msgid "Access"
msgstr "نفاذ"
#: actions/siteadminpanel.php:334
-#, fuzzy
msgid "Private"
-msgstr "خصوصية"
+msgstr "خاص"
#: actions/siteadminpanel.php:336
msgid "Prohibit anonymous users (not logged in) from viewing site?"
-msgstr ""
+msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟"
#: actions/siteadminpanel.php:340
#, fuzzy
@@ -4320,16 +4323,11 @@ msgid "Upload file"
msgstr "ارفع ملفًا"
#: lib/designsettings.php:109
-#, fuzzy
msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
-msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s."
+msgstr "تستطيع رفع صورتك الشخصية. أقصى حجم للملف هو 2 م.ب."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "استعيدت مبدئيات التصميم."
@@ -4773,7 +4771,7 @@ msgstr "أرسل إشعارًا مباشرًا"
msgid "To"
msgstr "إلى"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "المحارف المتوفرة"
@@ -4786,11 +4784,11 @@ msgstr "أرسل إشعارًا"
msgid "What's up, %s?"
msgstr "ما الأخبار يا %s؟"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "أرفق"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "أرفق ملفًا"
@@ -4955,7 +4953,7 @@ msgstr "مُختارون"
#: lib/publicgroupnav.php:92
msgid "Popular"
-msgstr ""
+msgstr "مشهورة"
#: lib/sandboxform.php:67
msgid "Sandbox"
@@ -5060,7 +5058,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "لست مُشتركًا!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "تعذّر حذف الاشتراك."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "تعذّر حذف الاشتراك."
diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po
index 8d020e0849..e5656cb5f2 100644
--- a/locale/bg/LC_MESSAGES/statusnet.po
+++ b/locale/bg/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:07+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:53:50+0000\n"
"Language-Team: Bulgarian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: bg\n"
"X-Message-Group: out-statusnet\n"
@@ -180,7 +180,12 @@ msgstr "Потребителят няма профил."
msgid "Could not save profile."
msgstr "Грешка при запазване на профила."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Не можете да спрете да следите себе си!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -818,106 +823,106 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Неправилен размер."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Страницата не е достъпна във вида медия, който приемате"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Смяна на логото"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Покани"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Промяна"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Нова бележка"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Излизане от сайта"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Смяна на изображението за фон"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Фон"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Може да качите лого за групата ви."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Вкл."
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Изкл."
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Смяна на цветовете"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Съдържание"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Страничен панел"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Текст"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Списък"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -927,7 +932,7 @@ msgstr ""
msgid "Save"
msgstr "Запазване"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1370,20 +1375,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Грешка при обновяване на потребителя."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Грешка при записване настройките за Twitter"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Настройките са запазени."
@@ -1699,7 +1704,7 @@ msgstr "Лично съобщение"
msgid "Optionally add a personal message to the invitation."
msgstr "Може да добавите и лично съобщение към поканата."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Прати"
@@ -2022,8 +2027,8 @@ msgstr "Свързване"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Неподдържан формат на данните"
@@ -4516,11 +4521,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Можете да качите личен аватар тук."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4978,7 +4979,7 @@ msgstr "Изпращане на пряко съобщеие"
msgid "To"
msgstr "До"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Налични знаци"
@@ -4991,11 +4992,11 @@ msgstr "Изпращане на бележка"
msgid "What's up, %s?"
msgstr "Какво става, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5272,7 +5273,12 @@ msgstr "Грешка при абониране на друг потребите
msgid "Not subscribed!"
msgstr "Не сте абонирани!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Грешка при изтриване на абонамента."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Грешка при изтриване на абонамента."
diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po
index 23102cfb12..b4e2f70370 100644
--- a/locale/ca/LC_MESSAGES/statusnet.po
+++ b/locale/ca/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:11+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:53:53+0000\n"
"Language-Team: Catalan\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ca\n"
"X-Message-Group: out-statusnet\n"
@@ -183,7 +183,12 @@ msgstr "L'usuari no té perfil."
msgid "Could not save profile."
msgstr "No s'ha pogut guardar el perfil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "No podeu suprimir els usuaris."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Ha fallat el bloqueig d'usuari."
@@ -266,7 +271,7 @@ msgstr "Aquesta notificació no és un favorit!"
#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
msgid "Could not delete favorite."
-msgstr "No pots eliminar favorits."
+msgstr "No s'ha pogut suprimir el preferit."
#: actions/apifriendshipscreate.php:109
msgid "Could not follow user: User not found."
@@ -834,102 +839,102 @@ msgstr "Disseny"
msgid "Design settings for this StatusNet site."
msgstr "Paràmetres de disseny d'aquest lloc StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Mida invàlida."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Aquesta pàgina no està disponible en "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Canvia el logotip"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Logotip del lloc"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Canvia el tema"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Avís del lloc"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Tema del lloc."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Canvia la imatge de fons"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Fons"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Pots pujar una imatge de logo per al grup."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Canvia els colors"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Contingut"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Barra lateral"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Text"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Enllaços"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -939,7 +944,7 @@ msgstr ""
msgid "Save"
msgstr "Guardar"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Desa el disseny"
@@ -949,7 +954,7 @@ msgstr "Aquesta notificació no és un favorit!"
#: actions/disfavor.php:94
msgid "Add to favorites"
-msgstr "Afegir a favorits"
+msgstr "Afegeix als preferits"
#: actions/doc.php:69
msgid "No such document."
@@ -1007,13 +1012,13 @@ msgstr "Adreça"
#: actions/emailsettings.php:105
msgid "Current confirmed email address."
-msgstr "Correu electrònic confirmat actualment."
+msgstr "Adreça electrònica confirmada actualment."
#: actions/emailsettings.php:107 actions/emailsettings.php:140
#: actions/imsettings.php:108 actions/smssettings.php:115
#: actions/smssettings.php:158
msgid "Remove"
-msgstr "Eliminar"
+msgstr "Suprimeix"
#: actions/emailsettings.php:113
msgid ""
@@ -1026,7 +1031,7 @@ msgstr ""
#: actions/emailsettings.php:117 actions/imsettings.php:120
#: actions/smssettings.php:126
msgid "Cancel"
-msgstr "Cancel·lar"
+msgstr "Cancel·la"
#: actions/emailsettings.php:121
msgid "Email Address"
@@ -1039,7 +1044,7 @@ msgstr "Correu electrònic, com Email address, like \"UserName@example.org\""
#: actions/emailsettings.php:126 actions/imsettings.php:133
#: actions/smssettings.php:145
msgid "Add"
-msgstr "Afegir"
+msgstr "Afegeix"
#: actions/emailsettings.php:133 actions/smssettings.php:152
msgid "Incoming email"
@@ -1048,7 +1053,7 @@ msgstr "Correu electrònic entrant"
#: actions/emailsettings.php:138 actions/smssettings.php:157
msgid "Send email to this address to post new notices."
msgstr ""
-"Enviar correu electrònic a aquesta direcció per publicar noves notificacions."
+"Envia correu electrònic a aquesta adreça per publicar noves notificacions."
#: actions/emailsettings.php:145 actions/smssettings.php:162
msgid "Make a new email address for posting to; cancels the old one."
@@ -1384,20 +1389,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "No s'ha pogut actualitzar l'usuari."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "No s'ha pogut guardar la teva configuració de Twitter!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Preferències de sincronització guardades."
@@ -1447,7 +1452,7 @@ msgstr "Admin"
#: actions/groupmembers.php:346 lib/blockform.php:69
msgid "Block"
-msgstr "Bloquejar"
+msgstr "Bloca"
#: actions/groupmembers.php:441
#, fuzzy
@@ -1724,9 +1729,9 @@ msgstr "Missatge personal"
msgid "Optionally add a personal message to the invitation."
msgstr "Opcionalment pots afegir un missatge a la invitació."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
-msgstr "Enviar"
+msgstr "Envia"
#: actions/invite.php:226
#, php-format
@@ -1937,7 +1942,7 @@ msgstr "Nou missatge"
#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:367
msgid "You can't send a message to this user."
-msgstr "No pots enviar un missatge a aquest usuari."
+msgstr "No podeu enviar un misssatge a aquest usuari."
#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:351
#: lib/command.php:424
@@ -2048,8 +2053,8 @@ msgstr "tipus de contingut "
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Format de data no suportat."
@@ -4514,9 +4519,8 @@ msgid ""
msgstr ""
#: lib/common.php:199
-#, fuzzy
msgid "No configuration file found. "
-msgstr "Cap codi de confirmació."
+msgstr "No s'ha trobat cap fitxer de configuració. "
#: lib/common.php:200
msgid "I looked for configuration files in the following places: "
@@ -4527,9 +4531,8 @@ msgid "You may wish to run the installer to fix this."
msgstr ""
#: lib/common.php:202
-#, fuzzy
msgid "Go to the installer."
-msgstr "Accedir a aquest lloc"
+msgstr "Vés a l'instal·lador."
#: lib/connectsettingsaction.php:110
msgid "IM"
@@ -4558,11 +4561,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Pots pujar el teu avatar personal."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5027,7 +5026,7 @@ msgstr "Enviar notificació directa"
msgid "To"
msgstr "A"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Caràcters disponibles"
@@ -5040,11 +5039,11 @@ msgstr "Enviar notificació"
msgid "What's up, %s?"
msgstr "Què tal, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5135,7 +5134,7 @@ msgstr "Respostes"
#: lib/personalgroupnav.php:114
msgid "Favorites"
-msgstr "Favorits"
+msgstr "Preferits"
#: lib/personalgroupnav.php:124
msgid "Inbox"
@@ -5322,7 +5321,12 @@ msgstr "No pots subscriure a un altre a tu mateix."
msgid "Not subscribed!"
msgstr "No estàs subscrit!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "No s'ha pogut eliminar la subscripció."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "No s'ha pogut eliminar la subscripció."
diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po
index f1e002a9d6..8501aacfa8 100644
--- a/locale/cs/LC_MESSAGES/statusnet.po
+++ b/locale/cs/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:14+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:53:56+0000\n"
"Language-Team: Czech\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: cs\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "Uživatel nemá profil."
msgid "Could not save profile."
msgstr "Nelze uložit profil"
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Nelze aktualizovat uživatele"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -265,7 +270,7 @@ msgstr ""
#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
msgid "Could not delete favorite."
-msgstr ""
+msgstr "Nelze smazat oblíbenou položku."
#: actions/apifriendshipscreate.php:109
msgid "Could not follow user: User not found."
@@ -609,25 +614,22 @@ msgid "Failed updating avatar."
msgstr "Nahrávání obrázku selhalo."
#: actions/avatarsettings.php:387
-#, fuzzy
msgid "Avatar deleted."
-msgstr "Obrázek nahrán"
+msgstr "Avatar smazán."
#: actions/blockedfromgroup.php:73 actions/editgroup.php:84
#: actions/groupdesignsettings.php:84 actions/grouplogo.php:86
#: actions/groupmembers.php:76 actions/grouprss.php:91
#: actions/joingroup.php:76 actions/showgroup.php:121
-#, fuzzy
msgid "No nickname"
-msgstr "Žádná přezdívka."
+msgstr "Žádná přezdívka"
#: actions/blockedfromgroup.php:80 actions/editgroup.php:96
#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97
#: actions/grouplogo.php:99 actions/groupmembers.php:83
#: actions/grouprss.php:98 actions/joingroup.php:83 actions/showgroup.php:137
-#, fuzzy
msgid "No such group"
-msgstr "Žádné takové oznámení."
+msgstr "Žádná taková skupina"
#: actions/blockedfromgroup.php:90
#, fuzzy, php-format
@@ -677,7 +679,7 @@ msgstr ""
#: actions/block.php:143 actions/deletenotice.php:145
#: actions/deleteuser.php:147 actions/groupblock.php:178
msgid "No"
-msgstr ""
+msgstr "Ne"
#: actions/block.php:143 actions/deleteuser.php:147
#, fuzzy
@@ -687,12 +689,11 @@ msgstr "Žádný takový uživatel."
#: actions/block.php:144 actions/deletenotice.php:146
#: actions/deleteuser.php:148 actions/groupblock.php:179
msgid "Yes"
-msgstr ""
+msgstr "Ano"
#: actions/block.php:144 actions/groupmembers.php:346 lib/blockform.php:80
-#, fuzzy
msgid "Block this user"
-msgstr "Žádný takový uživatel."
+msgstr "Zablokovat tohoto uživatele"
#: actions/block.php:162
msgid "Failed to save block information."
@@ -770,7 +771,7 @@ msgstr "Nepřihlášen"
#: actions/deletenotice.php:71
msgid "Can't delete this notice."
-msgstr ""
+msgstr "Toto oznámení nelze odstranit."
#: actions/deletenotice.php:103
msgid ""
@@ -793,7 +794,7 @@ msgstr "Žádné takové oznámení."
#: actions/deletenotice.php:146 lib/noticelist.php:550
msgid "Delete this notice"
-msgstr ""
+msgstr "Odstranit toto oznámení"
#: actions/deletenotice.php:157
msgid "There was a problem with your session token. Try again, please."
@@ -820,122 +821,118 @@ msgid ""
msgstr ""
#: actions/deleteuser.php:148 lib/deleteuserform.php:77
-#, fuzzy
msgid "Delete this user"
-msgstr "Žádný takový uživatel."
+msgstr "Odstranit tohoto uživatele"
#: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124
#: lib/adminpanelaction.php:302 lib/groupnav.php:119
msgid "Design"
-msgstr ""
+msgstr "Vzhled"
#: actions/designadminpanel.php:73
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Neplatná velikost"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Tato stránka není k dispozici v typu média která přijímáte."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Změnit heslo"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Nové sdělení"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Změnit"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Nové sdělení"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
-msgstr ""
+msgstr "Pozadí"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
-#, fuzzy
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
-msgstr "Změnit heslo"
+msgstr "Změnit barvy"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
-#, fuzzy
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
-msgstr "Připojit"
+msgstr "Obsah"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Hledat"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
-#, fuzzy
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
-msgstr "Přihlásit"
+msgstr "Odkazy"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -945,7 +942,7 @@ msgstr ""
msgid "Save"
msgstr "Uložit"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -955,7 +952,7 @@ msgstr ""
#: actions/disfavor.php:94
msgid "Add to favorites"
-msgstr ""
+msgstr "Přidat do oblíbených"
#: actions/doc.php:69
msgid "No such document."
@@ -964,7 +961,7 @@ msgstr "Žádný takový dokument."
#: actions/editgroup.php:56
#, php-format
msgid "Edit %s group"
-msgstr ""
+msgstr "Upravit %s skupinu"
#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
msgid "You must be logged in to create a group."
@@ -995,13 +992,12 @@ msgid "Could not create aliases."
msgstr "Nelze uložin informace o obrázku"
#: actions/editgroup.php:269
-#, fuzzy
msgid "Options saved."
-msgstr "Nastavení uloženo"
+msgstr "Nastavení uloženo."
#: actions/emailsettings.php:60
msgid "Email Settings"
-msgstr ""
+msgstr "Nastavení E-mailu"
#: actions/emailsettings.php:71
#, php-format
@@ -1061,7 +1057,7 @@ msgstr ""
#: actions/emailsettings.php:148 actions/smssettings.php:164
msgid "New"
-msgstr ""
+msgstr "Nový"
#: actions/emailsettings.php:153 actions/imsettings.php:139
#: actions/smssettings.php:169
@@ -1244,9 +1240,8 @@ msgid "No notice id"
msgstr "Nové sdělení"
#: actions/file.php:38
-#, fuzzy
msgid "No notice"
-msgstr "Nové sdělení"
+msgstr "Žádné oznámení"
#: actions/file.php:42
msgid "No attachments"
@@ -1385,26 +1380,26 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Nelze aktualizovat uživatele"
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Nastavení uloženo"
#: actions/grouplogo.php:139 actions/grouplogo.php:192
msgid "Group logo"
-msgstr ""
+msgstr "Logo skupiny"
#: actions/grouplogo.php:150
#, php-format
@@ -1502,7 +1497,7 @@ msgstr ""
#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230
#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
msgid "Groups"
-msgstr ""
+msgstr "Skupiny"
#: actions/groups.php:64
#, php-format
@@ -1712,7 +1707,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Odeslat"
@@ -1885,7 +1880,7 @@ msgstr ""
#: actions/newgroup.php:53
msgid "New group"
-msgstr ""
+msgstr "Nová skupina"
#: actions/newgroup.php:110
msgid "Use this form to create a new group."
@@ -2008,8 +2003,8 @@ msgstr "Připojit"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -2313,9 +2308,8 @@ msgid "Describe yourself and your interests in %d chars"
msgstr "Popiš sebe a své zájmy ve 140 znacích"
#: actions/profilesettings.php:125 actions/register.php:463
-#, fuzzy
msgid "Describe yourself and your interests"
-msgstr "Popiš sebe a své zájmy ve 140 znacích"
+msgstr "Popište sebe a své zájmy"
#: actions/profilesettings.php:127 actions/register.php:465
msgid "Bio"
@@ -2345,7 +2339,7 @@ msgstr ""
#: actions/profilesettings.php:144 actions/siteadminpanel.php:307
msgid "Language"
-msgstr ""
+msgstr "Jazyk"
#: actions/profilesettings.php:145
msgid "Preferred language"
@@ -2629,7 +2623,7 @@ msgstr "Chyba v ověřovacím kódu"
#: actions/register.php:112
msgid "Registration successful"
-msgstr ""
+msgstr "Registrace úspěšná"
#: actions/register.php:114 actions/register.php:502 lib/action.php:455
#: lib/logingroupnav.php:85
@@ -2921,9 +2915,8 @@ msgstr ""
#: actions/showgroup.php:274 actions/tagother.php:128
#: actions/userauthorization.php:179 lib/userprofile.php:194
-#, fuzzy
msgid "Note"
-msgstr "Sdělení"
+msgstr "Poznámka"
#: actions/showgroup.php:284 lib/groupeditform.php:184
msgid "Aliases"
@@ -3392,7 +3385,7 @@ msgstr ""
#: actions/smssettings.php:306
msgid "No phone number."
-msgstr ""
+msgstr "Žádné telefonní číslo."
#: actions/smssettings.php:311
msgid "No carrier selected."
@@ -3759,7 +3752,7 @@ msgstr ""
#: actions/userauthorization.php:188
msgid "License"
-msgstr ""
+msgstr "Licence"
#: actions/userauthorization.php:209
msgid "Accept"
@@ -4074,9 +4067,8 @@ msgid "Help"
msgstr "Nápověda"
#: lib/action.php:461
-#, fuzzy
msgid "Help me!"
-msgstr "Nápověda"
+msgstr "Pomoci mi!"
#: lib/action.php:464 lib/searchaction.php:127
msgid "Search"
@@ -4233,9 +4225,8 @@ msgid "Author"
msgstr ""
#: lib/attachmentlist.php:278
-#, fuzzy
msgid "Provider"
-msgstr "Profil"
+msgstr "Poskytovatel"
#: lib/attachmentnoticesection.php:67
msgid "Notices where this attachment appears"
@@ -4500,11 +4491,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4616,9 +4603,8 @@ msgid "Edit %s group properties"
msgstr ""
#: lib/groupnav.php:113
-#, fuzzy
msgid "Logo"
-msgstr "Odhlásit"
+msgstr "Logo"
#: lib/groupnav.php:114
#, php-format
@@ -4691,9 +4677,8 @@ msgid "[%s]"
msgstr ""
#: lib/joinform.php:114
-#, fuzzy
msgid "Join"
-msgstr "Přihlásit"
+msgstr "Přidat se"
#: lib/leaveform.php:114
#, fuzzy
@@ -4773,9 +4758,9 @@ msgstr ""
"%4$s.\n"
#: lib/mail.php:254
-#, fuzzy, php-format
+#, php-format
msgid "Location: %s\n"
-msgstr "Umístění %s\n"
+msgstr "Umístění: %s\n"
#: lib/mail.php:256
#, fuzzy, php-format
@@ -4968,7 +4953,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 a více znaků"
@@ -4983,11 +4968,11 @@ msgstr "Nové sdělení"
msgid "What's up, %s?"
msgstr "Co se děje %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5077,7 +5062,7 @@ msgstr "Odpovědi"
#: lib/personalgroupnav.php:114
msgid "Favorites"
-msgstr ""
+msgstr "Oblíbené"
#: lib/personalgroupnav.php:124
msgid "Inbox"
@@ -5113,9 +5098,8 @@ msgid "Subscribers"
msgstr "Odběratelé"
#: lib/profileaction.php:157
-#, fuzzy
msgid "All subscribers"
-msgstr "Odběratelé"
+msgstr "Všichni odběratelé"
#: lib/profileaction.php:178
msgid "User ID"
@@ -5267,7 +5251,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "Nepřihlášen!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Nelze smazat odebírání"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Nelze smazat odebírání"
@@ -5306,13 +5295,12 @@ msgid "Unsubscribe"
msgstr "Odhlásit"
#: lib/userprofile.php:116
-#, fuzzy
msgid "Edit Avatar"
-msgstr "Obrázek"
+msgstr "Upravit avatar"
#: lib/userprofile.php:236
msgid "User actions"
-msgstr ""
+msgstr "Akce uživatele"
#: lib/userprofile.php:248
#, fuzzy
@@ -5329,7 +5317,7 @@ msgstr ""
#: lib/userprofile.php:273
msgid "Message"
-msgstr ""
+msgstr "Zpráva"
#: lib/userprofile.php:311
msgid "Moderate"
@@ -5395,7 +5383,7 @@ msgstr ""
#: scripts/maildaemon.php:53
msgid "Not a registered user."
-msgstr ""
+msgstr "Není registrovaný uživatel."
#: scripts/maildaemon.php:57
msgid "Sorry, that is not your incoming email address."
diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po
index e68bc1fd48..2bc9805d97 100644
--- a/locale/de/LC_MESSAGES/statusnet.po
+++ b/locale/de/LC_MESSAGES/statusnet.po
@@ -10,12 +10,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:18+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:00+0000\n"
"Language-Team: German\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: de\n"
"X-Message-Group: out-statusnet\n"
@@ -180,7 +180,12 @@ msgstr "Benutzer hat kein Profil."
msgid "Could not save profile."
msgstr "Konnte Profil nicht speichern."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Du kannst dich nicht selbst entfolgen!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Blockieren des Benutzers fehlgeschlagen."
@@ -320,13 +325,13 @@ msgstr "Ungültiger Nutzername."
#: actions/register.php:217
msgid "Homepage is not a valid URL."
msgstr ""
-"Homepage ist kein gültiger URL. URL´s müssen ein Präfix wie http enthalten."
+"Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten."
#: actions/apigroupcreate.php:205 actions/editgroup.php:198
#: actions/newgroup.php:142 actions/profilesettings.php:218
#: actions/register.php:220
msgid "Full name is too long (max 255 chars)."
-msgstr "Ihr vollständiger Name ist zu lang (maximal 255 Zeichen)."
+msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)."
#: actions/apigroupcreate.php:213
#, php-format
@@ -374,7 +379,7 @@ msgstr "Du bist bereits Mitglied dieser Gruppe"
#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221
msgid "You have been blocked from that group by the admin."
-msgstr "Der Admin dieser Gruppe hat Sie gesperrt."
+msgstr "Der Admin dieser Gruppe hat dich gesperrt."
#: actions/apigroupjoin.php:138
#, php-format
@@ -498,7 +503,7 @@ msgstr "Nachrichten, die mit %s getagt sind"
#: actions/apitimelinetag.php:107 actions/tagrss.php:64
#, php-format
msgid "Updates tagged with %1$s on %2$s!"
-msgstr "Updates mit %1$s getagt auf %2$s!"
+msgstr "Aktualisierungen mit %1$s getagt auf %2$s!"
#: actions/apiusershow.php:96
msgid "Not found."
@@ -686,9 +691,8 @@ msgid "Failed to save block information."
msgstr "Konnte Blockierungsdaten nicht speichern."
#: actions/bookmarklet.php:50
-#, fuzzy
msgid "Post to "
-msgstr "Foto"
+msgstr "Versenden an "
#: actions/confirmaddress.php:75
msgid "No confirmation code."
@@ -731,7 +735,7 @@ msgstr "Adresse bestätigen"
#: actions/confirmaddress.php:159
#, php-format
msgid "The address \"%s\" has been confirmed for your account."
-msgstr "Die Adresse „%s“\" wurde für dein Konto bestätigt."
+msgstr "Die Adresse „%s“ wurde für dein Konto bestätigt."
#: actions/conversation.php:99
msgid "Conversation"
@@ -773,7 +777,7 @@ msgstr "Notiz löschen"
#: actions/deletenotice.php:144
msgid "Are you sure you want to delete this notice?"
-msgstr "Sind sie sicher, dass sie diese Nachricht löschen wollen?"
+msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?"
#: actions/deletenotice.php:145
msgid "Do not delete this notice"
@@ -816,107 +820,104 @@ msgstr ""
#: actions/designadminpanel.php:73
msgid "Design settings for this StatusNet site."
-msgstr ""
+msgstr "Design-Einstellungen für diese StatusNet-Website."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "Ungültige URL für das Logo"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Theme nicht verfügbar: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Logo ändern"
-#: actions/designadminpanel.php:375
-#, fuzzy
+#: actions/designadminpanel.php:380
msgid "Site logo"
-msgstr "Einladen"
+msgstr "Seitenlogo"
-#: actions/designadminpanel.php:382
-#, fuzzy
+#: actions/designadminpanel.php:387
msgid "Change theme"
-msgstr "Ändern"
+msgstr "Theme ändern"
-#: actions/designadminpanel.php:399
-#, fuzzy
+#: actions/designadminpanel.php:404
msgid "Site theme"
-msgstr "Seitennachricht"
+msgstr "Seitentheme"
-#: actions/designadminpanel.php:400
-#, fuzzy
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
-msgstr "Von der Seite abmelden"
+msgstr "Theme dieser Seite."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Hintergrundbild ändern"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Hintergrund"
-#: actions/designadminpanel.php:422
-#, fuzzy, php-format
+#: actions/designadminpanel.php:427
+#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
-msgstr "Du kannst ein Logo für Deine Gruppe hochladen."
+msgstr ""
+"Du kannst ein Hintergrundbild für Deine Gruppe hochladen. Die maximale "
+"Dateigröße beträgt %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "An"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Aus"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
-msgstr ""
+msgstr "Hintergrundbild ein- oder ausschalten."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Farben ändern"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Inhalt"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
-#, fuzzy
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
-msgstr "Suchen"
+msgstr "Seitenleiste"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Text"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Links"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Standard-Design wiederherstellen"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Standard wiederherstellen"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -926,7 +927,7 @@ msgstr "Standard wiederherstellen"
msgid "Save"
msgstr "Speichern"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Design speichern"
@@ -993,7 +994,7 @@ msgstr "Adresse"
#: actions/emailsettings.php:105
msgid "Current confirmed email address."
-msgstr "Aktuelle bestätigte E-Mail Adresse"
+msgstr "Aktuelle bestätigte E-Mail-Adresse."
#: actions/emailsettings.php:107 actions/emailsettings.php:140
#: actions/imsettings.php:108 actions/smssettings.php:115
@@ -1115,8 +1116,8 @@ msgid ""
"A confirmation code was sent to the email address you added. Check your "
"inbox (and spam box!) for the code and instructions on how to use it."
msgstr ""
-"Ein Bestätigungscode wurde an die angegebene E-Mail Adresse geschickt. "
-"Überprüfen Sie Ihren Posteingang (auch den Spamordner!) für den Code und "
+"Ein Bestätigungscode wurde an die angegebene E-Mail-Adresse geschickt. "
+"Überprüfe deinen Posteingang (auch den Spamordner!) für den Code und "
"Anweisungen, wie dieser benutzt wird."
#: actions/emailsettings.php:379 actions/imsettings.php:351
@@ -1126,7 +1127,7 @@ msgstr "Keine ausstehende Bestätigung, die abgebrochen werden kann."
#: actions/emailsettings.php:383 actions/imsettings.php:355
msgid "That is the wrong IM address."
-msgstr "Das ist die falsche IM Adresse."
+msgstr "Das ist die falsche IM-Adresse."
#: actions/emailsettings.php:395 actions/imsettings.php:367
#: actions/smssettings.php:386
@@ -1245,7 +1246,6 @@ msgid "Not expecting this response!"
msgstr "Unerwartete Antwort!"
#: actions/finishremotesubscribe.php:80
-#, fuzzy
msgid "User being listened to does not exist."
msgstr "Aufgeführte Nutzer existiert nicht."
@@ -1258,19 +1258,16 @@ msgid "That user has blocked you from subscribing."
msgstr "Dieser Benutzer erlaubt dir nicht ihn zu abonnieren."
#: actions/finishremotesubscribe.php:110
-#, fuzzy
msgid "You are not authorized."
-msgstr "Nicht autorisiert."
+msgstr "Du bist nicht autorisiert."
#: actions/finishremotesubscribe.php:113
-#, fuzzy
msgid "Could not convert request token to access token."
msgstr "Konnte Anfrage-Token nicht in Zugriffs-Token umwandeln."
#: actions/finishremotesubscribe.php:118
-#, fuzzy
msgid "Remote service uses unknown version of OMB protocol."
-msgstr "Unbekannte OMB-Protokollversion."
+msgstr "Service nutzt unbekannte OMB-Protokollversion."
#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
msgid "Error updating remote profile"
@@ -1287,9 +1284,8 @@ msgid "No such file."
msgstr "Datei nicht gefunden."
#: actions/getfile.php:79
-#, fuzzy
msgid "Cannot read file."
-msgstr "Daten verloren."
+msgstr "Datei konnte nicht gelesen werden."
#: actions/groupblock.php:71 actions/groupunblock.php:71
#: actions/makeadmin.php:71 actions/subedit.php:46
@@ -1321,9 +1317,8 @@ msgid "User is not a member of group."
msgstr "Nutzer ist kein Mitglied dieser Gruppe."
#: actions/groupblock.php:136 actions/groupmembers.php:314
-#, fuzzy
msgid "Block user from group"
-msgstr "Benutzer blockieren"
+msgstr "Benutzerzugang zu der Gruppe blockieren"
#: actions/groupblock.php:162
#, php-format
@@ -1334,9 +1329,8 @@ msgid ""
msgstr ""
#: actions/groupblock.php:178
-#, fuzzy
msgid "Do not block this user from this group"
-msgstr "Liste der Benutzer in dieser Gruppe."
+msgstr "Diesen Benutzerzugang nicht für diese Gruppe blockieren."
#: actions/groupblock.php:179
msgid "Block this user from this group"
@@ -1344,7 +1338,7 @@ msgstr "Diesen Nutzer von der Gruppe sperren"
#: actions/groupblock.php:196
msgid "Database error blocking user from group."
-msgstr ""
+msgstr "Datenbank Fehler beim Versuch den Nutzer aus der Gruppe zu blockieren."
#: actions/groupbyid.php:74
msgid "No ID"
@@ -1356,7 +1350,7 @@ msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten."
#: actions/groupdesignsettings.php:141
msgid "Group design"
-msgstr "Gruppen Design"
+msgstr "Gruppen-Design"
#: actions/groupdesignsettings.php:152
msgid ""
@@ -1364,38 +1358,36 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
-#, fuzzy
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
-msgstr "Konnte Benutzerdaten nicht aktualisieren."
+msgstr "Konnte dein Design nicht aktualisieren."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
-#, fuzzy
msgid "Unable to save your design settings!"
-msgstr "Konnte Twitter Einstellungen nicht speichern!"
+msgstr "Konnte die Design-Einstellungen nicht speichern!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
-msgstr "Design Einstellungen gespeichert."
+msgstr "Design-Einstellungen gespeichert."
#: actions/grouplogo.php:139 actions/grouplogo.php:192
msgid "Group logo"
msgstr "Gruppen-Logo"
#: actions/grouplogo.php:150
-#, fuzzy, php-format
+#, php-format
msgid ""
"You can upload a logo image for your group. The maximum file size is %s."
-msgstr "Du kannst ein Logo für Deine Gruppe hochladen."
+msgstr ""
+"Du kannst ein Logo für Deine Gruppe hochladen. Die maximale Dateigröße ist %"
+"s."
#: actions/grouplogo.php:362
-#, fuzzy
msgid "Pick a square area of the image to be the logo."
-msgstr ""
-"Wähle eine quadratische Fläche aus dem Bild, um dein Avatar zu speichern"
+msgstr "Wähle eine quadratische Fläche aus dem Bild, um das Logo zu speichern."
#: actions/grouplogo.php:396
msgid "Logo updated."
@@ -1445,12 +1437,12 @@ msgid "Updates from members of %1$s on %2$s!"
msgstr "Aktualisierungen von %1$s auf %2$s!"
#: actions/groupsearch.php:52
-#, fuzzy, php-format
+#, php-format
msgid ""
"Search for groups on %%site.name%% by their name, location, or description. "
"Separate the terms by spaces; they must be 3 characters or more."
msgstr ""
-"Durchsuche die Namen, Orten oder Interessen der Nutzer von %%site.name%%. "
+"Durchsuche die Namen, Orte oder Interessen der Nutzer von %%site.name%%. "
"Trenne mehrere Suchbegriffe durch Leerzeichen. Ein Suchbegriff muss aus "
"mindestens 3 Zeichen bestehen."
@@ -1469,6 +1461,8 @@ msgid ""
"If you can't find the group you're looking for, you can [create it](%%action."
"newgroup%%) yourself."
msgstr ""
+"Wenn du die Gruppe die dich interessiert nicht finden kannst, dann [erstelle "
+"sie](%%action.newgroup%%) doch einfach."
#: actions/groupsearch.php:85
#, php-format
@@ -1503,7 +1497,7 @@ msgstr "Neue Gruppe erstellen"
#: actions/groupunblock.php:91
msgid "Only an admin can unblock group members."
-msgstr "Nur Gruppen Administratoren können die Sperrung von Nutzern aufheben."
+msgstr "Nur Administratoren können Gruppenmitglieder entsperren."
#: actions/groupunblock.php:95
msgid "User is not blocked from group."
@@ -1515,7 +1509,7 @@ msgstr "Fehler beim Freigeben des Benutzers."
#: actions/imsettings.php:59
msgid "IM Settings"
-msgstr "IM Einstellungen"
+msgstr "IM-Einstellungen"
#: actions/imsettings.php:70
#, php-format
@@ -1527,9 +1521,8 @@ msgstr ""
"senden. Stelle deine Adresse und Einstellungen unten ein."
#: actions/imsettings.php:89
-#, fuzzy
msgid "IM is not available."
-msgstr "Diese Seite liegt in nicht verfügbar in einem "
+msgstr "IM ist nicht verfügbar."
#: actions/imsettings.php:106
msgid "Current confirmed Jabber/GTalk address."
@@ -1542,12 +1535,12 @@ msgid ""
"message with further instructions. (Did you add %s to your buddy list?)"
msgstr ""
"Warte auf Bestätigung dieser Adresse. Eine Nachricht mit weiteren Anweisung "
-"sollte in deinem Jabber/GTalk Konto eingehen. (Hast du %s zu deiner "
-"Freundeliste hinzugefügt?)"
+"sollte in deinem Jabber/GTalk-Konto eingehen. (Hast du %s zu deiner "
+"Freundesliste hinzugefügt?)"
#: actions/imsettings.php:124
msgid "IM Address"
-msgstr "IM Adresse"
+msgstr "IM-Adresse"
#: actions/imsettings.php:126
#, php-format
@@ -1555,8 +1548,8 @@ msgid ""
"Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
"add %s to your buddy list in your IM client or on GTalk."
msgstr ""
-"Jabber- oder GoogleTalk-Adresse, z.B. \"UserName@example.org\". Aber "
-"versichere dich zuerst, dass du %s in deine Kontaktliste in deinem IM "
+"Jabber- oder GoogleTalk-Adresse, beispielsweise „Benutzername@example.org“. "
+"Aber versichere dich zuerst, dass du %s in deine Kontaktliste in deinem IM-"
"Programm oder GTalk aufgenommen hast."
#: actions/imsettings.php:143
@@ -1565,7 +1558,7 @@ msgstr "Schicke mir Nachrichten mittels Jabber/GTalk."
#: actions/imsettings.php:148
msgid "Post a notice when my Jabber/GTalk status changes."
-msgstr "Schicke eine Nachricht, wenn sich mein Jabber/GTalk Status verändert."
+msgstr "Schicke eine Nachricht, wenn sich mein Jabber/GTalk-Status verändert."
#: actions/imsettings.php:153
msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
@@ -1603,7 +1596,7 @@ msgid ""
"A confirmation code was sent to the IM address you added. You must approve %"
"s for sending messages to you."
msgstr ""
-"Ein Bestätigungscode wurde an die IM Adresse geschickt, die du hinzugefügt "
+"Ein Bestätigungscode wurde an die IM-Adresse geschickt, die du hinzugefügt "
"hast. Du musst zulassen, dass %s dir Nachrichten schicken darf."
#: actions/imsettings.php:387
@@ -1689,7 +1682,7 @@ msgstr "E-Mail-Adressen"
#: actions/invite.php:189
msgid "Addresses of friends to invite (one per line)"
msgstr ""
-"Addressen von Freunden, die Du einladen möchtest. (Jeweils eine Addresse pro "
+"Adressen von Freunden, die Du einladen möchtest. (Jeweils eine Adresse pro "
"Zeile)"
#: actions/invite.php:192
@@ -1702,7 +1695,7 @@ msgstr ""
"Wenn du möchtest kannst du zu der Einladung eine persönliche Nachricht "
"anfügen."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Senden"
@@ -1812,23 +1805,22 @@ msgid "Already logged in."
msgstr "Bereits angemeldet."
#: actions/login.php:108 actions/login.php:118
-#, fuzzy
msgid "Invalid or expired token."
-msgstr "Ungültiger Nachrichteninhalt"
+msgstr "Token ungültig oder abgelaufen."
#: actions/login.php:146
msgid "Incorrect username or password."
msgstr "Falscher Benutzername oder Passwort."
#: actions/login.php:152
-#, fuzzy
msgid "Error setting user. You are probably not authorized."
-msgstr "Nicht autorisiert."
+msgstr ""
+"Fehler beim setzen des Benutzers. Du bist vermutlich nicht autorisiert."
#: actions/login.php:207 actions/login.php:260 lib/action.php:458
#: lib/logingroupnav.php:79
msgid "Login"
-msgstr "Einloggen"
+msgstr "Anmelden"
#: actions/login.php:246
msgid "Login to site"
@@ -1862,18 +1854,17 @@ msgid ""
"For security reasons, please re-enter your user name and password before "
"changing your settings."
msgstr ""
-"Bitte geben Sie aus Sicherheitsgründen ihren Benutzernamen und ihr Passwort "
-"ein, bevor die Änderungen an ihren Einstellungen übernommen werden."
+"Bitte gebe aus Sicherheitsgründen deinen Benutzernamen und dein Passwort "
+"ein, bevor die Änderungen an deinen Einstellungen übernommen werden."
#: actions/login.php:289
-#, fuzzy, php-format
+#, php-format
msgid ""
"Login with your username and password. Don't have a username yet? [Register]"
"(%%action.register%%) a new account."
msgstr ""
"Melde dich mit Nutzernamen und Passwort an. Du hast noch keinen Nutzernamen? "
-"[Registriere](%%action.register%%) ein neues Konto oder versuche es mit "
-"[OpenID](%%action.openidlogin%%)."
+"[Registriere](%%action.register%%) ein neues Konto."
#: actions/makeadmin.php:91
msgid "Only an admin can make another user an admin."
@@ -1882,7 +1873,7 @@ msgstr "Nur Administratoren können andere Nutzer zu Administratoren ernennen."
#: actions/makeadmin.php:95
#, php-format
msgid "%s is already an admin for group \"%s\"."
-msgstr "%s ist bereits ein Administrator der Gruppe "%s"."
+msgstr "%s ist bereits ein Administrator der Gruppe „%s“."
#: actions/makeadmin.php:132
#, php-format
@@ -1892,7 +1883,7 @@ msgstr ""
#: actions/makeadmin.php:145
#, php-format
msgid "Can't make %s an admin for group %s"
-msgstr ""
+msgstr "Konnte %s nicht zum Administrator der Gruppe %s machen"
#: actions/microsummary.php:69
msgid "No current status"
@@ -1965,9 +1956,9 @@ msgid "Text search"
msgstr "Volltextsuche"
#: actions/noticesearch.php:91
-#, fuzzy, php-format
+#, php-format
msgid "Search results for \"%s\" on %s"
-msgstr "Suche im Stream nach \"%s\""
+msgstr "Suchergebnisse für „%s“ auf %s"
#: actions/noticesearch.php:121
#, php-format
@@ -1984,9 +1975,9 @@ msgid ""
msgstr ""
#: actions/noticesearchrss.php:96
-#, fuzzy, php-format
+#, php-format
msgid "Updates with \"%s\""
-msgstr "Updates von %1$s auf %2$s!"
+msgstr "Aktualisierungen mit „%s“"
#: actions/noticesearchrss.php:98
#, php-format
@@ -2018,16 +2009,15 @@ msgid "%1$s's status on %2$s"
msgstr "%1$s Status auf %2$s"
#: actions/oembed.php:157
-#, fuzzy
msgid "content type "
-msgstr "Verbinden"
+msgstr "Content-Typ "
#: actions/oembed.php:160
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Kein unterstütztes Datenformat."
@@ -2060,9 +2050,8 @@ msgid "Automatic shortening service to use."
msgstr "URL-Auto-Kürzungs-Dienst."
#: actions/othersettings.php:122
-#, fuzzy
msgid "View profile designs"
-msgstr "Profil Einstellungen"
+msgstr "Profil-Einstellungen ansehen"
#: actions/othersettings.php:123
msgid "Show or hide profile designs."
@@ -2070,7 +2059,7 @@ msgstr ""
#: actions/othersettings.php:153
msgid "URL shortening service is too long (max 50 chars)."
-msgstr "URL-Auto-Kürzungs-Dienst ist zu lange (max. 50 Zeichen)"
+msgstr "URL-Auto-Kürzungs-Dienst ist zu lang (max. 50 Zeichen)."
#: actions/outbox.php:58
#, php-format
@@ -2157,9 +2146,9 @@ msgid "Path and server settings for this StatusNet site."
msgstr ""
#: actions/pathsadminpanel.php:140
-#, fuzzy, php-format
+#, php-format
msgid "Theme directory not readable: %s"
-msgstr "Diese Seite liegt in nicht verfügbar in einem "
+msgstr "Theme-Verzeichnis nicht lesbar: %s"
#: actions/pathsadminpanel.php:146
#, php-format
@@ -2178,18 +2167,16 @@ msgstr ""
#: actions/pathsadminpanel.php:212 actions/siteadminpanel.php:58
#: lib/adminpanelaction.php:299
-#, fuzzy
msgid "Site"
-msgstr "Einladen"
+msgstr "Seite"
#: actions/pathsadminpanel.php:216
msgid "Path"
msgstr ""
#: actions/pathsadminpanel.php:216
-#, fuzzy
msgid "Site path"
-msgstr "Seitennachricht"
+msgstr "Seitenpfad"
#: actions/pathsadminpanel.php:220
msgid "Path to locales"
@@ -2216,24 +2203,20 @@ msgid "Theme directory"
msgstr ""
#: actions/pathsadminpanel.php:247
-#, fuzzy
msgid "Avatars"
-msgstr "Avatar"
+msgstr "Avatare"
#: actions/pathsadminpanel.php:252
-#, fuzzy
msgid "Avatar server"
-msgstr "Avatar-Einstellungen"
+msgstr "Avatar-Server"
#: actions/pathsadminpanel.php:256
-#, fuzzy
msgid "Avatar path"
-msgstr "Avatar aktualisiert."
+msgstr "Avatarpfad"
#: actions/pathsadminpanel.php:260
-#, fuzzy
msgid "Avatar directory"
-msgstr "Avatar aktualisiert."
+msgstr "Avatarverzeichnis"
#: actions/pathsadminpanel.php:269
msgid "Backgrounds"
@@ -2252,9 +2235,8 @@ msgid "Background directory"
msgstr ""
#: actions/pathsadminpanel.php:297
-#, fuzzy
msgid "Save paths"
-msgstr "Seitennachricht"
+msgstr "Speicherpfade"
#: actions/peoplesearch.php:52
#, php-format
@@ -2262,7 +2244,7 @@ msgid ""
"Search for people on %%site.name%% by their name, location, or interests. "
"Separate the terms by spaces; they must be 3 characters or more."
msgstr ""
-"Durchsuche die Namen, Orten oder Interessen der Nutzer von %%site.name%%. "
+"Durchsuche die Namen, Orte oder Interessen der Nutzer von %%site.name%%. "
"Trenne mehrere Suchbegriffe durch Leerzeichen. Ein Suchbegriff muss aus "
"mindestens 3 Zeichen bestehen."
@@ -2375,7 +2357,7 @@ msgstr "Zeitzone"
#: actions/profilesettings.php:155
msgid "What timezone are you normally in?"
-msgstr "In welcher Zeitzone befinden Sie sich üblicherweise?"
+msgstr "In welcher Zeitzone befindest du dich üblicherweise?"
#: actions/profilesettings.php:160
msgid ""
@@ -2437,19 +2419,16 @@ msgid "Public timeline"
msgstr "Öffentliche Zeitleiste"
#: actions/public.php:151
-#, fuzzy
msgid "Public Stream Feed (RSS 1.0)"
-msgstr "Feed des öffentlichen Streams"
+msgstr "Feed des öffentlichen Streams (RSS 1.0)"
#: actions/public.php:155
-#, fuzzy
msgid "Public Stream Feed (RSS 2.0)"
-msgstr "Feed des öffentlichen Streams"
+msgstr "Feed des öffentlichen Streams (RSS 2.0)"
#: actions/public.php:159
-#, fuzzy
msgid "Public Stream Feed (Atom)"
-msgstr "Feed des öffentlichen Streams"
+msgstr "Feed des öffentlichen Streams (Atom)"
#: actions/public.php:179
#, php-format
@@ -2478,14 +2457,15 @@ msgid ""
msgstr ""
#: actions/public.php:238
-#, fuzzy, php-format
+#, php-format
msgid ""
"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."
msgstr ""
-"Dies ist %%site.name%%, ein [mikro-blogging] (http://de.wikipedia.org/wiki/"
-"Mikro-blogging) Dienst "
+"Dies ist %%site.name%%, ein [Mikro-blogging-Dienst](http://de.wikipedia.org/"
+"wiki/Mikro-blogging) basierend auf der freien Software [StatusNet](http://"
+"status.net/)."
#: actions/publictagcloud.php:57
msgid "Public tag cloud"
@@ -2643,9 +2623,8 @@ msgid "Sorry, only invited people can register."
msgstr "Es tut uns leid, zum Registrieren benötigst du eine Einladung."
#: actions/register.php:92
-#, fuzzy
msgid "Sorry, invalid invitation code."
-msgstr "Fehler beim Bestätigungscode."
+msgstr "Entschuldigung, ungültiger Bestätigungscode."
#: actions/register.php:112
msgid "Registration successful"
@@ -4545,11 +4524,7 @@ msgid ""
msgstr ""
"Du kannst dein persönliches Avatar hochladen. Die maximale Dateigröße ist %s."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5026,7 +5001,7 @@ msgstr "Versende eine direkte Nachricht"
msgid "To"
msgstr "An"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "Verfügbare Zeichen"
@@ -5041,11 +5016,11 @@ msgstr "Nachricht versenden"
msgid "What's up, %s?"
msgstr "Was ist los, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5327,7 +5302,12 @@ msgstr "Die Gegenseite konnte Dich nicht abonnieren."
msgid "Not subscribed!"
msgstr "Nicht abonniert!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Konnte Abonnement nicht löschen."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Konnte Abonnement nicht löschen."
diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po
index 6ab4721c21..07384974dc 100644
--- a/locale/el/LC_MESSAGES/statusnet.po
+++ b/locale/el/LC_MESSAGES/statusnet.po
@@ -1,5 +1,6 @@
# Translation of StatusNet to Greek
#
+# Author@translatewiki.net: Omnipaedista
# --
# This file is distributed under the same license as the StatusNet package.
#
@@ -7,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:21+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:03+0000\n"
"Language-Team: Greek\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: el\n"
"X-Message-Group: out-statusnet\n"
@@ -47,7 +48,7 @@ msgstr "Αδύνατη η αποθήκευση του προφίλ."
#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77
#: lib/subs.php:34 lib/subs.php:116
msgid "No such user."
-msgstr ""
+msgstr "Κανένας τέτοιος χρήστης."
#: actions/all.php:84
#, fuzzy, php-format
@@ -183,7 +184,12 @@ msgstr ""
msgid "Could not save profile."
msgstr "Απέτυχε η αποθήκευση του προφίλ."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Απέτυχε η ενημέρωση του χρήστη."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -398,14 +404,14 @@ msgid "%s groups"
msgstr ""
#: actions/apigrouplistall.php:94
-#, fuzzy, php-format
+#, php-format
msgid "groups on %s"
-msgstr "Βρες ομάδες στο site"
+msgstr "ομάδες του χρήστη %s"
#: actions/apigrouplist.php:95
-#, fuzzy, php-format
+#, php-format
msgid "%s's groups"
-msgstr "Ομάδες χρηστών"
+msgstr "ομάδες των χρηστών %s"
#: actions/apigrouplist.php:103
#, fuzzy, php-format
@@ -460,9 +466,9 @@ msgstr ""
#: actions/apitimelinegroup.php:108 actions/apitimelineuser.php:117
#: actions/grouprss.php:131 actions/userrss.php:90
-#, fuzzy, php-format
+#, php-format
msgid "%s timeline"
-msgstr "Χρονοδιάγραμμα του χρήστη %s"
+msgstr "χρονοδιάγραμμα του χρήστη %s"
#: actions/apitimelinegroup.php:116 actions/apitimelineuser.php:125
#: actions/userrss.php:92
@@ -538,9 +544,8 @@ msgstr ""
#: actions/avatarsettings.php:119 actions/avatarsettings.php:194
#: actions/grouplogo.php:251
-#, fuzzy
msgid "Avatar settings"
-msgstr "Ρυθμίσεις OpenID"
+msgstr "Ρυθμίσεις του άβαταρ"
#: actions/avatarsettings.php:126 actions/avatarsettings.php:202
#: actions/grouplogo.php:199 actions/grouplogo.php:259
@@ -612,9 +617,8 @@ msgstr "Ρυθμίσεις OpenID"
#: actions/groupdesignsettings.php:84 actions/grouplogo.php:86
#: actions/groupmembers.php:76 actions/grouprss.php:91
#: actions/joingroup.php:76 actions/showgroup.php:121
-#, fuzzy
msgid "No nickname"
-msgstr "Νέο ψευδώνυμο"
+msgstr "Κανένα ψευδώνυμο"
#: actions/blockedfromgroup.php:80 actions/editgroup.php:96
#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97
@@ -669,7 +673,7 @@ msgstr ""
#: actions/block.php:143 actions/deletenotice.php:145
#: actions/deleteuser.php:147 actions/groupblock.php:178
msgid "No"
-msgstr ""
+msgstr "Όχι"
#: actions/block.php:143 actions/deleteuser.php:147
#, fuzzy
@@ -737,9 +741,8 @@ msgid "The address \"%s\" has been confirmed for your account."
msgstr ""
#: actions/conversation.php:99
-#, fuzzy
msgid "Conversation"
-msgstr "Τοποθεσία"
+msgstr "Συζήτηση"
#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
#: lib/profileaction.php:216 lib/searchgroupnav.php:82
@@ -825,106 +828,106 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr ""
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Αλλάξτε τον κωδικό σας"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr ""
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Αλλαγή"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Αλλαγή"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr ""
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Αλλάξτε τον κωδικό σας"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Σύνδεση"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr ""
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Σύνδεση"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -934,7 +937,7 @@ msgstr ""
msgid "Save"
msgstr ""
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1370,19 +1373,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Απέτυχε η ενημέρωση του χρήστη."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Οι προτιμήσεις αποθηκεύτηκαν"
@@ -1688,7 +1691,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr ""
@@ -1979,8 +1982,8 @@ msgstr "Σύνδεση"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -2969,9 +2972,8 @@ msgid ""
msgstr ""
#: actions/showgroup.php:482
-#, fuzzy
msgid "Admins"
-msgstr "Διαχειριστής"
+msgstr "Διαχειριστές"
#: actions/showmessage.php:81
msgid "No such message."
@@ -3192,9 +3194,8 @@ msgid "Use fancy (more readable and memorable) URLs?"
msgstr ""
#: actions/siteadminpanel.php:331
-#, fuzzy
msgid "Access"
-msgstr "Αποδοχή"
+msgstr "Πρόσβαση"
#: actions/siteadminpanel.php:334
msgid "Private"
@@ -4431,11 +4432,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr ""
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4690,12 +4687,12 @@ msgid ""
msgstr ""
#: lib/mail.php:254
-#, fuzzy, php-format
+#, php-format
msgid "Location: %s\n"
msgstr "Τοποθεσία: %s\n"
#: lib/mail.php:256
-#, fuzzy, php-format
+#, php-format
msgid "Homepage: %s\n"
msgstr "Αρχική σελίδα: %s\n"
@@ -4887,7 +4884,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 ή περισσότεροι χαρακτήρες"
@@ -4901,11 +4898,11 @@ msgstr ""
msgid "What's up, %s?"
msgstr ""
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5177,7 +5174,12 @@ msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές
msgid "Not subscribed!"
msgstr "Απέτυχε η συνδρομή."
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Απέτυχε η διαγραφή συνδρομής."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Απέτυχε η διαγραφή συνδρομής."
diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po
index fb598943c8..d31e8a7ed6 100644
--- a/locale/en_GB/LC_MESSAGES/statusnet.po
+++ b/locale/en_GB/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:24+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:06+0000\n"
"Language-Team: British English\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: en-gb\n"
"X-Message-Group: out-statusnet\n"
@@ -181,7 +181,12 @@ msgstr "User has no profile."
msgid "Could not save profile."
msgstr "Couldn't save profile."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Couldn't update user."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Block user failed."
@@ -818,106 +823,106 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Invalid size."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "This page is not available in a "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Change logo"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Invite"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Change"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Site theme"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Logout from the site"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "You can upload a logo image for your group."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Change colours"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Connect"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Search"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Text"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Links"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -927,7 +932,7 @@ msgstr ""
msgid "Save"
msgstr "Save"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1365,20 +1370,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Couldn't update user."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Unable to save your Twitter settings!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Sync preferences saved."
@@ -1694,7 +1699,7 @@ msgstr "Personal message"
msgid "Optionally add a personal message to the invitation."
msgstr "Optionally add a personal message to the invitation."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Send"
@@ -2016,8 +2021,8 @@ msgstr "Connect"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Not a supported data format."
@@ -4501,11 +4506,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "You can upload your personal avatar. The maximum file size is %s."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Bad default colour settings: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4971,7 +4972,7 @@ msgstr "Send a direct notice"
msgid "To"
msgstr "To"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Available characters"
@@ -4984,11 +4985,11 @@ msgstr "Send a notice"
msgid "What's up, %s?"
msgstr "What's up, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5259,7 +5260,12 @@ msgstr "Could not subscribe other to you."
msgid "Not subscribed!"
msgstr "Not subscribed!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Couldn't delete subscription."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Couldn't delete subscription."
diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po
index 393a3c602a..2493b24bc6 100644
--- a/locale/es/LC_MESSAGES/statusnet.po
+++ b/locale/es/LC_MESSAGES/statusnet.po
@@ -11,12 +11,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:28+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:09+0000\n"
"Language-Team: Spanish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: es\n"
"X-Message-Group: out-statusnet\n"
@@ -188,7 +188,12 @@ msgstr "El usuario no tiene un perfil."
msgid "Could not save profile."
msgstr "No se pudo guardar el perfil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "No se pudo actualizar el usuario."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Falló bloquear usuario."
@@ -840,107 +845,107 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Tamaño inválido."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Esta página no está disponible en un "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Cambiar colores"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Invitar"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Cambiar"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Aviso de sitio"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Salir de sitio"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Puedes cargar una imagen de logo para tu grupo."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Cambiar colores"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Contenido"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Buscar"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texto"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Vínculos"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -950,7 +955,7 @@ msgstr ""
msgid "Save"
msgstr "Guardar"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1401,20 +1406,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "No se pudo actualizar el usuario."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "¡No se pudo guardar tu configuración de Twitter!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Preferencias de sincronización guardadas."
@@ -1740,7 +1745,7 @@ msgstr "Mensaje Personal"
msgid "Optionally add a personal message to the invitation."
msgstr "Opcionalmente añada un mensaje personalizado a su invitación."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Enviar"
@@ -2071,8 +2076,8 @@ msgstr "Conectarse"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "No es un formato de dato soportado"
@@ -4620,11 +4625,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Puedes cargar tu avatar personal."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5092,7 +5093,7 @@ msgstr "Enviar un aviso directo"
msgid "To"
msgstr "Para"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "Caracteres disponibles"
@@ -5107,11 +5108,11 @@ msgstr "Enviar un aviso"
msgid "What's up, %s?"
msgstr "¿Qué tal, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5388,7 +5389,12 @@ msgstr "No se pudo suscribir otro a ti."
msgid "Not subscribed!"
msgstr "¡No estás suscrito!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "No se pudo eliminar la suscripción."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "No se pudo eliminar la suscripción."
diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po
index e5e8af7958..dbc8f1f4b3 100644
--- a/locale/fi/LC_MESSAGES/statusnet.po
+++ b/locale/fi/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:32+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:12+0000\n"
"Language-Team: Finnish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: fi\n"
"X-Message-Group: out-statusnet\n"
@@ -188,7 +188,12 @@ msgstr "Käyttäjällä ei ole profiilia."
msgid "Could not save profile."
msgstr "Ei voitu tallentaa profiilia."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Et voi lopettaa itsesi tilausta!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Käyttäjän esto epäonnistui."
@@ -828,107 +833,107 @@ msgstr "Ulkoasu"
msgid "Design settings for this StatusNet site."
msgstr "Ulkoasuasetukset tälle StatusNet palvelulle."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Koko ei kelpaa."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Pikaviestin ei ole käytettävissä."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Vaihda salasanasi"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Kutsu"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Vaihda"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Palvelun ilmoitus"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Kirjaudu ulos palvelusta"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Vaihda tautakuva"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Tausta"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Voit ladata ryhmälle logokuvan. Maksimikoko on %s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "On"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Off"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Vaihda väriä"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Sisältö"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Haku"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Teksti"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Linkit"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Käytä oletusasetuksia"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -938,7 +943,7 @@ msgstr ""
msgid "Save"
msgstr "Tallenna"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1373,18 +1378,18 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Ei voitu päivittää sinun sivusi ulkoasua."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Ei voitu tallentaa sinun ulkoasuasetuksia!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Ulkoasuasetukset tallennettu."
@@ -1703,7 +1708,7 @@ msgstr "Henkilökohtainen viesti"
msgid "Optionally add a personal message to the invitation."
msgstr "Voit myös lisätä oman viestisi kutsuun"
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Lähetä"
@@ -2029,8 +2034,8 @@ msgstr "Yhdistä"
msgid "Only "
msgstr "Vain "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Tuo ei ole tuettu tietomuoto."
@@ -4551,11 +4556,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Voit ladata oman profiilikuvasi. Maksimikoko on %s."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5025,7 +5026,7 @@ msgstr "Lähetä suora viesti"
msgid "To"
msgstr "Vastaanottaja"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Sallitut merkit"
@@ -5038,11 +5039,11 @@ msgstr "Lähetä päivitys"
msgid "What's up, %s?"
msgstr "Mitä teet juuri nyt, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5322,7 +5323,12 @@ msgstr "Toista ei voitu asettaa tilaamaan sinua."
msgid "Not subscribed!"
msgstr "Ei ole tilattu!."
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Ei voitu poistaa tilausta."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Ei voitu poistaa tilausta."
diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po
index cb3c85af5f..a3e47142e6 100644
--- a/locale/fr/LC_MESSAGES/statusnet.po
+++ b/locale/fr/LC_MESSAGES/statusnet.po
@@ -6,7 +6,6 @@
# Author@translatewiki.net: Jean-Frédéric
# Author@translatewiki.net: McDutchie
# Author@translatewiki.net: Peter17
-# Author@translatewiki.net: Zetud
# --
# This file is distributed under the same license as the StatusNet package.
#
@@ -14,12 +13,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:36+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:15+0000\n"
"Language-Team: French\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: fr\n"
"X-Message-Group: out-statusnet\n"
@@ -96,7 +95,7 @@ msgid ""
"something yourself."
msgstr ""
"Essayez de vous abonner à plus d’utilisateurs, de vous [inscrire à un groupe]"
-"(%%action.groups%%) ou de publier quelque chose vous-même."
+"(%%action.groups%%) ou de poster quelque chose vous-même."
#: actions/all.php:134
#, php-format
@@ -104,8 +103,8 @@ msgid ""
"You can try to [nudge %s](../%s) from his profile or [post something to his "
"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)."
msgstr ""
-"Vous pouvez essayer de [donner un coup de coude à %s](../%s) depuis son "
-"profil ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?"
+"Vous pouvez essayer de [faire un clin d’œil à %s](../%s) depuis son profil "
+"ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?"
"status_textarea=%s)."
#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202
@@ -114,8 +113,8 @@ msgid ""
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
"post a notice to his or her attention."
msgstr ""
-"Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et ensuite "
-"envoyer un coup de coude à %s ou poster quelque chose à son intention."
+"Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et ensuite faire "
+"un clin d’œil à %s ou poster un avis à son intention."
#: actions/all.php:165
msgid "You and friends"
@@ -197,7 +196,12 @@ msgstr "Aucun profil ne correspond à cet utilisateur."
msgid "Could not save profile."
msgstr "Impossible d’enregistrer le profil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Vous ne pouvez pas ne plus vous suivre vous-même !"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Le blocage de l’utilisateur a échoué."
@@ -268,7 +272,7 @@ msgstr "Aucun statut trouvé avec cet identifiant. "
#: actions/apifavoritecreate.php:119
msgid "This status is already a favorite!"
-msgstr "Ce statut a déjà été ajouté à vos favoris !"
+msgstr "Cet avis a déjà été ajouté à vos favoris !"
#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
msgid "Could not create favorite."
@@ -276,7 +280,7 @@ msgstr "Impossible de créer le favori."
#: actions/apifavoritedestroy.php:122
msgid "That status is not a favorite!"
-msgstr "Ce statut n’est pas un favori !"
+msgstr "Cet avis n’est pas un favori !"
#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
msgid "Could not delete favorite."
@@ -455,7 +459,7 @@ msgstr "Non trouvé"
#, php-format
msgid "Max notice size is %d chars, including attachment URL."
msgstr ""
-"La taille maximale du statut est de %d caractères, en incluant l’URL de la "
+"La taille maximale de l’avis est de %d caractères, en incluant l’URL de la "
"pièce jointe."
#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261
@@ -502,12 +506,12 @@ msgstr "Activité publique %s"
#: actions/apitimelinepublic.php:110 actions/publicrss.php:105
#, php-format
msgid "%s updates from everyone!"
-msgstr "%s statuts "
+msgstr "%s statuts de tout le monde !"
#: actions/apitimelinetag.php:101 actions/tag.php:66
#, php-format
msgid "Notices tagged with %s"
-msgstr "Statuts marqués avec %s"
+msgstr "Avis marqués avec %s"
#: actions/apitimelinetag.php:107 actions/tagrss.php:64
#, php-format
@@ -758,11 +762,11 @@ msgstr "Conversation"
#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
#: lib/profileaction.php:216 lib/searchgroupnav.php:82
msgid "Notices"
-msgstr "Statuts"
+msgstr "Avis"
#: actions/deletenotice.php:52 actions/shownotice.php:92
msgid "No such notice."
-msgstr "Statut non trouvé."
+msgstr "Avis non trouvé."
#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62
#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69
@@ -775,7 +779,7 @@ msgstr "Non connecté."
#: actions/deletenotice.php:71
msgid "Can't delete this notice."
-msgstr "Impossible de supprimer ce statut."
+msgstr "Impossible de supprimer cet avis."
#: actions/deletenotice.php:103
msgid ""
@@ -787,11 +791,11 @@ msgstr ""
#: actions/deletenotice.php:109 actions/deletenotice.php:141
msgid "Delete notice"
-msgstr "Supprimer ce statut"
+msgstr "Supprimer cet avis"
#: actions/deletenotice.php:144
msgid "Are you sure you want to delete this notice?"
-msgstr "Êtes-vous sûr(e) de vouloir supprimer ce statut ?"
+msgstr "Êtes-vous sûr(e) de vouloir supprimer cet avis ?"
#: actions/deletenotice.php:145
msgid "Do not delete this notice"
@@ -799,7 +803,7 @@ msgstr "Ne pas supprimer cet avis"
#: actions/deletenotice.php:146 lib/noticelist.php:550
msgid "Delete this notice"
-msgstr "Supprimer ce statut"
+msgstr "Supprimer cet avis"
#: actions/deletenotice.php:157
msgid "There was a problem with your session token. Try again, please."
@@ -840,45 +844,45 @@ msgstr "Conception"
msgid "Design settings for this StatusNet site."
msgstr "Paramètres de conception pour ce site StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "URL du logo invalide."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Le thème n'est pas disponible : %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Modifier le logo"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Logo du site"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Modifier le thème"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Thème du site"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Thème pour le site."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Changer l’image d’arrière plan"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Arrière plan"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -887,55 +891,55 @@ msgstr ""
"Vous pouvez importer une image d'arrière plan pour ce site. La taille "
"maximale du fichier est de %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Activé"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Désactivé"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "Activer ou désactiver l’image d’arrière plan."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Répéter l’image d’arrière plan"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Modifier les couleurs"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Contenu"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Barre latérale"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texte"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Liens"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Utiliser les valeurs par défaut"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Restaurer les conceptions par défaut"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Revenir aux valeurs par défaut"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -945,13 +949,13 @@ msgstr "Revenir aux valeurs par défaut"
msgid "Save"
msgstr "Enregistrer"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Sauvegarder la conception"
#: actions/disfavor.php:81
msgid "This notice is not a favorite!"
-msgstr "Ce statut n’est pas un favori !"
+msgstr "Cet avis n’est pas un favori !"
#: actions/disfavor.php:94
msgid "Add to favorites"
@@ -1052,7 +1056,7 @@ msgstr "Courriel entrant"
#: actions/emailsettings.php:138 actions/smssettings.php:157
msgid "Send email to this address to post new notices."
-msgstr "Écrivez à cette adresse courriel pour publier de nouveaux statuts. "
+msgstr "Écrivez à cette adresse courriel pour poster de nouveaux avis. "
#: actions/emailsettings.php:145 actions/smssettings.php:162
msgid "Make a new email address for posting to; cancels the old one."
@@ -1074,7 +1078,7 @@ msgstr "Avertissez-moi par courriel des nouveaux abonnements."
#: actions/emailsettings.php:163
msgid "Send me email when someone adds my notice as a favorite."
msgstr ""
-"Envoyez-moi un courriel quand un utilisateur ajoute un de mes statuts à ses "
+"Envoyez-moi un courriel quand un utilisateur ajoute un de mes avis à ses "
"favoris."
#: actions/emailsettings.php:169
@@ -1091,7 +1095,7 @@ msgstr "Autoriser mes amis à m’envoyer des courriels et des clins d’œil."
#: actions/emailsettings.php:185
msgid "I want to post notices by email."
-msgstr "Je veux envoyer mes statuts par courriel."
+msgstr "Je veux envoyer mes avis par courriel."
#: actions/emailsettings.php:191
msgid "Publish a MicroID for my email address."
@@ -1178,30 +1182,30 @@ msgstr "Nouvelle adresse courriel ajoutée."
#: actions/favorited.php:65 lib/popularnoticesection.php:88
#: lib/publicgroupnav.php:93
msgid "Popular notices"
-msgstr "Statuts populaires"
+msgstr "Avis populaires"
#: actions/favorited.php:67
#, php-format
msgid "Popular notices, page %d"
-msgstr "Statuts populaires - page %d"
+msgstr "Avis populaires - page %d"
#: actions/favorited.php:79
msgid "The most popular notices on the site right now."
-msgstr "Statuts les plus populaires sur le site en ce moment."
+msgstr "Les avis les plus populaires sur le site en ce moment."
#: actions/favorited.php:150
msgid "Favorite notices appear on this page but no one has favorited one yet."
msgstr ""
-"Les statuts favoris apparaissent sur cette page mais personne ne n’en a mis "
-"un en favori actuellement."
+"Les avis favoris apparaissent sur cette page mais personne n’a mis d’avis en "
+"favori pour le moment."
#: actions/favorited.php:153
msgid ""
"Be the first to add a notice to your favorites by clicking the fave button "
"next to any notice you like."
msgstr ""
-"Soyez le premier à un statut dans vos favoris en cliquant sur le bouton "
-"favori à côté d’un statut que vous aimez."
+"Soyez le premier à ajouter un avis dans vos favoris en cliquant sur le "
+"bouton favori à côté d’un avis que vous aimez."
#: actions/favorited.php:156
#, php-format
@@ -1216,7 +1220,7 @@ msgstr ""
#: lib/personalgroupnav.php:115
#, php-format
msgid "%s's favorite notices"
-msgstr "Statuts favoris de %s"
+msgstr "Avis favoris de %s"
#: actions/favoritesrss.php:115
#, php-format
@@ -1225,7 +1229,7 @@ msgstr "Mises à jour privilégiées par %1$s sur %2$s !"
#: actions/favor.php:79
msgid "This notice is already a favorite!"
-msgstr "Ce statut a déjà été ajouté à vos favoris !"
+msgstr "Cet avis a déjà été ajouté à vos favoris !"
#: actions/favor.php:92 lib/disfavorform.php:140
msgid "Disfavor favorite"
@@ -1248,11 +1252,11 @@ msgstr "Les utilisateurs à ne pas manquer dans %s"
#: actions/file.php:34
msgid "No notice id"
-msgstr "Pas d’identifiant de statut"
+msgstr "Pas d’identifiant d’avis"
#: actions/file.php:38
msgid "No notice"
-msgstr "Aucun statut"
+msgstr "Aucun avis"
#: actions/file.php:42
msgid "No attachments"
@@ -1349,7 +1353,7 @@ msgid ""
"group in the future."
msgstr ""
"Êtes-vous sûr(e) de vouloir bloquer l’utilisateur \"%s\" du groupe \"%s\"? "
-"Ils seront supprimés du groupe, il leur sera interdit d’y publier, et de s’y "
+"Ils seront supprimés du groupe, il leur sera interdit d’y poster, et de s’y "
"abonner à l’avenir."
#: actions/groupblock.php:178
@@ -1382,21 +1386,21 @@ msgid ""
"Customize the way your group looks with a background image and a colour "
"palette of your choice."
msgstr ""
-"Personnalisez le style de votre groupe avec une image de fond et une palette "
-"de couleur de votre choix."
+"Personnalisez l’apparence de votre groupe avec une image d’arrière plan et "
+"une palette de couleurs de votre choix"
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Impossible de mettre à jour votre conception."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Impossible de sauvegarder les préférences de conception !"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Préférences de conception enregistrées."
@@ -1520,11 +1524,11 @@ msgid ""
"%%%%)"
msgstr ""
"Les groupes de %%%%site.name%%%% permettent de trouver et de parler avec des "
-"personnes qui ont le même intérêt. Après avoir rejoint un groupe vous pouvez "
-"envoyer des messages à tous les autres membres en utilisant la syntaxe « !"
-"nomdugroupe ». Vous ne voyez aucun groupe qui vous intéresse ? Essayer d'en "
-"[rechercher un](%%%%action.groupsearch%%%%) ou [commencez le votre !](%%%%"
-"action.newgroup%%%%)"
+"personnes qui ont des intérêts en commun avec vous. Après avoir rejoint un "
+"groupe, vous pouvez envoyer des messages à tous les autres membres en "
+"utilisant la syntaxe « !nomdugroupe ». Vous ne voyez aucun groupe qui vous "
+"intéresse ? Essayez d’en [rechercher un](%%%%action.groupsearch%%%%) ou de "
+"[créer le vôtre !](%%%%action.newgroup%%%%)"
#: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122
msgid "Create a new group"
@@ -1590,12 +1594,12 @@ msgstr ""
#: actions/imsettings.php:143
msgid "Send me notices through Jabber/GTalk."
-msgstr "Envoyez-moi les statuts par Jabber/GTalk."
+msgstr "Envoyez-moi les avis par Jabber/GTalk."
#: actions/imsettings.php:148
msgid "Post a notice when my Jabber/GTalk status changes."
msgstr ""
-"Publier un statut chaque fois que mon statut est modifié dans Jabber/GTalk"
+"Poster un avis chaque fois que mon statut est modifié dans Jabber/GTalk"
#: actions/imsettings.php:153
msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
@@ -1729,7 +1733,7 @@ msgstr "Message personnel"
msgid "Optionally add a personal message to the invitation."
msgstr "Ajouter un message personnel à l’invitation (optionnel)."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Envoyer"
@@ -1977,11 +1981,11 @@ msgstr "Erreur Ajax"
#: actions/newnotice.php:69
msgid "New notice"
-msgstr "Nouveau statut"
+msgstr "Nouvel avis"
#: actions/newnotice.php:206
msgid "Notice posted"
-msgstr "Statut publié"
+msgstr "Avis publié"
#: actions/noticesearch.php:68
#, php-format
@@ -1989,7 +1993,7 @@ msgid ""
"Search for notices on %%site.name%% by their contents. Separate search terms "
"by spaces; they must be 3 characters or more."
msgstr ""
-"Recherchez les statuts %%site.name%% par leur contenu. Séparez les termes de "
+"Recherchez les avis %%site.name%% par leur contenu. Séparez les termes de "
"recherche par des espaces. Ils doivent contenir au moins 3 caractères."
#: actions/noticesearch.php:78
@@ -2047,7 +2051,7 @@ msgstr "Clin d’œil envoyé !"
#: actions/oembed.php:79 actions/shownotice.php:100
msgid "Notice has no profile"
-msgstr "Le statut n’a pas de profil"
+msgstr "L’avis n’a pas de profil"
#: actions/oembed.php:86 actions/shownotice.php:180
#, php-format
@@ -2062,8 +2066,8 @@ msgstr "type de contenu "
msgid "Only "
msgstr "Seulement "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Format de données non supporté."
@@ -2073,7 +2077,7 @@ msgstr "Recherche de personnes"
#: actions/opensearch.php:67
msgid "Notice Search"
-msgstr "Recherche de statut"
+msgstr "Recherche d’avis"
#: actions/othersettings.php:60
msgid "Other Settings"
@@ -2302,12 +2306,12 @@ msgstr "Recherche de personnes"
#: actions/peopletag.php:70
#, php-format
msgid "Not a valid people tag: %s"
-msgstr "Ce marquage est invalide : %s"
+msgstr "Cette marque est invalide : %s"
#: actions/peopletag.php:144
#, php-format
msgid "Users self-tagged with %s - page %d"
-msgstr "Utilisateurs marqués &s - page %d"
+msgstr "Utilisateurs marqués par eux-mêmes %s - page %d"
#: actions/postnotice.php:84
msgid "Invalid notice content"
@@ -2317,8 +2321,7 @@ msgstr "Contenu invalide"
#, php-format
msgid "Notice license ‘%s’ is not compatible with site license ‘%s’."
msgstr ""
-"La licence des statuts « %s » n'est pas compatible avec la licence du site « %"
-"s »."
+"La licence des avis « %s » n'est pas compatible avec la licence du site « %s »."
#: actions/profilesettings.php:60
msgid "Profile settings"
@@ -2382,13 +2385,14 @@ msgstr "Indiquez votre emplacement, ex.: « Ville, État (ou région), Pays »"
#: actions/tagother.php:209 lib/subscriptionlist.php:106
#: lib/subscriptionlist.php:108 lib/userprofile.php:209
msgid "Tags"
-msgstr "Marquages"
+msgstr "Marques"
#: actions/profilesettings.php:140
msgid ""
"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated"
msgstr ""
-"Marquages (tags) pour votre profil, séparés par des virgules ou des espaces"
+"Marques pour vous-même (lettres, chiffres, -, ., et _), séparées par des "
+"virgules ou des espaces"
#: actions/profilesettings.php:144 actions/siteadminpanel.php:307
msgid "Language"
@@ -2429,7 +2433,7 @@ msgstr "La langue est trop longue (255 caractères maximum)."
#: actions/profilesettings.php:246 actions/tagother.php:178
#, php-format
msgid "Invalid tag: \"%s\""
-msgstr "Marquage invalide : « %s »"
+msgstr "Marque invalide : « %s »"
#: actions/profilesettings.php:295
msgid "Couldn't update user for autosubscribe."
@@ -2441,7 +2445,7 @@ msgstr "Impossible d’enregistrer le profil."
#: actions/profilesettings.php:336
msgid "Couldn't save tags."
-msgstr "Impossible d’enregistrer les marquages."
+msgstr "Impossible d’enregistrer les marques."
#: actions/profilesettings.php:344 lib/adminpanelaction.php:126
msgid "Settings saved."
@@ -2524,17 +2528,18 @@ msgstr ""
#: actions/publictagcloud.php:57
msgid "Public tag cloud"
-msgstr "Nuage de mots clefs public"
+msgstr "Nuage de marques public"
#: actions/publictagcloud.php:63
#, php-format
msgid "These are most popular recent tags on %s "
-msgstr "Derniers marquages les plus populaires dans %s "
+msgstr "Dernières marques les plus populaires sur %s "
#: actions/publictagcloud.php:69
#, php-format
msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet."
-msgstr "Personne n'a encore posté un statuts avec une [marque](%%doc.tags%%)."
+msgstr ""
+"Personne n'a encore posté d’avis avec une [marque (hashtag)](%%doc.tags%%)."
#: actions/publictagcloud.php:72
msgid "Be the first to post one!"
@@ -2551,7 +2556,7 @@ msgstr ""
#: actions/publictagcloud.php:135
msgid "Tag cloud"
-msgstr "Nuage de mots clefs"
+msgstr "Nuage de marques"
#: actions/recoverpassword.php:36
msgid "You are already logged in!"
@@ -2724,7 +2729,7 @@ msgid ""
"link up to friends and colleagues. "
msgstr ""
"Avec ce formulaire vous pouvez créer un nouveau compte. Vous pourrez ensuite "
-"poster des statuts and et vous relier avec des amis et collègues. "
+"poster des avis and et vous relier à des amis et collègues. "
#: actions/register.php:424
msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
@@ -2747,8 +2752,8 @@ msgstr "Courriel"
#: actions/register.php:438 actions/register.php:442
msgid "Used only for updates, announcements, and password recovery"
msgstr ""
-"Utilisé uniquement pour les mises à jour de statut, les avertissements, et "
-"la récupération de mot de passe"
+"Utilisé uniquement pour les mises à jour, les notifications, et la "
+"récupération de mot de passe"
#: actions/register.php:449
msgid "Longer name, preferably your \"real\" name"
@@ -2791,9 +2796,9 @@ msgstr ""
"Félicitations, %s! Bienvenue dans %%%%site.name%%%%. Vous pouvez "
"maintenant :\n"
"\n"
-"* Visiter [votre profil](%s) et publier votre premier statut.\n"
+"* Visiter [votre profil](%s) et poster votre premier message.\n"
"* Ajouter une adresse [Jabber/GTalk](%%%%action.imsettings%%%%) afin "
-"d’envoyer et recevoir vos statuts par messagerie instantanée.\n"
+"d’envoyer et recevoir vos avis par messagerie instantanée.\n"
"* [Chercher des personnes](%%%%action.peoplesearch%%%%) que vous pourriez "
"connaître ou qui partagent vos intêrets.\n"
"* Mettre votre [profil](%%%%action.profilesettings%%%%) à jour pour en dire "
@@ -2858,7 +2863,6 @@ msgid "Invalid profile URL (bad format)"
msgstr "URL du profil invalide (mauvais format)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
msgstr ""
"URL de profil invalide (aucun document YADIS ou définition XRDS invalide)."
@@ -2903,8 +2907,8 @@ msgid ""
"This is the timeline showing replies to %s but %s hasn't received a notice "
"to his attention yet."
msgstr ""
-"Ceci est la chronologie des réponses à %s mais %s n'a encore reçu aucun "
-"statut à son intention."
+"Ceci est la chronologie des réponses à %s mais %s n’a encore reçu aucun avis "
+"à son intention."
#: actions/replies.php:203
#, php-format
@@ -2912,8 +2916,9 @@ msgid ""
"You can engage other users in a conversation, subscribe to more people or "
"[join groups](%%action.groups%%)."
msgstr ""
-"Vous pouvez vous engager dans une conversation avec d'autres personnes, vous "
-"abonner à plus de gens ou [joindre des groupes](%%action.groups%%)."
+"Vous pouvez entamer une conversation avec d’autres utilisateurs, vous "
+"abonner à plus de personnes ou vous [inscrire à des groupes](%%action.groups%"
+"%)."
#: actions/replies.php:205
#, php-format
@@ -2921,8 +2926,8 @@ msgid ""
"You can try to [nudge %s](../%s) or [post something to his or her attention]"
"(%%%%action.newnotice%%%%?status_textarea=%s)."
msgstr ""
-"Vous pouvez essayer de [faire un clin d’œil à %s](../%s) ou de [publier "
-"quelque chose à son attention](%%%%action.newnotice%%%%?status_textarea=%s)"
+"Vous pouvez essayer de [faire un clin d’œil à %s](../%s) ou de [poster "
+"quelque chose à son intention](%%%%action.newnotice%%%%?status_textarea=%s)"
#: actions/repliesrss.php:72
#, php-format
@@ -2988,7 +2993,7 @@ msgid ""
"would add to their favorites :)"
msgstr ""
"%s n’a pas ajouté d’avis à ses favoris pour le moment. Vous pourriez [créer "
-"un compte](%%%%action.register%%%%), puis publier quelque chose "
+"un compte](%%%%action.register%%%%), puis poster quelque chose "
"d’intéressant, qui serait ajouté à ses favoris :)"
#: actions/showfavorites.php:242
@@ -3139,22 +3144,22 @@ msgstr "%s - page %d"
#: actions/showstream.php:122
#, php-format
msgid "Notice feed for %s tagged %s (RSS 1.0)"
-msgstr "Fil des statuts pour %s marqués %s (RSS 1.0)"
+msgstr "Fil des avis pour %s marqués %s (RSS 1.0)"
#: actions/showstream.php:129
#, php-format
msgid "Notice feed for %s (RSS 1.0)"
-msgstr "Flux des statuts de %s (RSS 1.0)"
+msgstr "Flux des avis de %s (RSS 1.0)"
#: actions/showstream.php:136
#, php-format
msgid "Notice feed for %s (RSS 2.0)"
-msgstr "Flux des statuts de %s (RSS 2.0)"
+msgstr "Flux des avis de %s (RSS 2.0)"
#: actions/showstream.php:143
#, php-format
msgid "Notice feed for %s (Atom)"
-msgstr "Flux des statuts de %s (Atom)"
+msgstr "Flux des avis de %s (Atom)"
#: actions/showstream.php:148
#, php-format
@@ -3180,8 +3185,8 @@ msgid ""
"You can try to nudge %s or [post something to his or her attention](%%%%"
"action.newnotice%%%%?status_textarea=%s)."
msgstr ""
-"Vous pouvez essayer de faire un clin d’œil à %s ou de [publier quelque chose "
-"à son attention](%%%%action.newnotice%%%%?status_textarea=%s)."
+"Vous pouvez essayer de faire un clin d’œil à %s ou de [poster quelque chose "
+"à son intention](%%%%action.newnotice%%%%?status_textarea=%s)."
#: actions/showstream.php:234
#, php-format
@@ -3194,8 +3199,8 @@ msgstr ""
"**%s** possède un compte sur %%%%site.name%%%%, un service de [microblogging]"
"(http://fr.wikipedia.org/wiki/Microblog) basé sur le logiciel libre "
"[StatusNet](http://status.net/). [Inscrivez-vous maintenant](%%%%action."
-"register%%%%) pour suivre les statuts de **%s** et bien plus ! ([En lire "
-"plus](%%%%doc.help%%%%))"
+"register%%%%) pour suivre les avis de **%s** et bien plus ! ([En lire plus](%"
+"%%%doc.help%%%%))"
#: actions/showstream.php:239
#, php-format
@@ -3291,7 +3296,7 @@ msgstr "URL utilisée pour le lien de crédits au bas de chaque page"
#: actions/siteadminpanel.php:284
msgid "Contact email address for your site"
-msgstr "adresse de courriel de contact de votre site"
+msgstr "Adresse de courriel de contact de votre site"
#: actions/siteadminpanel.php:290
msgid "Local"
@@ -3435,7 +3440,7 @@ msgstr "Limite de texte"
#: actions/siteadminpanel.php:403
msgid "Maximum number of characters for notices."
-msgstr "Nombre maximal de caractères pour les statuts."
+msgstr "Nombre maximal de caractères pour les avis."
#: actions/siteadminpanel.php:407
msgid "Dupe limit"
@@ -3496,7 +3501,7 @@ msgid ""
"Send me notices through SMS; I understand I may incur exorbitant charges "
"from my carrier."
msgstr ""
-"Envoyez-moi les statuts par SMS ; je comprends que cela pourrait affecter ma "
+"Envoyez-moi les avis par SMS ; je comprends que cela pourrait affecter ma "
"facture de téléphonie mobile."
#: actions/smssettings.php:306
@@ -3568,7 +3573,7 @@ msgstr "Ceci n’est pas un utilisateur local."
#: actions/subscribe.php:69
msgid "Subscribed"
-msgstr "Souscrit"
+msgstr "Abonné"
#: actions/subscribers.php:50
#, php-format
@@ -3582,12 +3587,12 @@ msgstr "Abonnés à %s - page &d"
#: actions/subscribers.php:63
msgid "These are the people who listen to your notices."
-msgstr "Ces personnes suivent vos statuts."
+msgstr "Ces personnes suivent vos avis."
#: actions/subscribers.php:67
#, php-format
msgid "These are the people who listen to %s's notices."
-msgstr "Ces personnes suivent les statuts de %s."
+msgstr "Ces personnes suivent les avis de %s."
#: actions/subscribers.php:108
msgid ""
@@ -3623,12 +3628,12 @@ msgstr "Abonnements de %s - page %d"
#: actions/subscriptions.php:65
msgid "These are the people whose notices you listen to."
-msgstr "Vous suivez les statuts de ces personnes. "
+msgstr "Vous suivez les avis de ces personnes."
#: actions/subscriptions.php:69
#, php-format
msgid "These are the people whose notices %s listens to."
-msgstr "Les statuts de ces personnes sont suivis par %s."
+msgstr "Les avis de ces personnes sont suivis par %s."
#: actions/subscriptions.php:121
#, php-format
@@ -3670,7 +3675,7 @@ msgstr "Aucun argument d’identification."
#: actions/tagother.php:65
#, php-format
msgid "Tag %s"
-msgstr "Marquage %s"
+msgstr "Marque %s"
#: actions/tagother.php:77 lib/userprofile.php:75
msgid "User profile"
@@ -3688,7 +3693,9 @@ msgstr "Marquer l’utilisateur"
msgid ""
"Tags for this user (letters, numbers, -, ., and _), comma- or space- "
"separated"
-msgstr "Marquer cet utilisateur (séparer par des espaces ou des virgules)"
+msgstr ""
+"Marques pour cet utilisateur (lettres, chiffres, -, ., et _), séparées par "
+"des virgules ou des espaces"
#: actions/tagother.php:193
msgid ""
@@ -3699,7 +3706,7 @@ msgstr ""
#: actions/tagother.php:200
msgid "Could not save tags."
-msgstr "Impossible d’enregistrer les marquages."
+msgstr "Impossible d’enregistrer les marques."
#: actions/tagother.php:236
msgid "Use this form to add tags to your subscribers or subscriptions."
@@ -3709,26 +3716,26 @@ msgstr ""
#: actions/tag.php:68
#, php-format
msgid "Notices tagged with %s, page %d"
-msgstr "Statuts marqués %s - page %d"
+msgstr "Avis marqués %s - page %d"
#: actions/tag.php:86
#, php-format
msgid "Notice feed for tag %s (RSS 1.0)"
-msgstr "Flux des statuts pour le marquage %s (RSS 1.0)"
+msgstr "Flux des avis pour la marque %s (RSS 1.0)"
#: actions/tag.php:92
#, php-format
msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr "Flux des statuts pour le marquage %s (RSS 2.0)"
+msgstr "Flux des avis pour la marque %s (RSS 2.0)"
#: actions/tag.php:98
#, php-format
msgid "Notice feed for tag %s (Atom)"
-msgstr "Flux des statuts pour le marquage %s (Atom)"
+msgstr "Flux des avis pour la marque %s (Atom)"
#: actions/tagrss.php:35
msgid "No such tag."
-msgstr "Aucun marquage trouvé."
+msgstr "Cette marque n’existe pas."
#: actions/twitapitrends.php:87
msgid "API method under construction."
@@ -3762,7 +3769,7 @@ msgstr "Désabonné"
#, php-format
msgid "Listenee stream license ‘%s’ is not compatible with site license ‘%s’."
msgstr ""
-"La licence du flux auquel vous avez souscrit ‘%s’ n’est pas compatible avec "
+"La licence du flux auquel vous êtes abonné(e) ‘%s’ n’est pas compatible avec "
"la licence du site ‘%s’."
#: actions/useradminpanel.php:58 lib/adminpanelaction.php:305
@@ -3865,8 +3872,8 @@ msgid ""
"click “Reject”."
msgstr ""
"Veuillez vérifier ces détails pour vous assurer que vous souhaitez vous "
-"abonner aux statuts de cet utilisateur. Si vous n’avez pas demandé à vous "
-"abonner aux statuts de quelqu’un, cliquez « Rejeter »."
+"abonner aux avis de cet utilisateur. Si vous n’avez pas demandé à vous "
+"abonner aux avis de quelqu’un, cliquez « Rejeter »."
#: actions/userauthorization.php:188
msgid "License"
@@ -3887,7 +3894,7 @@ msgstr "Refuser"
#: actions/userauthorization.php:212
msgid "Reject this subscription"
-msgstr "Rejeter cette souscription"
+msgstr "Rejeter cet abonnement"
#: actions/userauthorization.php:225
msgid "No authorization request!"
@@ -3929,12 +3936,13 @@ msgstr "L’URI de l’auditeur ‘%s’ n’a pas été trouvée"
#: actions/userauthorization.php:301
#, php-format
msgid "Listenee URI ‘%s’ is too long."
-msgstr "L’URI à laquelle vous avez souscrit ‘%s’ est trop longue."
+msgstr "L’URI à laquelle vous vous êtes abonné(e) ‘%s’ est trop longue."
#: actions/userauthorization.php:307
#, php-format
msgid "Listenee URI ‘%s’ is a local user."
-msgstr "L’URI à laquelle vous avez souscrit ‘%s’ est un utilisateur local."
+msgstr ""
+"L’URI à laquelle vous vous êtes abonné(e) ‘%s’ est un utilisateur local."
#: actions/userauthorization.php:322
#, php-format
@@ -4031,7 +4039,7 @@ msgstr "Impossible de mettre à jour le message avec un nouvel URI."
#: classes/Notice.php:164
#, php-format
msgid "DB error inserting hashtag: %s"
-msgstr "Erreur de base de donnée en insérant le hashtag : %s"
+msgstr "Erreur de base de donnée en insérant la marque (hashtag) : %s"
#: classes/Notice.php:179
msgid "Problem saving notice. Too long."
@@ -4039,14 +4047,14 @@ msgstr "Problème lors de l’enregistrement de l’avis ; trop long."
#: classes/Notice.php:183
msgid "Problem saving notice. Unknown user."
-msgstr "Erreur lors de l’enregistrement du statut. Utilisateur inconnu."
+msgstr "Erreur lors de l’enregistrement de l’avis. Utilisateur inconnu."
#: classes/Notice.php:188
msgid ""
"Too many notices too fast; take a breather and post again in a few minutes."
msgstr ""
-"Trop de statuts, trop vite ! Prenez une pause et publiez à nouveau dans "
-"quelques minutes."
+"Trop d’avis, trop vite ! Faites une pause et publiez à nouveau dans quelques "
+"minutes."
#: classes/Notice.php:194
msgid ""
@@ -4058,11 +4066,11 @@ msgstr ""
#: classes/Notice.php:200
msgid "You are banned from posting notices on this site."
-msgstr "Il vous est interdit de publier des statuts dans ce site."
+msgstr "Il vous est interdit de poster des avis sur ce site."
#: classes/Notice.php:265 classes/Notice.php:290
msgid "Problem saving notice."
-msgstr "Problème lors de l’enregistrement du statut."
+msgstr "Problème lors de l’enregistrement de l’avis."
#: classes/Notice.php:1124
#, php-format
@@ -4335,7 +4343,7 @@ msgstr "Fournisseur"
#: lib/attachmentnoticesection.php:67
msgid "Notices where this attachment appears"
-msgstr "Statuts sur lesquels cette pièce jointe apparait."
+msgstr "Avis sur lesquels cette pièce jointe apparaît."
#: lib/attachmenttagcloudsection.php:48
msgid "Tags for this attachment"
@@ -4384,15 +4392,15 @@ msgstr ""
#: lib/command.php:152 lib/command.php:400
msgid "Notice with that id does not exist"
-msgstr "Aucun statut avec cet identifiant n’existe"
+msgstr "Aucun avis avec cet identifiant n’existe"
#: lib/command.php:168 lib/command.php:416 lib/command.php:471
msgid "User has no last notice"
-msgstr "Aucun statut récent pour cet utilisateur"
+msgstr "Aucun avis récent pour cet utilisateur"
#: lib/command.php:190
msgid "Notice marked as fave."
-msgstr "Statut ajouté aux favoris."
+msgstr "Avis ajouté aux favoris."
#: lib/command.php:315
#, php-format
@@ -4515,7 +4523,6 @@ msgstr[0] "Vous êtes membre de ce groupe :"
msgstr[1] "Vous êtes membre de ces groupes :"
#: lib/command.php:652
-#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4579,7 +4586,7 @@ msgstr ""
"last - même effet que 'get'\n"
"on - pas encore implémenté.\n"
"off - pas encore implémenté.\n"
-"nudge - rappeler à un utilisateur de publier.\n"
+"nudge - clin d’œil : rappeler à un utilisateur de poster.\n"
"invite - pas encore implémenté.\n"
"track - pas encore implémenté.\n"
"untrack - pas encore implémenté.\n"
@@ -4611,11 +4618,11 @@ msgstr "IM"
#: lib/connectsettingsaction.php:111
msgid "Updates by instant messenger (IM)"
-msgstr "Suivi des statuts par messagerie instantanée"
+msgstr "Suivi des avis par messagerie instantanée"
#: lib/connectsettingsaction.php:116
msgid "Updates by SMS"
-msgstr "Suivi des statuts par SMS"
+msgstr "Suivi des avis par SMS"
#: lib/dberroraction.php:60
msgid "Database error"
@@ -4632,11 +4639,7 @@ msgstr ""
"Vous pouvez importer votre image d’arrière plan personnelle. La taille "
"maximale du fichier est de 2 Mo."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Mauvais paramètres de couleur par défaut : "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Les paramètre par défaut de la conception ont été restaurés."
@@ -4674,7 +4677,7 @@ msgstr "Ami d’un ami"
#: lib/galleryaction.php:121
msgid "Filter tags"
-msgstr "Filtrer les balises"
+msgstr "Filtrer les marques"
#: lib/galleryaction.php:131
msgid "All"
@@ -4686,11 +4689,11 @@ msgstr "Sélectionner une marque à filtrer"
#: lib/galleryaction.php:140
msgid "Tag"
-msgstr "Marquer"
+msgstr "Marque"
#: lib/galleryaction.php:141
msgid "Choose a tag to narrow list"
-msgstr "Choissez un marquage pour réduire la liste"
+msgstr "Choissez une marque pour réduire la liste"
#: lib/galleryaction.php:143
msgid "Go"
@@ -4770,7 +4773,7 @@ msgstr "Groupes avec le plus d'éléments publiés"
#: lib/grouptagcloudsection.php:56
#, php-format
msgid "Tags in %s group's notices"
-msgstr "Marquages des statuts du groupe %s"
+msgstr "Marques dans les avis du groupe %s"
#: lib/htmloutputter.php:103
msgid "This page is not available in a media type you accept"
@@ -4889,7 +4892,7 @@ msgstr ""
#: lib/mail.php:236
#, php-format
msgid "%1$s is now listening to your notices on %2$s."
-msgstr "%1$s suit maintenant vos statuts dans %2$s."
+msgstr "%1$s suit maintenant vos avis sur %2$s."
#: lib/mail.php:241
#, php-format
@@ -4905,7 +4908,7 @@ msgid ""
"----\n"
"Change your email address or notification options at %8$s\n"
msgstr ""
-"%1$s suit maintenant vos statuts sur %2$s.\n"
+"%1$s suit maintenant vos avis sur %2$s.\n"
"\n"
"%3$s\n"
"\n"
@@ -4952,14 +4955,13 @@ msgid ""
"Faithfully yours,\n"
"%4$s"
msgstr ""
-"Une nouvelle adresse vous a été attribuée pour publier vos statuts dans %1"
-"$s.\n"
+"Une nouvelle adresse vous a été attribuée pour poster vos avis sur %1$s.\n"
"\n"
-"Écrivez à %2$s pour mettre à jour votre statut.\n"
+"Écrivez à %2$s pour poster un nouvel avis.\n"
"\n"
"Plus d’info : %3$s.\n"
"\n"
-"Amicalement vôtre,\n"
+"Cordialement,\n"
"%4$s"
#: lib/mail.php:413
@@ -4992,7 +4994,7 @@ msgid ""
"%4$s\n"
msgstr ""
"%1$s (%2$s) se demande ce que vous devenez ces temps-ci et vous invite à "
-"publier des nouvelles.\n"
+"poster des nouvelles.\n"
"\n"
"Donc on vous écoute :)\n"
"\n"
@@ -5044,7 +5046,7 @@ msgstr ""
#: lib/mail.php:559
#, php-format
msgid "%s (@%s) added your notice as a favorite"
-msgstr "%s (@%s) a ajouté un de vos statut à ses favoris"
+msgstr "%s (@%s) a ajouté un de vos avis à ses favoris"
#: lib/mail.php:561
#, php-format
@@ -5178,24 +5180,24 @@ msgstr "Envoyer un message direct"
msgid "To"
msgstr "À"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Caractères restants"
#: lib/noticeform.php:158
msgid "Send a notice"
-msgstr "Envoyer un statut"
+msgstr "Envoyer un avis"
#: lib/noticeform.php:171
#, php-format
msgid "What's up, %s?"
msgstr "Quoi de neuf, %s ?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Attacher"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Attacher un fichier"
@@ -5230,7 +5232,7 @@ msgstr "dans le contexte"
#: lib/noticelist.php:526
msgid "Reply to this notice"
-msgstr "Répondre à ce statut"
+msgstr "Répondre à cet avis"
#: lib/noticelist.php:527
msgid "Reply"
@@ -5303,7 +5305,7 @@ msgstr "Vos messages envoyés"
#: lib/personaltagcloudsection.php:56
#, php-format
msgid "Tags in %s's notices"
-msgstr "Marquages des statuts de %s"
+msgstr "Marques dans les avis de %s"
#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82
msgid "Subscriptions"
@@ -5351,7 +5353,7 @@ msgstr "Groupes d’utilisateurs"
#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
msgid "Recent tags"
-msgstr "Marquages récents"
+msgstr "Marques récentes"
#: lib/publicgroupnav.php:88
msgid "Featured"
@@ -5375,7 +5377,7 @@ msgstr "Rechercher sur le site"
#: lib/searchaction.php:126
msgid "Keyword(s)"
-msgstr "Mot(s) celf(s)"
+msgstr "Mot(s) clef(s)"
#: lib/searchaction.php:162
msgid "Search help"
@@ -5391,7 +5393,7 @@ msgstr "Chercher des personnes sur ce site"
#: lib/searchgroupnav.php:83
msgid "Find content of notices"
-msgstr "Chercher dans le contenu des statuts"
+msgstr "Chercher dans le contenu des avis"
#: lib/searchgroupnav.php:85
msgid "Find groups on this site"
@@ -5431,12 +5433,12 @@ msgstr "Groupes de %s"
#: lib/subscriberspeopleselftagcloudsection.php:48
#: lib/subscriptionspeopleselftagcloudsection.php:48
msgid "People Tagcloud as self-tagged"
-msgstr "Nuage de mots clefs des personnes tel que définis par eux-même"
+msgstr "Nuage de marques pour une personne (ajoutées par eux-même)"
#: lib/subscriberspeopletagcloudsection.php:48
#: lib/subscriptionspeopletagcloudsection.php:48
msgid "People Tagcloud as tagged"
-msgstr "Nuage de mots clefs des personnes"
+msgstr "Nuage de marques pour une personne"
#: lib/subscriptionlist.php:126
msgid "(none)"
@@ -5444,7 +5446,7 @@ msgstr "(aucun)"
#: lib/subs.php:52
msgid "Already subscribed!"
-msgstr "Déjà souscrit !"
+msgstr "Déjà abonné !"
#: lib/subs.php:56
msgid "User has blocked you."
@@ -5462,7 +5464,12 @@ msgstr "Impossible d’abonner une autre personne à votre profil."
msgid "Not subscribed!"
msgstr "Pas abonné !"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Impossible de cesser l’abonnement"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Impossible de cesser l’abonnement"
diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po
index 445e580bbb..d809f92341 100644
--- a/locale/ga/LC_MESSAGES/statusnet.po
+++ b/locale/ga/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:42+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:19+0000\n"
"Language-Team: Irish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ga\n"
"X-Message-Group: out-statusnet\n"
@@ -185,7 +185,12 @@ msgstr "O usuario non ten perfil."
msgid "Could not save profile."
msgstr "Non se puido gardar o perfil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Non se puido actualizar o usuario."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Bloqueo de usuario fallido."
@@ -848,109 +853,109 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Tamaño inválido."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Cambiar contrasinal"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Invitar"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Modificado"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Novo chío"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Podes actualizar a túa información do perfil persoal aquí"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Cambiar contrasinal"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Conectar"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Buscar"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texto"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Lista"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -960,7 +965,7 @@ msgstr ""
msgid "Save"
msgstr "Gardar"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1410,20 +1415,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Non se puido actualizar o usuario."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Non se puideron gardar os teus axustes de Twitter!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Preferencias gardadas."
@@ -1743,7 +1748,7 @@ msgstr "Mensaxe persoal"
msgid "Optionally add a personal message to the invitation."
msgstr "Opcionalmente engadir unha mensaxe persoal á invitación."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Enviar"
@@ -2072,8 +2077,8 @@ msgstr "Conectar"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Non é un formato de datos soportado."
@@ -4679,11 +4684,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Podes actualizar a túa información do perfil persoal aquí"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5206,7 +5207,7 @@ msgstr "Eliminar chío"
msgid "To"
msgstr "A"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 ou máis caracteres"
@@ -5221,11 +5222,11 @@ msgstr "Dar un toque"
msgid "What's up, %s?"
msgstr "¿Que pasa, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5514,7 +5515,12 @@ msgstr "Outro usuario non se puido suscribir a ti."
msgid "Not subscribed!"
msgstr "Non está suscrito!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Non se pode eliminar a subscrición."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Non se pode eliminar a subscrición."
diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po
index c481313070..8ff8672800 100644
--- a/locale/he/LC_MESSAGES/statusnet.po
+++ b/locale/he/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:46+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:22+0000\n"
"Language-Team: Hebrew\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: he\n"
"X-Message-Group: out-statusnet\n"
@@ -183,7 +183,12 @@ msgstr "למשתמש אין פרופיל."
msgid "Could not save profile."
msgstr "שמירת הפרופיל נכשלה."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "עידכון המשתמש נכשל."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -834,109 +839,109 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "גודל לא חוקי."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "שנה סיסמה"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "הודעה חדשה"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "שנה"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "הודעה חדשה"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "שנה סיסמה"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "התחבר"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "חיפוש"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "טקסט"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "היכנס"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -946,7 +951,7 @@ msgstr ""
msgid "Save"
msgstr "שמור"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1388,19 +1393,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "עידכון המשתמש נכשל."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "העדפות נשמרו."
@@ -1715,7 +1720,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "שלח"
@@ -2011,8 +2016,8 @@ msgstr "התחבר"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4490,11 +4495,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4956,7 +4957,7 @@ msgstr ""
msgid "To"
msgstr "אל"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "לפחות 6 אותיות"
@@ -4971,11 +4972,11 @@ msgstr "הודעה חדשה"
msgid "What's up, %s?"
msgstr "מה המצב %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5257,7 +5258,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "לא מנוי!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "מחיקת המנוי לא הצליחה."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "מחיקת המנוי לא הצליחה."
diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po
index c22ee263de..6a0ff37b46 100644
--- a/locale/hsb/LC_MESSAGES/statusnet.po
+++ b/locale/hsb/LC_MESSAGES/statusnet.po
@@ -6,19 +6,19 @@
#
msgid ""
msgstr ""
-""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-27 23:50+0000\n"
-"PO-Revision-Date: 2009-12-02 23:32:10+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:27+0000\n"
"Language-Team: Dutch\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: hsb\n"
"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : (n%100==3 || n%100==4) ? 2 : 3)\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : (n%100==3 || "
+"n%100==4) ? 2 : 3)\n"
#: actions/all.php:63 actions/public.php:97 actions/replies.php:92
#: actions/showfavorites.php:137 actions/tag.php:51
@@ -76,10 +76,42 @@ msgstr "Kanal za přećelow wužiwarja %s (RSS 2.0)"
msgid "Feed for friends of %s (Atom)"
msgstr "Kanal za přećelow wužiwarja %s (Atom)"
+#: actions/all.php:127
+#, php-format
+msgid ""
+"This is the timeline for %s and friends but no one has posted anything yet."
+msgstr ""
+
+#: actions/all.php:132
+#, php-format
+msgid ""
+"Try subscribing to more people, [join a group](%%action.groups%%) or post "
+"something yourself."
+msgstr ""
+
+#: actions/all.php:134
+#, php-format
+msgid ""
+"You can try to [nudge %s](../%s) from his profile or [post something to his "
+"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)."
+msgstr ""
+
+#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202
+#, php-format
+msgid ""
+"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
+"post a notice to his or her attention."
+msgstr ""
+
#: actions/all.php:165
msgid "You and friends"
msgstr "Ty a přećeljo"
+#: actions/allrss.php:119 actions/apitimelinefriends.php:121
+#, php-format
+msgid "Updates from %1$s and friends on %2$s!"
+msgstr ""
+
#: actions/apiaccountratelimitstatus.php:70
#: actions/apiaccountupdatedeliverydevice.php:93
#: actions/apiaccountupdateprofilebackgroundimage.php:94
@@ -101,10 +133,34 @@ msgstr "API-metoda njenamakana."
msgid "This method requires a POST."
msgstr "Tuta metoda wužaduje sej POST."
+#: actions/apiaccountupdatedeliverydevice.php:105
+msgid ""
+"You must specify a parameter named 'device' with a value of one of: sms, im, "
+"none"
+msgstr ""
+
#: actions/apiaccountupdatedeliverydevice.php:132
msgid "Could not update user."
msgstr "Wužiwar njeje so dał aktualizować."
+#: actions/apiaccountupdateprofilebackgroundimage.php:108
+#: actions/apiaccountupdateprofileimage.php:97
+#: actions/apistatusesupdate.php:127 actions/avatarsettings.php:254
+#: actions/designadminpanel.php:122 actions/newnotice.php:94
+#: lib/designsettings.php:283
+#, php-format
+msgid ""
+"The server was unable to handle that much POST data (%s bytes) due to its "
+"current configuration."
+msgstr ""
+
+#: actions/apiaccountupdateprofilebackgroundimage.php:136
+#: actions/apiaccountupdateprofilebackgroundimage.php:146
+#: actions/apiaccountupdateprofilecolors.php:164
+#: actions/apiaccountupdateprofilecolors.php:174
+msgid "Unable to save your design settings."
+msgstr ""
+
#: actions/apiaccountupdateprofilebackgroundimage.php:187
#: actions/apiaccountupdateprofilecolors.php:142
msgid "Could not update your design."
@@ -123,6 +179,19 @@ msgstr "Wužiwar nima profil."
msgid "Could not save profile."
msgstr "Profil njeje so składować dał."
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Njemóžeš wužiwarjow wušmórnyć."
+
+#: actions/apiblockcreate.php:119
+msgid "Block user failed."
+msgstr ""
+
+#: actions/apiblockdestroy.php:107
+msgid "Unblock user failed."
+msgstr ""
+
#: actions/apidirectmessagenew.php:126
msgid "No message text!"
msgstr "Žadyn powěsćowy tekst!"
@@ -136,6 +205,10 @@ msgstr "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješkow."
msgid "Recipient user not found."
msgstr "Přijimowar njenamakany."
+#: actions/apidirectmessagenew.php:150
+msgid "Can't send direct messages to users who aren't your friend."
+msgstr ""
+
#: actions/apidirectmessage.php:89
#, php-format
msgid "Direct messages from %s"
@@ -182,10 +255,53 @@ msgstr "Status z tym ID njenamakany."
msgid "This status is already a favorite!"
msgstr "Tutón status je hižo faworit!"
+#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
+msgid "Could not create favorite."
+msgstr ""
+
#: actions/apifavoritedestroy.php:122
msgid "That status is not a favorite!"
msgstr "Tón status faworit njeje!"
+#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
+msgid "Could not delete favorite."
+msgstr ""
+
+#: actions/apifriendshipscreate.php:109
+msgid "Could not follow user: User not found."
+msgstr ""
+
+#: actions/apifriendshipscreate.php:118
+#, php-format
+msgid "Could not follow user: %s is already on your list."
+msgstr ""
+
+#: actions/apifriendshipsdestroy.php:109
+msgid "Could not unfollow user: User not found."
+msgstr ""
+
+#: actions/apifriendshipsdestroy.php:120
+msgid "You cannot unfollow yourself!"
+msgstr ""
+
+#: actions/apifriendshipsexists.php:94
+msgid "Two user ids or screen_names must be supplied."
+msgstr ""
+
+#: actions/apifriendshipsshow.php:135
+msgid "Could not determine source user."
+msgstr ""
+
+#: actions/apifriendshipsshow.php:143
+msgid "Could not find target user."
+msgstr ""
+
+#: actions/apigroupcreate.php:164 actions/editgroup.php:182
+#: actions/newgroup.php:126 actions/profilesettings.php:208
+#: actions/register.php:205
+msgid "Nickname must have only lowercase letters and numbers and no spaces."
+msgstr ""
+
#: actions/apigroupcreate.php:173 actions/editgroup.php:186
#: actions/newgroup.php:130 actions/profilesettings.php:231
#: actions/register.php:208
@@ -254,15 +370,44 @@ msgstr "Skupina njenamakana!"
msgid "You are already a member of that group."
msgstr "Sy hižo čłon teje skupiny."
+#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
+#: actions/apigroupjoin.php:138
+#, php-format
+msgid "Could not join user %s to group %s."
+msgstr ""
+
#: actions/apigroupleave.php:114
msgid "You are not a member of this group."
msgstr "Njejsy čłon tuteje skupiny."
+#: actions/apigroupleave.php:124
+#, php-format
+msgid "Could not remove user %s to group %s."
+msgstr ""
+
+#: actions/apigrouplistall.php:90 actions/usergroups.php:62
+#, php-format
+msgid "%s groups"
+msgstr ""
+
#: actions/apigrouplistall.php:94
#, php-format
msgid "groups on %s"
msgstr "skupiny na %s"
+#: actions/apigrouplist.php:95
+#, php-format
+msgid "%s's groups"
+msgstr ""
+
+#: actions/apigrouplist.php:103
+#, php-format
+msgid "Groups %s is a member of on %s."
+msgstr ""
+
#: actions/apistatusesdestroy.php:107
msgid "This method requires a POST or DELETE."
msgstr "Tuta metoda wužaduje sej POST abo DELETE."
@@ -289,10 +434,67 @@ msgstr "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow."
msgid "Not found"
msgstr "Njenamakany"
+#: actions/apistatusesupdate.php:227 actions/newnotice.php:183
+#, php-format
+msgid "Max notice size is %d chars, including attachment URL."
+msgstr ""
+
#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261
msgid "Unsupported format."
msgstr "Njepodpěrany format."
+#: actions/apitimelinefavorites.php:107
+#, php-format
+msgid "%s / Favorites from %s"
+msgstr ""
+
+#: actions/apitimelinefavorites.php:119
+#, php-format
+msgid "%s updates favorited by %s / %s."
+msgstr ""
+
+#: actions/apitimelinegroup.php:108 actions/apitimelineuser.php:117
+#: actions/grouprss.php:131 actions/userrss.php:90
+#, php-format
+msgid "%s timeline"
+msgstr ""
+
+#: actions/apitimelinegroup.php:116 actions/apitimelineuser.php:125
+#: actions/userrss.php:92
+#, php-format
+msgid "Updates from %1$s on %2$s!"
+msgstr ""
+
+#: actions/apitimelinementions.php:116
+#, php-format
+msgid "%1$s / Updates mentioning %2$s"
+msgstr ""
+
+#: actions/apitimelinementions.php:126
+#, php-format
+msgid "%1$s updates that reply to updates from %2$s / %3$s."
+msgstr ""
+
+#: actions/apitimelinepublic.php:106 actions/publicrss.php:103
+#, php-format
+msgid "%s public timeline"
+msgstr ""
+
+#: actions/apitimelinepublic.php:110 actions/publicrss.php:105
+#, php-format
+msgid "%s updates from everyone!"
+msgstr ""
+
+#: actions/apitimelinetag.php:101 actions/tag.php:66
+#, php-format
+msgid "Notices tagged with %s"
+msgstr ""
+
+#: actions/apitimelinetag.php:107 actions/tagrss.php:64
+#, php-format
+msgid "Updates tagged with %1$s on %2$s!"
+msgstr ""
+
#: actions/apiusershow.php:96
msgid "Not found."
msgstr "Njenamakany."
@@ -321,7 +523,8 @@ msgstr "Awatar"
#: actions/avatarsettings.php:78
#, php-format
msgid "You can upload your personal avatar. The maximum file size is %s."
-msgstr "Móžeš swój wosobinski awatar nahrać. Maksimalna datajowa wulkosć je %s."
+msgstr ""
+"Móžeš swój wosobinski awatar nahrać. Maksimalna datajowa wulkosć je %s."
#: actions/avatarsettings.php:106 actions/avatarsettings.php:182
#: actions/grouplogo.php:178 actions/remotesubscribe.php:191
@@ -353,10 +556,48 @@ msgstr "Zničić"
msgid "Upload"
msgstr "Nahrać"
+#: actions/avatarsettings.php:228 actions/grouplogo.php:286
+msgid "Crop"
+msgstr ""
+
+#: actions/avatarsettings.php:265 actions/disfavor.php:74
+#: actions/emailsettings.php:238 actions/favor.php:75
+#: actions/groupblock.php:66 actions/grouplogo.php:309
+#: actions/groupunblock.php:66 actions/imsettings.php:206
+#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
+#: actions/othersettings.php:145 actions/passwordsettings.php:138
+#: actions/profilesettings.php:187 actions/recoverpassword.php:337
+#: actions/register.php:165 actions/remotesubscribe.php:77
+#: actions/smssettings.php:228 actions/subedit.php:38 actions/subscribe.php:46
+#: actions/tagother.php:166 actions/unsubscribe.php:69
+#: actions/userauthorization.php:52 lib/designsettings.php:294
+msgid "There was a problem with your session token. Try again, please."
+msgstr ""
+
+#: actions/avatarsettings.php:277 actions/designadminpanel.php:103
+#: actions/emailsettings.php:256 actions/grouplogo.php:319
+#: actions/imsettings.php:220 actions/recoverpassword.php:44
+#: actions/smssettings.php:248 lib/designsettings.php:304
+msgid "Unexpected form submission."
+msgstr ""
+
+#: actions/avatarsettings.php:322
+msgid "Pick a square area of the image to be your avatar"
+msgstr ""
+
+#: actions/avatarsettings.php:337 actions/grouplogo.php:377
+msgid "Lost our file data."
+msgstr ""
+
#: actions/avatarsettings.php:360
msgid "Avatar updated."
msgstr "Awatar zaktualizowany."
+#: actions/avatarsettings.php:363
+msgid "Failed updating avatar."
+msgstr ""
+
#: actions/avatarsettings.php:387
msgid "Avatar deleted."
msgstr "Awatar zničeny."
@@ -375,6 +616,32 @@ msgstr "Žane přimjeno"
msgid "No such group"
msgstr "Skupina njeeksistuje"
+#: actions/blockedfromgroup.php:90
+#, php-format
+msgid "%s blocked profiles"
+msgstr ""
+
+#: actions/blockedfromgroup.php:93
+#, php-format
+msgid "%s blocked profiles, page %d"
+msgstr ""
+
+#: actions/blockedfromgroup.php:108
+msgid "A list of the users blocked from joining this group."
+msgstr ""
+
+#: actions/blockedfromgroup.php:281
+msgid "Unblock user from group"
+msgstr ""
+
+#: actions/blockedfromgroup.php:313 lib/unblockform.php:69
+msgid "Unblock"
+msgstr ""
+
+#: actions/blockedfromgroup.php:313 lib/unblockform.php:80
+msgid "Unblock this user"
+msgstr ""
+
#: actions/block.php:69
msgid "You already blocked that user."
msgstr "Sy tutoho wužiwarja hižo zablokował."
@@ -383,6 +650,13 @@ msgstr "Sy tutoho wužiwarja hižo zablokował."
msgid "Block user"
msgstr "Wužiwarja blokować"
+#: actions/block.php:130
+msgid ""
+"Are you sure you want to block this user? Afterwards, they will be "
+"unsubscribed from you, unable to subscribe to you in the future, and you "
+"will not be notified of any @-replies from them."
+msgstr ""
+
#: actions/block.php:143 actions/deletenotice.php:145
#: actions/deleteuser.php:147 actions/groupblock.php:178
msgid "No"
@@ -401,6 +675,14 @@ msgstr "Haj"
msgid "Block this user"
msgstr "Tutoho wužiwarja blokować"
+#: actions/block.php:162
+msgid "Failed to save block information."
+msgstr ""
+
+#: actions/bookmarklet.php:50
+msgid "Post to "
+msgstr ""
+
#: actions/confirmaddress.php:75
msgid "No confirmation code."
msgstr "Žadyn wobkrućenski kod."
@@ -422,6 +704,19 @@ msgstr "Njespóznany adresowy typ %s"
msgid "That address has already been confirmed."
msgstr "Tuta adresa bu hižo wobkrućena."
+#: actions/confirmaddress.php:114 actions/emailsettings.php:296
+#: actions/emailsettings.php:427 actions/imsettings.php:258
+#: actions/imsettings.php:401 actions/othersettings.php:174
+#: actions/profilesettings.php:276 actions/smssettings.php:278
+#: actions/smssettings.php:420
+msgid "Couldn't update user."
+msgstr ""
+
+#: actions/confirmaddress.php:126 actions/emailsettings.php:391
+#: actions/imsettings.php:363 actions/smssettings.php:382
+msgid "Couldn't delete email confirmation."
+msgstr ""
+
#: actions/confirmaddress.php:144
msgid "Confirm Address"
msgstr "Adresu wobkrućić"
@@ -436,7 +731,7 @@ msgid "Conversation"
msgstr "Konwersacija"
#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
-#: lib/profileaction.php:206 lib/searchgroupnav.php:82
+#: lib/profileaction.php:216 lib/searchgroupnav.php:82
msgid "Notices"
msgstr "Zdźělenki"
@@ -457,6 +752,12 @@ msgstr "Njepřizjewjeny."
msgid "Can't delete this notice."
msgstr "Tuta zdźělenka njeda so zničić."
+#: actions/deletenotice.php:103
+msgid ""
+"You are about to permanently delete a notice. Once this is done, it cannot "
+"be undone."
+msgstr ""
+
#: actions/deletenotice.php:109 actions/deletenotice.php:141
msgid "Delete notice"
msgstr "Zdźělenku wušmórnyć"
@@ -473,6 +774,10 @@ msgstr "Tutu zdźělenku njewušmórnyć"
msgid "Delete this notice"
msgstr "Tutu zdźělenku wušmórnyć"
+#: actions/deletenotice.php:157
+msgid "There was a problem with your session token. Try again, please."
+msgstr ""
+
#: actions/deleteuser.php:67
msgid "You cannot delete users."
msgstr "Njemóžeš wužiwarjow wušmórnyć."
@@ -485,6 +790,12 @@ msgstr "Móžeš jenož lokalnych wužiwarjow wušmórnyć."
msgid "Delete user"
msgstr "Wužiwarja wušmórnyć"
+#: actions/deleteuser.php:135
+msgid ""
+"Are you sure you want to delete this user? This will clear all data about "
+"the user from the database, without a backup."
+msgstr ""
+
#: actions/deleteuser.php:148 lib/deleteuserform.php:77
msgid "Delete this user"
msgstr "Tutoho wužiwarja wušmórnyć"
@@ -498,90 +809,101 @@ msgstr "Design"
msgid "Design settings for this StatusNet site."
msgstr "Designowe nastajenja za tute sydło StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "Njepłaćiwy logowy URL."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Šat njesteji k dispoziciji: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Logo změnić"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Logo sydła"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Šat změnić"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Šat sydła"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Šat za sydło."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Pozadkowy wobraz změnić"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Pozadk"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
-msgid "You can upload a background image for the site. The maximum file size is %1$s."
-msgstr "Móžeš pozadkowy wobraz za sydło nahrać. Maksimalna datajowa wulkosć je %1$s."
+msgid ""
+"You can upload a background image for the site. The maximum file size is %1"
+"$s."
+msgstr ""
+"Móžeš pozadkowy wobraz za sydło nahrać. Maksimalna datajowa wulkosć je %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Zapinjeny"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Wupinjeny"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
+msgid "Turn background image on or off."
+msgstr ""
+
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
+msgid "Tile background image"
+msgstr ""
+
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Barby změnić"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Wobsah"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Bóčnica"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Tekst"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Wotkazy"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Standardne hódnoty wužiwać"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Standardne designy wobnowić"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Na standard wróćo stajić"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -591,7 +913,7 @@ msgstr "Na standard wróćo stajić"
msgid "Save"
msgstr "Składować"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Design składować"
@@ -607,6 +929,11 @@ msgstr "K faworitam přidać"
msgid "No such document."
msgstr "Dokument njeeksistuje."
+#: actions/editgroup.php:56
+#, php-format
+msgid "Edit %s group"
+msgstr ""
+
#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
msgid "You must be logged in to create a group."
msgstr "Dyrbiš přizjewjeny być, zo by skupinu wutworił."
@@ -641,6 +968,11 @@ msgstr "Opcije składowane."
msgid "Email Settings"
msgstr "E-mejlowe nastajenja"
+#: actions/emailsettings.php:71
+#, php-format
+msgid "Manage how you get email from %%site.name%%."
+msgstr ""
+
#: actions/emailsettings.php:100 actions/imsettings.php:100
#: actions/smssettings.php:104
msgid "Address"
@@ -656,6 +988,12 @@ msgstr "Aktualna wobkrućena e-mejlowa adresa."
msgid "Remove"
msgstr "Wotstronić"
+#: actions/emailsettings.php:113
+msgid ""
+"Awaiting confirmation on this address. Check your inbox (and spam box!) for "
+"a message with further instructions."
+msgstr ""
+
#: actions/emailsettings.php:117 actions/imsettings.php:120
#: actions/smssettings.php:126
msgid "Cancel"
@@ -678,6 +1016,14 @@ msgstr "Přidać"
msgid "Incoming email"
msgstr "Dochadźaca e-mejl"
+#: actions/emailsettings.php:138 actions/smssettings.php:157
+msgid "Send email to this address to post new notices."
+msgstr ""
+
+#: actions/emailsettings.php:145 actions/smssettings.php:162
+msgid "Make a new email address for posting to; cancels the old one."
+msgstr ""
+
#: actions/emailsettings.php:148 actions/smssettings.php:164
msgid "New"
msgstr "Nowy"
@@ -687,6 +1033,26 @@ msgstr "Nowy"
msgid "Preferences"
msgstr "Nastajenja"
+#: actions/emailsettings.php:158
+msgid "Send me notices of new subscriptions through email."
+msgstr ""
+
+#: actions/emailsettings.php:163
+msgid "Send me email when someone adds my notice as a favorite."
+msgstr ""
+
+#: actions/emailsettings.php:169
+msgid "Send me email when someone sends me a private message."
+msgstr ""
+
+#: actions/emailsettings.php:174
+msgid "Send me email when someone sends me an \"@-reply\"."
+msgstr ""
+
+#: actions/emailsettings.php:179
+msgid "Allow friends to nudge me and send me an email."
+msgstr ""
+
#: actions/emailsettings.php:185
msgid "I want to post notices by email."
msgstr "Chcu zdźělenki přez e-mejl pósłać."
@@ -704,6 +1070,10 @@ msgstr "Nastajenja składowane."
msgid "No email address."
msgstr "Žana e-mejlowa adresa."
+#: actions/emailsettings.php:327
+msgid "Cannot normalize that email address"
+msgstr ""
+
#: actions/emailsettings.php:331 actions/siteadminpanel.php:158
msgid "Not a valid email address"
msgstr "Njeje płaćiwa e-mejlowa adresa"
@@ -716,6 +1086,22 @@ msgstr "To je hižo twoja e-mejlowa adresa."
msgid "That email address already belongs to another user."
msgstr "Ta e-mejlowa adresa hižo słuša k druhemu wužiwarjej."
+#: actions/emailsettings.php:353 actions/imsettings.php:317
+#: actions/smssettings.php:337
+msgid "Couldn't insert confirmation code."
+msgstr ""
+
+#: actions/emailsettings.php:359
+msgid ""
+"A confirmation code was sent to the email address you added. Check your "
+"inbox (and spam box!) for the code and instructions on how to use it."
+msgstr ""
+
+#: actions/emailsettings.php:379 actions/imsettings.php:351
+#: actions/smssettings.php:370
+msgid "No pending confirmation to cancel."
+msgstr ""
+
#: actions/emailsettings.php:383 actions/imsettings.php:355
msgid "That is the wrong IM address."
msgstr "to je wopačna IM-adresa."
@@ -738,6 +1124,11 @@ msgstr "Adresa bu wotstronjena."
msgid "No incoming email address."
msgstr "Žana adresa za dochadźace e-mejle."
+#: actions/emailsettings.php:456 actions/emailsettings.php:478
+#: actions/smssettings.php:528 actions/smssettings.php:552
+msgid "Couldn't update user record."
+msgstr ""
+
#: actions/emailsettings.php:459 actions/smssettings.php:531
msgid "Incoming email address removed."
msgstr "Adresa za dochadźaće e-mejle wotstronjena."
@@ -756,10 +1147,61 @@ msgstr "Woblubowane zdźělenki"
msgid "Popular notices, page %d"
msgstr "Woblubowane zdźělenki, strona %d"
+#: actions/favorited.php:79
+msgid "The most popular notices on the site right now."
+msgstr ""
+
+#: actions/favorited.php:150
+msgid "Favorite notices appear on this page but no one has favorited one yet."
+msgstr ""
+
+#: actions/favorited.php:153
+msgid ""
+"Be the first to add a notice to your favorites by clicking the fave button "
+"next to any notice you like."
+msgstr ""
+
+#: actions/favorited.php:156
+#, php-format
+msgid ""
+"Why not [register an account](%%action.register%%) and be the first to add a "
+"notice to your favorites!"
+msgstr ""
+
+#: actions/favoritesrss.php:111 actions/showfavorites.php:77
+#: lib/personalgroupnav.php:115
+#, php-format
+msgid "%s's favorite notices"
+msgstr ""
+
+#: actions/favoritesrss.php:115
+#, php-format
+msgid "Updates favored by %1$s on %2$s!"
+msgstr ""
+
#: actions/favor.php:79
msgid "This notice is already a favorite!"
msgstr "Tuta zdźělenka je hižo faworit!"
+#: actions/favor.php:92 lib/disfavorform.php:140
+msgid "Disfavor favorite"
+msgstr ""
+
+#: actions/featured.php:69 lib/featureduserssection.php:87
+#: lib/publicgroupnav.php:89
+msgid "Featured users"
+msgstr ""
+
+#: actions/featured.php:71
+#, php-format
+msgid "Featured users, page %d"
+msgstr ""
+
+#: actions/featured.php:99
+#, php-format
+msgid "A selection of some of the great users on %s"
+msgstr ""
+
#: actions/file.php:34
msgid "No notice id"
msgstr "Žadyn ID zdźělenki"
@@ -780,10 +1222,34 @@ msgstr "Žane nahrate přiwěški"
msgid "Not expecting this response!"
msgstr "Njewočakowana wotmołwa!"
-#: actions/finishremotesubscribe.php:106
+#: actions/finishremotesubscribe.php:80
+msgid "User being listened to does not exist."
+msgstr ""
+
+#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
+msgid "You can use the local subscription!"
+msgstr ""
+
+#: actions/finishremotesubscribe.php:99
+msgid "That user has blocked you from subscribing."
+msgstr ""
+
+#: actions/finishremotesubscribe.php:110
msgid "You are not authorized."
msgstr "Njejsy awtorizowany."
+#: actions/finishremotesubscribe.php:113
+msgid "Could not convert request token to access token."
+msgstr ""
+
+#: actions/finishremotesubscribe.php:118
+msgid "Remote service uses unknown version of OMB protocol."
+msgstr ""
+
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
+msgid "Error updating remote profile"
+msgstr ""
+
#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86
#: actions/groupunblock.php:86 actions/leavegroup.php:83
#: actions/makeadmin.php:86 lib/command.php:212 lib/command.php:263
@@ -831,6 +1297,14 @@ msgstr "Wužiwar njeje čłon skupiny."
msgid "Block user from group"
msgstr "Wužiwarja za skupinu blokować"
+#: actions/groupblock.php:162
+#, php-format
+msgid ""
+"Are you sure you want to block user \"%s\" from the group \"%s\"? They will "
+"be removed from the group, unable to post, and unable to subscribe to the "
+"group in the future."
+msgstr ""
+
#: actions/groupblock.php:178
msgid "Do not block this user from this group"
msgstr "Tutoho wužiwarja za tutu skupinu blokować"
@@ -839,6 +1313,10 @@ msgstr "Tutoho wužiwarja za tutu skupinu blokować"
msgid "Block this user from this group"
msgstr "Tutoho wužiwarja za tutu skupinu blokować"
+#: actions/groupblock.php:196
+msgid "Database error blocking user from group."
+msgstr ""
+
#: actions/groupbyid.php:74
msgid "No ID"
msgstr "Žadyn ID"
@@ -851,7 +1329,24 @@ msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał."
msgid "Group design"
msgstr "Skupinski design"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:152
+msgid ""
+"Customize the way your group looks with a background image and a colour "
+"palette of your choice."
+msgstr ""
+
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
+msgid "Couldn't update your design."
+msgstr ""
+
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
+#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
+#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
+msgid "Unable to save your design settings!"
+msgstr ""
+
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Designowe nastajenja składowane."
@@ -861,13 +1356,34 @@ msgstr "Skupinske logo"
#: actions/grouplogo.php:150
#, php-format
-msgid "You can upload a logo image for your group. The maximum file size is %s."
-msgstr "Móžeš logowy wobraz za swoju skupinu nahrać. Maksimalna datajowa wulkosć je %s."
+msgid ""
+"You can upload a logo image for your group. The maximum file size is %s."
+msgstr ""
+"Móžeš logowy wobraz za swoju skupinu nahrać. Maksimalna datajowa wulkosć je %"
+"s."
+
+#: actions/grouplogo.php:362
+msgid "Pick a square area of the image to be the logo."
+msgstr ""
#: actions/grouplogo.php:396
msgid "Logo updated."
msgstr "Logo zaktualizowane."
+#: actions/grouplogo.php:398
+msgid "Failed updating logo."
+msgstr ""
+
+#: actions/groupmembers.php:93 lib/groupnav.php:92
+#, php-format
+msgid "%s group members"
+msgstr ""
+
+#: actions/groupmembers.php:96
+#, php-format
+msgid "%s group members, page %d"
+msgstr ""
+
#: actions/groupmembers.php:111
msgid "A list of the users in this group."
msgstr "Lisćina wužiwarjow w tutej skupinje."
@@ -880,10 +1396,30 @@ msgstr "Administrator"
msgid "Block"
msgstr "Blokować"
+#: actions/groupmembers.php:441
+msgid "Make user an admin of the group"
+msgstr ""
+
+#: actions/groupmembers.php:473
+msgid "Make Admin"
+msgstr ""
+
#: actions/groupmembers.php:473
msgid "Make this user an admin"
msgstr "Tutoho wužiwarja k administratorej činić"
+#: actions/grouprss.php:133
+#, php-format
+msgid "Updates from members of %1$s on %2$s!"
+msgstr ""
+
+#: actions/groupsearch.php:52
+#, php-format
+msgid ""
+"Search for groups on %%site.name%% by their name, location, or description. "
+"Separate the terms by spaces; they must be 3 characters or more."
+msgstr ""
+
#: actions/groupsearch.php:58
msgid "Group search"
msgstr "Skupinske pytanje"
@@ -893,8 +1429,22 @@ msgstr "Skupinske pytanje"
msgid "No results."
msgstr "Žane wuslědki."
-#: actions/groups.php:62 lib/profileaction.php:220 lib/publicgroupnav.php:81
-#: lib/searchgroupnav.php:84 lib/subgroupnav.php:98
+#: actions/groupsearch.php:82
+#, php-format
+msgid ""
+"If you can't find the group you're looking for, you can [create it](%%action."
+"newgroup%%) yourself."
+msgstr ""
+
+#: actions/groupsearch.php:85
+#, php-format
+msgid ""
+"Why not [register an account](%%action.register%%) and [create the group](%%"
+"action.newgroup%%) yourself!"
+msgstr ""
+
+#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230
+#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
msgid "Groups"
msgstr "Skupiny"
@@ -903,26 +1453,93 @@ msgstr "Skupiny"
msgid "Groups, page %d"
msgstr "Skupiny, strona %d"
+#: actions/groups.php:90
+#, php-format
+msgid ""
+"%%%%site.name%%%% groups let you find and talk with people of similar "
+"interests. After you join a group you can send messages to all other members "
+"using the syntax \"!groupname\". Don't see a group you like? Try [searching "
+"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup"
+"%%%%)"
+msgstr ""
+
#: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122
msgid "Create a new group"
msgstr "Nowu skupinu wutworić"
+#: actions/groupunblock.php:91
+msgid "Only an admin can unblock group members."
+msgstr ""
+
+#: actions/groupunblock.php:95
+msgid "User is not blocked from group."
+msgstr ""
+
+#: actions/groupunblock.php:128 actions/unblock.php:77
+msgid "Error removing the block."
+msgstr ""
+
#: actions/imsettings.php:59
msgid "IM Settings"
msgstr "IM-nastajenja"
+#: actions/imsettings.php:70
+#, php-format
+msgid ""
+"You can send and receive notices through Jabber/GTalk [instant messages](%%"
+"doc.im%%). Configure your address and settings below."
+msgstr ""
+
#: actions/imsettings.php:89
msgid "IM is not available."
msgstr "IM k dispoziciji njesteji."
+#: actions/imsettings.php:106
+msgid "Current confirmed Jabber/GTalk address."
+msgstr ""
+
+#: actions/imsettings.php:114
+#, php-format
+msgid ""
+"Awaiting confirmation on this address. Check your Jabber/GTalk account for a "
+"message with further instructions. (Did you add %s to your buddy list?)"
+msgstr ""
+
#: actions/imsettings.php:124
msgid "IM Address"
msgstr "IM-adresa"
+#: actions/imsettings.php:126
+#, php-format
+msgid ""
+"Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
+"add %s to your buddy list in your IM client or on GTalk."
+msgstr ""
+
+#: actions/imsettings.php:143
+msgid "Send me notices through Jabber/GTalk."
+msgstr ""
+
+#: actions/imsettings.php:148
+msgid "Post a notice when my Jabber/GTalk status changes."
+msgstr ""
+
+#: actions/imsettings.php:153
+msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
+msgstr ""
+
+#: actions/imsettings.php:159
+msgid "Publish a MicroID for my Jabber/GTalk address."
+msgstr ""
+
#: actions/imsettings.php:285
msgid "No Jabber ID."
msgstr "Žadyn ID Jabber."
+#: actions/imsettings.php:292
+msgid "Cannot normalize that Jabber ID"
+msgstr ""
+
#: actions/imsettings.php:296
msgid "Not a valid Jabber ID"
msgstr "Njepłaćiwy ID Jabber"
@@ -931,14 +1548,44 @@ msgstr "Njepłaćiwy ID Jabber"
msgid "That is already your Jabber ID."
msgstr "To je hižo twój ID Jabber."
+#: actions/imsettings.php:302
+msgid "Jabber ID already belongs to another user."
+msgstr ""
+
+#: actions/imsettings.php:327
+#, php-format
+msgid ""
+"A confirmation code was sent to the IM address you added. You must approve %"
+"s for sending messages to you."
+msgstr ""
+
#: actions/imsettings.php:387
msgid "That is not your Jabber ID."
msgstr "To njeje twój ID Jabber."
+#: actions/inbox.php:59
+#, php-format
+msgid "Inbox for %s - page %d"
+msgstr ""
+
+#: actions/inbox.php:62
+#, php-format
+msgid "Inbox for %s"
+msgstr ""
+
+#: actions/inbox.php:115
+msgid "This is your inbox, which lists your incoming private messages."
+msgstr ""
+
#: actions/invite.php:39
msgid "Invites have been disabled."
msgstr "Přeprošenja buchu znjemóžnjene."
+#: actions/invite.php:41
+#, php-format
+msgid "You must be logged in to invite other users to use %s"
+msgstr ""
+
#: actions/invite.php:72
#, php-format
msgid "Invalid email address: %s"
@@ -961,9 +1608,27 @@ msgstr "Sy tutych wužiwarjow hižo abonował:"
msgid "%s (%s)"
msgstr "%s (%s)"
+#: actions/invite.php:136
+msgid ""
+"These people are already users and you were automatically subscribed to them:"
+msgstr ""
+
+#: actions/invite.php:144
+msgid "Invitation(s) sent to the following people:"
+msgstr ""
+
+#: actions/invite.php:150
+msgid ""
+"You will be notified when your invitees accept the invitation and register "
+"on the site. Thanks for growing the community!"
+msgstr ""
+
#: actions/invite.php:162
-msgid "Use this form to invite your friends and colleagues to use this service."
-msgstr "Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu tutu słužbu wužiwali."
+msgid ""
+"Use this form to invite your friends and colleagues to use this service."
+msgstr ""
+"Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu "
+"tutu słužbu wužiwali."
#: actions/invite.php:187
msgid "Email addresses"
@@ -981,10 +1646,64 @@ msgstr "Wosobinska powěsć"
msgid "Optionally add a personal message to the invitation."
msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Pósłać"
+#: actions/invite.php:226
+#, php-format
+msgid "%1$s has invited you to join them on %2$s"
+msgstr ""
+
+#: actions/invite.php:228
+#, php-format
+msgid ""
+"%1$s has invited you to join them on %2$s (%3$s).\n"
+"\n"
+"%2$s is a micro-blogging service that lets you keep up-to-date with people "
+"you know and people who interest you.\n"
+"\n"
+"You can also share news about yourself, your thoughts, or your life online "
+"with people who know about you. It's also great for meeting new people who "
+"share your interests.\n"
+"\n"
+"%1$s said:\n"
+"\n"
+"%4$s\n"
+"\n"
+"You can see %1$s's profile page on %2$s here:\n"
+"\n"
+"%5$s\n"
+"\n"
+"If you'd like to try the service, click on the link below to accept the "
+"invitation.\n"
+"\n"
+"%6$s\n"
+"\n"
+"If not, you can ignore this message. Thanks for your patience and your "
+"time.\n"
+"\n"
+"Sincerely, %2$s\n"
+msgstr ""
+
+#: actions/joingroup.php:60
+msgid "You must be logged in to join a group."
+msgstr ""
+
+#: actions/joingroup.php:90 lib/command.php:217
+msgid "You are already a member of that group"
+msgstr ""
+
+#: actions/joingroup.php:128 lib/command.php:234
+#, php-format
+msgid "Could not join user %s to group %s"
+msgstr ""
+
+#: actions/joingroup.php:135 lib/command.php:239
+#, php-format
+msgid "%s joined group %s"
+msgstr ""
+
#: actions/leavegroup.php:60
msgid "You must be logged in to leave a group."
msgstr "Dyrbiš přizjewjeny być, zo by skupinu wopušćił."
@@ -993,46 +1712,81 @@ msgstr "Dyrbiš přizjewjeny być, zo by skupinu wopušćił."
msgid "You are not a member of that group."
msgstr "Njejsy čłon teje skupiny."
+#: actions/leavegroup.php:119 lib/command.php:278
+msgid "Could not find membership record."
+msgstr ""
+
+#: actions/leavegroup.php:127 lib/command.php:284
+#, php-format
+msgid "Could not remove user %s to group %s"
+msgstr ""
+
+#: actions/leavegroup.php:134 lib/command.php:289
+#, php-format
+msgid "%s left group %s"
+msgstr ""
+
#: actions/login.php:79 actions/register.php:137
msgid "Already logged in."
msgstr "Hižo přizjewjeny."
-#: actions/login.php:143
+#: actions/login.php:108 actions/login.php:118
+msgid "Invalid or expired token."
+msgstr ""
+
+#: actions/login.php:146
msgid "Incorrect username or password."
msgstr "Wopačne wužiwarske mjeno abo hesło."
-#: actions/login.php:149
+#: actions/login.php:152
msgid "Error setting user. You are probably not authorized."
msgstr "Zmylk při nastajenju wužiwarja. Snano njejsy awtorizowany."
-#: actions/login.php:204 actions/login.php:257 lib/action.php:458
+#: actions/login.php:207 actions/login.php:260 lib/action.php:458
#: lib/logingroupnav.php:79
msgid "Login"
msgstr "Přizjewić"
-#: actions/login.php:243
+#: actions/login.php:246
msgid "Login to site"
msgstr "Při sydle přizjewić"
-#: actions/login.php:246 actions/profilesettings.php:106
+#: actions/login.php:249 actions/profilesettings.php:106
#: actions/register.php:423 actions/showgroup.php:236 actions/tagother.php:94
#: lib/groupeditform.php:152 lib/userprofile.php:131
msgid "Nickname"
msgstr "Přimjeno"
-#: actions/login.php:249 actions/register.php:428
+#: actions/login.php:252 actions/register.php:428
#: lib/accountsettingsaction.php:116
msgid "Password"
msgstr "Hesło"
-#: actions/login.php:252 actions/register.php:477
+#: actions/login.php:255 actions/register.php:477
msgid "Remember me"
msgstr "Składować"
-#: actions/login.php:263
+#: actions/login.php:256 actions/register.php:479
+msgid "Automatically login in the future; not for shared computers!"
+msgstr ""
+
+#: actions/login.php:266
msgid "Lost or forgotten password?"
msgstr "Hesło zhubjene abo zabyte?"
+#: actions/login.php:285
+msgid ""
+"For security reasons, please re-enter your user name and password before "
+"changing your settings."
+msgstr ""
+
+#: actions/login.php:289
+#, php-format
+msgid ""
+"Login with your username and password. Don't have a username yet? [Register]"
+"(%%action.register%%) a new account."
+msgstr ""
+
#: actions/makeadmin.php:91
msgid "Only an admin can make another user an admin."
msgstr "Jenož administrator móže druheho wužiwarja k administratorej činić."
@@ -1042,6 +1796,16 @@ msgstr "Jenož administrator móže druheho wužiwarja k administratorej činić
msgid "%s is already an admin for group \"%s\"."
msgstr "%s je hižo administrator za skupinu \"%s\"."
+#: actions/makeadmin.php:132
+#, php-format
+msgid "Can't get membership record for %s in group %s"
+msgstr ""
+
+#: actions/makeadmin.php:145
+#, php-format
+msgid "Can't make %s an admin for group %s"
+msgstr ""
+
#: actions/microsummary.php:69
msgid "No current status"
msgstr "Žadyn aktualny status"
@@ -1071,10 +1835,20 @@ msgstr "Žadyn wobsah!"
msgid "No recipient specified."
msgstr "Žadyn přijimowar podaty."
+#: actions/newmessage.php:164 lib/command.php:370
+msgid ""
+"Don't send a message to yourself; just say it to yourself quietly instead."
+msgstr ""
+
#: actions/newmessage.php:181
msgid "Message sent"
msgstr "Powěsć pósłana"
+#: actions/newmessage.php:185 lib/command.php:375
+#, php-format
+msgid "Direct message to %s sent"
+msgstr ""
+
#: actions/newmessage.php:210 actions/newnotice.php:240 lib/channel.php:170
msgid "Ajax Error"
msgstr "Zmylk Ajax"
@@ -1087,20 +1861,78 @@ msgstr "Nowa zdźělenka"
msgid "Notice posted"
msgstr "Zdźělenka wotpósłana"
+#: actions/noticesearch.php:68
+#, php-format
+msgid ""
+"Search for notices on %%site.name%% by their contents. Separate search terms "
+"by spaces; they must be 3 characters or more."
+msgstr ""
+
#: actions/noticesearch.php:78
msgid "Text search"
msgstr "Tekstowe pytanje"
+#: actions/noticesearch.php:91
+#, php-format
+msgid "Search results for \"%s\" on %s"
+msgstr ""
+
+#: actions/noticesearch.php:121
+#, php-format
+msgid ""
+"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
+"status_textarea=%s)!"
+msgstr ""
+
+#: actions/noticesearch.php:124
+#, php-format
+msgid ""
+"Why not [register an account](%%%%action.register%%%%) and be the first to "
+"[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
+msgstr ""
+
+#: actions/noticesearchrss.php:96
+#, php-format
+msgid "Updates with \"%s\""
+msgstr ""
+
+#: actions/noticesearchrss.php:98
+#, php-format
+msgid "Updates matching search term \"%1$s\" on %2$s!"
+msgstr ""
+
+#: actions/nudge.php:85
+msgid ""
+"This user doesn't allow nudges or hasn't confirmed or set his email yet."
+msgstr ""
+
+#: actions/nudge.php:94
+msgid "Nudge sent"
+msgstr ""
+
+#: actions/nudge.php:97
+msgid "Nudge sent!"
+msgstr ""
+
#: actions/oembed.php:79 actions/shownotice.php:100
msgid "Notice has no profile"
msgstr "Zdźělenka nima profil"
+#: actions/oembed.php:86 actions/shownotice.php:180
+#, php-format
+msgid "%1$s's status on %2$s"
+msgstr ""
+
+#: actions/oembed.php:157
+msgid "content type "
+msgstr ""
+
#: actions/oembed.php:160
msgid "Only "
msgstr "Jenož "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Njeje podpěrany datowy format."
@@ -1124,6 +1956,40 @@ msgstr "Wšelake druhe opcije zrjadować."
msgid " (free service)"
msgstr " (swobodna słužba)"
+#: actions/othersettings.php:116
+msgid "Shorten URLs with"
+msgstr ""
+
+#: actions/othersettings.php:117
+msgid "Automatic shortening service to use."
+msgstr ""
+
+#: actions/othersettings.php:122
+msgid "View profile designs"
+msgstr ""
+
+#: actions/othersettings.php:123
+msgid "Show or hide profile designs."
+msgstr ""
+
+#: actions/othersettings.php:153
+msgid "URL shortening service is too long (max 50 chars)."
+msgstr ""
+
+#: actions/outbox.php:58
+#, php-format
+msgid "Outbox for %s - page %d"
+msgstr ""
+
+#: actions/outbox.php:61
+#, php-format
+msgid "Outbox for %s"
+msgstr ""
+
+#: actions/outbox.php:116
+msgid "This is your outbox, which lists private messages you have sent."
+msgstr ""
+
#: actions/passwordsettings.php:58
msgid "Change password"
msgstr "Hesło změnić"
@@ -1153,6 +2019,10 @@ msgstr "6 abo wjace znamješkow"
msgid "Confirm"
msgstr "Wobkrućić"
+#: actions/passwordsettings.php:113 actions/recoverpassword.php:240
+msgid "Same as password above"
+msgstr ""
+
#: actions/passwordsettings.php:117
msgid "Change"
msgstr "Změnić"
@@ -1169,6 +2039,14 @@ msgstr "Hesle so njekryjetej."
msgid "Incorrect old password"
msgstr "Wopačne stare hesło"
+#: actions/passwordsettings.php:181
+msgid "Error saving user; invalid."
+msgstr ""
+
+#: actions/passwordsettings.php:186 actions/recoverpassword.php:368
+msgid "Can't save new password."
+msgstr ""
+
#: actions/passwordsettings.php:192 actions/recoverpassword.php:211
msgid "Password saved."
msgstr "Hesło składowane."
@@ -1181,6 +2059,26 @@ msgstr "Šćežki"
msgid "Path and server settings for this StatusNet site."
msgstr "Šćežka a serwerowe nastajenja za tute sydło StatusNet."
+#: actions/pathsadminpanel.php:140
+#, php-format
+msgid "Theme directory not readable: %s"
+msgstr ""
+
+#: actions/pathsadminpanel.php:146
+#, php-format
+msgid "Avatar directory not writable: %s"
+msgstr ""
+
+#: actions/pathsadminpanel.php:152
+#, php-format
+msgid "Background directory not writable: %s"
+msgstr ""
+
+#: actions/pathsadminpanel.php:160
+#, php-format
+msgid "Locales directory not readable: %s"
+msgstr ""
+
#: actions/pathsadminpanel.php:212 actions/siteadminpanel.php:58
#: lib/adminpanelaction.php:299
msgid "Site"
@@ -1254,22 +2152,53 @@ msgstr "Pozadkowy zapis"
msgid "Save paths"
msgstr "Šćežki składować"
+#: actions/peoplesearch.php:52
+#, php-format
+msgid ""
+"Search for people on %%site.name%% by their name, location, or interests. "
+"Separate the terms by spaces; they must be 3 characters or more."
+msgstr ""
+
#: actions/peoplesearch.php:58
msgid "People search"
msgstr "Za ludźimi pytać"
+#: actions/peopletag.php:70
+#, php-format
+msgid "Not a valid people tag: %s"
+msgstr ""
+
+#: actions/peopletag.php:144
+#, php-format
+msgid "Users self-tagged with %s - page %d"
+msgstr ""
+
#: actions/postnotice.php:84
msgid "Invalid notice content"
msgstr "Njepłaćiwy wobsah zdźělenki"
+#: actions/postnotice.php:90
+#, php-format
+msgid "Notice license ‘%s’ is not compatible with site license ‘%s’."
+msgstr ""
+
#: actions/profilesettings.php:60
msgid "Profile settings"
msgstr "Profilowe nastajenja"
+#: actions/profilesettings.php:71
+msgid ""
+"You can update your personal profile info here so people know more about you."
+msgstr ""
+
#: actions/profilesettings.php:99
msgid "Profile information"
msgstr "Profilowe informacije"
+#: actions/profilesettings.php:108 lib/groupeditform.php:154
+msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
+msgstr ""
+
#: actions/profilesettings.php:111 actions/register.php:447
#: actions/showgroup.php:247 actions/tagother.php:104
#: lib/groupeditform.php:157 lib/userprofile.php:149
@@ -1281,6 +2210,19 @@ msgstr "Dospołne mjeno"
msgid "Homepage"
msgstr "Startowa strona"
+#: actions/profilesettings.php:117 actions/register.php:454
+msgid "URL of your homepage, blog, or profile on another site"
+msgstr ""
+
+#: actions/profilesettings.php:122 actions/register.php:460
+#, php-format
+msgid "Describe yourself and your interests in %d chars"
+msgstr ""
+
+#: actions/profilesettings.php:125 actions/register.php:463
+msgid "Describe yourself and your interests"
+msgstr ""
+
#: actions/profilesettings.php:127 actions/register.php:465
msgid "Bio"
msgstr "Biografija"
@@ -1292,6 +2234,21 @@ msgstr "Biografija"
msgid "Location"
msgstr "Městno"
+#: actions/profilesettings.php:134 actions/register.php:472
+msgid "Where you are, like \"City, State (or Region), Country\""
+msgstr ""
+
+#: actions/profilesettings.php:138 actions/tagother.php:149
+#: actions/tagother.php:209 lib/subscriptionlist.php:106
+#: lib/subscriptionlist.php:108 lib/userprofile.php:209
+msgid "Tags"
+msgstr ""
+
+#: actions/profilesettings.php:140
+msgid ""
+"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated"
+msgstr ""
+
#: actions/profilesettings.php:144 actions/siteadminpanel.php:307
msgid "Language"
msgstr "Rěč"
@@ -1304,6 +2261,15 @@ msgstr "Preferowana rěč"
msgid "Timezone"
msgstr "Časowe pasmo"
+#: actions/profilesettings.php:155
+msgid "What timezone are you normally in?"
+msgstr ""
+
+#: actions/profilesettings.php:160
+msgid ""
+"Automatically subscribe to whoever subscribes to me (best for non-humans)"
+msgstr ""
+
#: actions/profilesettings.php:221 actions/register.php:223
#, php-format
msgid "Bio is too long (max %d chars)."
@@ -1317,22 +2283,186 @@ msgstr "Časowe pasmo njeje wubrane."
msgid "Language is too long (max 50 chars)."
msgstr "Mjeno rěče je předołhe (maks. 50 znamješkow)."
+#: actions/profilesettings.php:246 actions/tagother.php:178
+#, php-format
+msgid "Invalid tag: \"%s\""
+msgstr ""
+
+#: actions/profilesettings.php:295
+msgid "Couldn't update user for autosubscribe."
+msgstr ""
+
+#: actions/profilesettings.php:328
+msgid "Couldn't save profile."
+msgstr ""
+
+#: actions/profilesettings.php:336
+msgid "Couldn't save tags."
+msgstr ""
+
#: actions/profilesettings.php:344 lib/adminpanelaction.php:126
msgid "Settings saved."
msgstr "Nastajenja składowane."
+#: actions/public.php:83
+#, php-format
+msgid "Beyond the page limit (%s)"
+msgstr ""
+
+#: actions/public.php:92
+msgid "Could not retrieve public stream."
+msgstr ""
+
+#: actions/public.php:129
+#, php-format
+msgid "Public timeline, page %d"
+msgstr ""
+
+#: actions/public.php:131 lib/publicgroupnav.php:79
+msgid "Public timeline"
+msgstr ""
+
+#: actions/public.php:151
+msgid "Public Stream Feed (RSS 1.0)"
+msgstr ""
+
+#: actions/public.php:155
+msgid "Public Stream Feed (RSS 2.0)"
+msgstr ""
+
+#: actions/public.php:159
+msgid "Public Stream Feed (Atom)"
+msgstr ""
+
+#: actions/public.php:179
+#, php-format
+msgid ""
+"This is the public timeline for %%site.name%% but no one has posted anything "
+"yet."
+msgstr ""
+
+#: actions/public.php:182
+msgid "Be the first to post!"
+msgstr ""
+
+#: actions/public.php:186
+#, php-format
+msgid ""
+"Why not [register an account](%%action.register%%) and be the first to post!"
+msgstr ""
+
+#: actions/public.php:233
+#, php-format
+msgid ""
+"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%%))"
+msgstr ""
+
+#: actions/public.php:238
+#, php-format
+msgid ""
+"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."
+msgstr ""
+
+#: actions/publictagcloud.php:57
+msgid "Public tag cloud"
+msgstr ""
+
+#: actions/publictagcloud.php:63
+#, php-format
+msgid "These are most popular recent tags on %s "
+msgstr ""
+
+#: actions/publictagcloud.php:69
+#, php-format
+msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet."
+msgstr ""
+
+#: actions/publictagcloud.php:72
+msgid "Be the first to post one!"
+msgstr ""
+
+#: actions/publictagcloud.php:75
+#, php-format
+msgid ""
+"Why not [register an account](%%action.register%%) and be the first to post "
+"one!"
+msgstr ""
+
+#: actions/publictagcloud.php:135
+msgid "Tag cloud"
+msgstr ""
+
#: actions/recoverpassword.php:36
msgid "You are already logged in!"
msgstr "Sy hižo přizjewjeny!"
+#: actions/recoverpassword.php:62
+msgid "No such recovery code."
+msgstr ""
+
+#: actions/recoverpassword.php:66
+msgid "Not a recovery code."
+msgstr ""
+
+#: actions/recoverpassword.php:73
+msgid "Recovery code for unknown user."
+msgstr ""
+
+#: actions/recoverpassword.php:86
+msgid "Error with confirmation code."
+msgstr ""
+
+#: actions/recoverpassword.php:97
+msgid "This confirmation code is too old. Please start again."
+msgstr ""
+
+#: actions/recoverpassword.php:111
+msgid "Could not update user with confirmed email address."
+msgstr ""
+
+#: actions/recoverpassword.php:152
+msgid ""
+"If you have forgotten or lost your password, you can get a new one sent to "
+"the email address you have stored in your account."
+msgstr ""
+
#: actions/recoverpassword.php:158
msgid "You have been identified. Enter a new password below. "
msgstr "Sy so identifikował. Zapodaj deleka nowe hesło. "
+#: actions/recoverpassword.php:188
+msgid "Password recovery"
+msgstr ""
+
+#: actions/recoverpassword.php:191
+msgid "Nickname or email address"
+msgstr ""
+
+#: actions/recoverpassword.php:193
+msgid "Your nickname on this server, or your registered email address."
+msgstr ""
+
+#: actions/recoverpassword.php:199 actions/recoverpassword.php:200
+msgid "Recover"
+msgstr ""
+
#: actions/recoverpassword.php:208
msgid "Reset password"
msgstr "Hesło wróćo stajić"
+#: actions/recoverpassword.php:209
+msgid "Recover password"
+msgstr ""
+
+#: actions/recoverpassword.php:210 actions/recoverpassword.php:322
+msgid "Password recovery requested"
+msgstr ""
+
#: actions/recoverpassword.php:213
msgid "Unknown action"
msgstr "Njeznata akcija"
@@ -1351,16 +2481,43 @@ msgstr "Zapodaj přimjeno abo e-mejlowu adresu."
#: actions/recoverpassword.php:272
msgid "No user with that email address or username."
-msgstr "Wužiwar z tej e-mejlowej adresu abo tym wužiwarskim mjenom njeeksistuje."
+msgstr ""
+"Wužiwar z tej e-mejlowej adresu abo tym wužiwarskim mjenom njeeksistuje."
#: actions/recoverpassword.php:287
msgid "No registered email address for that user."
msgstr "Wužiwar nima žanu zregistrowanu e-mejlowu adresu."
+#: actions/recoverpassword.php:301
+msgid "Error saving address confirmation."
+msgstr ""
+
+#: actions/recoverpassword.php:325
+msgid ""
+"Instructions for recovering your password have been sent to the email "
+"address registered to your account."
+msgstr ""
+
+#: actions/recoverpassword.php:344
+msgid "Unexpected password reset."
+msgstr ""
+
#: actions/recoverpassword.php:352
msgid "Password must be 6 chars or more."
msgstr "Hesło dyrbi 6 znamješkow abo wjace měć."
+#: actions/recoverpassword.php:356
+msgid "Password and confirmation do not match."
+msgstr ""
+
+#: actions/recoverpassword.php:375 actions/register.php:248
+msgid "Error setting user."
+msgstr ""
+
+#: actions/recoverpassword.php:382
+msgid "New password successfully saved. You are now logged in."
+msgstr ""
+
#: actions/register.php:85 actions/register.php:189 actions/register.php:404
msgid "Sorry, only invited people can register."
msgstr "Wodaj, jenož přeprošeni ludźo móžeja so registrować."
@@ -1382,6 +2539,10 @@ msgstr "Registrować"
msgid "Registration not allowed."
msgstr "Registracija njedowolena."
+#: actions/register.php:198
+msgid "You can't register if you don't agree to the license."
+msgstr ""
+
#: actions/register.php:201
msgid "Not a valid email address."
msgstr "Njepłaćiwa e-mejlowa adresa."
@@ -1394,6 +2555,16 @@ msgstr "E-mejlowa adresa hižo eksistuje."
msgid "Invalid username or password."
msgstr "Njepłaćiwe wužiwarske mjeno abo hesło."
+#: actions/register.php:342
+msgid ""
+"With this form you can create a new account. You can then post notices and "
+"link up to friends and colleagues. "
+msgstr ""
+
+#: actions/register.php:424
+msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
+msgstr ""
+
#: actions/register.php:429
msgid "6 or more characters. Required."
msgstr "6 abo wjace znamješkow. Trěbne."
@@ -1407,6 +2578,10 @@ msgstr "Jenake kaž hesło horjeka. Trěbne."
msgid "Email"
msgstr "E-mejl"
+#: actions/register.php:438 actions/register.php:442
+msgid "Used only for updates, announcements, and password recovery"
+msgstr ""
+
#: actions/register.php:449
msgid "Longer name, preferably your \"real\" name"
msgstr "Dlěše mjeno, wosebje twoje \"woprawdźite\" mjeno"
@@ -1419,14 +2594,69 @@ msgstr "Mój tekst a moje dataje steja k dispoziciji pod "
msgid "Creative Commons Attribution 3.0"
msgstr "Creative Commons Attribution 3.0"
+#: actions/register.php:496
+msgid ""
+" except this private data: password, email address, IM address, and phone "
+"number."
+msgstr ""
+
+#: actions/register.php:537
+#, php-format
+msgid ""
+"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may "
+"want to...\n"
+"\n"
+"* Go to [your profile](%s) and post your first message.\n"
+"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
+"notices through instant messages.\n"
+"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
+"share your interests. \n"
+"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
+"others more about you. \n"
+"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
+"missed. \n"
+"\n"
+"Thanks for signing up and we hope you enjoy using this service."
+msgstr ""
+
+#: actions/register.php:561
+msgid ""
+"(You should receive a message by email momentarily, with instructions on how "
+"to confirm your email address.)"
+msgstr ""
+
+#: actions/remotesubscribe.php:98
+#, php-format
+msgid ""
+"To subscribe, you can [login](%%action.login%%), or [register](%%action."
+"register%%) a new account. If you already have an account on a [compatible "
+"microblogging site](%%doc.openmublog%%), enter your profile URL below."
+msgstr ""
+
+#: actions/remotesubscribe.php:112
+msgid "Remote subscribe"
+msgstr ""
+
+#: actions/remotesubscribe.php:124
+msgid "Subscribe to a remote user"
+msgstr ""
+
#: actions/remotesubscribe.php:129
msgid "User nickname"
msgstr "Wužiwarske přimjeno"
+#: actions/remotesubscribe.php:130
+msgid "Nickname of the user you want to follow"
+msgstr ""
+
#: actions/remotesubscribe.php:133
msgid "Profile URL"
msgstr "URL profila"
+#: actions/remotesubscribe.php:134
+msgid "URL of your profile on another compatible microblogging service"
+msgstr ""
+
#: actions/remotesubscribe.php:137 lib/subscribeform.php:139
#: lib/userprofile.php:365
msgid "Subscribe"
@@ -1436,6 +2666,137 @@ msgstr "Abonować"
msgid "Invalid profile URL (bad format)"
msgstr "Njepłaćiwy profilowy URL (wopačny format)"
+#: actions/remotesubscribe.php:168
+msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
+msgstr ""
+
+#: actions/remotesubscribe.php:176
+msgid "That’s a local profile! Login to subscribe."
+msgstr ""
+
+#: actions/remotesubscribe.php:183
+msgid "Couldn’t get a request token."
+msgstr ""
+
+#: actions/replies.php:125 actions/repliesrss.php:68
+#: lib/personalgroupnav.php:105
+#, php-format
+msgid "Replies to %s"
+msgstr ""
+
+#: actions/replies.php:127
+#, php-format
+msgid "Replies to %s, page %d"
+msgstr ""
+
+#: actions/replies.php:144
+#, php-format
+msgid "Replies feed for %s (RSS 1.0)"
+msgstr ""
+
+#: actions/replies.php:151
+#, php-format
+msgid "Replies feed for %s (RSS 2.0)"
+msgstr ""
+
+#: actions/replies.php:158
+#, php-format
+msgid "Replies feed for %s (Atom)"
+msgstr ""
+
+#: actions/replies.php:198
+#, php-format
+msgid ""
+"This is the timeline showing replies to %s but %s hasn't received a notice "
+"to his attention yet."
+msgstr ""
+
+#: actions/replies.php:203
+#, php-format
+msgid ""
+"You can engage other users in a conversation, subscribe to more people or "
+"[join groups](%%action.groups%%)."
+msgstr ""
+
+#: actions/replies.php:205
+#, php-format
+msgid ""
+"You can try to [nudge %s](../%s) or [post something to his or her attention]"
+"(%%%%action.newnotice%%%%?status_textarea=%s)."
+msgstr ""
+
+#: actions/repliesrss.php:72
+#, php-format
+msgid "Replies to %1$s on %2$s!"
+msgstr ""
+
+#: actions/sandbox.php:65 actions/unsandbox.php:65
+msgid "You cannot sandbox users on this site."
+msgstr ""
+
+#: actions/sandbox.php:72
+msgid "User is already sandboxed."
+msgstr ""
+
+#: actions/showfavorites.php:79
+#, php-format
+msgid "%s's favorite notices, page %d"
+msgstr ""
+
+#: actions/showfavorites.php:132
+msgid "Could not retrieve favorite notices."
+msgstr ""
+
+#: actions/showfavorites.php:170
+#, php-format
+msgid "Feed for favorites of %s (RSS 1.0)"
+msgstr ""
+
+#: actions/showfavorites.php:177
+#, php-format
+msgid "Feed for favorites of %s (RSS 2.0)"
+msgstr ""
+
+#: actions/showfavorites.php:184
+#, php-format
+msgid "Feed for favorites of %s (Atom)"
+msgstr ""
+
+#: actions/showfavorites.php:205
+msgid ""
+"You haven't chosen any favorite notices yet. Click the fave button on "
+"notices you like to bookmark them for later or shed a spotlight on them."
+msgstr ""
+
+#: actions/showfavorites.php:207
+#, php-format
+msgid ""
+"%s hasn't added any notices to his favorites yet. Post something interesting "
+"they would add to their favorites :)"
+msgstr ""
+
+#: actions/showfavorites.php:211
+#, php-format
+msgid ""
+"%s hasn't added any notices to his favorites yet. Why not [register an "
+"account](%%%%action.register%%%%) and then post something interesting they "
+"would add to their favorites :)"
+msgstr ""
+
+#: actions/showfavorites.php:242
+msgid "This is a way to share what you like."
+msgstr ""
+
+#: actions/showgroup.php:82 lib/groupnav.php:86
+#, php-format
+msgid "%s group"
+msgstr ""
+
+#: actions/showgroup.php:84
+#, php-format
+msgid "%s group, page %d"
+msgstr ""
+
#: actions/showgroup.php:218
msgid "Group profile"
msgstr "Skupinski profil"
@@ -1445,6 +2806,11 @@ msgstr "Skupinski profil"
msgid "URL"
msgstr "URL"
+#: actions/showgroup.php:274 actions/tagother.php:128
+#: actions/userauthorization.php:179 lib/userprofile.php:194
+msgid "Note"
+msgstr ""
+
#: actions/showgroup.php:284 lib/groupeditform.php:184
msgid "Aliases"
msgstr "Aliasy"
@@ -1453,12 +2819,32 @@ msgstr "Aliasy"
msgid "Group actions"
msgstr "Skupinske akcije"
+#: actions/showgroup.php:328
+#, php-format
+msgid "Notice feed for %s group (RSS 1.0)"
+msgstr ""
+
+#: actions/showgroup.php:334
+#, php-format
+msgid "Notice feed for %s group (RSS 2.0)"
+msgstr ""
+
+#: actions/showgroup.php:340
+#, php-format
+msgid "Notice feed for %s group (Atom)"
+msgstr ""
+
+#: actions/showgroup.php:345
+#, php-format
+msgid "FOAF for %s group"
+msgstr ""
+
#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91
msgid "Members"
msgstr "Čłonojo"
#: actions/showgroup.php:386 lib/profileaction.php:117
-#: lib/profileaction.php:148 lib/profileaction.php:226 lib/section.php:95
+#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95
#: lib/tagcloudsection.php:71
msgid "(None)"
msgstr "(Žadyn)"
@@ -1467,7 +2853,7 @@ msgstr "(Žadyn)"
msgid "All members"
msgstr "Wšitcy čłonojo"
-#: actions/showgroup.php:429 lib/profileaction.php:173
+#: actions/showgroup.php:429 lib/profileaction.php:174
msgid "Statistics"
msgstr "Statistika"
@@ -1475,6 +2861,25 @@ msgstr "Statistika"
msgid "Created"
msgstr "Wutworjeny"
+#: actions/showgroup.php:448
+#, php-format
+msgid ""
+"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en."
+"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
+"[StatusNet](http://status.net/) tool. Its members share short messages about "
+"their life and interests. [Join now](%%%%action.register%%%%) to become part "
+"of this group and many more! ([Read more](%%%%doc.help%%%%))"
+msgstr ""
+
+#: actions/showgroup.php:454
+#, php-format
+msgid ""
+"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en."
+"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
+"[StatusNet](http://status.net/) tool. Its members share short messages about "
+"their life and interests. "
+msgstr ""
+
#: actions/showgroup.php:482
msgid "Admins"
msgstr "Administratorojo"
@@ -1483,20 +2888,147 @@ msgstr "Administratorojo"
msgid "No such message."
msgstr "Powěsć njeeksistuje."
+#: actions/showmessage.php:98
+msgid "Only the sender and recipient may read this message."
+msgstr ""
+
+#: actions/showmessage.php:108
+#, php-format
+msgid "Message to %1$s on %2$s"
+msgstr ""
+
+#: actions/showmessage.php:113
+#, php-format
+msgid "Message from %1$s on %2$s"
+msgstr ""
+
#: actions/shownotice.php:90
msgid "Notice deleted."
msgstr "Zdźělenka zničena."
+#: actions/showstream.php:73
+#, php-format
+msgid " tagged %s"
+msgstr ""
+
+#: actions/showstream.php:79
+#, php-format
+msgid "%s, page %d"
+msgstr ""
+
+#: actions/showstream.php:122
+#, php-format
+msgid "Notice feed for %s tagged %s (RSS 1.0)"
+msgstr ""
+
+#: actions/showstream.php:129
+#, php-format
+msgid "Notice feed for %s (RSS 1.0)"
+msgstr ""
+
+#: actions/showstream.php:136
+#, php-format
+msgid "Notice feed for %s (RSS 2.0)"
+msgstr ""
+
+#: actions/showstream.php:143
+#, php-format
+msgid "Notice feed for %s (Atom)"
+msgstr ""
+
#: actions/showstream.php:148
#, php-format
msgid "FOAF for %s"
msgstr "FOAF za %s"
+#: actions/showstream.php:191
+#, php-format
+msgid "This is the timeline for %s but %s hasn't posted anything yet."
+msgstr ""
+
+#: actions/showstream.php:196
+msgid ""
+"Seen anything interesting recently? You haven't posted any notices yet, now "
+"would be a good time to start :)"
+msgstr ""
+
+#: actions/showstream.php:198
+#, php-format
+msgid ""
+"You can try to nudge %s or [post something to his or her attention](%%%%"
+"action.newnotice%%%%?status_textarea=%s)."
+msgstr ""
+
+#: actions/showstream.php:234
+#, php-format
+msgid ""
+"**%s** has an account on %%%%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 "
+"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
+msgstr ""
+
+#: actions/showstream.php:239
+#, php-format
+msgid ""
+"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
+"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
+"[StatusNet](http://status.net/) tool. "
+msgstr ""
+
+#: actions/silence.php:65 actions/unsilence.php:65
+msgid "You cannot silence users on this site."
+msgstr ""
+
+#: actions/silence.php:72
+msgid "User is already silenced."
+msgstr ""
+
+#: actions/siteadminpanel.php:69
+msgid "Basic settings for this StatusNet site."
+msgstr ""
+
+#: actions/siteadminpanel.php:147
+msgid "Site name must have non-zero length."
+msgstr ""
+
+#: actions/siteadminpanel.php:155
+msgid "You must have a valid contact email address"
+msgstr ""
+
#: actions/siteadminpanel.php:173
#, php-format
msgid "Unknown language \"%s\""
msgstr "Njeznata rěč \"%s\""
+#: actions/siteadminpanel.php:180
+msgid "Invalid snapshot report URL."
+msgstr ""
+
+#: actions/siteadminpanel.php:186
+msgid "Invalid snapshot run value."
+msgstr ""
+
+#: actions/siteadminpanel.php:192
+msgid "Snapshot frequency must be a number."
+msgstr ""
+
+#: actions/siteadminpanel.php:199
+msgid "You must set an SSL server when enabling SSL."
+msgstr ""
+
+#: actions/siteadminpanel.php:204
+msgid "Invalid SSL server. The maximum length is 255 characters."
+msgstr ""
+
+#: actions/siteadminpanel.php:210
+msgid "Minimum text limit is 140 characters."
+msgstr ""
+
+#: actions/siteadminpanel.php:216
+msgid "Dupe limit must 1 or more seconds."
+msgstr ""
+
#: actions/siteadminpanel.php:266
msgid "General"
msgstr "Powšitkowny"
@@ -1505,6 +3037,30 @@ msgstr "Powšitkowny"
msgid "Site name"
msgstr "Sydłowe mjeno"
+#: actions/siteadminpanel.php:270
+msgid "The name of your site, like \"Yourcompany Microblog\""
+msgstr ""
+
+#: actions/siteadminpanel.php:274
+msgid "Brought by"
+msgstr ""
+
+#: actions/siteadminpanel.php:275
+msgid "Text used for credits link in footer of each page"
+msgstr ""
+
+#: actions/siteadminpanel.php:279
+msgid "Brought by URL"
+msgstr ""
+
+#: actions/siteadminpanel.php:280
+msgid "URL used for credits link in footer of each page"
+msgstr ""
+
+#: actions/siteadminpanel.php:284
+msgid "Contact email address for your site"
+msgstr ""
+
#: actions/siteadminpanel.php:290
msgid "Local"
msgstr "Lokalny"
@@ -1513,6 +3069,10 @@ msgstr "Lokalny"
msgid "Default timezone"
msgstr "Standardne časowe pasmo"
+#: actions/siteadminpanel.php:302
+msgid "Default timezone for the site; usually UTC."
+msgstr ""
+
#: actions/siteadminpanel.php:308
msgid "Default site language"
msgstr "Standardna sydłowa rěč"
@@ -1525,6 +3085,18 @@ msgstr "URL"
msgid "Server"
msgstr "Serwer"
+#: actions/siteadminpanel.php:319
+msgid "Site's server hostname."
+msgstr ""
+
+#: actions/siteadminpanel.php:323
+msgid "Fancy URLs"
+msgstr ""
+
+#: actions/siteadminpanel.php:325
+msgid "Use fancy (more readable and memorable) URLs?"
+msgstr ""
+
#: actions/siteadminpanel.php:331
msgid "Access"
msgstr "Přistup"
@@ -1533,10 +3105,18 @@ msgstr "Přistup"
msgid "Private"
msgstr "Priwatny"
+#: actions/siteadminpanel.php:336
+msgid "Prohibit anonymous users (not logged in) from viewing site?"
+msgstr ""
+
#: actions/siteadminpanel.php:340
msgid "Invite only"
msgstr "Jenož přeprosyć"
+#: actions/siteadminpanel.php:342
+msgid "Make registration invitation only."
+msgstr ""
+
#: actions/siteadminpanel.php:346
msgid "Closed"
msgstr "Začinjeny"
@@ -1545,14 +3125,46 @@ msgstr "Začinjeny"
msgid "Disable new registrations."
msgstr "Nowe registrowanja znjemóžnić."
+#: actions/siteadminpanel.php:354
+msgid "Snapshots"
+msgstr ""
+
+#: actions/siteadminpanel.php:357
+msgid "Randomly during Web hit"
+msgstr ""
+
+#: actions/siteadminpanel.php:358
+msgid "In a scheduled job"
+msgstr ""
+
#: actions/siteadminpanel.php:359 actions/siteadminpanel.php:383
msgid "Never"
msgstr "Ženje"
+#: actions/siteadminpanel.php:360
+msgid "Data snapshots"
+msgstr ""
+
+#: actions/siteadminpanel.php:361
+msgid "When to send statistical data to status.net servers"
+msgstr ""
+
#: actions/siteadminpanel.php:366
msgid "Frequency"
msgstr "Frekwenca"
+#: actions/siteadminpanel.php:367
+msgid "Snapshots will be sent once every N web hits"
+msgstr ""
+
+#: actions/siteadminpanel.php:372
+msgid "Report URL"
+msgstr ""
+
+#: actions/siteadminpanel.php:373
+msgid "Snapshots will be sent to this URL"
+msgstr ""
+
#: actions/siteadminpanel.php:380
msgid "SSL"
msgstr "SSL"
@@ -1569,10 +3181,18 @@ msgstr "Přeco"
msgid "Use SSL"
msgstr "SSL wužiwać"
+#: actions/siteadminpanel.php:388
+msgid "When to use SSL"
+msgstr ""
+
#: actions/siteadminpanel.php:393
msgid "SSL Server"
msgstr "SSL-serwer"
+#: actions/siteadminpanel.php:394
+msgid "Server to direct SSL requests to"
+msgstr ""
+
#: actions/siteadminpanel.php:400
msgid "Limits"
msgstr "Limity"
@@ -1585,18 +3205,69 @@ msgstr "Tekstowy limit"
msgid "Maximum number of characters for notices."
msgstr "Maksimalna ličba znamješkow za zdźělenki."
+#: actions/siteadminpanel.php:407
+msgid "Dupe limit"
+msgstr ""
+
+#: actions/siteadminpanel.php:407
+msgid "How long users must wait (in seconds) to post the same thing again."
+msgstr ""
+
#: actions/siteadminpanel.php:421 actions/useradminpanel.php:313
msgid "Save site settings"
msgstr "Sydłowe nastajenja składować"
+#: actions/smssettings.php:58
+msgid "SMS Settings"
+msgstr ""
+
+#: actions/smssettings.php:69
+#, php-format
+msgid "You can receive SMS messages through email from %%site.name%%."
+msgstr ""
+
#: actions/smssettings.php:91
msgid "SMS is not available."
msgstr "SMS k dispoziciji njesteji."
+#: actions/smssettings.php:112
+msgid "Current confirmed SMS-enabled phone number."
+msgstr ""
+
+#: actions/smssettings.php:123
+msgid "Awaiting confirmation on this phone number."
+msgstr ""
+
+#: actions/smssettings.php:130
+msgid "Confirmation code"
+msgstr ""
+
+#: actions/smssettings.php:131
+msgid "Enter the code you received on your phone."
+msgstr ""
+
+#: actions/smssettings.php:138
+msgid "SMS Phone number"
+msgstr ""
+
+#: actions/smssettings.php:140
+msgid "Phone number, no punctuation or spaces, with area code"
+msgstr ""
+
+#: actions/smssettings.php:174
+msgid ""
+"Send me notices through SMS; I understand I may incur exorbitant charges "
+"from my carrier."
+msgstr ""
+
#: actions/smssettings.php:306
msgid "No phone number."
msgstr "Žane telefonowe čisło."
+#: actions/smssettings.php:311
+msgid "No carrier selected."
+msgstr ""
+
#: actions/smssettings.php:318
msgid "That is already your phone number."
msgstr "To je hižo twoje telefonowe čisło."
@@ -1605,6 +3276,35 @@ msgstr "To je hižo twoje telefonowe čisło."
msgid "That phone number already belongs to another user."
msgstr "Te telefonowe čisło hižo druhemu wužiwarjej słuša."
+#: actions/smssettings.php:347
+msgid ""
+"A confirmation code was sent to the phone number you added. Check your phone "
+"for the code and instructions on how to use it."
+msgstr ""
+
+#: actions/smssettings.php:374
+msgid "That is the wrong confirmation number."
+msgstr ""
+
+#: actions/smssettings.php:405
+msgid "That is not your phone number."
+msgstr ""
+
+#: actions/smssettings.php:465
+msgid "Mobile carrier"
+msgstr ""
+
+#: actions/smssettings.php:469
+msgid "Select a carrier"
+msgstr ""
+
+#: actions/smssettings.php:476
+#, php-format
+msgid ""
+"Mobile carrier for your phone. If you know a carrier that accepts SMS over "
+"email but isn't listed here, send email to let us know at %s."
+msgstr ""
+
#: actions/smssettings.php:498
msgid "No code entered"
msgstr "Žadyn kod zapodaty"
@@ -1613,6 +3313,10 @@ msgstr "Žadyn kod zapodaty"
msgid "You are not subscribed to that profile."
msgstr "Njejsy tón profil abonował."
+#: actions/subedit.php:83
+msgid "Could not save subscription."
+msgstr ""
+
#: actions/subscribe.php:55
msgid "Not a local user."
msgstr "Njeje lokalny wužiwar."
@@ -1631,6 +3335,33 @@ msgstr "%s abonentow"
msgid "%s subscribers, page %d"
msgstr "%s abonentow, strona %d"
+#: actions/subscribers.php:63
+msgid "These are the people who listen to your notices."
+msgstr ""
+
+#: actions/subscribers.php:67
+#, php-format
+msgid "These are the people who listen to %s's notices."
+msgstr ""
+
+#: actions/subscribers.php:108
+msgid ""
+"You have no subscribers. Try subscribing to people you know and they might "
+"return the favor"
+msgstr ""
+
+#: actions/subscribers.php:110
+#, php-format
+msgid "%s has no subscribers. Want to be the first?"
+msgstr ""
+
+#: actions/subscribers.php:114
+#, php-format
+msgid ""
+"%s has no subscribers. Why not [register an account](%%%%action.register%%%"
+"%) and be the first?"
+msgstr ""
+
#: actions/subscriptions.php:52
#, php-format
msgid "%s subscriptions"
@@ -1641,6 +3372,30 @@ msgstr "%s abonementow"
msgid "%s subscriptions, page %d"
msgstr "%s abonementow, strona %d"
+#: actions/subscriptions.php:65
+msgid "These are the people whose notices you listen to."
+msgstr ""
+
+#: actions/subscriptions.php:69
+#, php-format
+msgid "These are the people whose notices %s listens to."
+msgstr ""
+
+#: actions/subscriptions.php:121
+#, php-format
+msgid ""
+"You're not listening to anyone's notices right now, try subscribing to "
+"people you know. Try [people search](%%action.peoplesearch%%), look for "
+"members in groups you're interested in and in our [featured users](%%action."
+"featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can "
+"automatically subscribe to people you already follow there."
+msgstr ""
+
+#: actions/subscriptions.php:123 actions/subscriptions.php:127
+#, php-format
+msgid "%s is not listening to anyone."
+msgstr ""
+
#: actions/subscriptions.php:194
msgid "Jabber"
msgstr "Jabber"
@@ -1657,6 +3412,11 @@ msgstr "Njepřizjewjeny"
msgid "No id argument."
msgstr "Žadyn argument ID."
+#: actions/tagother.php:65
+#, php-format
+msgid "Tag %s"
+msgstr ""
+
#: actions/tagother.php:77 lib/userprofile.php:75
msgid "User profile"
msgstr "Wužiwarski profil"
@@ -1665,14 +3425,86 @@ msgstr "Wužiwarski profil"
msgid "Photo"
msgstr "Foto"
+#: actions/tagother.php:141
+msgid "Tag user"
+msgstr ""
+
+#: actions/tagother.php:151
+msgid ""
+"Tags for this user (letters, numbers, -, ., and _), comma- or space- "
+"separated"
+msgstr ""
+
+#: actions/tagother.php:193
+msgid ""
+"You can only tag people you are subscribed to or who are subscribed to you."
+msgstr ""
+
+#: actions/tagother.php:200
+msgid "Could not save tags."
+msgstr ""
+
+#: actions/tagother.php:236
+msgid "Use this form to add tags to your subscribers or subscriptions."
+msgstr ""
+
+#: actions/tag.php:68
+#, php-format
+msgid "Notices tagged with %s, page %d"
+msgstr ""
+
+#: actions/tag.php:86
+#, php-format
+msgid "Notice feed for tag %s (RSS 1.0)"
+msgstr ""
+
+#: actions/tag.php:92
+#, php-format
+msgid "Notice feed for tag %s (RSS 2.0)"
+msgstr ""
+
+#: actions/tag.php:98
+#, php-format
+msgid "Notice feed for tag %s (Atom)"
+msgstr ""
+
+#: actions/tagrss.php:35
+msgid "No such tag."
+msgstr ""
+
+#: actions/twitapitrends.php:87
+msgid "API method under construction."
+msgstr ""
+
#: actions/unblock.php:59
msgid "You haven't blocked that user."
msgstr "Njejsy toho wužiwarja zablokował."
+#: actions/unsandbox.php:72
+msgid "User is not sandboxed."
+msgstr ""
+
+#: actions/unsilence.php:72
+msgid "User is not silenced."
+msgstr ""
+
+#: actions/unsubscribe.php:77
+msgid "No profile id in request."
+msgstr ""
+
+#: actions/unsubscribe.php:84
+msgid "No profile with that id."
+msgstr ""
+
#: actions/unsubscribe.php:98
msgid "Unsubscribed"
msgstr "Wotskazany"
+#: actions/updateprofile.php:62 actions/userauthorization.php:330
+#, php-format
+msgid "Listenee stream license ‘%s’ is not compatible with site license ‘%s’."
+msgstr ""
+
#: actions/useradminpanel.php:58 lib/adminpanelaction.php:305
#: lib/personalgroupnav.php:115
msgid "User"
@@ -1682,11 +3514,32 @@ msgstr "Wužiwar"
msgid "User settings for this StatusNet site."
msgstr "Wužiwarske nastajenja za sydło StatusNet."
+#: actions/useradminpanel.php:149
+msgid "Invalid bio limit. Must be numeric."
+msgstr ""
+
+#: actions/useradminpanel.php:155
+msgid "Invalid welcome text. Max length is 255 characters."
+msgstr ""
+
+#: actions/useradminpanel.php:165
+#, php-format
+msgid "Invalid default subscripton: '%1$s' is not user."
+msgstr ""
+
#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108
#: lib/personalgroupnav.php:109
msgid "Profile"
msgstr "Profil"
+#: actions/useradminpanel.php:222
+msgid "Bio Limit"
+msgstr ""
+
+#: actions/useradminpanel.php:223
+msgid "Maximum length of a profile bio in characters."
+msgstr ""
+
#: actions/useradminpanel.php:231
msgid "New users"
msgstr "Nowi wužiwarjo"
@@ -1703,6 +3556,10 @@ msgstr "Powitanski tekst za nowych wužiwarjow (maks. 255 znamješkow)."
msgid "Default subscription"
msgstr "Standardny abonement"
+#: actions/useradminpanel.php:242
+msgid "Automatically subscribe new users to this user."
+msgstr ""
+
#: actions/useradminpanel.php:251
msgid "Invitations"
msgstr "Přeprošenja"
@@ -1711,6 +3568,10 @@ msgstr "Přeprošenja"
msgid "Invitations enabled"
msgstr "Přeprošenja zmóžnjene"
+#: actions/useradminpanel.php:258
+msgid "Whether to allow users to invite new users."
+msgstr ""
+
#: actions/useradminpanel.php:265
msgid "Sessions"
msgstr "Posedźenja"
@@ -1719,6 +3580,29 @@ msgstr "Posedźenja"
msgid "Handle sessions"
msgstr "Z posedźenjemi wobchadźeć"
+#: actions/useradminpanel.php:272
+msgid "Whether to handle sessions ourselves."
+msgstr ""
+
+#: actions/useradminpanel.php:276
+msgid "Session debugging"
+msgstr ""
+
+#: actions/useradminpanel.php:278
+msgid "Turn on debugging output for sessions."
+msgstr ""
+
+#: actions/userauthorization.php:105
+msgid "Authorize subscription"
+msgstr ""
+
+#: actions/userauthorization.php:110
+msgid ""
+"Please check these details to make sure that you want to subscribe to this "
+"user’s notices. If you didn’t just ask to subscribe to someone’s notices, "
+"click “Reject”."
+msgstr ""
+
#: actions/userauthorization.php:188
msgid "License"
msgstr "Licenca"
@@ -1740,31 +3624,707 @@ msgstr "Wotpokazać"
msgid "Reject this subscription"
msgstr "Tutón abonement wotpokazać"
+#: actions/userauthorization.php:225
+msgid "No authorization request!"
+msgstr ""
+
#: actions/userauthorization.php:247
msgid "Subscription authorized"
msgstr "Abonement awtorizowany"
+#: actions/userauthorization.php:249
+msgid ""
+"The subscription has been authorized, but no callback URL was passed. Check "
+"with the site’s instructions for details on how to authorize the "
+"subscription. Your subscription token is:"
+msgstr ""
+
#: actions/userauthorization.php:259
msgid "Subscription rejected"
msgstr "Abonement wotpokazany"
-#: lib/command.php:620
-#, fuzzy
+#: actions/userauthorization.php:261
+msgid ""
+"The subscription has been rejected, but no callback URL was passed. Check "
+"with the site’s instructions for details on how to fully reject the "
+"subscription."
+msgstr ""
+
+#: actions/userauthorization.php:296
+#, php-format
+msgid "Listener URI ‘%s’ not found here"
+msgstr ""
+
+#: actions/userauthorization.php:301
+#, php-format
+msgid "Listenee URI ‘%s’ is too long."
+msgstr ""
+
+#: actions/userauthorization.php:307
+#, php-format
+msgid "Listenee URI ‘%s’ is a local user."
+msgstr ""
+
+#: actions/userauthorization.php:322
+#, php-format
+msgid "Profile URL ‘%s’ is for a local user."
+msgstr ""
+
+#: actions/userauthorization.php:338
+#, php-format
+msgid "Avatar URL ‘%s’ is not valid."
+msgstr ""
+
+#: actions/userauthorization.php:343
+#, php-format
+msgid "Can’t read avatar URL ‘%s’."
+msgstr ""
+
+#: actions/userauthorization.php:348
+#, php-format
+msgid "Wrong image type for avatar URL ‘%s’."
+msgstr ""
+
+#: actions/userbyid.php:70
+msgid "No id."
+msgstr ""
+
+#: actions/userdesignsettings.php:76 lib/designsettings.php:65
+msgid "Profile design"
+msgstr ""
+
+#: actions/userdesignsettings.php:87 lib/designsettings.php:76
+msgid ""
+"Customize the way your profile looks with a background image and a colour "
+"palette of your choice."
+msgstr ""
+
+#: actions/userdesignsettings.php:282
+msgid "Enjoy your hotdog!"
+msgstr ""
+
+#: actions/usergroups.php:64
+#, php-format
+msgid "%s groups, page %d"
+msgstr ""
+
+#: actions/usergroups.php:130
+msgid "Search for more groups"
+msgstr ""
+
+#: actions/usergroups.php:153
+#, php-format
+msgid "%s is not a member of any group."
+msgstr ""
+
+#: actions/usergroups.php:158
+#, php-format
+msgid "Try [searching for groups](%%action.groupsearch%%) and joining them."
+msgstr ""
+
+#: classes/File.php:137
+#, php-format
+msgid ""
+"No file may be larger than %d bytes and the file you sent was %d bytes. Try "
+"to upload a smaller version."
+msgstr ""
+
+#: classes/File.php:147
+#, php-format
+msgid "A file this large would exceed your user quota of %d bytes."
+msgstr ""
+
+#: classes/File.php:154
+#, php-format
+msgid "A file this large would exceed your monthly quota of %d bytes."
+msgstr ""
+
+#: classes/Message.php:45
+msgid "You are banned from sending direct messages."
+msgstr ""
+
+#: classes/Message.php:61
+msgid "Could not insert message."
+msgstr ""
+
+#: classes/Message.php:71
+msgid "Could not update message with new URI."
+msgstr ""
+
+#: classes/Notice.php:164
+#, php-format
+msgid "DB error inserting hashtag: %s"
+msgstr ""
+
+#: classes/Notice.php:179
+msgid "Problem saving notice. Too long."
+msgstr ""
+
+#: classes/Notice.php:183
+msgid "Problem saving notice. Unknown user."
+msgstr ""
+
+#: classes/Notice.php:188
+msgid ""
+"Too many notices too fast; take a breather and post again in a few minutes."
+msgstr ""
+
+#: classes/Notice.php:194
+msgid ""
+"Too many duplicate messages too quickly; take a breather and post again in a "
+"few minutes."
+msgstr ""
+
+#: classes/Notice.php:200
+msgid "You are banned from posting notices on this site."
+msgstr ""
+
+#: classes/Notice.php:265 classes/Notice.php:290
+msgid "Problem saving notice."
+msgstr ""
+
+#: classes/Notice.php:1124
+#, php-format
+msgid "DB error inserting reply: %s"
+msgstr ""
+
+#: classes/User_group.php:380
+msgid "Could not create group."
+msgstr ""
+
+#: classes/User_group.php:409
+msgid "Could not set group membership."
+msgstr ""
+
+#: classes/User.php:347
+#, php-format
+msgid "Welcome to %1$s, @%2$s!"
+msgstr ""
+
+#: lib/accountsettingsaction.php:108
+msgid "Change your profile settings"
+msgstr ""
+
+#: lib/accountsettingsaction.php:112
+msgid "Upload an avatar"
+msgstr ""
+
+#: lib/accountsettingsaction.php:116
+msgid "Change your password"
+msgstr ""
+
+#: lib/accountsettingsaction.php:120
+msgid "Change email handling"
+msgstr ""
+
+#: lib/accountsettingsaction.php:124
+msgid "Design your profile"
+msgstr ""
+
+#: lib/accountsettingsaction.php:128
+msgid "Other"
+msgstr ""
+
+#: lib/accountsettingsaction.php:128
+msgid "Other options"
+msgstr ""
+
+#: lib/action.php:144
+#, php-format
+msgid "%s - %s"
+msgstr ""
+
+#: lib/action.php:159
+msgid "Untitled page"
+msgstr ""
+
+#: lib/action.php:425
+msgid "Primary site navigation"
+msgstr ""
+
+#: lib/action.php:431
+msgid "Home"
+msgstr ""
+
+#: lib/action.php:431
+msgid "Personal profile and friends timeline"
+msgstr ""
+
+#: lib/action.php:433
+msgid "Account"
+msgstr ""
+
+#: lib/action.php:433
+msgid "Change your email, avatar, password, profile"
+msgstr ""
+
+#: lib/action.php:436
+msgid "Connect"
+msgstr ""
+
+#: lib/action.php:436
+msgid "Connect to services"
+msgstr ""
+
+#: lib/action.php:440
+msgid "Change site configuration"
+msgstr ""
+
+#: lib/action.php:444 lib/subgroupnav.php:105
+msgid "Invite"
+msgstr ""
+
+#: lib/action.php:445 lib/subgroupnav.php:106
+#, php-format
+msgid "Invite friends and colleagues to join you on %s"
+msgstr ""
+
+#: lib/action.php:450
+msgid "Logout"
+msgstr ""
+
+#: lib/action.php:450
+msgid "Logout from the site"
+msgstr ""
+
+#: lib/action.php:455
+msgid "Create an account"
+msgstr ""
+
+#: lib/action.php:458
+msgid "Login to the site"
+msgstr ""
+
+#: lib/action.php:461 lib/action.php:724
+msgid "Help"
+msgstr ""
+
+#: lib/action.php:461
+msgid "Help me!"
+msgstr ""
+
+#: lib/action.php:464 lib/searchaction.php:127
+msgid "Search"
+msgstr ""
+
+#: lib/action.php:464
+msgid "Search for people or text"
+msgstr ""
+
+#: lib/action.php:485
+msgid "Site notice"
+msgstr ""
+
+#: lib/action.php:551
+msgid "Local views"
+msgstr ""
+
+#: lib/action.php:617
+msgid "Page notice"
+msgstr ""
+
+#: lib/action.php:719
+msgid "Secondary site navigation"
+msgstr ""
+
+#: lib/action.php:726
+msgid "About"
+msgstr ""
+
+#: lib/action.php:728
+msgid "FAQ"
+msgstr ""
+
+#: lib/action.php:732
+msgid "TOS"
+msgstr ""
+
+#: lib/action.php:735
+msgid "Privacy"
+msgstr ""
+
+#: lib/action.php:737
+msgid "Source"
+msgstr ""
+
+#: lib/action.php:739
+msgid "Contact"
+msgstr ""
+
+#: lib/action.php:741
+msgid "Badge"
+msgstr ""
+
+#: lib/action.php:769
+msgid "StatusNet software license"
+msgstr ""
+
+#: lib/action.php:772
+#, php-format
+msgid ""
+"**%%site.name%%** is a microblogging service brought to you by [%%site."
+"broughtby%%](%%site.broughtbyurl%%). "
+msgstr ""
+
+#: lib/action.php:774
+#, php-format
+msgid "**%%site.name%%** is a microblogging service. "
+msgstr ""
+
+#: lib/action.php:776
+#, php-format
+msgid ""
+"It runs the [StatusNet](http://status.net/) microblogging software, version %"
+"s, available under the [GNU Affero General Public License](http://www.fsf."
+"org/licensing/licenses/agpl-3.0.html)."
+msgstr ""
+
+#: lib/action.php:790
+msgid "Site content license"
+msgstr ""
+
+#: lib/action.php:799
+msgid "All "
+msgstr ""
+
+#: lib/action.php:804
+msgid "license."
+msgstr ""
+
+#: lib/action.php:1068
+msgid "Pagination"
+msgstr ""
+
+#: lib/action.php:1077
+msgid "After"
+msgstr ""
+
+#: lib/action.php:1085
+msgid "Before"
+msgstr ""
+
+#: lib/action.php:1133
+msgid "There was a problem with your session token."
+msgstr ""
+
+#: lib/adminpanelaction.php:96
+msgid "You cannot make changes to this site."
+msgstr ""
+
+#: lib/adminpanelaction.php:195
+msgid "showForm() not implemented."
+msgstr ""
+
+#: lib/adminpanelaction.php:224
+msgid "saveSettings() not implemented."
+msgstr ""
+
+#: lib/adminpanelaction.php:247
+msgid "Unable to delete design setting."
+msgstr ""
+
+#: lib/adminpanelaction.php:300
+msgid "Basic site configuration"
+msgstr ""
+
+#: lib/adminpanelaction.php:303
+msgid "Design configuration"
+msgstr ""
+
+#: lib/adminpanelaction.php:306 lib/adminpanelaction.php:309
+msgid "Paths configuration"
+msgstr ""
+
+#: lib/attachmentlist.php:87
+msgid "Attachments"
+msgstr ""
+
+#: lib/attachmentlist.php:265
+msgid "Author"
+msgstr ""
+
+#: lib/attachmentlist.php:278
+msgid "Provider"
+msgstr ""
+
+#: lib/attachmentnoticesection.php:67
+msgid "Notices where this attachment appears"
+msgstr ""
+
+#: lib/attachmenttagcloudsection.php:48
+msgid "Tags for this attachment"
+msgstr ""
+
+#: lib/channel.php:138 lib/channel.php:158
+msgid "Command results"
+msgstr ""
+
+#: lib/channel.php:210
+msgid "Command complete"
+msgstr ""
+
+#: lib/channel.php:221
+msgid "Command failed"
+msgstr ""
+
+#: lib/command.php:44
+msgid "Sorry, this command is not yet implemented."
+msgstr ""
+
+#: lib/command.php:88
+#, php-format
+msgid "Could not find a user with nickname %s"
+msgstr ""
+
+#: lib/command.php:92
+msgid "It does not make a lot of sense to nudge yourself!"
+msgstr ""
+
+#: lib/command.php:99
+#, php-format
+msgid "Nudge sent to %s"
+msgstr ""
+
+#: lib/command.php:126
+#, php-format
+msgid ""
+"Subscriptions: %1$s\n"
+"Subscribers: %2$s\n"
+"Notices: %3$s"
+msgstr ""
+
+#: lib/command.php:152 lib/command.php:400
+msgid "Notice with that id does not exist"
+msgstr ""
+
+#: lib/command.php:168 lib/command.php:416 lib/command.php:471
+msgid "User has no last notice"
+msgstr ""
+
+#: lib/command.php:190
+msgid "Notice marked as fave."
+msgstr ""
+
+#: lib/command.php:315
+#, php-format
+msgid "%1$s (%2$s)"
+msgstr ""
+
+#: lib/command.php:318
+#, php-format
+msgid "Fullname: %s"
+msgstr ""
+
+#: lib/command.php:321
+#, php-format
+msgid "Location: %s"
+msgstr ""
+
+#: lib/command.php:324
+#, php-format
+msgid "Homepage: %s"
+msgstr ""
+
+#: lib/command.php:327
+#, php-format
+msgid "About: %s"
+msgstr ""
+
+#: lib/command.php:358 scripts/xmppdaemon.php:321
+#, php-format
+msgid "Message too long - maximum is %d characters, you sent %d"
+msgstr ""
+
+#: lib/command.php:377
+msgid "Error sending direct message."
+msgstr ""
+
+#: lib/command.php:431
+#, php-format
+msgid "Notice too long - maximum is %d characters, you sent %d"
+msgstr ""
+
+#: lib/command.php:439
+#, php-format
+msgid "Reply to %s sent"
+msgstr ""
+
+#: lib/command.php:441
+msgid "Error saving notice."
+msgstr ""
+
+#: lib/command.php:495
+msgid "Specify the name of the user to subscribe to"
+msgstr ""
+
+#: lib/command.php:502
+#, php-format
+msgid "Subscribed to %s"
+msgstr ""
+
+#: lib/command.php:523
+msgid "Specify the name of the user to unsubscribe from"
+msgstr ""
+
+#: lib/command.php:530
+#, php-format
+msgid "Unsubscribed from %s"
+msgstr ""
+
+#: lib/command.php:548 lib/command.php:571
+msgid "Command not yet implemented."
+msgstr ""
+
+#: lib/command.php:551
+msgid "Notification off."
+msgstr ""
+
+#: lib/command.php:553
+msgid "Can't turn off notification."
+msgstr ""
+
+#: lib/command.php:574
+msgid "Notification on."
+msgstr ""
+
+#: lib/command.php:576
+msgid "Can't turn on notification."
+msgstr ""
+
+#: lib/command.php:592
+msgid "You are not subscribed to anyone."
+msgstr ""
+
+#: lib/command.php:594
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
-# Plural problem
+msgstr[0] "Sy tutu wosobu abonował:"
+msgstr[1] "Sy tutej wosobje abonował:"
+msgstr[2] "Sy tute wosoby abonował:"
+msgstr[3] "Sy tute wosoby abonował:"
-#: lib/command.php:642
-#, fuzzy
+#: lib/command.php:614
+msgid "No one is subscribed to you."
+msgstr ""
+
+#: lib/command.php:616
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
-# Plural problem
+msgstr[0] "Tuta wosoba je će abonowała:"
+msgstr[1] "Tutej wosobje stej će abonowałoj:"
+msgstr[2] "Tute wosoby su će abonowali:"
+msgstr[3] "Tute wosoby su će abonowali:"
-#: lib/command.php:664
-#, fuzzy
+#: lib/command.php:636
+msgid "You are not a member of any groups."
+msgstr ""
+
+#: lib/command.php:638
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
-# Plural problem
+msgstr[0] "Sy čłon tuteje skupiny:"
+msgstr[1] "Sy čłon tuteju skupinow:"
+msgstr[2] "Sy čłon tutych skupinow:"
+msgstr[3] "Sy čłon tutych skupinow:"
+
+#: lib/command.php:652
+msgid ""
+"Commands:\n"
+"on - turn on notifications\n"
+"off - turn off notifications\n"
+"help - show this help\n"
+"follow - subscribe to user\n"
+"groups - lists the groups you have joined\n"
+"subscriptions - list the people you follow\n"
+"subscribers - list the people that follow you\n"
+"leave - unsubscribe from user\n"
+"d - direct message to user\n"
+"get - get last notice from user\n"
+"whois - get profile info on user\n"
+"fav - add user's last notice as a 'fave'\n"
+"fav # - add notice with the given id as a 'fave'\n"
+"reply # - reply to notice with a given id\n"
+"reply - reply to the last notice from user\n"
+"join - join group\n"
+"drop - leave group\n"
+"stats - get your stats\n"
+"stop - same as 'off'\n"
+"quit - same as 'off'\n"
+"sub - same as 'follow'\n"
+"unsub - same as 'leave'\n"
+"last - same as 'get'\n"
+"on - not yet implemented.\n"
+"off - not yet implemented.\n"
+"nudge - remind a user to update.\n"
+"invite - not yet implemented.\n"
+"track - not yet implemented.\n"
+"untrack - not yet implemented.\n"
+"track off - not yet implemented.\n"
+"untrack all - not yet implemented.\n"
+"tracks - not yet implemented.\n"
+"tracking - not yet implemented.\n"
+msgstr ""
+
+#: lib/common.php:199
+msgid "No configuration file found. "
+msgstr ""
+
+#: lib/common.php:200
+msgid "I looked for configuration files in the following places: "
+msgstr ""
+
+#: lib/common.php:201
+msgid "You may wish to run the installer to fix this."
+msgstr ""
+
+#: lib/common.php:202
+msgid "Go to the installer."
+msgstr ""
+
+#: lib/connectsettingsaction.php:110
+msgid "IM"
+msgstr ""
+
+#: lib/connectsettingsaction.php:111
+msgid "Updates by instant messenger (IM)"
+msgstr ""
+
+#: lib/connectsettingsaction.php:116
+msgid "Updates by SMS"
+msgstr ""
+
+#: lib/dberroraction.php:60
+msgid "Database error"
+msgstr ""
+
+#: lib/designsettings.php:105
+msgid "Upload file"
+msgstr ""
+
+#: lib/designsettings.php:109
+msgid ""
+"You can upload your personal background image. The maximum file size is 2MB."
+msgstr ""
+
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr ""
+
+#: lib/disfavorform.php:114 lib/disfavorform.php:140
+msgid "Disfavor this notice"
+msgstr ""
+
+#: lib/favorform.php:114 lib/favorform.php:140
+msgid "Favor this notice"
+msgstr ""
+
+#: lib/favorform.php:140
+msgid "Favor"
+msgstr ""
+
+#: lib/feedlist.php:64
+msgid "Export data"
+msgstr ""
#: lib/feed.php:85
msgid "RSS 1.0"
@@ -1782,10 +4342,34 @@ msgstr "Atom"
msgid "FOAF"
msgstr "FOAF"
+#: lib/galleryaction.php:121
+msgid "Filter tags"
+msgstr ""
+
#: lib/galleryaction.php:131
msgid "All"
msgstr "Wšě"
+#: lib/galleryaction.php:139
+msgid "Select tag to filter"
+msgstr ""
+
+#: lib/galleryaction.php:140
+msgid "Tag"
+msgstr ""
+
+#: lib/galleryaction.php:141
+msgid "Choose a tag to narrow list"
+msgstr ""
+
+#: lib/galleryaction.php:143
+msgid "Go"
+msgstr ""
+
+#: lib/groupeditform.php:163
+msgid "URL of the homepage or blog of the group or topic"
+msgstr ""
+
#: lib/groupeditform.php:168
msgid "Describe the group or topic"
msgstr "Skupinu abo temu wopisać"
@@ -1799,6 +4383,16 @@ msgstr "Skupinu abo temu w %d znamješkach wopisać"
msgid "Description"
msgstr "Wopisanje"
+#: lib/groupeditform.php:179
+msgid ""
+"Location for the group, if any, like \"City, State (or Region), Country\""
+msgstr ""
+
+#: lib/groupeditform.php:187
+#, php-format
+msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgstr ""
+
#: lib/groupnav.php:85
msgid "Group"
msgstr "Skupina"
@@ -1807,10 +4401,30 @@ msgstr "Skupina"
msgid "Blocked"
msgstr "Blokowany"
+#: lib/groupnav.php:102
+#, php-format
+msgid "%s blocked users"
+msgstr ""
+
+#: lib/groupnav.php:108
+#, php-format
+msgid "Edit %s group properties"
+msgstr ""
+
#: lib/groupnav.php:113
msgid "Logo"
msgstr "Logo"
+#: lib/groupnav.php:114
+#, php-format
+msgid "Add or edit %s logo"
+msgstr ""
+
+#: lib/groupnav.php:120
+#, php-format
+msgid "Add or edit %s design"
+msgstr ""
+
#: lib/groupsbymemberssection.php:71
msgid "Groups with most members"
msgstr "Skupiny z najwjace čłonami"
@@ -1819,10 +4433,36 @@ msgstr "Skupiny z najwjace čłonami"
msgid "Groups with most posts"
msgstr "Skupiny z njawjace powěsćemi"
+#: lib/grouptagcloudsection.php:56
+#, php-format
+msgid "Tags in %s group's notices"
+msgstr ""
+
+#: lib/htmloutputter.php:103
+msgid "This page is not available in a media type you accept"
+msgstr ""
+
+#: lib/imagefile.php:75
+#, php-format
+msgid "That file is too big. The maximum file size is %s."
+msgstr ""
+
#: lib/imagefile.php:80
msgid "Partial upload."
msgstr "Dźělne nahraće."
+#: lib/imagefile.php:88 lib/mediafile.php:170
+msgid "System error uploading file."
+msgstr ""
+
+#: lib/imagefile.php:96
+msgid "Not an image or corrupt file."
+msgstr ""
+
+#: lib/imagefile.php:105
+msgid "Unsupported image file format."
+msgstr ""
+
#: lib/imagefile.php:118
msgid "Lost our file."
msgstr "Naša dataja je so zhubiła."
@@ -1831,11 +4471,23 @@ msgstr "Naša dataja je so zhubiła."
msgid "Unknown file type"
msgstr "Njeznaty datajowy typ"
-#: lib/jabber.php:192
+#: lib/imagefile.php:217
+msgid "MB"
+msgstr ""
+
+#: lib/imagefile.php:219
+msgid "kB"
+msgstr ""
+
+#: lib/jabber.php:191
#, php-format
msgid "[%s]"
msgstr "[%s]"
+#: lib/joinform.php:114
+msgid "Join"
+msgstr ""
+
#: lib/leaveform.php:114
msgid "Leave"
msgstr "Wopušćić"
@@ -1848,6 +4500,16 @@ msgstr "Přizjewjenje z wužiwarskim mjenom a hesłom"
msgid "Sign up for a new account"
msgstr "Nowe konto registrować"
+#: lib/mailbox.php:89
+msgid "Only the user can read their own mailboxes."
+msgstr ""
+
+#: lib/mailbox.php:139
+msgid ""
+"You have no private messages. You can send private message to engage other "
+"users in conversation. People can send you messages for your eyes only."
+msgstr ""
+
#: lib/mailbox.php:227 lib/noticelist.php:452
msgid "from"
msgstr "wot"
@@ -1856,6 +4518,43 @@ msgstr "wot"
msgid "Email address confirmation"
msgstr "Wobkrućenje e-mejloweje adresy"
+#: lib/mail.php:174
+#, php-format
+msgid ""
+"Hey, %s.\n"
+"\n"
+"Someone just entered this email address on %s.\n"
+"\n"
+"If it was you, and you want to confirm your entry, use the URL below:\n"
+"\n"
+"\t%s\n"
+"\n"
+"If not, just ignore this message.\n"
+"\n"
+"Thanks for your time, \n"
+"%s\n"
+msgstr ""
+
+#: lib/mail.php:236
+#, php-format
+msgid "%1$s is now listening to your notices on %2$s."
+msgstr ""
+
+#: lib/mail.php:241
+#, php-format
+msgid ""
+"%1$s is now listening to your notices on %2$s.\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"%4$s%5$s%6$s\n"
+"Faithfully yours,\n"
+"%7$s.\n"
+"\n"
+"----\n"
+"Change your email address or notification options at %8$s\n"
+msgstr ""
+
#: lib/mail.php:254
#, php-format
msgid "Location: %s\n"
@@ -1868,23 +4567,145 @@ msgstr "Startowa strona: %s\n"
#: lib/mail.php:258
#, php-format
-msgid "Bio: %s\n\n"
-msgstr "Biografija: %s\n\n"
+msgid ""
+"Bio: %s\n"
+"\n"
+msgstr ""
+"Biografija: %s\n"
+"\n"
+
+#: lib/mail.php:286
+#, php-format
+msgid "New email address for posting to %s"
+msgstr ""
+
+#: lib/mail.php:289
+#, php-format
+msgid ""
+"You have a new posting address on %1$s.\n"
+"\n"
+"Send email to %2$s to post new messages.\n"
+"\n"
+"More email instructions at %3$s.\n"
+"\n"
+"Faithfully yours,\n"
+"%4$s"
+msgstr ""
+
+#: lib/mail.php:413
+#, php-format
+msgid "%s status"
+msgstr ""
#: lib/mail.php:439
msgid "SMS confirmation"
msgstr "SMS-wobkrućenje"
+#: lib/mail.php:463
+#, php-format
+msgid "You've been nudged by %s"
+msgstr ""
+
+#: lib/mail.php:467
+#, php-format
+msgid ""
+"%1$s (%2$s) is wondering what you are up to these days and is inviting you "
+"to post some news.\n"
+"\n"
+"So let's hear from you :)\n"
+"\n"
+"%3$s\n"
+"\n"
+"Don't reply to this email; it won't get to them.\n"
+"\n"
+"With kind regards,\n"
+"%4$s\n"
+msgstr ""
+
#: lib/mail.php:510
#, php-format
msgid "New private message from %s"
msgstr "Nowa priwatna powěsć wot %s"
+#: lib/mail.php:514
+#, php-format
+msgid ""
+"%1$s (%2$s) sent you a private message:\n"
+"\n"
+"------------------------------------------------------\n"
+"%3$s\n"
+"------------------------------------------------------\n"
+"\n"
+"You can reply to their message here:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Don't reply to this email; it won't get to them.\n"
+"\n"
+"With kind regards,\n"
+"%5$s\n"
+msgstr ""
+
#: lib/mail.php:559
#, php-format
msgid "%s (@%s) added your notice as a favorite"
msgstr "%s (@%s) je twoju zdźělenku jako faworit přidał"
+#: lib/mail.php:561
+#, php-format
+msgid ""
+"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n"
+"\n"
+"The URL of your notice is:\n"
+"\n"
+"%3$s\n"
+"\n"
+"The text of your notice is:\n"
+"\n"
+"%4$s\n"
+"\n"
+"You can see the list of %1$s's favorites here:\n"
+"\n"
+"%5$s\n"
+"\n"
+"Faithfully yours,\n"
+"%6$s\n"
+msgstr ""
+
+#: lib/mail.php:620
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
+#: lib/mail.php:622
+#, php-format
+msgid ""
+"%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n"
+"\n"
+"The notice is here:\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"It reads:\n"
+"\n"
+"\t%4$s\n"
+"\n"
+msgstr ""
+
+#: lib/mediafile.php:98 lib/mediafile.php:123
+msgid "There was a database error while saving your file. Please try again."
+msgstr ""
+
+#: lib/mediafile.php:142
+msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
+msgstr ""
+
+#: lib/mediafile.php:147
+msgid ""
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
+"the HTML form."
+msgstr ""
+
#: lib/mediafile.php:152
msgid "The uploaded file was only partially uploaded."
msgstr "Nahrata dataja bu jenož zdźěla nahrata."
@@ -1893,6 +4714,31 @@ msgstr "Nahrata dataja bu jenož zdźěla nahrata."
msgid "Missing a temporary folder."
msgstr "Temporerny rjadowka faluje."
+#: lib/mediafile.php:162
+msgid "Failed to write file to disk."
+msgstr ""
+
+#: lib/mediafile.php:165
+msgid "File upload stopped by extension."
+msgstr ""
+
+#: lib/mediafile.php:179 lib/mediafile.php:216
+msgid "File exceeds user's quota!"
+msgstr ""
+
+#: lib/mediafile.php:196 lib/mediafile.php:233
+msgid "File could not be moved to destination directory."
+msgstr ""
+
+#: lib/mediafile.php:201 lib/mediafile.php:237
+msgid "Could not determine file's mime-type!"
+msgstr ""
+
+#: lib/mediafile.php:270
+#, php-format
+msgid " Try using another %s format."
+msgstr ""
+
#: lib/mediafile.php:275
#, php-format
msgid "%s is not a supported filetype on this server."
@@ -1906,7 +4752,7 @@ msgstr "Direktnu zdźělenku pósłać"
msgid "To"
msgstr "Komu"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "K dispoziciji stejace znamješka"
@@ -1914,11 +4760,16 @@ msgstr "K dispoziciji stejace znamješka"
msgid "Send a notice"
msgstr "Zdźělenku pósłać"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:171
+#, php-format
+msgid "What's up, %s?"
+msgstr ""
+
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Připowěsnyć"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Dataju připowěsnyć"
@@ -1943,6 +4794,14 @@ msgstr "W"
msgid "W"
msgstr "Z"
+#: lib/noticelist.php:411
+msgid "at"
+msgstr ""
+
+#: lib/noticelist.php:506
+msgid "in context"
+msgstr ""
+
#: lib/noticelist.php:526
msgid "Reply to this notice"
msgstr "Na tutu zdźělenku wotmołwić"
@@ -1951,6 +4810,18 @@ msgstr "Na tutu zdźělenku wotmołwić"
msgid "Reply"
msgstr "Wotmołwić"
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr ""
+
+#: lib/nudgeform.php:128
+msgid "Nudge"
+msgstr ""
+
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr ""
+
#: lib/oauthstore.php:283
msgid "Error inserting new profile"
msgstr "Zmylk při zasunjenju noweho profila"
@@ -1967,6 +4838,14 @@ msgstr "Zmylk při zasunjenju zdaleneho profila"
msgid "Duplicate notice"
msgstr "Dwójna zdźělenka"
+#: lib/oauthstore.php:467 lib/subs.php:48
+msgid "You have been banned from subscribing."
+msgstr ""
+
+#: lib/oauthstore.php:492
+msgid "Couldn't insert new subscription."
+msgstr ""
+
#: lib/personalgroupnav.php:99
msgid "Personal"
msgstr "Wosobinski"
@@ -1979,15 +4858,28 @@ msgstr "Wotmołwy"
msgid "Favorites"
msgstr "Fawority"
+#: lib/personalgroupnav.php:124
+msgid "Inbox"
+msgstr ""
+
#: lib/personalgroupnav.php:125
msgid "Your incoming messages"
msgstr "Twoje dochadźace powěsće"
+#: lib/personalgroupnav.php:129
+msgid "Outbox"
+msgstr ""
+
#: lib/personalgroupnav.php:130
msgid "Your sent messages"
msgstr "Twoje pósłane powěsće"
-#: lib/profileaction.php:109 lib/profileaction.php:191 lib/subgroupnav.php:82
+#: lib/personaltagcloudsection.php:56
+#, php-format
+msgid "Tags in %s's notices"
+msgstr ""
+
+#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82
msgid "Subscriptions"
msgstr "Abonementy"
@@ -1995,7 +4887,7 @@ msgstr "Abonementy"
msgid "All subscriptions"
msgstr "Wšě abonementy"
-#: lib/profileaction.php:140 lib/profileaction.php:200 lib/subgroupnav.php:90
+#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90
msgid "Subscribers"
msgstr "Abonenća"
@@ -2003,18 +4895,26 @@ msgstr "Abonenća"
msgid "All subscribers"
msgstr "Wšitcy abonenća"
-#: lib/profileaction.php:177
+#: lib/profileaction.php:178
msgid "User ID"
msgstr "Wužiwarski ID"
-#: lib/profileaction.php:182
+#: lib/profileaction.php:183
msgid "Member since"
msgstr "Čłon wot"
-#: lib/profileaction.php:235
+#: lib/profileaction.php:245
msgid "All groups"
msgstr "Wšě skupiny"
+#: lib/profileformaction.php:123
+msgid "No return-to arguments"
+msgstr ""
+
+#: lib/profileformaction.php:137
+msgid "unimplemented method"
+msgstr ""
+
#: lib/publicgroupnav.php:78
msgid "Public"
msgstr "Zjawny"
@@ -2023,10 +4923,26 @@ msgstr "Zjawny"
msgid "User groups"
msgstr "Wužiwarske skupiny"
+#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
+msgid "Recent tags"
+msgstr ""
+
+#: lib/publicgroupnav.php:88
+msgid "Featured"
+msgstr ""
+
#: lib/publicgroupnav.php:92
msgid "Popular"
msgstr "Woblubowany"
+#: lib/sandboxform.php:67
+msgid "Sandbox"
+msgstr ""
+
+#: lib/sandboxform.php:78
+msgid "Sandbox this user"
+msgstr ""
+
#: lib/searchaction.php:120
msgid "Search site"
msgstr "Pytanske sydło"
@@ -2063,6 +4979,39 @@ msgstr "Wotrězk bjez titula"
msgid "More..."
msgstr "Wjace..."
+#: lib/silenceform.php:67
+msgid "Silence"
+msgstr ""
+
+#: lib/silenceform.php:78
+msgid "Silence this user"
+msgstr ""
+
+#: lib/subgroupnav.php:83
+#, php-format
+msgid "People %s subscribes to"
+msgstr ""
+
+#: lib/subgroupnav.php:91
+#, php-format
+msgid "People subscribed to %s"
+msgstr ""
+
+#: lib/subgroupnav.php:99
+#, php-format
+msgid "Groups %s is a member of"
+msgstr ""
+
+#: lib/subscriberspeopleselftagcloudsection.php:48
+#: lib/subscriptionspeopleselftagcloudsection.php:48
+msgid "People Tagcloud as self-tagged"
+msgstr ""
+
+#: lib/subscriberspeopletagcloudsection.php:48
+#: lib/subscriptionspeopletagcloudsection.php:48
+msgid "People Tagcloud as tagged"
+msgstr ""
+
#: lib/subscriptionlist.php:126
msgid "(none)"
msgstr "(žadyn)"
@@ -2079,11 +5028,20 @@ msgstr "Wužiwar je će zablokował."
msgid "Could not subscribe."
msgstr "Abonowanje njebě móžno"
+#: lib/subs.php:79
+msgid "Could not subscribe other to you."
+msgstr ""
+
#: lib/subs.php:128
msgid "Not subscribed!"
msgstr "Njeje abonowany!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Abonoment njeje so dał zničić."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Abonoment njeje so dał zničić."
@@ -2091,6 +5049,26 @@ msgstr "Abonoment njeje so dał zničić."
msgid "None"
msgstr "Žadyn"
+#: lib/topposterssection.php:74
+msgid "Top posters"
+msgstr ""
+
+#: lib/unsandboxform.php:69
+msgid "Unsandbox"
+msgstr ""
+
+#: lib/unsandboxform.php:80
+msgid "Unsandbox this user"
+msgstr ""
+
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr ""
+
+#: lib/unsilenceform.php:78
+msgid "Unsilence this user"
+msgstr ""
+
#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
msgid "Unsubscribe from this user"
msgstr "Tutoho wužiwarja wotskazać"
@@ -2123,6 +5101,10 @@ msgstr "Tutomu wužiwarja direktnu powěsć pósłać"
msgid "Message"
msgstr "Powěsć"
+#: lib/userprofile.php:311
+msgid "Moderate"
+msgstr ""
+
#: lib/util.php:825
msgid "a few seconds ago"
msgstr "před něšto sekundami"
@@ -2175,7 +5157,13 @@ msgstr "%s płaćiwa barba njeje!"
#: lib/webcolor.php:123
#, php-format
msgid "%s is not a valid color! Use 3 or 6 hex chars."
-msgstr "%s płaćiwa barba njeje! Wužij 3 heksadecimalne znamješka abo 6 heksadecimalnych znamješkow."
+msgstr ""
+"%s płaćiwa barba njeje! Wužij 3 heksadecimalne znamješka abo 6 "
+"heksadecimalnych znamješkow."
+
+#: scripts/maildaemon.php:48
+msgid "Could not parse message."
+msgstr ""
#: scripts/maildaemon.php:53
msgid "Not a registered user."
@@ -2188,4 +5176,3 @@ msgstr "Wodaj, to twoja adresa za dochadźace e-mejle njeje."
#: scripts/maildaemon.php:61
msgid "Sorry, no incoming email allowed."
msgstr "Wodaj, dochadźaće e-mejle njejsu dowolene."
-
diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po
index 5cb39db107..e27212ed11 100644
--- a/locale/is/LC_MESSAGES/statusnet.po
+++ b/locale/is/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:52+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:31+0000\n"
"Language-Team: Icelandic\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: is\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "Notandi hefur enga persónulega síðu."
msgid "Could not save profile."
msgstr "Gat ekki vistað persónulega síðu."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Gat ekki uppfært notanda."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Mistókst að loka á notanda."
@@ -823,106 +828,106 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Ótæk stærð."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Þessi síða er ekki aðgengileg í "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Breyta"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Bjóða"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Breyta"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Babl vefsíðunnar"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Skrá þig út af síðunni"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr ""
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr ""
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr ""
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texti"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr ""
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -932,7 +937,7 @@ msgstr ""
msgid "Save"
msgstr "Vista"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1365,18 +1370,18 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr ""
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr ""
@@ -1691,7 +1696,7 @@ msgstr "Persónuleg skilaboð"
msgid "Optionally add a personal message to the invitation."
msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Senda"
@@ -2017,8 +2022,8 @@ msgstr ""
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Enginn stuðningur við gagnasnið."
@@ -4511,11 +4516,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4974,7 +4975,7 @@ msgstr "Senda bein skilaboð"
msgid "To"
msgstr "Til"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Leyfileg tákn"
@@ -4987,11 +4988,11 @@ msgstr "Senda babl"
msgid "What's up, %s?"
msgstr "Hvað er að frétta %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5267,7 +5268,12 @@ msgstr "Gat ekki leyft öðrum að gerast áskrifandi að þér."
msgid "Not subscribed!"
msgstr "Ekki í áskrift!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Gat ekki eytt áskrift."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Gat ekki eytt áskrift."
diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po
index 79b6ef8c09..da538e1a27 100644
--- a/locale/it/LC_MESSAGES/statusnet.po
+++ b/locale/it/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:56+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:34+0000\n"
"Language-Team: Italian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: it\n"
"X-Message-Group: out-statusnet\n"
@@ -185,7 +185,12 @@ msgstr "L'utente non ha un profilo."
msgid "Could not save profile."
msgstr "Impossibile salvare il profilo."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Impossibile aggiornare l'utente."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Blocco dell'utente non riuscito."
@@ -838,110 +843,110 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Dimensione non valida."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Questa pagina non è disponibile in un "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Modifica la tua password"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Invita"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Modifica"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Messaggio del sito"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Sconnettiti dal sito"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Puoi caricare un'immagine per il logo del tuo gruppo."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Modifica la tua password"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Connetti"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Ricerca"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Testo"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Elenco"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -951,7 +956,7 @@ msgstr ""
msgid "Save"
msgstr "Salva"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1400,20 +1405,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Impossibile aggiornare l'utente."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Impossibile salvare le tue impostazioni di Twitter!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Preferenze di sincronizzazione salvate."
@@ -1736,7 +1741,7 @@ msgstr "Messaggio personale"
msgid "Optionally add a personal message to the invitation."
msgstr "Puoi aggiungere un messaggio personale agli inviti."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Invia"
@@ -2060,8 +2065,8 @@ msgstr "Connetti"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Non è un formato di dati supportato."
@@ -4582,11 +4587,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Qui puoi caricare la tua immagine personale."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5050,7 +5051,7 @@ msgstr "Invia un messaggio diretto"
msgid "To"
msgstr "A"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Caratteri disponibili"
@@ -5063,11 +5064,11 @@ msgstr "Invia un messaggio"
msgid "What's up, %s?"
msgstr "Cosa succede, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5347,7 +5348,12 @@ msgstr "Impossibile abbonare altri a te."
msgid "Not subscribed!"
msgstr "Non abbonato!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Impossibile eliminare l'abbonamento."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Impossibile eliminare l'abbonamento."
diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po
index 5317bc7a3a..43f6fcec79 100644
--- a/locale/ja/LC_MESSAGES/statusnet.po
+++ b/locale/ja/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:19:59+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:37+0000\n"
"Language-Team: Japanese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ja\n"
"X-Message-Group: out-statusnet\n"
@@ -189,7 +189,12 @@ msgstr "プロファイルがありません。"
msgid "Could not save profile."
msgstr "プロファイルを保存できません"
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "ユーザを更新できません"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "ユーザのブロックに失敗しました。"
@@ -839,109 +844,109 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "不正なサイズ。"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "このページはあなたが承認したメディアタイプでは利用できません。"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "パスワードの変更"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "新しい通知"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "変更"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "新しい通知"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "サイトからログアウト"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "長すぎます。通知は最大 140 字までです。"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "パスワードの変更"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "内容"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "検索"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "ログイン"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -951,7 +956,7 @@ msgstr ""
msgid "Save"
msgstr "保存"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1396,19 +1401,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "ユーザを更新できません"
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "設定が保存されました。"
@@ -1722,7 +1727,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "送る"
@@ -2040,8 +2045,8 @@ msgstr "内容種別 "
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4530,11 +4535,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "長すぎます。通知は最大 140 字までです。"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4989,7 +4990,7 @@ msgstr "直接通知を送る"
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "利用可能な文字"
@@ -5002,11 +5003,11 @@ msgstr "通知を送る"
msgid "What's up, %s?"
msgstr "最近どう %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5284,7 +5285,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "購読していません!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "サブスクリプションを削除できません"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "サブスクリプションを削除できません"
diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po
index 60ac94a30b..2de8e46d53 100644
--- a/locale/ko/LC_MESSAGES/statusnet.po
+++ b/locale/ko/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:03+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:40+0000\n"
"Language-Team: Korean\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ko\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "이용자가 프로필을 가지고 있지 않습니다."
msgid "Could not save profile."
msgstr "프로필을 저장 할 수 없습니다."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "사용자를 업데이트 할 수 없습니다."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "사용자 차단에 실패했습니다."
@@ -836,110 +841,110 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "옳지 않은 크기"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "이 페이지는 귀하가 승인한 미디어 타입에서는 이용할 수 없습니다."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "비밀번호 바꾸기"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "초대"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "변환"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "사이트 공지"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "이 사이트로부터 로그아웃"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "당신그룹의 로고 이미지를 업로드할 수 있습니다."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "비밀번호 바꾸기"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "연결"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "검색"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "문자"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "로그인"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -949,7 +954,7 @@ msgstr ""
msgid "Save"
msgstr "저장"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1393,20 +1398,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "사용자를 업데이트 할 수 없습니다."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "트위터 환경설정을 저장할 수 없습니다."
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "싱크설정이 저장되었습니다."
@@ -1722,7 +1727,7 @@ msgstr "개인적인 메시지"
msgid "Optionally add a personal message to the invitation."
msgstr "초대장에 메시지 첨부하기."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "보내기"
@@ -2040,8 +2045,8 @@ msgstr "연결"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "지원하는 형식의 데이터가 아닙니다."
@@ -4541,11 +4546,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "당신의 개인적인 아바타를 업로드할 수 있습니다."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5001,7 +5002,7 @@ msgstr "직접 메시지 보내기"
msgid "To"
msgstr "에게"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "사용 가능한 글자"
@@ -5014,11 +5015,11 @@ msgstr "게시글 보내기"
msgid "What's up, %s?"
msgstr "뭐하세요? %?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5298,7 +5299,12 @@ msgstr "다른 사람을 구독 하실 수 없습니다."
msgid "Not subscribed!"
msgstr "구독하고 있지 않습니다!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "예약 구독을 삭제 할 수 없습니다."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "예약 구독을 삭제 할 수 없습니다."
diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po
index 94511070d3..011c434cac 100644
--- a/locale/mk/LC_MESSAGES/statusnet.po
+++ b/locale/mk/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:07+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:43+0000\n"
"Language-Team: Macedonian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: mk\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "Корисникот нема профил."
msgid "Could not save profile."
msgstr "Профилот не може да се сними."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Корисникот не може да се освежи/"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -832,109 +837,109 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Погрешна големина."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Оваа страница не е достапна во форматот кој Вие го прифаќате."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Промени ја лозинката"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Ново известување"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Промени"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Ново известување"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Ова е предолго. Максималната должина е 140 знаци."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Промени ја лозинката"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Поврзи се"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Барај"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Пријави се"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -944,7 +949,7 @@ msgstr ""
msgid "Save"
msgstr "Сними"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1384,19 +1389,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Корисникот не може да се освежи/"
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Преференциите се снимени."
@@ -1712,7 +1717,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Испрати"
@@ -2010,8 +2015,8 @@ msgstr "Поврзи се"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4501,11 +4506,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Ова е предолго. Максималната должина е 140 знаци."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4968,7 +4969,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 или повеќе знаци"
@@ -4983,11 +4984,11 @@ msgstr "Ново известување"
msgid "What's up, %s?"
msgstr "Што има %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5266,7 +5267,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "Не сте претплатени!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Претплата не може да се избрише."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Претплата не може да се избрише."
diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po
index e6eb1e5d17..4a8ed64274 100644
--- a/locale/nb/LC_MESSAGES/statusnet.po
+++ b/locale/nb/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:10+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:46+0000\n"
"Language-Team: Norwegian (bokmål)\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: no\n"
"X-Message-Group: out-statusnet\n"
@@ -183,7 +183,12 @@ msgstr ""
msgid "Could not save profile."
msgstr "Klarte ikke å lagre profil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Klarte ikke å oppdatere bruker."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -828,108 +833,108 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Ugyldig størrelse"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr ""
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Endre passordet ditt"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr ""
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Endre"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Endre"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr ""
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Endre passordet ditt"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Koble til"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Søk"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Tekst"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Logg inn"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -939,7 +944,7 @@ msgstr ""
msgid "Save"
msgstr "Lagre"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1374,19 +1379,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Klarte ikke å oppdatere bruker."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr ""
@@ -1689,7 +1694,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Send"
@@ -1998,8 +2003,8 @@ msgstr ""
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4444,11 +4449,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr ""
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4910,7 +4911,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 eller flere tegn"
@@ -4924,11 +4925,11 @@ msgstr ""
msgid "What's up, %s?"
msgstr ""
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5204,7 +5205,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "Alle abonnementer"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Klarte ikke å lagre avatar-informasjonen"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr ""
diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po
index e9c4ef9e79..85f3cb655e 100644
--- a/locale/nl/LC_MESSAGES/statusnet.po
+++ b/locale/nl/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:26+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:52+0000\n"
"Language-Team: Dutch\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: nl\n"
"X-Message-Group: out-statusnet\n"
@@ -192,7 +192,12 @@ msgstr "Deze gebruiker heeft geen profiel."
msgid "Could not save profile."
msgstr "Het was niet mogelijk het profiel op te slaan."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "U kunt het abonnement op uzelf niet opzeggen."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Het blokkeren van de gebruiker is mislukt."
@@ -839,45 +844,45 @@ msgstr "Ontwerp"
msgid "Design settings for this StatusNet site."
msgstr "Instellingen voor de vormgeving van deze StatusNet-website."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "De logo-URL is ongeldig."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "De vormgeving is niet beschikbaar: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Logo wijzigen"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Websitelogo"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Vormgeving wijzigen"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Vormgeving website"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Mogelijke vormgevingen voor deze website."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Achtergrondafbeelding wijzigen"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Achtergrond"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -886,55 +891,55 @@ msgstr ""
"Hier kunt u een achtergrondafbeelding voor de website uploaden. De maximale "
"bestandsgrootte is %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Aan"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Uit"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "Achtergrondafbeelding inschakelen of uitschakelen."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Achtergrondafbeelding naast elkaar"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Kleuren wijzigen"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Inhoud"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Menubalk"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Tekst"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Verwijzingen"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Standaardinstellingen gebruiken"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Standaardontwerp toepassen"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Standaardinstellingen toepassen"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -944,7 +949,7 @@ msgstr "Standaardinstellingen toepassen"
msgid "Save"
msgstr "Opslaan"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Ontwerp opslaan"
@@ -1391,18 +1396,18 @@ msgstr ""
"De vormgeving van uw groep aanpassen met een achtergrondafbeeldingen en een "
"kleurenpalet van uw keuze."
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Het was niet mogelijk uw ontwerp bij te werken."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Het was niet mogelijk om uw ontwerpinstellingen op te slaan!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "De ontwerpvoorkeuren zijn opgeslagen."
@@ -1732,7 +1737,7 @@ msgstr "Persoonlijk bericht"
msgid "Optionally add a personal message to the invitation."
msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Verzenden"
@@ -2058,8 +2063,8 @@ msgstr "inhoudstype "
msgid "Only "
msgstr "Alleen "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Geen ondersteund gegevensformaat."
@@ -2854,11 +2859,10 @@ msgid "Invalid profile URL (bad format)"
msgstr "Ongeldige profiel-URL (foutieve opmaak)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
msgstr ""
-"De URL voor het profiel is niet geldig (het is geen YADIS-document of er is "
-"geen of ongeldige XRDS gedefinieerd)."
+"De URL is niet geldig (het is geen YADIS-document of er een ongeldige XRDS "
+"gedefinieerd)."
#: actions/remotesubscribe.php:176
msgid "That’s a local profile! Login to subscribe."
@@ -4523,7 +4527,6 @@ msgstr[0] "U bent lid van deze groep:"
msgstr[1] "U bent lid van deze groepen:"
#: lib/command.php:652
-#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4579,7 +4582,6 @@ msgstr ""
"reply # - antwoorden op de mededeling met het aangegeven ID\n"
"reply - antwoorden op de laatste mededeling van gebruiker\n"
"join - lid worden van groep\n"
-"login - verwijzing opvragen naar de webpagina voor aanmelden\n"
"drop - groepslidmaatschap opzeggen\n"
"stats - uw statistieken opvragen\n"
"stop - zelfde als 'off'\n"
@@ -4642,11 +4644,7 @@ msgstr ""
"U kunt een persoonlijke achtergrondafbeelding uploaden. De maximale "
"bestandsgrootte is 2 megabyte."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Foutieve standaard kleurinstellingen: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Het standaardontwerp is weer ingesteld."
@@ -5187,7 +5185,7 @@ msgstr "Directe mededeling verzenden"
msgid "To"
msgstr "Aan"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Beschikbare tekens"
@@ -5200,11 +5198,11 @@ msgstr "Mededeling verzenden"
msgid "What's up, %s?"
msgstr "Hallo, %s."
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Toevoegen"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Bestand toevoegen"
@@ -5472,7 +5470,12 @@ msgstr "Het was niet mogelijk om een ander op u te laten abonneren"
msgid "Not subscribed!"
msgstr "Niet geabonneerd!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Kon abonnement niet verwijderen."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Kon abonnement niet verwijderen."
diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po
index fdae960a36..6ce0460ca3 100644
--- a/locale/nn/LC_MESSAGES/statusnet.po
+++ b/locale/nn/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:13+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:49+0000\n"
"Language-Team: Norwegian Nynorsk\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: nn\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "Brukaren har inga profil."
msgid "Could not save profile."
msgstr "Kan ikkje lagra profil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Kan ikkje oppdatera brukar."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Blokkering av brukar feila."
@@ -835,110 +840,110 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Ugyldig storleik."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Denne sida er ikkje tilgjengleg i eit"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Endra passordet ditt"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Invitér"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Endra"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Statusmelding"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Logg ut or sida"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Du kan lasta opp ein logo for gruppa."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Endra passordet ditt"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Kopla til"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Søk"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Tekst"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Logg inn"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -948,7 +953,7 @@ msgstr ""
msgid "Save"
msgstr "Lagra"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1393,20 +1398,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Kan ikkje oppdatera brukar."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Synkroniserings innstillingar blei lagra."
@@ -1724,7 +1729,7 @@ msgstr "Personleg melding"
msgid "Optionally add a personal message to the invitation."
msgstr "Eventuelt legg til ei personleg melding til invitasjonen."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Send"
@@ -2045,8 +2050,8 @@ msgstr "Kopla til"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Ikkje eit støtta dataformat."
@@ -4561,11 +4566,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Du kan laste opp ein personleg avatar."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5028,7 +5029,7 @@ msgstr "Send ei direkte melding"
msgid "To"
msgstr "Til"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Tilgjenglege teikn"
@@ -5041,11 +5042,11 @@ msgstr "Send ei melding"
msgid "What's up, %s?"
msgstr "Kva skjer, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5325,7 +5326,12 @@ msgstr "Kan ikkje tinga andre til deg."
msgid "Not subscribed!"
msgstr "Ikkje tinga."
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Kan ikkje sletta tinging."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Kan ikkje sletta tinging."
diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po
index 62d92064cc..33013c7af8 100644
--- a/locale/pl/LC_MESSAGES/statusnet.po
+++ b/locale/pl/LC_MESSAGES/statusnet.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:31+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:56+0000\n"
"Last-Translator: Piotr Drąg \n"
"Language-Team: Polish \n"
"MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pl\n"
"X-Message-Group: out-statusnet\n"
@@ -194,7 +194,12 @@ msgstr "Użytkownik nie posiada profilu."
msgid "Could not save profile."
msgstr "Nie można zapisać profilu."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Nie można zrezygnować z obserwacji samego siebie."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Zablokowanie użytkownika nie powiodło się."
@@ -828,100 +833,100 @@ msgstr "Wygląd"
msgid "Design settings for this StatusNet site."
msgstr "Ustawienia wyglądu tej strony StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "Nieprawidłowy adres URL logo."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Motyw nie jest dostępny: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Zmień logo"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Logo strony"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Zmień motyw"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Motyw strony"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Motyw strony."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Zmień obraz tła"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Tło"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "Można wysłać obraz tła dla strony. Maksymalny rozmiar pliku to %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Włączone"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Wyłączone"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "Włącz lub wyłącz obraz tła."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Kafelkowy obraz tła"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Zmień kolory"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Zawartość"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Panel boczny"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Tekst"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Odnośniki"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Użycie domyślnych"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Przywróć domyślny wygląd"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Przywróć domyślne ustawienia"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -931,7 +936,7 @@ msgstr "Przywróć domyślne ustawienia"
msgid "Save"
msgstr "Zapisz"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Zapisz wygląd"
@@ -1368,18 +1373,18 @@ msgid ""
"palette of your choice."
msgstr "Dostosuj wygląd grupy za pomocą wybranego obrazu tła i palety kolorów."
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Nie można zaktualizować wyglądu."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Nie można zapisać ustawień wyglądu."
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Zapisano preferencje wyglądu."
@@ -1703,7 +1708,7 @@ msgstr "Osobista wiadomość"
msgid "Optionally add a personal message to the invitation."
msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Wyślij"
@@ -2029,8 +2034,8 @@ msgstr "typ zawartości "
msgid "Only "
msgstr "Tylko "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "To nie jest obsługiwany format danych."
@@ -4581,11 +4586,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Można wysłać osobisty obraz tła. Maksymalny rozmiar pliku to 2 MB."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Błędne domyślne ustawienia koloru: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Przywrócono domyślny wygląd."
@@ -5123,7 +5124,7 @@ msgstr "Wyślij bezpośredni wpis"
msgid "To"
msgstr "Do"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Dostępne znaki"
@@ -5136,11 +5137,11 @@ msgstr "Wyślij wpis"
msgid "What's up, %s?"
msgstr "Co słychać, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Załącz"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Załącz plik"
@@ -5407,7 +5408,12 @@ msgstr "Nie można subskrybować innych do ciebie."
msgid "Not subscribed!"
msgstr "Niesubskrybowane."
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Nie można usunąć subskrypcji."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Nie można usunąć subskrypcji."
diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po
index c5b3c9515c..01d8c5f63c 100644
--- a/locale/pt/LC_MESSAGES/statusnet.po
+++ b/locale/pt/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:35+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:54:59+0000\n"
"Language-Team: Portuguese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pt\n"
"X-Message-Group: out-statusnet\n"
@@ -96,8 +96,8 @@ msgid ""
"You can try to [nudge %s](../%s) from his profile or [post something to his "
"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)."
msgstr ""
-"Tente [acotovelar o(a) %s](../%s) a partir do perfil ou [publicar qualquer "
-"coisa à sua atenção](%%%%action.newnotice%%%%?status_textarea=%s)."
+"Tente [acotovelar %s](../%s) a partir do perfil ou [publicar qualquer coisa "
+"à sua atenção](%%%%action.newnotice%%%%?status_textarea=%s)."
#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202
#, php-format
@@ -105,8 +105,8 @@ msgid ""
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
"post a notice to his or her attention."
msgstr ""
-"Podia [registar uma conta](%%%%action.register%%%%) e depois acotovelar o(a) "
-"%s ou publicar uma nota à sua atenção."
+"Podia [registar uma conta](%%%%action.register%%%%) e depois acotovelar %s "
+"ou publicar uma nota à sua atenção."
#: actions/all.php:165
msgid "You and friends"
@@ -115,7 +115,7 @@ msgstr "Você e amigos"
#: actions/allrss.php:119 actions/apitimelinefriends.php:121
#, php-format
msgid "Updates from %1$s and friends on %2$s!"
-msgstr "Actualizações do(a) %1$s e amigos no %2$s!"
+msgstr "Actualizações de %1$s e amigos no %2$s!"
#: actions/apiaccountratelimitstatus.php:70
#: actions/apiaccountupdatedeliverydevice.php:93
@@ -187,7 +187,12 @@ msgstr "Utilizador não tem perfil."
msgid "Could not save profile."
msgstr "Não foi possível gravar o perfil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Não pode deixar de seguir-se a si próprio!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Bloqueio do utilizador falhou."
@@ -216,7 +221,7 @@ msgstr ""
#: actions/apidirectmessage.php:89
#, php-format
msgid "Direct messages from %s"
-msgstr "Mensagens directas do(a) %s"
+msgstr "Mensagens directas de %s"
#: actions/apidirectmessage.php:93
#, php-format
@@ -396,7 +401,7 @@ msgstr "Não foi possível remover %s do grupo %s."
#: actions/apigrouplistall.php:90 actions/usergroups.php:62
#, php-format
msgid "%s groups"
-msgstr "Grupos do(a) %s"
+msgstr "Grupos de %s"
#: actions/apigrouplistall.php:94
#, php-format
@@ -549,7 +554,7 @@ msgstr "Original"
#: actions/avatarsettings.php:141 actions/avatarsettings.php:214
#: actions/grouplogo.php:210 actions/grouplogo.php:271
msgid "Preview"
-msgstr "Antever"
+msgstr "Antevisão"
#: actions/avatarsettings.php:148 lib/deleteuserform.php:66
#: lib/noticelist.php:550
@@ -822,45 +827,45 @@ msgstr "Design"
msgid "Design settings for this StatusNet site."
msgstr "Configurações do design deste site StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "URL do logótipo inválida."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Tema não está disponível: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Alterar logótipo"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Logótipo do site"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Alterar tema"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Tema do site"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "O tema para o site."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Alterar imagem de fundo"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
-msgstr "Imagem de fundo"
+msgstr "Fundo"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -869,55 +874,55 @@ msgstr ""
"Pode carregar uma imagem de fundo para o site. O tamanho máximo do ficheiro "
"é %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
-msgstr ""
+msgstr "Ligar"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
-msgstr ""
+msgstr "Desligar"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
-msgstr ""
+msgstr "Ligar ou desligar a imagem de fundo."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Repetir imagem de fundo em mosaico"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Alterar cores"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Conteúdo"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
-msgstr "Barra lateral"
+msgstr "Lateral"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texto"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Ligações"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Usar predefinições"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Repor designs predefinidos"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Repor predefinição"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -927,7 +932,7 @@ msgstr "Repor predefinição"
msgid "Save"
msgstr "Gravar"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Gravar o design"
@@ -1201,7 +1206,7 @@ msgstr ""
#: lib/personalgroupnav.php:115
#, php-format
msgid "%s's favorite notices"
-msgstr "Notas favoritas do(a) %s"
+msgstr "Notas favoritas de %s"
#: actions/favoritesrss.php:115
#, php-format
@@ -1369,18 +1374,18 @@ msgstr ""
"Personalize o aspecto do seu grupo com uma imagem de fundo e uma paleta de "
"cores à sua escolha."
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Não foi possível actualizar o design."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Não foi possível actualizar as suas configurações do design!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Preferências do design foram gravadas."
@@ -1453,8 +1458,8 @@ msgid ""
"Search for groups on %%site.name%% by their name, location, or description. "
"Separate the terms by spaces; they must be 3 characters or more."
msgstr ""
-"Procure grupos em %%site.name%% pelo seu nome, localização ou descrição. "
-"Separe os termos de busca com espaços; precisam de ter 3 ou mais caracteres."
+"Procure grupos neste site pesquisando o nome, localização ou descrição. Os "
+"termos de busca devem ter 3 ou mais caracteres e ser separados por espaços."
#: actions/groupsearch.php:58
msgid "Group search"
@@ -1631,7 +1636,8 @@ msgstr "Caixa de entrada de %s"
#: actions/inbox.php:115
msgid "This is your inbox, which lists your incoming private messages."
msgstr ""
-"Esta é a sua caixa de entrada, que apresenta as mensagens privadas recebidas."
+"Esta é a sua caixa de entrada, que apresenta as mensagens privadas que "
+"recebeu."
#: actions/invite.php:39
msgid "Invites have been disabled."
@@ -1704,9 +1710,9 @@ msgstr "Mensagem pessoal"
#: actions/invite.php:194
msgid "Optionally add a personal message to the invitation."
-msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite."
+msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite"
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Enviar"
@@ -1958,8 +1964,8 @@ msgid ""
"Search for notices on %%site.name%% by their contents. Separate search terms "
"by spaces; they must be 3 characters or more."
msgstr ""
-"Procure notas em %%site.name%% pelo seu conteúdo. Separe os termos de busca "
-"com espaços; precisam de ter 3 ou mais caracteres."
+"Procure notas neste site pesquisando o seu conteúdo. Os termos de busca "
+"devem ter 3 ou mais caracteres e ser separados por espaços."
#: actions/noticesearch.php:78
msgid "Text search"
@@ -2028,10 +2034,10 @@ msgstr "tipo de conteúdo "
#: actions/oembed.php:160
msgid "Only "
-msgstr ""
+msgstr "Apenas "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Formato de dados não suportado."
@@ -2061,15 +2067,15 @@ msgstr "Compactar URLs com"
#: actions/othersettings.php:117
msgid "Automatic shortening service to use."
-msgstr "Serviço de compactação automático a utilizar."
+msgstr "Serviço de compactação automática que será usado"
#: actions/othersettings.php:122
msgid "View profile designs"
-msgstr "Ver designs de perfis"
+msgstr "Ver o design dos perfis"
#: actions/othersettings.php:123
msgid "Show or hide profile designs."
-msgstr "Mostrar ou esconder designs de perfis"
+msgstr "Mostrar ou esconder o design dos perfis"
#: actions/othersettings.php:153
msgid "URL shortening service is too long (max 50 chars)."
@@ -2088,7 +2094,7 @@ msgstr "Caixa de saída de %s"
#: actions/outbox.php:116
msgid "This is your outbox, which lists private messages you have sent."
msgstr ""
-"Esta é a sua caixa de saída, que apresenta as mensagens privadas enviadas."
+"Esta é a sua caixa de saída, que apresenta as mensagens privadas que enviou."
#: actions/passwordsettings.php:58
msgid "Change password"
@@ -2258,8 +2264,8 @@ msgid ""
"Search for people on %%site.name%% by their name, location, or interests. "
"Separate the terms by spaces; they must be 3 characters or more."
msgstr ""
-"Procure pessoas em %%site.name%% pelo seu nome, localidade ou interesses. "
-"Separe os termos de busca com espaços; precisam de ter 3 ou mais caracteres."
+"Procure pessoas neste site pesquisando o nome, localidade ou interesses. Os "
+"termos de busca devem ter 3 ou mais caracteres e ser separados por espaços."
#: actions/peoplesearch.php:58
msgid "People search"
@@ -2316,7 +2322,8 @@ msgstr "Página de acolhimento"
#: actions/profilesettings.php:117 actions/register.php:454
msgid "URL of your homepage, blog, or profile on another site"
-msgstr "URL da uma página sua, blogue ou perfil noutro sítio na internet"
+msgstr ""
+"URL da sua página de acolhimento, blogue ou perfil noutro site na internet"
#: actions/profilesettings.php:122 actions/register.php:460
#, php-format
@@ -2708,7 +2715,7 @@ msgstr "Repita a palavra-chave acima. Obrigatório."
#: actions/register.php:437 actions/register.php:441
#: actions/siteadminpanel.php:283 lib/accountsettingsaction.php:120
msgid "Email"
-msgstr "Correio electrónico"
+msgstr "Correio"
#: actions/register.php:438 actions/register.php:442
msgid "Used only for updates, announcements, and password recovery"
@@ -2753,7 +2760,8 @@ msgid ""
"\n"
"Thanks for signing up and we hope you enjoy using this service."
msgstr ""
-"Parabéns, %s! Bem-vindo(a) ao %%%%site.name%%%%. A partir daqui, pode...\n"
+"Parabéns, %s! Bem-vindo(a) ao site %%%%site.name%%%%. A partir daqui, "
+"pode...\n"
"\n"
"* Visitar o [seu perfil](%s) e enviar a primeira mensagem.\n"
"* Adicionar um [endereço Jabber/GTalk](%%%%action.imsettings%%%%) de forma a "
@@ -2821,11 +2829,10 @@ msgid "Invalid profile URL (bad format)"
msgstr "URL de perfil inválido (formato incorrecto)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
msgstr ""
-"URL de perfil não é válida (nenhum documento Yadis ou nenhum XRDS inválido "
-"definidos)."
+"URL do perfil não é válida (não há um documento Yadis, ou foi definido um "
+"XRDS inválido)."
#: actions/remotesubscribe.php:176
msgid "That’s a local profile! Login to subscribe."
@@ -3041,7 +3048,7 @@ msgid ""
"their life and interests. [Join now](%%%%action.register%%%%) to become part "
"of this group and many more! ([Read more](%%%%doc.help%%%%))"
msgstr ""
-"**%s** é um grupo de utilizadores em %%%%site.name%%%%, um serviço de "
+"**%s** é um grupo de utilizadores no site %%%%site.name%%%%, um serviço de "
"[microblogues](http://en.wikipedia.org/wiki/Micro-blogging) baseado na "
"aplicação de Software Livre [StatusNet](http://status.net/). Os membros "
"deste grupo partilham mensagens curtas acerca das suas vidas e interesses. "
@@ -3056,7 +3063,7 @@ msgid ""
"[StatusNet](http://status.net/) tool. Its members share short messages about "
"their life and interests. "
msgstr ""
-"**%s** é um grupo de utilizadores em %%%%site.name%%%%, um serviço de "
+"**%s** é um grupo de utilizadores no site %%%%site.name%%%%, um serviço de "
"[microblogues](http://en.wikipedia.org/wiki/Micro-blogging) baseado na "
"aplicação de Software Livre [StatusNet](http://status.net/). Os membros "
"deste grupo partilham mensagens curtas acerca das suas vidas e interesses. "
@@ -3152,7 +3159,7 @@ msgid ""
"[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to "
"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
msgstr ""
-"**%s** tem uma conta em %%%%site.name%%%%, um serviço de [microblogues]"
+"**%s** tem uma conta no site %%%%site.name%%%%, um serviço de [microblogues]"
"(http://en.wikipedia.org/wiki/Micro-blogging) baseado na aplicação de "
"Software Livre [StatusNet](http://status.net/). [Registe-se agora](%%%%"
"action.register%%%%) para seguir as notas de **%s** e de muitos mais! "
@@ -3165,7 +3172,7 @@ msgid ""
"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
"[StatusNet](http://status.net/) tool. "
msgstr ""
-"**%s** tem uma conta em %%%%site.name%%%%, um serviço de [microblogues]"
+"**%s** tem uma conta no site %%%%site.name%%%%, um serviço de [microblogues]"
"(http://en.wikipedia.org/wiki/Micro-blogging) baseado na aplicação de "
"Software Livre [StatusNet](http://status.net/). "
@@ -3914,7 +3921,7 @@ msgstr "Tipo de imagem incorrecto para o avatar da URL ‘%s’."
#: actions/userbyid.php:70
msgid "No id."
-msgstr ""
+msgstr "Nenhuma identificação."
#: actions/userdesignsettings.php:76 lib/designsettings.php:65
msgid "Profile design"
@@ -4141,7 +4148,7 @@ msgstr "Ajudem-me!"
#: lib/action.php:464 lib/searchaction.php:127
msgid "Search"
-msgstr "Pesquisar"
+msgstr "Pesquisa"
#: lib/action.php:464
msgid "Search for people or text"
@@ -4181,7 +4188,7 @@ msgstr "Privacidade"
#: lib/action.php:737
msgid "Source"
-msgstr "Fonte"
+msgstr "Código"
#: lib/action.php:739
msgid "Contact"
@@ -4201,8 +4208,8 @@ msgid ""
"**%%site.name%%** is a microblogging service brought to you by [%%site."
"broughtby%%](%%site.broughtbyurl%%). "
msgstr ""
-"**%%site.name%%*** é um serviço de microblogues disponibilizado por [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
+"**%%site.name%%** é um serviço de microblogues disponibilizado por [%%site."
+"broughtby%%](%%site.broughtbyurl%%). "
#: lib/action.php:774
#, php-format
@@ -4226,7 +4233,7 @@ msgstr "Licença de conteúdos do site"
#: lib/action.php:799
msgid "All "
-msgstr ""
+msgstr "Tudo "
#: lib/action.php:804
msgid "license."
@@ -4404,7 +4411,7 @@ msgstr "Introduza o nome do utilizador para subscrever"
#: lib/command.php:502
#, php-format
msgid "Subscribed to %s"
-msgstr "Subscreveu o(a) %s"
+msgstr "Subscreveu %s"
#: lib/command.php:523
msgid "Specify the name of the user to unsubscribe from"
@@ -4413,7 +4420,7 @@ msgstr "Introduza o nome do utilizador para deixar de subscrever"
#: lib/command.php:530
#, php-format
msgid "Unsubscribed from %s"
-msgstr "Deixou de subscrever o(a) %s"
+msgstr "Deixou de subscrever %s"
#: lib/command.php:548 lib/command.php:571
msgid "Command not yet implemented."
@@ -4466,7 +4473,6 @@ msgstr[0] "Está no grupo:"
msgstr[1] "Está nos grupos:"
#: lib/command.php:652
-#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4520,7 +4526,6 @@ msgstr ""
"reply # - responder à nota com esta identificação\n"
"reply - responder à última nota do utilizador\n"
"join - juntar-se ao grupo\n"
-"login - Receber uma ligação para iniciar sessão na interface web\n"
"drop - afastar-se do grupo\n"
"stats - receber as suas estatísticas\n"
"stop - o mesmo que 'off'\n"
@@ -4582,11 +4587,7 @@ msgstr ""
"Pode carregar uma imagem de fundo pessoal. O tamanho máximo do ficheiro é "
"2MB."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Configurações inadequadas das cores por omissão: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Predefinições do design repostas"
@@ -5124,7 +5125,7 @@ msgstr "Enviar uma nota directa"
msgid "To"
msgstr "Para"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Caracteres disponíveis"
@@ -5137,11 +5138,11 @@ msgstr "Enviar uma nota"
msgid "What's up, %s?"
msgstr "Novidades, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Anexar"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Anexar um ficheiro"
@@ -5408,7 +5409,12 @@ msgstr "Não foi possível que outro o subscrevesse."
msgid "Not subscribed!"
msgstr "Não subscrito!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Não foi possível apagar a subscrição."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Não foi possível apagar a subscrição."
diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po
index 31068710e5..71e51e35b0 100644
--- a/locale/pt_BR/LC_MESSAGES/statusnet.po
+++ b/locale/pt_BR/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:38+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:02+0000\n"
"Language-Team: Brazilian Portuguese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pt-br\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "O usuário não tem perfil."
msgid "Could not save profile."
msgstr "Não foi possível salvar o perfil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Não foi possível atualizar o usuário."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Não foi possível bloquear o usuário."
@@ -254,16 +259,14 @@ msgid "No status found with that ID."
msgstr "Não foi encontrado nenhum status com esse ID."
#: actions/apifavoritecreate.php:119
-#, fuzzy
msgid "This status is already a favorite!"
-msgstr "Essa mensagem já é uma favorita!"
+msgstr "Esta mensagem já é favorita!"
#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
msgid "Could not create favorite."
msgstr "Não foi possível criar a favorita."
#: actions/apifavoritedestroy.php:122
-#, fuzzy
msgid "That status is not a favorite!"
msgstr "Essa mensagem não é uma favorita!"
@@ -833,51 +836,51 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Tamanho inválido."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Esta página não está disponível em um "
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Altere a sua senha"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Convidar"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Alterar"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Nova mensagem"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "Sair deste site"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Alterar imagem de plano de fundo."
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -886,58 +889,58 @@ msgstr ""
"Você pode enviar uma imagem de plano de fundo para o site. O tamanho máximo "
"do arquivo é %l$s"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Ligado"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Altere a sua senha"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Conteúdo"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Procurar"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Texto"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Lista"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Usar o padrão."
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -947,7 +950,7 @@ msgstr ""
msgid "Save"
msgstr "Salvar"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1395,20 +1398,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Não foi possível atualizar o usuário."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Não foi possível salvar suas configurações do Twitter!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "As preferências de sincronização foram salvas."
@@ -1734,7 +1737,7 @@ msgstr "Mensagem pessoal"
msgid "Optionally add a personal message to the invitation."
msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Enviar"
@@ -2069,8 +2072,8 @@ msgstr ""
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Formato de dados não suportado."
@@ -4611,11 +4614,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Você pode enviar seu avatar pessoal. O tamanho máximo do arquivo é %s"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5080,7 +5079,7 @@ msgstr "Enviar uma mensagem direta"
msgid "To"
msgstr "Para"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Caracteres disponíveis"
@@ -5093,11 +5092,11 @@ msgstr "Enviar uma mensagem"
msgid "What's up, %s?"
msgstr "E aí, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5378,7 +5377,12 @@ msgstr "Não foi possível fazer com que o outros o sigam."
msgid "Not subscribed!"
msgstr "Não é seguido!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Não foi possível excluir a assinatura."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Não foi possível excluir a assinatura."
diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po
index 25e8d8e7cb..9fe47e65d4 100644
--- a/locale/ru/LC_MESSAGES/statusnet.po
+++ b/locale/ru/LC_MESSAGES/statusnet.po
@@ -10,12 +10,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:42+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:05+0000\n"
"Language-Team: Russian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ru\n"
"X-Message-Group: out-statusnet\n"
@@ -190,7 +190,12 @@ msgstr "У пользователя нет профиля."
msgid "Could not save profile."
msgstr "Не удаётся сохранить профиль."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Вы не можете перестать следовать за собой!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Неудача при блокировке пользователя."
@@ -829,45 +834,45 @@ msgstr "Оформление"
msgid "Design settings for this StatusNet site."
msgstr "Настройки оформления для этого сайта StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "Неверный URL логотипа."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Тема не доступна: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Изменить логотип"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Логотип сайта"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Изменить тему"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Тема сайта"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Тема для сайта."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Изменение фонового изображения"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Фон"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -876,55 +881,55 @@ msgstr ""
"Вы можете загрузить фоновое изображение для сайта. Максимальный размер файла "
"составляет %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Включить"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Отключить"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "Включить или отключить показ фонового изображения."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Растянуть фоновое изображение"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Изменение цветовой гаммы"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Содержание"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Боковая панель"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Текст"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Ссылки"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "Использовать значения по умолчанию"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Восстановить оформление по умолчанию"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Восстановить значения по умолчанию"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -934,7 +939,7 @@ msgstr "Восстановить значения по умолчанию"
msgid "Save"
msgstr "Сохранить"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Сохранить оформление"
@@ -1381,18 +1386,18 @@ msgstr ""
"Настройте внешний вид группы, установив фоновое изображение и цветовую гамму "
"на ваш выбор."
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Не удаётся обновить ваше оформление."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Не удаётся сохранить ваши настройки оформления!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Настройки оформления сохранены."
@@ -1719,7 +1724,7 @@ msgstr "Личное сообщение"
msgid "Optionally add a personal message to the invitation."
msgstr "Можно добавить к приглашению личное сообщение."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "ОК"
@@ -2043,8 +2048,8 @@ msgstr "тип содержимого "
msgid "Only "
msgstr "Только "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Неподдерживаемый формат данных."
@@ -2830,11 +2835,8 @@ msgid "Invalid profile URL (bad format)"
msgstr "Неверный URL профиля (плохой формат)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-"Неверный URL профиля (не YADIS-документ либо не указан или указан неверный "
-"XRDS)."
+msgstr "Неправильный URL-профиль (нет YADIS-документа, либо неверный XRDS)."
#: actions/remotesubscribe.php:176
msgid "That’s a local profile! Login to subscribe."
@@ -4484,7 +4486,6 @@ msgstr[1] "Вы являетесь участником следующих гр
msgstr[2] "Вы являетесь участником следующих групп:"
#: lib/command.php:652
-#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4538,7 +4539,6 @@ msgstr ""
"reply # — ответить на запись с заданным id\n"
"reply — ответить на последнюю запись пользователя\n"
"join — присоединиться к группе\n"
-"login — получить ссылку на вход в веб-интерфейс\n"
"drop — покинуть группу\n"
"stats — получить свою статистику\n"
"stop — то же, что и 'off'\n"
@@ -4600,11 +4600,7 @@ msgstr ""
"Вы можете загрузить собственное фоновое изображение. Максимальный размер "
"файла составляет 2МБ."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Плохие настройки цвета по умолчанию: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Оформление по умолчанию восстановлено."
@@ -5141,7 +5137,7 @@ msgstr "Послать прямую запись"
msgid "To"
msgstr "Для"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "6 или больше знаков"
@@ -5154,11 +5150,11 @@ msgstr "Послать запись"
msgid "What's up, %s?"
msgstr "Что нового, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Прикрепить"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Прикрепить файл"
@@ -5425,7 +5421,12 @@ msgstr "Не удаётся подписать других на вашу лен
msgid "Not subscribed!"
msgstr "Не подписаны!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Не удаётся удалить подписку."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Не удаётся удалить подписку."
diff --git a/locale/statusnet.po b/locale/statusnet.po
index 0ab702ae5a..ea65870d57 100644
--- a/locale/statusnet.po
+++ b/locale/statusnet.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -176,7 +176,11 @@ msgstr ""
msgid "Could not save profile."
msgstr ""
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+msgid "You cannot block yourself!"
+msgstr ""
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -800,100 +804,100 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr ""
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr ""
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr ""
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr ""
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr ""
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr ""
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr ""
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr ""
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr ""
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr ""
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr ""
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -903,7 +907,7 @@ msgstr ""
msgid "Save"
msgstr ""
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1325,18 +1329,18 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr ""
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr ""
@@ -1632,7 +1636,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr ""
@@ -1917,8 +1921,8 @@ msgstr ""
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4285,11 +4289,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr ""
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4733,7 +4733,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr ""
@@ -4746,11 +4746,11 @@ msgstr ""
msgid "What's up, %s?"
msgstr ""
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5017,7 +5017,11 @@ msgstr ""
msgid "Not subscribed!"
msgstr ""
-#: lib/subs.php:140
+#: lib/subs.php:133
+msgid "Couldn't delete self-subscription."
+msgstr ""
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr ""
diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po
index 8421ccdb03..a059ce87b5 100644
--- a/locale/sv/LC_MESSAGES/statusnet.po
+++ b/locale/sv/LC_MESSAGES/statusnet.po
@@ -1,5 +1,6 @@
# Translation of StatusNet to Swedish
#
+# Author@translatewiki.net: Jamminjohn
# Author@translatewiki.net: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
@@ -8,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:46+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:08+0000\n"
"Language-Team: Swedish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: sv\n"
"X-Message-Group: out-statusnet\n"
@@ -21,9 +22,8 @@ msgstr ""
#: actions/all.php:63 actions/public.php:97 actions/replies.php:92
#: actions/showfavorites.php:137 actions/tag.php:51
-#, fuzzy
msgid "No such page"
-msgstr "Inget sådant meddelande."
+msgstr "Ingen sådan sida"
#: actions/all.php:74 actions/allrss.php:68
#: actions/apiaccountupdatedeliverydevice.php:113
@@ -48,39 +48,39 @@ msgstr "Inget sådant meddelande."
#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77
#: lib/subs.php:34 lib/subs.php:116
msgid "No such user."
-msgstr "Ingen sådan användare"
+msgstr "Ingen sådan användare."
#: actions/all.php:84
-#, fuzzy, php-format
+#, php-format
msgid "%s and friends, page %d"
-msgstr "%s med vänner"
+msgstr "%s och vänner, sida %d"
#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115
#: actions/apitimelinefriends.php:114 lib/personalgroupnav.php:100
#, php-format
msgid "%s and friends"
-msgstr "%s med vänner"
+msgstr "%s och vänner"
#: actions/all.php:99
-#, fuzzy, php-format
+#, php-format
msgid "Feed for friends of %s (RSS 1.0)"
-msgstr "Flöden för $s vänner"
+msgstr "Flöden för %ss vänner (RSS 1.0)"
#: actions/all.php:107
-#, fuzzy, php-format
+#, php-format
msgid "Feed for friends of %s (RSS 2.0)"
-msgstr "Flöden för $s vänner"
+msgstr "Flöden för %ss vänner (RSS 2.0)"
#: actions/all.php:115
-#, fuzzy, php-format
+#, php-format
msgid "Feed for friends of %s (Atom)"
-msgstr "Flöden för $s vänner"
+msgstr "Flöden för %ss vänner (Atom)"
#: actions/all.php:127
#, php-format
msgid ""
"This is the timeline for %s and friends but no one has posted anything yet."
-msgstr ""
+msgstr "Detta är tidslinjen för %s och vänner men ingen har postat något än."
#: actions/all.php:132
#, php-format
@@ -88,6 +88,8 @@ msgid ""
"Try subscribing to more people, [join a group](%%action.groups%%) or post "
"something yourself."
msgstr ""
+"Prova att prenumerera på fler personer, [gå med i en grupp](%%action.groups%"
+"%) eller posta något själv."
#: actions/all.php:134
#, php-format
@@ -95,6 +97,9 @@ msgid ""
"You can try to [nudge %s](../%s) from his profile or [post something to his "
"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)."
msgstr ""
+"Du kan prova att [knuffa %s](../%s) från dennes profil eller [posta "
+"någonting för hans eller hennes uppmärksamhet](%%%%action.newnotice%%%%?"
+"status_textarea=%s)."
#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202
#, php-format
@@ -102,11 +107,12 @@ msgid ""
"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
"post a notice to his or her attention."
msgstr ""
+"Varför inte [registrera ett konto](%%%%action.register%%%%) och sedan knuffa "
+"%s eller posta en notis för hans eller hennes uppmärksamhet."
#: actions/all.php:165
-#, fuzzy
msgid "You and friends"
-msgstr "%s med vänner"
+msgstr "Du och vänner"
#: actions/allrss.php:119 actions/apitimelinefriends.php:121
#, php-format
@@ -118,9 +124,8 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!"
#: actions/apiaccountupdateprofilebackgroundimage.php:94
#: actions/apiaccountupdateprofilecolors.php:118
#: actions/apiaccountupdateprofile.php:97
-#, fuzzy
msgid "API method not found."
-msgstr "API-metoden hittades inte!"
+msgstr "API-metoden hittades inte"
#: actions/apiaccountupdatedeliverydevice.php:85
#: actions/apiaccountupdateprofilebackgroundimage.php:86
@@ -139,10 +144,9 @@ msgstr "Denna metod kräver en POST."
msgid ""
"You must specify a parameter named 'device' with a value of one of: sms, im, "
"none"
-msgstr ""
+msgstr "Du måste ange ett värdet på parametern 'device': sms, im, none"
#: actions/apiaccountupdatedeliverydevice.php:132
-#, fuzzy
msgid "Could not update user."
msgstr "Kunde inte uppdatera användare."
@@ -156,20 +160,20 @@ msgid ""
"The server was unable to handle that much POST data (%s bytes) due to its "
"current configuration."
msgstr ""
+"Servern kunde inte hantera så mycket POST-data (%s byte) på grund av sin "
+"nuvarande konfiguration."
#: actions/apiaccountupdateprofilebackgroundimage.php:136
#: actions/apiaccountupdateprofilebackgroundimage.php:146
#: actions/apiaccountupdateprofilecolors.php:164
#: actions/apiaccountupdateprofilecolors.php:174
-#, fuzzy
msgid "Unable to save your design settings."
-msgstr "Kunde inte spara dina Twitter inställningar!"
+msgstr "Kunde inte spara dina utseendeinställningar."
#: actions/apiaccountupdateprofilebackgroundimage.php:187
#: actions/apiaccountupdateprofilecolors.php:142
-#, fuzzy
msgid "Could not update your design."
-msgstr "Kunde inte uppdatera användare."
+msgstr "Kunde inte uppdatera din profils utseende."
#: actions/apiaccountupdateprofilebackgroundimage.php:194
#: actions/apiaccountupdateprofilecolors.php:185
@@ -181,45 +185,48 @@ msgid "User has no profile."
msgstr "Användaren har ingen profil."
#: actions/apiaccountupdateprofile.php:147
-#, fuzzy
msgid "Could not save profile."
msgstr "Kunde inte spara profil."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Du kan inte sluta följa dig själv!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
-msgstr ""
+msgstr "Blockering av användare misslyckades."
#: actions/apiblockdestroy.php:107
msgid "Unblock user failed."
-msgstr ""
+msgstr "Hävning av blockering av användare misslyckades."
#: actions/apidirectmessagenew.php:126
msgid "No message text!"
-msgstr "Ingen meddelande text!"
+msgstr "Ingen meddelandetext!"
#: actions/apidirectmessagenew.php:135 actions/newmessage.php:150
-#, fuzzy, php-format
+#, php-format
msgid "That's too long. Max message size is %d chars."
-msgstr "Det är för långt. Max är 140 tecken. "
+msgstr "Detta är för långt. Maximal meddelandestorlek är %d tecken."
#: actions/apidirectmessagenew.php:146
msgid "Recipient user not found."
-msgstr "Mottagaren kunde inte hittas."
+msgstr "Mottagare hittades inte."
#: actions/apidirectmessagenew.php:150
msgid "Can't send direct messages to users who aren't your friend."
-msgstr ""
-"Kan inte skicka direktmeddelanden till användare som inte är dina vänner."
+msgstr "Kan inte skicka direktmeddelanden till användare som inte är din vän."
#: actions/apidirectmessage.php:89
-#, fuzzy, php-format
+#, php-format
msgid "Direct messages from %s"
-msgstr "Direktmeddelande till %s"
+msgstr "Direktmeddelande från %s"
#: actions/apidirectmessage.php:93
#, php-format
msgid "All the direct messages sent from %s"
-msgstr "Alla direktmeddelanden skickade ifrån %s"
+msgstr "Alla direktmeddelanden skickade från %s"
#: actions/apidirectmessage.php:101
#, php-format
@@ -251,57 +258,52 @@ msgstr "API-metoden hittades inte!"
#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:109
#: actions/apistatusesdestroy.php:113
msgid "No status found with that ID."
-msgstr "Ingen status hittad med det ID"
+msgstr "Ingen status hittad med det ID:t."
#: actions/apifavoritecreate.php:119
-#, fuzzy
msgid "This status is already a favorite!"
-msgstr "Detta inlägg är redan en favorit!"
+msgstr "Denna status är redan en favorit!"
#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
msgid "Could not create favorite."
msgstr "Kunde inte skapa favorit."
#: actions/apifavoritedestroy.php:122
-#, fuzzy
msgid "That status is not a favorite!"
-msgstr "Det inlägget är ingen favorit!"
+msgstr "Denna status är inte en favorit!"
#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
msgid "Could not delete favorite."
-msgstr "Kunde inte tabort favoriten."
+msgstr "Kunde inte ta bort favoriten."
#: actions/apifriendshipscreate.php:109
msgid "Could not follow user: User not found."
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte följa användare: användare hittades inte."
#: actions/apifriendshipscreate.php:118
#, php-format
msgid "Could not follow user: %s is already on your list."
-msgstr "Kunde inte följa användaren: %s finns redan i din lista."
+msgstr "Kunde inte följa användare: %s finns redan i din lista."
#: actions/apifriendshipsdestroy.php:109
-#, fuzzy
msgid "Could not unfollow user: User not found."
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte sluta följa användaren: användaren hittades inte."
#: actions/apifriendshipsdestroy.php:120
msgid "You cannot unfollow yourself!"
-msgstr ""
+msgstr "Du kan inte sluta följa dig själv!"
#: actions/apifriendshipsexists.php:94
msgid "Two user ids or screen_names must be supplied."
-msgstr "Två användarid eller namn måste läggas till."
+msgstr "Två användar-ID:n eller screen_names måste tillhandahållas."
#: actions/apifriendshipsshow.php:135
-#, fuzzy
msgid "Could not determine source user."
-msgstr "Kunde inte ta emot favoritinläggen."
+msgstr ""
#: actions/apifriendshipsshow.php:143
-#, fuzzy
msgid "Could not find target user."
-msgstr "Kunde inte få fram status."
+msgstr ""
#: actions/apigroupcreate.php:164 actions/editgroup.php:182
#: actions/newgroup.php:126 actions/profilesettings.php:208
@@ -314,133 +316,129 @@ msgstr ""
#: actions/newgroup.php:130 actions/profilesettings.php:231
#: actions/register.php:208
msgid "Nickname already in use. Try another one."
-msgstr "Användarnamnet används redan, försök med ett annat."
+msgstr "Smeknamnet används redan. Försök med ett annat."
#: actions/apigroupcreate.php:180 actions/editgroup.php:189
#: actions/newgroup.php:133 actions/profilesettings.php:211
#: actions/register.php:210
msgid "Not a valid nickname."
-msgstr "Det är inget giltigt användarnamn."
+msgstr "Inte ett giltigt smeknamn."
#: actions/apigroupcreate.php:196 actions/editgroup.php:195
#: actions/newgroup.php:139 actions/profilesettings.php:215
#: actions/register.php:217
msgid "Homepage is not a valid URL."
-msgstr "Hemsidan har ingen giltig URL"
+msgstr "Hemsida är inte en giltig URL."
#: actions/apigroupcreate.php:205 actions/editgroup.php:198
#: actions/newgroup.php:142 actions/profilesettings.php:218
#: actions/register.php:220
msgid "Full name is too long (max 255 chars)."
-msgstr "Ditt namn är för långt (max 255 tecken)."
+msgstr "Fullständigt namn är för långt (max 255 tecken)."
#: actions/apigroupcreate.php:213
-#, fuzzy, php-format
+#, php-format
msgid "Description is too long (max %d chars)."
-msgstr "Biografin är för lång (max 140 tecken)"
+msgstr "Beskrivning är för lång (max 140 tecken)"
#: actions/apigroupcreate.php:224 actions/editgroup.php:204
#: actions/newgroup.php:148 actions/profilesettings.php:225
#: actions/register.php:227
msgid "Location is too long (max 255 chars)."
-msgstr "Platse är för lång (max 255 tecken)."
+msgstr "Beskrivning av plats är för lång (max 255 tecken)."
#: actions/apigroupcreate.php:243 actions/editgroup.php:215
#: actions/newgroup.php:159
#, php-format
msgid "Too many aliases! Maximum %d."
-msgstr ""
+msgstr "För många alias! Maximum %d."
#: actions/apigroupcreate.php:264 actions/editgroup.php:224
#: actions/newgroup.php:168
-#, fuzzy, php-format
+#, php-format
msgid "Invalid alias: \"%s\""
-msgstr "Ogiltig hemsideadress '%s'"
+msgstr "Ogiltigt alias: \"%s\""
#: actions/apigroupcreate.php:273 actions/editgroup.php:228
#: actions/newgroup.php:172
-#, fuzzy, php-format
+#, php-format
msgid "Alias \"%s\" already in use. Try another one."
-msgstr "Användarnamnet används redan, försök med ett annat."
+msgstr "Alias \"%s\" används redan. Försök med ett annat."
#: actions/apigroupcreate.php:286 actions/editgroup.php:234
#: actions/newgroup.php:178
msgid "Alias can't be the same as nickname."
-msgstr ""
+msgstr "Alias kan inte vara samma som smeknamn."
#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104
#: actions/apigroupleave.php:104 actions/apigroupmembership.php:91
#: actions/apigroupshow.php:90 actions/apitimelinegroup.php:91
-#, fuzzy
msgid "Group not found!"
-msgstr "API-metoden hittades inte!"
+msgstr "Grupp hittades inte!"
#: actions/apigroupjoin.php:110
-#, fuzzy
msgid "You are already a member of that group."
-msgstr "Du prenumererar redan på dessa användare:"
+msgstr "Du är redan en medlem i denna grupp."
#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221
msgid "You have been blocked from that group by the admin."
-msgstr ""
+msgstr "Du har blivit blockerad från denna grupp av administratören. "
#: actions/apigroupjoin.php:138
-#, fuzzy, php-format
+#, php-format
msgid "Could not join user %s to group %s."
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte ansluta användare % till grupp %s."
#: actions/apigroupleave.php:114
-#, fuzzy
msgid "You are not a member of this group."
-msgstr "Du skickade inte oss den profilen"
+msgstr "Du är inte en medlem i denna grupp."
#: actions/apigroupleave.php:124
-#, fuzzy, php-format
+#, php-format
msgid "Could not remove user %s to group %s."
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte ta bort användare %s från grupp %s."
#: actions/apigrouplistall.php:90 actions/usergroups.php:62
#, php-format
msgid "%s groups"
-msgstr ""
+msgstr "%s grupper"
#: actions/apigrouplistall.php:94
-#, fuzzy, php-format
+#, php-format
msgid "groups on %s"
-msgstr "Sök personer på denna sida"
+msgstr "grupper på %s"
#: actions/apigrouplist.php:95
-#, fuzzy, php-format
+#, php-format
msgid "%s's groups"
-msgstr "%s / Favoriter från %s"
+msgstr "%ss grupper"
#: actions/apigrouplist.php:103
-#, fuzzy, php-format
+#, php-format
msgid "Groups %s is a member of on %s."
-msgstr "Du skickade inte oss den profilen"
+msgstr "Grupper %s är en medlem i på %s."
#: actions/apistatusesdestroy.php:107
msgid "This method requires a POST or DELETE."
-msgstr "Denna metod kräver antingen skicka eller tabort."
+msgstr "Denna metod kräver en POST eller en DELETE."
#: actions/apistatusesdestroy.php:130
msgid "You may not delete another user's status."
-msgstr "Du kan inte tabort nån annan användares status."
+msgstr "Du kan inte ta bort en annan användares status."
#: actions/apistatusesshow.php:138
-#, fuzzy
msgid "Status deleted."
-msgstr "Användarbilden uppdaterad."
+msgstr "Status borttagen."
#: actions/apistatusesshow.php:144
msgid "No status with that ID found."
-msgstr "Ingen status med det ID hittades."
+msgstr "Ingen status med det ID:t hittades."
#: actions/apistatusesupdate.php:157 actions/newnotice.php:155
#: scripts/maildaemon.php:71
-#, fuzzy, php-format
+#, php-format
msgid "That's too long. Max notice size is %d chars."
-msgstr "För långt. Maximalt 140 tecken"
+msgstr "Det är för långt. Maximal notisstorlek är %d tecken."
#: actions/apistatusesupdate.php:198
msgid "Not found"
@@ -449,12 +447,11 @@ msgstr "Hittades inte"
#: actions/apistatusesupdate.php:227 actions/newnotice.php:183
#, php-format
msgid "Max notice size is %d chars, including attachment URL."
-msgstr ""
+msgstr "Maximal notisstorlek är %d tecken, inklusive bilage-URL."
#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261
-#, fuzzy
msgid "Unsupported format."
-msgstr "Bildfilens format stödjs inte."
+msgstr "Format som inte stödjs."
#: actions/apitimelinefavorites.php:107
#, php-format
@@ -464,7 +461,7 @@ msgstr "%s / Favoriter från %s"
#: actions/apitimelinefavorites.php:119
#, php-format
msgid "%s updates favorited by %s / %s."
-msgstr "%s uppdaterade favoriter av %s / %s."
+msgstr "%s uppdateringar markerade som favorit av %s / %s."
#: actions/apitimelinegroup.php:108 actions/apitimelineuser.php:117
#: actions/grouprss.php:131 actions/userrss.php:90
@@ -479,14 +476,14 @@ msgid "Updates from %1$s on %2$s!"
msgstr "Uppdateringar från %1$s på %2$s!"
#: actions/apitimelinementions.php:116
-#, fuzzy, php-format
+#, php-format
msgid "%1$s / Updates mentioning %2$s"
-msgstr "%1$s / Uppdateringar med svar till %2$s"
+msgstr "%1$s / Uppdateringar som nämner %2$s"
#: actions/apitimelinementions.php:126
#, php-format
msgid "%1$s updates that reply to updates from %2$s / %3$s."
-msgstr "%1$s uppdateringar med svar till uppdatering från %2$s / %3$s."
+msgstr "%1$s uppdateringar med svar på uppdatering från %2$s / %3$s."
#: actions/apitimelinepublic.php:106 actions/publicrss.php:103
#, php-format
@@ -496,49 +493,48 @@ msgstr "%s publika tidslinje"
#: actions/apitimelinepublic.php:110 actions/publicrss.php:105
#, php-format
msgid "%s updates from everyone!"
-msgstr "%s uppdateringar ifrån allihop!"
+msgstr "%s uppdateringar från alla!"
#: actions/apitimelinetag.php:101 actions/tag.php:66
#, php-format
msgid "Notices tagged with %s"
-msgstr "Inlägg taggade med %s"
+msgstr "Notiser taggade med %s"
#: actions/apitimelinetag.php:107 actions/tagrss.php:64
-#, fuzzy, php-format
+#, php-format
msgid "Updates tagged with %1$s on %2$s!"
-msgstr "Uppdateringar från %1$s på %2$s!"
+msgstr "Uppdateringar taggade med %1$s på %2$s!"
#: actions/apiusershow.php:96
-#, fuzzy
msgid "Not found."
-msgstr "Hittades inte"
+msgstr "Hittades inte."
#: actions/attachment.php:73
-#, fuzzy
msgid "No such attachment."
-msgstr "Inget sådant dokument."
+msgstr "Ingen sådan bilaga."
#: actions/avatarbynickname.php:59 actions/leavegroup.php:76
msgid "No nickname."
-msgstr "Inget användarnamn"
+msgstr "Inget smeknamn."
#: actions/avatarbynickname.php:64
msgid "No size."
-msgstr "Ingen storlek"
+msgstr "Ingen storlek."
#: actions/avatarbynickname.php:69
msgid "Invalid size."
-msgstr "Felaktig storlek"
+msgstr "Ogiltig storlek."
#: actions/avatarsettings.php:67 actions/showgroup.php:221
#: lib/accountsettingsaction.php:112
msgid "Avatar"
-msgstr "Användarbild"
+msgstr "Avatar"
#: actions/avatarsettings.php:78
-#, fuzzy, php-format
+#, php-format
msgid "You can upload your personal avatar. The maximum file size is %s."
-msgstr "Du kan uppdatera din personliga profil här"
+msgstr ""
+"Du kan ladda upp din personliga avatar. Den maximala filstorleken är %s."
#: actions/avatarsettings.php:106 actions/avatarsettings.php:182
#: actions/grouplogo.php:178 actions/remotesubscribe.php:191
@@ -548,23 +544,21 @@ msgstr "Användare utan matchande profil"
#: actions/avatarsettings.php:119 actions/avatarsettings.php:194
#: actions/grouplogo.php:251
-#, fuzzy
msgid "Avatar settings"
-msgstr "Twitter inställningar"
+msgstr "Avatarinställningar"
#: actions/avatarsettings.php:126 actions/avatarsettings.php:202
#: actions/grouplogo.php:199 actions/grouplogo.php:259
msgid "Original"
-msgstr ""
+msgstr "Orginal"
#: actions/avatarsettings.php:141 actions/avatarsettings.php:214
#: actions/grouplogo.php:210 actions/grouplogo.php:271
msgid "Preview"
-msgstr ""
+msgstr "Förhandsgranska"
#: actions/avatarsettings.php:148 lib/deleteuserform.php:66
#: lib/noticelist.php:550
-#, fuzzy
msgid "Delete"
msgstr "Ta bort"
@@ -574,7 +568,7 @@ msgstr "Ladda upp"
#: actions/avatarsettings.php:228 actions/grouplogo.php:286
msgid "Crop"
-msgstr ""
+msgstr "Beskär"
#: actions/avatarsettings.php:265 actions/disfavor.php:74
#: actions/emailsettings.php:238 actions/favor.php:75
@@ -589,89 +583,83 @@ msgstr ""
#: actions/tagother.php:166 actions/unsubscribe.php:69
#: actions/userauthorization.php:52 lib/designsettings.php:294
msgid "There was a problem with your session token. Try again, please."
-msgstr "Det var något problem med din session. Försök igen, tack."
+msgstr "Det var ett problem med din sessions-token. Var vänlig försök igen."
#: actions/avatarsettings.php:277 actions/designadminpanel.php:103
#: actions/emailsettings.php:256 actions/grouplogo.php:319
#: actions/imsettings.php:220 actions/recoverpassword.php:44
#: actions/smssettings.php:248 lib/designsettings.php:304
msgid "Unexpected form submission."
-msgstr "Oväntat utskick av formuläret."
+msgstr "Oväntat inskick av formulär."
#: actions/avatarsettings.php:322
msgid "Pick a square area of the image to be your avatar"
-msgstr ""
+msgstr "Välj ett kvadratiskt område i bilden som din avatar"
#: actions/avatarsettings.php:337 actions/grouplogo.php:377
msgid "Lost our file data."
-msgstr ""
+msgstr "Förlorade vår fildata."
#: actions/avatarsettings.php:360
msgid "Avatar updated."
-msgstr "Användarbilden uppdaterad."
+msgstr "Avatar uppdaterad."
#: actions/avatarsettings.php:363
msgid "Failed updating avatar."
-msgstr "Uppdatering av profilbild misslyckades."
+msgstr "Misslyckades uppdatera avatar."
#: actions/avatarsettings.php:387
-#, fuzzy
msgid "Avatar deleted."
-msgstr "Användarbilden uppdaterad."
+msgstr "Avatar borttagen."
#: actions/blockedfromgroup.php:73 actions/editgroup.php:84
#: actions/groupdesignsettings.php:84 actions/grouplogo.php:86
#: actions/groupmembers.php:76 actions/grouprss.php:91
#: actions/joingroup.php:76 actions/showgroup.php:121
-#, fuzzy
msgid "No nickname"
-msgstr "Inget användarnamn"
+msgstr "Inget smeknamn"
#: actions/blockedfromgroup.php:80 actions/editgroup.php:96
#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97
#: actions/grouplogo.php:99 actions/groupmembers.php:83
#: actions/grouprss.php:98 actions/joingroup.php:83 actions/showgroup.php:137
-#, fuzzy
msgid "No such group"
-msgstr "Ingen sådan användare"
+msgstr "Ingen sådan grupp"
#: actions/blockedfromgroup.php:90
-#, fuzzy, php-format
+#, php-format
msgid "%s blocked profiles"
-msgstr "Användaren har ingen profil."
+msgstr "%s blockerade profiler"
#: actions/blockedfromgroup.php:93
-#, fuzzy, php-format
+#, php-format
msgid "%s blocked profiles, page %d"
-msgstr "%s med vänner"
+msgstr "%s blockerade profiler, sida %d"
#: actions/blockedfromgroup.php:108
msgid "A list of the users blocked from joining this group."
msgstr ""
+"En lista med de användare som blockerats från att gå med i denna grupp."
#: actions/blockedfromgroup.php:281
-#, fuzzy
msgid "Unblock user from group"
-msgstr "Ingen sådan användare"
+msgstr "Häv blockering av användare från grupp"
#: actions/blockedfromgroup.php:313 lib/unblockform.php:69
msgid "Unblock"
-msgstr ""
+msgstr "Häv blockering"
#: actions/blockedfromgroup.php:313 lib/unblockform.php:80
-#, fuzzy
msgid "Unblock this user"
-msgstr "Ingen sådan användare"
+msgstr "Häv blockering av denna användare"
#: actions/block.php:69
-#, fuzzy
msgid "You already blocked that user."
-msgstr "Du prenumererar redan på dessa användare:"
+msgstr "Du har redan blockerat denna användare."
#: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160
-#, fuzzy
msgid "Block user"
-msgstr "Ingen sådan användare"
+msgstr "Blockera användare"
#: actions/block.php:130
msgid ""
@@ -679,6 +667,9 @@ msgid ""
"unsubscribed from you, unable to subscribe to you in the future, and you "
"will not be notified of any @-replies from them."
msgstr ""
+"Är du säker på att du vill blockera denna användare? Efteråt kommer deras "
+"prenumeration på dig tas bort, de kommer inte kunna prenumerera på dig i "
+"framtiden och du kommer inte bli underrättad om några @-svar från dem."
#: actions/block.php:143 actions/deletenotice.php:145
#: actions/deleteuser.php:147 actions/groupblock.php:178
@@ -686,9 +677,8 @@ msgid "No"
msgstr "Nej"
#: actions/block.php:143 actions/deleteuser.php:147
-#, fuzzy
msgid "Do not block this user"
-msgstr "Ingen sådan användare"
+msgstr "Blockera inte denna användare"
#: actions/block.php:144 actions/deletenotice.php:146
#: actions/deleteuser.php:148 actions/groupblock.php:179
@@ -696,17 +686,16 @@ msgid "Yes"
msgstr "Ja"
#: actions/block.php:144 actions/groupmembers.php:346 lib/blockform.php:80
-#, fuzzy
msgid "Block this user"
-msgstr "Ingen sådan användare"
+msgstr "Blockera denna användare"
#: actions/block.php:162
msgid "Failed to save block information."
-msgstr ""
+msgstr "Misslyckades att spara blockeringsinformation."
#: actions/bookmarklet.php:50
msgid "Post to "
-msgstr ""
+msgstr "Posta till "
#: actions/confirmaddress.php:75
msgid "No confirmation code."
@@ -714,20 +703,20 @@ msgstr "Ingen bekräftelsekod."
#: actions/confirmaddress.php:80
msgid "Confirmation code not found."
-msgstr "Bekräftelsekoden kunde inte hittas."
+msgstr "Bekräftelsekod kunde inte hittas."
#: actions/confirmaddress.php:85
msgid "That confirmation code is not for you!"
-msgstr "Den bekräftelsekoden är inte för dig!"
+msgstr "Denna bekräftelsekod är inte för dig!"
#: actions/confirmaddress.php:90
#, php-format
msgid "Unrecognized address type %s"
-msgstr "Adresstypen känns inte igen %s"
+msgstr "Adresstypen %s känns inte igen"
#: actions/confirmaddress.php:94
msgid "That address has already been confirmed."
-msgstr "Den adressen har redan blivit bekräftad en gång."
+msgstr "Denna adress har redan blivit bekräftad."
#: actions/confirmaddress.php:114 actions/emailsettings.php:296
#: actions/emailsettings.php:427 actions/imsettings.php:258
@@ -740,7 +729,7 @@ msgstr "Kunde inte uppdatera användare."
#: actions/confirmaddress.php:126 actions/emailsettings.php:391
#: actions/imsettings.php:363 actions/smssettings.php:382
msgid "Couldn't delete email confirmation."
-msgstr "Kunde inte radera epost bekräftelsen."
+msgstr "Kunde inte ta bort e-postbekräftelse."
#: actions/confirmaddress.php:144
msgid "Confirm Address"
@@ -752,18 +741,17 @@ msgid "The address \"%s\" has been confirmed for your account."
msgstr "Adressen \"%s\" har blivit bekräftad för ditt konto."
#: actions/conversation.php:99
-#, fuzzy
msgid "Conversation"
-msgstr "Bekräftelsekod"
+msgstr "Konversationer"
#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
#: lib/profileaction.php:216 lib/searchgroupnav.php:82
msgid "Notices"
-msgstr "Inlägg"
+msgstr "Notiser"
#: actions/deletenotice.php:52 actions/shownotice.php:92
msgid "No such notice."
-msgstr "Inget sådant inlägg."
+msgstr "Ingen sådan notis."
#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62
#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69
@@ -776,178 +764,165 @@ msgstr "Inte inloggad."
#: actions/deletenotice.php:71
msgid "Can't delete this notice."
-msgstr "Kan inte ta bort detta inlägg."
+msgstr "Kan inte ta bort denna notis."
#: actions/deletenotice.php:103
-#, fuzzy
msgid ""
"You are about to permanently delete a notice. Once this is done, it cannot "
"be undone."
msgstr ""
-"Du håller på att tabort inlägget permanent. När det väl är gjort kan du inte "
-"ångra dig."
+"Du håller på att ta bort en notis permanent. När det väl är gjort kan du "
+"inte ångra dig."
#: actions/deletenotice.php:109 actions/deletenotice.php:141
msgid "Delete notice"
-msgstr "Tabort inlägg"
+msgstr "Ta bort notis"
#: actions/deletenotice.php:144
msgid "Are you sure you want to delete this notice?"
-msgstr "Är du säker på att du vill tabort detta inlägg?"
+msgstr "Är du säker på att du vill ta bort denna notis?"
#: actions/deletenotice.php:145
-#, fuzzy
msgid "Do not delete this notice"
-msgstr "Kan inte ta bort detta inlägg."
+msgstr "Ta inte bort denna notis"
#: actions/deletenotice.php:146 lib/noticelist.php:550
-#, fuzzy
msgid "Delete this notice"
-msgstr "Ta bort inlägg"
+msgstr "Ta bort denna notis"
#: actions/deletenotice.php:157
-#, fuzzy
msgid "There was a problem with your session token. Try again, please."
-msgstr "Det var något problem med din session. Försök igen, tack."
+msgstr "Det var något problem med din sessions-token. Var vänlig försök igen."
#: actions/deleteuser.php:67
-#, fuzzy
msgid "You cannot delete users."
-msgstr "Kunde inte uppdatera användare."
+msgstr "Du kan inte ta bort användare."
#: actions/deleteuser.php:74
-#, fuzzy
msgid "You can only delete local users."
-msgstr "Du kan inte tabort nån annan användares status."
+msgstr "Du kan bara ta bort lokala användare."
#: actions/deleteuser.php:110 actions/deleteuser.php:133
-#, fuzzy
msgid "Delete user"
-msgstr "Ta bort"
+msgstr "Ta bort användare"
#: actions/deleteuser.php:135
msgid ""
"Are you sure you want to delete this user? This will clear all data about "
"the user from the database, without a backup."
msgstr ""
+"Är du säker på att du vill ta bort denna användare? Det kommer rensa all "
+"data om användaren från databasen, utan en säkerhetskopia."
#: actions/deleteuser.php:148 lib/deleteuserform.php:77
-#, fuzzy
msgid "Delete this user"
-msgstr "Ta bort inlägg"
+msgstr "Ta bort denna användare"
#: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124
#: lib/adminpanelaction.php:302 lib/groupnav.php:119
msgid "Design"
-msgstr ""
+msgstr "Utseende"
#: actions/designadminpanel.php:73
msgid "Design settings for this StatusNet site."
-msgstr ""
+msgstr "Utseendeinställningar för denna StatusNet-webbplats."
-#: actions/designadminpanel.php:270
-#, fuzzy
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
-msgstr "Felaktig storlek"
+msgstr "Ogiltig logtyp-URL."
-#: actions/designadminpanel.php:274
-#, fuzzy, php-format
+#: actions/designadminpanel.php:279
+#, php-format
msgid "Theme not available: %s"
-msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat"
-
-#: actions/designadminpanel.php:370
-#, fuzzy
-msgid "Change logo"
-msgstr "Ändra ditt lösenord"
+msgstr "Tema inte tillgängligt: %s"
#: actions/designadminpanel.php:375
-#, fuzzy
+msgid "Change logo"
+msgstr "Byt logotyp"
+
+#: actions/designadminpanel.php:380
msgid "Site logo"
-msgstr "Bjud in"
+msgstr "Webbplatslogotyp"
-#: actions/designadminpanel.php:382
-#, fuzzy
+#: actions/designadminpanel.php:387
msgid "Change theme"
-msgstr "Ändra"
+msgstr "Byt tema"
-#: actions/designadminpanel.php:399
-#, fuzzy
+#: actions/designadminpanel.php:404
msgid "Site theme"
-msgstr "Nytt inlägg"
+msgstr "Webbplatstema"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
-msgstr ""
+msgstr "Tema för webbplatsen."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
-msgstr ""
+msgstr "Ändra bakgrundsbild"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
-msgstr ""
+msgstr "Bakgrund"
-#: actions/designadminpanel.php:422
-#, fuzzy, php-format
+#: actions/designadminpanel.php:427
+#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
-msgstr "Du kan uppdatera din personliga profil här"
+msgstr ""
+"Du kan ladda upp en bakgrundsbild för denna webbplats. Den maximala "
+"filstorleken är %1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
-msgstr ""
+msgstr "På"
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
-msgstr ""
+msgstr "Av"
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
-msgstr ""
+msgstr "Sätt på eller stäng av bakgrundsbild."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
-msgstr ""
+msgstr "Upprepa bakgrundsbild"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
-#, fuzzy
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
-msgstr "Ändra ditt lösenord"
+msgstr "Byt färger"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
-#, fuzzy
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
-msgstr "Anslut"
+msgstr "Innehåll"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
-#, fuzzy
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
-msgstr "Sök"
+msgstr "Sidofält"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Text"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
-#, fuzzy
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
-msgstr "Logga in"
+msgstr "Länkar"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
-msgstr ""
+msgstr "Använd standardvärden"
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
-msgstr ""
+msgstr "Återställ standardutseende"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
-msgstr ""
+msgstr "Återställ till standardvärde"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -957,18 +932,17 @@ msgstr ""
msgid "Save"
msgstr "Spara"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
-msgstr ""
+msgstr "Spara utseende"
#: actions/disfavor.php:81
msgid "This notice is not a favorite!"
-msgstr "Det inlägget är ingen favorit!"
+msgstr "Denna notis är inte en favorit!"
#: actions/disfavor.php:94
-#, fuzzy
msgid "Add to favorites"
-msgstr "Feed för %s favoriter"
+msgstr "Lägg till i favoriter"
#: actions/doc.php:69
msgid "No such document."
@@ -977,51 +951,46 @@ msgstr "Inget sådant dokument."
#: actions/editgroup.php:56
#, php-format
msgid "Edit %s group"
-msgstr ""
+msgstr "Redigera %s grupp"
#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
-#, fuzzy
msgid "You must be logged in to create a group."
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att skapa en grupp."
#: actions/editgroup.php:103 actions/editgroup.php:168
#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106
-#, fuzzy
msgid "You must be an admin to edit the group"
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att redigera gruppen"
#: actions/editgroup.php:154
msgid "Use this form to edit the group."
-msgstr ""
+msgstr "Använd detta formulär för att redigera gruppen."
#: actions/editgroup.php:201 actions/newgroup.php:145
-#, fuzzy, php-format
+#, php-format
msgid "description is too long (max %d chars)."
-msgstr "Biografin är för lång (max 140 tecken)"
+msgstr "beskrivning är för lång (max %d tecken)."
#: actions/editgroup.php:253
-#, fuzzy
msgid "Could not update group."
-msgstr "Kunde inte uppdatera användare."
+msgstr "Kunde inte uppdatera grupp."
#: actions/editgroup.php:259 classes/User_group.php:390
-#, fuzzy
msgid "Could not create aliases."
-msgstr "Kunde inte skapa favorit."
+msgstr "Kunde inte skapa alias."
#: actions/editgroup.php:269
-#, fuzzy
msgid "Options saved."
-msgstr "Inställningar sparade."
+msgstr "Alternativ sparade."
#: actions/emailsettings.php:60
msgid "Email Settings"
-msgstr "Email inställningar"
+msgstr "E-postinställningar"
#: actions/emailsettings.php:71
#, php-format
msgid "Manage how you get email from %%site.name%%."
-msgstr "Ställ in hur du tar emot email ifrån %%site.name%%"
+msgstr "Hantera hur du får e-post från %%site.name%%"
#: actions/emailsettings.php:100 actions/imsettings.php:100
#: actions/smssettings.php:104
@@ -1030,7 +999,7 @@ msgstr "Adress"
#: actions/emailsettings.php:105
msgid "Current confirmed email address."
-msgstr "Nuvarande bekräftade emailadress."
+msgstr "Aktuell, bekräftad e-postadress."
#: actions/emailsettings.php:107 actions/emailsettings.php:140
#: actions/imsettings.php:108 actions/smssettings.php:115
@@ -1043,8 +1012,8 @@ msgid ""
"Awaiting confirmation on this address. Check your inbox (and spam box!) for "
"a message with further instructions."
msgstr ""
-"Väntar bekräftelse på denna adress. Kontrollera din inbox (och spamlådan!) "
-"efter meddelande om vidare instruktioner."
+"Väntar bekräftelse av denna adress. Kontrollera din inkorg (och "
+"skräppostkorg!) efter ett meddelande med vidare instruktioner."
#: actions/emailsettings.php:117 actions/imsettings.php:120
#: actions/smssettings.php:126
@@ -1053,11 +1022,11 @@ msgstr "Avbryt"
#: actions/emailsettings.php:121
msgid "Email Address"
-msgstr "Emailadress"
+msgstr "E-postadress"
#: actions/emailsettings.php:123
msgid "Email address, like \"UserName@example.org\""
-msgstr "Emailadress såsom \"användare@example.org\""
+msgstr "E-postadress, såsom \"användarnamn@exempel.se\""
#: actions/emailsettings.php:126 actions/imsettings.php:133
#: actions/smssettings.php:145
@@ -1066,15 +1035,16 @@ msgstr "Lägg till"
#: actions/emailsettings.php:133 actions/smssettings.php:152
msgid "Incoming email"
-msgstr "Inkommande email"
+msgstr "Inkommande e-post"
#: actions/emailsettings.php:138 actions/smssettings.php:157
msgid "Send email to this address to post new notices."
-msgstr "Skicka email till denna adress för att posta ett nya inlägg."
+msgstr "Skicka e-post till denna adress för att posta nya notiser."
#: actions/emailsettings.php:145 actions/smssettings.php:162
msgid "Make a new email address for posting to; cancels the old one."
-msgstr "Skapa en ny emailadress för att posta till, avaktiverar den gamla"
+msgstr ""
+"Ange en ny e-postadress för att posta till; detta inaktiverar den gamla."
#: actions/emailsettings.php:148 actions/smssettings.php:164
msgid "New"
@@ -1087,7 +1057,7 @@ msgstr "Inställningar"
#: actions/emailsettings.php:158
msgid "Send me notices of new subscriptions through email."
-msgstr "Skicka meddelande till mig via email vid nya prenumerationer."
+msgstr "Skicka notiser om nya prenumerationer till mig genom e-post."
#: actions/emailsettings.php:163
msgid "Send me email when someone adds my notice as a favorite."
@@ -1095,24 +1065,23 @@ msgstr "Skicka mig ett email när någon lägger till mitt inlägg som favorit."
#: actions/emailsettings.php:169
msgid "Send me email when someone sends me a private message."
-msgstr "Skicka mig ett email när någon sänder ett privat meddelande."
+msgstr "Skicka mig e-post när någon skickar mig ett privat meddelande."
#: actions/emailsettings.php:174
-#, fuzzy
msgid "Send me email when someone sends me an \"@-reply\"."
-msgstr "Skicka mig ett email när någon sänder ett privat meddelande."
+msgstr "Skicka mig e-post när någon skickar ett \"@-svar\"."
#: actions/emailsettings.php:179
msgid "Allow friends to nudge me and send me an email."
-msgstr ""
+msgstr "Tillåt vänner att knuffa mig och skicka e-post till mig."
#: actions/emailsettings.php:185
msgid "I want to post notices by email."
-msgstr "Jag vill posta inlägg via min email."
+msgstr "Jag vill posta notiser genom min e-post."
#: actions/emailsettings.php:191
msgid "Publish a MicroID for my email address."
-msgstr "Publicera ett MicroID för min emailadress."
+msgstr "Publicera ett MicroID för min e-postadress."
#: actions/emailsettings.php:302 actions/imsettings.php:264
#: actions/othersettings.php:180 actions/smssettings.php:284
@@ -1121,37 +1090,37 @@ msgstr "Inställningar sparade."
#: actions/emailsettings.php:320
msgid "No email address."
-msgstr "Ingen emailadress."
+msgstr "Ingen e-postadress."
#: actions/emailsettings.php:327
msgid "Cannot normalize that email address"
-msgstr "Kan inte normalisera den emailadressen"
+msgstr "Kan inte normalisera den e-postadressen"
#: actions/emailsettings.php:331 actions/siteadminpanel.php:158
msgid "Not a valid email address"
-msgstr "Ingen giltig emailadress"
+msgstr "Inte en giltig e-postadress"
#: actions/emailsettings.php:334
msgid "That is already your email address."
-msgstr "Det är redan din emailadress."
+msgstr "Detta är redan din e-postadress."
#: actions/emailsettings.php:337
msgid "That email address already belongs to another user."
-msgstr "Den emailadressen tillhör redan en annan användare."
+msgstr "Den e-postadressen tillhör redan en annan användare."
#: actions/emailsettings.php:353 actions/imsettings.php:317
#: actions/smssettings.php:337
msgid "Couldn't insert confirmation code."
-msgstr "Kunde inte lägga till bekräftelsekoden."
+msgstr "Kunde inte infoga bekräftelsekod."
#: actions/emailsettings.php:359
msgid ""
"A confirmation code was sent to the email address you added. Check your "
"inbox (and spam box!) for the code and instructions on how to use it."
msgstr ""
-"En bekräftelsekod har skickats ut till email adressen du fyllde i. "
-"Kontrollera din inbox (och spamlådan!) efter kod och instruktioner hur du "
-"använder den."
+"En bekräftelsekod har skickats till e-postadressen du lade till. Kontrollera "
+"din inkorg (och skräppostkorg!) för koden och instruktioner hur du använder "
+"den."
#: actions/emailsettings.php:379 actions/imsettings.php:351
#: actions/smssettings.php:370
@@ -1160,58 +1129,58 @@ msgstr "Ingen väntande bekräftelse att avbryta."
#: actions/emailsettings.php:383 actions/imsettings.php:355
msgid "That is the wrong IM address."
-msgstr "Det är fel IM adress."
+msgstr "Detta är fel IM-adress."
#: actions/emailsettings.php:395 actions/imsettings.php:367
#: actions/smssettings.php:386
msgid "Confirmation cancelled."
-msgstr "Verifikation avbruten"
+msgstr "Bekräftelse avbruten."
#: actions/emailsettings.php:413
msgid "That is not your email address."
-msgstr "Det är inte din emailadress."
+msgstr "Detta är inte din e-postadress."
#: actions/emailsettings.php:432 actions/imsettings.php:408
#: actions/smssettings.php:425
msgid "The address was removed."
-msgstr "Adressen är borttagen."
+msgstr "Adressen togs bort."
#: actions/emailsettings.php:446 actions/smssettings.php:518
msgid "No incoming email address."
-msgstr "Ingen inkommande emailadress."
+msgstr "Ingen inkommande e-postadress."
#: actions/emailsettings.php:456 actions/emailsettings.php:478
#: actions/smssettings.php:528 actions/smssettings.php:552
msgid "Couldn't update user record."
-msgstr "Kunde inte uppdatera användarens inställningar."
+msgstr "Kunde inte uppdatera användaruppgift."
#: actions/emailsettings.php:459 actions/smssettings.php:531
msgid "Incoming email address removed."
-msgstr "Inkommande emailadress borttagen."
+msgstr "Inkommande e-postadress borttagen."
#: actions/emailsettings.php:481 actions/smssettings.php:555
msgid "New incoming email address added."
-msgstr "Ny inkommande emailadress inlagd."
+msgstr "Ny inkommande e-postadress tillagd."
#: actions/favorited.php:65 lib/popularnoticesection.php:88
#: lib/publicgroupnav.php:93
-#, fuzzy
msgid "Popular notices"
-msgstr "Inget sådant inlägg."
+msgstr "Populära notiser"
#: actions/favorited.php:67
-#, fuzzy, php-format
+#, php-format
msgid "Popular notices, page %d"
-msgstr "Inget sådant inlägg."
+msgstr "Populära notiser, sida %d"
#: actions/favorited.php:79
-#, fuzzy
msgid "The most popular notices on the site right now."
-msgstr "Visar dom populäraste taggarna ifrån den senaste veckan."
+msgstr "De mest populära notiserna på webbplatsen just nu."
#: actions/favorited.php:150
msgid "Favorite notices appear on this page but no one has favorited one yet."
msgstr ""
+"Favoritnotiser kommer upp på denna sida, men ingen har markerat några "
+"favoriter än."
#: actions/favorited.php:153
msgid ""
@@ -1225,26 +1194,27 @@ msgid ""
"Why not [register an account](%%action.register%%) and be the first to add a "
"notice to your favorites!"
msgstr ""
+"Varför inte [registrera ett konto](%%action.register%%) och bli först att "
+"lägga en notis till dina favoriter!"
#: actions/favoritesrss.php:111 actions/showfavorites.php:77
#: lib/personalgroupnav.php:115
#, php-format
msgid "%s's favorite notices"
-msgstr ""
+msgstr "%ss favoritnotiser"
#: actions/favoritesrss.php:115
-#, fuzzy, php-format
+#, php-format
msgid "Updates favored by %1$s on %2$s!"
-msgstr "Uppdateringar från %1$s på %2$s!"
+msgstr "Uppdateringar markerade som favorit av %1$s på %2$s!"
#: actions/favor.php:79
msgid "This notice is already a favorite!"
-msgstr "Detta inlägg är redan en favorit!"
+msgstr "Denna notis är redan en favorit!"
#: actions/favor.php:92 lib/disfavorform.php:140
-#, fuzzy
msgid "Disfavor favorite"
-msgstr "Avfavorisera"
+msgstr "Ta bort märkning som favorit"
#: actions/featured.php:69 lib/featureduserssection.php:87
#: lib/publicgroupnav.php:89
@@ -1262,114 +1232,99 @@ msgid "A selection of some of the great users on %s"
msgstr ""
#: actions/file.php:34
-#, fuzzy
msgid "No notice id"
-msgstr "Nytt inlägg"
+msgstr "Ingen notis-ID"
#: actions/file.php:38
-#, fuzzy
msgid "No notice"
-msgstr "Nytt inlägg"
+msgstr "Ingen notis"
#: actions/file.php:42
msgid "No attachments"
-msgstr ""
+msgstr "Inga bilagor"
#: actions/file.php:51
msgid "No uploaded attachments"
-msgstr ""
+msgstr "Inga uppladdade bilagor"
#: actions/finishremotesubscribe.php:69
msgid "Not expecting this response!"
-msgstr "Väntade mig inte detta svar!"
+msgstr "Väntade mig inte denna respons!"
#: actions/finishremotesubscribe.php:80
-#, fuzzy
msgid "User being listened to does not exist."
-msgstr "Användaren som avlyssnas existerar inte."
+msgstr "Användaren som lyssnas på existerar inte."
#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
msgid "You can use the local subscription!"
-msgstr "Du kan använda lokala prenumerationer!"
+msgstr "Du kan använda den lokala prenumerationen!"
#: actions/finishremotesubscribe.php:99
msgid "That user has blocked you from subscribing."
-msgstr ""
+msgstr "Denna användaren har blockerat dig från att prenumerera."
#: actions/finishremotesubscribe.php:110
-#, fuzzy
msgid "You are not authorized."
-msgstr "Inte tillstånd ännu."
+msgstr "Du har inte tillstånd."
#: actions/finishremotesubscribe.php:113
-#, fuzzy
msgid "Could not convert request token to access token."
-msgstr "Kunde inte konvertera förfrågan tokens till Access tokens."
+msgstr "Kunde inte konvertera förfrågnings-token till access-token."
#: actions/finishremotesubscribe.php:118
-#, fuzzy
msgid "Remote service uses unknown version of OMB protocol."
-msgstr "Okänd version av OMB protokollet."
+msgstr "Fjärrtjänsten använder en okänd version av OMB-protokollet."
#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
msgid "Error updating remote profile"
-msgstr "Fel uppstog under uppdatering av fjärranvändare"
+msgstr "Fel vid uppdatering av fjärrprofil"
#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86
#: actions/groupunblock.php:86 actions/leavegroup.php:83
#: actions/makeadmin.php:86 lib/command.php:212 lib/command.php:263
-#, fuzzy
msgid "No such group."
-msgstr "Inget sådant meddelande."
+msgstr "Ingen sådan grupp."
#: actions/getfile.php:75
-#, fuzzy
msgid "No such file."
-msgstr "Inget sådant inlägg."
+msgstr "Ingen sådan fil."
#: actions/getfile.php:79
-#, fuzzy
msgid "Cannot read file."
-msgstr "Inget sådant inlägg."
+msgstr "Kan inte läsa fil."
#: actions/groupblock.php:71 actions/groupunblock.php:71
#: actions/makeadmin.php:71 actions/subedit.php:46
#: lib/profileformaction.php:70
-#, fuzzy
msgid "No profile specified."
-msgstr "Ingen mottagare tillagd."
+msgstr "Ingen profil angiven."
#: actions/groupblock.php:76 actions/groupunblock.php:76
#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
#: lib/profileformaction.php:77
-#, fuzzy
msgid "No profile with that ID."
-msgstr "Ingen status hittad med det ID"
+msgstr "Ingen profil med det ID:t."
#: actions/groupblock.php:81 actions/groupunblock.php:81
#: actions/makeadmin.php:81
-#, fuzzy
msgid "No group specified."
-msgstr "Ingen mottagare tillagd."
+msgstr "Ingen grupp angiven."
#: actions/groupblock.php:91
msgid "Only an admin can block group members."
-msgstr ""
+msgstr "Bara en administratör kan blockera gruppmedlemmar."
#: actions/groupblock.php:95
-#, fuzzy
msgid "User is already blocked from group."
-msgstr "Användaren har ingen profil."
+msgstr "Användaren är redan blockerad från grupp."
#: actions/groupblock.php:100
-#, fuzzy
msgid "User is not a member of group."
-msgstr "Du skickade inte oss den profilen"
+msgstr "Användare är inte en gruppmedlem."
#: actions/groupblock.php:136 actions/groupmembers.php:314
-#, fuzzy
msgid "Block user from group"
-msgstr "Ingen sådan användare"
+msgstr "Blockera användare från grupp"
#: actions/groupblock.php:162
#, php-format
@@ -1378,141 +1333,137 @@ msgid ""
"be removed from the group, unable to post, and unable to subscribe to the "
"group in the future."
msgstr ""
+"Är du säker på att du vill blockera användare \"%s\" från gruppen \"%s\"? De "
+"kommer bli borttagna från gruppen, inte kunna posta och inte kunna "
+"prenumerera på gruppen i framtiden."
#: actions/groupblock.php:178
-#, fuzzy
msgid "Do not block this user from this group"
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Blockera inte denna användare från denna grupp"
#: actions/groupblock.php:179
-#, fuzzy
msgid "Block this user from this group"
-msgstr "Ingen sådan användare"
+msgstr "Blockera denna användare från denna grupp"
#: actions/groupblock.php:196
msgid "Database error blocking user from group."
-msgstr ""
+msgstr "Databasfel vid blockering av användare från grupp."
#: actions/groupbyid.php:74
msgid "No ID"
-msgstr ""
+msgstr "Ingen ID"
#: actions/groupdesignsettings.php:68
-#, fuzzy
msgid "You must be logged in to edit a group."
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att redigera en grupp."
#: actions/groupdesignsettings.php:141
msgid "Group design"
-msgstr ""
+msgstr "Gruppens utseende"
#: actions/groupdesignsettings.php:152
msgid ""
"Customize the way your group looks with a background image and a colour "
"palette of your choice."
msgstr ""
+"Anpassa hur din grupp ser ut genom att välja bakgrundbild och färgpalett. "
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
-#, fuzzy
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
-msgstr "Kunde inte uppdatera användare."
+msgstr "Kunde inte uppdatera dina utseendeinställningar."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
-#, fuzzy
msgid "Unable to save your design settings!"
-msgstr "Kunde inte spara dina Twitter inställningar!"
+msgstr "Kunde inte spara dina utseendeinställningar!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
-#, fuzzy
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
-msgstr "Inställningar sparade."
+msgstr "Utseendeinställningar sparade."
#: actions/grouplogo.php:139 actions/grouplogo.php:192
msgid "Group logo"
-msgstr ""
+msgstr "Gruppens logotyp"
#: actions/grouplogo.php:150
#, php-format
msgid ""
"You can upload a logo image for your group. The maximum file size is %s."
msgstr ""
+"Du kan ladda upp en logotypbild för din grupp. Den maximala filstorleken är %"
+"s."
#: actions/grouplogo.php:362
msgid "Pick a square area of the image to be the logo."
-msgstr ""
+msgstr "Välj ett kvadratiskt område i bilden som logotyp"
#: actions/grouplogo.php:396
-#, fuzzy
msgid "Logo updated."
-msgstr "Användarbilden uppdaterad."
+msgstr "Logtyp uppdaterad."
#: actions/grouplogo.php:398
-#, fuzzy
msgid "Failed updating logo."
-msgstr "Uppdatering av profilbild misslyckades."
+msgstr "Misslyckades uppdatera logtyp."
#: actions/groupmembers.php:93 lib/groupnav.php:92
#, php-format
msgid "%s group members"
-msgstr ""
+msgstr "%s "
#: actions/groupmembers.php:96
#, php-format
msgid "%s group members, page %d"
-msgstr ""
+msgstr "%s gruppmedlemmar, sida %d"
#: actions/groupmembers.php:111
msgid "A list of the users in this group."
-msgstr ""
+msgstr "En lista av användarna i denna grupp."
#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107
msgid "Admin"
-msgstr ""
+msgstr "Administratör"
#: actions/groupmembers.php:346 lib/blockform.php:69
msgid "Block"
-msgstr ""
+msgstr "Blockera"
#: actions/groupmembers.php:441
-#, fuzzy
msgid "Make user an admin of the group"
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Gör användare till en administratör för gruppen"
#: actions/groupmembers.php:473
msgid "Make Admin"
-msgstr ""
+msgstr "Gör till administratör"
#: actions/groupmembers.php:473
msgid "Make this user an admin"
-msgstr ""
+msgstr "Gör denna användare till administratör"
#: actions/grouprss.php:133
-#, fuzzy, php-format
+#, php-format
msgid "Updates from members of %1$s on %2$s!"
-msgstr "Uppdateringar från %1$s på %2$s!"
+msgstr "Uppdateringar från medlemmar i %1$s på %2$s!"
#: actions/groupsearch.php:52
-#, fuzzy, php-format
+#, php-format
msgid ""
"Search for groups on %%site.name%% by their name, location, or description. "
"Separate the terms by spaces; they must be 3 characters or more."
msgstr ""
-"Sök efter personer på %%site.name%% efter deras namn, plats eller intressen. "
-"Skilj söktermerna åt med mellanslag; de måste vara minst tre tecken långa. "
+"Sök efter grupper på %%site.name%% efter deras namn, plats eller "
+"beskrivning. Skilj söktermerna åt med mellanslag; de måste vara minst tre "
+"tecken långa."
#: actions/groupsearch.php:58
-#, fuzzy
msgid "Group search"
-msgstr "Sökning personer"
+msgstr "Gruppsökning"
#: actions/groupsearch.php:79 actions/noticesearch.php:117
#: actions/peoplesearch.php:83
-#, fuzzy
msgid "No results."
-msgstr "Inget resultat"
+msgstr "Inga resultat."
#: actions/groupsearch.php:82
#, php-format
@@ -1520,6 +1471,8 @@ msgid ""
"If you can't find the group you're looking for, you can [create it](%%action."
"newgroup%%) yourself."
msgstr ""
+"Om du inte kan hitta gruppen du söker efter kan du [skapa den](%%action."
+"newgroup%%) själv."
#: actions/groupsearch.php:85
#, php-format
@@ -1527,16 +1480,18 @@ msgid ""
"Why not [register an account](%%action.register%%) and [create the group](%%"
"action.newgroup%%) yourself!"
msgstr ""
+"Varför inte [registrera ett konto](%%action.register%%) och [skapa gruppen](%"
+"%action.newgroup%%) själv!"
#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230
#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
msgid "Groups"
-msgstr ""
+msgstr "Grupper"
#: actions/groups.php:64
#, php-format
msgid "Groups, page %d"
-msgstr ""
+msgstr "Grupper, sida %d"
#: actions/groups.php:90
#, php-format
@@ -1547,29 +1502,31 @@ msgid ""
"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup"
"%%%%)"
msgstr ""
+"%%%%site.name%%%% grupper låter dig hitta och prata med personer med "
+"liknande intressen. Efter att ha gått med i en grupp kan du skicka "
+"meddelanden till alla andra medlemmar mha. syntaxen \"!gruppnamn\". Ser du "
+"inte någon grupp du gillar? Prova att [söka efter en](%%%%action.groupsearch%"
+"%%%) eller [starta din egen!](%%%%action.newgroup%%%%)"
#: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122
-#, fuzzy
msgid "Create a new group"
-msgstr "Skapa ett nytt konto"
+msgstr "Skapa en ny grupp"
#: actions/groupunblock.php:91
msgid "Only an admin can unblock group members."
-msgstr ""
+msgstr "Bara en administratör kan häva blockering av gruppmedlemmar."
#: actions/groupunblock.php:95
-#, fuzzy
msgid "User is not blocked from group."
-msgstr "Användaren har ingen profil."
+msgstr "Användare är inte blockerad från grupp."
#: actions/groupunblock.php:128 actions/unblock.php:77
-#, fuzzy
msgid "Error removing the block."
-msgstr "Fel uppstog när användaren skulle sparas."
+msgstr "Fel vid hävning av blockering."
#: actions/imsettings.php:59
msgid "IM Settings"
-msgstr "IM inställningar"
+msgstr "IM-inställningar"
#: actions/imsettings.php:70
#, php-format
@@ -1577,13 +1534,12 @@ msgid ""
"You can send and receive notices through Jabber/GTalk [instant messages](%%"
"doc.im%%). Configure your address and settings below."
msgstr ""
-"Du kan skicka och ta emot inlägg genom Jabber/GTalk [instant messages](%%doc."
-"im%%). Konfigurera din adress och inställningar nedan. "
+"Du kan skicka och ta emot notiser genom Jabber/GTalk [snabbmeddelanden](%%"
+"doc.im%%). Konfigurera din adress och dina inställningar nedan."
#: actions/imsettings.php:89
-#, fuzzy
msgid "IM is not available."
-msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat"
+msgstr "IM är inte tillgänglig."
#: actions/imsettings.php:106
msgid "Current confirmed Jabber/GTalk address."
@@ -1595,12 +1551,12 @@ msgid ""
"Awaiting confirmation on this address. Check your Jabber/GTalk account for a "
"message with further instructions. (Did you add %s to your buddy list?)"
msgstr ""
-"Väntar bekräftelse på denna adress. Kontrollera ditt Jabber/GTalk konto för "
-"vidare instruktioner. (La du till %s i din vännerlista?)"
+"Väntar bekräftelse av denna adress. Kontrollera ditt Jabber/GTalk-konto för "
+"vidare instruktioner. (La du till %s i din kompislista?)"
#: actions/imsettings.php:124
msgid "IM Address"
-msgstr "IM adress"
+msgstr "IM-adress"
#: actions/imsettings.php:126
#, php-format
@@ -1608,46 +1564,46 @@ msgid ""
"Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
"add %s to your buddy list in your IM client or on GTalk."
msgstr ""
-"Jabber eller GTalk adress liknande \"användare@exempel.se\". Först se till "
-"att lägga till %s i din vännerlista i IM klienten eller GTalk."
+"Jabber- eller GTalk-adress liknande \"användare@exempel.se\". Se först till "
+"att lägga till %s i din kompislista i din IM-klient eller hos GTalk."
#: actions/imsettings.php:143
msgid "Send me notices through Jabber/GTalk."
-msgstr "Skicka inlägg till mig via Jabber/GTalk."
+msgstr "Skicka notiser till mig genom Jabber/GTalk."
#: actions/imsettings.php:148
msgid "Post a notice when my Jabber/GTalk status changes."
-msgstr "Posta ett inlägg när min Jabber/GTalk status ändras."
+msgstr "Posta en notis när min Jabber/GTalk-status ändras."
#: actions/imsettings.php:153
msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
msgstr ""
-"Skicka svar till mig via Jabber/GTalk från personer som inte jag "
+"Skicka svar till mig genom Jabber/GTalk från personer som jag inte "
"prenumererar på."
#: actions/imsettings.php:159
msgid "Publish a MicroID for my Jabber/GTalk address."
-msgstr "Publicera ett MicroID för min Jabber/GTalk adress."
+msgstr "Publicera ett MicroID för min Jabber/GTalk-adress."
#: actions/imsettings.php:285
msgid "No Jabber ID."
-msgstr "Inget Jabber ID."
+msgstr "Inget Jabber-ID."
#: actions/imsettings.php:292
msgid "Cannot normalize that Jabber ID"
-msgstr "Kan inte normalisera det Jabber ID"
+msgstr "Kan inte normalisera detta Jabber-ID"
#: actions/imsettings.php:296
msgid "Not a valid Jabber ID"
-msgstr "Det är inget giltigt Jabber ID"
+msgstr "Inte ett giltigt Jabber-ID"
#: actions/imsettings.php:299
msgid "That is already your Jabber ID."
-msgstr "Det är redan din Jabber ID."
+msgstr "Detta är redan ditt Jabber-ID"
#: actions/imsettings.php:302
msgid "Jabber ID already belongs to another user."
-msgstr "Jabber ID används redan utav en annan användare."
+msgstr "Jabber-ID:t tillhör redan en annan användare."
#: actions/imsettings.php:327
#, php-format
@@ -1655,44 +1611,45 @@ msgid ""
"A confirmation code was sent to the IM address you added. You must approve %"
"s for sending messages to you."
msgstr ""
-"En bekräftelsekod har skickats till den IM-adress som du angav. Du måste "
+"En bekräftelsekod har skickats till den IM-adress du angav. Du måste "
"godkänna att %s får skicka meddelanden till dig."
#: actions/imsettings.php:387
msgid "That is not your Jabber ID."
-msgstr "Det är inte ditt Jabber ID."
+msgstr "Detta är inte ditt Jabber-ID."
#: actions/inbox.php:59
#, php-format
msgid "Inbox for %s - page %d"
-msgstr "Inbox för %s - sida %d"
+msgstr "Inkorg för %s - sida %d"
#: actions/inbox.php:62
#, php-format
msgid "Inbox for %s"
-msgstr "Inbox för %s"
+msgstr "Inkorg för %s"
#: actions/inbox.php:115
msgid "This is your inbox, which lists your incoming private messages."
-msgstr "Detta är din inbox som innehåller dina privata meddelanden."
+msgstr ""
+"Detta är din inkorg som innehåller dina inkommande privata meddelanden."
#: actions/invite.php:39
msgid "Invites have been disabled."
-msgstr ""
+msgstr "Inbjudningar har blivit inaktiverade."
#: actions/invite.php:41
#, php-format
msgid "You must be logged in to invite other users to use %s"
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att kunna bjuda in andra användare till %s"
#: actions/invite.php:72
#, php-format
msgid "Invalid email address: %s"
-msgstr "Ogiltig emailadress: %s"
+msgstr "Ogiltig e-postadress: %s"
#: actions/invite.php:110
msgid "Invitation(s) sent"
-msgstr "Inbjudan(ar) skickad"
+msgstr "Inbjudan(ar) skickad(e)"
#: actions/invite.php:112
msgid "Invite new users"
@@ -1705,25 +1662,25 @@ msgstr "Du prenumererar redan på dessa användare:"
#: actions/invite.php:131 actions/invite.php:139
#, php-format
msgid "%s (%s)"
-msgstr "%s(%s)"
+msgstr "%s (%s)"
#: actions/invite.php:136
msgid ""
"These people are already users and you were automatically subscribed to them:"
msgstr ""
-"Dom personerna är redan registrerade användare och du blev nu automatiskt "
-"prenumerant till dom:"
+"Dessa personer är redan registrerade användare och du blev automatiskt "
+"prenumerat hos dem:"
#: actions/invite.php:144
msgid "Invitation(s) sent to the following people:"
-msgstr "Inbjudan(ar) är skickade till följande personer:"
+msgstr "Inbjudning(ar) har skickats till följande personer:"
#: actions/invite.php:150
msgid ""
"You will be notified when your invitees accept the invitation and register "
"on the site. Thanks for growing the community!"
msgstr ""
-"du kommer bli meddelad när någon du bjudit in accepterar inbjudan och "
+"Du kommer bli meddelad när någon du bjudit in accepterar inbjudan och "
"registrerar sig. Tack för att du hjälper oss växa!"
#: actions/invite.php:162
@@ -1731,11 +1688,11 @@ msgid ""
"Use this form to invite your friends and colleagues to use this service."
msgstr ""
"Använd detta formulär för att bjuda in dina vänner och kollegor till denna "
-"sida."
+"webbplats."
#: actions/invite.php:187
msgid "Email addresses"
-msgstr "Emailadresser"
+msgstr "E-postadresser"
#: actions/invite.php:189
msgid "Addresses of friends to invite (one per line)"
@@ -1747,16 +1704,16 @@ msgstr "Personligt meddelande"
#: actions/invite.php:194
msgid "Optionally add a personal message to the invitation."
-msgstr "Om du vill, skriv ett personligt meddelande med inbjudan."
+msgstr "Om du vill, skriv ett personligt meddelande till inbjudan."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Skicka"
#: actions/invite.php:226
#, php-format
msgid "%1$s has invited you to join them on %2$s"
-msgstr "%1$s har bjudit in dig till %2$s"
+msgstr "%1$s har bjudit in dig att gå med dem på %2$s"
#: actions/invite.php:228
#, php-format
@@ -1788,92 +1745,62 @@ msgid ""
"\n"
"Sincerely, %2$s\n"
msgstr ""
-"%1$s har bjudit in dig till %2$s (%3$s).\n"
-"\n"
-"%2$s är en mikroblogg service som låter dig via sidan hålla direktkontakt "
-"med människor du känner eller intresserar dig.\n"
-"\n"
-"Du kan även dela med dig utav nyheter om dig själv, dina tankar, eller ditt "
-"liv online som känner igen dig. Det är också perfekt för att möta nya "
-"personer som delar ditt intresse.\n"
-"\n"
-"%1$s sa:\n"
-"\n"
-"%4$s\n"
-"\n"
-"Du kan se %1$s's profilsida på %2$s här:\n"
-"\n"
-"%5$s\n"
-"\n"
-"Om du vill prova på denna service, klicka på länken nedan för att acceptera "
-"denna inbjudan.\n"
-"\n"
-"%6$s\n"
-"\n"
-"Om inte, då kan du ignorera detta meddelande. Tack för att du tog dig\n"
#: actions/joingroup.php:60
-#, fuzzy
msgid "You must be logged in to join a group."
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att kunna gå med i en grupp."
#: actions/joingroup.php:90 lib/command.php:217
-#, fuzzy
msgid "You are already a member of that group"
-msgstr "Du prenumererar redan på dessa användare:"
+msgstr "Du är redan en medlem i denna grupp"
#: actions/joingroup.php:128 lib/command.php:234
-#, fuzzy, php-format
+#, php-format
msgid "Could not join user %s to group %s"
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte ansluta användare %s till groupp %s"
#: actions/joingroup.php:135 lib/command.php:239
-#, fuzzy, php-format
+#, php-format
msgid "%s joined group %s"
-msgstr "%s / Favoriter från %s"
+msgstr "%s gick med i grupp %s"
#: actions/leavegroup.php:60
-#, fuzzy
msgid "You must be logged in to leave a group."
-msgstr "du måste vara inloggad för att kunna bjuda in andra användare till %s"
+msgstr "Du måste vara inloggad för att lämna en grupp."
#: actions/leavegroup.php:90 lib/command.php:268
-#, fuzzy
msgid "You are not a member of that group."
-msgstr "Du skickade inte oss den profilen"
+msgstr "Du är inte en medlem i den gruppen."
#: actions/leavegroup.php:119 lib/command.php:278
-#, fuzzy
msgid "Could not find membership record."
-msgstr "Kunde inte uppdatera användarens inställningar."
+msgstr "Kunde inte hitta uppgift om medlemskap."
#: actions/leavegroup.php:127 lib/command.php:284
-#, fuzzy, php-format
+#, php-format
msgid "Could not remove user %s to group %s"
-msgstr "Kunde inte följa användaren: Användaren kunde inte hittas."
+msgstr "Kunde inte ta bort användare %s från grupp %s"
#: actions/leavegroup.php:134 lib/command.php:289
#, php-format
msgid "%s left group %s"
-msgstr ""
+msgstr "%s lämnade grupp %s"
#: actions/login.php:79 actions/register.php:137
msgid "Already logged in."
msgstr "Redan inloggad."
#: actions/login.php:108 actions/login.php:118
-#, fuzzy
msgid "Invalid or expired token."
-msgstr "Ogiltig innehåll i inlägget "
+msgstr "Ogiltig eller utgången token."
#: actions/login.php:146
msgid "Incorrect username or password."
msgstr "Felaktigt användarnamn eller lösenord."
#: actions/login.php:152
-#, fuzzy
msgid "Error setting user. You are probably not authorized."
-msgstr "Inte tillstånd ännu."
+msgstr "Fel vid inställning av användare. Du har sannolikt inte tillstånd."
#: actions/login.php:207 actions/login.php:260 lib/action.php:458
#: lib/logingroupnav.php:79
@@ -1882,7 +1809,7 @@ msgstr "Logga in"
#: actions/login.php:246
msgid "Login to site"
-msgstr ""
+msgstr "Logga in på webbplatsen"
#: actions/login.php:249 actions/profilesettings.php:106
#: actions/register.php:423 actions/showgroup.php:236 actions/tagother.php:94
@@ -1901,60 +1828,59 @@ msgstr "Kom ihåg mig"
#: actions/login.php:256 actions/register.php:479
msgid "Automatically login in the future; not for shared computers!"
-msgstr "Logga in automatiskt i framtiden; Ej för publika datorer!"
+msgstr "Logga in automatiskt i framtiden; inte för delade datorer!"
#: actions/login.php:266
msgid "Lost or forgotten password?"
-msgstr "Glömt bort lösenord?"
+msgstr "Tappat bort eller glömt ditt lösenord?"
#: actions/login.php:285
msgid ""
"For security reasons, please re-enter your user name and password before "
"changing your settings."
msgstr ""
-"Av säkerhetsskäl, var vänlig skriv in ditt användarnamn och lösenord innan "
-"du ändrar dina inställningar."
+"Av säkerhetsskäl, var vänlig och skriv in ditt användarnamn och lösenord "
+"igen innan du ändrar dina inställningar."
#: actions/login.php:289
-#, fuzzy, php-format
+#, php-format
msgid ""
"Login with your username and password. Don't have a username yet? [Register]"
"(%%action.register%%) a new account."
msgstr ""
"Logga in med ditt användarnamn och lösenord. Har du inget användarnamn ännu? "
-"[Registrera](%%action.register%%) ett nytt konto, eller testa [OpenID](%%"
-"action.openidlogin%%)."
+"[Registrera](%%action.register%%) ett nytt konto."
#: actions/makeadmin.php:91
msgid "Only an admin can make another user an admin."
-msgstr ""
+msgstr "Bara en administratör kan göra en annan användare till administratör."
#: actions/makeadmin.php:95
#, php-format
msgid "%s is already an admin for group \"%s\"."
-msgstr ""
+msgstr "%s är redan en administratör för grupp \"%s\"."
#: actions/makeadmin.php:132
#, php-format
msgid "Can't get membership record for %s in group %s"
-msgstr ""
+msgstr "Kan inte hämta uppgift om medlemskap för %s i grupp %s"
#: actions/makeadmin.php:145
#, php-format
msgid "Can't make %s an admin for group %s"
-msgstr ""
+msgstr "Kan inte göra %s till en administratör för grupp %s"
#: actions/microsummary.php:69
msgid "No current status"
-msgstr ""
+msgstr "Ingen aktuell status"
#: actions/newgroup.php:53
msgid "New group"
-msgstr ""
+msgstr "Ny grupp"
#: actions/newgroup.php:110
msgid "Use this form to create a new group."
-msgstr ""
+msgstr "Använd detta formulär för att skapa en ny grupp."
#: actions/newmessage.php:71 actions/newmessage.php:231
msgid "New message"
@@ -1962,7 +1888,7 @@ msgstr "Nytt meddelande"
#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:367
msgid "You can't send a message to this user."
-msgstr "Du kan inte skicka meddelande till den användaren."
+msgstr "Du kan inte skicka ett meddelande till den användaren."
#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:351
#: lib/command.php:424
@@ -1971,35 +1897,35 @@ msgstr "Inget innehåll!"
#: actions/newmessage.php:158
msgid "No recipient specified."
-msgstr "Ingen mottagare tillagd."
+msgstr "Ingen mottagare angiven."
#: actions/newmessage.php:164 lib/command.php:370
msgid ""
"Don't send a message to yourself; just say it to yourself quietly instead."
-msgstr "Skicka inte meddelande till dig själv, viska lite tyst istället."
+msgstr ""
+"Skicka inte meddelande till dig själv; viska lite tyst till dig själv "
+"istället."
#: actions/newmessage.php:181
-#, fuzzy
msgid "Message sent"
-msgstr "Nytt meddelande"
+msgstr "Meddelande skickat"
#: actions/newmessage.php:185 lib/command.php:375
#, php-format
msgid "Direct message to %s sent"
-msgstr ""
+msgstr "Direktmeddelande till %s skickat"
#: actions/newmessage.php:210 actions/newnotice.php:240 lib/channel.php:170
msgid "Ajax Error"
-msgstr ""
+msgstr "AJAX-fel"
#: actions/newnotice.php:69
msgid "New notice"
-msgstr "Nytt inlägg"
+msgstr "Ny notis"
#: actions/newnotice.php:206
-#, fuzzy
msgid "Notice posted"
-msgstr "Inlägg"
+msgstr "Notis postad"
#: actions/noticesearch.php:68
#, php-format
@@ -2007,17 +1933,17 @@ msgid ""
"Search for notices on %%site.name%% by their contents. Separate search terms "
"by spaces; they must be 3 characters or more."
msgstr ""
-"Sök efter innehåll i inlägg på %%site.name%%. Skilj söktermerna åt med "
-"mellanslag; dom måste vara minst tre tecken långa."
+"Sök efter innehåll i notiser på %%site.name%%. Skilj söktermerna åt med "
+"mellanslag; de måste vara minst tre tecken långa."
#: actions/noticesearch.php:78
msgid "Text search"
-msgstr "Text sökning"
+msgstr "Textsökning"
#: actions/noticesearch.php:91
-#, fuzzy, php-format
+#, php-format
msgid "Search results for \"%s\" on %s"
-msgstr "Sök i strömmen efter \"%s\""
+msgstr "Sökresultat för \"%s\" på %s"
#: actions/noticesearch.php:121
#, php-format
@@ -2025,6 +1951,8 @@ msgid ""
"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
"status_textarea=%s)!"
msgstr ""
+"Bli först att [posta i detta ämne](%%%%action.newnotice%%%%?status_textarea=%"
+"s)!"
#: actions/noticesearch.php:124
#, php-format
@@ -2032,123 +1960,121 @@ msgid ""
"Why not [register an account](%%%%action.register%%%%) and be the first to "
"[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
msgstr ""
+"Varför inte [registrera ett konto](%%%%action.register%%%%) och bli först "
+"att [posta i detta ämne](%%%%action.newnotice%%%%?status_textarea=%s)!"
#: actions/noticesearchrss.php:96
-#, fuzzy, php-format
+#, php-format
msgid "Updates with \"%s\""
-msgstr "Uppdateringar från %1$s på %2$s!"
+msgstr "Uppdateringar med \"%s\""
#: actions/noticesearchrss.php:98
-#, fuzzy, php-format
+#, php-format
msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr "Alla uppdateringar som matchar söksträngen \"%s\""
+msgstr "Uppdateringar som matchar söksträngen \"%1$s\" på %2$s!"
#: actions/nudge.php:85
msgid ""
"This user doesn't allow nudges or hasn't confirmed or set his email yet."
msgstr ""
+"Denna användare har inte tillåtit knuffar eller har inte bekräftat eller "
+"angett sitt e-post än."
#: actions/nudge.php:94
msgid "Nudge sent"
-msgstr ""
+msgstr "Knuff sänd"
#: actions/nudge.php:97
msgid "Nudge sent!"
-msgstr ""
+msgstr "Knuff sänd!"
#: actions/oembed.php:79 actions/shownotice.php:100
msgid "Notice has no profile"
-msgstr "Inlägget har ingen profil"
+msgstr "Notisen har ingen profil"
#: actions/oembed.php:86 actions/shownotice.php:180
#, php-format
msgid "%1$s's status on %2$s"
-msgstr "%1$s's status den %2$s"
+msgstr "%1$ss status den %2$s"
#: actions/oembed.php:157
-#, fuzzy
msgid "content type "
-msgstr "Anslut"
+msgstr "innehållstyp "
#: actions/oembed.php:160
msgid "Only "
-msgstr ""
+msgstr "Bara "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
-msgstr "Ingen support för det formatet."
+msgstr "Ett dataformat som inte stödjs"
#: actions/opensearch.php:64
msgid "People Search"
-msgstr "Personer sökning"
+msgstr "Personsökning"
#: actions/opensearch.php:67
msgid "Notice Search"
-msgstr "Inlägg sökning"
+msgstr "Notissökning"
#: actions/othersettings.php:60
-#, fuzzy
msgid "Other Settings"
-msgstr "Twitter inställningar"
+msgstr "Övriga inställningar"
#: actions/othersettings.php:71
msgid "Manage various other options."
-msgstr ""
+msgstr "Hantera diverse andra alternativ. "
#: actions/othersettings.php:108
msgid " (free service)"
-msgstr ""
+msgstr "(fri tjänst)"
#: actions/othersettings.php:116
msgid "Shorten URLs with"
-msgstr ""
+msgstr "Förkorta URL:er med"
#: actions/othersettings.php:117
msgid "Automatic shortening service to use."
-msgstr ""
+msgstr "Automatiska förkortningstjänster att använda."
#: actions/othersettings.php:122
-#, fuzzy
msgid "View profile designs"
-msgstr "Profil inställningar"
+msgstr "Visa profilutseenden"
#: actions/othersettings.php:123
msgid "Show or hide profile designs."
-msgstr ""
+msgstr "Visa eller göm profilutseenden."
#: actions/othersettings.php:153
-#, fuzzy
msgid "URL shortening service is too long (max 50 chars)."
-msgstr "Språket är för långt(max 50 tecken)."
+msgstr "Namnet på URL-förkortningstjänsen är för långt (max 50 tecken). "
#: actions/outbox.php:58
#, php-format
msgid "Outbox for %s - page %d"
-msgstr "Outbox för %s - sida %d"
+msgstr "Utkorg för %s - sida %d"
#: actions/outbox.php:61
#, php-format
msgid "Outbox for %s"
-msgstr "Outbox för %s"
+msgstr "Utkorg för %s"
#: actions/outbox.php:116
msgid "This is your outbox, which lists private messages you have sent."
-msgstr "Detta är din outbox som innehåller meddelanden som du skickat."
+msgstr "Detta är din utkorg som innehåller privata meddelanden du har skickat."
#: actions/passwordsettings.php:58
msgid "Change password"
msgstr "Byt lösenord"
#: actions/passwordsettings.php:69
-#, fuzzy
msgid "Change your password."
-msgstr "Ändra ditt lösenord"
+msgstr "Byt ditt lösenord."
#: actions/passwordsettings.php:96 actions/recoverpassword.php:231
-#, fuzzy
msgid "Password change"
-msgstr "Lösenord är sparat."
+msgstr "Byte av lösenord"
#: actions/passwordsettings.php:104
msgid "Old password"
@@ -2185,127 +2111,120 @@ msgstr "Lösenorden matchar inte."
#: actions/passwordsettings.php:165
msgid "Incorrect old password"
-msgstr "Felaktigt, gammalt lösenord"
+msgstr "Felaktigt gammalt lösenord"
#: actions/passwordsettings.php:181
msgid "Error saving user; invalid."
-msgstr "Fel uppstog när användare skulle sparas."
+msgstr "Fel vid sparande av användare; ogiltig."
#: actions/passwordsettings.php:186 actions/recoverpassword.php:368
msgid "Can't save new password."
-msgstr "Kan inte spara det nya lösenordet."
+msgstr "Kan inte spara nytt lösenord."
#: actions/passwordsettings.php:192 actions/recoverpassword.php:211
msgid "Password saved."
-msgstr "Lösenord är sparat."
+msgstr "Lösenord sparat."
#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:308
msgid "Paths"
-msgstr ""
+msgstr "Sökvägar"
#: actions/pathsadminpanel.php:70
msgid "Path and server settings for this StatusNet site."
-msgstr ""
+msgstr "Sökvägs- och serverinställningar för denna StatusNet-webbplats."
#: actions/pathsadminpanel.php:140
-#, fuzzy, php-format
+#, php-format
msgid "Theme directory not readable: %s"
-msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat"
+msgstr "Katalog med teman är inte läsbar: %s"
#: actions/pathsadminpanel.php:146
#, php-format
msgid "Avatar directory not writable: %s"
-msgstr ""
+msgstr "Katalog med avatarer är inte skrivbar: %s"
#: actions/pathsadminpanel.php:152
#, php-format
msgid "Background directory not writable: %s"
-msgstr ""
+msgstr "Katalog med bakgrunder är inte skrivbar: %s"
#: actions/pathsadminpanel.php:160
#, php-format
msgid "Locales directory not readable: %s"
-msgstr ""
+msgstr "Katalog med lokaliseringfiler (locales) är inte läsbar. %s"
#: actions/pathsadminpanel.php:212 actions/siteadminpanel.php:58
#: lib/adminpanelaction.php:299
-#, fuzzy
msgid "Site"
-msgstr "Bjud in"
+msgstr "Webbplats"
#: actions/pathsadminpanel.php:216
msgid "Path"
-msgstr ""
+msgstr "Sökväg"
#: actions/pathsadminpanel.php:216
-#, fuzzy
msgid "Site path"
-msgstr "Nytt inlägg"
+msgstr "Sökväg till webbplats"
#: actions/pathsadminpanel.php:220
msgid "Path to locales"
-msgstr ""
+msgstr "Sökväg till lokaliseringfiler (locales)"
#: actions/pathsadminpanel.php:220
msgid "Directory path to locales"
-msgstr ""
+msgstr "Katalogsökväg till lokaliseringfiler (locales)"
#: actions/pathsadminpanel.php:227
msgid "Theme"
-msgstr ""
+msgstr "Teman"
#: actions/pathsadminpanel.php:232
msgid "Theme server"
-msgstr ""
+msgstr "Server med teman"
#: actions/pathsadminpanel.php:236
msgid "Theme path"
-msgstr ""
+msgstr "Sökväg till teman"
#: actions/pathsadminpanel.php:240
msgid "Theme directory"
-msgstr ""
+msgstr "Katalog med teman"
#: actions/pathsadminpanel.php:247
-#, fuzzy
msgid "Avatars"
-msgstr "Användarbild"
+msgstr "Avatarer"
#: actions/pathsadminpanel.php:252
-#, fuzzy
msgid "Avatar server"
-msgstr "Twitter inställningar"
+msgstr "Server med avatarer"
#: actions/pathsadminpanel.php:256
-#, fuzzy
msgid "Avatar path"
-msgstr "Användarbilden uppdaterad."
+msgstr "Sökväg till avatarer"
#: actions/pathsadminpanel.php:260
-#, fuzzy
msgid "Avatar directory"
-msgstr "Användarbilden uppdaterad."
+msgstr "Katalog med avatarer"
#: actions/pathsadminpanel.php:269
msgid "Backgrounds"
-msgstr ""
+msgstr "Bakgrunder"
#: actions/pathsadminpanel.php:273
msgid "Background server"
-msgstr ""
+msgstr "Server med bakgrunder"
#: actions/pathsadminpanel.php:277
msgid "Background path"
-msgstr ""
+msgstr "Sökväg till bakgrunder"
#: actions/pathsadminpanel.php:281
msgid "Background directory"
-msgstr ""
+msgstr "Katalog med bakgrunder"
#: actions/pathsadminpanel.php:297
-#, fuzzy
msgid "Save paths"
-msgstr "Nytt inlägg"
+msgstr "Spara sökvägar"
#: actions/peoplesearch.php:52
#, php-format
@@ -4610,11 +4529,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "Du kan uppdatera din personliga profil här"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5089,7 +5004,7 @@ msgstr "Tabort inlägg"
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "Minst 6 tecken"
@@ -5104,11 +5019,11 @@ msgstr "Skicka ett meddelande"
msgid "What's up, %s?"
msgstr "Vad är på gång, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5393,7 +5308,12 @@ msgstr "Kunde inte prenumerera på annat åt dig."
msgid "Not subscribed!"
msgstr "Ingen prenumerant!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Kunde inte radera prenumerationen. "
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Kunde inte radera prenumerationen. "
diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po
index fd36953430..b9461933d5 100644
--- a/locale/te/LC_MESSAGES/statusnet.po
+++ b/locale/te/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:50+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:11+0000\n"
"Language-Team: Telugu\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: te\n"
"X-Message-Group: out-statusnet\n"
@@ -182,7 +182,12 @@ msgstr "వాడుకరికి ప్రొఫైలు లేదు."
msgid "Could not save profile."
msgstr "ప్రొఫైలుని భద్రపరచలేకున్నాం."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "వాడుకరిని తాజాకరించలేకున్నాం."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "వాడుకరి నిరోధం విఫలమైంది."
@@ -818,101 +823,101 @@ msgstr "రూపురేఖలు"
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "తప్పుడు పరిమాణం."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "అలంకారం అందుబాటులో లేదు: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "చిహ్నాన్ని మార్చు"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "సైటు చిహ్నం"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "అలంకారాన్ని మార్చు"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "సైటు అలంకారం"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "సైటుకి అలంకారం."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "నేపథ్య చిత్రాన్ని మార్చు"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "నేపథ్యం"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "మీ స్వంత నేపథ్యపు చిత్రాన్ని మీరు ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం 2మెబై."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "రంగులను మార్చు"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "విషయం"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "పక్కపట్టీ"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "పాఠ్యం"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "లంకెలు"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -922,7 +927,7 @@ msgstr ""
msgid "Save"
msgstr "భద్రపరచు"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "రూపురేఖలని భద్రపరచు"
@@ -1346,19 +1351,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "వాడుకరిని తాజాకరించలేకున్నాం."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "అభిరుచులు భద్రమయ్యాయి."
@@ -1659,7 +1664,7 @@ msgstr "వ్యక్తిగత సందేశం"
msgid "Optionally add a personal message to the invitation."
msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్యక్తిగత సందేశం చేర్చండి."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "పంపించు"
@@ -1949,8 +1954,8 @@ msgstr "విషయ రకం "
msgid "Only "
msgstr "మాత్రమే "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4394,11 +4399,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "మీ స్వంత నేపథ్యపు చిత్రాన్ని మీరు ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం 2మెబై."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4850,7 +4851,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "అందుబాటులో ఉన్న అక్షరాలు"
@@ -4864,11 +4865,11 @@ msgstr "కొత్త సందేశం"
msgid "What's up, %s?"
msgstr "%s, సంగతులేమిటి?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "జోడించు"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "ఒక ఫైలుని జోడించు"
@@ -5145,7 +5146,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "చందాదార్లు"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "చందాని తొలగించలేకపోయాం."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "చందాని తొలగించలేకపోయాం."
diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po
index bbb9c2df96..e7ae86b4e7 100644
--- a/locale/tr/LC_MESSAGES/statusnet.po
+++ b/locale/tr/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:53+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:14+0000\n"
"Language-Team: Turkish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: tr\n"
"X-Message-Group: out-statusnet\n"
@@ -183,7 +183,12 @@ msgstr "Kullanıcının profili yok."
msgid "Could not save profile."
msgstr "Profil kaydedilemedi."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Kullanıcı güncellenemedi."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -836,50 +841,50 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Geçersiz büyüklük."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Parolayı değiştir"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Yeni durum mesajı"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Değiştir"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Yeni durum mesajı"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -887,59 +892,59 @@ msgid ""
msgstr ""
"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Parolayı değiştir"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Bağlan"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Ara"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Giriş"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -949,7 +954,7 @@ msgstr ""
msgid "Save"
msgstr "Kaydet"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1387,19 +1392,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Kullanıcı güncellenemedi."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Tercihler kaydedildi."
@@ -1716,7 +1721,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Gönder"
@@ -2015,8 +2020,8 @@ msgstr "Bağlan"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4495,11 +4500,7 @@ msgid ""
msgstr ""
"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4964,7 +4965,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 veya daha fazla karakter"
@@ -4979,11 +4980,11 @@ msgstr "Yeni durum mesajı"
msgid "What's up, %s?"
msgstr "N'aber %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5263,7 +5264,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Abonelik silinemedi."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Abonelik silinemedi."
diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po
index b3fb434654..165e56bca3 100644
--- a/locale/uk/LC_MESSAGES/statusnet.po
+++ b/locale/uk/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:20:56+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:17+0000\n"
"Language-Team: Ukrainian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: uk\n"
"X-Message-Group: out-statusnet\n"
@@ -189,7 +189,12 @@ msgstr "Користувач не має профілю."
msgid "Could not save profile."
msgstr "Не вдалося зберегти профіль."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Не можна відписатись від самого себе!"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "Спроба заблокувати користувача невдала."
@@ -825,45 +830,45 @@ msgstr "Дизайн"
msgid "Design settings for this StatusNet site."
msgstr "Налаштування дизайну для цього сайту StatusNet."
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
msgid "Invalid logo URL."
msgstr "Помилкова URL-адреса логотипу."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, php-format
msgid "Theme not available: %s"
msgstr "Тема не доступна: %s"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
msgid "Change logo"
msgstr "Змінити логотип"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
msgid "Site logo"
msgstr "Логотип сайту"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
msgid "Change theme"
msgstr "Змінити тему"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
msgid "Site theme"
msgstr "Тема сайту"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr "Тема для цього сайту."
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr "Змінити фонове зображення"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr "Фон"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -872,55 +877,55 @@ msgstr ""
"Ви можете завантажити фонове зображення для сайту. Максимальний розмір файлу "
"%1$s."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr "Увімк."
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr "Вимк."
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr "Увімкнути або вимкнути фонове зображення."
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr "Замостити фон"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
msgstr "Змінити кольори"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
msgid "Content"
msgstr "Зміст"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr "Бічна панель"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Текст"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
msgid "Links"
msgstr "Посилання"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr "За замовч."
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr "Оновити налаштування за замовчуванням"
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr "Повернутись до початкових налаштувань"
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -930,7 +935,7 @@ msgstr "Повернутись до початкових налаштувань"
msgid "Save"
msgstr "Зберегти"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr "Зберегти дизайн"
@@ -1366,18 +1371,18 @@ msgstr ""
"Налаштуйте вигляд сторінки групи, використовуючи фонове зображення і кольори "
"на свій смак."
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
msgid "Couldn't update your design."
msgstr "Не вдалося оновити дизайн."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr "Не маю можливості зберегти Ваші налаштування дизайну!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr "Преференції дизайну збережно."
@@ -1705,7 +1710,7 @@ msgstr "Особисті повідомлення"
msgid "Optionally add a personal message to the invitation."
msgstr "Можна додати персональне повідомлення до запрошення (опціонально)."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Так!"
@@ -2033,8 +2038,8 @@ msgstr "тип змісту "
msgid "Only "
msgstr "Лише "
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Такий формат даних не підтримується."
@@ -2823,11 +2828,9 @@ msgid "Invalid profile URL (bad format)"
msgstr "Недійсна URL-адреса профілю (неправильний формат)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
msgstr ""
-"Це недійсна URL-адреса профілю (немає документа YADIS; немає або помилкове "
-"визначення XRDS)."
+"Неправильна URL-адреса профілю (немає документа YADIS, або помилковий XRDS)."
#: actions/remotesubscribe.php:176
msgid "That’s a local profile! Login to subscribe."
@@ -4473,7 +4476,6 @@ msgstr[1] "Ви є учасником таких груп:"
msgstr[2] "Ви є учасником таких груп:"
#: lib/command.php:652
-#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4511,40 +4513,40 @@ msgid ""
"tracking - not yet implemented.\n"
msgstr ""
"Команди:\n"
-"on - увімкнути сповіщення\n"
-"off - вимкнути сповіщення\n"
-"help - список команд\n"
-"follow - підписатись до користувача\n"
-"groups - групи, до яких Ви входите\n"
-"subscriptions - користувачі, до яких Ви підписані\n"
-"subscribers - користувачі, які підписані до Вас\n"
-"leave - відписатись від користувача\n"
-"d - надіслати особисте повідомлення\n"
-"get - отримати останній допис користувача\n"
-"whois - інфо про користувача\n"
-"fav - додати останній допис користувача до обраних\n"
-"fav # - додати допис #номер до обраних\n"
-"reply # - відповісти на допис #номер\n"
-"reply - відповісти на останній допис користувача\n"
-"join - приєднатися до групи\n"
-"login - отримати посилання для входу у веб-інтерфейс\n"
-"drop - залишити групу\n"
-"stats - отримати статистику\n"
-"stop - те саме що і 'off'\n"
-"quit - те саме що і 'off'\n"
-"sub - те саме що і 'follow'\n"
-"unsub - те саме що і 'leave'\n"
-"last - те саме що і 'get'\n"
-"on - наразі не виконується\n"
-"off - наразі не виконується\n"
-"nudge - «розштовхати»\n"
-"invite - наразі не виконується\n"
-"track - наразі не виконується\n"
-"untrack - наразі не виконується\n"
-"track off - наразі не виконується\n"
-"untrack all - наразі не виконується\n"
-"tracks - наразі не виконується\n"
-"tracking - наразі не виконується\n"
+"on — увімкнути сповіщення\n"
+"off — вимкнути сповіщення\n"
+"help — список команд\n"
+"follow — підписатись до користувача\n"
+"groups — групи, до яких Ви входите\n"
+"subscriptions — користувачі, до яких Ви підписані\n"
+"subscribers — користувачі, які підписані до Вас\n"
+"leave — відписатись від користувача\n"
+"d — надіслати особисте повідомлення\n"
+"get — отримати останній допис користувача\n"
+"whois — інфо про користувача\n"
+"fav — додати останній допис користувача до обраних\n"
+"fav # — додати допис до обраних\n"
+"reply # — відповісти на допис\n"
+"reply — відповісти на останній допис користувача\n"
+"join — приєднатися до групи\n"
+"login — отримати посилання для входу у веб-інтерфейс\n"
+"drop — залишити групу\n"
+"stats — отримати статистику\n"
+"stop — те саме що і 'off'\n"
+"quit — те саме що і 'off'\n"
+"sub — те саме що і 'follow'\n"
+"unsub — те саме що і 'leave'\n"
+"last — те саме що і 'get'\n"
+"on — наразі не виконується\n"
+"off — наразі не виконується\n"
+"nudge — «розштовхати»\n"
+"invite — наразі не виконується\n"
+"track — наразі не виконується\n"
+"untrack — наразі не виконується\n"
+"track off — наразі не виконується\n"
+"untrack all — наразі не виконується\n"
+"tracks — наразі не виконується\n"
+"tracking — наразі не виконується\n"
#: lib/common.php:199
msgid "No configuration file found. "
@@ -4589,11 +4591,7 @@ msgstr ""
"Ви можете завантажити власне фонове зображення. Максимальний розмір файлу "
"становить 2Мб."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr "Помилка кольорів за замовчуванням: "
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr "Дизайн за замовчуванням відновлено."
@@ -5128,7 +5126,7 @@ msgstr "Надіслати прямий допис"
msgid "To"
msgstr "До"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
msgid "Available characters"
msgstr "Лишилось знаків"
@@ -5141,11 +5139,11 @@ msgstr "Надіслати допис"
msgid "What's up, %s?"
msgstr "Що нового, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr "Вкласти"
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr "Вкласти файл"
@@ -5412,7 +5410,12 @@ msgstr "Не вдалося підписати інших до Вас."
msgid "Not subscribed!"
msgstr "Не підписано!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Не вдалося видалити підписку."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Не вдалося видалити підписку."
diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po
index b77e2e8fc4..bf323467cb 100644
--- a/locale/vi/LC_MESSAGES/statusnet.po
+++ b/locale/vi/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:21:00+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:19+0000\n"
"Language-Team: Vietnamese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: vi\n"
"X-Message-Group: out-statusnet\n"
@@ -184,7 +184,12 @@ msgstr "Người dùng không có thông tin."
msgid "Could not save profile."
msgstr "Không thể lưu hồ sơ cá nhân."
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "Không thể cập nhật thành viên."
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -846,52 +851,52 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "Kích thước không hợp lệ."
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận."
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "Thay đổi mật khẩu của bạn"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "Thư mời"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "Thay đổi"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "Thông báo mới"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
#, fuzzy
msgid "Change background image"
msgstr "Background Theme:"
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
#, fuzzy
msgid "Background"
msgstr "Background Theme:"
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
@@ -900,60 +905,60 @@ msgstr ""
"Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin "
"về bạn."
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
#, fuzzy
msgid "Tile background image"
msgstr "Background Theme:"
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "Thay đổi mật khẩu của bạn"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "Kết nối"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "Tìm kiếm"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "Chuỗi bất kỳ"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "Đăng nhập"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -963,7 +968,7 @@ msgstr ""
msgid "Save"
msgstr "Lưu"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
#, fuzzy
msgid "Save design"
msgstr "Lưu"
@@ -1431,20 +1436,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "Không thể cập nhật thành viên."
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "Không thể lưu thông tin Twitter của bạn!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "Các tính năng đã được lưu."
@@ -1772,7 +1777,7 @@ msgstr "Tin nhắn cá nhân"
msgid "Optionally add a personal message to the invitation."
msgstr "Không bắt buộc phải thêm thông điệp vào thư mời."
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "Gửi"
@@ -2106,8 +2111,8 @@ msgstr "Kết nối"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "Không hỗ trợ định dạng dữ liệu này."
@@ -4664,11 +4669,7 @@ msgstr ""
"Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin "
"về bạn."
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5189,7 +5190,7 @@ msgstr "Xóa tin nhắn"
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "Nhiều hơn 6 ký tự"
@@ -5204,11 +5205,11 @@ msgstr "Thông báo mới"
msgid "What's up, %s?"
msgstr "Bạn đang làm gì thế, %s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5499,7 +5500,12 @@ msgstr "Không thể tạo favorite."
msgid "Not subscribed!"
msgstr "Chưa đăng nhận!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "Không thể xóa đăng nhận."
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "Không thể xóa đăng nhận."
diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po
index 2d0853339c..041b4402e9 100644
--- a/locale/zh_CN/LC_MESSAGES/statusnet.po
+++ b/locale/zh_CN/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:21:03+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:23+0000\n"
"Language-Team: Simplified Chinese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: out-statusnet\n"
@@ -186,7 +186,12 @@ msgstr "用户没有个人信息。"
msgid "Could not save profile."
msgstr "无法保存个人信息。"
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "无法更新用户。"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr "阻止用户失败。"
@@ -842,110 +847,110 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "大小不正确。"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "这个页面不提供您想要的媒体类型"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "修改密码"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "邀请"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "修改"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "新通告"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
#, fuzzy
msgid "Theme for the site."
msgstr "登出本站"
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, fuzzy, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr "你可以给你的组上载一个logo图。"
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "修改密码"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "连接"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
#, fuzzy
msgid "Sidebar"
msgstr "搜索"
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr "文本"
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "登录"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -955,7 +960,7 @@ msgstr ""
msgid "Save"
msgstr "保存"
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1404,20 +1409,20 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "无法更新用户。"
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
#, fuzzy
msgid "Unable to save your design settings!"
msgstr "无法保存 Twitter 设置!"
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
#, fuzzy
msgid "Design preferences saved."
msgstr "同步选项已保存。"
@@ -1731,7 +1736,7 @@ msgstr "个人消息"
msgid "Optionally add a personal message to the invitation."
msgstr "在邀请中加几句话(可选)。"
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr "发送"
@@ -2048,8 +2053,8 @@ msgstr "连接"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr "不支持的数据格式。"
@@ -4568,11 +4573,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr "您可以在这里上传个人头像。"
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -5048,7 +5049,7 @@ msgstr "删除通告"
msgid "To"
msgstr "到"
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6 个或更多字符"
@@ -5063,11 +5064,11 @@ msgstr "发送消息"
msgid "What's up, %s?"
msgstr "怎么样,%s?"
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5355,7 +5356,12 @@ msgstr "无法订阅他人更新。"
msgid "Not subscribed!"
msgstr "未订阅!"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "无法删除订阅。"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "无法删除订阅。"
diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po
index 17a54af33a..4325d5cde6 100644
--- a/locale/zh_TW/LC_MESSAGES/statusnet.po
+++ b/locale/zh_TW/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-02 23:18+0000\n"
-"PO-Revision-Date: 2009-12-02 23:21:06+0000\n"
+"POT-Creation-Date: 2009-12-05 19:53+0000\n"
+"PO-Revision-Date: 2009-12-05 19:55:27+0000\n"
"Language-Team: Traditional Chinese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59683); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: zh-hant\n"
"X-Message-Group: out-statusnet\n"
@@ -183,7 +183,12 @@ msgstr ""
msgid "Could not save profile."
msgstr "無法儲存個人資料"
-#: actions/apiblockcreate.php:108
+#: actions/apiblockcreate.php:105
+#, fuzzy
+msgid "You cannot block yourself!"
+msgstr "無法更新使用者"
+
+#: actions/apiblockcreate.php:119
msgid "Block user failed."
msgstr ""
@@ -830,108 +835,108 @@ msgstr ""
msgid "Design settings for this StatusNet site."
msgstr ""
-#: actions/designadminpanel.php:270
+#: actions/designadminpanel.php:275
#, fuzzy
msgid "Invalid logo URL."
msgstr "尺寸錯誤"
-#: actions/designadminpanel.php:274
+#: actions/designadminpanel.php:279
#, fuzzy, php-format
msgid "Theme not available: %s"
msgstr "個人首頁位址錯誤"
-#: actions/designadminpanel.php:370
+#: actions/designadminpanel.php:375
#, fuzzy
msgid "Change logo"
msgstr "更改密碼"
-#: actions/designadminpanel.php:375
+#: actions/designadminpanel.php:380
#, fuzzy
msgid "Site logo"
msgstr "新訊息"
-#: actions/designadminpanel.php:382
+#: actions/designadminpanel.php:387
#, fuzzy
msgid "Change theme"
msgstr "更改"
-#: actions/designadminpanel.php:399
+#: actions/designadminpanel.php:404
#, fuzzy
msgid "Site theme"
msgstr "新訊息"
-#: actions/designadminpanel.php:400
+#: actions/designadminpanel.php:405
msgid "Theme for the site."
msgstr ""
-#: actions/designadminpanel.php:412 lib/designsettings.php:101
+#: actions/designadminpanel.php:417 lib/designsettings.php:101
msgid "Change background image"
msgstr ""
-#: actions/designadminpanel.php:417 actions/designadminpanel.php:492
+#: actions/designadminpanel.php:422 actions/designadminpanel.php:497
#: lib/designsettings.php:178
msgid "Background"
msgstr ""
-#: actions/designadminpanel.php:422
+#: actions/designadminpanel.php:427
#, php-format
msgid ""
"You can upload a background image for the site. The maximum file size is %1"
"$s."
msgstr ""
-#: actions/designadminpanel.php:452 lib/designsettings.php:139
+#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
msgstr ""
-#: actions/designadminpanel.php:468 lib/designsettings.php:155
+#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
msgstr ""
-#: actions/designadminpanel.php:469 lib/designsettings.php:156
+#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
msgstr ""
-#: actions/designadminpanel.php:474 lib/designsettings.php:161
+#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
msgstr ""
-#: actions/designadminpanel.php:483 lib/designsettings.php:170
+#: actions/designadminpanel.php:488 lib/designsettings.php:170
#, fuzzy
msgid "Change colours"
msgstr "更改密碼"
-#: actions/designadminpanel.php:505 lib/designsettings.php:191
+#: actions/designadminpanel.php:510 lib/designsettings.php:191
#, fuzzy
msgid "Content"
msgstr "連結"
-#: actions/designadminpanel.php:518 lib/designsettings.php:204
+#: actions/designadminpanel.php:523 lib/designsettings.php:204
msgid "Sidebar"
msgstr ""
-#: actions/designadminpanel.php:531 lib/designsettings.php:217
+#: actions/designadminpanel.php:536 lib/designsettings.php:217
msgid "Text"
msgstr ""
-#: actions/designadminpanel.php:544 lib/designsettings.php:230
+#: actions/designadminpanel.php:549 lib/designsettings.php:230
#, fuzzy
msgid "Links"
msgstr "登入"
-#: actions/designadminpanel.php:572 lib/designsettings.php:247
+#: actions/designadminpanel.php:577 lib/designsettings.php:247
msgid "Use defaults"
msgstr ""
-#: actions/designadminpanel.php:573 lib/designsettings.php:248
+#: actions/designadminpanel.php:578 lib/designsettings.php:248
msgid "Restore default designs"
msgstr ""
-#: actions/designadminpanel.php:579 lib/designsettings.php:254
+#: actions/designadminpanel.php:584 lib/designsettings.php:254
msgid "Reset back to default"
msgstr ""
-#: actions/designadminpanel.php:581 actions/emailsettings.php:195
+#: actions/designadminpanel.php:586 actions/emailsettings.php:195
#: actions/imsettings.php:163 actions/othersettings.php:126
#: actions/pathsadminpanel.php:296 actions/profilesettings.php:167
#: actions/siteadminpanel.php:421 actions/smssettings.php:181
@@ -941,7 +946,7 @@ msgstr ""
msgid "Save"
msgstr ""
-#: actions/designadminpanel.php:582 lib/designsettings.php:257
+#: actions/designadminpanel.php:587 lib/designsettings.php:257
msgid "Save design"
msgstr ""
@@ -1375,19 +1380,19 @@ msgid ""
"palette of your choice."
msgstr ""
-#: actions/groupdesignsettings.php:262 actions/userdesignsettings.php:186
-#: lib/designsettings.php:434 lib/designsettings.php:464
+#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
#, fuzzy
msgid "Couldn't update your design."
msgstr "無法更新使用者"
-#: actions/groupdesignsettings.php:286 actions/groupdesignsettings.php:296
+#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297
#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
msgid "Unable to save your design settings!"
msgstr ""
-#: actions/groupdesignsettings.php:307 actions/userdesignsettings.php:231
+#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231
msgid "Design preferences saved."
msgstr ""
@@ -1691,7 +1696,7 @@ msgstr ""
msgid "Optionally add a personal message to the invitation."
msgstr ""
-#: actions/invite.php:197 lib/messageform.php:181 lib/noticeform.php:225
+#: actions/invite.php:197 lib/messageform.php:180 lib/noticeform.php:224
msgid "Send"
msgstr ""
@@ -1977,8 +1982,8 @@ msgstr "連結"
msgid "Only "
msgstr ""
-#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:999
-#: lib/api.php:1027 lib/api.php:1137
+#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
+#: lib/api.php:1024 lib/api.php:1134
msgid "Not a supported data format."
msgstr ""
@@ -4410,11 +4415,7 @@ msgid ""
"You can upload your personal background image. The maximum file size is 2MB."
msgstr ""
-#: lib/designsettings.php:372
-msgid "Bad default color settings: "
-msgstr ""
-
-#: lib/designsettings.php:468
+#: lib/designsettings.php:418
msgid "Design defaults restored."
msgstr ""
@@ -4875,7 +4876,7 @@ msgstr ""
msgid "To"
msgstr ""
-#: lib/messageform.php:162 lib/noticeform.php:186
+#: lib/messageform.php:161 lib/noticeform.php:185
#, fuzzy
msgid "Available characters"
msgstr "6個以上字元"
@@ -4890,11 +4891,11 @@ msgstr "新訊息"
msgid "What's up, %s?"
msgstr ""
-#: lib/noticeform.php:193
+#: lib/noticeform.php:192
msgid "Attach"
msgstr ""
-#: lib/noticeform.php:197
+#: lib/noticeform.php:196
msgid "Attach a file"
msgstr ""
@@ -5169,7 +5170,12 @@ msgstr ""
msgid "Not subscribed!"
msgstr "此帳號已註冊"
-#: lib/subs.php:140
+#: lib/subs.php:133
+#, fuzzy
+msgid "Couldn't delete self-subscription."
+msgstr "無法刪除帳號"
+
+#: lib/subs.php:146
msgid "Couldn't delete subscription."
msgstr "無法刪除帳號"
From a555963f979a26e1276e28b56f2cab048155d7fd Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Sat, 5 Dec 2009 23:12:56 +0000
Subject: [PATCH 35/51] Preliminary UI for Play/Pause behaviour on hover state
for notices
---
plugins/Realtime/realtimeupdate.js | 57 +++++++++++++++++++-----------
1 file changed, 36 insertions(+), 21 deletions(-)
diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js
index ce0297339d..a760158b02 100644
--- a/plugins/Realtime/realtimeupdate.js
+++ b/plugins/Realtime/realtimeupdate.js
@@ -191,13 +191,13 @@ RealtimeUpdate = {
initActions: function(url, timeline, path)
{
- var NP = $('#notices_primary');
- NP.prepend('
');
+ $('#realtime_play').bind('click', function() {
+ RealtimeUpdate.addNoticesHover();
RealtimeUpdate.showPause();
-
- RealtimeUpdate.showQueuedNotices();
-
return false;
});
},
@@ -259,13 +255,32 @@ RealtimeUpdate = {
$('#realtime_playpause #queued_counter').empty();
},
+ addNoticesHover: function()
+ {
+ $('#notices_primary .notices').hover(
+ function() {
+ if (RealtimeUpdate._paused === false) {
+ RealtimeUpdate.showPlay();
+ }
+ },
+ function() {
+ if (RealtimeUpdate._paused === true) {
+ RealtimeUpdate.showPause();
+ }
+ }
+ );
+ },
+
+ removeNoticesHover: function()
+ {
+ $('#notices_primary .notices').unbind('hover');
+ },
+
initAddPopup: function(url, timeline, path)
{
- var NP = $('#realtime_timeline');
- NP.append('');
+ $('#realtime_timeline').append('');
- var PP = $('#realtime_popup');
- PP.bind('click', function() {
+ $('#realtime_popup').bind('click', function() {
window.open(url,
'',
'toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550');
From 75cac0fd6b94f77ec8ff32ebc89ec513ee102831 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 21:03:27 -0500
Subject: [PATCH 36/51] Added 'login' command that gives you a link that can be
used to login to the website
---
actions/login.php | 9 +++-----
classes/Login_token.php | 42 ++++++++++++++++++++++++++++++++++++++
classes/statusnet.ini | 1 +
db/08to09.sql | 11 +++++++++-
db/08to09_pg.sql | 10 ++++++++-
db/statusnet.sql | 10 +++++++++
db/statusnet_pg.sql | 12 ++++++++++-
lib/command.php | 27 ++++++++++++++++++++++++
lib/commandinterpreter.php | 6 ++++++
lib/router.php | 2 ++
10 files changed, 121 insertions(+), 9 deletions(-)
create mode 100644 classes/Login_token.php
diff --git a/actions/login.php b/actions/login.php
index cd13268134..cee29fd09e 100644
--- a/actions/login.php
+++ b/actions/login.php
@@ -79,6 +79,8 @@ class LoginAction extends Action
$this->clientError(_('Already logged in.'));
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->checkLogin();
+ } else if (isset($args['user_id']) && isset($args['token'])){
+ $this->checkLogin($args['user_id'],$args['token']);
} else {
common_ensure_session();
$this->showForm();
@@ -95,7 +97,7 @@ class LoginAction extends Action
* @return void
*/
- function checkLogin()
+ function checkLogin($user_id=null, $token=null)
{
if(isset($token) && isset($user_id)){
//Token based login (from the LoginCommand)
@@ -137,11 +139,6 @@ class LoginAction extends Action
$user = common_check_user($nickname, $password);
}
- $nickname = common_canonical_nickname($this->trimmed('nickname'));
- $password = $this->arg('password');
-
- $user = common_check_user($nickname, $password);
-
if (!$user) {
$this->showForm(_('Incorrect username or password.'));
return;
diff --git a/classes/Login_token.php b/classes/Login_token.php
new file mode 100644
index 0000000000..c172b30abc
--- /dev/null
+++ b/classes/Login_token.php
@@ -0,0 +1,42 @@
+.
+ */
+
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+
+require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
+
+class Login_token extends Memcached_DataObject
+{
+ ###START_AUTOCODE
+ /* the code below is auto generated do not remove the above tag */
+
+ public $__table = 'login_token'; // table name
+ public $user_id; // int(4) primary_key not_null
+ public $token; // char(32) not_null
+ public $created; // datetime() not_null
+ public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
+
+ /* Static get */
+ function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Login_token',$k,$v); }
+
+ /* the code above is auto generated do not remove the tag below */
+ ###END_AUTOCODE
+}
diff --git a/classes/statusnet.ini b/classes/statusnet.ini
index 835faeb0b4..253f458798 100644
--- a/classes/statusnet.ini
+++ b/classes/statusnet.ini
@@ -260,6 +260,7 @@ modified = 384
[login_token__keys]
user_id = K
+token = K
[message]
id = 129
diff --git a/db/08to09.sql b/db/08to09.sql
index 8d463fab4c..64640f4ced 100644
--- a/db/08to09.sql
+++ b/db/08to09.sql
@@ -72,4 +72,13 @@ create table location_namespace (
created datetime not null comment 'date the record was created',
modified timestamp comment 'date this record was modified'
-) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
\ No newline at end of file
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table login_token (
+ user_id integer not null comment 'user owning this token' references user (id),
+ token char(32) not null comment 'token useable for logging in',
+ created datetime not null comment 'date this record was created',
+ modified timestamp comment 'date this record was modified',
+
+ constraint primary key (user_id)
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
diff --git a/db/08to09_pg.sql b/db/08to09_pg.sql
index b312d47dd8..0bd47dea56 100644
--- a/db/08to09_pg.sql
+++ b/db/08to09_pg.sql
@@ -39,6 +39,15 @@ create table profile_role (
);
+create table login_token (
+ user_id integer not null /* comment 'user owning this token'*/ references "user" (id),
+ token char(32) not null /* comment 'token useable for logging in'*/,
+ created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created'*/,
+ modified timestamp /* comment 'date this record was modified'*/,
+
+ primary key (user_id)
+);
+
DROP index fave_user_id_idx;
CREATE index fave_user_id_idx on fave (user_id,modified);
@@ -60,4 +69,3 @@ ALTER TABLE profile ADD COLUMN lat decimal(10,7) /*comment 'latitude'*/ ;
ALTER TABLE profile ADD COLUMN lon decimal(10,7) /*comment 'longitude'*/;
ALTER TABLE profile ADD COLUMN location_id integer /* comment 'location id if possible'*/;
ALTER TABLE profile ADD COLUMN location_ns integer /* comment 'namespace for location'*/;
-
\ No newline at end of file
diff --git a/db/statusnet.sql b/db/statusnet.sql
index f7b3b113b4..18abcdfdb2 100644
--- a/db/statusnet.sql
+++ b/db/statusnet.sql
@@ -575,3 +575,13 @@ create table location_namespace (
modified timestamp comment 'date this record was modified'
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table login_token (
+ user_id integer not null comment 'user owning this token' references user (id),
+ token char(32) not null comment 'token useable for logging in',
+ created datetime not null comment 'date this record was created',
+ modified timestamp comment 'date this record was modified',
+
+ constraint primary key (user_id)
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
diff --git a/db/statusnet_pg.sql b/db/statusnet_pg.sql
index cd72d66eab..81b329d1e5 100644
--- a/db/statusnet_pg.sql
+++ b/db/statusnet_pg.sql
@@ -570,4 +570,14 @@ create table profile_role (
primary key (profile_id, role)
-);
\ No newline at end of file
+);
+
+create table login_token (
+ user_id integer not null /* comment 'user owning this token'*/ references "user" (id),
+ token char(32) not null /* comment 'token useable for logging in'*/,
+ created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created'*/,
+ modified timestamp /* comment 'date this record was modified'*/,
+
+ primary key (user_id)
+);
+
diff --git a/lib/command.php b/lib/command.php
index bcc551c817..7e98156b66 100644
--- a/lib/command.php
+++ b/lib/command.php
@@ -579,6 +579,32 @@ class OnCommand extends Command
}
}
+class LoginCommand extends Command
+{
+ function execute($channel)
+ {
+ $login_token = Login_token::staticGet('user_id',$this->user->id);
+ if($login_token){
+ $login_token->delete();
+ }
+ $login_token = new Login_token();
+ $login_token->user_id = $this->user->id;
+ $login_token->token = common_good_rand(16);
+ $login_token->created = common_sql_now();
+ $result = $login_token->insert();
+ if (!$result) {
+ common_log_db_error($login_token, 'INSERT', __FILE__);
+ $channel->error($this->user, sprintf(_('Could not create login token for %s'),
+ $this->user->nickname));
+ return;
+ }
+ $channel->output($this->user,
+ sprintf(_('This link is useable only once, and is good for only 2 minutes: %s'),
+ common_local_url('login',
+ array('user_id'=>$login_token->user_id, 'token'=>$login_token->token))));
+ }
+}
+
class SubscriptionsCommand extends Command
{
function execute($channel)
@@ -666,6 +692,7 @@ class HelpCommand extends Command
"reply # - reply to notice with a given id\n".
"reply - reply to the last notice from user\n".
"join - join group\n".
+ "login - Get a link to login to the web interface\n".
"drop - leave group\n".
"stats - get your stats\n".
"stop - same as 'off'\n".
diff --git a/lib/commandinterpreter.php b/lib/commandinterpreter.php
index 25f2e4b3eb..665015afcc 100644
--- a/lib/commandinterpreter.php
+++ b/lib/commandinterpreter.php
@@ -41,6 +41,12 @@ class CommandInterpreter
return null;
}
return new HelpCommand($user);
+ case 'login':
+ if ($arg) {
+ return null;
+ } else {
+ return new LoginCommand($user);
+ }
case 'subscribers':
if ($arg) {
return null;
diff --git a/lib/router.php b/lib/router.php
index 1a090861e4..37525319f7 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -88,6 +88,8 @@ class Router
$m->connect('doc/:title', array('action' => 'doc'));
+ $m->connect('main/login?user_id=:user_id&token=:token', array('action'=>'login'), array('user_id'=> '[0-9]+', 'token'=>'.+'));
+
// main stuff is repetitive
$main = array('login', 'logout', 'register', 'subscribe',
From 3b14b61fa745d4906796ac49e78ae712f61e9643 Mon Sep 17 00:00:00 2001
From: Craig Andrews
Date: Sat, 5 Dec 2009 21:04:20 -0500
Subject: [PATCH 37/51] Add a configuration option to disable the login
command.
$config['logincommand']['disabled'] = true;
This commit should be reverted once the command has been sufficiently tested and trusted.
---
actions/login.php | 5 ++++-
lib/command.php | 5 +++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/actions/login.php b/actions/login.php
index cee29fd09e..a6f86c0ca1 100644
--- a/actions/login.php
+++ b/actions/login.php
@@ -75,11 +75,14 @@ class LoginAction extends Action
function handle($args)
{
parent::handle($args);
+
+ $disabled = common_config('logincommand','disabled');
+
if (common_is_real_login()) {
$this->clientError(_('Already logged in.'));
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->checkLogin();
- } else if (isset($args['user_id']) && isset($args['token'])){
+ } else if (!isset($disabled) && isset($args['user_id']) && isset($args['token'])){
$this->checkLogin($args['user_id'],$args['token']);
} else {
common_ensure_session();
diff --git a/lib/command.php b/lib/command.php
index 7e98156b66..e2a6655111 100644
--- a/lib/command.php
+++ b/lib/command.php
@@ -583,6 +583,11 @@ class LoginCommand extends Command
{
function execute($channel)
{
+ $disabled = common_config('logincommand','disabled');
+ if(isset($disabled)) {
+ $channel->error($this->user, _('Login command is disabled'));
+ return;
+ }
$login_token = Login_token::staticGet('user_id',$this->user->id);
if($login_token){
$login_token->delete();
From 49005881bd31a022e59574277866aada41e4b76d Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Sun, 6 Dec 2009 22:07:49 +0000
Subject: [PATCH 38/51] Minor fix for play/pause mouseleave
---
plugins/Realtime/realtimeupdate.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js
index a760158b02..577499bf7f 100644
--- a/plugins/Realtime/realtimeupdate.js
+++ b/plugins/Realtime/realtimeupdate.js
@@ -197,7 +197,6 @@ RealtimeUpdate = {
RealtimeUpdate.initPlayPause();
RealtimeUpdate.initAddPopup(url, timeline, RealtimeUpdate._pluginPath);
- RealtimeUpdate.addNoticesHover();
},
initPlayPause: function()
@@ -209,6 +208,7 @@ RealtimeUpdate = {
{
RealtimeUpdate._paused = false;
RealtimeUpdate.showQueuedNotices();
+ RealtimeUpdate.addNoticesHover();
$('#realtime_playpause').remove();
$('#realtime_actions').prepend('');
@@ -228,7 +228,6 @@ RealtimeUpdate = {
$('#realtime_actions').prepend('
');
$('#realtime_play').bind('click', function() {
- RealtimeUpdate.addNoticesHover();
RealtimeUpdate.showPause();
return false;
});
@@ -273,7 +272,7 @@ RealtimeUpdate = {
removeNoticesHover: function()
{
- $('#notices_primary .notices').unbind('hover');
+ $('#notices_primary .notices').unbind();
},
initAddPopup: function(url, timeline, path)
From af0f905e2487bd00a0c888f1ddc704fb8ce44731 Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Mon, 7 Dec 2009 09:55:12 +0000
Subject: [PATCH 39/51] If the XHR error suggests that the xhr.status is 0
(i.e., it didn't receive an XHR object as expected), threat it as a success
like HTTP 20x or 30x because the notice most likely went through.
jquery.form.js (for file uploads) and meteor.js both use an iframe and they
(somehow) appear to be in conflict. Notice always goes through, however,
xhr.status is 0. Further investigation is needed.
---
js/util.js | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/js/util.js b/js/util.js
index 73fcf37bee..259d566596 100644
--- a/js/util.js
+++ b/js/util.js
@@ -192,12 +192,13 @@ var SN = { // StatusNet
form.append(document._importNode($('.'+SN.C.S.Error, xhr.responseXML)[0], true));
}
else {
- if(jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) < 0) {
- form.append('
(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.
');
}
}
}
From c9b6a90c99691089e8552fb3094e6432766233ed Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Mon, 7 Dec 2009 10:08:07 +0000
Subject: [PATCH 40/51] Use .resetForm() instead of manually setting notice
form's control values to null
---
js/util.js | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/js/util.js b/js/util.js
index 259d566596..c6e546bd0e 100644
--- a/js/util.js
+++ b/js/util.js
@@ -249,9 +249,7 @@ var SN = { // StatusNet
form.append('
Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.
');
}
else {
if ($('.'+SN.C.S.Error, xhr.responseXML).length > 0) {
@@ -198,7 +198,7 @@ var SN = { // StatusNet
SN.U.FormNoticeEnhancements($('#'+form_id));
}
else {
- form.append('
(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.
');
}
}
}
From c4f329ed54dbaca99fe1589f0c8d715e875743e5 Mon Sep 17 00:00:00 2001
From: Sarven Capadisli
Date: Mon, 7 Dec 2009 10:26:29 +0000
Subject: [PATCH 42/51] Added form_response class to XHR notice posts
---
js/util.js | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/js/util.js b/js/util.js
index 972c97d12d..ed6a781f74 100644
--- a/js/util.js
+++ b/js/util.js
@@ -184,8 +184,9 @@ var SN = { // StatusNet
form.removeClass(SN.C.S.Processing);
$('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled);
$('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled, SN.C.S.Disabled);
+ $('#'+form_id+' .form_response').remove();
if (textStatus == 'timeout') {
- form.append('
Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.
');
+ form.append('
Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.
');
}
else {
if ($('.'+SN.C.S.Error, xhr.responseXML).length > 0) {
@@ -198,17 +199,18 @@ var SN = { // StatusNet
SN.U.FormNoticeEnhancements($('#'+form_id));
}
else {
- form.append('
(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.
');
+ form.append('
(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.
');
}
}
}
},
success: function(data, textStatus) {
+ $('#'+form_id+' .form_response').remove();
var result;
if ($('#'+SN.C.S.Error, data).length > 0) {
result = document._importNode($('p', data)[0], true);
result = result.textContent || result.innerHTML;
- form.append('
'+result+'
');
+ form.append('
'+result+'
');
}
else {
if($('body')[0].id == 'bookmarklet') {
@@ -218,7 +220,7 @@ var SN = { // StatusNet
if ($('#'+SN.C.S.CommandResult, data).length > 0) {
result = document._importNode($('p', data)[0], true);
result = result.textContent || result.innerHTML;
- form.append('
'+result+'
');
+ form.append('
'+result+'
');
}
else {
var notices = $('#notices_primary .notices');
@@ -246,7 +248,7 @@ var SN = { // StatusNet
else {
result = document._importNode($('title', data)[0], true);
result_title = result.textContent || result.innerHTML;
- form.append('
Here, like the first example, we know the Last-Modified time,
-but we also want to set the Content-Length to increase cacheability and allow
-HTTP persistent connections. Instead of sending headers immediately, we first
-generate our content, then use setContentLength(strlen($content))
-to add the header. Then finally call sendHeaders() and send the
-content.
-
Note: This is not required if your PHP config buffers all
-output and your script doesn\'t do any incremental flushing of the output
-buffer. PHP will generally set Content-Length for you if it can.
-
This script emulates a document that changes every ' .$every. ' seconds.
- This is version: ' . date('r', $lastModified) . '
-';
-
-require '_include.php';
-$content = get_content(array(
- 'title' => $title
- ,'explain' => $explain
-));
-
-$cg->setContentLength(strlen($content));
-$cg->sendHeaders();
-send_slowly($content);
-
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php
deleted file mode 100644
index 8f5482ba89..0000000000
--- a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/3.php
+++ /dev/null
@@ -1,40 +0,0 @@
-When Last-Modified is unknown, you can still use ETags, but you need a short
-string that is unique for that content. In the worst case, you have to generate
-all the content first, then instantiate HTTP_ConditionalGet, setting
-the array key contentHash to the output of a hash function of the
-content. Since we have the full content, we might as well also use
-setContentLength(strlen($content)) in the case where we need to
-send it.
-
This script emulates a document that changes every ' .$every. ' seconds.
- This is version: ' . date('r', $lastModified) . '
Using ConditionalGet and Encoder is straightforward. First impliment the
-ConditionalGet, then if the cache is not valid, encode and send the content
-
This script emulates a document that changes every ' .$every. ' seconds.
- This is version: ' . date('r', $lastModified) . '
-';
-require '_include.php';
-$content = get_content(array(
- 'title' => $title
- ,'explain' => $explain
-));
-
-$he = new HTTP_Encoder(array(
- 'content' => get_content(array(
- 'title' => $title
- ,'explain' => $explain
- ))
-));
-$he->encode();
-
-// usually you would just $he->sendAll(), but here we want to emulate slow
-// connection
-$he->sendHeaders();
-send_slowly($he->getContent());
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php
deleted file mode 100644
index b443c19734..0000000000
--- a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/5.php
+++ /dev/null
@@ -1,27 +0,0 @@
- 20
- ,'lastModifiedTime' => filemtime(__FILE__)
-));
-$cg->sendHeaders();
-
-// generate, send content
-$title = 'Last-Modified + Expires';
-$explain = '
-
Here we set a static "lastModifiedTime" and "maxAge" to 20. The browser
-will consider this document fresh for 20 seconds, then revalidate its cache. After
-the 304 response, the cache will be good for another 20 seconds. Unless you force
-a reload, there will only be 304 responses for this page after the initial download.
-';
-
-require '_include.php';
-echo get_content(array(
- 'title' => $title
- ,'explain' => $explain
-));
-
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
deleted file mode 100644
index 9b65ae12e4..0000000000
--- a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
For these pages all 200 responses are sent in chunks a second apart, so you
-should notice that 304 responses are quicker. You can also use HTTP sniffers
-like Fiddler (win) and
-LiveHTTPHeaders (Firefox add-on)
-to verify headers and content being sent.
-
Browser notes
-
-
Opera
-
Opera has a couple behaviors against the HTTP spec: Manual refreshes (F5)
- prevents the ETag/If-Modified-Since headers from being sent; it only sends
- them when following a link or bookmark. Also, Opera will not honor the
- must-revalidate Cache-Control value unless max-age
- is set. To get Opera to follow the spec, ConditionalGet will send Opera max-age=0
- (if one is not already set).
-
Safari
-
ETag validation is unsupported, but Safari supports HTTP/1.0 validation via
- If-Modified-Since headers as long as the cache is explicitly marked
- "public" or "private" ("private" is default in ConditionalGet).
If your content has not changed since a certain timestamp, set this via the
-the lastModifiedTime array key when instantiating HTTP_ConditionalGet.
-You can immediately call the method sendHeaders() to set the
-Last-Modified, ETag, and Cache-Control headers. The, if cacheIsValid
-property is false, you echo the content.
-
This script emulates a document that changes every ' .$every. ' seconds.
- This is version: ' . date('r', $lastModified) . '
-
-
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html
deleted file mode 100644
index 58ba2bb988..0000000000
--- a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before.min.html
+++ /dev/null
@@ -1,36 +0,0 @@
-css Zen Garden: The Beauty in CSS Design
Browser != IE
css Zen Garden
The Beauty of CSS Design
- White space is important here!
-
A demonstration of what can be accomplished visually through CSS-based design. Select any style sheet from the list to load it into this page.
-
-Preserve at least 1 char of whitespace near scripts in case of document.write().
-
-
-
\ No newline at end of file
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html b/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html
deleted file mode 100644
index ae28465bcd..0000000000
--- a/plugins/Minify/extlib/minify/min_unit_tests/_test_files/html/before2.min.html
+++ /dev/null
@@ -1,36 +0,0 @@
-css Zen Garden: The Beauty in CSS Design
Browser != IE
css Zen Garden
The Beauty of CSS Design
- White space is important here!
-
A demonstration of what can be accomplished visually through CSS-based design. Select any style sheet from the list to load it into this page.
" ] ||
-
- // IE can't serialize and
\ No newline at end of file
From cba114c8506d5740ca1df00711a46b6c303e2205 Mon Sep 17 00:00:00 2001
From: Brion Vibber
Date: Mon, 7 Dec 2009 11:29:18 -0800
Subject: [PATCH 46/51] Add a "grandfather" creation date cutoff to
RequireValidatedEmail plugin; will allow us to use this for temporary
emergency moderation of new registrations without affecting older accounts.
---
plugins/RequireValidatedEmail/README | 21 ++++++++
.../RequireValidatedEmailPlugin.php | 52 ++++++++++++++++++-
2 files changed, 71 insertions(+), 2 deletions(-)
create mode 100644 plugins/RequireValidatedEmail/README
diff --git a/plugins/RequireValidatedEmail/README b/plugins/RequireValidatedEmail/README
new file mode 100644
index 0000000000..ccd94d271d
--- /dev/null
+++ b/plugins/RequireValidatedEmail/README
@@ -0,0 +1,21 @@
+This plugin disables posting for accounts that do not have a
+validated email address.
+
+Example:
+
+ addPlugin('RequireValidatedEmail');
+
+If you don't want to apply the validationr equirement to existing
+accounts, you can specify a cutoff date to grandfather in users
+registered prior to that timestamp.
+
+ addPlugin('RequireValidatedEmail',
+ array('grandfatherCutoff' => 'Dec 7, 2009');
+
+
+Todo:
+* make email field required on registration form
+* add a more visible indicator that validation is still outstanding
+* localization for UI strings
+* test with XMPP, API posting
+
diff --git a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php
index 4806538a04..04adbf00ee 100644
--- a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php
+++ b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php
@@ -21,7 +21,7 @@
*
* @category Plugin
* @package StatusNet
- * @author Craig Andrews
+ * @author Craig Andrews , Brion Vibber
* @copyright 2009 Craig Andrews http://candrews.integralblue.com
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
@@ -33,20 +33,68 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
class RequireValidatedEmailPlugin extends Plugin
{
+ // Users created before this time will be grandfathered in
+ // without the validation requirement.
+ public $grandfatherCutoff=null;
+
function __construct()
{
parent::__construct();
}
+ /**
+ * Event handler for notice saves; rejects the notice
+ * if user's address isn't validated.
+ *
+ * @param Notice $notice
+ * @return bool hook result code
+ */
function onStartNoticeSave($notice)
{
$user = User::staticGet('id', $notice->profile_id);
if (!empty($user)) { // it's a remote notice
- if (empty($user->email)) {
+ if (!$this->validated($user)) {
throw new ClientException(_("You must validate your email address before posting."));
}
}
return true;
}
+
+ /**
+ * Check if a user has a validated email address or has been
+ * otherwise grandfathered in.
+ *
+ * @param User $user
+ * @return bool
+ */
+ protected function validated($user)
+ {
+ if ($this->grandfathered($user)) {
+ return true;
+ }
+
+ // The email field is only stored after validation...
+ // Until then you'll find them in confirm_address.
+ return !empty($user->email);
+ }
+
+ /**
+ * Check if a user was created before the grandfathering cutoff.
+ * If so, we won't need to check for validation.
+ *
+ * @param User $user
+ * @return bool
+ */
+ protected function grandfathered($user)
+ {
+ if ($this->grandfatherCutoff) {
+ $created = strtotime($user->created . " GMT");
+ $cutoff = strtotime($this->grandfatherCutoff);
+ if ($created < $cutoff) {
+ return true;
+ }
+ }
+ return false;
+ }
}
From 4eceef0dbef02f5254a7c2f901aae5b648024f30 Mon Sep 17 00:00:00 2001
From: Zach Copley
Date: Mon, 7 Dec 2009 11:34:03 -0800
Subject: [PATCH 47/51] Grand ALL permissions to the DB user when setting up a
new status.net site.
---
scripts/setup_status_network.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh
index d40d4724f2..777711fb55 100755
--- a/scripts/setup_status_network.sh
+++ b/scripts/setup_status_network.sh
@@ -19,8 +19,8 @@ done
mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS
-GRANT INSERT,SELECT,UPDATE,DELETE ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password';
-GRANT INSERT,SELECT,UPDATE,DELETE ON $database.* TO '$username'@'%' IDENTIFIED BY '$password';
+GRANT ALL ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password';
+GRANT ALL ON $database.* TO '$username'@'%' IDENTIFIED BY '$password';
INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created)
VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now());
From 684e65e3dea09fd8179f86d846b82540cc44e5dc Mon Sep 17 00:00:00 2001
From: Eric Helgeson
Date: Mon, 7 Dec 2009 14:53:17 -0500
Subject: [PATCH 48/51] Cleanup of recaptcha plugin remove xhtml hack
---
plugins/Recaptcha/RecaptchaPlugin.php | 32 ++++++++-------------------
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/plugins/Recaptcha/RecaptchaPlugin.php b/plugins/Recaptcha/RecaptchaPlugin.php
index 3a510ef11c..db118dbb81 100644
--- a/plugins/Recaptcha/RecaptchaPlugin.php
+++ b/plugins/Recaptcha/RecaptchaPlugin.php
@@ -44,11 +44,11 @@ class RecaptchaPlugin extends Plugin
var $ssl;
function onInitializePlugin(){
- if(!isset($this->private_key)){
- common_log(LOG_ERR, "Recaptcha: Must specify private_key in config.php");
+ if(!isset($this->private_key)) {
+ common_log(LOG_ERR, 'Recaptcha: Must specify private_key in config.php');
}
- if(!isset($this->public_key)){
- common_log(LOG_ERR, "Recaptcha: Must specify public_key in config.php");
+ if(!isset($this->public_key)) {
+ common_log(LOG_ERR, 'Recaptcha: Must specify public_key in config.php');
}
}
@@ -59,25 +59,13 @@ class RecaptchaPlugin extends Plugin
return false;
}
- function onStartShowHTML($action)
- {
- //XXX: Horrible hack to make Safari, FF2, and Chrome work with
- //reChapcha. reChapcha beaks xhtml strict
- header('Content-Type: text/html');
-
- $action->extraHeaders();
-
- $action->startXML('html');
-
- $action->style('#recaptcha_area{float:left;}');
- return false;
- }
function onEndRegistrationFormData($action)
{
+ $action->style('#recaptcha_area{float:left;}');
$action->elementStart('li');
$action->raw('');
- if($this->checkssl() === true){
+ if($this->checkssl() === true) {
$action->raw(recaptcha_get_html($this->public_key), null, true);
} else {
$action->raw(recaptcha_get_html($this->public_key));
@@ -93,11 +81,9 @@ class RecaptchaPlugin extends Plugin
$action->trimmed('recaptcha_challenge_field'),
$action->trimmed('recaptcha_response_field'));
- if (!$resp->is_valid)
- {
- if($this->display_errors)
- {
- $action->showForm ("(reCAPTCHA said: " . $resp->error . ")");
+ if (!$resp->is_valid) {
+ if($this->display_errors) {
+ $action->showForm ("(reCAPTCHA error: " . $resp->error . ")");
}
$action->showForm("Captcha does not match!");
return false;
From 66bfb2f0e9ba5a1b1f70bbfbb53e9d5eb07f406f Mon Sep 17 00:00:00 2001
From: Siebrand Mazeland
Date: Mon, 7 Dec 2009 22:37:59 +0100
Subject: [PATCH 49/51] Localisation updates for !StatusNet from
!translatewiki.net !sntrans
---
locale/ar/LC_MESSAGES/statusnet.po | 41 +-
locale/bg/LC_MESSAGES/statusnet.po | 41 +-
locale/ca/LC_MESSAGES/statusnet.po | 154 ++-
locale/cs/LC_MESSAGES/statusnet.po | 41 +-
locale/de/LC_MESSAGES/statusnet.po | 116 +-
locale/el/LC_MESSAGES/statusnet.po | 41 +-
locale/en_GB/LC_MESSAGES/statusnet.po | 41 +-
locale/es/LC_MESSAGES/statusnet.po | 73 +-
locale/fi/LC_MESSAGES/statusnet.po | 41 +-
locale/fr/LC_MESSAGES/statusnet.po | 48 +-
locale/ga/LC_MESSAGES/statusnet.po | 41 +-
locale/he/LC_MESSAGES/statusnet.po | 41 +-
locale/hsb/LC_MESSAGES/statusnet.po | 44 +-
locale/is/LC_MESSAGES/statusnet.po | 41 +-
locale/it/LC_MESSAGES/statusnet.po | 41 +-
locale/ja/LC_MESSAGES/statusnet.po | 41 +-
locale/ko/LC_MESSAGES/statusnet.po | 41 +-
locale/mk/LC_MESSAGES/statusnet.po | 43 +-
locale/nb/LC_MESSAGES/statusnet.po | 41 +-
locale/nl/LC_MESSAGES/statusnet.po | 48 +-
locale/nn/LC_MESSAGES/statusnet.po | 41 +-
locale/pl/LC_MESSAGES/statusnet.po | 56 +-
locale/pt/LC_MESSAGES/statusnet.po | 48 +-
locale/pt_BR/LC_MESSAGES/statusnet.po | 41 +-
locale/ru/LC_MESSAGES/statusnet.po | 48 +-
locale/statusnet.po | 37 +-
locale/sv/LC_MESSAGES/statusnet.po | 1461 ++++++++++++-------------
locale/te/LC_MESSAGES/statusnet.po | 41 +-
locale/tr/LC_MESSAGES/statusnet.po | 41 +-
locale/uk/LC_MESSAGES/statusnet.po | 48 +-
locale/vi/LC_MESSAGES/statusnet.po | 41 +-
locale/zh_CN/LC_MESSAGES/statusnet.po | 41 +-
locale/zh_TW/LC_MESSAGES/statusnet.po | 41 +-
33 files changed, 1715 insertions(+), 1329 deletions(-)
diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po
index 1cffffcf3d..c7bb7a5e3e 100644
--- a/locale/ar/LC_MESSAGES/statusnet.po
+++ b/locale/ar/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:53:47+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:25:58+0000\n"
"Language-Team: Arabic\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ar\n"
"X-Message-Group: out-statusnet\n"
@@ -565,7 +565,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1722,11 +1722,11 @@ msgstr ""
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "والج بالفعل."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr ""
@@ -4206,11 +4206,25 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "تعذّر إنشاء الكنى."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
msgid "You are not subscribed to anyone."
msgstr "لست مُشتركًا بأي أحد."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "لست مشتركًا بأحد."
@@ -4220,11 +4234,11 @@ msgstr[3] "أنت مشترك بهؤلاء الأشخاص:"
msgstr[4] ""
msgstr[5] ""
-#: lib/command.php:614
+#: lib/command.php:645
msgid "No one is subscribed to you."
msgstr "لا أحد مشترك بك."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "لا أحد مشترك بك."
@@ -4234,11 +4248,11 @@ msgstr[3] "هؤلاء الأشخاص مشتركون بك:"
msgstr[4] ""
msgstr[5] ""
-#: lib/command.php:636
+#: lib/command.php:667
msgid "You are not a member of any groups."
msgstr "لست عضوًا في أي مجموعة."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "لست عضوًا في أي مجموعة."
@@ -4248,7 +4262,7 @@ msgstr[3] "أنت عضو في هذه المجموعات:"
msgstr[4] ""
msgstr[5] ""
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4267,6 +4281,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po
index e5656cb5f2..e1d9bd7776 100644
--- a/locale/bg/LC_MESSAGES/statusnet.po
+++ b/locale/bg/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:53:50+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:01+0000\n"
"Language-Team: Bulgarian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: bg\n"
"X-Message-Group: out-statusnet\n"
@@ -571,7 +571,7 @@ msgstr "Изрязване"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1811,11 +1811,11 @@ msgstr "Грешка при проследяване — потребителя
msgid "%s left group %s"
msgstr "%s напусна групата %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Вече сте влезли."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Невалидно съдържание на бележка"
@@ -4408,39 +4408,53 @@ msgstr "Уведомлението е включено."
msgid "Can't turn on notification."
msgstr "Грешка при включване на уведомлението."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Грешка при отбелязване като любима."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Не сте абонирани за този профил"
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Вече сте абонирани за следните потребители:"
msgstr[1] "Вече сте абонирани за следните потребители:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Грешка при абониране на друг потребител за вас."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Грешка при абониране на друг потребител за вас."
msgstr[1] "Грешка при абониране на друг потребител за вас."
-#: lib/command.php:636
+#: lib/command.php:667
msgid "You are not a member of any groups."
msgstr "Не членувате в нито една група."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Не членувате в тази група."
msgstr[1] "Не членувате в тази група."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4459,6 +4473,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po
index b4e2f70370..290866b5c8 100644
--- a/locale/ca/LC_MESSAGES/statusnet.po
+++ b/locale/ca/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:53:53+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:04+0000\n"
"Language-Team: Catalan\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ca\n"
"X-Message-Group: out-statusnet\n"
@@ -80,6 +80,8 @@ msgstr "Canal dels amics de %s (Atom)"
msgid ""
"This is the timeline for %s and friends but no one has posted anything yet."
msgstr ""
+"Aquesta és la línia temporal de %s i amics, però ningú hi ha enviat res "
+"encara."
#: actions/all.php:132
#, php-format
@@ -201,9 +203,9 @@ msgid "No message text!"
msgstr "No hi ha text al missatge!"
#: actions/apidirectmessagenew.php:135 actions/newmessage.php:150
-#, fuzzy, php-format
+#, php-format
msgid "That's too long. Max message size is %d chars."
-msgstr "És massa llarg. Màxim del missatge és 140 caràcters."
+msgstr "És massa llarg. La mida màxima del missatge és %d caràcters."
#: actions/apidirectmessagenew.php:146
msgid "Recipient user not found."
@@ -256,9 +258,8 @@ msgid "No status found with that ID."
msgstr "No s'ha trobat cap estatus amb aquesta ID."
#: actions/apifavoritecreate.php:119
-#, fuzzy
msgid "This status is already a favorite!"
-msgstr "Aquesta nota ja és favorita."
+msgstr "Aquest estat ja és un preferit!"
#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
msgid "Could not create favorite."
@@ -297,9 +298,8 @@ msgid "Two user ids or screen_names must be supplied."
msgstr "Dos ids d'usuari o screen_names has de ser substituïts."
#: actions/apifriendshipsshow.php:135
-#, fuzzy
msgid "Could not determine source user."
-msgstr "No s'ha pogut recuperar la conversa pública."
+msgstr "No s'ha pogut determinar l'usuari d'origen."
#: actions/apifriendshipsshow.php:143
#, fuzzy
@@ -357,9 +357,9 @@ msgstr "Hi ha massa àlies! Màxim %d."
#: actions/apigroupcreate.php:264 actions/editgroup.php:224
#: actions/newgroup.php:168
-#, fuzzy, php-format
+#, php-format
msgid "Invalid alias: \"%s\""
-msgstr "Etiqueta no vàlida: \"%s\""
+msgstr "L'àlies no és vàlid «%s»"
#: actions/apigroupcreate.php:273 actions/editgroup.php:228
#: actions/newgroup.php:172
@@ -453,9 +453,8 @@ msgid "Max notice size is %d chars, including attachment URL."
msgstr ""
#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261
-#, fuzzy
msgid "Unsupported format."
-msgstr "Format d'imatge no suportat."
+msgstr "El format no està implementat."
#: actions/apitimelinefavorites.php:107
#, php-format
@@ -578,7 +577,7 @@ msgstr "Crop"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -663,9 +662,8 @@ msgid "Unblock this user"
msgstr "Desbloquejar aquest usuari"
#: actions/block.php:69
-#, fuzzy
msgid "You already blocked that user."
-msgstr "Ja havies bloquejat aquest usuari."
+msgstr "Ja heu blocat l'usuari."
#: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160
msgid "Block user"
@@ -701,9 +699,8 @@ msgid "Failed to save block information."
msgstr "Error al guardar la informació del block."
#: actions/bookmarklet.php:50
-#, fuzzy
msgid "Post to "
-msgstr "Foto"
+msgstr "Envia a "
#: actions/confirmaddress.php:75
msgid "No confirmation code."
@@ -840,14 +837,13 @@ msgid "Design settings for this StatusNet site."
msgstr "Paràmetres de disseny d'aquest lloc StatusNet."
#: actions/designadminpanel.php:275
-#, fuzzy
msgid "Invalid logo URL."
-msgstr "Mida invàlida."
+msgstr "L'URL del logotip no és vàlid."
#: actions/designadminpanel.php:279
-#, fuzzy, php-format
+#, php-format
msgid "Theme not available: %s"
-msgstr "Aquesta pàgina no està disponible en "
+msgstr "El tema no és disponible: %s"
#: actions/designadminpanel.php:375
msgid "Change logo"
@@ -862,9 +858,8 @@ msgid "Change theme"
msgstr "Canvia el tema"
#: actions/designadminpanel.php:404
-#, fuzzy
msgid "Site theme"
-msgstr "Avís del lloc"
+msgstr "Tema del lloc"
#: actions/designadminpanel.php:405
msgid "Theme for the site."
@@ -888,19 +883,19 @@ msgstr "Pots pujar una imatge de logo per al grup."
#: actions/designadminpanel.php:457 lib/designsettings.php:139
msgid "On"
-msgstr ""
+msgstr "Activada"
#: actions/designadminpanel.php:473 lib/designsettings.php:155
msgid "Off"
-msgstr ""
+msgstr "Desactivada"
#: actions/designadminpanel.php:474 lib/designsettings.php:156
msgid "Turn background image on or off."
-msgstr ""
+msgstr "Activa o desactiva la imatge de fons."
#: actions/designadminpanel.php:479 lib/designsettings.php:161
msgid "Tile background image"
-msgstr ""
+msgstr "Posa en mosaic la imatge de fons"
#: actions/designadminpanel.php:488 lib/designsettings.php:170
msgid "Change colours"
@@ -979,18 +974,17 @@ msgid "Use this form to edit the group."
msgstr "Utilitza aquest formulari per editar el grup."
#: actions/editgroup.php:201 actions/newgroup.php:145
-#, fuzzy, php-format
+#, php-format
msgid "description is too long (max %d chars)."
-msgstr "la descripció és massa llarga (màx. 140 caràcters)."
+msgstr "la descripció és massa llarga (màx. %d caràcters)."
#: actions/editgroup.php:253
msgid "Could not update group."
msgstr "No s'ha pogut actualitzar el grup."
#: actions/editgroup.php:259 classes/User_group.php:390
-#, fuzzy
msgid "Could not create aliases."
-msgstr "No es pot crear favorit."
+msgstr "No s'han pogut crear els àlies."
#: actions/editgroup.php:269
msgid "Options saved."
@@ -1260,7 +1254,7 @@ msgstr "Sense adjuncions"
#: actions/file.php:51
msgid "No uploaded attachments"
-msgstr ""
+msgstr "No s'ha pujat cap adjunció"
#: actions/finishremotesubscribe.php:69
msgid "Not expecting this response!"
@@ -1304,9 +1298,8 @@ msgid "No such group."
msgstr "No s'ha trobat el grup."
#: actions/getfile.php:75
-#, fuzzy
msgid "No such file."
-msgstr "No existeix aquest avís."
+msgstr "No existeix el fitxer."
#: actions/getfile.php:79
msgid "Cannot read file."
@@ -1835,11 +1828,11 @@ msgstr "No s'ha pogut eliminar l'usuari %s del grup %s"
msgid "%s left group %s"
msgstr "%s ha abandonat el grup %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Ja estàs connectat."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "El contingut de l'avís és invàlid"
@@ -2051,7 +2044,7 @@ msgstr "tipus de contingut "
#: actions/oembed.php:160
msgid "Only "
-msgstr ""
+msgstr "Només "
#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:996
#: lib/api.php:1024 lib/api.php:1134
@@ -2076,7 +2069,7 @@ msgstr "Gestionar altres vàries opcions."
#: actions/othersettings.php:108
msgid " (free service)"
-msgstr ""
+msgstr " (servei gratuït)"
#: actions/othersettings.php:116
msgid "Shorten URLs with"
@@ -2093,7 +2086,7 @@ msgstr "Configuració del perfil"
#: actions/othersettings.php:123
msgid "Show or hide profile designs."
-msgstr ""
+msgstr "Mostra o amaga els dissenys de perfil."
#: actions/othersettings.php:153
msgid "URL shortening service is too long (max 50 chars)."
@@ -2215,9 +2208,8 @@ msgid "Path"
msgstr "Camí"
#: actions/pathsadminpanel.php:216
-#, fuzzy
msgid "Site path"
-msgstr "Avís del lloc"
+msgstr "Camí del lloc"
#: actions/pathsadminpanel.php:220
msgid "Path to locales"
@@ -2233,11 +2225,11 @@ msgstr "Tema"
#: actions/pathsadminpanel.php:232
msgid "Theme server"
-msgstr ""
+msgstr "Servidor dels temes"
#: actions/pathsadminpanel.php:236
msgid "Theme path"
-msgstr ""
+msgstr "Camí dels temes"
#: actions/pathsadminpanel.php:240
msgid "Theme directory"
@@ -3794,11 +3786,11 @@ msgstr ""
#: actions/useradminpanel.php:265
msgid "Sessions"
-msgstr ""
+msgstr "Sessions"
#: actions/useradminpanel.php:270
msgid "Handle sessions"
-msgstr ""
+msgstr "Gestiona les sessions"
#: actions/useradminpanel.php:272
msgid "Whether to handle sessions ourselves."
@@ -3828,9 +3820,8 @@ msgstr ""
"avisos de ningú, clica \"Cancel·lar\"."
#: actions/userauthorization.php:188
-#, fuzzy
msgid "License"
-msgstr "llicència."
+msgstr "Llicència"
#: actions/userauthorization.php:209
msgid "Accept"
@@ -4038,9 +4029,9 @@ msgid "Could not set group membership."
msgstr "No s'ha pogut establir la pertinença d'aquest grup."
#: classes/User.php:347
-#, fuzzy, php-format
+#, php-format
msgid "Welcome to %1$s, @%2$s!"
-msgstr "Missatge per a %1$s a %2$s"
+msgstr "Us donem la benvinguda a %1$s, @%2$s!"
#: lib/accountsettingsaction.php:108
msgid "Change your profile settings"
@@ -4110,9 +4101,8 @@ msgid "Connect to services"
msgstr "No s'ha pogut redirigir al servidor: %s"
#: lib/action.php:440
-#, fuzzy
msgid "Change site configuration"
-msgstr "Navegació primària del lloc"
+msgstr "Canvia la configuració del lloc"
#: lib/action.php:444 lib/subgroupnav.php:105
msgid "Invite"
@@ -4258,9 +4248,8 @@ msgid "There was a problem with your session token."
msgstr "Ha ocorregut algun problema amb la teva sessió."
#: lib/adminpanelaction.php:96
-#, fuzzy
msgid "You cannot make changes to this site."
-msgstr "No pots enviar un missatge a aquest usuari."
+msgstr "No podeu fer canvis al lloc."
#: lib/adminpanelaction.php:195
#, fuzzy
@@ -4400,9 +4389,9 @@ msgid "Notice too long - maximum is %d characters, you sent %d"
msgstr "Missatge massa llarg - màxim és 140 caràcters, tu has enviat %d"
#: lib/command.php:439
-#, fuzzy, php-format
+#, php-format
msgid "Reply to %s sent"
-msgstr "respondre a aquesta nota"
+msgstr "S'ha enviat la resposta a %s"
#: lib/command.php:441
#, fuzzy
@@ -4447,40 +4436,53 @@ msgstr "Notificacions on."
msgid "Can't turn on notification."
msgstr "No es poden posar en on les notificacions."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "No s'han pogut crear els àlies."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "No estàs subscrit a aquest perfil."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Ja estàs subscrit a aquests usuaris:"
msgstr[1] "Ja estàs subscrit a aquests usuaris:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "No pots subscriure a un altre a tu mateix."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "No pots subscriure a un altre a tu mateix."
msgstr[1] "No pots subscriure a un altre a tu mateix."
-#: lib/command.php:636
-#, fuzzy
+#: lib/command.php:667
msgid "You are not a member of any groups."
-msgstr "No ets membre d'aquest grup."
+msgstr "No sou membre de cap grup."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "No sou un membre del grup."
msgstr[1] "No sou un membre del grup."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4499,6 +4501,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
@@ -4656,9 +4659,8 @@ msgid "Group"
msgstr "Grup"
#: lib/groupnav.php:101
-#, fuzzy
msgid "Blocked"
-msgstr "Bloquejar"
+msgstr "Blocat"
#: lib/groupnav.php:102
#, fuzzy, php-format
@@ -4770,9 +4772,8 @@ msgid ""
msgstr ""
#: lib/mailbox.php:227 lib/noticelist.php:452
-#, fuzzy
msgid "from"
-msgstr " de "
+msgstr "de"
#: lib/mail.php:172
msgid "Email address confirmation"
@@ -5041,11 +5042,11 @@ msgstr "Què tal, %s?"
#: lib/noticeform.php:192
msgid "Attach"
-msgstr ""
+msgstr "Adjunta"
#: lib/noticeform.php:196
msgid "Attach a file"
-msgstr ""
+msgstr "Adjunta un fitxer"
#: lib/noticelist.php:403
#, php-format
@@ -5262,14 +5263,12 @@ msgid "More..."
msgstr "Més…"
#: lib/silenceform.php:67
-#, fuzzy
msgid "Silence"
-msgstr "Avís del lloc"
+msgstr "Silencia"
#: lib/silenceform.php:78
-#, fuzzy
msgid "Silence this user"
-msgstr "Bloquejar aquest usuari"
+msgstr "Silencia l'usuari"
#: lib/subgroupnav.php:83
#, php-format
@@ -5349,12 +5348,11 @@ msgstr "Desbloquejar aquest usuari"
#: lib/unsilenceform.php:67
msgid "Unsilence"
-msgstr ""
+msgstr "Dessilencia"
#: lib/unsilenceform.php:78
-#, fuzzy
msgid "Unsilence this user"
-msgstr "Desbloquejar aquest usuari"
+msgstr "Dessilencia l'usuari"
#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
msgid "Unsubscribe from this user"
diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po
index 8501aacfa8..6d74b17611 100644
--- a/locale/cs/LC_MESSAGES/statusnet.po
+++ b/locale/cs/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:53:56+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:08+0000\n"
"Language-Team: Czech\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: cs\n"
"X-Message-Group: out-statusnet\n"
@@ -579,7 +579,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1789,11 +1789,11 @@ msgstr "Nelze vytvořit OpenID z: %s"
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Již přihlášen"
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Neplatný obsah sdělení"
@@ -4373,43 +4373,57 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Nelze uložin informace o obrázku"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Neodeslal jste nám profil"
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Neodeslal jste nám profil"
msgstr[1] "Neodeslal jste nám profil"
msgstr[2] ""
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Vzdálený odběr"
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Vzdálený odběr"
msgstr[1] "Vzdálený odběr"
msgstr[2] ""
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Neodeslal jste nám profil"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Neodeslal jste nám profil"
msgstr[1] "Neodeslal jste nám profil"
msgstr[2] ""
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4428,6 +4442,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po
index 2bc9805d97..c1d24f11d2 100644
--- a/locale/de/LC_MESSAGES/statusnet.po
+++ b/locale/de/LC_MESSAGES/statusnet.po
@@ -10,12 +10,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:00+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:11+0000\n"
"Language-Team: German\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: de\n"
"X-Message-Group: out-statusnet\n"
@@ -574,7 +574,7 @@ msgstr "Zuschneiden"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1800,11 +1800,11 @@ msgstr "Konnte Benutzer %s aus der Gruppe %s nicht entfernen"
msgid "%s left group %s"
msgstr "%s hat die Gruppe %s verlassen"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Bereits angemeldet."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr "Token ungültig oder abgelaufen."
@@ -2700,12 +2700,11 @@ msgid "Creative Commons Attribution 3.0"
msgstr ""
#: actions/register.php:496
-#, fuzzy
msgid ""
" except this private data: password, email address, IM address, and phone "
"number."
msgstr ""
-"außer folgende private Daten: Passwort, E-Mail, Adresse, IM Adresse, "
+"außer folgende private Daten: Passwort, E-Mail-Adresse, IM-Adresse und "
"Telefonnummer."
#: actions/register.php:537
@@ -2726,28 +2725,27 @@ msgid ""
"\n"
"Thanks for signing up and we hope you enjoy using this service."
msgstr ""
-"Hallo %s, herzlich willkommen auf %%%%site.name%%%%.\n"
-"\n"
-"Danke für deine Anmeldung, wir hoffen das dir der Service gefällt.\n"
-"\n"
-"Als nächstes möchtest du eventuell …\n"
+"Hallo %s, herzlich willkommen auf %%%%site.name%%%%. Als nächstes möchtest "
+"du eventuell …\n"
"\n"
"* zu [deinem Profil gehen](%s) und deine erste Nachricht schreiben\n"
-"* deine [Jabber/GTalk Adresse](%%%%action.imsettings%%%%) eintragen damit du "
+"* deine [Jabber/GTalk-Adresse](%%%%action.imsettings%%%%) eintragen damit du "
"Nachrichten über diese Dienste schreiben kannst.\n"
"* [Leute suchen](%%%%action.peoplesearch%%%%) die du kennst oder die "
"gleichen Interessen wie du haben.\n"
"* deine [Profildaten ergänzen](%%%%action.profilesettings%%%%) um mehr über "
"dich zu veröffentlichen\n"
"* die [Dokumentation](%%%%doc.help%%%%) lesen um mehr über weitere Features "
-"zu erfahren"
+"zu erfahren\n"
+"\n"
+"Danke für deine Anmeldung, wir hoffen das dir der Service gefällt."
#: actions/register.php:561
msgid ""
"(You should receive a message by email momentarily, with instructions on how "
"to confirm your email address.)"
msgstr ""
-"(Sie sollten in Kürze eine E-Mail mit der Anleitung zur Überprüfung Ihrer "
+"(Du solltest in Kürze eine E-Mail mit der Anleitung zur Überprüfung deiner "
"Mailadresse erhalten.)"
#: actions/remotesubscribe.php:98
@@ -2797,16 +2795,15 @@ msgid "Invalid profile URL (bad format)"
msgstr "Ungültige Profil-URL (falsches Format)"
#: actions/remotesubscribe.php:168
-#, fuzzy
msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr "Ungültige Profil-URL (kein YADIS-Dokument)."
+msgstr ""
+"Ungültige Profil-URL (kein YADIS-Dokument oder ungültige XRDS definiert)."
#: actions/remotesubscribe.php:176
msgid "That’s a local profile! Login to subscribe."
msgstr "Das ist ein lokales Profil! Zum Abonnieren anmelden."
#: actions/remotesubscribe.php:183
-#, fuzzy
msgid "Couldn’t get a request token."
msgstr "Konnte keinen Anfrage-Token bekommen."
@@ -2834,7 +2831,7 @@ msgstr "Feed der Antworten an %s (RSS 2.0)"
#: actions/replies.php:158
#, php-format
msgid "Replies feed for %s (Atom)"
-msgstr "Feed der Nachrichten von %s"
+msgstr "Feed der Nachrichten von %s (Atom)"
#: actions/replies.php:198
#, php-format
@@ -2858,9 +2855,9 @@ msgid ""
msgstr ""
#: actions/repliesrss.php:72
-#, fuzzy, php-format
+#, php-format
msgid "Replies to %1$s on %2$s!"
-msgstr "Nachricht an %1$s auf %2$s"
+msgstr "Antworten an %1$s auf %2$s!"
#: actions/sandbox.php:65 actions/unsandbox.php:65
#, fuzzy
@@ -2884,17 +2881,17 @@ msgstr "Konnte Favoriten nicht abrufen."
#: actions/showfavorites.php:170
#, php-format
msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr "Feed der Freunde von %s"
+msgstr "Feed der Freunde von %s (RSS 1.0)"
#: actions/showfavorites.php:177
#, php-format
msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr "Feed der Freunde von %s"
+msgstr "Feed der Freunde von %s (RSS 2.0)"
#: actions/showfavorites.php:184
#, php-format
msgid "Feed for favorites of %s (Atom)"
-msgstr "Feed der Freunde von %s"
+msgstr "Feed der Freunde von %s (Atom)"
#: actions/showfavorites.php:205
msgid ""
@@ -2992,9 +2989,8 @@ msgid "Statistics"
msgstr "Statistiken"
#: actions/showgroup.php:432
-#, fuzzy
msgid "Created"
-msgstr "Erstellen"
+msgstr "Erstellt"
#: actions/showgroup.php:448
#, php-format
@@ -3007,15 +3003,17 @@ msgid ""
msgstr ""
#: actions/showgroup.php:454
-#, fuzzy, php-format
+#, php-format
msgid ""
"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en."
"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
"[StatusNet](http://status.net/) tool. Its members share short messages about "
"their life and interests. "
msgstr ""
-"**%s** ist eine Benutzergruppe auf %%site.name%%, einem [mikro-blogging] "
-"(http://de.wikipedia.org/wiki/Mikro-blogging) Dienst "
+"**%s** ist eine Benutzergruppe auf %%%%site.name%%%%, einem [Mikro-blogging-"
+"Dienst](http://de.wikipedia.org/wiki/Mikro-blogging) basierend auf der "
+"Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen "
+"kurze Nachrichten über Ihr Leben und Interessen. "
#: actions/showgroup.php:482
msgid "Admins"
@@ -3044,7 +3042,7 @@ msgid "Notice deleted."
msgstr "Nachricht gelöscht."
#: actions/showstream.php:73
-#, fuzzy, php-format
+#, php-format
msgid " tagged %s"
msgstr "Nachrichten, die mit %s getagt sind"
@@ -3106,14 +3104,15 @@ msgid ""
msgstr ""
#: actions/showstream.php:239
-#, fuzzy, php-format
+#, php-format
msgid ""
"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
"[StatusNet](http://status.net/) tool. "
msgstr ""
-"**%s** hat ein Konto auf %%site.name%%, einem [mikro-blogging] (http://de."
-"wikipedia.org/wiki/Mikro-blogging) Dienst "
+"**%s** hat ein Konto auf %%%%site.name%%%%, einem [Mikro-blogging-Dienst]"
+"(http://de.wikipedia.org/wiki/Mikro-blogging) basierend auf der Freien "
+"Software [StatusNet](http://status.net/). "
#: actions/silence.php:65 actions/unsilence.php:65
#, fuzzy
@@ -3134,14 +3133,13 @@ msgid "Site name must have non-zero length."
msgstr ""
#: actions/siteadminpanel.php:155
-#, fuzzy
msgid "You must have a valid contact email address"
-msgstr "Ungültige E-Mail-Adresse"
+msgstr "Du musst eine gültige E-Mail-Adresse haben"
#: actions/siteadminpanel.php:173
#, php-format
msgid "Unknown language \"%s\""
-msgstr "Unbekannte Sprache "%s""
+msgstr "Unbekannte Sprache „%s“"
#: actions/siteadminpanel.php:180
msgid "Invalid snapshot report URL."
@@ -3388,7 +3386,7 @@ msgstr "SMS ist nicht verfügbar."
#: actions/smssettings.php:112
msgid "Current confirmed SMS-enabled phone number."
-msgstr "Aktuelle für den SMS-Dienst bestätigte Telefon-Nummer."
+msgstr "Aktuelle für den SMS-Dienst bestätigte Telefonnummer."
#: actions/smssettings.php:123
msgid "Awaiting confirmation on this phone number."
@@ -3777,7 +3775,6 @@ msgid "Authorize subscription"
msgstr "Abonnement bestätigen"
#: actions/userauthorization.php:110
-#, fuzzy
msgid ""
"Please check these details to make sure that you want to subscribe to this "
"user’s notices. If you didn’t just ask to subscribe to someone’s notices, "
@@ -3785,7 +3782,7 @@ msgid ""
msgstr ""
"Bitte überprüfe diese Angaben, um sicher zu gehen, dass du die Nachrichten "
"dieses Nutzers abonnieren möchtest. Wenn du das nicht wolltest, klicke auf "
-"\"Abbrechen\"."
+"„Abbrechen“."
#: actions/userauthorization.php:188
msgid "License"
@@ -3885,7 +3882,7 @@ msgstr "Keine ID."
#: actions/userdesignsettings.php:76 lib/designsettings.php:65
msgid "Profile design"
-msgstr "Profil Design Einstellungen"
+msgstr "Profil-Design-Einstellungen"
#: actions/userdesignsettings.php:87 lib/designsettings.php:76
msgid ""
@@ -4016,7 +4013,7 @@ msgstr "Ändere dein Passwort"
#: lib/accountsettingsaction.php:120
msgid "Change email handling"
-msgstr "Ändere die E-Mail Verarbeitung"
+msgstr "Ändere die E-Mail-Verarbeitung"
#: lib/accountsettingsaction.php:124
#, fuzzy
@@ -4185,7 +4182,7 @@ msgid ""
"s, available under the [GNU Affero General Public License](http://www.fsf."
"org/licensing/licenses/agpl-3.0.html)."
msgstr ""
-" Es wird mit der Microbloggingsoftware [StatusNet](http://status.net/) "
+"Es wird mit der Microbloggingsoftware [StatusNet](http://status.net/) "
"(Version %s) betrieben, die unter der [GNU Affero General Public License]"
"(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist."
@@ -4407,40 +4404,54 @@ msgstr "Benachrichtigung aktiviert."
msgid "Can't turn on notification."
msgstr "Konnte Benachrichtigung nicht aktivieren."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Konnte keinen Favoriten erstellen."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Du hast dieses Profil nicht abonniert."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Du hast diese Benutzer bereits abonniert:"
msgstr[1] "Du hast diese Benutzer bereits abonniert:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Die Gegenseite konnte Dich nicht abonnieren."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Die Gegenseite konnte Dich nicht abonnieren."
msgstr[1] "Die Gegenseite konnte Dich nicht abonnieren."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Du bist kein Mitglied dieser Gruppe."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Du bist kein Mitglied dieser Gruppe."
msgstr[1] "Du bist kein Mitglied dieser Gruppe."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4459,6 +4470,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
@@ -4610,10 +4622,10 @@ msgid "Description"
msgstr "Beschreibung"
#: lib/groupeditform.php:179
-#, fuzzy
msgid ""
"Location for the group, if any, like \"City, State (or Region), Country\""
-msgstr "Ort der Gruppe, optional, z.B. \"Stadt, Gebiet (oder Region), Land\""
+msgstr ""
+"Ort der Gruppe, optional, beispielsweise „Stadt, Gebiet (oder Region), Land“"
#: lib/groupeditform.php:187
#, php-format
diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po
index 07384974dc..d6142aaa76 100644
--- a/locale/el/LC_MESSAGES/statusnet.po
+++ b/locale/el/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:03+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:14+0000\n"
"Language-Team: Greek\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: el\n"
"X-Message-Group: out-statusnet\n"
@@ -574,7 +574,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1771,11 +1771,11 @@ msgstr ""
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Ήδη συνδεδεμένος."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr ""
@@ -4318,40 +4318,54 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Αδύνατη η αποθήκευση του προφίλ."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Ομάδες με τα περισσότερα μέλη"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Ομάδες με τα περισσότερα μέλη"
msgstr[1] "Ομάδες με τα περισσότερα μέλη"
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4370,6 +4384,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po
index d31e8a7ed6..782a5ec0ac 100644
--- a/locale/en_GB/LC_MESSAGES/statusnet.po
+++ b/locale/en_GB/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:06+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:19+0000\n"
"Language-Team: British English\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: en-gb\n"
"X-Message-Group: out-statusnet\n"
@@ -568,7 +568,7 @@ msgstr "Crop"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1805,11 +1805,11 @@ msgstr "Could not remove user %s to group %s"
msgid "%s left group %s"
msgstr "%s left group %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Already logged in."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Invalid notice content"
@@ -4392,40 +4392,54 @@ msgstr "Notification on."
msgid "Can't turn on notification."
msgstr "Can't turn on notification."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Could not create aliases"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "You are not subscribed to that profile."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "You are already subscribed to these users:"
msgstr[1] "You are already subscribed to these users:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Could not subscribe other to you."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Could not subscribe other to you."
msgstr[1] "Could not subscribe other to you."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "You are not a member of that group."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "You are not a member of that group."
msgstr[1] "You are not a member of that group."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4444,6 +4458,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po
index 2493b24bc6..871040c9ae 100644
--- a/locale/es/LC_MESSAGES/statusnet.po
+++ b/locale/es/LC_MESSAGES/statusnet.po
@@ -11,12 +11,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:09+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:23+0000\n"
"Language-Team: Spanish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: es\n"
"X-Message-Group: out-statusnet\n"
@@ -189,9 +189,8 @@ msgid "Could not save profile."
msgstr "No se pudo guardar el perfil."
#: actions/apiblockcreate.php:105
-#, fuzzy
msgid "You cannot block yourself!"
-msgstr "No se pudo actualizar el usuario."
+msgstr "¡No puedes bloquearte a tí mismo!"
#: actions/apiblockcreate.php:119
msgid "Block user failed."
@@ -219,9 +218,9 @@ msgid "Can't send direct messages to users who aren't your friend."
msgstr "No se puede enviar mensajes directos a usuarios que no son tu amigo."
#: actions/apidirectmessage.php:89
-#, fuzzy, php-format
+#, php-format
msgid "Direct messages from %s"
-msgstr "Mensajes directos a %s"
+msgstr "Mensajes directos de %s"
#: actions/apidirectmessage.php:93
#, php-format
@@ -261,18 +260,16 @@ msgid "No status found with that ID."
msgstr "No se encontró estado para ese ID"
#: actions/apifavoritecreate.php:119
-#, fuzzy
msgid "This status is already a favorite!"
-msgstr "¡Este aviso ya está en favoritos!"
+msgstr "¡Este status ya está en favoritos!"
#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176
msgid "Could not create favorite."
msgstr "No se pudo crear favorito."
#: actions/apifavoritedestroy.php:122
-#, fuzzy
msgid "That status is not a favorite!"
-msgstr "¡Este aviso no es un favorito!"
+msgstr "¡Este status no es un favorito!"
#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87
msgid "Could not delete favorite."
@@ -288,27 +285,24 @@ msgid "Could not follow user: %s is already on your list."
msgstr "No puede seguir al usuario: %s ya esta en su lista."
#: actions/apifriendshipsdestroy.php:109
-#, fuzzy
msgid "Could not unfollow user: User not found."
-msgstr "No puede seguir al usuario. Usuario no encontrado"
+msgstr "No se pudo dejar de seguir al usuario. Usuario no encontrado"
#: actions/apifriendshipsdestroy.php:120
msgid "You cannot unfollow yourself!"
-msgstr ""
+msgstr "¡No puedes dejar de seguirte a ti mismo!"
#: actions/apifriendshipsexists.php:94
msgid "Two user ids or screen_names must be supplied."
msgstr "Deben proveerse dos identificaciones de usuario o nombres en pantalla."
#: actions/apifriendshipsshow.php:135
-#, fuzzy
msgid "Could not determine source user."
-msgstr "No se pudo acceder a corriente pública."
+msgstr "No se pudo determinar el usuario fuente."
#: actions/apifriendshipsshow.php:143
-#, fuzzy
msgid "Could not find target user."
-msgstr "No se pudo encontrar ningún estado."
+msgstr "No se pudo encontrar ningún usuario de destino."
#: actions/apigroupcreate.php:164 actions/editgroup.php:182
#: actions/newgroup.php:126 actions/profilesettings.php:208
@@ -316,7 +310,7 @@ msgstr "No se pudo encontrar ningún estado."
msgid "Nickname must have only lowercase letters and numbers and no spaces."
msgstr ""
"El apodo debe tener solamente letras minúsculas y números y no puede tener "
-"espacios. "
+"espacios."
#: actions/apigroupcreate.php:173 actions/editgroup.php:186
#: actions/newgroup.php:130 actions/profilesettings.php:231
@@ -343,9 +337,9 @@ msgid "Full name is too long (max 255 chars)."
msgstr "Tu nombre es demasiado largo (max. 255 carac.)"
#: actions/apigroupcreate.php:213
-#, fuzzy, php-format
+#, php-format
msgid "Description is too long (max %d chars)."
-msgstr "Descripción es demasiado larga (máx. 140 caracteres)."
+msgstr "La descripción es demasiado larga (máx. %d caracteres)."
#: actions/apigroupcreate.php:224 actions/editgroup.php:204
#: actions/newgroup.php:148 actions/profilesettings.php:225
@@ -357,7 +351,7 @@ msgstr "La ubicación es demasiado larga (máx. 255 caracteres)."
#: actions/newgroup.php:159
#, php-format
msgid "Too many aliases! Maximum %d."
-msgstr ""
+msgstr "¡Muchos seudónimos! El máximo es %d."
#: actions/apigroupcreate.php:264 actions/editgroup.php:224
#: actions/newgroup.php:168
@@ -582,7 +576,7 @@ msgstr "Cortar"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1854,11 +1848,11 @@ msgstr "No se pudo eliminar a usuario %s de grupo %s"
msgid "%s left group %s"
msgstr "%s dejó grupo %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Ya estás conectado."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "El contenido del aviso es inválido"
@@ -4512,40 +4506,54 @@ msgstr "Notificación activada."
msgid "Can't turn on notification."
msgstr "No se puede activar notificación."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "No se pudo crear favorito."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "No estás suscrito a ese perfil."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Ya estás suscrito a estos usuarios:"
msgstr[1] "Ya estás suscrito a estos usuarios:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "No se pudo suscribir otro a ti."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "No se pudo suscribir otro a ti."
msgstr[1] "No se pudo suscribir otro a ti."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "No eres miembro de ese grupo"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "No eres miembro de este grupo."
msgstr[1] "No eres miembro de este grupo."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4564,6 +4572,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po
index dbc8f1f4b3..c1b9febfe2 100644
--- a/locale/fi/LC_MESSAGES/statusnet.po
+++ b/locale/fi/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:12+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:26+0000\n"
"Language-Team: Finnish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: fi\n"
"X-Message-Group: out-statusnet\n"
@@ -578,7 +578,7 @@ msgstr "Rajaa"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1813,11 +1813,11 @@ msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s"
msgid "%s left group %s"
msgstr "%s erosi ryhmästä %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Olet jo kirjautunut sisään."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Päivityksen sisältö ei kelpaa"
@@ -4440,40 +4440,54 @@ msgstr "Ilmoitukset päällä."
msgid "Can't turn on notification."
msgstr "Ilmoituksia ei voi pistää päälle."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Ei voitu lisätä aliasta."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Et ole tilannut tämän käyttäjän päivityksiä."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Olet jos tilannut seuraavien käyttäjien päivitykset:"
msgstr[1] "Olet jos tilannut seuraavien käyttäjien päivitykset:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Toista ei voitu asettaa tilaamaan sinua."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Toista ei voitu asettaa tilaamaan sinua."
msgstr[1] "Toista ei voitu asettaa tilaamaan sinua."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Sinä et kuulu tähän ryhmään."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Sinä et kuulu tähän ryhmään."
msgstr[1] "Sinä et kuulu tähän ryhmään."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4492,6 +4506,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po
index a3e47142e6..d667087954 100644
--- a/locale/fr/LC_MESSAGES/statusnet.po
+++ b/locale/fr/LC_MESSAGES/statusnet.po
@@ -13,12 +13,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:15+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:29+0000\n"
"Language-Team: French\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: fr\n"
"X-Message-Group: out-statusnet\n"
@@ -197,9 +197,8 @@ msgid "Could not save profile."
msgstr "Impossible d’enregistrer le profil."
#: actions/apiblockcreate.php:105
-#, fuzzy
msgid "You cannot block yourself!"
-msgstr "Vous ne pouvez pas ne plus vous suivre vous-même !"
+msgstr "Vous ne pouvez pas vous bloquer vous-même !"
#: actions/apiblockcreate.php:119
msgid "Block user failed."
@@ -588,7 +587,7 @@ msgstr "Recadrer"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1841,11 +1840,11 @@ msgstr "Impossible de retirer l’utilisateur %s du groupe %s"
msgid "%s left group %s"
msgstr "%s a quitté le groupe %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Déjà connecté."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr "Jeton invalide ou expiré."
@@ -4492,37 +4491,52 @@ msgstr "Avertissements activés."
msgid "Can't turn on notification."
msgstr "Impossible d’activer les avertissements."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Impossible de créer les alias."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
msgid "You are not subscribed to anyone."
msgstr "Vous n'êtes pas abonné(e) à personne."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Vous êtes abonné à cette personne :"
msgstr[1] "Vous êtes abonné à ces personnes :"
-#: lib/command.php:614
+#: lib/command.php:645
msgid "No one is subscribed to you."
msgstr "Personne ne s'est abonné à vous."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Cette personne est abonnée à vous :"
msgstr[1] "Ces personnes sont abonnées à vous :"
-#: lib/command.php:636
+#: lib/command.php:667
msgid "You are not a member of any groups."
msgstr "Vous n'êtes pas membre d'aucun groupe."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Vous êtes membre de ce groupe :"
msgstr[1] "Vous êtes membre de ces groupes :"
-#: lib/command.php:652
+#: lib/command.php:683
+#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4541,6 +4555,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
@@ -5465,9 +5480,8 @@ msgid "Not subscribed!"
msgstr "Pas abonné !"
#: lib/subs.php:133
-#, fuzzy
msgid "Couldn't delete self-subscription."
-msgstr "Impossible de cesser l’abonnement"
+msgstr "Impossible de supprimer l’abonnement à soi-même."
#: lib/subs.php:146
msgid "Couldn't delete subscription."
diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po
index d809f92341..b3d15c8a47 100644
--- a/locale/ga/LC_MESSAGES/statusnet.po
+++ b/locale/ga/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:19+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:33+0000\n"
"Language-Team: Irish\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ga\n"
"X-Message-Group: out-statusnet\n"
@@ -585,7 +585,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1857,11 +1857,11 @@ msgstr "Non podes seguir a este usuario: o Usuario non se atopa."
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Sesión xa iniciada"
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Contido do chío inválido"
@@ -4533,12 +4533,26 @@ msgstr "Notificación habilitada."
msgid "Can't turn on notification."
msgstr "Non se pode activar a notificación."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Non se puido crear o favorito."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Non estás suscrito a ese perfil"
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Xa estas suscrito a estes usuarios:"
@@ -4547,12 +4561,12 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Outro usuario non se puido suscribir a ti."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Outro usuario non se puido suscribir a ti."
@@ -4561,12 +4575,12 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Non estás suscrito a ese perfil"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Non estás suscrito a ese perfil"
@@ -4575,7 +4589,7 @@ msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
-#: lib/command.php:652
+#: lib/command.php:683
#, fuzzy
msgid ""
"Commands:\n"
@@ -4595,6 +4609,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po
index 8ff8672800..a6d463d533 100644
--- a/locale/he/LC_MESSAGES/statusnet.po
+++ b/locale/he/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:22+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:36+0000\n"
"Language-Team: Hebrew\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: he\n"
"X-Message-Group: out-statusnet\n"
@@ -579,7 +579,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1802,11 +1802,11 @@ msgstr "נכשלה יצירת OpenID מתוך: %s"
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "כבר מחובר."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "תוכן ההודעה לא חוקי"
@@ -4380,40 +4380,54 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "שמירת מידע התמונה נכשל"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "לא שלחנו אלינו את הפרופיל הזה"
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "לא שלחנו אלינו את הפרופיל הזה"
msgstr[1] "לא שלחנו אלינו את הפרופיל הזה"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "הרשמה מרוחקת"
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "הרשמה מרוחקת"
msgstr[1] "הרשמה מרוחקת"
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "לא שלחנו אלינו את הפרופיל הזה"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "לא שלחנו אלינו את הפרופיל הזה"
msgstr[1] "לא שלחנו אלינו את הפרופיל הזה"
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4432,6 +4446,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po
index 6a0ff37b46..9bea1de8fc 100644
--- a/locale/hsb/LC_MESSAGES/statusnet.po
+++ b/locale/hsb/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:27+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:39+0000\n"
"Language-Team: Dutch\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: hsb\n"
"X-Message-Group: out-statusnet\n"
@@ -180,9 +180,8 @@ msgid "Could not save profile."
msgstr "Profil njeje so składować dał."
#: actions/apiblockcreate.php:105
-#, fuzzy
msgid "You cannot block yourself!"
-msgstr "Njemóžeš wužiwarjow wušmórnyć."
+msgstr "Njemóžeš so samoho blokować."
#: actions/apiblockcreate.php:119
msgid "Block user failed."
@@ -564,7 +563,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1726,11 +1725,11 @@ msgstr ""
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Hižo přizjewjeny."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr ""
@@ -4191,11 +4190,25 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Aliasy njejsu so dali wutworić."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
msgid "You are not subscribed to anyone."
msgstr ""
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Sy tutu wosobu abonował:"
@@ -4203,11 +4216,11 @@ msgstr[1] "Sy tutej wosobje abonował:"
msgstr[2] "Sy tute wosoby abonował:"
msgstr[3] "Sy tute wosoby abonował:"
-#: lib/command.php:614
+#: lib/command.php:645
msgid "No one is subscribed to you."
msgstr ""
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Tuta wosoba je će abonowała:"
@@ -4215,11 +4228,11 @@ msgstr[1] "Tutej wosobje stej će abonowałoj:"
msgstr[2] "Tute wosoby su će abonowali:"
msgstr[3] "Tute wosoby su će abonowali:"
-#: lib/command.php:636
+#: lib/command.php:667
msgid "You are not a member of any groups."
msgstr ""
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Sy čłon tuteje skupiny:"
@@ -4227,7 +4240,7 @@ msgstr[1] "Sy čłon tuteju skupinow:"
msgstr[2] "Sy čłon tutych skupinow:"
msgstr[3] "Sy čłon tutych skupinow:"
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4246,6 +4259,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po
index e27212ed11..16e4b7435a 100644
--- a/locale/is/LC_MESSAGES/statusnet.po
+++ b/locale/is/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:31+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:42+0000\n"
"Language-Team: Icelandic\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: is\n"
"X-Message-Group: out-statusnet\n"
@@ -574,7 +574,7 @@ msgstr "Skera af"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1802,11 +1802,11 @@ msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s"
msgid "%s left group %s"
msgstr "%s gekk úr hópnum %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Þú hefur nú þegar skráð þig inn."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Ótækt bablinnihald"
@@ -4401,40 +4401,54 @@ msgstr "Tilkynningar á."
msgid "Can't turn on notification."
msgstr "Get ekki kveikt á tilkynningum."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Gat ekki búið til uppáhald."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Þú ert ekki áskrifandi."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Þú ert nú þegar í áskrift að þessum notendum:"
msgstr[1] "Þú ert nú þegar í áskrift að þessum notendum:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Gat ekki leyft öðrum að gerast áskrifandi að þér."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Gat ekki leyft öðrum að gerast áskrifandi að þér."
msgstr[1] "Gat ekki leyft öðrum að gerast áskrifandi að þér."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Þú ert ekki meðlimur í þessum hópi."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Þú ert ekki meðlimur í þessum hópi."
msgstr[1] "Þú ert ekki meðlimur í þessum hópi."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4453,6 +4467,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po
index da538e1a27..b86ca75b94 100644
--- a/locale/it/LC_MESSAGES/statusnet.po
+++ b/locale/it/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:34+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:45+0000\n"
"Language-Team: Italian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: it\n"
"X-Message-Group: out-statusnet\n"
@@ -582,7 +582,7 @@ msgstr "Ritaglia"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1847,11 +1847,11 @@ msgstr "Impossibile rimuovere l'utente %s dal gruppo %s"
msgid "%s left group %s"
msgstr "%s ha lasciato il gruppo %s"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Accesso già effettuato."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Contenuto del messaggio non valido"
@@ -4471,40 +4471,54 @@ msgstr "Notifiche attivate."
msgid "Can't turn on notification."
msgstr "Impossibile attivare le notifiche."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Impossibile creare preferito."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Non sei abbonato a quel profilo."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Sei già abbonato a questi utenti:"
msgstr[1] "Sei già abbonato a questi utenti:"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Impossibile abbonare altri a te."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Impossibile abbonare altri a te."
msgstr[1] "Impossibile abbonare altri a te."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Non sei un membro di quel gruppo."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Non sei un membro di quel gruppo."
msgstr[1] "Non sei un membro di quel gruppo."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4523,6 +4537,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po
index 43f6fcec79..74baa8e281 100644
--- a/locale/ja/LC_MESSAGES/statusnet.po
+++ b/locale/ja/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:37+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:48+0000\n"
"Language-Team: Japanese\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ja\n"
"X-Message-Group: out-statusnet\n"
@@ -586,7 +586,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1835,11 +1835,11 @@ msgstr "OpenIDを作成できません : %s"
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "既にログインしています。"
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "不正な通知内容"
@@ -4422,37 +4422,51 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "アバターを保存できません"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "そのプロファイルは送信されていません。"
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "そのプロファイルは送信されていません。"
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "リモートサブスクライブ"
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "リモートサブスクライブ"
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "そのプロファイルは送信されていません。"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "そのプロファイルは送信されていません。"
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4471,6 +4485,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po
index 2de8e46d53..05b20ed918 100644
--- a/locale/ko/LC_MESSAGES/statusnet.po
+++ b/locale/ko/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:40+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:51+0000\n"
"Language-Team: Korean\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ko\n"
"X-Message-Group: out-statusnet\n"
@@ -581,7 +581,7 @@ msgstr "자르기"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1828,11 +1828,11 @@ msgstr "그룹 %s에서 %s 사용자를 제거할 수 없습니다."
msgid "%s left group %s"
msgstr "%s가 그룹%s를 떠났습니다."
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "이미 로그인 하셨습니다."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "옳지 않은 통지 내용"
@@ -4433,37 +4433,51 @@ msgstr "알림이 켜졌습니다."
msgid "Can't turn on notification."
msgstr "알림을 켤 수 없습니다."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "좋아하는 게시글을 생성할 수 없습니다."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "당신은 이 프로필에 구독되지 않고있습니다."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "당신은 다음 사용자를 이미 구독하고 있습니다."
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "다른 사람을 구독 하실 수 없습니다."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "다른 사람을 구독 하실 수 없습니다."
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "당신은 해당 그룹의 멤버가 아닙니다."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "당신은 해당 그룹의 멤버가 아닙니다."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4482,6 +4496,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po
index 011c434cac..dff5c0b431 100644
--- a/locale/mk/LC_MESSAGES/statusnet.po
+++ b/locale/mk/LC_MESSAGES/statusnet.po
@@ -8,12 +8,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:43+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:55+0000\n"
"Language-Team: Macedonian\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: mk\n"
"X-Message-Group: out-statusnet\n"
@@ -579,7 +579,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -681,7 +681,7 @@ msgstr ""
#: actions/block.php:143 actions/deletenotice.php:145
#: actions/deleteuser.php:147 actions/groupblock.php:178
msgid "No"
-msgstr ""
+msgstr "Не"
#: actions/block.php:143 actions/deleteuser.php:147
#, fuzzy
@@ -1799,11 +1799,11 @@ msgstr "OpenID формуларот не може да се креира:%s"
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Веќе сте најавени."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
#, fuzzy
msgid "Invalid or expired token."
msgstr "Неправилна содржина за известување"
@@ -4391,40 +4391,54 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Информациите за аватарот не може да се снимат"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Не ни го испративте тој профил."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Не ни го испративте тој профил."
msgstr[1] "Не ни го испративте тој профил."
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Оддалечена претплата"
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Оддалечена претплата"
msgstr[1] "Оддалечена претплата"
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Не ни го испративте тој профил."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Не ни го испративте тој профил."
msgstr[1] "Не ни го испративте тој профил."
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4443,6 +4457,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po
index 4a8ed64274..12b20f3ddb 100644
--- a/locale/nb/LC_MESSAGES/statusnet.po
+++ b/locale/nb/LC_MESSAGES/statusnet.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:46+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:26:58+0000\n"
"Language-Team: Norwegian (bokmål)\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: no\n"
"X-Message-Group: out-statusnet\n"
@@ -577,7 +577,7 @@ msgstr ""
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1796,11 +1796,11 @@ msgstr "Klarte ikke å oppdatere bruker."
msgid "%s left group %s"
msgstr ""
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "Allerede innlogget."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr ""
@@ -4335,40 +4335,54 @@ msgstr ""
msgid "Can't turn on notification."
msgstr ""
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Klarte ikke å lagre avatar-informasjonen"
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
#, fuzzy
msgid "You are not subscribed to anyone."
msgstr "Ikke autorisert."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "Ikke autorisert."
msgstr[1] "Ikke autorisert."
-#: lib/command.php:614
+#: lib/command.php:645
#, fuzzy
msgid "No one is subscribed to you."
msgstr "Svar til %s"
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Svar til %s"
msgstr[1] "Svar til %s"
-#: lib/command.php:636
+#: lib/command.php:667
#, fuzzy
msgid "You are not a member of any groups."
msgstr "Du er allerede logget inn!"
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "Du er allerede logget inn!"
msgstr[1] "Du er allerede logget inn!"
-#: lib/command.php:652
+#: lib/command.php:683
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4387,6 +4401,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join - join group\n"
+"login - Get a link to login to the web interface\n"
"drop - leave group\n"
"stats - get your stats\n"
"stop - same as 'off'\n"
diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po
index 85f3cb655e..cec42ca714 100644
--- a/locale/nl/LC_MESSAGES/statusnet.po
+++ b/locale/nl/LC_MESSAGES/statusnet.po
@@ -9,12 +9,12 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-05 19:53+0000\n"
-"PO-Revision-Date: 2009-12-05 19:54:52+0000\n"
+"POT-Creation-Date: 2009-12-07 21:25+0000\n"
+"PO-Revision-Date: 2009-12-07 21:27:06+0000\n"
"Language-Team: Dutch\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.16alpha(r59747); Translate extension (2009-11-29)\n"
+"X-Generator: MediaWiki 1.16alpha(r59800); Translate extension (2009-12-06)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: nl\n"
"X-Message-Group: out-statusnet\n"
@@ -193,9 +193,8 @@ msgid "Could not save profile."
msgstr "Het was niet mogelijk het profiel op te slaan."
#: actions/apiblockcreate.php:105
-#, fuzzy
msgid "You cannot block yourself!"
-msgstr "U kunt het abonnement op uzelf niet opzeggen."
+msgstr "U zichzelf niet blokkeren!"
#: actions/apiblockcreate.php:119
msgid "Block user failed."
@@ -587,7 +586,7 @@ msgstr "Uitsnijden"
#: actions/emailsettings.php:238 actions/favor.php:75
#: actions/groupblock.php:66 actions/grouplogo.php:309
#: actions/groupunblock.php:66 actions/imsettings.php:206
-#: actions/invite.php:56 actions/login.php:129 actions/makeadmin.php:66
+#: actions/invite.php:56 actions/login.php:134 actions/makeadmin.php:66
#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
#: actions/othersettings.php:145 actions/passwordsettings.php:138
#: actions/profilesettings.php:187 actions/recoverpassword.php:337
@@ -1843,11 +1842,11 @@ msgstr "De gebruiker %s kon niet uit de groet %s verwijderd worden"
msgid "%s left group %s"
msgstr "%s heeft de groep %s verlaten"
-#: actions/login.php:79 actions/register.php:137
+#: actions/login.php:82 actions/register.php:137
msgid "Already logged in."
msgstr "U bent al aangemeld."
-#: actions/login.php:108 actions/login.php:118
+#: actions/login.php:113 actions/login.php:123
msgid "Invalid or expired token."
msgstr "Het token is ongeldig of verlopen."
@@ -4496,37 +4495,52 @@ msgstr "Notificaties ingeschakeld."
msgid "Can't turn on notification."
msgstr "Het is niet mogelijk de notificatie uit te schakelen."
-#: lib/command.php:592
+#: lib/command.php:588
+msgid "Login command is disabled"
+msgstr ""
+
+#: lib/command.php:602
+#, fuzzy, php-format
+msgid "Could not create login token for %s"
+msgstr "Het was niet mogelijk de aliassen aan te maken."
+
+#: lib/command.php:607
+#, php-format
+msgid "This link is useable only once, and is good for only 2 minutes: %s"
+msgstr ""
+
+#: lib/command.php:623
msgid "You are not subscribed to anyone."
msgstr "U bent op geen enkele gebruiker geabonneerd."
-#: lib/command.php:594
+#: lib/command.php:625
msgid "You are subscribed to this person:"
msgid_plural "You are subscribed to these people:"
msgstr[0] "U bent geabonneerd op deze gebruiker:"
msgstr[1] "U bent geabonneerd op deze gebruikers:"
-#: lib/command.php:614
+#: lib/command.php:645
msgid "No one is subscribed to you."
msgstr "Niemand heeft een abonnenment op u."
-#: lib/command.php:616
+#: lib/command.php:647
msgid "This person is subscribed to you:"
msgid_plural "These people are subscribed to you:"
msgstr[0] "Deze gebruiker is op u geabonneerd:"
msgstr[1] "Deze gebruikers zijn op u geabonneerd:"
-#: lib/command.php:636
+#: lib/command.php:667
msgid "You are not a member of any groups."
msgstr "U bent lid van geen enkele groep."
-#: lib/command.php:638
+#: lib/command.php:669
msgid "You are a member of this group:"
msgid_plural "You are a member of these groups:"
msgstr[0] "U bent lid van deze groep:"
msgstr[1] "U bent lid van deze groepen:"
-#: lib/command.php:652
+#: lib/command.php:683
+#, fuzzy
msgid ""
"Commands:\n"
"on - turn on notifications\n"
@@ -4545,6 +4559,7 @@ msgid ""
"reply # - reply to notice with a given id\n"
"reply - reply to the last notice from user\n"
"join