code:
<?php
/*
	Requires PHP5, uses built-in DOM extension.
	To be used in PHP4 scripts using DOMXML extension: allows PHP4/DOMXML scripts to run on PHP5/DOM.
	(Optional: requires PHP5/XSL extension for domxml_xslt functions, PHP>=5.1 for XPath evaluation functions, and PHP>=5.1/libxml for DOMXML error reports)

	Typical use:
	{
		if (PHP_VERSION>='5')
			require_once('domxml-php4-to-php5.php');
	}

	Version 1.21, 2008-12-05, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/

	------------------------------------------------------------------
	Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/

	Copyright 2004-2008, GNU Lesser General Public License,
	http://www.gnu.org/licenses/lgpl.html

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
	You should have received a copy of the GNU Lesser General Public License
	along with this program. If not, see <http://www.gnu.org/licenses/lgpl.html>

	== Rights and obligations ==
	- Attribution: You must give the original author credit.
	- Share Alike: If you alter or transform this library,
	   you may distribute the resulting library only under the same license GNU/LGPL.
	- In case of jurisdiction dispute, the French law is authoritative.
	- Any of these conditions can be waived if you get permission from Alexandre Alapetite.
	- Not required, but please send to Alexandre Alapetite the modifications you make,
	   in order to improve this file for the benefit of everybody.

	If you want to distribute this code, please do it as a link to:
	http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
*/

define('DOMXML_LOAD_PARSING',0);
define('DOMXML_LOAD_VALIDATING',1);
define('DOMXML_LOAD_RECOVERING',2);
define('DOMXML_LOAD_SUBSTITUTE_ENTITIES',4);
//define('DOMXML_LOAD_COMPLETE_ATTRS',8);
define('DOMXML_LOAD_DONT_KEEP_BLANKS',16);

function domxml_new_doc($version) {return new php4DOMDocument();}
function domxml_new_xmldoc($version) {return new php4DOMDocument();}
function domxml_open_file($filename,$mode=DOMXML_LOAD_PARSING,&$error=null)
{
	$dom=new php4DOMDocument($mode);
	$errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION');
	if ($errorMode) libxml_use_internal_errors(true);
	if (!$dom->myDOMNode->load($filename)) $dom=null;
	if ($errorMode)
	{
		$error=array_map('_error_report',libxml_get_errors());
		libxml_clear_errors();
	}
	return $dom;
}
function domxml_open_mem($str,$mode=DOMXML_LOAD_PARSING,&$error=null)
{
	$dom=new php4DOMDocument($mode);
	$errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION');
	if ($errorMode) libxml_use_internal_errors(true);
	if (!$dom->myDOMNode->loadXML($str)) $dom=null;
	if ($errorMode)
	{
		$error=array_map('_error_report',libxml_get_errors());
		libxml_clear_errors();
	}
	return $dom;
}
function html_doc($html_doc,$from_file=false)
{
	$dom=new php4DOMDocument();
	if ($from_file) $result=$dom->myDOMNode->loadHTMLFile($html_doc);
	else $result=$dom->myDOMNode->loadHTML($html_doc);
	return $result ? $dom : null;
}
function html_doc_file($filename) {return html_doc($filename,true);}
function xmldoc($str) {return domxml_open_mem($str);}
function xmldocfile($filename) {return domxml_open_file($filename);}
function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->xpath_eval($eval_str,$contextnode);}
function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);}
function xpath_register_ns($xpath_context,$prefix,$namespaceURI) {return $xpath_context->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
function _entityDecode($text) {return html_entity_decode(strtr($text,array('''=>'\'')),ENT_QUOTES,'UTF-8');}
function _error_report($error) {return array('errormessage'=>$error->message,'nodename'=>'','line'=>$error->line,'col'=>$error->column)+($error->file==''?array():array('directory'=>dirname($error->file),'file'=>basename($error->file)));}

class php4DOMAttr extends php4DOMNode
{
	function __get($name)
	{
		if ($name==='name') return $this->myDOMNode->name;
		else return parent::__get($name);
	}
	function name() {return $this->myDOMNode->name;}
	function set_content($text) {}
	//function set_value($content) {return $this->myDOMNode->value=htmlspecialchars($content,ENT_QUOTES);}
	function specified() {return $this->myDOMNode->specified;}
	function value() {return $this->myDOMNode->value;}
}

class php4DOMDocument extends php4DOMNode
{
	function php4DOMDocument($mode=DOMXML_LOAD_PARSING)
	{
		$this->myDOMNode=new DOMDocument();
		$this->myOwnerDocument=$this;
		if ($mode & DOMXML_LOAD_VALIDATING) $this->myDOMNode->validateOnParse=true;
		if ($mode & DOMXML_LOAD_RECOVERING) $this->myDOMNode->recover=true;
		if ($mode & DOMXML_LOAD_SUBSTITUTE_ENTITIES) $this->myDOMNode->substituteEntities=true;
		if ($mode & DOMXML_LOAD_DONT_KEEP_BLANKS) $this->myDOMNode->preserveWhiteSpace=false;
	}
	function add_root($name)
	{
		if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild);
		return new php4DOMElement($this->myDOMNode->appendChild($this->myDOMNode->createElement($name)),$this->myOwnerDocument);
	}
	function create_attribute($name,$value)
	{
		$myAttr=$this->myDOMNode->createAttribute($name);
		$myAttr->value=htmlspecialchars($value,ENT_QUOTES);
		return new php4DOMAttr($myAttr,$this);
	}
	function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);}
	function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);}
	function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);}
	function create_element_ns($uri,$name,$prefix=null)
	{
		if ($prefix==null) $prefix=$this->myDOMNode->lookupPrefix($uri);
		if (($prefix==null)&&(($this->myDOMNode->documentElement==null)||(!$this->myDOMNode->documentElement->isDefaultNamespace($uri)))) $prefix='a'.sprintf('%u',crc32($uri));
		return new php4DOMElement($this->myDOMNode->createElementNS($uri,$prefix==null ? $name : $prefix.':'.$name),$this);
	}
	function create_entity_reference($content) {return new php4DOMNode($this->myDOMNode->createEntityReference($content),$this);} //By Walter Ebert 2007-01-22
	function create_processing_instruction($target,$data=''){return new php4DomProcessingInstruction($this->myDOMNode->createProcessingInstruction($target,$data),$this);}
	function create_text_node($content) {return new php4DOMText($this->myDOMNode->createTextNode($content),$this);}
	function document_element() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);}
	function dump_file($filename,$compressionmode=false,$format=false)
	{
		$format0=$this->myDOMNode->formatOutput;
		$this->myDOMNode->formatOutput=$format;
		$res=$this->myDOMNode->save($filename);
		$this->myDOMNode->formatOutput=$format0;
		return $res;
	}
	function dump_mem($format=false,$encoding=false)
	{
		$format0=$this->myDOMNode->formatOutput;
		$this->myDOMNode->formatOutput=$format;
		$encoding0=$this->myDOMNode->encoding;
		if ($encoding) $this->myDOMNode->encoding=$encoding;
		$dump=$this->myDOMNode->saveXML();
		$this->myDOMNode->formatOutput=$format0;
		if ($encoding) $this->myDOMNode->encoding= $encoding0=='' ? 'UTF-8' : $encoding0; //UTF-8 is XML default encoding
		return $dump;
	}
	function free()
	{
		if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild);
		$this->myDOMNode=null;
		$this->myOwnerDocument=null;
	}
	function get_element_by_id($id) {return parent::_newDOMElement($this->myDOMNode->getElementById($id),$this);}
	function get_elements_by_tagname($name)
	{
		$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
		$nodeSet=array();
		$i=0;
		if (isset($myDOMNodeList))
			while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this);
		return $nodeSet;
	}
	function html_dump_mem() {return $this->myDOMNode->saveHTML();}
	function root() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);}
	function xinclude() {return $this->myDOMNode->xinclude();}
	function xpath_new_context() {return new php4DOMXPath($this);}
}

class php4DOMElement extends php4DOMNode
{
	function add_namespace($uri,$prefix)
	{
		if ($this->myDOMNode->hasAttributeNS('http://www.w3.org/2000/xmlns/',$prefix)) return false;
		else
		{
			$this->myDOMNode->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$prefix,$uri); //By Daniel Walker 2006-09-08
			return true;
		}
	}
	function get_attribute($name) {return $this->myDOMNode->getAttribute($name);}
	function get_attribute_node($name) {return parent::_newDOMElement($this->myDOMNode->getAttributeNode($name),$this->myOwnerDocument);}
	function get_elements_by_tagname($name)
	{
		$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
		$nodeSet=array();
		$i=0;
		if (isset($myDOMNodeList))
			while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
		return $nodeSet;
	}
	function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);}
	function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);}
	function set_attribute($name,$value)
	{
		//return $this->myDOMNode->setAttribute($name,$value); //Does not return a DomAttr
		$myAttr=$this->myDOMNode->ownerDocument->createAttribute($name);
		$myAttr->value=htmlspecialchars($value,ENT_QUOTES); //Entity problem reported by AL-DesignWorks 2007-09-07
		$this->myDOMNode->setAttributeNode($myAttr);
		return new php4DOMAttr($myAttr,$this->myOwnerDocument);
	}
	/*function set_attribute_node($attr)
	{
		$this->myDOMNode->setAttributeNode($this->_importNode($attr));
		return $attr;
	}*/
	function set_name($name)
	{
		if ($this->myDOMNode->prefix=='') $newNode=$this->myDOMNode->ownerDocument->createElement($name);
		else $newNode=$this->myDOMNode->ownerDocument->createElementNS($this->myDOMNode->namespaceURI,$this->myDOMNode->prefix.':'.$name);
		$myDOMNodeList=$this->myDOMNode->attributes;
		$i=0;
		if (isset($myDOMNodeList))
			while ($node=$myDOMNodeList->item($i++))
				if ($node->namespaceURI=='') $newNode->setAttribute($node->name,$node->value);
				else $newNode->setAttributeNS($node->namespaceURI,$node->nodeName,$node->value);
		$myDOMNodeList=$this->myDOMNode->childNodes;
		if (isset($myDOMNodeList))
			while ($node=$myDOMNodeList->item(0)) $newNode->appendChild($node);
		$this->myDOMNode->parentNode->replaceChild($newNode,$this->myDOMNode);
		$this->myDOMNode=$newNode;
		return true;
	}
	function tagname() {return $this->tagname;}
}

class php4DOMNode
{
	public $myDOMNode;
	public $myOwnerDocument;
	function php4DOMNode($aDomNode,$aOwnerDocument)
	{
		$this->myDOMNode=$aDomNode;
		$this->myOwnerDocument=$aOwnerDocument;
	}
	function __get($name)
	{
		switch ($name)
		{
			case 'type': return $this->myDOMNode->nodeType;
			case 'tagname': return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->tagName; //Avoid namespace prefix for DOMElement
			case 'content': return $this->myDOMNode->textContent;
			case 'value': return $this->myDOMNode->value;
			default:
				$myErrors=debug_backtrace();
				trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE);
				return false;
		}
	}
	function add_child($newnode) {return append_child($newnode);}
	function add_namespace($uri,$prefix) {return false;}
	function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
	function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
	function attributes()
	{
		$myDOMNodeList=$this->myDOMNode->attributes;
		if (!(isset($myDOMNodeList)&&$this->myDOMNode->hasAttributes())) return null;
		$nodeSet=array();
		$i=0;
		while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument);
		return $nodeSet;
	}
	function child_nodes()
	{
		$myDOMNodeList=$this->myDOMNode->childNodes;
		$nodeSet=array();
		$i=0;
		if (isset($myDOMNodeList))
			while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=self::_newDOMElement($node,$this->myOwnerDocument);
		return $nodeSet;
	}
	function children() {return $this->child_nodes();}
	function clone_node($deep=false) {return self::_newDOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);}
	//dump_node($node) should only be called on php4DOMDocument
	function dump_node($node=null) {return $node==null ? $this->myOwnerDocument->myDOMNode->saveXML($this->myDOMNode) : $this->myOwnerDocument->myDOMNode->saveXML($node->myDOMNode);}
	function first_child() {return self::_newDOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);}
	function get_content() {return $this->myDOMNode->textContent;}
	function has_attributes() {return $this->myDOMNode->hasAttributes();}
	function has_child_nodes() {return $this->myDOMNode->hasChildNodes();}
	function insert_before($newnode,$refnode) {return self::_newDOMElement($this->myDOMNode->insertBefore($this->_importNode($newnode),$refnode==null?null:$refnode->myDOMNode),$this->myOwnerDocument);}
	function is_blank_node() {return ($this->myDOMNode->nodeType===XML_TEXT_NODE)&&preg_match('%^\s*$%',$this->myDOMNode->nodeValue);}
	function last_child() {return self::_newDOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);}
	function new_child($name,$content)
	{
		$mySubNode=$this->myDOMNode->ownerDocument->createElement($name);
		$mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($content)));
		$this->myDOMNode->appendChild($mySubNode);
		return new php4DOMElement($mySubNode,$this->myOwnerDocument);
	}
	function next_sibling() {return self::_newDOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);}
	function node_name() {return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->nodeName;} //Avoid namespace prefix for DOMElement
	function node_type() {return $this->myDOMNode->nodeType;}
	function node_value() {return $this->myDOMNode->nodeValue;}
	function owner_document() {return $this->myOwnerDocument;}
	function parent_node() {return self::_newDOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);}
	function prefix() {return $this->myDOMNode->prefix;}
	function previous_sibling() {return self::_newDOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);}
	function remove_child($oldchild) {return self::_newDOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);}
	function replace_child($newnode,$oldnode) {return self::_newDOMElement($this->myDOMNode->replaceChild($this->_importNode($newnode),$oldnode->myDOMNode),$this->myOwnerDocument);}
	function replace_node($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->replaceChild($this->_importNode($newnode),$this->myDOMNode),$this->myOwnerDocument);}
	function set_content($text) {return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($text)));} //Entity problem reported by AL-DesignWorks 2007-09-07
	//function set_name($name) {return $this->myOwnerDocument->renameNode($this->myDOMNode,$this->myDOMNode->namespaceURI,$name);}
	function set_namespace($uri,$prefix=null)
	{//Contributions by Daniel Walker 2006-09-08
		$nsprefix=$this->myDOMNode->lookupPrefix($uri);
		if ($nsprefix==null)
		{
			$nsprefix= $prefix==null ? $nsprefix='a'.sprintf('%u',crc32($uri)) : $prefix;
			if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE)
			{
				if (($prefix!=null)&&$this->myDOMNode->ownerElement->hasAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)&&
					($this->myDOMNode->ownerElement->getAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)!=$uri))
				{//Remove namespace
					$parent=$this->myDOMNode->ownerElement;
					$parent->removeAttributeNode($this->myDOMNode);
					$parent->setAttribute($this->myDOMNode->localName,$this->myDOMNode->nodeValue);
					$this->myDOMNode=$parent->getAttributeNode($this->myDOMNode->localName);
					return;
				}
				$this->myDOMNode->ownerElement->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$nsprefix,$uri);
			}
		}
		if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE)
		{
			$parent=$this->myDOMNode->ownerElement;
			$parent->removeAttributeNode($this->myDOMNode);
			$parent->setAttributeNS($uri,$nsprefix.':'.$this->myDOMNode->localName,$this->myDOMNode->nodeValue);
			$this->myDOMNode=$parent->getAttributeNodeNS($uri,$this->myDOMNode->localName);
		}
		elseif ($this->myDOMNode->nodeType===XML_ELEMENT_NODE)
		{
			$NewNode=$this->myDOMNode->ownerDocument->createElementNS($uri,$nsprefix.':'.$this->myDOMNode->localName);
			foreach ($this->myDOMNode->attributes as $n) $NewNode->appendChild($n->cloneNode(true));
			foreach ($this->myDOMNode->childNodes as $n) $NewNode->appendChild($n->cloneNode(true));
			$xpath=new DOMXPath($this->myDOMNode->ownerDocument);
			$myDOMNodeList=$xpath->query('namespace::*[name()!="xml"]',$this->myDOMNode); //Add old namespaces
			foreach ($myDOMNodeList as $n) $NewNode->setAttributeNS('http://www.w3.org/2000/xmlns/',$n->nodeName,$n->nodeValue);
			$this->myDOMNode->parentNode->replaceChild($NewNode,$this->myDOMNode);
			$this->myDOMNode=$NewNode;
		}
	}
	function unlink_node()
	{
		if ($this->myDOMNode->parentNode!=null)
		{
			if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) $this->myDOMNode->parentNode->removeAttributeNode($this->myDOMNode);
			else $this->myDOMNode->parentNode->removeChild($this->myDOMNode);
		}
	}
	protected function _importNode($newnode) {return $this->myOwnerDocument===$newnode->myOwnerDocument ? $newnode->myDOMNode : $this->myOwnerDocument->myDOMNode->importNode($newnode->myDOMNode,true);} //To import DOMNode from another DOMDocument
	static function _newDOMElement($aDOMNode,$aOwnerDocument)
	{//Check the PHP5 DOMNode before creating a new associated PHP4 DOMNode wrapper
		if ($aDOMNode==null) return null;
		switch ($aDOMNode->nodeType)
		{
			case XML_ELEMENT_NODE: return new php4DOMElement($aDOMNode,$aOwnerDocument);
			case XML_TEXT_NODE: return new php4DOMText($aDOMNode,$aOwnerDocument);
			case XML_ATTRIBUTE_NODE: return new php4DOMAttr($aDOMNode,$aOwnerDocument);
			case XML_PI_NODE: return new php4DomProcessingInstruction($aDOMNode,$aOwnerDocument);
			default: return new php4DOMNode($aDOMNode,$aOwnerDocument);
		}
	}
}

class php4DomProcessingInstruction extends php4DOMNode
{
	function data() {return $this->myDOMNode->data;}
	function target() {return $this->myDOMNode->target;}
}

class php4DOMText extends php4DOMNode
{
	function __get($name)
	{
		if ($name==='tagname') return '#text';
		else return parent::__get($name);
	}
	function tagname() {return '#text';}
	function set_content($text) {$this->myDOMNode->nodeValue=$text; return true;}
}

if (!defined('XPATH_NODESET'))
{
	define('XPATH_UNDEFINED',0);
	define('XPATH_NODESET',1);
	define('XPATH_BOOLEAN',2);
	define('XPATH_NUMBER',3);
	define('XPATH_STRING',4);
	/*define('XPATH_POINT',5);
	define('XPATH_RANGE',6);
	define('XPATH_LOCATIONSET',7);
	define('XPATH_USERS',8);
	define('XPATH_XSLT_TREE',9);*/
}

class php4DOMNodelist
{
	private $myDOMNodelist;
	public $nodeset;
	public $type=XPATH_UNDEFINED;
	public $value;
	function php4DOMNodelist($aDOMNodelist,$aOwnerDocument)
	{
		if (!isset($aDOMNodelist)) return;
		elseif (is_object($aDOMNodelist)||is_array($aDOMNodelist))
		{
			if ($aDOMNodelist->length>0)
			{
				$this->myDOMNodelist=$aDOMNodelist;
				$this->nodeset=array();
				$this->type=XPATH_NODESET;
				$i=0;
				while ($node=$this->myDOMNodelist->item($i++)) $this->nodeset[]=php4DOMNode::_newDOMElement($node,$aOwnerDocument);
			}
		}
		elseif (is_int($aDOMNodelist)||is_float($aDOMNodelist))
		{
			$this->type=XPATH_NUMBER;
			$this->value=$aDOMNodelist;
		}
		elseif (is_bool($aDOMNodelist))
		{
			$this->type=XPATH_BOOLEAN;
			$this->value=$aDOMNodelist;
		}
		elseif (is_string($aDOMNodelist))
		{
			$this->type=XPATH_STRING;
			$this->value=$aDOMNodelist;
		}
	}
}

class php4DOMXPath
{
	public $myDOMXPath;
	private $myOwnerDocument;
	function php4DOMXPath($dom_document)
	{
		//TODO: If $dom_document is a DomElement, make that default $contextnode and modify XPath. Ex: '/test'
		$this->myOwnerDocument=$dom_document->myOwnerDocument;
		$this->myDOMXPath=new DOMXPath($this->myOwnerDocument->myDOMNode);
	}
	function xpath_eval($eval_str,$contextnode=null)
	{
		if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
		else $xp=isset($contextnode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
		$xp=new php4DOMNodelist($xp,$this->myOwnerDocument);
		return ($xp->type===XPATH_UNDEFINED) ? false : $xp;
	}
	function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
}

if (extension_loaded('xsl'))
{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
	function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
	function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
	function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
	class php4DomXsltStylesheet
	{
		private $myxsltProcessor;
		function php4DomXsltStylesheet($dom_document)
		{
			$this->myxsltProcessor=new xsltProcessor();
			$this->myxsltProcessor->importStyleSheet($dom_document);
		}
		function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false)
		{
			foreach ($xslt_parameters as $param=>$value) $this->myxsltProcessor->setParameter('',$param,$value);
			$myphp4DOMDocument=new php4DOMDocument();
			$myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode);
			return $myphp4DOMDocument;
		}
		function result_dump_file($dom_document,$filename)
		{
			$html=$dom_document->myDOMNode->saveHTML();
			file_put_contents($filename,$html);
			return $html;
		}
		function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();}
	}
}
?>

license: mit


code:
<?php

/**
 * @file languages/spanish.php
 * @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'usant servidor',
 CAS_STR_AUTHENTICATION_WANTED
 => 'Autentificació CAS necessària!',
 CAS_STR_LOGOUT
 => 'Sortida de CAS necessària!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click aquí per a continuar.',
 CAS_STR_AUTHENTICATION_FAILED
 => 'Autentificació CAS fallida!',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
No estàs autentificat.

Pots tornar a intentar-ho fent click aquí.

Si el problema persisteix hauría de contactar amb l\'administrador d\'aquest llocc.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => 'El servei `%s\' no està disponible (%s).'
);

?>


code:
<?php

/**
 * @file languages/english.php
 * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'using server',
 CAS_STR_AUTHENTICATION_WANTED
 => 'CAS Authentication wanted!',
 CAS_STR_LOGOUT
 => 'CAS logout wanted!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'You should already have been redirected to the CAS server. Click here to continue.',
 CAS_STR_AUTHENTICATION_FAILED
 => 'CAS Authentication failed!',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
You were not authenticated.

You may submit your request again by clicking here.

If the problem persists, you may contact the administrator of this site.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => 'The service `%s\' is not available (%s).'
);

?>


code:
<?php

/**
 * @file languages/english.php
 * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'utilisant le serveur',
 CAS_STR_AUTHENTICATION_WANTED
 => 'Authentication CAS n�cessaire !',
 CAS_STR_LOGOUT
 => 'D�connexion demand�e !',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'Vous auriez du etre redirig�(e) vers le serveur CAS. Cliquez ici pour continuer.',
 CAS_STR_AUTHENTICATION_FAILED
 => 'Authentification CAS infructueuse !',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
Vous n\'avez pas �t� authentifi�(e).

Vous pouvez soumettre votre requete � nouveau en cliquant ici.

Si le probl�me persiste, vous pouvez contacter l\'administrateur de ce site.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => 'Le service `%s\' est indisponible (%s)'

);

?>


code:
<?php

/**
 * @file languages/german.php
 * @author Henrik Genssen <hg at mediafactory.de>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'via Server',
 CAS_STR_AUTHENTICATION_WANTED
 => 'CAS Authentifizierung erforderlich!',
 CAS_STR_LOGOUT
 => 'CAS Abmeldung!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie hier um fortzufahren.',
 CAS_STR_AUTHENTICATION_FAILED
 => 'CAS Anmeldung fehlgeschlagen!',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
Sie wurden nicht angemeldet.

Um es erneut zu versuchen klicken Sie hier.

Wenn das Problem bestehen bleibt, kontkatieren Sie den Administrator dieser Seite.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => 'Der Dienst `%s\' ist nicht verfügbar (%s).'
);

?>


code:
<?php

/**
 * @file languages/greek.php
 * @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => '��������������� � ������������',
 CAS_STR_AUTHENTICATION_WANTED
 => '���������� � ����������� CAS!',
 CAS_STR_LOGOUT
 => '���������� � ���������� ��� CAS!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => '�� ������ �� ������ �������������� ���� ����������� CAS. ����� ���� ��� ��� �� ����������.',
 CAS_STR_AUTHENTICATION_FAILED
 => '� ����������� CAS �������!',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
��� ���������������.

�������� �� ����������������, �������� ���� ���.

��� �� �������� ���������, ����� �� ����� �� ��� �����������.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => '� �������� `%s\' ��� ����� ��������� (%s).'
);

?>


code:
<?php

/**
 * @file languages/japanese.php
 * @author fnorif (fnorif@yahoo.co.jp)
 *
 * Now Encoding is EUC-JP and LF
 **/

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'using server',
 CAS_STR_AUTHENTICATION_WANTED
 => 'CAS�ˤ��ǧ�ڤ�Ԥ��ޤ�',
 CAS_STR_LOGOUT
 => 'CAS����?�����Ȥ��ޤ�!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'CAS�����Ф˹Ԥ�ɬ�פ�����ޤ�����ưŪ��ž������ʤ����� ������ �򥯥�å�����³�Ԥ��ޤ���',
 CAS_STR_AUTHENTICATION_FAILED
 => 'CAS�ˤ��ǧ�ڤ˼��Ԥ��ޤ���',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
ǧ�ڤǤ��ޤ���Ǥ���.

�⤦���٥ꥯ�����Ȥ�������������������򥯥�å�.

���꤬��褷�ʤ����� ���Υ����Ȥδ�������䤤��碌�Ƥ�������.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => '�����ӥ� `%s\' �����ѤǤ��ޤ��� (%s).'
);

?>


code:
<?php

/**
 * @file languages/languages.php
 * Internationalization constants
 * @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

//@{
/**
 * a phpCAS string index
 */
define("CAS_STR_USING_SERVER",                1);
define("CAS_STR_AUTHENTICATION_WANTED",       2);
define("CAS_STR_LOGOUT",                      3);
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
define("CAS_STR_AUTHENTICATION_FAILED",       5);
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED",  6);
define("CAS_STR_SERVICE_UNAVAILABLE",         7);
//@}

?>


code:
<?php

/**
 * @file languages/spanish.php
 * @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
 * @sa @link internalLang Internationalization @endlink
 * @ingroup internalLang
 */

$this->_strings = array(
 CAS_STR_USING_SERVER
 => 'usando servidor',
 CAS_STR_AUTHENTICATION_WANTED
 => '¡Autentificación CAS necesaria!',
 CAS_STR_LOGOUT
 => '¡Salida CAS necesaria!',
 CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
 => 'Ya debería haber sido redireccionado al servidor CAS. Haga click aquí para continuar.',
 CAS_STR_AUTHENTICATION_FAILED
 => '¡Autentificación CAS fallida!',
 CAS_STR_YOU_WERE_NOT_AUTHENTICATED
 => '
No estás autentificado.

Puedes volver a intentarlo haciendo click aquí.

Si el problema persiste debería contactar con el administrador de este sitio.
',
 CAS_STR_SERVICE_UNAVAILABLE
 => 'El servicio `%s\' no está disponible (%s).'
);

?>


code:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:83
msgid "CAS"
msgstr ""

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:85
msgid "Login or register with CAS."
msgstr ""

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#: CasAuthenticationPlugin.php:101
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
#: CasAuthenticationPlugin.php:129
msgid "Specifying a server is required."
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
#: CasAuthenticationPlugin.php:133
msgid "Specifying a port is required."
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
#: CasAuthenticationPlugin.php:137
msgid "Specifying a path is required."
msgstr ""

#. TRANS: Plugin description. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:157
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#. TRANS: Client error displayed when trying to log in while already logged on.
#: caslogin.php:29
msgid "Already logged in."
msgstr ""

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
#: caslogin.php:41
msgid "Incorrect username or password."
msgstr ""

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
#: caslogin.php:48
msgid "Error setting user. You are probably not authorized."
msgstr ""


code:
# Translation of StatusNet - CasAuthentication to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
# Author: Jim-by
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <https://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Увайсьці ці зарэгістравацца з CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Маеце рахунак з CAS? Паспрабуйце наш [уваход CAS](%%action.caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Неабходна пазначыць сэрвэр."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Неабходна пазначыць порт."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Неабходна пазначыць шлях."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Дапаўненьне аўтэнтыфікацыі CAS дазваляе StatusNet апрацоўваць аўтэнтыфікацыю "
"праз CAS (цэнтральны сэрвіс аўтэнтыфікацыі)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Ужо ўвайшлі ў сыстэму."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Няслушнае імя карыстальніка ці пароль."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Памылка ўстаноўкі карыстальніка. Верагодна Вы не аўтарызаваны."


code:
# Translation of StatusNet - CasAuthentication to Breton (brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "Servij dilesadur kreiz (SDK)"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Kevreañ pe en em enskrivañ dre ar SDK."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Hag ur gont diselaet SDK ho peus ? Amprouit hor [c'hevreadur SAC](%%action."
"caslogin%%) !)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Ret eo spisaat ur servijer."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr ""

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Kevreet oc'h dija."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Anv implijer pe ger-tremen direizh."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Ur fazi 'zo bet e-pad hizivadenn an implijer. Moarvat n'oc'h ket aotreet "
"evit en ober."


code:
# Translation of StatusNet - CasAuthentication to Catalan (català)
# Exported from translatewiki.net
#
# Author: Solde
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Inici de sessió o registre amb CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Cal especificar un servidor."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Cal especificar un port."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Cal especificar un camí."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Ja heu iniciat una sessió."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nom d'usuari o contrasenya incorrectes."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"S'ha produït un error en definir l'usuari. Probablement no hi esteu "
"autoritzat."


code:
# Translation of StatusNet - CasAuthentication to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Fujnky
# Author: Michael
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Anmelden oder mit CAS registrieren."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Hast du ein CAS-Konto? Probiere unseren [CAS-Login](%%action.caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Es ist erforderlich, einen Server anzugeben."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Es ist erforderlich, einen Port anzugeben."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Es ist erforderlich, einen Pfad anzugeben."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Das CAS-Authenfizierungs-Plugin erlaubt es StatusNet, die Authentifizierung "
"über CAS (Central Authentication Service) abzuwickeln."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Bereits angemeldet."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Benutzername oder Passwort falsch."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Fehler beim Festlegen des Benutzers. Du bist wahrscheinlich nicht dazu "
"berechtigt."


code:
# Translation of StatusNet - CasAuthentication to Spanish (español)
# Exported from translatewiki.net
#
# Author: Locos epraix
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Inicia sesión o regístrate con CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(¿Tienes una cuenta con CAS? Prueba nuestro [Inicio de usuario CAS](%%action."
"caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Se requiere especificar un servidor."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Se requiere especificar un servidor."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Se requiere especificar una ruta."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"La extensión de Autenticación CAS permite a StatusNet manejar autenticación "
"a través de CAS (Servicio de Autenticación Central)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Ya has iniciado sesión"

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nombre de usuario o contraseña incorrectos."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Error al configurar el usuario. Posiblemente no tengas autorización."


code:
# Translation of StatusNet - CasAuthentication to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "AZZ"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "AZZrekin izen eman."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(AZZrekin konturik bai? Saiatu gure [AZZ saio haserarekin](%%action.caslogin%"
"%)!"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Zerbitzari bat zehaztea beharrezkoa da."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Portu bat zehaztea beharrezkoa da."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Bide bat zehaztea beharrezkoa da."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"AZZ autentifikazio pluginak StatusNet-en AZZ (Autentifikazio Zerbitzu "
"Zentrala) bidez autentifikatzea ahalbidetzen du."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Dagoeneko saioa hasita."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Erabiltzaile edo pasahitz okerra."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Akatsa erabiltzailea ezartzean. Ziurrenik ez zaude baimenduta."


code:
# Translation of StatusNet - CasAuthentication to French (français)
# Exported from translatewiki.net
#
# Author: Verdy p
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:00+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "Service d’authentification central (SAC)"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Se connecter ou s’inscrire via le SAC."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Vous avez un compte authentifié SAC ? Essayez notre [connexion SAC](%%"
"action.caslogin%%) !)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "La spécification d’un serveur est nécessaire."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "La spécification d’un port est nécessaire."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "La spécification d’un chemin d’accès est nécessaire."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Le greffon d’authentification SAC permet à StatusNet de gérer "
"l’authentification par SAC (Service central d’authentification)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Déjà connecté."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nom d’utilisateur ou mot de passe incorrect."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Erreur lors de la définition de l’utilisateur. Vous n’êtes probablement pas "
"autorisé."


code:
# Translation of StatusNet - CasAuthentication to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "Servizo de autenticación central (SAC)"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Iniciar sesión ou rexistrarse co SAC."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Ten unha conta co SAC? Probe o noso [rexistro SAC](%%action.caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Cómpre especificar un servidor."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Cómpre especificar un porto."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Cómpre especificar unha ruta."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"O complemento de autenticación SAC permite a StatusNet manexar a "
"autenticación a través do SAC (servizo de autenticación central)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Xa se identificou."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nome de usuario ou contrasinal incorrectos."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Houbo un erro ao configurar o usuario. Probablemente non estea autorizado "
"para facelo."


code:
# Translation of StatusNet - CasAuthentication to Hungarian (magyar)
# Exported from translatewiki.net
#
# Author: Dani
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Hungarian <https://translatewiki.net/wiki/Portal:hu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: hu\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr ""

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr ""

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "A szerver megadása kötelező"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "A port megadása kötelező."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Az elérési út megadása kötelező."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Már be vagy jelentkezve."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Hibás felhasználónév vagy jelszó."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""


code:
# Translation of StatusNet - CasAuthentication to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Aperir session o crear conto via CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Tu ha un conto de CAS? Essaya nostre [authentication CAS](%%action.caslogin%"
"%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Specificar un servitor es necessari."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Specificar un porto es necessari."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Specificar un cammino es necessari."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Le plug-in de authentication CAS permitte que StatusNet manea le "
"authentication via CAS (Central Authentication Service, servicio central de "
"authentication)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Tu es jam authenticate."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nomine de usator o contrasigno incorrecte."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Error de acceder al conto de usator. Tu probabilemente non es autorisate."


code:
# Translation of StatusNet - CasAuthentication to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Autenticati o registrati con CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Hai un account con CAS? Prova il nostro [login CAS] (% %action.caslogin% "
"%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "E' necessario specificare un server."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "E' necessario specificare una porta."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "E' necessario specificare un percorso."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Il plugin di autenticazione CAS permette a StatusNet di gestire "
"l'autenticazione attraverso il CAS (Servizio di Autenticazione Centrale)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Accesso già effettuato."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nome utente o password non corretti."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Errore nell'impostare l'utente. Forse non hai l'autorizzazione."


code:
# Translation of StatusNet - CasAuthentication to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Најава или регистрација со CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Имате сметка на CAS? Пробајте ја нашата [најава со CAS](%%action.caslogin%"
"%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Мора да се назначи опслужувач."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Мора да се назначи порта."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Мора да се назначи патека."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Приклучокот за потврда CAS му овозможува на StatusNet да работи со потврди "
"преку CAS (Central Authentication Service - „Служба за централно "
"потврдување“)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Веќе сте најавени."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Мора да се назначи корисничко име и лозинка."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Грешка при поставувањето на корисникот. Веројатно не сте потврдени."


code:
# Translation of StatusNet - CasAuthentication to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Aanmelden of registreren via CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"Hebt u een gebruiker met CAS? [Meld u dan aan met CAS](%%action.caslogin%%)!"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Het aangeven van een server is vereist."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Het aangeven van een poort is vereist."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Het aangeven van een pad is vereist."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"De plugin CAS Authentication stelt StatusNet in staat authenticatie via CAS "
"after handelen (Central Authentication Service)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "U bent al aangemeld."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "De gebruikersnaam of wachtwoord is onjuist."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Er is een fout opgetreden bij het maken van de instellingen. U hebt "
"waarschijnlijk niet de juiste rechten."


code:
# Translation of StatusNet - CasAuthentication to Brazilian Portuguese (português do Brasil)
# Exported from translatewiki.net
#
# Author: Luckas Blade
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:01+0000\n"
"Language-Team: Brazilian Portuguese <https://translatewiki.net/wiki/Portal:"
"pt-br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt-br\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr ""

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr ""

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "É necessário especificar um servidor."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "É necessário especificar uma porta."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr ""

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Já está autenticado."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Nome de usuário e/ou senha incorreto(s)."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr ""
"Erro na configuração do usuário. Você provavelmente não tem autorização."


code:
# Translation of StatusNet - CasAuthentication to Russian (русский)
# Exported from translatewiki.net
#
# Author: Lockal
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Войти или зарегистрироваться через CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(Имеете учётную запись в CAS? Попробуйте [войти через него](%%action.caslogin"
"%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Необходимо указать сервер."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Необходимо указать порт."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Необходимо указать путь."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Плагин аутентификации через CAS позволяет StatusNet обрабатывать "
"аутентификацию через CAS (централизованную службу аутентификации, англ. "
"Central Authentication Service)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Вы уже вошли."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Неверное имя пользователя или пароль."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Ошибка установки пользователя. Вы, вероятно, не авторизованы."


code:
# Translation of StatusNet - CasAuthentication to Telugu (తెలుగు)
# Expored from translatewiki.net
#
# Author: Veeven
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-14 10:29+0000\n"
"PO-Revision-Date: 2011-01-14 10:32:51+0000\n"
"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-10 18:25:59+0000\n"
"X-Generator: MediaWiki 1.18alpha (r80246); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: te\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:83
msgid "CAS"
msgstr ""

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:85
msgid "Login or register with CAS."
msgstr ""

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#: CasAuthenticationPlugin.php:101
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""

#: CasAuthenticationPlugin.php:128
msgid "Specifying a server is required."
msgstr ""

#: CasAuthenticationPlugin.php:131
msgid "Specifying a port is required."
msgstr ""

#: CasAuthenticationPlugin.php:134
msgid "Specifying a path is required."
msgstr ""

#. TRANS: Plugin description. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:154
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""

#: caslogin.php:28
msgid "Already logged in."
msgstr "ఇప్పటికే లోనికి ప్రవేశించారు."

#: caslogin.php:39
msgid "Incorrect username or password."
msgstr "వాడుకరిపేరు లేదా సంకేతపదం తప్పు."

#: caslogin.php:45
msgid "Error setting user. You are probably not authorized."
msgstr ""


code:
# Translation of StatusNet - CasAuthentication to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Lumagda o magpatala na may CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
"(May isang akawnt sa CAS? Subukan ang aming [Paglagdang may CAS] (%%action."
"caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Kailangan ang pagtukoy ng isang tagapaghain."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Kailangan ang pagtukoy ng isang daungan."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Kailangan ang pagtukoy ng isang landas."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Nagpapahintulot ang pampasak na Pagpapatunay ng CAS para mapanghawakan ng "
"StatusNet ang pagpapatunay sa pamamagitan ng Lunduyan ng Palingkuran ng "
"Pagpapatunay (Central Authentication Service o CAS)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Nakalagda na."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Hindi tamang pangalan ng tagagamit o hudyat."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Kamalian sa pagtatakda ng tagagamit.  Maaaring wala kang pahintulot."


code:
# Translation of StatusNet - CasAuthentication to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "CAS"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "Увійти або зареєструватися з CAS."

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr "Маєте акаунт CAS? Спробуйте наш [вхід CAS](%%action.caslogin%%)!)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "Необхідно зазначити сервер."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "Необхідно зазначити порт."

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "Необхідно зазначити шлях."

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr ""
"Додаток автентифікації CAS дозволяє входити на сайт StatusNet за допомогою "
"CAS (центрального сервісу автентифікації)."

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "Тепер ви увійшли."

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "Неточне ім’я або пароль."

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "Помилка налаштувань користувача. Можливо, ви не авторизовані."


code:
# Translation of StatusNet - CasAuthentication to Simplified Chinese (中文（简体）)
# Exported from translatewiki.net
#
# Author: Chenxiaoqino
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - CasAuthentication\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Simplified Chinese <https://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-casauthentication\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Menu item. CAS is Central Authentication Service.
msgid "CAS"
msgstr "中央鉴权服务"

#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
msgid "Login or register with CAS."
msgstr "登录或注册到中央鉴权服务"

#. TRANS: Invitation to users with a CAS account to log in using the service.
#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
#. TRANS: These two elements may not be separated.
#, php-format
msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
msgstr ""
" (已有中央鉴权服务帐号？尝试使用 [中央鉴权登录](%%action.caslogin%%)！)"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a server is required."
msgstr "需要指定一个服务器"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a port is required."
msgstr "需要指定一个端口"

#. TRANS: Exception thrown when the CAS Authentication plugin has been configured incorrectly.
msgid "Specifying a path is required."
msgstr "需要指定一个路径"

#. TRANS: Plugin description. CAS is Central Authentication Service.
msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)."
msgstr "中央鉴权插件可以使StatusNet使用中央鉴权服务进行登录鉴权。"

#. TRANS: Client error displayed when trying to log in while already logged on.
msgid "Already logged in."
msgstr "已登录。"

#. TRANS: Server error displayed when trying to log in with incorrect username or password.
msgid "Incorrect username or password."
msgstr "用户名或密码错误"

#. TRANS: Server error displayed when login fails in CAS authentication plugin.
msgid "Error setting user. You are probably not authorized."
msgstr "设置用户时出错。你可能没有通过鉴权。"


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to enable client side url shortening in the status box
 *
 * PHP version 5
 *
 * LICENCE: This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @category  Plugin
 * @package   StatusNet
 * @author    Craig Andrews <candrews@integralblue.com>
 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

if (!defined('STATUSNET') && !defined('LACONICA')) {
    exit(1);
}

class ClientSideShortenPlugin extends Plugin
{
    function __construct()
    {
        parent::__construct();
    }

    function onEndShowScripts($action){
        if (common_logged_in()) {
            $user = common_current_user();
            $action->inlineScript('var maxNoticeLength = ' . User_urlshortener_prefs::maxNoticeLength($user));
            $action->inlineScript('var maxUrlLength = ' . User_urlshortener_prefs::maxUrlLength($user));
            $action->script($this->path('shorten.js'));
        }
    }

    function onRouterInitialized($m)
    {
        if (common_logged_in()) {
            $m->connect('plugins/ClientSideShorten/shorten', array('action'=>'shorten'));
        }
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'Shorten',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Craig Andrews',
                            'homepage' => 'http://status.net/wiki/Plugin:ClientSideShorten',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('ClientSideShorten causes the web interface\'s notice form to automatically shorten URLs as they entered, and before the notice is submitted.'));
        return true;
    }
}


code:
ClientSideShorten causes the web interface's notice form to automatically
shorten URLs as they entered, and before the notice is submitted.

Installation
============
Add "addPlugin('ClientSideShorten');" to the bottom of your config.php
That's it!

path: plugins/ClientSideShorten/README


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * List users for autocompletion
 *
 * PHP version 5
 *
 * LICENCE: This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @category  Plugin
 * @package   StatusNet
 * @author    Craig Andrews <candrews@integralblue.com>
 * @copyright 2008-2009 StatusNet, Inc.
 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

if (!defined('STATUSNET') && !defined('LACONICA')) {
    exit(1);
}

/**
 * Shorten all URLs in a string
 *
 * @category Plugin
 * @package  StatusNet
 * @author   Craig Andrews <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/
 */
class ShortenAction extends Action
{
    private $text;

    function prepare($args)
    {
        parent::prepare($args);
        $this->groups=array();
        $this->users=array();
        $this->text = $this->arg('text');
        if(is_null($this->text)){
            // TRANS: Client exception thrown when a text argument is not present.
            throw new ClientException(_m('"text" argument must be specified.'));
        }
        return true;
    }

    function handle($args=null)
    {
        parent::handle($args);
        header('Content-Type: text/plain');
        $shortened_text = common_shorten_links($this->text);
        print $shortened_text;
    }
}


code:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: ClientSideShortenPlugin.php:77
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""

#. TRANS: Client exception thrown when a text argument is not present.
#: shorten.php:56
msgid "\"text\" argument must be specified."
msgstr ""


code:
# Translation of StatusNet - ClientSideShorten to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ClientSideShorten\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <https://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""
"ClientSideShorten прымушае ўэб-інтэрфэйс аўтаматычна скарачаць URL-адрасы "
"падчас уводу да таго, як паведамленьне будзе адпраўленае."

#. TRANS: Client exception thrown when a text argument is not present.
#, fuzzy
msgid "\"text\" argument must be specified."
msgstr "Павінен быць пазначаны аргумэнт «text»."


code:
# Translation of StatusNet - ClientSideShorten to Breton (Brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ClientSideShorten\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-09 18:34+0000\n"
"PO-Revision-Date: 2011-04-09 18:36:47+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-03-18 20:06:06+0000\n"
"X-Generator: MediaWiki 1.18alpha (r85732); Translate extension (2011-03-11)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""

#. TRANS: Client exception thrown when a text argument is not present.
#, fuzzy
msgid "\"text\" argument must be specified."
msgstr "Spisaet e rank bezañ an arguzenn \"testenn\"."


code:
# Translation of StatusNet - ClientSideShorten to German (Deutsch)
# Exported from translatewiki.net
#
# Author: MF-Warburg
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ClientSideShorten\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""
"ClientSideShorten sorgt dafür, dass in die Nachrichtenbox eingegebene URLs "
"sofort gekürzt werden, noch bevor die Nachricht gespeichert wird."

#. TRANS: Client exception thrown when a text argument is not present.
msgid "\"text\" argument must be specified."
msgstr "Das „text“-Argument muss angegeben werden."


code:
# Translation of StatusNet - ClientSideShorten to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ClientSideShorten\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""
"ClientSideShorten hace que el formulario de mensaje de la interfaz web "
"acorte las URL automáticamente conforme se introducen t antes de que se "
"envíe el mensaje."

#. TRANS: Client exception thrown when a text argument is not present.
msgid "\"text\" argument must be specified."
msgstr "Debe especificarse el argumento 'texto'."


code:
# Translation of StatusNet - ClientSideShorten to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ClientSideShorten\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:08:02+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:52+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid ""
"ClientSideShorten causes the web interface's notice form to automatically "
"shorten URLs as they entered, and before the notice is submitted."
msgstr ""
"ClientSideShorten-ekin web interfazeko ohar imprimakiak URLa  idazten duzun "
"einean laburtuko du automatikoki, oharra bidali aurretik."

#. TRANS: Client exception thrown when a text argument is not present.
msgid "\"text\" argument must be specified."
msgstr "\"testua\" argumentua zehaztu behar da."