diff options
author | Andreas Gohr <andi@splitbrain.org> | 2010-08-29 14:22:01 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2010-08-29 14:22:01 +0200 |
commit | 2c053ed58376c6709596ab48fc40dceb90d4e89d (patch) | |
tree | c8d0f78c2f47f373473419396d3c0855ec671eca | |
parent | cb4a07568e84d853fbcd9d5eca37f572fa10786f (diff) | |
parent | 5479a8c3341247ca228026819f20f3ab5c34a80f (diff) | |
download | rpg-2c053ed58376c6709596ab48fc40dceb90d4e89d.tar.gz rpg-2c053ed58376c6709596ab48fc40dceb90d4e89d.tar.bz2 |
Merge branch 'master' into stable
Conflicts:
conf/msg
lib/plugins/acl/ajax.php
1027 files changed, 43311 insertions, 18604 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..2d7f2df97 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +/conf/*.local.conf +/conf/acl.auth.php +/conf/local.php +/conf/local.protected.php +/conf/users.auth.php +/conf/user*.css +/conf/user*.js +/conf/words.aspell +.htaccess +*.swp +*.bak +*.old +*~ +/data/attic/* +/data/cache/* +/data/index/* +/data/locks/* +/data/media/* +/data/meta/* +/data/pages/* +/data/tmp/* +/lib/tpl/* +/lib/plugins/* diff --git a/.htaccess.dist b/.htaccess.dist index 54ad4b589..aa2437b95 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -4,8 +4,8 @@ ## global config. Symlinks maybe needed for URL rewriting. #Options -Indexes -MultiViews +FollowSymLinks -## make sure nobody gets the htaccess files -<Files ~ "^[\._]ht"> +## make sure nobody gets the htaccess, README, COPYING or VERSION files +<Files ~ "^([\._]ht|README$|VERSION$|COPYING$)"> Order allow,deny Deny from all Satisfy All @@ -4,6 +4,7 @@ at http://www.dokuwiki.org/ For Installation Instructions see http://www.dokuwiki.org/install -DokuWiki - 2004-2009 (c) Andreas Gohr <andi@splitbrain.org> +DokuWiki - 2004-2010 (c) Andreas Gohr <andi@splitbrain.org> + and the DokuWiki Community See COPYING and file headers for license info diff --git a/_cs/DokuWiki/DokuWikiCodingStandard.php b/_cs/DokuWiki/DokuWikiCodingStandard.php index 14946c0f2..36133fc46 100644 --- a/_cs/DokuWiki/DokuWikiCodingStandard.php +++ b/_cs/DokuWiki/DokuWikiCodingStandard.php @@ -47,14 +47,14 @@ class PHP_CodeSniffer_Standards_DokuWiki_DokuWikiCodingStandard extends PHP_Code 'Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php', 'Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php', 'Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php', - 'Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php', + 'DokuWiki/Sniffs/WhiteSpace/ScopeIndentSniff.php', 'Zend/Sniffs/Files/ClosingTagSniff.php', 'PEAR/Sniffs/Functions/ValidDefaultValueSniff.php', 'Squiz/Sniffs/PHP/EvalSniff.php', 'Squiz/Sniffs/PHP/NonExecutableCodeSniff.php', // 'Squiz/Sniffs/PHP/CommentedOutCodeSniff.php', //FIXME should ignore oneliners 'Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php', - + 'Squiz/Sniffs/PHP/NonExecutableCodeSniff.php', 'Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php', 'Squiz/Sniffs/CSS/MissingColonSniff.php', 'Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php', diff --git a/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php new file mode 100644 index 000000000..c95e0fd33 --- /dev/null +++ b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php @@ -0,0 +1,56 @@ +<?php +/** + * DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600) + * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence + * @version CVS: $Id: DiscouragedFunctionsSniff.php 265110 2008-08-19 06:36:11Z squiz $ + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +if (class_exists('Generic_Sniffs_PHP_ForbiddenFunctionsSniff', true) === false) { + throw new PHP_CodeSniffer_Exception('Class Generic_Sniffs_PHP_ForbiddenFunctionsSniff not found'); +} + +/** + * DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600) + * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence + * @version Release: 1.2.2 + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff extends Generic_Sniffs_PHP_ForbiddenFunctionsSniff +{ + + /** + * A list of forbidden functions with their alternatives. + * + * The value is NULL if no alternative exists. IE, the + * function should just not be used. + * + * @var array(string => string|null) + */ + protected $forbiddenFunctions = array( + 'date' => 'dformat', + 'strftime' => 'dformat', + ); + + /** + * If true, an error will be thrown; otherwise a warning. + * + * @var bool + */ + protected $error = false; + +}//end class + +?> diff --git a/_cs/DokuWiki/Sniffs/WhiteSpace/ScopeIndentSniff.php b/_cs/DokuWiki/Sniffs/WhiteSpace/ScopeIndentSniff.php new file mode 100644 index 000000000..72064bda0 --- /dev/null +++ b/_cs/DokuWiki/Sniffs/WhiteSpace/ScopeIndentSniff.php @@ -0,0 +1,319 @@ +<?php +/** + * DokuWiki_Sniffs_Whitespace_ScopeIndentSniff based on + * Generic_Sniffs_Whitespace_ScopeIndentSniff. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Andreas Gohr <andi@splitbrain.org> + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600) + * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence + * @version CVS: $Id: ScopeIndentSniff.php 270281 2008-12-02 02:38:34Z squiz $ + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Generic_Sniffs_Whitespace_ScopeIndentSniff. + * + * Checks that control structures are structured correctly, and their content + * is indented correctly. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006 Squiz Pty Ltd (ABN 77 084 670 600) + * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence + * @version Release: 1.2.0 + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class DokuWiki_Sniffs_WhiteSpace_ScopeIndentSniff implements PHP_CodeSniffer_Sniff +{ + + /** + * The number of spaces code should be indented. + * + * @var int + */ + protected $indent = 4; + + /** + * Does the indent need to be exactly right. + * + * If TRUE, indent needs to be exactly $ident spaces. If FALSE, + * indent needs to be at least $ident spaces (but can be more). + * + * @var bool + */ + protected $exact = false; + + /** + * Any scope openers that should not cause an indent. + * + * @var array(int) + */ + protected $nonIndentingScopes = array(); + + + /** + * Returns an array of tokens this test wants to listen for. + * + * @return array + */ + public function register() + { + return PHP_CodeSniffer_Tokens::$scopeOpeners; + + }//end register() + + + /** + * Processes this test, when one of its tokens is encountered. + * + * @param PHP_CodeSniffer_File $phpcsFile All the tokens found in the document. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * + * @return void + */ + public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + + // If this is an inline condition (ie. there is no scope opener), then + // return, as this is not a new scope. + if (isset($tokens[$stackPtr]['scope_opener']) === false) { + return; + } + + if ($tokens[$stackPtr]['code'] === T_ELSE) { + $next = $phpcsFile->findNext( + PHP_CodeSniffer_Tokens::$emptyTokens, + ($stackPtr + 1), + null, + true + ); + + // We will handle the T_IF token in another call to process. + if ($tokens[$next]['code'] === T_IF) { + return; + } + } + + // Find the first token on this line. + $firstToken = $stackPtr; + for ($i = $stackPtr; $i >= 0; $i--) { + // Record the first code token on the line. + if (in_array($tokens[$i]['code'], PHP_CodeSniffer_Tokens::$emptyTokens) === false) { + $firstToken = $i; + } + + // It's the start of the line, so we've found our first php token. + if ($tokens[$i]['column'] === 1) { + break; + } + } + + // Based on the conditions that surround this token, determine the + // indent that we expect this current content to be. + $expectedIndent = $this->calculateExpectedIndent($tokens, $firstToken); + + if ($tokens[$firstToken]['column'] !== $expectedIndent) { + if($this->exact || $tokens[$firstToken]['column'] < $expectedIndent){ + $error = 'Line indented incorrectly; expected '; + $error .= ($expectedIndent - 1).' spaces, found '; + $error .= ($tokens[$firstToken]['column'] - 1); + $phpcsFile->addError($error, $stackPtr); + }elseif((($tokens[$firstToken]['column'] - 1) % $this->indent)){ + $error = 'Line indented not by multiple of '.$this->indent.'; expected '; + $error .= ($expectedIndent - 1).' spaces, found '; + $error .= ($tokens[$firstToken]['column'] - 1); + $phpcsFile->addError($error, $stackPtr); + } + } + + $scopeOpener = $tokens[$stackPtr]['scope_opener']; + $scopeCloser = $tokens[$stackPtr]['scope_closer']; + + // Some scopes are expected not to have indents. + if (in_array($tokens[$firstToken]['code'], $this->nonIndentingScopes) === false) { + $indent = ($expectedIndent + $this->indent); + } else { + $indent = $expectedIndent; + } + + $newline = false; + $commentOpen = false; + $inHereDoc = false; + + // Only loop over the content beween the opening and closing brace, not + // the braces themselves. + for ($i = ($scopeOpener + 1); $i < $scopeCloser; $i++) { + + // If this token is another scope, skip it as it will be handled by + // another call to this sniff. + if (in_array($tokens[$i]['code'], PHP_CodeSniffer_Tokens::$scopeOpeners) === true) { + if (isset($tokens[$i]['scope_opener']) === true) { + $i = $tokens[$i]['scope_closer']; + } else { + // If this token does not have a scope_opener indice, then + // it's probably an inline scope, so let's skip to the next + // semicolon. Inline scopes include inline if's, abstract + // methods etc. + $nextToken = $phpcsFile->findNext(T_SEMICOLON, $i, $scopeCloser); + if ($nextToken !== false) { + $i = $nextToken; + } + } + + continue; + } + + // If this is a HEREDOC then we need to ignore it as the + // whitespace before the contents within the HEREDOC are + // considered part of the content. + if ($tokens[$i]['code'] === T_START_HEREDOC) { + $inHereDoc = true; + continue; + } else if ($inHereDoc === true) { + if ($tokens[$i]['code'] === T_END_HEREDOC) { + $inHereDoc = false; + } + + continue; + } + + if ($tokens[$i]['column'] === 1) { + // We started a newline. + $newline = true; + } + + if ($newline === true && $tokens[$i]['code'] !== T_WHITESPACE) { + // If we started a newline and we find a token that is not + // whitespace, then this must be the first token on the line that + // must be indented. + $newline = false; + $firstToken = $i; + + $column = $tokens[$firstToken]['column']; + + // Special case for non-PHP code. + if ($tokens[$firstToken]['code'] === T_INLINE_HTML) { + $trimmedContentLength + = strlen(ltrim($tokens[$firstToken]['content'])); + if ($trimmedContentLength === 0) { + continue; + } + + $contentLength = strlen($tokens[$firstToken]['content']); + $column = ($contentLength - $trimmedContentLength + 1); + } + + // Check to see if this constant string spans multiple lines. + // If so, then make sure that the strings on lines other than the + // first line are indented appropriately, based on their whitespace. + if (in_array($tokens[$firstToken]['code'], PHP_CodeSniffer_Tokens::$stringTokens) === true) { + if (in_array($tokens[($firstToken - 1)]['code'], PHP_CodeSniffer_Tokens::$stringTokens) === true) { + // If we find a string that directly follows another string + // then its just a string that spans multiple lines, so we + // don't need to check for indenting. + continue; + } + } + + // This is a special condition for T_DOC_COMMENT and C-style + // comments, which contain whitespace between each line. + $comments = array( + T_COMMENT, + T_DOC_COMMENT + ); + + if (in_array($tokens[$firstToken]['code'], $comments) === true) { + $content = trim($tokens[$firstToken]['content']); + if (preg_match('|^/\*|', $content) !== 0) { + // Check to see if the end of the comment is on the same line + // as the start of the comment. If it is, then we don't + // have to worry about opening a comment. + if (preg_match('|\*/$|', $content) === 0) { + // We don't have to calculate the column for the + // start of the comment as there is a whitespace + // token before it. + $commentOpen = true; + } + } else if ($commentOpen === true) { + if ($content === '') { + // We are in a comment, but this line has nothing on it + // so let's skip it. + continue; + } + + $contentLength = strlen($tokens[$firstToken]['content']); + $trimmedContentLength + = strlen(ltrim($tokens[$firstToken]['content'])); + + $column = ($contentLength - $trimmedContentLength + 1); + if (preg_match('|\*/$|', $content) !== 0) { + $commentOpen = false; + } + }//end if + }//end if + + // The token at the start of the line, needs to have its' column + // greater than the relative indent we set above. If it is less, + // an error should be shown. + if ($column !== $indent) { + if ($this->exact === true || $column < $indent) { + $error = 'Line indented incorrectly; expected '; + if ($this->exact === false) { + $error .= 'at least '; + } + + $error .= ($indent - 1).' spaces, found '; + $error .= ($column - 1); + $phpcsFile->addError($error, $firstToken); + } + } + }//end if + }//end for + + }//end process() + + + /** + * Calculates the expected indent of a token. + * + * @param array $tokens The stack of tokens for this file. + * @param int $stackPtr The position of the token to get indent for. + * + * @return int + */ + protected function calculateExpectedIndent(array $tokens, $stackPtr) + { + $conditionStack = array(); + + // Empty conditions array (top level structure). + if (empty($tokens[$stackPtr]['conditions']) === true) { + return 1; + } + + $tokenConditions = $tokens[$stackPtr]['conditions']; + foreach ($tokenConditions as $id => $condition) { + // If it's an indenting scope ie. it's not in our array of + // scopes that don't indent, add it to our condition stack. + if (in_array($condition, $this->nonIndentingScopes) === false) { + $conditionStack[$id] = $condition; + } + } + + return ((count($conditionStack) * $this->indent) + 1); + + }//end calculateExpectedIndent() + + +}//end class + +?> diff --git a/_test/cases/inc/IXR_Library_IXR_Message.test.php b/_test/cases/inc/IXR_Library_IXR_Message.test.php new file mode 100644 index 000000000..2a8133230 --- /dev/null +++ b/_test/cases/inc/IXR_Library_IXR_Message.test.php @@ -0,0 +1,139 @@ +<?php +require_once DOKU_INC.'inc/IXR_Library.php'; + +class ixr_library_ixr_message_test extends UnitTestCase { + + + + + + function test_untypedvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value> change </value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_untypedvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> change </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_stringvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value><string> change </string></value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_stringvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> + <string> change </string> + </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_emptyvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value><string></string></value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array('')); + } + + function test_emptyvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> + <string></string> + </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array('')); + } + + function test_struct(){ + $xml = '<?xml version=\'1.0\'?> + <methodCall> + <methodName>wiki.putPage</methodName> + <params> + <param> + <value><string>start</string></value> + </param> + <param> + <value><string>test text</string></value> + </param> + <param> + <value><struct> + <member> + <name>sum</name> + <value><string>xmlrpc edit</string></value> + </member> + <member> + <name>minor</name> + <value><string>1</string></value> + </member> + </struct></value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.putPage'); + $this->assertEqual($ixrmsg->params,array('start','test text',array('sum'=>'xmlrpc edit','minor'=>'1'))); + } + +} +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/_test/cases/inc/IXR_Library_date.test.php b/_test/cases/inc/IXR_Library_date.test.php new file mode 100644 index 000000000..a2b6154d8 --- /dev/null +++ b/_test/cases/inc/IXR_Library_date.test.php @@ -0,0 +1,34 @@ +<?php +require_once DOKU_INC.'inc/IXR_Library.php'; + +class ixr_library_date_test extends UnitTestCase { + + + function test_parseIso(){ + // multiple tests + $tests = array( + // full datetime, different formats + array('2010-08-17T09:23:14', 1282036994), + array('20100817T09:23:14', 1282036994), + array('2010-08-17 09:23:14', 1282036994), + array('20100817 09:23:14', 1282036994), + array('2010-08-17T09:23:14Z', 1282036994), + array('20100817T09:23:14Z', 1282036994), + + // no seconds + array('2010-08-17T09:23', 1282036980), + array('20100817T09:23', 1282036980), + + // no time + array('2010-08-17', 1282003200), + //array('20100817', 1282003200), #this will NOT be parsed, but is assumed to be timestamp + ); + + foreach($tests as $test){ + $dt = new IXR_Date($test[0]); + $this->assertEqual($dt->getTimeStamp(),$test[1]); + } + } + +} +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/_test/cases/inc/auth_admincheck.test.php b/_test/cases/inc/auth_admincheck.test.php index c00271a26..f14d6369e 100644 --- a/_test/cases/inc/auth_admincheck.test.php +++ b/_test/cases/inc/auth_admincheck.test.php @@ -19,11 +19,11 @@ class auth_admin_test extends UnitTestCase { $conf['manager'] = 'john,@managers,doe'; // anonymous user - $this->assertEqual(auth_ismanager('jill', '',false), false); + $this->assertEqual(auth_ismanager('jill', null,false), false); // admin or manager users - $this->assertEqual(auth_ismanager('john', '',false), true); - $this->assertEqual(auth_ismanager('doe', '',false), true); + $this->assertEqual(auth_ismanager('john', null,false), true); + $this->assertEqual(auth_ismanager('doe', null,false), true); // admin or manager groups $this->assertEqual(auth_ismanager('jill', array('admin'),false), true); @@ -35,11 +35,11 @@ class auth_admin_test extends UnitTestCase { $conf['superuser'] = 'john,@admin,doe,@roots'; // anonymous user - $this->assertEqual(auth_ismanager('jill', '',true), false); + $this->assertEqual(auth_ismanager('jill', null,true), false); // admin user - $this->assertEqual(auth_ismanager('john', '',true), true); - $this->assertEqual(auth_ismanager('doe', '',true), true); + $this->assertEqual(auth_ismanager('john', null,true), true); + $this->assertEqual(auth_ismanager('doe', null,true), true); // admin groups $this->assertEqual(auth_ismanager('jill', array('admin'),true), true); diff --git a/_test/cases/inc/html_hilight.test.php b/_test/cases/inc/html_hilight.test.php index 85f224b6e..cc5579c71 100644 --- a/_test/cases/inc/html_hilight.test.php +++ b/_test/cases/inc/html_hilight.test.php @@ -2,9 +2,7 @@ require_once DOKU_INC.'inc/html.php'; -if ( !extension_loaded('runkit') && - !@dl('runkit.dll') && - !@dl('runkit.so' ) ){ +if (!extension_loaded('runkit')) { SimpleTestOptions::ignore('html_hilight_test'); trigger_error('Skipping html_hilight_test - http://www.php.net/runkit required'); } diff --git a/_test/cases/inc/indexer_idx_indexlengths.test.php b/_test/cases/inc/indexer_idx_indexlengths.test.php new file mode 100644 index 000000000..d1339a111 --- /dev/null +++ b/_test/cases/inc/indexer_idx_indexlengths.test.php @@ -0,0 +1,121 @@ +<?php + +require_once DOKU_INC.'inc/indexer.php'; + +class indexer_idx_indexlengths_test extends UnitTestCase { + + /** + * Test the function with an array of one value + */ + function test_oneWord(){ + global $conf; + $filter[8] = array('dokuwiki'); + // one word should return the index + $ref[] = 8; + sort($ref); + $result = idx_indexLengths(&$filter); + sort($result); + $this->assertIdentical($result, $ref); + } + + /** + * Test the function with an array of values + */ + function test_moreWords() { + global $conf; + $filter = array( 4 => array('test'), 8 => array('dokuwiki'), 7 => array('powered')); + // more words should return the indexes + $ref = array(4, 7, 8); + sort($ref); + $result = idx_indexLengths(&$filter); + sort($result); + $this->assertIdentical($result, $ref); + } + + /** + * Test a minimal value in case of wildcard search + */ + function test_minValue() { + global $conf; + $filter = 5; + // construction of the list of the index to compare + $dir = @opendir($conf['indexdir']); + $ref = array(); + while (($f = readdir($dir)) !== false) { + if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ + $i = substr($f,1,-4); + if (is_numeric($i) && $i >= $filter) + $ref[] = (int)$i; + } + } + closedir($dir); + sort($ref); + $result = idx_indexLengths(&$filter); + sort($result); + $this->assertIdentical($result, $ref); + } +} + +class indexer_idx_indexlengths_time extends UnitTestCase { + + /** + * Test the time improvments of the new function + * Time reference for 10000 call oneWords: 4,6s + * It's 90% faster + */ + function test_oneWord(){ + global $conf; + $filter[8] = array('dokuwiki'); + $start = microtime(true); + for ($i = 0; $i < 10000; $i++) { + $result = idx_indexLengths(&$filter); + } + $end = microtime(true); + $time = $end - $start; + $timeref = 4.6*0.10; // actual execution time of 4,6s for 10000 calls + echo "1) 10% ref : $timeref -> $time \n"; + $this->assertTrue($time < $timeref); + } + + /** + * Test the time improvments of the new function + * Time reference for 10000 call moreWords: 4,6s + * It's 90% faster + */ + function test_moreWords() { + global $conf; + $filter = array( 4 => array('test'), 8 => array('dokuwiki'), 7 => array('powered')); + // more words should return the indexes + $start = microtime(true); + for ($i = 0; $i < 10000; $i++) { + $result = idx_indexLengths(&$filter); + } + $end = microtime(true); + $time = $end - $start; + $timeref = 4.6*0.10; // actual execution time of 4,6s for 10000 calls + echo "2) 10% ref : $timeref -> $time \n"; + $this->assertTrue($time < $timeref); + } + + /** + * Test the time improvments of the new function + * Time reference for 10000 call on minValue: 4,9s + * Sould be at least 65% faster + * Test fail with no cache + */ + function test_minValue() { + global $conf; + $filter = 5; + $start = microtime(true); + for ($i = 0; $i < 10000; $i++) { + $result = idx_indexLengths(&$filter); + } + $end = microtime(true); + $time = $end - $start; + $timeref = 4.9 * 0.35; // actual execution time of 4,9s for 10000 calls + echo "3) 35% ref : $timeref -> $time \n"; + $this->assertTrue($time < $timeref); + } +} + +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/_test/cases/inc/pageutils_getid.test.php b/_test/cases/inc/pageutils_getid.test.php index 8233ffb42..e3932a579 100644 --- a/_test/cases/inc/pageutils_getid.test.php +++ b/_test/cases/inc/pageutils_getid.test.php @@ -64,5 +64,43 @@ class init_getID_test extends UnitTestCase { $this->assertEqual(getID(), 'wiki:dokuwiki'); } + /** + * getID with given id in url and userewrite=2, no basedir set, Apache and CGI. + */ + function test4() { + global $conf; + $conf['basedir'] = ''; + $conf['userewrite'] = '2'; + $conf['baseurl'] = ''; + $_SERVER['DOCUMENT_ROOT'] = '/var/www/vhosts/example.com/htdocs'; + $_SERVER['SCRIPT_FILENAME'] = '/var/www/vhosts/example.com/htdocs/doku.php'; + $_SERVER['SCRIPT_NAME'] = '/doku.php'; + $_SERVER['REQUEST_URI'] = '/doku.php/wiki/dokuwiki'; + $_SERVER['PATH_INFO'] = '/wiki/dokuwiki'; + $_SERVER['PATH_TRANSLATED'] = '/var/www/vhosts/example.com/htdocs/doku.php'; + $_SERVER['PHP_SELF'] = '/doku.php/wiki/dokuwiki'; + + $this->assertEqual(getID(), 'wiki:dokuwiki'); + } + + /** + * getID with given id / in url and userewrite=2, no basedir set, Apache and CGI. + */ + function test5() { + global $conf; + $conf['basedir'] = ''; + $conf['userewrite'] = '2'; + $conf['baseurl'] = ''; + $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; + $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; + $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; + $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php/?do=debug'; + $_SERVER['PATH_INFO'] = '/'; + $_SERVER['PATH_TRANSLATED'] = '/var/www/index.html'; + $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php/'; + + $this->assertEqual(getID(), 'start'); + } + } //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/_test/cases/inc/parser/parser_footnote.test.php b/_test/cases/inc/parser/parser_footnote.test.php index 2b00a0b2e..a1da2ab06 100644 --- a/_test/cases/inc/parser/parser_footnote.test.php +++ b/_test/cases/inc/parser/parser_footnote.test.php @@ -259,7 +259,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser { array('cdata',array("\n".'Foo ')), array('nest', array ( array ( array('footnote_open',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 8)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0 Col 1 ')), @@ -282,7 +282,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser { array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(123)), array('cdata',array(' ')), array('footnote_close',array()), ))), diff --git a/_test/cases/inc/parser/parser_formatting.test.php b/_test/cases/inc/parser/parser_formatting.test.php index 35bb41a6a..79509f40b 100644 --- a/_test/cases/inc/parser/parser_formatting.test.php +++ b/_test/cases/inc/parser/parser_formatting.test.php @@ -168,6 +168,48 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser { $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } + function testEmWithMultiOccurence() { + // Case from #763 + $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis')); + $this->P->parse('//text:// Blablabla Blablabla + +//text:// another Blablabla Blablabla'); + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n")), + array('emphasis_open',array()), + array('cdata',array('text:')), + array('emphasis_close',array()), + array('cdata',array(" Blablabla Blablabla\n\n")), + array('emphasis_open',array()), + array('cdata',array('text:')), + array('emphasis_close',array()), + array('cdata',array(" another Blablabla Blablabla\n")), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + + function testEmWithUnicode() { + // Case from #1468 + $this->P->addMode('emphasis',new Doku_Parser_Mode_Formatting('emphasis')); + $this->P->parse('//Тест://'); + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n")), + array('emphasis_open',array()), + array('cdata',array('Тест:')), + array('emphasis_close',array()), + array('cdata',array("\n")), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); + } + function testUnderline() { $this->P->addMode('underline',new Doku_Parser_Mode_Formatting('underline')); $this->P->parse('abc __bar__ def'); diff --git a/_test/cases/inc/parser/parser_headers.test.php b/_test/cases/inc/parser/parser_headers.test.php index 8e6517123..e1c6783f5 100644 --- a/_test/cases/inc/parser/parser_headers.test.php +++ b/_test/cases/inc/parser/parser_headers.test.php @@ -15,14 +15,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',1,6)), array('section_open',array(1)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array (6,0,1,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -36,14 +34,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',2,6)), array('section_open',array(2)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,2,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -57,14 +53,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',3,6)), array('section_open',array(3)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,3,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -116,14 +110,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',2,6)), array('section_open',array(2)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,2,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -137,14 +129,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',2,6)), array('section_open',array(2)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,2,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -158,14 +148,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',1,6)), array('section_open',array(1)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,1,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -193,14 +181,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('== Header ==',1,6)), array('section_open',array(1)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,1,'== Header ==')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -233,14 +219,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n== ====== Header\n")), array('p_close',array()), - array('section_edit',array(-1,22,1,'')), array('header',array('',1,23)), array('section_open',array(1)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(23,0,1,'')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -261,14 +245,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array('abc '.DOKU_PARSER_EOL)), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',1, 6)), array('section_open',array(1)), array('p_open',array()), array('cdata',array(' def'.DOKU_PARSER_EOL)), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,0,1,'Header')), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); @@ -283,21 +265,18 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nabc \n")), array('p_close',array()), - array('section_edit',array(-1,5,1,'')), array('header',array('Header',1,6)), array('section_open',array(1)), array('p_open',array()), array('cdata',array("\n def abc \n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(6,38,1,'Header')), array('header',array('Header2',2,39)), array('section_open',array(2)), array('p_open',array()), array('cdata',array("\n def\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(39,0,2,'Header2')), array('document_end',array()) ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); diff --git a/_test/cases/inc/parser/parser_i18n.test.php b/_test/cases/inc/parser/parser_i18n.test.php index 8d587fe0e..f0cceb69e 100644 --- a/_test/cases/inc/parser/parser_i18n.test.php +++ b/_test/cases/inc/parser/parser_i18n.test.php @@ -62,14 +62,12 @@ class TestOfDoku_Parser_i18n extends TestOfDoku_Parser { array('p_open',array()), array('cdata',array("\nFoo\n")), array('p_close',array()), - array('section_edit',array(-1,4,1,'')), array('header',array('Iñtërnâtiônàlizætiøn',3,5)), array('section_open',array(3)), array('p_open',array()), array('cdata',array("\n Bar\n")), array('p_close',array()), array('section_close',array()), - array('section_edit',array(5,0,3,'Iñtërnâtiônàlizætiøn')), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); @@ -87,7 +85,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0 Col 1 ')), @@ -110,13 +108,12 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(153)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), array('document_end',array()), ); - $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } diff --git a/_test/cases/inc/parser/parser_table.test.php b/_test/cases/inc/parser/parser_table.test.php index f84923dfd..099909495 100644 --- a/_test/cases/inc/parser/parser_table.test.php +++ b/_test/cases/inc/parser/parser_table.test.php @@ -19,7 +19,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0 Col 1 ')), @@ -42,7 +42,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(121)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -59,7 +59,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0 Col 1 ')), @@ -82,7 +82,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(121)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -103,16 +103,16 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(0,1)), + array('table_open',array(0, 1, 6)), array('tablerow_open',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(7)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), array('document_end',array()), ); - + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } @@ -128,7 +128,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,1)), + array('table_open',array(3, 1, 6)), array('tablerow_open',array()), array('tableheader_open',array(1,NULL,1)), array('cdata',array(' X ')), @@ -140,13 +140,13 @@ def'); array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(19)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), array('document_end',array()), ); - + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } @@ -163,7 +163,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,1)), + array('table_open',array(3, 1, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'right',1)), array('cdata',array(' X ')), @@ -175,13 +175,13 @@ def'); array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(23)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), array('document_end',array()), ); - + $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } @@ -199,7 +199,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,3)), + array('table_open',array(3, 3, 6)), array('tablerow_open',array()), array('tablecell_open',array(2,'right',1)), array('cdata',array(' d ')), @@ -218,7 +218,7 @@ def'); array('tablerow_close',array()), array('tablerow_open',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(31)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -241,7 +241,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,3)), + array('table_open',array(3, 3, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,NULL,2)), array('cdata',array(' a ')), @@ -266,7 +266,7 @@ def'); array('cdata',array(':::f')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(51)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -288,7 +288,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,1)), + array('table_open',array(3, 1, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'right',1)), array('cdata',array(' ')), @@ -304,7 +304,7 @@ def'); array('cdata',array(' Z ')), array('tableheader_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(27)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -328,7 +328,7 @@ def'); array('p_open',array()), array('cdata',array(DOKU_PARSER_EOL."abc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0 Col 1 ')), @@ -351,7 +351,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(121)), array('p_open',array()), array('cdata',array('def'.DOKU_PARSER_EOL)), array('p_close',array()), @@ -375,7 +375,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' ')), @@ -403,7 +403,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(129)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -427,7 +427,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' ')), @@ -451,7 +451,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(155)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -473,7 +473,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' Row 0')), @@ -498,7 +498,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(123)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), @@ -523,7 +523,7 @@ def'); array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), - array('table_open',array(3,2)), + array('table_open',array(3, 2, 6)), array('tablerow_open',array()), array('tablecell_open',array(1,'left',1)), array('cdata',array(' ')), @@ -555,7 +555,7 @@ def'); array('cdata',array(' Row 1 Col 3 ')), array('tablecell_close',array()), array('tablerow_close',array()), - array('table_close',array()), + array('table_close',array(129)), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), diff --git a/_test/cases/inc/parser/xhtml_htmlphp.test.php b/_test/cases/inc/parser/xhtml_htmlphp.test.php index 3493bab4d..65d64e579 100644 --- a/_test/cases/inc/parser/xhtml_htmlphp.test.php +++ b/_test/cases/inc/parser/xhtml_htmlphp.test.php @@ -5,9 +5,7 @@ require_once 'parser.inc.php'; require_once DOKU_INC.'inc/parser/xhtml.php'; require_once DOKU_INC.'inc/geshi.php'; -if ( !extension_loaded('runkit') && - !@dl('runkit.dll') && - !@dl('runkit.so' ) ){ +if (!extension_loaded('runkit')) { SimpleTestOptions::ignore('xhtml_htmlphp_test'); trigger_error('Skipping xhtml_htmlphp_test - http://www.php.net/runkit required'); } diff --git a/_test/cases/inc/safefn.test.php b/_test/cases/inc/safefn.test.php new file mode 100644 index 000000000..fb0d812d7 --- /dev/null +++ b/_test/cases/inc/safefn.test.php @@ -0,0 +1,33 @@ +<?php +// use no mbstring help here +if(!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING',1); +require_once DOKU_INC.'inc/utf8.php'; +require_once DOKU_INC.'inc/SafeFN.class.php'; + +class safeFN_test extends UnitTestCase { + + + function test1(){ + // we test multiple cases here - format: string, repl, additional, test + $tests = array(); + $tests[] = array('asciistring','asciistring'); + $tests[] = array('ascii-_/.string','ascii-_/.string'); + $tests[] = array('AName','%x%1a.ame'); + $tests[] = array('A Name','%x%0%1a.ame'); + $tests[] = array('Another...Name','%x.nother...%1a.ame'); + $tests[] = array('Aß∂ƒName','%x%5b%6oy%aa%1a.ame'); + $tests[] = array('A%ß-∂_.ƒName','%x%%5b.-%6oy._.%aa%1a.ame'); + $tests[] = array('A%%ß-∂_.ƒName','%x%%%5b.-%6oy._.%aa%1a.ame'); + $tests[] = array('데이터도 함께 복원됩니다. 강력한','%zf4%13dg%15ao%zhg%0%164o%yig%0%11at%138w%zk9%zag%zb8..%0%xyt%10cl%164c'); + $tests[] = array('совместимая','%td%ta%sy%t8%t1%td%te%t4%t8%sw%tr'); + $tests[] = array('нехватка_файлового_пространства_на_сервере_p0-squid.some.domain.1270211897.txt.gz','%t9%t1%th%sy%sw%te%t6%sw._%tg%sw%t5%t7%ta%sy%ta%sz%ta._%tb%tc%ta%td%te%tc%sw%t9%td%te%sy%sw._%t9%sw._%td%t1%tc%sy%t1%tc%t1._p0-squid.some.domain.1270211897.txt.gz'); + + foreach($tests as $test){ + list($utf8,$safe) = $test; + $this->assertEqual(SafeFN::encode($utf8),$safe); + $this->assertEqual(SafeFN::decode($safe),$utf8); + } + } + +} +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/_test/cases/lib/exe/js_js_compress.test.php b/_test/cases/lib/exe/js_js_compress.test.php index b7de9257d..9051dfb01 100644 --- a/_test/cases/lib/exe/js_js_compress.test.php +++ b/_test/cases/lib/exe/js_js_compress.test.php @@ -71,7 +71,7 @@ class js_js_compress_test extends UnitTestCase { function test_dquotrunaway(){ $text = 'var foo="Now where does it end'; - $this->assertEqual(js_compress($text), "$text"); + $this->assertEqual(js_compress($text), $text); } function test_squot1(){ @@ -81,7 +81,7 @@ class js_js_compress_test extends UnitTestCase { function test_squotrunaway(){ $text = "var foo='Now where does it end"; - $this->assertEqual(js_compress($text), "$text"); + $this->assertEqual(js_compress($text), $text); } function test_nl1(){ diff --git a/_test/index.php b/_test/index.php index 87cc10a35..f59c44cf4 100644 --- a/_test/index.php +++ b/_test/index.php @@ -130,6 +130,30 @@ function DW_TESTS_PaintGroupTestList() { } } +function DW_TESTS_PaintPluginTestCaseList() { + switch ( DW_TESTS_OUTPUT ) { + case DW_TESTS_OUTPUT_XML: + echo XMLTestManager::getPluginTestCaseList(TEST_PLUGINS); + break; + case DW_TESTS_OUTPUT_HTML: + default: + echo HTMLTestManager::getPluginTestCaseList(TEST_PLUGINS); + break; + } +} + +function DW_TESTS_PaintPluginGroupTestList() { + switch ( DW_TESTS_OUTPUT ) { + case DW_TESTS_OUTPUT_XML: + echo XMLTestManager::getPluginGroupTestList(TEST_PLUGINS); + break; + case DW_TESTS_OUTPUT_HTML: + default: + echo HTMLTestManager::getPluginGroupTestList(TEST_PLUGINS); + break; + } +} + function DW_TESTS_PaintFooter() { switch ( DW_TESTS_OUTPUT ) { case DW_TESTS_OUTPUT_XML: @@ -160,6 +184,19 @@ if (isset($_GET['group'])) { exit(); } +// If it's a plugin group test +if (isset($_GET['plugin_group'])) { + if ('all' == $_GET['plugin_group']) { + TestManager::runAllPluginTests(DW_TESTS_GetReporter()); + } else { + TestManager::runGroupTest(ucfirst($_GET['plugin_group']), + TEST_PLUGINS, + DW_TESTS_GetReporter()); + } + DW_TESTS_PaintRunMore(); + exit(); +} + // If it's a single test case if (isset($_GET['case'])) { TestManager::runTestCase($_GET['case'], TEST_CASES, DW_TESTS_GetReporter()); @@ -167,6 +204,13 @@ if (isset($_GET['case'])) { exit(); } +// If it's a single plugin test case +if (isset($_GET['plugin_case'])) { + TestManager::runTestCase($_GET['plugin_case'], TEST_PLUGINS, DW_TESTS_GetReporter()); + DW_TESTS_PaintRunMore(); + exit(); +} + // Else it's the main page DW_TESTS_PaintHeader(); @@ -174,9 +218,11 @@ DW_TESTS_PaintSuiteHeader(); if (isset($_GET['show']) && $_GET['show'] == 'cases') { DW_TESTS_PaintCaseList(); + DW_TESTS_PaintPluginTestCaseList(); } else { /* no group specified, so list them all */ DW_TESTS_PaintGroupTestList(); + DW_TESTS_PaintPluginGroupTestList(); } DW_TESTS_PaintFooter(); diff --git a/_test/lib/testmanager.php b/_test/lib/testmanager.php index def86ca27..96c9a57a2 100644 --- a/_test/lib/testmanager.php +++ b/_test/lib/testmanager.php @@ -5,9 +5,10 @@ define('TEST_GROUPS',realpath(dirname(__FILE__).'/../cases')); define('TEST_CASES',realpath(dirname(__FILE__).'/../cases')); +define('TEST_PLUGINS',realpath(dirname(__FILE__).'/../../lib/plugins')); // try to load runkit extension -if (!extension_loaded('runkit')) { +if (!extension_loaded('runkit') && function_exists('dl')) { if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { @dl('php_runkit.dll'); } else { @@ -15,7 +16,6 @@ if (!extension_loaded('runkit')) { } } - class TestManager { var $_testcase_extension = '.test.php'; var $_grouptest_extension = '.group.php'; @@ -60,6 +60,17 @@ class TestManager { $test->run($reporter); } + function runAllPluginTests(&$reporter) { + $manager =& new TestManager(); + $test_cases =& $manager->_getTestFileList(TEST_PLUGINS); + $test =& new GroupTest('All Plugin Tests'); + foreach ($test_cases as $test_case) { + $test->addTestFile($test_case); + } + $test->run($reporter); + } + + function runTestCase($testcase_name, $test_case_directory, &$reporter) { $manager =& new TestManager(); @@ -126,12 +137,12 @@ class TestManager { } function &_getTestCaseList($directory = '.') { - $base = TEST_GROUPS . DIRECTORY_SEPARATOR; $file_list =& $this->_getTestFileList($directory); $testcases = array(); foreach ($file_list as $testcase_file) { $case = str_replace($this->_testcase_extension, '',$testcase_file); - $case = str_replace($base, '', $case); + $case = str_replace(TEST_GROUPS . DIRECTORY_SEPARATOR, '', $case); + $case = str_replace(TEST_PLUGINS . DIRECTORY_SEPARATOR, '', $case); $case = str_replace(DIRECTORY_SEPARATOR, ':', $case); $testcases[$testcase_file] = $case; } @@ -143,6 +154,16 @@ class TestManager { array(&$this, '_isTestCaseFile')); } + function &getPluginTestCaseList($directory = '.') { + $manager =& new TestManager(); + return $manager->_getTestCaseList($directory); + } + + function &getPluginGroupTestList($directory = '.') { + $manager =& new TestManager(); + return $manager->_getTestGroupList($directory); + } + function &getGroupTestList($directory = '.') { $manager =& new TestManager(); return $manager->_getTestGroupList($directory); @@ -154,12 +175,12 @@ class TestManager { } function &_getTestGroupList($directory = '.') { - $base = TEST_GROUPS . DIRECTORY_SEPARATOR; $file_list =& $this->_getTestGroupFileList($directory); $grouptests = array(); foreach ($file_list as $grouptest_file) { $group = str_replace($this->_grouptest_extension, '',$grouptest_file); - $group = str_replace($base, '', $group); + $group = str_replace(TEST_GROUPS . DIRECTORY_SEPARATOR, '', $group); + $group = str_replace(TEST_PLUGINS . DIRECTORY_SEPARATOR, '', $group); $group = str_replace(DIRECTORY_SEPARATOR, ':', $group); $grouptests[$grouptest_file] = $group; } @@ -169,7 +190,7 @@ class TestManager { function &_getGroupTestClassNames($grouptest_file) { $file = implode("\n", file($grouptest_file)); - preg_match("~lass\s+?(.*)\s+?extends GroupTest~", $file, $matches); + preg_match("~lass\s+?(.*)\s+?extends .*?GroupTest~", $file, $matches); if (! empty($matches)) { unset($matches[0]); return $matches; @@ -243,6 +264,29 @@ class CLITestManager extends TestManager { } return $buffer . "\n"; } + + function &getPluginTestCaseList($directory = '.') { + $manager =& new CLITestManager(); + $test_cases =& $manager->_getTestCaseList($directory); + + $buffer = "Available test cases:\n"; + foreach ($test_cases as $test_case) { + $buffer .= " " . $test_case . "\n"; + } + return $buffer . "\n"; + } + + function &getPluginGroupTestList($directory = '.') { + $manager =& new CLITestManager(); + $test_cases =& $manager->_getTestGroupList($directory); + + $buffer = "Available test cases:\n"; + foreach ($test_cases as $test_case) { + $buffer .= " " . $test_case . "\n"; + } + return $buffer . "\n"; + } + } class HTMLTestManager extends TestManager { @@ -290,6 +334,42 @@ class HTMLTestManager extends TestManager { $buffer .= "</ul>\n"; return $buffer; } + + function &getPluginTestCaseList($directory = '.') { + $manager =& new HTMLTestManager(); + $testcases =& $manager->_getTestCaseList($directory); + + if (1 > count($testcases)) { + return "<p>No plugin test cases set up!</p>"; + } + $buffer = "<p>Available plugin test cases:</p>\n<ul>"; + foreach ($testcases as $testcase) { + $buffer .= "<li><a href='" . $manager->getBaseURL() . + "?plugin_case=" . urlencode($testcase) . "'>" . + $testcase . "</a></li>\n"; + } + + $buffer .= "</ul>\n"; + return $buffer; + } + + function &getPluginGroupTestList($directory = '.') { + $manager =& new HTMLTestManager(); + $group_tests =& $manager->_getTestGroupList($directory); + if (1 > count($group_tests)) { + return "<p>No plugin test groups set up!</p>"; + } + $buffer = "<p>Available plugin groups:</p>\n<ul>"; + $buffer .= "<li><a href='" . $manager->getBaseURL() . "?plugin_group=all'>All tests</a></li>\n"; + foreach ($group_tests as $group_test) { + $buffer .= "<li><a href='" . $manager->getBaseURL() . "?plugin_group={$group_test}'>" . + $group_test . "</a></li>\n"; + } + + $buffer .= "</ul>\n"; + return $buffer; + } + } /** diff --git a/_test/lib/unittest.php b/_test/lib/unittest.php new file mode 100644 index 000000000..220aa6c1b --- /dev/null +++ b/_test/lib/unittest.php @@ -0,0 +1,5 @@ +<?php +class Doku_UnitTestCase extends UnitTestCase { +} +class Doku_GroupTest extends GroupTest { +} diff --git a/_test/runtests.php b/_test/runtests.php index c4a4f36b4..8b93efec3 100755 --- a/_test/runtests.php +++ b/_test/runtests.php @@ -9,7 +9,6 @@ require_once(DOKU_INC.'inc/events.php'); define('TEST_ROOT', dirname(__FILE__)); define('TMPL_FILESCHEME_PATH', TEST_ROOT . '/filescheme/'); -error_reporting(E_ALL ^ E_NOTICE); require_once 'lib/testmanager.php'; TestManager::setup(); @@ -22,11 +21,17 @@ passes is printed on STDOUT. If ANY of the test cases fail (or raise errors) details are printed on STDERR and this script returns a non-zero exit code. -c --case=NAME specify a test case by it's ID (see -i for list) + --pcase=NAME specify a plugin test case by it's ID + (see --plugincaselist for list) -f --file=NAME specify a test case file (full or relative path) -g --group=NAME specify a grouptest. If no grouptest is specified, all test cases will be run. + --pgroup=NAME specify a plugin grouptest. If no grouptest is + specified, all test cases will be run. -i --caselist list individual test cases by their ID -l --grouplist list available grouptests + --plugincaselist list all individual plugin test cases by their ID + --plugingrouplist list avialable plugin grouptests -s, --separator=SEP set the character(s) used to separate fail details to SEP -p, --path path to SimpleTest installation @@ -41,14 +46,18 @@ EOD; $opt_separator = '->'; $opt_caselist = FALSE; $opt_grouplist = FALSE; +$opt_plugincaselist = FALSE; +$opt_plugingrouplist = FALSE; $opt_caseid = FALSE; +$top_plugincaseid = FALSE; $opt_casefile = FALSE; $opt_groupfile = FALSE; +$opt_plugingroupfile = FALSE; include_once(DOKU_INC.'inc/cliopts.php'); $short_opts = "c:f:g:hils:p:"; -$long_opts = array("case=","caselist","help", "file=", "group=", "grouplist", "separator=", "path="); +$long_opts = array("case=","pcase=","caselist","help", "file=", "group=", "pgroup=", "grouplist", "plugincaselist", "plugingrouplist", "separator=", "path="); $OPTS = Doku_Cli_Opts::getOptions(__FILE__,$short_opts,$long_opts); if ( $OPTS->isError() ) { fwrite( STDERR, $OPTS->getMessage() . "\n"); @@ -62,6 +71,9 @@ foreach ($OPTS->options as $key => $val) { case 'case': $opt_caseid = $val; break; + case 'pcase': + $opt_plugincaseid = $val; + break; case 'h': case 'help': usage(); @@ -74,6 +86,9 @@ foreach ($OPTS->options as $key => $val) { case 'group': $opt_groupfile = $val; break; + case 'pgroup': + $opt_plugingroupfile = $val; + break; case 'i': case 'caselist': $opt_caselist = TRUE; @@ -82,6 +97,12 @@ foreach ($OPTS->options as $key => $val) { case 'grouplist': $opt_grouplist = TRUE; break; + case 'plugincaselist': + $opt_plugincaselist = TRUE; + break; + case 'plugingrouplist': + $opt_plugingrouplist = TRUE; + break; case 's': case 'separator': $opt_separator = $val; @@ -111,8 +132,18 @@ if ($opt_caselist) { echo CLITestManager::getTestCaseList(TEST_CASES); } +/* list plugin test cases */ +if ($opt_plugincaselist) { + echo CLITestManager::getPluginTestCaseList(TEST_PLUGINS); +} + +/* list plugin group tests */ +if($opt_plugingrouplist) { + echo CLITestManager::getPluginGroupTestList(TEST_PLUGINS); +} + /* exit if we've displayed a list */ -if ( $opt_grouplist || $opt_caselist ) { +if ( $opt_grouplist || $opt_caselist || $opt_plugincaselist || $opt_plugingrouplist ) { exit(0); } @@ -121,17 +152,35 @@ if ($opt_casefile) { TestManager::runTestFile($opt_casefile, new CLIReporter($opt_separator)); exit(0); } -/* run a test case by id*/ + +/* run a test case by id */ if ($opt_caseid) { TestManager::runTestCase($opt_caseid, TEST_CASES, new CLIReporter($opt_separator)); exit(0); } + +/* run a plugin test by case id */ +if ($opt_plugincaseid) { + TestManager::runTestCase($opt_plugincaseid, TEST_PLUGINS, new CLIReporter($opt_separator)); + exit(0); +} + /* run a grouptest */ if ($opt_groupfile) { TestManager::runGroupTest($opt_groupfile, TEST_GROUPS, new CLIReporter($opt_separator)); exit(0); } + +/* run a plugin grouptest */ +if ($opt_plugingroupfile) { + TestManager::runGroupTest($opt_plugingroupfile, TEST_PLUGINS, + new CLIReporter($opt_separator)); + exit(0); +} + +/* run a plugin group test */ +//FIXME /* run all tests */ TestManager::runAllTests(new CLIReporter($opt_separator)); exit(0); diff --git a/bin/dwpage.php b/bin/dwpage.php index f664770bf..211bc5a9e 100755 --- a/bin/dwpage.php +++ b/bin/dwpage.php @@ -98,12 +98,12 @@ function usage($action) { #------------------------------------------------------------------------------ function getUser() { $user = getenv('USER'); - if (empty ($username)) { + if (empty ($user)) { $user = getenv('USERNAME'); } else { return $user; } - if (empty ($username)) { + if (empty ($user)) { $user = 'admin'; } return $user; diff --git a/bin/indexer.php b/bin/indexer.php index 55f3608d5..c95314d7c 100755 --- a/bin/indexer.php +++ b/bin/indexer.php @@ -152,6 +152,7 @@ function _clearindex(){ _lock(); _quietecho("Clearing index... "); io_saveFile($conf['indexdir'].'/page.idx',''); + io_saveFile($conf['indexdir'].'/title.idx',''); $dir = @opendir($conf['indexdir']); if($dir!==false){ while(($f = readdir($dir)) !== false){ diff --git a/bin/render.php b/bin/render.php new file mode 100755 index 000000000..d30ef2958 --- /dev/null +++ b/bin/render.php @@ -0,0 +1,67 @@ +#!/usr/bin/php +<?php +/** + * A simple commandline tool to render some DokuWiki syntax with a given + * renderer. + * + * This may not work for plugins that expect a certain environment to be + * set up before rendering, but should work for most or even all standard + * DokuWiki markup + * + * @license GPL2 + * @author Andreas Gohr <andi@splitbrain.org> + */ +if ('cli' != php_sapi_name()) die(); + +ini_set('memory_limit','128M'); +if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); +define('NOSESSION',1); +require_once(DOKU_INC.'inc/init.php'); +require_once(DOKU_INC.'inc/common.php'); +require_once(DOKU_INC.'inc/parserutils.php'); +require_once(DOKU_INC.'inc/cliopts.php'); + +// handle options +$short_opts = 'hr:'; +$long_opts = array('help','renderer:'); +$OPTS = Doku_Cli_Opts::getOptions(__FILE__,$short_opts,$long_opts); +if ( $OPTS->isError() ) { + fwrite( STDERR, $OPTS->getMessage() . "\n"); + _usage(); + exit(1); +} +$RENDERER = 'xhtml'; +foreach ($OPTS->options as $key => $val) { + switch ($key) { + case 'h': + case 'help': + _usage(); + exit; + case 'r': + case 'renderer': + $RENDERER = $val; + } +} + + +// do the action +$source = stream_get_contents(STDIN); +$info = array(); +$result = p_render($RENDERER,p_get_instructions($source),$info); +if(is_null($result)) die("No such renderer $RENDERER\n"); +echo $result; + +/** + * Print usage info + */ +function _usage(){ + print "Usage: render.php <options> + + Reads DokuWiki syntax from STDIN and renders it with the given renderer + to STDOUT + + OPTIONS + -h, --help show this help and exit + -r, --renderer <renderer> the render mode (default: xhtml) +"; +} diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php index 74d95147e..2405494e0 100644 --- a/conf/dokuwiki.php +++ b/conf/dokuwiki.php @@ -89,6 +89,7 @@ $conf['usedraft'] = 1; //automatically save a draft while edit $conf['sepchar'] = '_'; //word separator character in page names; may be a // letter, a digit, '_', '-', or '.'. $conf['canonical'] = 0; //Should all URLs use full canonical http://... style? +$conf['fnencode'] = 'url'; //encode filenames (url|safe|utf-8) $conf['autoplural'] = 0; //try (non)plural form of nonexisting files? $conf['compression'] = 'gz'; //compress old revisions: (0: off) ('gz': gnuzip) ('bz2': bzip) // bz2 generates smaller files, but needs more cpu-power @@ -103,6 +104,8 @@ $conf['gdlib'] = 2; //the GDlib version (0, 1 or 2) 2 tries $conf['im_convert'] = ''; //path to ImageMagicks convert (will be used instead of GD) $conf['jpg_quality'] = '70'; //quality of compression when scaling jpg images (0-100) $conf['subscribers'] = 0; //enable change notice subscription support +$conf['subscribe_time'] = 24*60*60; //Time after which digests / lists are sent (in sec, default 1 day) + //Should be smaller than the time specified in recent_days $conf['compress'] = 1; //Strip whitespaces and comments from Styles and JavaScript? 1|0 $conf['hidepages'] = ''; //Regexp for pages to be skipped from RSS, Search and Recent Changes $conf['send404'] = 0; //Send a HTTP 404 status for non existing pages? @@ -139,11 +142,12 @@ $conf['target']['media'] = ''; $conf['target']['windows'] = ''; //Proxy setup - if your Server needs a proxy to access the web set these -$conf['proxy']['host'] = ''; -$conf['proxy']['port'] = ''; -$conf['proxy']['user'] = ''; -$conf['proxy']['pass'] = ''; -$conf['proxy']['ssl'] = 0; +$conf['proxy']['host'] = ''; +$conf['proxy']['port'] = ''; +$conf['proxy']['user'] = ''; +$conf['proxy']['pass'] = ''; +$conf['proxy']['ssl'] = 0; +$conf['proxy']['except'] = ''; /* Safemode Hack */ @@ -154,3 +158,4 @@ $conf['ftp']['user'] = 'user'; $conf['ftp']['pass'] = 'password'; $conf['ftp']['root'] = '/home/user/htdocs'; +$conf['readdircache'] = 0; //time cache in second for the readdir opération, 0 to deactivate. diff --git a/conf/license.php b/conf/license.php index 9a753baa7..89728ab57 100644 --- a/conf/license.php +++ b/conf/license.php @@ -5,36 +5,32 @@ * license.local.php instead. */ +$license['cc-zero'] = array( + 'name' => 'CC0 1.0 Universal', + 'url' => 'http://creativecommons.org/publicdomain/zero/1.0/', +); +$license['publicdomain'] = array( + 'name' => 'Public Domain', + 'url' => 'http://creativecommons.org/licenses/publicdomain/', +); $license['cc-by'] = array( 'name' => 'CC Attribution 3.0 Unported', 'url' => 'http://creativecommons.org/licenses/by/3.0/', ); +$license['cc-by-sa'] = array( + 'name' => 'CC Attribution-Share Alike 3.0 Unported', + 'url' => 'http://creativecommons.org/licenses/by-sa/3.0/', +); +$license['gnufdl'] = array( + 'name' => 'GNU Free Documentation License 1.3', + 'url' => 'http://www.gnu.org/licenses/fdl-1.3.html', +); $license['cc-by-nc'] = array( 'name' => 'CC Attribution-Noncommercial 3.0 Unported', 'url' => 'http://creativecommons.org/licenses/by-nc/3.0/', ); -$license['cc-by-nc-nd'] = array( - 'name' => 'CC Attribution-Noncommercial-No Derivative Works 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-nc-nd/3.0/', -); $license['cc-by-nc-sa'] = array( 'name' => 'CC Attribution-Noncommercial-Share Alike 3.0 Unported', 'url' => 'http://creativecommons.org/licenses/by-nc-sa/3.0/', ); -$license['cc-by-nd'] = array( - 'name' => 'CC Attribution-No Derivative Works 3.0 Unported', - 'url' => 'cc-by-nd', -); -$license['cc-by-sa'] = array( - 'name' => 'CC Attribution-Share Alike 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-sa/3.0/', -); -$license['publicdomain'] = array( - 'name' => 'Public Domain', - 'url' => 'http://creativecommons.org/licenses/publicdomain/', -); -$license['gnufdl'] = array( - 'name' => 'GNU Free Documentation License 1.2', - 'url' => 'http://www.gnu.org/licenses/fdl-1.2.html', -); diff --git a/conf/local.php.dist b/conf/local.php.dist index 4af6ea594..0397954f4 100644 --- a/conf/local.php.dist +++ b/conf/local.php.dist @@ -1,6 +1,6 @@ <?php /** - * This is an example of how a local.php coul look like. + * This is an example of how a local.php could look like. * Simply copy the options you want to change from dokuwiki.php * to this file and change them. * @@ -14,13 +14,3 @@ //$conf['useacl'] = 1; //Use Access Control Lists to restrict access? //$conf['superuser'] = 'joe'; -/** - * The following options are usefull, if you use a MySQL - * database as autentication backend. Have a look into - * mysql.conf.php too and adjust the options to match - * your database installation. - */ -//$conf['authtype'] = 'mysql'; -//require_once ("mysql.conf.php"); - - diff --git a/conf/mime.conf b/conf/mime.conf index 2e1ce6bb0..24529b06c 100644 --- a/conf/mime.conf +++ b/conf/mime.conf @@ -7,22 +7,34 @@ jpg image/jpeg jpeg image/jpeg gif image/gif png image/png + +swf application/x-shockwave-flash +mp3 audio/mpeg +ogg audio/ogg +wav audio/wav + tgz !application/octet-stream tar !application/x-gtar gz !application/octet-stream bz2 !application/octet-stream zip !application/zip rar !application/rar +7z !application/x-7z-compressed + pdf application/pdf ps !application/postscript + +rpm !application/octet-stream +deb !application/octet-stream + doc !application/msword xls !application/msexcel ppt !application/mspowerpoint rtf !application/msword -swf application/x-shockwave-flash -rpm !application/octet-stream -deb !application/octet-stream +docx !application/vnd.openxmlformats-officedocument.wordprocessingml.document +xlsx !application/vnd.openxmlformats-officedocument.spreadsheetml.sheet +pptx !application/vnd.openxmlformats-officedocument.presentationml.presentation sxw !application/soffice sxc !application/soffice @@ -48,5 +60,5 @@ odt !application/vnd.oasis.opendocument.text #txt text/plain #conf text/plain #xml text/xml - +#csv text/csv diff --git a/conf/msg b/conf/msg deleted file mode 100644 index 38bbb133c..000000000 --- a/conf/msg +++ /dev/null @@ -1,8 +0,0 @@ -25 -The first line of this file contains a number, indicating -which notification messages should not be displayed. This -is the only information sent to dokuwiki.org when the -updatecheck option is enabled. You usually don't need to -change this number as it gets updated when you install the -new release - but to ignore a certain message set its -number here. diff --git a/conf/mysql.conf.php.example b/conf/mysql.conf.php.example index bd67be82c..94bc14e1f 100644 --- a/conf/mysql.conf.php.example +++ b/conf/mysql.conf.php.example @@ -8,15 +8,15 @@ * * TABLE users * uid login pass firstname lastname email - * + * * TABLE groups * gid name - * + * * TABLE usergroup * uid gid - * - * To use this configuration you have to copy them to local.php - * or at least include this file in local.php. + * + * To use this configuration you have to copy them to local.protected.php + * or at least include this file in local.protected.php. */ /* Options to configure database access. You need to set up this @@ -59,9 +59,9 @@ $conf['auth']['mysql']['TablesToLock']= array("users", "users AS u","groups", "g * The module access the password as 'pass' so a alias might be necessary. * * Following patters will be replaced: - * %{user} user name - * %{pass} encrypted or clear text password (depends on 'encryptPass') - * %{dgroup} default group name + * %{user} user name + * %{pass} encrypted or clear text password (depends on 'encryptPass') + * %{dgroup} default group name */ $conf['auth']['mysql']['checkPass'] = "SELECT pass FROM usergroup AS ug @@ -80,7 +80,7 @@ $conf['auth']['mysql']['checkPass'] = "SELECT pass * names listed above so aliasses might be neseccary. * * Following patters will be replaced: - * %{user} user name + * %{user} user name */ $conf['auth']['mysql']['getUserInfo'] = "SELECT pass, CONCAT(firstname,' ',lastname) AS name, email AS mail FROM users @@ -92,7 +92,7 @@ $conf['auth']['mysql']['getUserInfo'] = "SELECT pass, CONCAT(firstname,' ',lastn * might be nessecary. * * Following patters will be replaced: - * %{user} user name + * %{user} user name */ $conf['auth']['mysql']['getGroups'] = "SELECT name as `group` FROM groups g, users u, usergroup ug @@ -113,13 +113,13 @@ $conf['auth']['mysql']['getGroups'] = "SELECT name as `group` * The login name will be accessed as 'user' to a alias might be neseccary. * No patterns will be replaced in this statement but following patters * will be replaced in the filter expressions: - * %{user} in FilterLogin user's login name - * %{name} in FilterName user's full name - * %{email} in FilterEmail user's email address - * %{group} in FilterGroup group name + * %{user} in FilterLogin user's login name + * %{name} in FilterName user's full name + * %{email} in FilterEmail user's email address + * %{group} in FilterGroup group name */ $conf['auth']['mysql']['getUsers'] = "SELECT DISTINCT login AS user - FROM users AS u + FROM users AS u LEFT JOIN usergroup AS ug ON u.uid=ug.uid LEFT JOIN groups AS g ON ug.gid=g.gid"; $conf['auth']['mysql']['FilterLogin'] = "login LIKE '%{user}'"; @@ -136,11 +136,11 @@ $conf['auth']['mysql']['SortOrder'] = "ORDER BY login"; * to store are: login name, password, email address and full name. * * Following patterns will be replaced: - * %{user} user's login name - * %{pass} password (encrypted or clear text, depends on 'encryptPass') - * %{email} email address - * %{name} user's full name - */ + * %{user} user's login name + * %{pass} password (encrypted or clear text, depends on 'encryptPass') + * %{email} email address + * %{name} user's full name + */ $conf['auth']['mysql']['addUser'] = "INSERT INTO users (login, pass, email, firstname, lastname) VALUES ('%{user}', '%{pass}', '%{email}', @@ -149,7 +149,7 @@ $conf['auth']['mysql']['addUser'] = "INSERT INTO users /* This statement should add a group to the database. * Following patterns will be replaced: - * %{group} group name + * %{group} group name */ $conf['auth']['mysql']['addGroup'] = "INSERT INTO groups (name) VALUES ('%{group}')"; @@ -157,18 +157,18 @@ $conf['auth']['mysql']['addGroup'] = "INSERT INTO groups (name) /* This statement should connect a user to a group (a user become member * of that group). * Following patterns will be replaced: - * %{user} user's login name - * %{uid} id of a user dataset - * %{group} group name - * %{gid} id of a group dataset + * %{user} user's login name + * %{uid} id of a user dataset + * %{group} group name + * %{gid} id of a group dataset */ $conf['auth']['mysql']['addUserGroup']= "INSERT INTO usergroup (uid, gid) VALUES ('%{uid}', '%{gid}')"; /* This statement should remove a group fom the database. * Following patterns will be replaced: - * %{group} group name - * %{gid} id of a group dataset + * %{group} group name + * %{gid} id of a group dataset */ $conf['auth']['mysql']['delGroup'] = "DELETE FROM groups WHERE gid='%{gid}'"; @@ -177,7 +177,7 @@ $conf['auth']['mysql']['delGroup'] = "DELETE FROM groups * The module will access the index with the name 'id' so a alias might be * necessary. * following patters will be replaced: - * %{user} user name + * %{user} user name */ $conf['auth']['mysql']['getUserID'] = "SELECT uid AS id FROM users @@ -189,8 +189,8 @@ $conf['auth']['mysql']['getUserID'] = "SELECT uid AS id /* This statement should remove a user fom the database. * Following patterns will be replaced: - * %{user} user's login name - * %{uid} id of a user dataset + * %{user} user's login name + * %{uid} id of a user dataset */ $conf['auth']['mysql']['delUser'] = "DELETE FROM users WHERE uid='%{uid}'"; @@ -198,7 +198,7 @@ $conf['auth']['mysql']['delUser'] = "DELETE FROM users /* This statement should remove all connections from a user to any group * (a user quits membership of all groups). * Following patterns will be replaced: - * %{uid} id of a user dataset + * %{uid} id of a user dataset */ $conf['auth']['mysql']['delUserRefs'] = "DELETE FROM usergroup WHERE uid='%{uid}'"; @@ -212,12 +212,12 @@ $conf['auth']['mysql']['delUserRefs'] = "DELETE FROM usergroup * added to updateUser on demand. Only changed parameters will be used. * * Following patterns will be replaced: - * %{user} user's login name - * %{pass} password (encrypted or clear text, depends on 'encryptPass') - * %{email} email address - * %{name} user's full name + * %{user} user's login name + * %{pass} password (encrypted or clear text, depends on 'encryptPass') + * %{email} email address + * %{name} user's full name * %{uid} user id that should be updated - */ + */ $conf['auth']['mysql']['updateUser'] = "UPDATE users SET"; $conf['auth']['mysql']['UpdateLogin'] = "login='%{user}'"; $conf['auth']['mysql']['UpdatePass'] = "pass='%{pass}'"; @@ -230,10 +230,10 @@ $conf['auth']['mysql']['UpdateTarget']= "WHERE uid=%{uid}"; * group (a user quits membership of that group). * * Following patterns will be replaced: - * %{user} user's login name - * %{uid} id of a user dataset - * %{group} group name - * %{gid} id of a group dataset + * %{user} user's login name + * %{uid} id of a user dataset + * %{group} group name + * %{gid} id of a group dataset */ $conf['auth']['mysql']['delUserGroup']= "DELETE FROM usergroup WHERE uid='%{uid}' @@ -244,7 +244,7 @@ $conf['auth']['mysql']['delUserGroup']= "DELETE FROM usergroup * be necessary. * * Following patters will be replaced: - * %{group} group name + * %{group} group name */ $conf['auth']['mysql']['getGroupID'] = "SELECT gid AS id FROM groups diff --git a/conf/wordblock.conf b/conf/wordblock.conf index da7143257..4ea9934b5 100644 --- a/conf/wordblock.conf +++ b/conf/wordblock.conf @@ -1,8004 +1,12291 @@ -# This is the URL blacklist from the chongqed.org database -# it is available from http://blacklist.chongqed.org/ -# You can use each line below as a regular expression -# that can be tested against URLs on your wiki. -# The last spammer was added on 2008-09-11 10:14:51 + ########################################################################### + # DO NOT MODIFY THIS LIST UNLESS YOU HAVE A BASIC UNDERSTANDING OF REGEX! # + ########################################################################### + # + # This is a list of domain names which are blocked - nobody can add new links to these domains + # Guidelines: + # - Only blacklist for widespread, unmanageable spam. + # - To disable an entry, *remove* it, don't comment it out. Please log removals. + # - Add entries or their removal to the <span class="plainlinks">[http://meta.wikimedia.org/wiki/Spam_blacklist/Log log]</span>. + # - <small style="color:gray;" id="oldid" class="plainlinks">Snippet for [http://meta.wikimedia.org/wiki/Spam_blacklist/Log/{{CURRENTYEAR}}/{{CURRENTMONTH}}?action=edit&editintro=Template:Spam_blacklist_log_instructions logging]: <nowiki>{{sbl-diff|</nowiki>{{REVISIONID}}}}</small> + # + # Syntax: + # - Everything from a "#" character to the end of the line is a comment + # - Every non-blank line is a regex fragment which will only match hosts inside URLs + # [[Category:Spam blacklist|{{PAGENAME}}]] -https?:\/\/([^\/]*\.)?-com-boob-sex-sexy\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?0--sex\.com -https?:\/\/([^\/]*\.)?0-casinos\.org -https?:\/\/([^\/]*\.)?0-poker\.net -https?:\/\/([^\/]*\.)?00007\.com -https?:\/\/([^\/]*\.)?001-mature-teacher\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?007vip\.cn -https?:\/\/([^\/]*\.)?01incest\.za\.pl -https?:\/\/([^\/]*\.)?021boy\.com -https?:\/\/([^\/]*\.)?027168\.com -https?:\/\/([^\/]*\.)?02incest\.za\.pl -https?:\/\/([^\/]*\.)?03incest\.za\.pl -https?:\/\/([^\/]*\.)?086books\.com -https?:\/\/([^\/]*\.)?0esy-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?0lmz-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?0sxa-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?0tdwrmq8\.org -https?:\/\/([^\/]*\.)?0x009\.blogspot\.com -https?:\/\/([^\/]*\.)?1-888-pokermon\.com -https?:\/\/([^\/]*\.)?1-adipex\.us -https?:\/\/([^\/]*\.)?1-cialis\.us -https?:\/\/([^\/]*\.)?1-craps\.net -https?:\/\/([^\/]*\.)?1-levitra\.us -https?:\/\/([^\/]*\.)?1-poker-game\.com -https?:\/\/([^\/]*\.)?1-xenical\.us -https?:\/\/([^\/]*\.)?10-best-online-casinosx\.blogspot\.com -https?:\/\/([^\/]*\.)?100-25-ebony-free\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?10med\.com -https?:\/\/([^\/]*\.)?10pharm\.com -https?:\/\/([^\/]*\.)?114418523\.blogspot\.com -https?:\/\/([^\/]*\.)?117000\.com -https?:\/\/([^\/]*\.)?1177888888\.com -https?:\/\/([^\/]*\.)?123clips-com-cq03\.blogspot\.com -https?:\/\/([^\/]*\.)?123clips-com-td\.blogspot\.com -https?:\/\/([^\/]*\.)?123clips-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?123clips-tp5\.blogspot\.com -https?:\/\/([^\/]*\.)?126hao\.com -https?:\/\/([^\/]*\.)?163car\.com -https?:\/\/([^\/]*\.)?163school\.com\.cn -https?:\/\/([^\/]*\.)?168chinese\.com -https?:\/\/([^\/]*\.)?168english\.com -https?:\/\/([^\/]*\.)?168standard\.com -https?:\/\/([^\/]*\.)?181st-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?18to19-com-dbo26u\.blogspot\.com -https?:\/\/([^\/]*\.)?18to19-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?1avoro\.info -https?:\/\/([^\/]*\.)?1c1garettes-777\.tripod\.com -https?:\/\/([^\/]*\.)?1centpoker\.us -https?:\/\/([^\/]*\.)?1clickpoker\.us -https?:\/\/([^\/]*\.)?1dollarpoker\.us -https?:\/\/([^\/]*\.)?1ebalo\.org -https?:\/\/([^\/]*\.)?1freepoker\.us -https?:\/\/([^\/]*\.)?1gogo\.awardspace\.com -https?:\/\/([^\/]*\.)?1golod\.org -https?:\/\/([^\/]*\.)?1i-casino\.com -https?:\/\/([^\/]*\.)?1jolla\.org -https?:\/\/([^\/]*\.)?1kaj-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?1min\.us -https?:\/\/([^\/]*\.)?1onlinepoker\.us -https?:\/\/([^\/]*\.)?1ringtones\.fateback\.com -https?:\/\/([^\/]*\.)?1st-in-poker\.us -https?:\/\/([^\/]*\.)?1st-phentermine\.to\.pl -https?:\/\/([^\/]*\.)?1st-place-poker\.com -https?:\/\/([^\/]*\.)?1st-poker\.us -https?:\/\/([^\/]*\.)?1stpharma\.noads\.biz -https?:\/\/([^\/]*\.)?1stpharmacy\.rmcinfo\.fr -https?:\/\/([^\/]*\.)?1stviagra\.coz\.in -https?:\/\/([^\/]*\.)?1whs\.com -https?:\/\/([^\/]*\.)?2-poker\.us -https?:\/\/([^\/]*\.)?2008-web-hosting\.com -https?:\/\/([^\/]*\.)?2010oa\.com -https?:\/\/([^\/]*\.)?2228888\.com -https?:\/\/([^\/]*\.)?24ringtonevme\.blogspot\.com -https?:\/\/([^\/]*\.)?24x7\.soliday\.org -https?:\/\/([^\/]*\.)?2apd-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?2cpo-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?30moms-com-dd8h8y1slq\.blogspot\.com -https?:\/\/([^\/]*\.)?30moms-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?321\.cn -https?:\/\/([^\/]*\.)?33b\.b33r\.net -https?:\/\/([^\/]*\.)?33orgy\.org -https?:\/\/([^\/]*\.)?3mac\.info -https?:\/\/([^\/]*\.)?3pic-com-ai3\.blogspot\.com -https?:\/\/([^\/]*\.)?3pic-com-kedet\.blogspot\.com -https?:\/\/([^\/]*\.)?40inchplus-com-b4\.blogspot\.com -https?:\/\/([^\/]*\.)?40inchplus-com-toqof\.blogspot\.com -https?:\/\/([^\/]*\.)?40inchplus-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?4arf-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?4erni-pes\.blogspot\.com -https?:\/\/([^\/]*\.)?4mednew\.com -https?:\/\/([^\/]*\.)?4mkat4\.com -https?:\/\/([^\/]*\.)?4onlinecasino4\.blogspot\.com -https?:\/\/([^\/]*\.)?4t7e\.info -https?:\/\/([^\/]*\.)?4tsmiget\.forumzen\.com -https?:\/\/([^\/]*\.)?4tsutmon\.forumzen\.com -https?:\/\/([^\/]*\.)?4udf-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?4x2\.net -https?:\/\/([^\/]*\.)?510sms\.blogbus\.com -https?:\/\/([^\/]*\.)?5188job\.com -https?:\/\/([^\/]*\.)?51lac\.com -https?:\/\/([^\/]*\.)?51lover\.org -https?:\/\/([^\/]*\.)?51sms\.blogbus\.com -https?:\/\/([^\/]*\.)?51web\.cn -https?:\/\/([^\/]*\.)?51wisdom\.com -https?:\/\/([^\/]*\.)?51wisdom\.com\.cn -https?:\/\/([^\/]*\.)?51wisdom\.net -https?:\/\/([^\/]*\.)?520sms\.blogbus\.com -https?:\/\/([^\/]*\.)?52lac\.net -https?:\/\/([^\/]*\.)?5417\.cn -https?:\/\/([^\/]*\.)?54epson\.com -https?:\/\/([^\/]*\.)?55\.2myip\.com -https?:\/\/([^\/]*\.)?5588866\.com\.cn -https?:\/\/([^\/]*\.)?56156\.com -https?:\/\/([^\/]*\.)?563000\.com -https?:\/\/([^\/]*\.)?56918\.com -https?:\/\/([^\/]*\.)?59165\.net -https?:\/\/([^\/]*\.)?5ijipiao\.com -https?:\/\/([^\/]*\.)?5up-net-blmpo6qr0\.blogspot\.com -https?:\/\/([^\/]*\.)?5up-net-wr00skgzbo\.blogspot\.com -https?:\/\/([^\/]*\.)?63\.217\.31\.49 -https?:\/\/([^\/]*\.)?6717\.com\.cn -https?:\/\/([^\/]*\.)?69pose\.org -https?:\/\/([^\/]*\.)?6tvju0a\.nokedem\.com -https?:\/\/([^\/]*\.)?70678\.com -https?:\/\/([^\/]*\.)?7171\.blogshot\.nl -https?:\/\/([^\/]*\.)?72\.net\.cn -https?:\/\/([^\/]*\.)?77zhong\.com -https?:\/\/([^\/]*\.)?78\.net\.cn -https?:\/\/([^\/]*\.)?79179\.com -https?:\/\/([^\/]*\.)?7982257596\.blogspot\.com -https?:\/\/([^\/]*\.)?7dftw79\.nokedem\.com -https?:\/\/([^\/]*\.)?7j5lj\.info -https?:\/\/([^\/]*\.)?7shg-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?7x7\.ruwe\.net -https?:\/\/([^\/]*\.)?8-teenies\.freeinsite\.net -https?:\/\/([^\/]*\.)?80880\.com -https?:\/\/([^\/]*\.)?8224\.net -https?:\/\/([^\/]*\.)?86wys\.com -https?:\/\/([^\/]*\.)?87793798\.cn -https?:\/\/([^\/]*\.)?888\.web\.com -https?:\/\/([^\/]*\.)?88by88-ax4nzu\.blogspot\.com -https?:\/\/([^\/]*\.)?88by88-com-hx06a\.blogspot\.com -https?:\/\/([^\/]*\.)?88by88-com-nekuk\.blogspot\.com -https?:\/\/([^\/]*\.)?88tm\.com -https?:\/\/([^\/]*\.)?8pcg-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?8teenfiles-com-dzlvk\.blogspot\.com -https?:\/\/([^\/]*\.)?8teenfiles-com-mj6\.blogspot\.com -https?:\/\/([^\/]*\.)?8teenfiles-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?8thstreetlatinas-com-rw48o84iwl\.blogspot\.com -https?:\/\/([^\/]*\.)?8vwx-adult-sites\.blogspot\.com -https?:\/\/([^\/]*\.)?90001\.cn -https?:\/\/([^\/]*\.)?911\.x24hr\.com -https?:\/\/([^\/]*\.)?911w\.net -https?:\/\/([^\/]*\.)?91yg\.com -https?:\/\/([^\/]*\.)?96china\.com -https?:\/\/([^\/]*\.)?96china\.net -https?:\/\/([^\/]*\.)?96d2\.com -https?:\/\/([^\/]*\.)?98-boot-disk-japanese-window\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?99aids\.com -https?:\/\/([^\/]*\.)?a-blonde-babe-in-bikini\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?a-milf-video-preview\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?a-onedigitizing\.com -https?:\/\/([^\/]*\.)?a-oneemb\.com -https?:\/\/([^\/]*\.)?a-phentermine\.us -https?:\/\/([^\/]*\.)?a-poker-casino\.com -https?:\/\/([^\/]*\.)?a-porn-sex-adult-xxx\.com -https?:\/\/([^\/]*\.)?aaeon\.com\.cn -https?:\/\/([^\/]*\.)?aalita\.com -https?:\/\/([^\/]*\.)?aalive\.info -https?:\/\/([^\/]*\.)?aalop\.info -https?:\/\/([^\/]*\.)?aamjh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?aaqqywh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ababd1\.com -https?:\/\/([^\/]*\.)?abasti\.com -https?:\/\/([^\/]*\.)?abbama\.com -https?:\/\/([^\/]*\.)?abbc\.edu -https?:\/\/([^\/]*\.)?abbleg4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?abca\.biz -https?:\/\/([^\/]*\.)?abcink\.com -https?:\/\/([^\/]*\.)?abijah\.phpbbx\.de -https?:\/\/([^\/]*\.)?abijah\.romandie\.com -https?:\/\/([^\/]*\.)?abito-da-sera\.bb22\.info -https?:\/\/([^\/]*\.)?about-money-world\.com -https?:\/\/([^\/]*\.)?aboutinfotech\.com -https?:\/\/([^\/]*\.)?aboutmitsubishiparts\.cn -https?:\/\/([^\/]*\.)?abriana\.phpbbx\.de -https?:\/\/([^\/]*\.)?abrianna\.romandie\.com -https?:\/\/([^\/]*\.)?absolutely-free-porn-clip-blogyvg\.blogspot\.com -https?:\/\/([^\/]*\.)?absolutely-free-porn-clip-zone28k\.blogspot\.com -https?:\/\/([^\/]*\.)?aburri\.com -https?:\/\/([^\/]*\.)?academics\.smcvt\.edu -https?:\/\/([^\/]*\.)?acantorr\.forumzen\.com -https?:\/\/([^\/]*\.)?accounting-degree\.hotmail\.ru -https?:\/\/([^\/]*\.)?accounting1degre\.chat\.ru -https?:\/\/([^\/]*\.)?accredited-degre\.hotmail\.ru -https?:\/\/([^\/]*\.)?accredited1degre\.chat\.ru -https?:\/\/([^\/]*\.)?accredited2degre\.chat\.ru -https?:\/\/([^\/]*\.)?acelacacel\.dl\.pl -https?:\/\/([^\/]*\.)?acelalacel\.blogcu\.com -https?:\/\/([^\/]*\.)?acelcocna\.lolbb\.com -https?:\/\/([^\/]*\.)?aceldron\.lightbb\.com -https?:\/\/([^\/]*\.)?acelgetric\.dl\.pl -https?:\/\/([^\/]*\.)?acellibo\.dl\.pl -https?:\/\/([^\/]*\.)?acellitroc\.xa\.pl -https?:\/\/([^\/]*\.)?acelracer\.graphforum\.com -https?:\/\/([^\/]*\.)?acelrel\.discutforum\.com -https?:\/\/([^\/]*\.)?acgetvar\.iphorum\.com -https?:\/\/([^\/]*\.)?achima\.phpbbx\.de -https?:\/\/([^\/]*\.)?achima\.romandie\.com -https?:\/\/([^\/]*\.)?achutsit\.forumzen\.com -https?:\/\/([^\/]*\.)?acima\.phpbbx\.de -https?:\/\/([^\/]*\.)?acima\.romandie\.com -https?:\/\/([^\/]*\.)?acimah\.romandie\.com -https?:\/\/([^\/]*\.)?aciphexbuy\.chip\.ms -https?:\/\/([^\/]*\.)?aciphexcheap\.mysite\.de -https?:\/\/([^\/]*\.)?aciphexcheapbuy\.cut\.by -https?:\/\/([^\/]*\.)?aciphexgeneric\.redirect\.to -https?:\/\/([^\/]*\.)?aciphexgenericbuy\.dive\.to -https?:\/\/([^\/]*\.)?aclyulac\.forumzen\.com -https?:\/\/([^\/]*\.)?acme-arts\.com -https?:\/\/([^\/]*\.)?acmonno\.zikforum\.com -https?:\/\/([^\/]*\.)?acne-medicinebco\.blogspot\.com -https?:\/\/([^\/]*\.)?acololi\.winnerforum\.net -https?:\/\/([^\/]*\.)?acouc\.zj\.pl -https?:\/\/([^\/]*\.)?acrolrel\.blogcu\.com -https?:\/\/([^\/]*\.)?acscuace\.forumzen\.com -https?:\/\/([^\/]*\.)?actingland\.com -https?:\/\/([^\/]*\.)?action-in-lesbian-lover\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?action36-kx8\.blogspot\.com -https?:\/\/([^\/]*\.)?actonelbuy\.drop\.to -https?:\/\/([^\/]*\.)?actonelcheap\.notrix\.ch -https?:\/\/([^\/]*\.)?actonelcheapgeneric\.fanclub\.ms -https?:\/\/([^\/]*\.)?actonelgeneric\.drop\.to -https?:\/\/([^\/]*\.)?actonelonline\.drive\.to -https?:\/\/([^\/]*\.)?acurahost\.cn -https?:\/\/([^\/]*\.)?acuratrades\.cn -https?:\/\/([^\/]*\.)?acxza\.szm\.sk -https?:\/\/([^\/]*\.)?acyclovir\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ad0571\.com -https?:\/\/([^\/]*\.)?adapturl\.com -https?:\/\/([^\/]*\.)?adault\.adultserv\.info -https?:\/\/([^\/]*\.)?adds1\.trafflow\.com -https?:\/\/([^\/]*\.)?adipex-08pr\.blogspot\.com -https?:\/\/([^\/]*\.)?adipex-911\.coz\.in -https?:\/\/([^\/]*\.)?adipex-buyvie\.blogspot\.com -https?:\/\/([^\/]*\.)?adipex-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?adipex-phenterminepwf\.blogspot\.com -https?:\/\/([^\/]*\.)?adipex-wiki\.com -https?:\/\/([^\/]*\.)?adipex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?adipex\.edu\.tf -https?:\/\/([^\/]*\.)?adipex\.edublogs\.org -https?:\/\/([^\/]*\.)?adipex\.health-livening\.com -https?:\/\/([^\/]*\.)?adipexes\.blogspot\.com -https?:\/\/([^\/]*\.)?adipexwoq\.blogspot\.com -https?:\/\/([^\/]*\.)?adipexxdt\.blogspot\.com -https?:\/\/([^\/]*\.)?adira\.phpbbx\.de -https?:\/\/([^\/]*\.)?adira\.romandie\.com -https?:\/\/([^\/]*\.)?adrienneee\.ifrance\.com -https?:\/\/([^\/]*\.)?adrienneee\.xhostar\.com -https?:\/\/([^\/]*\.)?adsenseready\.com -https?:\/\/([^\/]*\.)?adult-clips-com-guqiax1tu\.blogspot\.com -https?:\/\/([^\/]*\.)?adult-clips-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?adult-dating-free\.sexnation\.info -https?:\/\/([^\/]*\.)?adult-dating\.sexnation\.info -https?:\/\/([^\/]*\.)?adult-free-fucking-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?adult-free-granny-video\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?adult-fx\.info -https?:\/\/([^\/]*\.)?adult-list-com-wqf4ojq2uk\.blogspot\.com -https?:\/\/([^\/]*\.)?adult-list-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?adult-personals\.sexnation\.info -https?:\/\/([^\/]*\.)?adult-porn-clip-info887\.blogspot\.com -https?:\/\/([^\/]*\.)?adult-sites-review\.beaffaired\.com -https?:\/\/([^\/]*\.)?adult\.1foleks\.org -https?:\/\/([^\/]*\.)?adult1clip\.blogspot\.com -https?:\/\/([^\/]*\.)?adult1movies\.blogspot\.com -https?:\/\/([^\/]*\.)?adult1video\.blogspot\.com -https?:\/\/([^\/]*\.)?adult69club\.tripod\.com -https?:\/\/([^\/]*\.)?adultbuffet-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?adultpersonalsxgj\.blogspot\.com -https?:\/\/([^\/]*\.)?adultpersonalz\.net -https?:\/\/([^\/]*\.)?adultsexvideo\.blogspot\.com -https?:\/\/([^\/]*\.)?adultsitefind\.info -https?:\/\/([^\/]*\.)?adultsiteshop\.info -https?:\/\/([^\/]*\.)?adultsss\.cafe150\.com -https?:\/\/([^\/]*\.)?adultsss\.freehostia\.com -https?:\/\/([^\/]*\.)?adust\.my10gb\.com -https?:\/\/([^\/]*\.)?advanceloanfast\.info -https?:\/\/([^\/]*\.)?adventure-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?advice-kissing\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?adviser-financial-friendly-gay\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?adviser\.8888mb\.com -https?:\/\/([^\/]*\.)?adwareremoval\.myinfo\.ws -https?:\/\/([^\/]*\.)?ae\.siam\.edu -https?:\/\/([^\/]*\.)?aebn-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?aezat\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?afdtf\.szm\.sk -https?:\/\/([^\/]*\.)?affishe\.hostcroc\.com -https?:\/\/([^\/]*\.)?affishe\.webmelia\.com -https?:\/\/([^\/]*\.)?afraima\.phpbbx\.de -https?:\/\/([^\/]*\.)?african-american-lesbian-personals\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?africanvagina-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?aftworld\.com -https?:\/\/([^\/]*\.)?afxbmx\.info -https?:\/\/([^\/]*\.)?agbht\.fr33webhost\.com -https?:\/\/([^\/]*\.)?agclore\.dl\.pl -https?:\/\/([^\/]*\.)?agcw-com-cme2qnyzyt\.blogspot\.com -https?:\/\/([^\/]*\.)?agcw-com-r10opb\.blogspot\.com -https?:\/\/([^\/]*\.)?agcw-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?agentlovelette\.250free\.com -https?:\/\/([^\/]*\.)?aghas\.info -https?:\/\/([^\/]*\.)?agmy3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?agrrjd4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?agylavu\.org -https?:\/\/([^\/]*\.)?ah-me-com-af7ipw\.blogspot\.com -https?:\/\/([^\/]*\.)?ah-me-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?ah-me-t7o\.blogspot\.com -https?:\/\/([^\/]*\.)?ahava\.phpbbx\.de -https?:\/\/([^\/]*\.)?ahuva\.phpbbx\.de -https?:\/\/([^\/]*\.)?aidlov\.com -https?:\/\/([^\/]*\.)?aids-china\.com -https?:\/\/([^\/]*\.)?aids\.ik8\.com -https?:\/\/([^\/]*\.)?aids1\.zj\.com -https?:\/\/([^\/]*\.)?aids333\.net -https?:\/\/([^\/]*\.)?aikn3\.szm\.sk -https?:\/\/([^\/]*\.)?air520\.com -https?:\/\/([^\/]*\.)?airfarelowest\.net -https?:\/\/([^\/]*\.)?airline-ticket-now\.com -https?:\/\/([^\/]*\.)?airline-ticket\.globaltr\.info -https?:\/\/([^\/]*\.)?ajneuas\.com -https?:\/\/([^\/]*\.)?akbxb\.fr33webhost\.com -https?:\/\/([^\/]*\.)?akissbetweenthelegs-com-hesel\.blogspot\.com -https?:\/\/([^\/]*\.)?akissbetweenthelegs-com-tsawya560\.blogspot\.com -https?:\/\/([^\/]*\.)?akissbetweenthelegs-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?al-femminile\.freespase\.info -https?:\/\/([^\/]*\.)?al4a-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?alabamamortgage-x\.com -https?:\/\/([^\/]*\.)?alalal\.myrealboard\.com -https?:\/\/([^\/]*\.)?alaldalli\.naturalforum\.net -https?:\/\/([^\/]*\.)?alanthomashairsalon\.com -https?:\/\/([^\/]*\.)?alarcit\.dynamicbb\.com -https?:\/\/([^\/]*\.)?alaskamortgage-x\.com -https?:\/\/([^\/]*\.)?alba-boob-jessica-slip\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?albergo-economici-rimini\.ll33\.info -https?:\/\/([^\/]*\.)?albergo-parigi\.freespase\.info -https?:\/\/([^\/]*\.)?albums-proshots\.com -https?:\/\/([^\/]*\.)?alchita\.goodforum\.net -https?:\/\/([^\/]*\.)?alchita\.grafbb\.com -https?:\/\/([^\/]*\.)?aldabridgeman\.site\.io -https?:\/\/([^\/]*\.)?aldarta\.discutforum\.com -https?:\/\/([^\/]*\.)?aldomc\.jc\.pl -https?:\/\/([^\/]*\.)?aldronboc\.lightbb\.com -https?:\/\/([^\/]*\.)?aleluja\.asp2\.cz -https?:\/\/([^\/]*\.)?alerou\.su\.pl -https?:\/\/([^\/]*\.)?aleteta\.com -https?:\/\/([^\/]*\.)?alexaner\.etowns\.net -https?:\/\/([^\/]*\.)?alexmovies-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?alhilalb\.forumzen\.com -https?:\/\/([^\/]*\.)?alias\.asp2\.cz -https?:\/\/([^\/]*\.)?aliyah\.phpbbx\.de -https?:\/\/([^\/]*\.)?aliza\.phpbbx\.de -https?:\/\/([^\/]*\.)?all-rnb\.com -https?:\/\/([^\/]*\.)?all4sexonline\.biz -https?:\/\/([^\/]*\.)?allabout-casino\.com -https?:\/\/([^\/]*\.)?allabout-poker\.com -https?:\/\/([^\/]*\.)?allabout-poker\.net -https?:\/\/([^\/]*\.)?allabout\.onplex\.de -https?:\/\/([^\/]*\.)?allaboutx\.freeasyhost\.com -https?:\/\/([^\/]*\.)?allaboutx\.hostingclub\.de -https?:\/\/([^\/]*\.)?allaboutx\.m5t\.de -https?:\/\/([^\/]*\.)?allall\.org -https?:\/\/([^\/]*\.)?allcamsguide\.info -https?:\/\/([^\/]*\.)?allcars\.digitalzones\.com -https?:\/\/([^\/]*\.)?allcheapchat\.info -https?:\/\/([^\/]*\.)?alldep\.com -https?:\/\/([^\/]*\.)?allearjah\.com -https?:\/\/([^\/]*\.)?alledasar\.com -https?:\/\/([^\/]*\.)?allegra\.1\.p2l\.info -https?:\/\/([^\/]*\.)?allegradgeneric\.sblog\.cz -https?:\/\/([^\/]*\.)?allen-edmonds-shoes\.info -https?:\/\/([^\/]*\.)?allergy\.1\.p2l\.info -https?:\/\/([^\/]*\.)?allforsale\.org -https?:\/\/([^\/]*\.)?allgoods\.be -https?:\/\/([^\/]*\.)?allkinds-pills\.com -https?:\/\/([^\/]*\.)?allkoholik\.php5\.cz -https?:\/\/([^\/]*\.)?alllb\.com -https?:\/\/([^\/]*\.)?alllf\.com -https?:\/\/([^\/]*\.)?alllk\.com -https?:\/\/([^\/]*\.)?alllm\.com -https?:\/\/([^\/]*\.)?allln\.com -https?:\/\/([^\/]*\.)?alllp\.com -https?:\/\/([^\/]*\.)?allnewfilm\.com -https?:\/\/([^\/]*\.)?allprintposters\.com -https?:\/\/([^\/]*\.)?allsitesaccess-com-awfxbo7d\.blogspot\.com -https?:\/\/([^\/]*\.)?alltel-ringtonedyd\.blogspot\.com -https?:\/\/([^\/]*\.)?allvids-net-k0bdg\.blogspot\.com -https?:\/\/([^\/]*\.)?allvids-net-kd0pe5\.blogspot\.com -https?:\/\/([^\/]*\.)?allweb2006\.info -https?:\/\/([^\/]*\.)?almgarc\.com -https?:\/\/([^\/]*\.)?alneja\.goodbb\.net -https?:\/\/([^\/]*\.)?alnm5\.fr33webhost\.com -https?:\/\/([^\/]*\.)?alona\.phpbbx\.de -https?:\/\/([^\/]*\.)?alonso\.stabilt\.se -https?:\/\/([^\/]*\.)?alphabadgirls\.info -https?:\/\/([^\/]*\.)?alprazolam-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?alprazolam-xanax\.com -https?:\/\/([^\/]*\.)?alpy01\.republika\.pl -https?:\/\/([^\/]*\.)?alracmon\.zikforum\.com -https?:\/\/([^\/]*\.)?altacebuy\.page\.to -https?:\/\/([^\/]*\.)?altacebuycheap\.gameday\.de -https?:\/\/([^\/]*\.)?altacebuygeneric\.cut\.by -https?:\/\/([^\/]*\.)?altacegeneric\.dive\.to -https?:\/\/([^\/]*\.)?altacegenericcheap\.notrix\.at -https?:\/\/([^\/]*\.)?altazel\.blogcu\.com -https?:\/\/([^\/]*\.)?altrocvi\.jc\.pl -https?:\/\/([^\/]*\.)?altse\.com -https?:\/\/([^\/]*\.)?always-credit\.com -https?:\/\/([^\/]*\.)?always-drugs\.com -https?:\/\/([^\/]*\.)?always-medications\.com -https?:\/\/([^\/]*\.)?alyssa-teen\.freeinsite\.net -https?:\/\/([^\/]*\.)?amal-fucking-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?amateur-ass-free-gallery\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?amateur-atk-hairy-heather-natural\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-black-naked\.protime\.in\.ua -https?:\/\/([^\/]*\.)?amateur-blonde-cock\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-boob-bouncing\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?amateur-contacto-sexo\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?amateur-cum-queen\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-foto-free-nude\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-free-erotic\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?amateur-free-grannie-picture-xxx\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-free-indian-page-sex\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?amateur-free-man-naked\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?amateur-free-sex-xxx\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?amateur-fucking-milf\.protime\.in\.ua -https?:\/\/([^\/]*\.)?amateur-fucking-public\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-hard-com-a4w\.blogspot\.com -https?:\/\/([^\/]*\.)?amateur-home-photo\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-index-nude\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?amateur-interracial-porn\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?amateur-man-naked\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-model-for-hire\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-nympho-wife-site\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-pages-porn\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?amateur-porn-clip-blog446\.blogspot\.com -https?:\/\/([^\/]*\.)?amateur-porn-clip-blogqh1\.blogspot\.com -https?:\/\/([^\/]*\.)?amateur-porn-clip-blogrv6\.blogspot\.com -https?:\/\/([^\/]*\.)?amateur-porn-xxx\.medved\.od\.ua -https?:\/\/([^\/]*\.)?amateur-pussy-redhead\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?amateur-teen-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?amateur-teen-sex-movie\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?amateurcurves-com-silib\.blogspot\.com -https?:\/\/([^\/]*\.)?amateurcurves-com-t7zh3\.blogspot\.com -https?:\/\/([^\/]*\.)?amazingcum-com-bd7uu0\.blogspot\.com -https?:\/\/([^\/]*\.)?ambien-online\.presteert\.nl -https?:\/\/([^\/]*\.)?ambien\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ambien\.conto\.pl -https?:\/\/([^\/]*\.)?ambien\.esguay\.com -https?:\/\/([^\/]*\.)?ambien\.fws1\.com -https?:\/\/([^\/]*\.)?ambien\.goodpharm\.info -https?:\/\/([^\/]*\.)?ambien\.hav\.pl -https?:\/\/([^\/]*\.)?ambien\.presteert\.nl -https?:\/\/([^\/]*\.)?ambien\.skocz\.net -https?:\/\/([^\/]*\.)?ambiena\.myblogvoice\.com -https?:\/\/([^\/]*\.)?ambienpills\.coz\.in -https?:\/\/([^\/]*\.)?ambienrx\.weboficial\.com -https?:\/\/([^\/]*\.)?ambiens\.ru\.tf -https?:\/\/([^\/]*\.)?amcq8\.szm\.sk -https?:\/\/([^\/]*\.)?amenities\.8tt\.org -https?:\/\/([^\/]*\.)?americansrebuildingneworleans\.com -https?:\/\/([^\/]*\.)?amicizia-incontri\.bb22\.info -https?:\/\/([^\/]*\.)?amico-maria\.freespase\.info -https?:\/\/([^\/]*\.)?amidnitesunset\.blogspot\.com -https?:\/\/([^\/]*\.)?amino-vera\.blogspot\.com -https?:\/\/([^\/]*\.)?amira\.phpbbx\.de -https?:\/\/([^\/]*\.)?amjrs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?amoxil-500mg\.micrositehosting\.info -https?:\/\/([^\/]*\.)?ampposo\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?amstre\.com -https?:\/\/([^\/]*\.)?amyhunt\.com -https?:\/\/([^\/]*\.)?amyjkb\.blogspot\.com -https?:\/\/([^\/]*\.)?anacondasex\.info -https?:\/\/([^\/]*\.)?anal-bareback-cum-fucking-shot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?anal-coks-fuck-huge-mega\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?anal-cum-farting\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?anal-cum-fuck\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?anal-dildo-bondage\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-ebony-free-pic\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-ebony-fucking\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-first-pic-time\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-first-time\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-free-mature-sex\.medved\.od\.ua -https?:\/\/([^\/]*\.)?anal-g\.com -https?:\/\/([^\/]*\.)?anal-gang-bang-xxx\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-hard-male\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-hardcore-max-sex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?anal-painful-virgin\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?anal-self-penetration\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?anal-sex-teen-tgp\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?anal-sex-video-x-g-g\.blogspot\.com -https?:\/\/([^\/]*\.)?anal-sex-virgin\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?anal-shemale-site\.protime\.in\.ua -https?:\/\/([^\/]*\.)?analsexeum\.blogspot\.com -https?:\/\/([^\/]*\.)?anath\.phpbbx\.de -https?:\/\/([^\/]*\.)?anbipbm\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?andrewsaluk\.com -https?:\/\/([^\/]*\.)?andy-roddick-dick\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?angelcakez\.blogspot\.com -https?:\/\/([^\/]*\.)?angry-sister\.blogspot\.com -https?:\/\/([^\/]*\.)?anicke\.republika\.pl -https?:\/\/([^\/]*\.)?anime-art-gay\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?anime-free-hardcore-info-remember\.medved\.od\.ua -https?:\/\/([^\/]*\.)?anime-porn-clip-blog5a7\.blogspot\.com -https?:\/\/([^\/]*\.)?ann-angel-tpi\.blogspot\.com -https?:\/\/([^\/]*\.)?anna-morgan\.blogspot\.com -https?:\/\/([^\/]*\.)?annqy\.szm\.sk -https?:\/\/([^\/]*\.)?annugel--h\.blogspot\.com -https?:\/\/([^\/]*\.)?annuncio-lavoro-milano\.host24h\.info -https?:\/\/([^\/]*\.)?annuncio-lavoro-segretaria\.freehostss\.info -https?:\/\/([^\/]*\.)?annuncio-online\.heroez\.info -https?:\/\/([^\/]*\.)?anteyi\.cn -https?:\/\/([^\/]*\.)?anthemboy8\.blogspot\.com -https?:\/\/([^\/]*\.)?anti-aging-skin\.hotmail\.ru -https?:\/\/([^\/]*\.)?anti_agin_skin\.chat\.ru -https?:\/\/([^\/]*\.)?anti_aging_skin\.chat\.ru -https?:\/\/([^\/]*\.)?antidepressants\.1\.p2l\.info -https?:\/\/([^\/]*\.)?anus-lick-right-way\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?anw66\.blogspot\.com -https?:\/\/([^\/]*\.)?anxiety\.1\.p2l\.info -https?:\/\/([^\/]*\.)?anylight4u\.com -https?:\/\/([^\/]*\.)?aosk\.com -https?:\/\/([^\/]*\.)?apesapoppin\.blogspot\.com -https?:\/\/([^\/]*\.)?apextwin\.ifrance\.com -https?:\/\/([^\/]*\.)?apextwin\.php5\.cz -https?:\/\/([^\/]*\.)?aponte\.net -https?:\/\/([^\/]*\.)?appartamento-roma-vacanza\.ll11\.info -https?:\/\/([^\/]*\.)?applyforit\.ucsd\.edu -https?:\/\/([^\/]*\.)?apxgmlp\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?arbundar\.forumzen\.com -https?:\/\/([^\/]*\.)?arcade\.ya\.com -https?:\/\/([^\/]*\.)?areaseo\.com -https?:\/\/([^\/]*\.)?arent-boot-made-these-walkin\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?argentina-gay-travel\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ariella\.phpbbx\.de -https?:\/\/([^\/]*\.)?arielle\.phpbbx\.de -https?:\/\/([^\/]*\.)?arinastes\.com -https?:\/\/([^\/]*\.)?aristocort\.4\.pl -https?:\/\/([^\/]*\.)?arizonamortgage-x\.com -https?:\/\/([^\/]*\.)?arjj2\.szm\.sk -https?:\/\/([^\/]*\.)?arketon24\.blogspot\.com -https?:\/\/([^\/]*\.)?armyanch\.galeon\.com -https?:\/\/([^\/]*\.)?arosson\.com -https?:\/\/([^\/]*\.)?arsrz\.szm\.sk -https?:\/\/([^\/]*\.)?art-xxx\.com -https?:\/\/([^\/]*\.)?artbennett\.net -https?:\/\/([^\/]*\.)?arthuriacasino\.com -https?:\/\/([^\/]*\.)?artnposter\.com -https?:\/\/([^\/]*\.)?arwuudes\.forumzen\.com -https?:\/\/([^\/]*\.)?arwuuzet\.forumzen\.com -https?:\/\/([^\/]*\.)?aryls\.info -https?:\/\/([^\/]*\.)?asaearh\.blogspot\.com -https?:\/\/([^\/]*\.)?asaia\.blogspot\.com -https?:\/\/([^\/]*\.)?asas3\.com -https?:\/\/([^\/]*\.)?ascht\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?asdiaalr\.forumzen\.com -https?:\/\/([^\/]*\.)?aselfbas\.forumzen\.com -https?:\/\/([^\/]*\.)?asfreyl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ashkenazi\.phpbbx\.de -https?:\/\/([^\/]*\.)?ashlee--serena\.freeinsite\.net -https?:\/\/([^\/]*\.)?ashlee-clip-free-hand-job\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?asian-bang-gang\.protime\.in\.ua -https?:\/\/([^\/]*\.)?asian-cum-sucker\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?asian-download-free-porn-video\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?asian-facial\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?asian-fucking-man-woman\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?asian-girl-anal\.medved\.od\.ua -https?:\/\/([^\/]*\.)?asian-giving-blow-job\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?asian-mmf\.medved\.od\.ua -https?:\/\/([^\/]*\.)?asian-porn-clip-info6g5\.blogspot\.com -https?:\/\/([^\/]*\.)?asian-pussysjy\.blogspot\.com -https?:\/\/([^\/]*\.)?asian-spread-leg\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?asian-teens\.freeinsite\.net -https?:\/\/([^\/]*\.)?asiansexpvx\.blogspot\.com -https?:\/\/([^\/]*\.)?asjnquaq\.com -https?:\/\/([^\/]*\.)?asnmeq\.com -https?:\/\/([^\/]*\.)?asrendes\.forumzen\.com -https?:\/\/([^\/]*\.)?asricrac\.forumzen\.com -https?:\/\/([^\/]*\.)?ass-bare-screensaver-sexy\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?ass-big-black-pussy\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ass-big-free-woman\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?ass-bitch-hot\.protime\.in\.ua -https?:\/\/([^\/]*\.)?ass-cock-large-nice-tit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?ass-cum-gay-hole\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ass-cute-fat\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ass-day-great-its-somebodys-whop\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ass-dildo-in-man-use\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ass-free-huge-movie-phat-tit\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?ass-free-mature-photo\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?ass-free-naked\.protime\.in\.ua -https?:\/\/([^\/]*\.)?ass-fucked-porn-star\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ass-hit-up-yo\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?ass-hole-test\.protime\.in\.ua -https?:\/\/([^\/]*\.)?ass-lick-slut-that\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?ass-man-photo-rumprater-com-woman\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ass-naked-pic-woman-young\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?ass-sa\.com -https?:\/\/([^\/]*\.)?ass-traffic-thumb\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?assfilled-cofon\.blogspot\.com -https?:\/\/([^\/]*\.)?assfucking-video\.hereandnow0\.com -https?:\/\/([^\/]*\.)?assicurazione-moto\.freehostss\.info -https?:\/\/([^\/]*\.)?asslick-free\.protime\.in\.ua -https?:\/\/([^\/]*\.)?associate1degree\.chat\.ru -https?:\/\/([^\/]*\.)?assparade-com-cdr6rm3\.blogspot\.com -https?:\/\/([^\/]*\.)?astmiv\.com -https?:\/\/([^\/]*\.)?astsam\.com -https?:\/\/([^\/]*\.)?aswsu-ddp\.wsu\.edu -https?:\/\/([^\/]*\.)?atar5\.szm\.sk -https?:\/\/([^\/]*\.)?atashi-tada\.blogspot\.com -https?:\/\/([^\/]*\.)?atchina\.com\.cn -https?:\/\/([^\/]*\.)?atenololhqs\.blogspot\.com -https?:\/\/([^\/]*\.)?atetech\.com\.cn -https?:\/\/([^\/]*\.)?athenaindia\.com -https?:\/\/([^\/]*\.)?ativan\.hav\.pl -https?:\/\/([^\/]*\.)?ativan1\.skocz\.net -https?:\/\/([^\/]*\.)?ativans\.eu\.tf -https?:\/\/([^\/]*\.)?atkmodels-com-g2mc2j\.blogspot\.com -https?:\/\/([^\/]*\.)?atkmodels-h6\.blogspot\.com -https?:\/\/([^\/]*\.)?atmoc\.com -https?:\/\/([^\/]*\.)?atrapy\.pl -https?:\/\/([^\/]*\.)?auabkc3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?audibookclub\.info -https?:\/\/([^\/]*\.)?audition-mature-sexy-video-woman\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?audx4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?auejds\.com -https?:\/\/([^\/]*\.)?aufx8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?augmentin\.4\.pl -https?:\/\/([^\/]*\.)?augmentinbuy\.megapage\.de -https?:\/\/([^\/]*\.)?augmentinbuygeneric\.playsite\.de -https?:\/\/([^\/]*\.)?augmentincheapbuy\.mine\.at -https?:\/\/([^\/]*\.)?augmentincheapgeneric\.vacations\.to -https?:\/\/([^\/]*\.)?augmentingeneric\.dive\.to -https?:\/\/([^\/]*\.)?aumkryl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?auntmia-ivmo1ckhbf\.blogspot\.com -https?:\/\/([^\/]*\.)?auqkz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?aurar\.info -https?:\/\/([^\/]*\.)?aurney\.blogspot\.com -https?:\/\/([^\/]*\.)?aurora-snow-double-anal\.medved\.od\.ua -https?:\/\/([^\/]*\.)?auto-insurance-2007\.com -https?:\/\/([^\/]*\.)?auto-insurance-quote\.100freemb\.com -https?:\/\/([^\/]*\.)?auto-occasioni\.bb22\.info -https?:\/\/([^\/]*\.)?autoere\.info -https?:\/\/([^\/]*\.)?autoinsurancevyo\.blogspot\.com -https?:\/\/([^\/]*\.)?automobileliberty\.cn -https?:\/\/([^\/]*\.)?ava-devine-friend-hot-mom\.protime\.in\.ua -https?:\/\/([^\/]*\.)?avalonhyip\.com -https?:\/\/([^\/]*\.)?avenue-x\.cn -https?:\/\/([^\/]*\.)?avoidcar\.info -https?:\/\/([^\/]*\.)?awardspace\.biz -https?:\/\/([^\/]*\.)?awardspace\.info -https?:\/\/([^\/]*\.)?awerda\.com -https?:\/\/([^\/]*\.)?aweu\.cabspace\.com -https?:\/\/([^\/]*\.)?axfa5\.szm\.sk -https?:\/\/([^\/]*\.)?axnc0\.szm\.sk -https?:\/\/([^\/]*\.)?axqui\.szm\.sk -https?:\/\/([^\/]*\.)?axtu7\.szm\.sk -https?:\/\/([^\/]*\.)?ayann\.dl\.pl -https?:\/\/([^\/]*\.)?aynippa\.blogspot\.com -https?:\/\/([^\/]*\.)?azn-chickadee\.blogspot\.com -https?:\/\/([^\/]*\.)?azu-erlove\.blogspot\.com -https?:\/\/([^\/]*\.)?azur3skye\.blogspot\.com -https?:\/\/([^\/]*\.)?azzacash\.com -https?:\/\/([^\/]*\.)?b-b-free-hentai-movie-j\.blogspot\.com -https?:\/\/([^\/]*\.)?b-d-download-porn-movie-n\.blogspot\.com -https?:\/\/([^\/]*\.)?b\.cn01\.hn\.org -https?:\/\/([^\/]*\.)?babe-cam-filipina-web\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?babe-dutch-erotic-lingerie\.protime\.in\.ua -https?:\/\/([^\/]*\.)?babe-forum-picture-porn-star\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?babe-hot-mature\.medved\.od\.ua -https?:\/\/([^\/]*\.)?babesglamour-com-jotut\.blogspot\.com -https?:\/\/([^\/]*\.)?babesglamour-com-mp21gz\.blogspot\.com -https?:\/\/([^\/]*\.)?babibian\.dl\.pl -https?:\/\/([^\/]*\.)?babooth\.ifrance\.com -https?:\/\/([^\/]*\.)?babyhere\.net -https?:\/\/([^\/]*\.)?bachelor1degree\.chat\.ru -https?:\/\/([^\/]*\.)?back-bare-cum-dripping-fucked-humiliated-pussy-wealthy-woman\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?backroom-facial-margarita\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bad-butt-byron-rub\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bad-butt-byrons-rub\.protime\.in\.ua -https?:\/\/([^\/]*\.)?bad-credit-home-loanksl\.blogspot\.com -https?:\/\/([^\/]*\.)?badassteens-com-gnvrh6\.blogspot\.com -https?:\/\/([^\/]*\.)?badassteens-com-gyhb23dyw\.blogspot\.com -https?:\/\/([^\/]*\.)?badgirlsblog-com-dcfmx8n2p\.blogspot\.com -https?:\/\/([^\/]*\.)?badipex\.gog\.pl -https?:\/\/([^\/]*\.)?bahatoca\.org -https?:\/\/([^\/]*\.)?baikal-guide\.com -https?:\/\/([^\/]*\.)?baikal-hotel\.info -https?:\/\/([^\/]*\.)?baikal-shop\.com -https?:\/\/([^\/]*\.)?baikal-tour\.biz -https?:\/\/([^\/]*\.)?baikalguide\.com -https?:\/\/([^\/]*\.)?baikalshop\.info -https?:\/\/([^\/]*\.)?bakadeshi\.ifrance\.com -https?:\/\/([^\/]*\.)?bakamandy\.blogspot\.com -https?:\/\/([^\/]*\.)?bambulka\.info -https?:\/\/([^\/]*\.)?bamigreenhouse\.com\.cn -https?:\/\/([^\/]*\.)?bamima\.com -https?:\/\/([^\/]*\.)?bandaoti\.dzsc\.com -https?:\/\/([^\/]*\.)?bang-clip-gang-gang-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?bang-gallery-gang-mature-woman\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?bang-gang-sex-tokyo\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?bank-of-america-credit-cardtja\.blogspot\.com -https?:\/\/([^\/]*\.)?bank-of-fetish-resource\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?banns\.info -https?:\/\/([^\/]*\.)?baqaek9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?baquma\.com -https?:\/\/([^\/]*\.)?bareback-fuck-gay\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?barefootmaniacs-com-rpw1i1\.blogspot\.com -https?:\/\/([^\/]*\.)?barely18-teens-com-sin\.blogspot\.com -https?:\/\/([^\/]*\.)?barrystickets\.com -https?:\/\/([^\/]*\.)?bartik\.asp2\.cz -https?:\/\/([^\/]*\.)?barulena\.jconserv\.net -https?:\/\/([^\/]*\.)?basalvar\.dl\.pl -https?:\/\/([^\/]*\.)?basdeler\.su\.pl -https?:\/\/([^\/]*\.)?basdombo\.dl\.pl -https?:\/\/([^\/]*\.)?baslachi\.lightbb\.com -https?:\/\/([^\/]*\.)?baslalhi\.myrealboard\.com -https?:\/\/([^\/]*\.)?baslarol\.dl\.pl -https?:\/\/([^\/]*\.)?basmonzel\.dl\.pl -https?:\/\/([^\/]*\.)?baspaser\.zikforum\.com -https?:\/\/([^\/]*\.)?baspasrac\.dl\.pl -https?:\/\/([^\/]*\.)?baspasvi\.cultureforum\.net -https?:\/\/([^\/]*\.)?basracchi\.dl\.pl -https?:\/\/([^\/]*\.)?basteg\.com -https?:\/\/([^\/]*\.)?bastim\.com -https?:\/\/([^\/]*\.)?bastnecli\.frbb\.net -https?:\/\/([^\/]*\.)?bastre\.com -https?:\/\/([^\/]*\.)?bastru\.com -https?:\/\/([^\/]*\.)?basuma\.com -https?:\/\/([^\/]*\.)?bath-hardcore-teen\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bath-product\.hotmail\.ru -https?:\/\/([^\/]*\.)?bath-product\.pochta\.ru -https?:\/\/([^\/]*\.)?bath_product\.chat\.ru -https?:\/\/([^\/]*\.)?bathroom-fuck\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?bbcialis\.ovp\.pl -https?:\/\/([^\/]*\.)?bbfast\.com -https?:\/\/([^\/]*\.)?bbndsxtg-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?bbs\.cuesta\.edu -https?:\/\/([^\/]*\.)?bbsporn\.com -https?:\/\/([^\/]*\.)?bbuybaliumonline\.ovp\.pl -https?:\/\/([^\/]*\.)?bbuycialisonline\.ovp\.pl -https?:\/\/([^\/]*\.)?bbuylevitraonline\.ovp\.pl -https?:\/\/([^\/]*\.)?bbuytram\.blogcu\.com -https?:\/\/([^\/]*\.)?bbuytramadolonline\.ovp\.pl -https?:\/\/([^\/]*\.)?bbuyviagraonlin\.forumlivre\.com -https?:\/\/([^\/]*\.)?bbw-busty\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?bbw-club-in-san-diego\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bbw-old\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bbw-porn-clip-infotir\.blogspot\.com -https?:\/\/([^\/]*\.)?bcam8\.szm\.sk -https?:\/\/([^\/]*\.)?bcdh\.cn -https?:\/\/([^\/]*\.)?bcialis\.c24\.pl -https?:\/\/([^\/]*\.)?bcxz8\.szm\.sk -https?:\/\/([^\/]*\.)?bdsm-lesbian-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?bdsm-personals-houston\.protime\.in\.ua -https?:\/\/([^\/]*\.)?bdsm-toy\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bdsm-video\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bdsm-vintage\.protime\.in\.ua -https?:\/\/([^\/]*\.)?bdsmvideos-net-wb55nc\.blogspot\.com -https?:\/\/([^\/]*\.)?bdsmvideos-net-wfa5qu\.blogspot\.com -https?:\/\/([^\/]*\.)?bdsmvideos-net-wvckcgq2o\.blogspot\.com -https?:\/\/([^\/]*\.)?beaffaired\.com -https?:\/\/([^\/]*\.)?bear-build-gay\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bear-chubby-young\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?bear-terry\.blogspot\.com -https?:\/\/([^\/]*\.)?beastiality-live\.com -https?:\/\/([^\/]*\.)?beautiful-ass-pic\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?beautiful-blonde-pole-dancer\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?beautifulzdrawing\.sex-systems\.com -https?:\/\/([^\/]*\.)?beautyass-com-e1ca\.blogspot\.com -https?:\/\/([^\/]*\.)?becloudsiss\.thehostcity\.com -https?:\/\/([^\/]*\.)?bedspread-king\.keckins\.be -https?:\/\/([^\/]*\.)?begcrucial\.justfree\.com -https?:\/\/([^\/]*\.)?beginninghouse\.com -https?:\/\/([^\/]*\.)?begot\.info -https?:\/\/([^\/]*\.)?beijing-door\.cn -https?:\/\/([^\/]*\.)?beijingimpression\.com -https?:\/\/([^\/]*\.)?bekahboo3\.blogspot\.com -https?:\/\/([^\/]*\.)?beldam\.dns1\.us -https?:\/\/([^\/]*\.)?bemix\.info -https?:\/\/([^\/]*\.)?benixon\.dl\.pl -https?:\/\/([^\/]*\.)?benoit-r86\.blogspot\.com -https?:\/\/([^\/]*\.)?benson-g68a\.blogspot\.com -https?:\/\/([^\/]*\.)?benz-h51\.blogspot\.com -https?:\/\/([^\/]*\.)?beqy\.org -https?:\/\/([^\/]*\.)?berenupa\.info -https?:\/\/([^\/]*\.)?berkeley-mdi56f\.blogspot\.com -https?:\/\/([^\/]*\.)?berlin-o3g\.blogspot\.com -https?:\/\/([^\/]*\.)?bernie-b18\.blogspot\.com -https?:\/\/([^\/]*\.)?berrycow\.blogspot\.com -https?:\/\/([^\/]*\.)?beryl-c3\.blogspot\.com -https?:\/\/([^\/]*\.)?best-hotels-inns\.com -https?:\/\/([^\/]*\.)?best-porn-clip-zone0mp\.blogspot\.com -https?:\/\/([^\/]*\.)?best2006\.info -https?:\/\/([^\/]*\.)?best568\.com -https?:\/\/([^\/]*\.)?bestaftor\.com -https?:\/\/([^\/]*\.)?bestallmed\.info -https?:\/\/([^\/]*\.)?bestbuyonlinebooks\.com -https?:\/\/([^\/]*\.)?bestcityhal\.com -https?:\/\/([^\/]*\.)?bestcyberfish\.com -https?:\/\/([^\/]*\.)?bestfreegift\.com -https?:\/\/([^\/]*\.)?bestgames-winner\.com -https?:\/\/([^\/]*\.)?besthallet\.com -https?:\/\/([^\/]*\.)?bestinternetexplorer\.info -https?:\/\/([^\/]*\.)?bestlowmortgagerates\.com -https?:\/\/([^\/]*\.)?bestmaiden\.com -https?:\/\/([^\/]*\.)?bestmercedesbez\.info -https?:\/\/([^\/]*\.)?bestmitsubishiparts\.info -https?:\/\/([^\/]*\.)?bestmp3online\.com -https?:\/\/([^\/]*\.)?bestmp3online\.net -https?:\/\/([^\/]*\.)?bestofe\.com -https?:\/\/([^\/]*\.)?bestonline-medication\.com -https?:\/\/([^\/]*\.)?bestonline-shopping\.com -https?:\/\/([^\/]*\.)?bestorlean\.com -https?:\/\/([^\/]*\.)?bestpricebentley\.info -https?:\/\/([^\/]*\.)?bestsellsite\.com -https?:\/\/([^\/]*\.)?bestxxxanal-1\.tripod\.com -https?:\/\/([^\/]*\.)?bestyourown\.info -https?:\/\/([^\/]*\.)?beta-dg174ivc\.blogspot\.com -https?:\/\/([^\/]*\.)?beth-t6h6\.blogspot\.com -https?:\/\/([^\/]*\.)?bethany-ezjn\.blogspot\.com -https?:\/\/([^\/]*\.)?betsie-w4080\.blogspot\.com -https?:\/\/([^\/]*\.)?betsy-rgxm2e\.blogspot\.com -https?:\/\/([^\/]*\.)?better\.ws -https?:\/\/([^\/]*\.)?betty-gy\.blogspot\.com -https?:\/\/([^\/]*\.)?beverly-hax82jc3md\.blogspot\.com -https?:\/\/([^\/]*\.)?bevjy\.szm\.sk -https?:\/\/([^\/]*\.)?beyonce-knowles-nude\.blogspot\.com -https?:\/\/([^\/]*\.)?bfekd\.szm\.sk -https?:\/\/([^\/]*\.)?bfgtxs4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?bfi-k5xk7bnu\.blogspot\.com -https?:\/\/([^\/]*\.)?bfnh2\.szm\.sk -https?:\/\/([^\/]*\.)?bfqn\.com -https?:\/\/([^\/]*\.)?bfvsa\.szm\.sk -https?:\/\/([^\/]*\.)?bgpkvcr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?bhncvw-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?bhqay\.fr33webhost\.com -https?:\/\/([^\/]*\.)?bi-britney-spears-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?bi-whales\.blogspot\.com -https?:\/\/([^\/]*\.)?bi-xxx-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?bianca-i7yj\.blogspot\.com -https?:\/\/([^\/]*\.)?bianpinqi\.dzsc\.com -https?:\/\/([^\/]*\.)?bicx7\.szm\.sk -https?:\/\/([^\/]*\.)?bid-sohardcore-com\.blogspot\.com -https?:\/\/([^\/]*\.)?bidsex\.net -https?:\/\/([^\/]*\.)?big-big-clit-tit\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?big-bitch-booty-fucked-getting\.medved\.od\.ua -https?:\/\/([^\/]*\.)?big-black-cock-movie-clip\.medved\.od\.ua -https?:\/\/([^\/]*\.)?big-black-cock-pic\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?big-black-dick-fat-long\.medved\.od\.ua -https?:\/\/([^\/]*\.)?big-blonde-mature-tit\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-blonde-teen-tit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-body-fuck\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?big-boob-huge-large\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?big-bouncing-boob-movie\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?big-butt-shemale\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?big-cock-gay-guy-have\.protime\.in\.ua -https?:\/\/([^\/]*\.)?big-cock-hard-sex\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-cum-cum-shot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?big-cum-movie-swallow-tit-xxx\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-dick-fuck-hot-love-sexy-shemale-that\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?big-ebony-free-gallery-tit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-fat-boob\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-free-lesbian-movie-online-porn\.protime\.in\.ua -https?:\/\/([^\/]*\.)?big-huge-gigantic-boob\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?big-leg-babes\.medved\.od\.ua -https?:\/\/([^\/]*\.)?big-leg-nice\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?big-okfl\.blogspot\.com -https?:\/\/([^\/]*\.)?big-strap-on-dildo\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?big-tit-round-ass-jasmine\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?big-tit-round-ass-maria\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?big-tit-round-ass-picture\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?big-tits\.100freemb\.com -https?:\/\/([^\/]*\.)?big-titted-bitch\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big-titts-round-ass\.protime\.in\.ua -https?:\/\/([^\/]*\.)?big-young-cock\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?big\.de\.com -https?:\/\/([^\/]*\.)?bigapple\.dtdns\.net -https?:\/\/([^\/]*\.)?bigassadventure-com-g4lvyk\.blogspot\.com -https?:\/\/([^\/]*\.)?bigbird-aus\.blogspot\.com -https?:\/\/([^\/]*\.)?bigbreastlovers-com-suqoq\.blogspot\.com -https?:\/\/([^\/]*\.)?bigcockteenaddiction-com-km\.blogspot\.com -https?:\/\/([^\/]*\.)?bigcockteenaddiction-com-kpqf40\.blogspot\.com -https?:\/\/([^\/]*\.)?bigdog-b14q6mwev\.blogspot\.com -https?:\/\/([^\/]*\.)?bigfoot-c7l\.blogspot\.com -https?:\/\/([^\/]*\.)?bigfreesex-com-i2csy2\.blogspot\.com -https?:\/\/([^\/]*\.)?bigfreesex-com-subub\.blogspot\.com -https?:\/\/([^\/]*\.)?biggest-cock-thickest\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?biggest-dildo-fuck-world\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?biggiebestparis\.com -https?:\/\/([^\/]*\.)?biglietti-auguri\.net -https?:\/\/([^\/]*\.)?biglietto-augurio\.freehostss\.info -https?:\/\/([^\/]*\.)?bigmac-detr0i6y\.blogspot\.com -https?:\/\/([^\/]*\.)?bigman-tycdhe62d\.blogspot\.com -https?:\/\/([^\/]*\.)?bigmouthfuls-com-rvl7ep\.blogspot\.com -https?:\/\/([^\/]*\.)?bignaturals-com-w0\.blogspot\.com -https?:\/\/([^\/]*\.)?bigpenis\.digitalzones\.com -https?:\/\/([^\/]*\.)?bigtitpatrol-com-bub8db06d\.blogspot\.com -https?:\/\/([^\/]*\.)?bigtitsfans-com-rxc3ya\.blogspot\.com -https?:\/\/([^\/]*\.)?bigtitsroundasses-com-b6auqkd60\.blogspot\.com -https?:\/\/([^\/]*\.)?bigtitsroundasses-com-redeg\.blogspot\.com -https?:\/\/([^\/]*\.)?bigtitsroundasses-com-rj85t35x3\.blogspot\.com -https?:\/\/([^\/]*\.)?biib4\.szm\.sk -https?:\/\/([^\/]*\.)?bike-boot-dirt-riding\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bike-night\.grimgoe\.be -https?:\/\/([^\/]*\.)?bikini-wax\.phpbb2\.us -https?:\/\/([^\/]*\.)?bikinixxx-777now\.tripod\.com -https?:\/\/([^\/]*\.)?bilbo-ea47j\.blogspot\.com -https?:\/\/([^\/]*\.)?billy-r4negy1zwm\.blogspot\.com -https?:\/\/([^\/]*\.)?binky-hu\.blogspot\.com -https?:\/\/([^\/]*\.)?bio\.research\.ucsc\.edu -https?:\/\/([^\/]*\.)?biopharmasite\.biz -https?:\/\/([^\/]*\.)?biperq\.com -https?:\/\/([^\/]*\.)?bird-iay2s\.blogspot\.com -https?:\/\/([^\/]*\.)?birdie\.101freehost\.com -https?:\/\/([^\/]*\.)?birth-control\.1\.p2l\.info -https?:\/\/([^\/]*\.)?bisexual-cartoon-sex\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?bisexuals-cyber-fuck-horny-lesbian-lezzies-sex\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?bisson\.onthenet\.as -https?:\/\/([^\/]*\.)?bit-tit-lesbian\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?bitch-fat-hot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?bituka\.com -https?:\/\/([^\/]*\.)?bivxr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?bizaffiliatecenter\.com -https?:\/\/([^\/]*\.)?bizarre-love-triangle-lyric-by-frente\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bizarre-sex-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?bizhat\.com -https?:\/\/([^\/]*\.)?bizhome\.org -https?:\/\/([^\/]*\.)?bj-trj\.com -https?:\/\/([^\/]*\.)?bjaoyunhui\.com -https?:\/\/([^\/]*\.)?bjcee\.com -https?:\/\/([^\/]*\.)?bjicp\.com -https?:\/\/([^\/]*\.)?bjicp\.freewebpage\.org -https?:\/\/([^\/]*\.)?bjicp\.net -https?:\/\/([^\/]*\.)?bjicp\.org -https?:\/\/([^\/]*\.)?bjjinhan\.com -https?:\/\/([^\/]*\.)?bjlzhh\.com -https?:\/\/([^\/]*\.)?bjocmc3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?bjqmzx\.com -https?:\/\/([^\/]*\.)?bjrfinfo\.com -https?:\/\/([^\/]*\.)?bjsscc\.com\.cn -https?:\/\/([^\/]*\.)?bjtranslate\.com -https?:\/\/([^\/]*\.)?bjwczx\.com -https?:\/\/([^\/]*\.)?bjxiongfei\.com -https?:\/\/([^\/]*\.)?bjxunda\.com -https?:\/\/([^\/]*\.)?bjzktd\.com -https?:\/\/([^\/]*\.)?bkclamcp\.t35\.com -https?:\/\/([^\/]*\.)?bksar\.szm\.sk -https?:\/\/([^\/]*\.)?bkzor\.szm\.sk -https?:\/\/([^\/]*\.)?black-amateur-movie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-asian-anal\.protime\.in\.ua -https?:\/\/([^\/]*\.)?black-boob-sex\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?black-booty-movies-com-i0\.blogspot\.com -https?:\/\/([^\/]*\.)?black-butt-fat-gay-man\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?black-chick-fuck\.medved\.od\.ua -https?:\/\/([^\/]*\.)?black-chubby-ebony\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?black-clip-free-full-porn-blog4t5\.blogspot\.com -https?:\/\/([^\/]*\.)?black-cock-facial\.protime\.in\.ua -https?:\/\/([^\/]*\.)?black-cock-monster\.medved\.od\.ua -https?:\/\/([^\/]*\.)?black-cock-white-cunt\.protime\.in\.ua -https?:\/\/([^\/]*\.)?black-cum-shot-movie\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-domination-female-free-picture-teen\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?black-ebony-free-spreading-tgp\.medved\.od\.ua -https?:\/\/([^\/]*\.)?black-fat-boob\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?black-free-gay-man-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?black-gay-club\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?black-gay-sex-site\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?black-gay-teen-sex\.medved\.od\.ua -https?:\/\/([^\/]*\.)?black-hoe-hardcore-sex-gallery\.protime\.in\.ua -https?:\/\/([^\/]*\.)?black-hoe-that-suck-dick\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?black-jack-4u\.net -https?:\/\/([^\/]*\.)?black-jack-black\.blogspot\.com -https?:\/\/([^\/]*\.)?black-jacks\.us -https?:\/\/([^\/]*\.)?black-jeweler\.org -https?:\/\/([^\/]*\.)?black-leg-open-wide\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-lesbian-story\.protime\.in\.ua -https?:\/\/([^\/]*\.)?black-man-fucking-white-sluts\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-monster-boob\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-monster-cock-mpeg\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-on-blonde-sex-picture\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?black-porn-clip-news8bn\.blogspot\.com -https?:\/\/([^\/]*\.)?black-white-boob\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?black-wide-leg-pants\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?black-woman-sucking-dick\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blackmisheru\.50webs\.org -https?:\/\/([^\/]*\.)?blade\.host-page\.com -https?:\/\/([^\/]*\.)?blade1\.host-page\.com -https?:\/\/([^\/]*\.)?blade10\.host-page\.com -https?:\/\/([^\/]*\.)?blade2\.host-page\.com -https?:\/\/([^\/]*\.)?blade4\.host-page\.com -https?:\/\/([^\/]*\.)?blade5\.host-page\.com -https?:\/\/([^\/]*\.)?blade6\.host-page\.com -https?:\/\/([^\/]*\.)?blade7\.host-page\.com -https?:\/\/([^\/]*\.)?blade8\.host-page\.com -https?:\/\/([^\/]*\.)?blade9\.host-page\.com -https?:\/\/([^\/]*\.)?blagoslovenie\.rovno\.ua -https?:\/\/([^\/]*\.)?blanca-tf50a\.blogspot\.com -https?:\/\/([^\/]*\.)?blapt\.fr33webhost\.com -https?:\/\/([^\/]*\.)?blathe\.com -https?:\/\/([^\/]*\.)?blazer-wwn\.blogspot\.com -https?:\/\/([^\/]*\.)?blbdg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?blboys-com-wsq27\.blogspot\.com -https?:\/\/([^\/]*\.)?blbthxw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?blendermedia\.com -https?:\/\/([^\/]*\.)?blevitra\.ovp\.pl -https?:\/\/([^\/]*\.)?blmurphy\.dl\.pl -https?:\/\/([^\/]*\.)?blog-broken-leg\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?blog\.chinaz\.com -https?:\/\/([^\/]*\.)?blog\.donews\.com -https?:\/\/([^\/]*\.)?blog\.welover\.org -https?:\/\/([^\/]*\.)?blog\.yam\.com -https?:\/\/([^\/]*\.)?blog67\.fc2\.com -https?:\/\/([^\/]*\.)?blond\.12gbfree\.com -https?:\/\/([^\/]*\.)?blonde-bald-pussy\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?blonde-blow-job-mpeg\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?blonde-blow-job-tgp\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?blonde-boob-xxx\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blonde-color-hair-platinum\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?blonde-cunt-hair\.medved\.od\.ua -https?:\/\/([^\/]*\.)?blonde-dumb-not\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?blonde-firework-joke\.medved\.od\.ua -https?:\/\/([^\/]*\.)?blonde-lesbian-picture\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blonde-long-mature\.medved\.od\.ua -https?:\/\/([^\/]*\.)?blonde-model-twin\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?blonde-model-wallpaper\.protime\.in\.ua -https?:\/\/([^\/]*\.)?blonde-teen-bitch\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?blonde-who-fuck\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blonde-with-pink-dildo\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?blonde-xxx-trailer\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?blondie-g7hbdel\.blogspot\.com -https?:\/\/([^\/]*\.)?blondy-zipper\.iespana\.es -https?:\/\/([^\/]*\.)?blood-clots-cramp-leg\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?blotrer\.com -https?:\/\/([^\/]*\.)?blow-deep-free-job-throat\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?blow-free-gallery-in-job-place-public\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blow-gagging-job-pissing-sex\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?blow-job-movie-monster\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?blow-job-video-h-g-b\.blogspot\.com -https?:\/\/([^\/]*\.)?blowy\.info -https?:\/\/([^\/]*\.)?blskill\.dl\.pl -https?:\/\/([^\/]*\.)?blue-phentermine\.coz\.in -https?:\/\/([^\/]*\.)?bluebird-ki1h06\.blogspot\.com -https?:\/\/([^\/]*\.)?bluethumbs-com-wn7zce4\.blogspot\.com -https?:\/\/([^\/]*\.)?blurs\.info -https?:\/\/([^\/]*\.)?blurzed\.com -https?:\/\/([^\/]*\.)?bmoer\.szm\.sk -https?:\/\/([^\/]*\.)?bmoon-tech\.com -https?:\/\/([^\/]*\.)?bmzz6\.fr33webhost\.com -https?:\/\/([^\/]*\.)?bnhaq\.fr33webhost\.com -https?:\/\/([^\/]*\.)?bnme5\.szm\.sk -https?:\/\/([^\/]*\.)?bnsal\.szm\.sk -https?:\/\/([^\/]*\.)?bo-wheeling\.blogspot\.com -https?:\/\/([^\/]*\.)?boatf\.hostpresso\.com -https?:\/\/([^\/]*\.)?bob-mh5rq0\.blogspot\.com -https?:\/\/([^\/]*\.)?bobcat-asfz\.blogspot\.com -https?:\/\/([^\/]*\.)?bobcat-qete\.blogspot\.com -https?:\/\/([^\/]*\.)?boboczel\.fr-bb\.com -https?:\/\/([^\/]*\.)?boboer\.heavenforum\.com -https?:\/\/([^\/]*\.)?bocac\.blogcu\.com -https?:\/\/([^\/]*\.)?bocalolo\.bbgraf\.com -https?:\/\/([^\/]*\.)?bocbasdom\.su\.pl -https?:\/\/([^\/]*\.)?bocbasget\.bbfr\.net -https?:\/\/([^\/]*\.)?bocchiolo\.zj\.pl -https?:\/\/([^\/]*\.)?bocerleto\.winnerforum\.net -https?:\/\/([^\/]*\.)?bocletoget\.cultureforum\.net -https?:\/\/([^\/]*\.)?bocmonel\.lolforum\.net -https?:\/\/([^\/]*\.)?boctrocleto\.xa\.pl -https?:\/\/([^\/]*\.)?bodelel\.goodbb\.net -https?:\/\/([^\/]*\.)?bodsforthemods-com-txb\.blogspot\.com -https?:\/\/([^\/]*\.)?body-jewellery-piercing-4u\.com -https?:\/\/([^\/]*\.)?bodybuilding\.ncedly\.be -https?:\/\/([^\/]*\.)?bof-xxxvogue-net\.blogspot\.com -https?:\/\/([^\/]*\.)?bofuno-free-amateur-video\.blogspot\.com -https?:\/\/([^\/]*\.)?bogetric\.td\.pl -https?:\/\/([^\/]*\.)?bolds\.info -https?:\/\/([^\/]*\.)?bolgatalt\.naturalforum\.net -https?:\/\/([^\/]*\.)?bolle-xeno\.keckins\.be -https?:\/\/([^\/]*\.)?bologjack\.8tt\.org -https?:\/\/([^\/]*\.)?bomb9\.szm\.sk -https?:\/\/([^\/]*\.)?bon-rassi\.com -https?:\/\/([^\/]*\.)?bondage\.coz\.in -https?:\/\/([^\/]*\.)?bondagepaper-com-hzt1gq2iw\.blogspot\.com -https?:\/\/([^\/]*\.)?bondich\.blogspot\.com -https?:\/\/([^\/]*\.)?boneme-wn\.blogspot\.com -https?:\/\/([^\/]*\.)?boneprone-com-g0h\.blogspot\.com -https?:\/\/([^\/]*\.)?boner-dujo\.blogspot\.com -https?:\/\/([^\/]*\.)?bong-cx0\.blogspot\.com -https?:\/\/([^\/]*\.)?bong-tedo\.blogspot\.com -https?:\/\/([^\/]*\.)?bonjour-toxi\.blogspot\.com -https?:\/\/([^\/]*\.)?bonnie-pequ\.blogspot\.com -https?:\/\/([^\/]*\.)?bonnie-t00pf3j6\.blogspot\.com -https?:\/\/([^\/]*\.)?bonota\.blogcu\.com -https?:\/\/([^\/]*\.)?bonozel\.dl\.pl -https?:\/\/([^\/]*\.)?bontril\.1\.p2l\.info -https?:\/\/([^\/]*\.)?bontril\.1k\.pl -https?:\/\/([^\/]*\.)?boob-dome-com-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?boob-free-large-natural-teen\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boob-little-monster-vicki\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?boob-little-monster-vicki\.protime\.in\.ua -https?:\/\/([^\/]*\.)?boob-movie-piqe\.blogspot\.com -https?:\/\/([^\/]*\.)?boob-myspace-com-naked-site\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?boob-nude-pic-small\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boob-video-bb-bb-h\.blogspot\.com -https?:\/\/([^\/]*\.)?booble-com-orahxf\.blogspot\.com -https?:\/\/([^\/]*\.)?booble-com-ouq\.blogspot\.com -https?:\/\/([^\/]*\.)?booger-sure\.blogspot\.com -https?:\/\/([^\/]*\.)?boogie-sexu\.blogspot\.com -https?:\/\/([^\/]*\.)?boogie-wy64qty4x\.blogspot\.com -https?:\/\/([^\/]*\.)?bookcq\.com -https?:\/\/([^\/]*\.)?bookit-liwe\.blogspot\.com -https?:\/\/([^\/]*\.)?boole\.cs\.iastate\.edu -https?:\/\/([^\/]*\.)?boomer-hodo\.blogspot\.com -https?:\/\/([^\/]*\.)?booster-leto\.blogspot\.com -https?:\/\/([^\/]*\.)?boot-by-jessica-lyric-made-simpson-walking\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boot-camp-fitness-georgia-summer\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?boot-camp-for-out-of-control-teen\.medved\.od\.ua -https?:\/\/([^\/]*\.)?boot-cranston-shoes\.protime\.in\.ua -https?:\/\/([^\/]*\.)?boot-davidson-harley-riding\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?boot-disk-file\.medved\.od\.ua -https?:\/\/([^\/]*\.)?boot-dress-womens\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?boot-i-in-like-man-rubber\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boot-in-lancashire-maker-shoes\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boot-made-these-video-walkin-watch\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?boot-made-these-walking-who-wrote\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?boot-outlet-timberland\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?boot-riding-supplier\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?boot-these-walking\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bootsie-bihe\.blogspot\.com -https?:\/\/([^\/]*\.)?bootsie-ku10yu\.blogspot\.com -https?:\/\/([^\/]*\.)?booty-ebony-gallery\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?booty-ebony-info-remember-video\.medved\.od\.ua -https?:\/\/([^\/]*\.)?bootycollection-com-cf36tiy45\.blogspot\.com -https?:\/\/([^\/]*\.)?bootycollection-com-rekiz\.blogspot\.com -https?:\/\/([^\/]*\.)?boracboc\.su\.pl -https?:\/\/([^\/]*\.)?borelco\.dl\.pl -https?:\/\/([^\/]*\.)?borgshare\.org -https?:\/\/([^\/]*\.)?borjone\.com -https?:\/\/([^\/]*\.)?borncompany\.com -https?:\/\/([^\/]*\.)?boryc\.com -https?:\/\/([^\/]*\.)?boss-bitch-2\.protime\.in\.ua -https?:\/\/([^\/]*\.)?boss-coerced-fucking-into-wife\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?boss-suno\.blogspot\.com -https?:\/\/([^\/]*\.)?boston-hardcore-site-myspace-com\.protime\.in\.ua -https?:\/\/([^\/]*\.)?boston-heqe\.blogspot\.com -https?:\/\/([^\/]*\.)?bostvndaoe\.blogspot\.com -https?:\/\/([^\/]*\.)?botaer\.dl\.pl -https?:\/\/([^\/]*\.)?botast\.com -https?:\/\/([^\/]*\.)?botrdar\.goodforum\.net -https?:\/\/([^\/]*\.)?botrdar\.grafbb\.com -https?:\/\/([^\/]*\.)?boulder-facial-plastic-surgery\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?bov-smut-house-com\.blogspot\.com -https?:\/\/([^\/]*\.)?bovaral\.naturalforum\.net -https?:\/\/([^\/]*\.)?bowse\.info -https?:\/\/([^\/]*\.)?bowtrol\.ventilacia\.yi\.org -https?:\/\/([^\/]*\.)?bowtrolcoloncleanse\.vlocka\.yi\.org -https?:\/\/([^\/]*\.)?boy-boy-gay-young\.medved\.od\.ua -https?:\/\/([^\/]*\.)?boysfirsttime-com-ele2y\.blogspot\.com -https?:\/\/([^\/]*\.)?bphentermine\.c24\.pl -https?:\/\/([^\/]*\.)?bphentermine\.ovp\.pl -https?:\/\/([^\/]*\.)?bqtcfu7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?braburka\.ifrance\.com -https?:\/\/([^\/]*\.)?bradley-fitu\.blogspot\.com -https?:\/\/([^\/]*\.)?brahma-steel-toe-boot\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?brandi-a5tds\.blogspot\.com -https?:\/\/([^\/]*\.)?brandi-vuwi\.blogspot\.com -https?:\/\/([^\/]*\.)?brandibelle-com-mzqj8l\.blogspot\.com -https?:\/\/([^\/]*\.)?brandibelle-com-ti\.blogspot\.com -https?:\/\/([^\/]*\.)?brandon-duso\.blogspot\.com -https?:\/\/([^\/]*\.)?brandy-cnz56l\.blogspot\.com -https?:\/\/([^\/]*\.)?brandy-dobu\.blogspot\.com -https?:\/\/([^\/]*\.)?brasil-pire\.blogspot\.com -https?:\/\/([^\/]*\.)?brat-nikodim\.blogspot\.com -https?:\/\/([^\/]*\.)?braves-t7\.blogspot\.com -https?:\/\/([^\/]*\.)?braves-tuku\.blogspot\.com -https?:\/\/([^\/]*\.)?bravogirls-com-a7nbqd\.blogspot\.com -https?:\/\/([^\/]*\.)?bravogirls-com-w12\.blogspot\.com -https?:\/\/([^\/]*\.)?bravoteens-com-d0v\.blogspot\.com -https?:\/\/([^\/]*\.)?bravovids-com-rouqs0py\.blogspot\.com -https?:\/\/([^\/]*\.)?bravovids-r55rxyszt0\.blogspot\.com -https?:\/\/([^\/]*\.)?brazil-butt-thong\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?brazil-gevo\.blogspot\.com -https?:\/\/([^\/]*\.)?brazilian-butt-lift-plastic-surgery\.protime\.in\.ua -https?:\/\/([^\/]*\.)?brb\.pl -https?:\/\/([^\/]*\.)?breana-foki\.blogspot\.com -https?:\/\/([^\/]*\.)?breana-wvqscvo5u\.blogspot\.com -https?:\/\/([^\/]*\.)?breanna-kiwu\.blogspot\.com -https?:\/\/([^\/]*\.)?breanne-leri\.blogspot\.com -https?:\/\/([^\/]*\.)?breeanna-quhu\.blogspot\.com -https?:\/\/([^\/]*\.)?breiana-quhe\.blogspot\.com -https?:\/\/([^\/]*\.)?brenda-i5z8n4zkb7\.blogspot\.com -https?:\/\/([^\/]*\.)?brenda-rezo\.blogspot\.com -https?:\/\/([^\/]*\.)?brenna-xivo\.blogspot\.com -https?:\/\/([^\/]*\.)?brewster-opqnec8v\.blogspot\.com -https?:\/\/([^\/]*\.)?brfq6\.szm\.sk -https?:\/\/([^\/]*\.)?brian-bchd\.blogspot\.com -https?:\/\/([^\/]*\.)?brianna-dc04k04ivu\.blogspot\.com -https?:\/\/([^\/]*\.)?brianne-ejv40\.blogspot\.com -https?:\/\/([^\/]*\.)?brick55\.5gbfree\.com -https?:\/\/([^\/]*\.)?brickes\.8888mb\.com -https?:\/\/([^\/]*\.)?bricktilemachine\.com\.cn -https?:\/\/([^\/]*\.)?bridgette-rjc3pbx6\.blogspot\.com -https?:\/\/([^\/]*\.)?brightflashes\.blogspot\.com -https?:\/\/([^\/]*\.)?brionna-hl530r3fe\.blogspot\.com -https?:\/\/([^\/]*\.)?brisbeck\.com -https?:\/\/([^\/]*\.)?britney-spear-sexy-ass\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?britney-spears-0\.blogspot\.com -https?:\/\/([^\/]*\.)?britney-spears-sex-video-t-j-g\.blogspot\.com -https?:\/\/([^\/]*\.)?brittany-i7ekj3hll\.blogspot\.com -https?:\/\/([^\/]*\.)?broadcaster-crazy-popular\.freehostss\.info -https?:\/\/([^\/]*\.)?broadway-ow\.blogspot\.com -https?:\/\/([^\/]*\.)?brokenbond\.blogspot\.com -https?:\/\/([^\/]*\.)?bronc\.info -https?:\/\/([^\/]*\.)?brooke-bejuzava\.blogspot\.com -https?:\/\/([^\/]*\.)?brooklynn-du\.blogspot\.com -https?:\/\/([^\/]*\.)?brooks-rare\.lkerfocu\.be -https?:\/\/([^\/]*\.)?brplank\.ifrance\.com -https?:\/\/([^\/]*\.)?brrddd\.org -https?:\/\/([^\/]*\.)?bruce-egqva1m\.blogspot\.com -https?:\/\/([^\/]*\.)?brunettesexwrl\.blogspot\.com -https?:\/\/([^\/]*\.)?brush\.hostaim\.com -https?:\/\/([^\/]*\.)?brutlag\.stanford\.edu -https?:\/\/([^\/]*\.)?bryan-rdu\.blogspot\.com -https?:\/\/([^\/]*\.)?bs21sa\.com -https?:\/\/([^\/]*\.)?bsd-hd\.blogspot\.com -https?:\/\/([^\/]*\.)?bsoma\.c24\.pl -https?:\/\/([^\/]*\.)?bsoma\.ovp\.pl -https?:\/\/([^\/]*\.)?bsri3\.szm\.sk -https?:\/\/([^\/]*\.)?btipu\.fr33webhost\.com -https?:\/\/([^\/]*\.)?btix\.combasketball-tickets -https?:\/\/([^\/]*\.)?btqvb\.fr33webhost\.com -https?:\/\/([^\/]*\.)?btramadol\.c24\.pl -https?:\/\/([^\/]*\.)?bubba1-i2pblfp2m\.blogspot\.com -https?:\/\/([^\/]*\.)?bublifuk\.php5\.cz -https?:\/\/([^\/]*\.)?bucina\.asp2\.cz -https?:\/\/([^\/]*\.)?buck-o1i5bt\.blogspot\.com -https?:\/\/([^\/]*\.)?buddy-bqam83yt\.blogspot\.com -https?:\/\/([^\/]*\.)?budget7i\.info -https?:\/\/([^\/]*\.)?buff-com-es-gay-porn-site-l-s-g\.blogspot\.com -https?:\/\/([^\/]*\.)?bug\.phil\.cmu\.edu -https?:\/\/([^\/]*\.)?buildercareer\.us -https?:\/\/([^\/]*\.)?bukicon-free-bisexual-s-b\.blogspot\.com -https?:\/\/([^\/]*\.)?bukkake-cum-facial-shot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?bulldog-dc86aq4l\.blogspot\.com -https?:\/\/([^\/]*\.)?bumast\.com -https?:\/\/([^\/]*\.)?bumins\.com -https?:\/\/([^\/]*\.)?bunnyteens-com-clpxyq6of\.blogspot\.com -https?:\/\/([^\/]*\.)?bunnyteens-com-gz7\.blogspot\.com -https?:\/\/([^\/]*\.)?bupropion-hcl\.1\.p2l\.info -https?:\/\/([^\/]*\.)?buruan\.dl\.pl -https?:\/\/([^\/]*\.)?business-brokers\.lkerfocu\.be -https?:\/\/([^\/]*\.)?business-school\.hotmail\.ru -https?:\/\/([^\/]*\.)?business-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?business1degree\.chat\.ru -https?:\/\/([^\/]*\.)?business2school\.chat\.ru -https?:\/\/([^\/]*\.)?businessitaly\.info -https?:\/\/([^\/]*\.)?businesx\.atspace\.com -https?:\/\/([^\/]*\.)?buspar\.1\.p2l\.info -https?:\/\/([^\/]*\.)?buspirone\.1\.p2l\.info -https?:\/\/([^\/]*\.)?busstopwhores-com-c0f\.blogspot\.com -https?:\/\/([^\/]*\.)?busstopwhores-com-ki7\.blogspot\.com -https?:\/\/([^\/]*\.)?busty-blonde-bomb-shell\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?busty-blonde-fuck\.medved\.od\.ua -https?:\/\/([^\/]*\.)?busty-escort-porn\.medved\.od\.ua -https?:\/\/([^\/]*\.)?busty-horny-milf\.protime\.in\.ua -https?:\/\/([^\/]*\.)?busty-little-girl\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?busty-mature-red-head\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?busty-sex-star\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?busty-super-girl\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?busty-thick-ebony\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?bustyadventures-com-oh518h8l\.blogspot\.com -https?:\/\/([^\/]*\.)?bustyisland-com-au\.blogspot\.com -https?:\/\/([^\/]*\.)?bustyisland-mdjgr6khy\.blogspot\.com -https?:\/\/([^\/]*\.)?bustypassion-com-bpe84\.blogspot\.com -https?:\/\/([^\/]*\.)?butalbital-apap\.1\.p2l\.info -https?:\/\/([^\/]*\.)?butalbital\.ru\.tf -https?:\/\/([^\/]*\.)?butler-h3bpdq\.blogspot\.com -https?:\/\/([^\/]*\.)?butseriouslyimprov\.com -https?:\/\/([^\/]*\.)?butt-community-type-white\.medved\.od\.ua -https?:\/\/([^\/]*\.)?butt-face-fat-her-kong-love-picture-queen-sit\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?butt-fucking-teen\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?butt-girl-rate\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?buttons-iveta\.blogspot\.com -https?:\/\/([^\/]*\.)?buwelch\.dl\.pl -https?:\/\/([^\/]*\.)?buwu-admin\.blogspot\.com -https?:\/\/([^\/]*\.)?buy-ambien-online\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-ambien\.esguay\.com -https?:\/\/([^\/]*\.)?buy-ativan\.fil\.ph -https?:\/\/([^\/]*\.)?buy-bontril\.contact\.cc -https?:\/\/([^\/]*\.)?buy-carisoprodol\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-celebrex\.bigsitecity\.com -https?:\/\/([^\/]*\.)?buy-cialis-online\.bigsitecity\.com -https?:\/\/([^\/]*\.)?buy-cialis\.1k\.pl -https?:\/\/([^\/]*\.)?buy-cialis\.esguay\.com -https?:\/\/([^\/]*\.)?buy-cialis\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-cialis20\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-cialishhb\.blogspot\.com -https?:\/\/([^\/]*\.)?buy-cialisklx\.blogspot\.com -https?:\/\/([^\/]*\.)?buy-hydrocodone-gs\.eu\.tc -https?:\/\/([^\/]*\.)?buy-hydrocodone-gs\.net\.tc -https?:\/\/([^\/]*\.)?buy-hydrocodone\.esguay\.com -https?:\/\/([^\/]*\.)?buy-hydrocodone\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-levitra\.1k\.pl -https?:\/\/([^\/]*\.)?buy-levitra\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-lipitor\.contact\.cc -https?:\/\/([^\/]*\.)?buy-lortab-911\.jo\.pl -https?:\/\/([^\/]*\.)?buy-online-tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?buy-pharmacy\.blogspot\.com -https?:\/\/([^\/]*\.)?buy-phentermine-gs\.eu\.tc -https?:\/\/([^\/]*\.)?buy-phentermine-gs\.net\.tc -https?:\/\/([^\/]*\.)?buy-phentermine\.esguay\.com -https?:\/\/([^\/]*\.)?buy-phentermine\.health-livening\.com -https?:\/\/([^\/]*\.)?buy-phentermine\.hem\.nu -https?:\/\/([^\/]*\.)?buy-phentermine\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-phentermine20\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-prozac-online\.com -https?:\/\/([^\/]*\.)?buy-soma\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-tennis-shoes\.info -https?:\/\/([^\/]*\.)?buy-tramadol-gs\.eu\.tc -https?:\/\/([^\/]*\.)?buy-tramadol-gs\.net\.tc -https?:\/\/([^\/]*\.)?buy-tramadol-online911\.jo\.pl -https?:\/\/([^\/]*\.)?buy-tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?buy-tramadol\.esguay\.com -https?:\/\/([^\/]*\.)?buy-tramadol\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-tramadol20\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-ultram\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-valium\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-viagra-online\.health-livening\.com -https?:\/\/([^\/]*\.)?buy-viagra\.esguay\.com -https?:\/\/([^\/]*\.)?buy-viagra\.health-livening\.com -https?:\/\/([^\/]*\.)?buy-viagra\.presteert\.nl -https?:\/\/([^\/]*\.)?buy-viagra20\.bravehost\.com -https?:\/\/([^\/]*\.)?buy-xanax20\.bravehost\.com -https?:\/\/([^\/]*\.)?buy4levitra\.blogspot\.com -https?:\/\/([^\/]*\.)?buy4viagra\.blogspot\.com -https?:\/\/([^\/]*\.)?buyambien\.blog\.hr -https?:\/\/([^\/]*\.)?buyambien\.guu\.pl -https?:\/\/([^\/]*\.)?buybuspar\.4\.pl -https?:\/\/([^\/]*\.)?buycialisonline\.forumlivre\.com -https?:\/\/([^\/]*\.)?buycialisonline\.sprayblog\.se -https?:\/\/([^\/]*\.)?buycialisonline\.sulekha\.com -https?:\/\/([^\/]*\.)?buycialispills00\.blogspot\.com -https?:\/\/([^\/]*\.)?buycialiss\.blogsome\.com -https?:\/\/([^\/]*\.)?buycialiss\.ovp\.pl -https?:\/\/([^\/]*\.)?buycipro\.4\.pl -https?:\/\/([^\/]*\.)?buyeffexor\.4\.pl -https?:\/\/([^\/]*\.)?buyhydrocodone\.blog\.hr -https?:\/\/([^\/]*\.)?buylevitra\.blog\.hr -https?:\/\/([^\/]*\.)?buylevitra\.forospace\.com -https?:\/\/([^\/]*\.)?buylevitraonlin\.forumlivre\.com -https?:\/\/([^\/]*\.)?buylevitraonline\.sprayblog\.se -https?:\/\/([^\/]*\.)?buymeridia\.blog\.hr -https?:\/\/([^\/]*\.)?buyonlineorder\.com -https?:\/\/([^\/]*\.)?buypaxil\.blog\.hr -https?:\/\/([^\/]*\.)?buyphentermine2\.livelog\.com -https?:\/\/([^\/]*\.)?buyphenterminee\.ovp\.pl -https?:\/\/([^\/]*\.)?buyphenterminez\.blog\.hr -https?:\/\/([^\/]*\.)?buypropecia\.blog\.hr -https?:\/\/([^\/]*\.)?buyprozac\.blog\.hr -https?:\/\/([^\/]*\.)?buyrosebowltickets\.com -https?:\/\/([^\/]*\.)?buysoma\.1majorhost\.com -https?:\/\/([^\/]*\.)?buysoma\.cay\.pl -https?:\/\/([^\/]*\.)?buysomaaonline\.ovp\.pl -https?:\/\/([^\/]*\.)?buysomaonline\.forospace\.com -https?:\/\/([^\/]*\.)?buysomaonlinez\.blogsome\.com -https?:\/\/([^\/]*\.)?buytramadolonli\.forumlivre\.com -https?:\/\/([^\/]*\.)?buytramadolonline\.sprayblog\.se -https?:\/\/([^\/]*\.)?buytramadolz\.jubiiblog\.de -https?:\/\/([^\/]*\.)?buytrazodone\.eamped\.com -https?:\/\/([^\/]*\.)?buyultram\.forospace\.com -https?:\/\/([^\/]*\.)?buyultram\.ir\.pl -https?:\/\/([^\/]*\.)?buyultramonline\.ir\.pl -https?:\/\/([^\/]*\.)?buyultramxp\.cay\.pl -https?:\/\/([^\/]*\.)?buyvalium\.one2you\.info -https?:\/\/([^\/]*\.)?buyvaliumonline\.forumlivre\.com -https?:\/\/([^\/]*\.)?buyvaliumonline\.jubiiblog\.de -https?:\/\/([^\/]*\.)?buyvaliumonline\.sprayblog\.se -https?:\/\/([^\/]*\.)?buyviagra\.seesaa\.net -https?:\/\/([^\/]*\.)?buyviagraa\.ovp\.pl -https?:\/\/([^\/]*\.)?buyviagraonline\.ovp\.pl -https?:\/\/([^\/]*\.)?buyviagraonline\.sprayblog\.se -https?:\/\/([^\/]*\.)?buyviagraxp\.cay\.pl -https?:\/\/([^\/]*\.)?buyvicodinxp\.cay\.pl -https?:\/\/([^\/]*\.)?buyvvalium\.ovp\.pl -https?:\/\/([^\/]*\.)?buyxanax\.5u\.com -https?:\/\/([^\/]*\.)?buyxanaxxonline\.ovp\.pl -https?:\/\/([^\/]*\.)?buyxanaxxp\.cay\.pl -https?:\/\/([^\/]*\.)?buyxenical\.blog\.hr -https?:\/\/([^\/]*\.)?buyxenical\.ir\.pl -https?:\/\/([^\/]*\.)?buyxenicalonline\.ir\.pl -https?:\/\/([^\/]*\.)?buyxxenical\.ovp\.pl -https?:\/\/([^\/]*\.)?buyxxenicalonline\.ovp\.pl -https?:\/\/([^\/]*\.)?buyycelexa\.ovp\.pl -https?:\/\/([^\/]*\.)?buyycialis\.ovp\.pl -https?:\/\/([^\/]*\.)?buyymeridiaonline\.ovp\.pl -https?:\/\/([^\/]*\.)?buyyphentermine\.ovp\.pl -https?:\/\/([^\/]*\.)?buyysoma\.ovp\.pl -https?:\/\/([^\/]*\.)?buyyviagra\.ovp\.pl -https?:\/\/([^\/]*\.)?buyyzithromax\.ovp\.pl -https?:\/\/([^\/]*\.)?buyzoloft\.blog\.hr -https?:\/\/([^\/]*\.)?buyzyban\.coz\.in -https?:\/\/([^\/]*\.)?buzerave\.com -https?:\/\/([^\/]*\.)?bvalium\.c24\.pl -https?:\/\/([^\/]*\.)?bvalium\.fuks\.pl -https?:\/\/([^\/]*\.)?bvalium1\.forumup\.org -https?:\/\/([^\/]*\.)?bviagra\.ovp\.pl -https?:\/\/([^\/]*\.)?bviagra1\.forumup\.org -https?:\/\/([^\/]*\.)?bvse1\.szm\.sk -https?:\/\/([^\/]*\.)?bwmi0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?bwzf6\.szm\.sk -https?:\/\/([^\/]*\.)?bx6\.blrf\.net -https?:\/\/([^\/]*\.)?bxanax\.c24\.pl -https?:\/\/([^\/]*\.)?bxanax\.gog\.pl -https?:\/\/([^\/]*\.)?bxanax1\.forumup\.org -https?:\/\/([^\/]*\.)?byhydrocodone\.blog\.espresso\.repubblica\.it -https?:\/\/([^\/]*\.)?bzxs\.org\.ua -https?:\/\/([^\/]*\.)?c-canada\.com -https?:\/\/([^\/]*\.)?c4taldron\.uy\.pl -https?:\/\/([^\/]*\.)?c4tcaget\.blogcu\.com -https?:\/\/([^\/]*\.)?c4tcoli\.td\.pl -https?:\/\/([^\/]*\.)?c4tdarrel\.dl\.pl -https?:\/\/([^\/]*\.)?c4tdronrel\.goodforum\.net -https?:\/\/([^\/]*\.)?c4tdronrel\.grafbb\.com -https?:\/\/([^\/]*\.)?c4tvarcna\.dl\.pl -https?:\/\/([^\/]*\.)?ca57sgr0h\.org -https?:\/\/([^\/]*\.)?cable-connection\.keckins\.be -https?:\/\/([^\/]*\.)?caboboc\.blogcu\.com -https?:\/\/([^\/]*\.)?cacalife\.com -https?:\/\/([^\/]*\.)?cacas\.info -https?:\/\/([^\/]*\.)?caculall\.forumzen\.com -https?:\/\/([^\/]*\.)?cadiucna\.forumzen\.com -https?:\/\/([^\/]*\.)?caeserch\.com -https?:\/\/([^\/]*\.)?cafasc\.com -https?:\/\/([^\/]*\.)?caguyea\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cahn\.mnsu\.edu -https?:\/\/([^\/]*\.)?caitlyn-d66tmgwi1\.blogspot\.com -https?:\/\/([^\/]*\.)?caked\.info -https?:\/\/([^\/]*\.)?calciatore-nudo\.hostzz\.info -https?:\/\/([^\/]*\.)?calcio-arbitri\.com -https?:\/\/([^\/]*\.)?calcio-watch\.com -https?:\/\/([^\/]*\.)?calcolo-rata-finanziamento\.ll33\.info -https?:\/\/([^\/]*\.)?calendario-vari\.freespase\.info -https?:\/\/([^\/]*\.)?calgary-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?californiamortgage-x\.com -https?:\/\/([^\/]*\.)?call-kelly-com-ky\.blogspot\.com -https?:\/\/([^\/]*\.)?call-kelly-com-tnm5k7042\.blogspot\.com -https?:\/\/([^\/]*\.)?callie-es\.blogspot\.com -https?:\/\/([^\/]*\.)?callsecurity\.blogspot\.com -https?:\/\/([^\/]*\.)?camaro-r21nu37q\.blogspot\.com -https?:\/\/([^\/]*\.)?camcrush-com-eudifxp82\.blogspot\.com -https?:\/\/([^\/]*\.)?camcrush-com-igzig\.blogspot\.com -https?:\/\/([^\/]*\.)?camcrush-com-my1v8l4\.blogspot\.com -https?:\/\/([^\/]*\.)?camel-cigarettes\.s5\.com -https?:\/\/([^\/]*\.)?camelclips-com-budun\.blogspot\.com -https?:\/\/([^\/]*\.)?camelclips-com-d3s6o2\.blogspot\.com -https?:\/\/([^\/]*\.)?camelclips-com-h6a5l\.blogspot\.com -https?:\/\/([^\/]*\.)?camelmenthe\.blogspot\.com -https?:\/\/([^\/]*\.)?cameralover\.net -https?:\/\/([^\/]*\.)?camerascams\.info -https?:\/\/([^\/]*\.)?cameron-h184o7b\.blogspot\.com -https?:\/\/([^\/]*\.)?camini\.freehostss\.info -https?:\/\/([^\/]*\.)?canada-birthday\.acb\.pl -https?:\/\/([^\/]*\.)?canadian-pharmacyfur\.blogspot\.com -https?:\/\/([^\/]*\.)?canadian-pharmacyyof\.blogspot\.com -https?:\/\/([^\/]*\.)?cancer-skin\.nm\.ru -https?:\/\/([^\/]*\.)?cancer-skin\.pochta\.ru -https?:\/\/([^\/]*\.)?cancer_skin\.chat\.ru -https?:\/\/([^\/]*\.)?candi-door-hot-mom-next\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?candylist-com-dib\.blogspot\.com -https?:\/\/([^\/]*\.)?candylist-com-ip72g5\.blogspot\.com -https?:\/\/([^\/]*\.)?canjipiao\.com -https?:\/\/([^\/]*\.)?cantante-arabe-sexy\.hostzz\.info -https?:\/\/([^\/]*\.)?cantor-dz1h733\.blogspot\.com -https?:\/\/([^\/]*\.)?caorzel\.discutforum\.com -https?:\/\/([^\/]*\.)?capasdar\.td\.pl -https?:\/\/([^\/]*\.)?car-free-insurance-quoteqch\.blogspot\.com -https?:\/\/([^\/]*\.)?car-insurance-\.blogspot\.com -https?:\/\/([^\/]*\.)?car-insurance-club\.com -https?:\/\/([^\/]*\.)?car-insurance-p4zw\.blogspot\.com -https?:\/\/([^\/]*\.)?car-insurance-ratsvex\.blogspot\.com -https?:\/\/([^\/]*\.)?car-loan-newdma\.blogspot\.com -https?:\/\/([^\/]*\.)?car-loan-neweei\.blogspot\.com -https?:\/\/([^\/]*\.)?car1home\.info -https?:\/\/([^\/]*\.)?carabidule\.net -https?:\/\/([^\/]*\.)?carbest2006\.info -https?:\/\/([^\/]*\.)?cardura-rapid-heartbeat\.tlg\.pl -https?:\/\/([^\/]*\.)?care-skin\.pochta\.ru -https?:\/\/([^\/]*\.)?career-business\.net -https?:\/\/([^\/]*\.)?carepharmasite\.info -https?:\/\/([^\/]*\.)?caribxpressparts\.com -https?:\/\/([^\/]*\.)?caricc4t\.xa\.pl -https?:\/\/([^\/]*\.)?carinsurance-x\.com -https?:\/\/([^\/]*\.)?carinsuranceshh\.blogspot\.com -https?:\/\/([^\/]*\.)?carisoprodol-online\.presteert\.nl -https?:\/\/([^\/]*\.)?carisoprodol\.1\.p2l\.info -https?:\/\/([^\/]*\.)?carisoprodol\.269g\.net -https?:\/\/([^\/]*\.)?carisoprodol\.47\.pl -https?:\/\/([^\/]*\.)?carisoprodol\.goodpharm\.info -https?:\/\/([^\/]*\.)?carisoprodol\.hav\.pl -https?:\/\/([^\/]*\.)?carisoprodol\.presteert\.nl -https?:\/\/([^\/]*\.)?carisoprodol\.seesaa\.net -https?:\/\/([^\/]*\.)?carisoprodol\.skocz\.net -https?:\/\/([^\/]*\.)?carisoprodolrx\.weboficial\.com -https?:\/\/([^\/]*\.)?carisoprodols\.blogspot\.com -https?:\/\/([^\/]*\.)?carley-m3ia3\.blogspot\.com -https?:\/\/([^\/]*\.)?carlie-a2s405\.blogspot\.com -https?:\/\/([^\/]*\.)?carol-txxhdpnt\.blogspot\.com -https?:\/\/([^\/]*\.)?carolina-w2aoe4xx\.blogspot\.com -https?:\/\/([^\/]*\.)?carolyn-gp2s5\.blogspot\.com -https?:\/\/([^\/]*\.)?carovi\.su\.pl -https?:\/\/([^\/]*\.)?carson-ko8z7\.blogspot\.com -https?:\/\/([^\/]*\.)?carspoker\.u288\.com -https?:\/\/([^\/]*\.)?cartolina-pasqua\.host24h\.info -https?:\/\/([^\/]*\.)?cartoon-free-gallery-gay\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cartoon-porn-clip-bloghvn\.blogspot\.com -https?:\/\/([^\/]*\.)?carxm\.info -https?:\/\/([^\/]*\.)?casaviva\.19mb\.info -https?:\/\/([^\/]*\.)?cascq\.szm\.sk -https?:\/\/([^\/]*\.)?casetvar\.forumzen\.com -https?:\/\/([^\/]*\.)?cashadvance-x\.com -https?:\/\/([^\/]*\.)?cashing-view\.com -https?:\/\/([^\/]*\.)?casing\.dyndns\.dk -https?:\/\/([^\/]*\.)?casino-555\.com -https?:\/\/([^\/]*\.)?casino-attraction\.com -https?:\/\/([^\/]*\.)?casino-games-wiki\.com -https?:\/\/([^\/]*\.)?casino-magyck\.mutogen\.be -https?:\/\/([^\/]*\.)?casino-ppp\.com -https?:\/\/([^\/]*\.)?casino-startup\.com -https?:\/\/([^\/]*\.)?casino-theory\.com -https?:\/\/([^\/]*\.)?casino\.requirements\.be -https?:\/\/([^\/]*\.)?casino1\.forumup\.org -https?:\/\/([^\/]*\.)?casinos-new\.com -https?:\/\/([^\/]*\.)?casinostates\.com -https?:\/\/([^\/]*\.)?casper-a3r1z2a0\.blogspot\.com -https?:\/\/([^\/]*\.)?cassay\.net -https?:\/\/([^\/]*\.)?casual-boots\.massioni\.be -https?:\/\/([^\/]*\.)?catch-c-teens\.blogspot\.com -https?:\/\/([^\/]*\.)?catherine-tu75h6w\.blogspot\.com -https?:\/\/([^\/]*\.)?catrelet\.forumzen\.com -https?:\/\/([^\/]*\.)?cats-wjbreb7e\.blogspot\.com -https?:\/\/([^\/]*\.)?cayuga-g2legvldk2\.blogspot\.com -https?:\/\/([^\/]*\.)?cazelmon\.lolforum\.net -https?:\/\/([^\/]*\.)?cazelolo\.dl\.pl -https?:\/\/([^\/]*\.)?cbbi\.cn -https?:\/\/([^\/]*\.)?cbhi8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cbkf0\.fr33webhost\.com -https?:\/\/([^\/]*\.)?cbwgkm8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cc5f\.dnyp\.com -https?:\/\/([^\/]*\.)?ccak1\.szm\.sk -https?:\/\/([^\/]*\.)?ccal\.cultureforum\.net -https?:\/\/([^\/]*\.)?ccclfak\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ccheapcelexa\.ovp\.pl -https?:\/\/([^\/]*\.)?ccheapvaliumonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ccline\.info -https?:\/\/([^\/]*\.)?ccnarac\.uy\.pl -https?:\/\/([^\/]*\.)?ccobhv7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cdq\.dzsbcn\.com -https?:\/\/([^\/]*\.)?cdsmart\.info -https?:\/\/([^\/]*\.)?cdzhs\.szm\.sk -https?:\/\/([^\/]*\.)?ceasius\.blogspot\.com -https?:\/\/([^\/]*\.)?cecily-koj\.blogspot\.com -https?:\/\/([^\/]*\.)?ceclor\.tlg\.pl -https?:\/\/([^\/]*\.)?celeb-filipina-movie-site\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?celebrex-911\.coz\.in -https?:\/\/([^\/]*\.)?celebrex-celecoxib-200mg\.tlg\.pl -https?:\/\/([^\/]*\.)?celebrex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?celebrity-sex-video-n-q-x\.blogspot\.com -https?:\/\/([^\/]*\.)?celebrity-sex-video\.0800-porn\.com -https?:\/\/([^\/]*\.)?celebrityprofiler\.com -https?:\/\/([^\/]*\.)?celelt\.dl\.pl -https?:\/\/([^\/]*\.)?celeste-mi8q701\.blogspot\.com -https?:\/\/([^\/]*\.)?celexa\.1\.p2l\.info -https?:\/\/([^\/]*\.)?celexa\.269g\.net -https?:\/\/([^\/]*\.)?celexafcy\.blogspot\.com -https?:\/\/([^\/]*\.)?celexaodt\.blogspot\.com -https?:\/\/([^\/]*\.)?celexavby\.blogspot\.com -https?:\/\/([^\/]*\.)?celexavcc\.blogspot\.com -https?:\/\/([^\/]*\.)?celexazer\.blogspot\.com -https?:\/\/([^\/]*\.)?celexxaonline\.ovp\.pl -https?:\/\/([^\/]*\.)?celine-ajha0vxo6\.blogspot\.com -https?:\/\/([^\/]*\.)?celtic-frost-ringtonedbg\.blogspot\.com -https?:\/\/([^\/]*\.)?celtic-frost-ringtonepxe\.blogspot\.com -https?:\/\/([^\/]*\.)?celtic-ring\.boom\.ru -https?:\/\/([^\/]*\.)?celtic1ring\.chat\.ru -https?:\/\/([^\/]*\.)?cemast\.com -https?:\/\/([^\/]*\.)?center-csy73nq1\.blogspot\.com -https?:\/\/([^\/]*\.)?century-21\.co\.jp -https?:\/\/([^\/]*\.)?cephalexin\.dynalias\.net -https?:\/\/([^\/]*\.)?cephalexin\.kicks-ass\.net -https?:\/\/([^\/]*\.)?cephalexinvyp\.blogspot\.com -https?:\/\/([^\/]*\.)?ceremi\.com -https?:\/\/([^\/]*\.)?cerveza\.republika\.pl -https?:\/\/([^\/]*\.)?cetki\.blogspot\.com -https?:\/\/([^\/]*\.)?cetuna\.com -https?:\/\/([^\/]*\.)?cfhc2\.szm\.sk -https?:\/\/([^\/]*\.)?cfi-tp\.blogspot\.com -https?:\/\/([^\/]*\.)?cgj-wmkd0p54ap\.blogspot\.com -https?:\/\/([^\/]*\.)?chain\.webmelia\.com -https?:\/\/([^\/]*\.)?champion-ghdm2p\.blogspot\.com -https?:\/\/([^\/]*\.)?chancec-i0\.blogspot\.com -https?:\/\/([^\/]*\.)?chandler-ozbi2l\.blogspot\.com -https?:\/\/([^\/]*\.)?chanel-ag2w\.blogspot\.com -https?:\/\/([^\/]*\.)?charity-eu\.blogspot\.com -https?:\/\/([^\/]*\.)?charles-rp7s\.blogspot\.com -https?:\/\/([^\/]*\.)?charlie-gl3ig\.blogspot\.com -https?:\/\/([^\/]*\.)?charming-kbatna2k\.blogspot\.com -https?:\/\/([^\/]*\.)?charvis-mj35\.blogspot\.com -https?:\/\/([^\/]*\.)?chase-online-bankingdir\.blogspot\.com -https?:\/\/([^\/]*\.)?chasehunt\.com -https?:\/\/([^\/]*\.)?chasity-oy2mgww10\.blogspot\.com -https?:\/\/([^\/]*\.)?chat-a7gdn35u\.blogspot\.com -https?:\/\/([^\/]*\.)?chat-gay-ohio-room\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?chat\.infty\.net -https?:\/\/([^\/]*\.)?chatelaine-free-lipstick\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?chatou\.dzsc\.com -https?:\/\/([^\/]*\.)?chatsky\.cn -https?:\/\/([^\/]*\.)?chaucer\.umuc\.edu -https?:\/\/([^\/]*\.)?chayse-c0z2untnw\.blogspot\.com -https?:\/\/([^\/]*\.)?chazuo\.dzsc\.com -https?:\/\/([^\/]*\.)?chazz-d86hk\.blogspot\.com -https?:\/\/([^\/]*\.)?cheap-cialis\.presteert\.nl -https?:\/\/([^\/]*\.)?cheap-hydrocodone\.presteert\.nl -https?:\/\/([^\/]*\.)?cheap-phentermine\.cheapills\.info -https?:\/\/([^\/]*\.)?cheap-phentermine\.esguay\.com -https?:\/\/([^\/]*\.)?cheap-phentermine\.health-livening\.com -https?:\/\/([^\/]*\.)?cheap-phentermine\.presteert\.nl -https?:\/\/([^\/]*\.)?cheap-rocky-boot\.medved\.od\.ua -https?:\/\/([^\/]*\.)?cheap-soma-online\.blogspot\.com -https?:\/\/([^\/]*\.)?cheap-tramadol-onlin\.zikforum\.com -https?:\/\/([^\/]*\.)?cheap-tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?cheap-tramadol\.cheapills\.info -https?:\/\/([^\/]*\.)?cheap-tramadol\.presteert\.nl -https?:\/\/([^\/]*\.)?cheap-trashy-lingerie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cheap-travel-deal\.globaltr\.info -https?:\/\/([^\/]*\.)?cheap-valium\.cheapills\.info -https?:\/\/([^\/]*\.)?cheap-viagra\.health-livening\.com -https?:\/\/([^\/]*\.)?cheap-viagra\.presteert\.nl -https?:\/\/([^\/]*\.)?cheap-xanax\.us\.tf -https?:\/\/([^\/]*\.)?cheapcialiss\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapest-pills\.org -https?:\/\/([^\/]*\.)?cheapest-viagra-source\.com -https?:\/\/([^\/]*\.)?cheapestlakerstickets\.com -https?:\/\/([^\/]*\.)?cheaplakertickets\.com -https?:\/\/([^\/]*\.)?cheappcialis\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapphentermine\.livelog\.com -https?:\/\/([^\/]*\.)?cheapphenterminee\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapphntermine\.ovp\.pl -https?:\/\/([^\/]*\.)?cheappvalium\.ovp\.pl -https?:\/\/([^\/]*\.)?cheappviagra\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapsuperbowltickets\.com -https?:\/\/([^\/]*\.)?cheaptramadol\.forospace\.com -https?:\/\/([^\/]*\.)?cheaptramadols\.ovp\.pl -https?:\/\/([^\/]*\.)?cheaptramadolz\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapvaliumm\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapvvalium\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapxanaxx\.ovp\.pl -https?:\/\/([^\/]*\.)?cheapxxanax\.ovp\.pl -https?:\/\/([^\/]*\.)?cheater-t3si78zbf\.blogspot\.com -https?:\/\/([^\/]*\.)?cheats-e2p3o7nhm\.blogspot\.com -https?:\/\/([^\/]*\.)?cheaviagra\.blogsome\.com -https?:\/\/([^\/]*\.)?checkers-wn88\.blogspot\.com -https?:\/\/([^\/]*\.)?checkproxy\.com -https?:\/\/([^\/]*\.)?cheerleader-child-photo\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cheerleader-dolphin\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cheerleader-gallery-naughty\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?cheerleader-upskirt-picture\.protime\.in\.ua -https?:\/\/([^\/]*\.)?cheese-ratzl\.blogspot\.com -https?:\/\/([^\/]*\.)?chellam-g2w\.blogspot\.com -https?:\/\/([^\/]*\.)?chelsey-kifs\.blogspot\.com -https?:\/\/([^\/]*\.)?chem-iv1c82\.blogspot\.com -https?:\/\/([^\/]*\.)?chemistry-mrrx5e\.blogspot\.com -https?:\/\/([^\/]*\.)?chemistry\.org\.ua -https?:\/\/([^\/]*\.)?cheng-o08if\.blogspot\.com -https?:\/\/([^\/]*\.)?chenglong\.com\.cn -https?:\/\/([^\/]*\.)?cher-aorxm1s3j7\.blogspot\.com -https?:\/\/([^\/]*\.)?cheryl-b8\.blogspot\.com -https?:\/\/([^\/]*\.)?chess-cy\.blogspot\.com -https?:\/\/([^\/]*\.)?chester1-tfkfl51eb\.blogspot\.com -https?:\/\/([^\/]*\.)?chevroletcam\.cn -https?:\/\/([^\/]*\.)?chevy-ekv8ph\.blogspot\.com -https?:\/\/([^\/]*\.)?chevy1-wwok0ww55\.blogspot\.com -https?:\/\/([^\/]*\.)?cheyanne-rnriiwno6l\.blogspot\.com -https?:\/\/([^\/]*\.)?cheyenne-g3l5fa87\.blogspot\.com -https?:\/\/([^\/]*\.)?cheyne-hm7aik5u\.blogspot\.com -https?:\/\/([^\/]*\.)?chfielde\.ifrance\.com -https?:\/\/([^\/]*\.)?chic-ks\.blogspot\.com -https?:\/\/([^\/]*\.)?chicago-kou3c7e58\.blogspot\.com -https?:\/\/([^\/]*\.)?chick-gay-kissing\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?chicken-i66t8z76\.blogspot\.com -https?:\/\/([^\/]*\.)?chico-myg8bv\.blogspot\.com -https?:\/\/([^\/]*\.)?chidneuer\.frbb\.net -https?:\/\/([^\/]*\.)?chidronrac\.ephpbb\.com -https?:\/\/([^\/]*\.)?chidronrec\.dynamicforum\.net -https?:\/\/([^\/]*\.)?chiefs-oob\.blogspot\.com -https?:\/\/([^\/]*\.)?chilacna\.td\.pl -https?:\/\/([^\/]*\.)?child-leg-pain\.medved\.od\.ua -https?:\/\/([^\/]*\.)?chilton-b82sebrrue\.blogspot\.com -https?:\/\/([^\/]*\.)?chimp-cu4gvwsceg\.blogspot\.com -https?:\/\/([^\/]*\.)?china--magnet\.com -https?:\/\/([^\/]*\.)?china-dwcuzqft6\.blogspot\.com -https?:\/\/([^\/]*\.)?china-made-door\.com\.cn -https?:\/\/([^\/]*\.)?china01\.52blog\.net -https?:\/\/([^\/]*\.)?china02\.52blog\.net -https?:\/\/([^\/]*\.)?china1\.52blog\.net -https?:\/\/([^\/]*\.)?china1\.yculblog\.com -https?:\/\/([^\/]*\.)?china2\.52blog\.net -https?:\/\/([^\/]*\.)?china2\.yculblog\.com -https?:\/\/([^\/]*\.)?china3\.yculblog\.com -https?:\/\/([^\/]*\.)?chinacarcenter\.net -https?:\/\/([^\/]*\.)?chinacid\.com -https?:\/\/([^\/]*\.)?chinafoo\.com -https?:\/\/([^\/]*\.)?chinafurnace\.net -https?:\/\/([^\/]*\.)?chinakj\.net -https?:\/\/([^\/]*\.)?chinalhcz\.com -https?:\/\/([^\/]*\.)?chinaprojectors\.com -https?:\/\/([^\/]*\.)?chinatranslation\.net -https?:\/\/([^\/]*\.)?chinayoujiu\.com -https?:\/\/([^\/]*\.)?chinese-google\.com -https?:\/\/([^\/]*\.)?chineseaids\.com -https?:\/\/([^\/]*\.)?chineseaids\.net -https?:\/\/([^\/]*\.)?chinesezhouyi\.com -https?:\/\/([^\/]*\.)?chip-thz\.blogspot\.com -https?:\/\/([^\/]*\.)?chipper-eusa\.blogspot\.com -https?:\/\/([^\/]*\.)?chippewa-work-boot\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?chiquita-wqok0t741\.blogspot\.com -https?:\/\/([^\/]*\.)?chiricc4t\.zj\.pl -https?:\/\/([^\/]*\.)?chiricdel\.fr-bb\.com -https?:\/\/([^\/]*\.)?chitr\.discutforum\.com -https?:\/\/([^\/]*\.)?chizelc\.goodforum\.net -https?:\/\/([^\/]*\.)?chizelc\.grafbb\.com -https?:\/\/([^\/]*\.)?chizelno\.cultureforum\.net -https?:\/\/([^\/]*\.)?chkawai\.cn -https?:\/\/([^\/]*\.)?chocolat-g4\.blogspot\.com -https?:\/\/([^\/]*\.)?chocolate\.my10gb\.com -https?:\/\/([^\/]*\.)?chongdianqi\.dzsc\.com -https?:\/\/([^\/]*\.)?chops-hg47n04tvi\.blogspot\.com -https?:\/\/([^\/]*\.)?choudoufu\.com -https?:\/\/([^\/]*\.)?chris-ks6u6dj\.blogspot\.com -https?:\/\/([^\/]*\.)?chrissy-oyo8z\.blogspot\.com -https?:\/\/([^\/]*\.)?christ-acczbi1t\.blogspot\.com -https?:\/\/([^\/]*\.)?christen-bttdc0kn\.blogspot\.com -https?:\/\/([^\/]*\.)?christeta\.com -https?:\/\/([^\/]*\.)?christia-ccf2e6\.blogspot\.com -https?:\/\/([^\/]*\.)?christiaan-dvb\.blogspot\.com -https?:\/\/([^\/]*\.)?christianj-t3e1j3\.blogspot\.com -https?:\/\/([^\/]*\.)?christin-ee1qjx\.blogspot\.com -https?:\/\/([^\/]*\.)?christina-aguilera-pic\.blogspot\.com -https?:\/\/([^\/]*\.)?christina-wf\.blogspot\.com -https?:\/\/([^\/]*\.)?christine-rgosvndiqw\.blogspot\.com -https?:\/\/([^\/]*\.)?christoffe-g4e\.blogspot\.com -https?:\/\/([^\/]*\.)?christop-hqhff\.blogspot\.com -https?:\/\/([^\/]*\.)?christy-kflb274n\.blogspot\.com -https?:\/\/([^\/]*\.)?chrome-it8j\.blogspot\.com -https?:\/\/([^\/]*\.)?chrykne\.info -https?:\/\/([^\/]*\.)?chrystian-mgxw3jyfb1\.blogspot\.com -https?:\/\/([^\/]*\.)?chuanganqi\.dzsc\.com -https?:\/\/([^\/]*\.)?chubby-bear-pic\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?chubby-chick\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?chubby-cum\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?chubby-teens-tus\.blogspot\.com -https?:\/\/([^\/]*\.)?chuck-oh\.blogspot\.com -https?:\/\/([^\/]*\.)?chucky-aklnscme\.blogspot\.com -https?:\/\/([^\/]*\.)?chulyt\.com -https?:\/\/([^\/]*\.)?church-b0w4\.blogspot\.com -https?:\/\/([^\/]*\.)?chuvak-org\.blogspot\.com -https?:\/\/([^\/]*\.)?chvpqa7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?chyna-c2\.blogspot\.com -https?:\/\/([^\/]*\.)?ci-video-pornograficos-download\.blogspot\.com -https?:\/\/([^\/]*\.)?cialis-for-sale\.com -https?:\/\/([^\/]*\.)?cialis-ok-1\.blogspot\.com -https?:\/\/([^\/]*\.)?cialis-online\.presteert\.nl -https?:\/\/([^\/]*\.)?cialis-pharma\.tripod\.com -https?:\/\/([^\/]*\.)?cialis-soft-tabs\.com -https?:\/\/([^\/]*\.)?cialis\.1\.p2l\.info -https?:\/\/([^\/]*\.)?cialis\.esguay\.com -https?:\/\/([^\/]*\.)?cialis\.fws1\.com -https?:\/\/([^\/]*\.)?cialis\.goodpharm\.info -https?:\/\/([^\/]*\.)?cialis\.page\.tl -https?:\/\/([^\/]*\.)?cialis\.presteert\.nl -https?:\/\/([^\/]*\.)?cialis\.rx4\.org -https?:\/\/([^\/]*\.)?cialis\.seesaa\.net -https?:\/\/([^\/]*\.)?cialis\.skocz\.net -https?:\/\/([^\/]*\.)?cialises\.us\.tf -https?:\/\/([^\/]*\.)?cialisjiq\.blogspot\.com -https?:\/\/([^\/]*\.)?cialispills\.blog\.hr -https?:\/\/([^\/]*\.)?cialisrx\.weboficial\.com -https?:\/\/([^\/]*\.)?cialisx\.host-page\.com -https?:\/\/([^\/]*\.)?ciara-d0\.blogspot\.com -https?:\/\/([^\/]*\.)?cierra-t1f0hy\.blogspot\.com -https?:\/\/([^\/]*\.)?cigar-ekelo\.blogspot\.com -https?:\/\/([^\/]*\.)?cigarettes-smoking-online\.com -https?:\/\/([^\/]*\.)?cigarettes\.4\.pl -https?:\/\/([^\/]*\.)?cilmer\.com -https?:\/\/([^\/]*\.)?cinast\.com -https?:\/\/([^\/]*\.)?cincydj\.ifrance\.com -https?:\/\/([^\/]*\.)?cinder-w6\.blogspot\.com -https?:\/\/([^\/]*\.)?cindi-ruo8\.blogspot\.com -https?:\/\/([^\/]*\.)?cindy-gdhs2i21u6\.blogspot\.com -https?:\/\/([^\/]*\.)?cinem4\.com -https?:\/\/([^\/]*\.)?cingularringtones\.269g\.net -https?:\/\/([^\/]*\.)?ciplactin\.tlg\.pl -https?:\/\/([^\/]*\.)?ciprobuy\.hop\.to -https?:\/\/([^\/]*\.)?ciprobuycheap\.firstpage\.de -https?:\/\/([^\/]*\.)?ciprobuygeneric\.move\.to -https?:\/\/([^\/]*\.)?ciprocheap\.dive\.to -https?:\/\/([^\/]*\.)?ciprofloxacin\.xwiki\.com -https?:\/\/([^\/]*\.)?ciprogeneric\.i\.am -https?:\/\/([^\/]*\.)?citdokcna\.dynamicbb\.com -https?:\/\/([^\/]*\.)?citeccit\.forumculture\.net -https?:\/\/([^\/]*\.)?citpocit\.dynamicforum\.net -https?:\/\/([^\/]*\.)?civisi\.com -https?:\/\/([^\/]*\.)?cixingcailiao\.dzsc\.com -https?:\/\/([^\/]*\.)?cjhx6\.szm\.sk -https?:\/\/([^\/]*\.)?ckalv\.szm\.sk -https?:\/\/([^\/]*\.)?ckfhhw4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ckqabl1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?claca\.blogcu\.com -https?:\/\/([^\/]*\.)?claire-k6kkha\.blogspot\.com -https?:\/\/([^\/]*\.)?clancy-i1ib\.blogspot\.com -https?:\/\/([^\/]*\.)?clara-mj6ts\.blogspot\.com -https?:\/\/([^\/]*\.)?clarissa-o14r\.blogspot\.com -https?:\/\/([^\/]*\.)?clark-asa0i3mfvr\.blogspot\.com -https?:\/\/([^\/]*\.)?classic-porn-clip-zoneykt\.blogspot\.com -https?:\/\/([^\/]*\.)?claude-blw\.blogspot\.com -https?:\/\/([^\/]*\.)?claudia-c7ut8jj4\.blogspot\.com -https?:\/\/([^\/]*\.)?clay-e-facial-mask-vitamin\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cleaner-ddiggwqy1t\.blogspot\.com -https?:\/\/([^\/]*\.)?clearmp3\.net -https?:\/\/([^\/]*\.)?clerk\.lir\.dk -https?:\/\/([^\/]*\.)?cletoac\.lolbb\.com -https?:\/\/([^\/]*\.)?cleveland-txjimr\.blogspot\.com -https?:\/\/([^\/]*\.)?clickhere2\.net -https?:\/\/([^\/]*\.)?clior\.graphforum\.com -https?:\/\/([^\/]*\.)?clip-ebony-lesbian-porn\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?clip-ebony-porn\.medved\.od\.ua -https?:\/\/([^\/]*\.)?clip-free-hand-job-movie-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?clip-free-porn-psp-newsy66\.blogspot\.com -https?:\/\/([^\/]*\.)?clip-hentai\.dreamsuit\.net -https?:\/\/([^\/]*\.)?clip-hunter-porn-blogctv\.blogspot\.com -https?:\/\/([^\/]*\.)?clip-hunter-porn-zone8y6\.blogspot\.com -https?:\/\/([^\/]*\.)?clip-malay-porn-newsgrq\.blogspot\.com -https?:\/\/([^\/]*\.)?clip-malay-porn-zone1w3\.blogspot\.com -https?:\/\/([^\/]*\.)?clipgalaxy-com-i4z645\.blogspot\.com -https?:\/\/([^\/]*\.)?clipgalaxy-com-io8ncz\.blogspot\.com -https?:\/\/([^\/]*\.)?clipper-e2buyg\.blogspot\.com -https?:\/\/([^\/]*\.)?clirol\.dl\.pl -https?:\/\/([^\/]*\.)?clit-huge-real\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?cllivers\.dl\.pl -https?:\/\/([^\/]*\.)?clobetasol-propionate\.tlg\.pl -https?:\/\/([^\/]*\.)?cloclo-w046r\.blogspot\.com -https?:\/\/([^\/]*\.)?clonazepam\.us\.tf -https?:\/\/([^\/]*\.)?clonazepamscz\.blogspot\.com -https?:\/\/([^\/]*\.)?clonazepamuej\.blogspot\.com -https?:\/\/([^\/]*\.)?clonsex\.info -https?:\/\/([^\/]*\.)?closeout-womens-rain-boot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?clothes-newborns\.loretic\.be -https?:\/\/([^\/]*\.)?cloudydayshadow\.blogspot\.com -https?:\/\/([^\/]*\.)?clover-rs04\.blogspot\.com -https?:\/\/([^\/]*\.)?clowns-gloi\.blogspot\.com -https?:\/\/([^\/]*\.)?clu\.cn -https?:\/\/([^\/]*\.)?clumsy-hl0fwl1k\.blogspot\.com -https?:\/\/([^\/]*\.)?cluster-k4ovd06ibi\.blogspot\.com -https?:\/\/([^\/]*\.)?clwilbur\.ifrance\.com -https?:\/\/([^\/]*\.)?clyaod2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cmauq\.com -https?:\/\/([^\/]*\.)?cmnanwe\.com -https?:\/\/([^\/]*\.)?cmsrt\.szm\.sk -https?:\/\/([^\/]*\.)?cmubroadway\.blogspot\.com -https?:\/\/([^\/]*\.)?cnaalget\.graphforum\.com -https?:\/\/([^\/]*\.)?cnaalget\.highforum\.net -https?:\/\/([^\/]*\.)?cnac4t-or\.bbgraf\.com -https?:\/\/([^\/]*\.)?cnadel6or6\.dl\.pl -https?:\/\/([^\/]*\.)?cnaeltbo\.discutforum\.com -https?:\/\/([^\/]*\.)?cnaeltdron\.bb-fr\.com -https?:\/\/([^\/]*\.)?cnapasou\.graphforum\.com -https?:\/\/([^\/]*\.)?cnatral\.xa\.pl -https?:\/\/([^\/]*\.)?cnbess\.com -https?:\/\/([^\/]*\.)?cnbf2\.szm\.sk -https?:\/\/([^\/]*\.)?cncarcenter\.com -https?:\/\/([^\/]*\.)?cnfibernet\.com\.cn -https?:\/\/([^\/]*\.)?cnmarketingresearch\.com -https?:\/\/([^\/]*\.)?cnplayhome\.cn -https?:\/\/([^\/]*\.)?cnticket\.net -https?:\/\/([^\/]*\.)?co-alf\.blogspot\.com -https?:\/\/([^\/]*\.)?co-video-de-sexo-gratis-download\.blogspot\.com -https?:\/\/([^\/]*\.)?co6or6bo\.dl\.pl -https?:\/\/([^\/]*\.)?coacdar\.bbfr\.net -https?:\/\/([^\/]*\.)?coachescorner\.com -https?:\/\/([^\/]*\.)?cock-and-ball-punishment\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cock-deep-huge-throat\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cock-love-teen\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?cock-petite-sucker\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?cock-roaches-picture\.medved\.od\.ua -https?:\/\/([^\/]*\.)?cock-sexy-sucker\.medved\.od\.ua -https?:\/\/([^\/]*\.)?cock-story-sucker\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cocnacna\.dl\.pl -https?:\/\/([^\/]*\.)?cocoel\.lightbb\.com -https?:\/\/([^\/]*\.)?coconel\.frbb\.net -https?:\/\/([^\/]*\.)?codarget\.dl\.pl -https?:\/\/([^\/]*\.)?codigodor\.blogspot\.com -https?:\/\/([^\/]*\.)?coiqen\.com -https?:\/\/([^\/]*\.)?cold-hard-bitch-lyric\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?college-fucking-video-free\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?college1-degree\.boom\.ru -https?:\/\/([^\/]*\.)?college1degree\.chat\.ru -https?:\/\/([^\/]*\.)?college1degree1p\.chat\.ru -https?:\/\/([^\/]*\.)?colodom\.frbb\.net -https?:\/\/([^\/]*\.)?colorado\.edu -https?:\/\/([^\/]*\.)?coloradomortgage-x\.com -https?:\/\/([^\/]*\.)?com-dick-fick-n-suck\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?comic-fetish-info-remember\.medved\.od\.ua -https?:\/\/([^\/]*\.)?comic-hardcore-info-remember-sex\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?comicvmarriage\.spycams777\.com -https?:\/\/([^\/]*\.)?commercialleaseonline\.info -https?:\/\/([^\/]*\.)?communicationagency\.com -https?:\/\/([^\/]*\.)?comontr\.bb-fr\.com -https?:\/\/([^\/]*\.)?companyforyou\.com -https?:\/\/([^\/]*\.)?competitio\.ifrance\.com -https?:\/\/([^\/]*\.)?computer-desk\.fromru\.com -https?:\/\/([^\/]*\.)?computer1degree\.chat\.ru -https?:\/\/([^\/]*\.)?computerxchange\.com -https?:\/\/([^\/]*\.)?comradealtmer\.blogspot\.com -https?:\/\/([^\/]*\.)?condition-skin\.newmail\.ru -https?:\/\/([^\/]*\.)?condition_skin\.chat\.ru -https?:\/\/([^\/]*\.)?condom-delivered-free-free-uk\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?condom-picture-penis\.protime\.in\.ua -https?:\/\/([^\/]*\.)?connecticutmortgage-x\.com -https?:\/\/([^\/]*\.)?conor2k\.007webpro\.com -https?:\/\/([^\/]*\.)?consistmay\.tripod\.com -https?:\/\/([^\/]*\.)?consolidation-loan-studentqdl\.blogspot\.com -https?:\/\/([^\/]*\.)?consultanthub\.com -https?:\/\/([^\/]*\.)?cooking-crazy\.com -https?:\/\/([^\/]*\.)?cool-mp3\.biz -https?:\/\/([^\/]*\.)?coolhost\.biz -https?:\/\/([^\/]*\.)?copasleto\.zj\.pl -https?:\/\/([^\/]*\.)?copyok\.net -https?:\/\/([^\/]*\.)?coricidin\.tlg\.pl -https?:\/\/([^\/]*\.)?cornut\.ipupdater\.com -https?:\/\/([^\/]*\.)?coro-aaliyah\.blogspot\.com -https?:\/\/([^\/]*\.)?corporategifts-guide\.com -https?:\/\/([^\/]*\.)?corsv\.fr33webhost\.com -https?:\/\/([^\/]*\.)?cortech\.cn -https?:\/\/([^\/]*\.)?cositbo\.bbgraf\.com -https?:\/\/([^\/]*\.)?cosmiboe\.forumzen\.com -https?:\/\/([^\/]*\.)?cosmicray\.umd\.edu -https?:\/\/([^\/]*\.)?coswishe\.dl\.pl -https?:\/\/([^\/]*\.)?cotton-gloves\.loretic\.be -https?:\/\/([^\/]*\.)?counciloflight\.com -https?:\/\/([^\/]*\.)?couple-fucking-photo\.medved\.od\.ua -https?:\/\/([^\/]*\.)?couple-kissing-pic\.protime\.in\.ua -https?:\/\/([^\/]*\.)?couponmountain\.com -https?:\/\/([^\/]*\.)?courses\.csusm\.edu -https?:\/\/([^\/]*\.)?courtinfroggie\.blogspot\.com -https?:\/\/([^\/]*\.)?covarou\.su\.pl -https?:\/\/([^\/]*\.)?cowei\.net -https?:\/\/([^\/]*\.)?cowlist-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?cozaar\.4\.pl -https?:\/\/([^\/]*\.)?cozaarbuy\.hello\.to -https?:\/\/([^\/]*\.)?cozaarcheap\.mysite\.de -https?:\/\/([^\/]*\.)?cozaarcheapgeneric\.warp9\.to -https?:\/\/([^\/]*\.)?cozaargeneric\.everything\.at -https?:\/\/([^\/]*\.)?cozaargenericcheap\.dive\.to -https?:\/\/([^\/]*\.)?cpayscom\.xwiki\.com -https?:\/\/([^\/]*\.)?cpkna\.szm\.sk -https?:\/\/([^\/]*\.)?cpsyy\.fr33webhost\.com -https?:\/\/([^\/]*\.)?cpyngke\.com -https?:\/\/([^\/]*\.)?cqbhn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cqfmz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cqjbjx1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cr4ix7\.com -https?:\/\/([^\/]*\.)?crabs\.isgre\.at -https?:\/\/([^\/]*\.)?cramp-hand-leg\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?crashdome\.info -https?:\/\/([^\/]*\.)?crazyvirgin\.info -https?:\/\/([^\/]*\.)?crbackus\.dl\.pl -https?:\/\/([^\/]*\.)?crcather\.dl\.pl -https?:\/\/([^\/]*\.)?cream-facial-pie\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cream-hairy-mature-movie-pie-pussy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?creampie\.coz\.in -https?:\/\/([^\/]*\.)?creating-a-boot-cd\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?credit-dreams\.com -https?:\/\/([^\/]*\.)?creditcards-x\.com -https?:\/\/([^\/]*\.)?credoninc\.com -https?:\/\/([^\/]*\.)?crestor-rx\.one2you\.info -https?:\/\/([^\/]*\.)?crestor\.dynalias\.net -https?:\/\/([^\/]*\.)?criminal-j-degre\.boom\.ru -https?:\/\/([^\/]*\.)?crimson-teens\.freeinsite\.net -https?:\/\/([^\/]*\.)?cristal-fenix\.isuisse\.com -https?:\/\/([^\/]*\.)?crookedscud\.myfreewebs\.net -https?:\/\/([^\/]*\.)?crossed-leg-gallery\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?crossed-leg-short-skirt-stocking-top\.protime\.in\.ua -https?:\/\/([^\/]*\.)?crrenee\.dl\.pl -https?:\/\/([^\/]*\.)?crsundke\.dl\.pl -https?:\/\/([^\/]*\.)?cruise-guide\.org -https?:\/\/([^\/]*\.)?cruise-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?crzvh\.szm\.sk -https?:\/\/([^\/]*\.)?cscla\.net -https?:\/\/([^\/]*\.)?cscserver\.cc\.edu -https?:\/\/([^\/]*\.)?csitdom\.bbgraf\.com -https?:\/\/([^\/]*\.)?csmwui11\.com -https?:\/\/([^\/]*\.)?csosandbox\.clemson\.edu -https?:\/\/([^\/]*\.)?ctdq0\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ctl\.csudh\.edu -https?:\/\/([^\/]*\.)?ctusxc4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?cubaka\.yi\.org -https?:\/\/([^\/]*\.)?cufgq\.szm\.sk -https?:\/\/([^\/]*\.)?cuicui\.monblog\.ch -https?:\/\/([^\/]*\.)?cuiugcg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?culinary-school\.newmail\.ru -https?:\/\/([^\/]*\.)?culinary1school\.chat\.ru -https?:\/\/([^\/]*\.)?cum-drenched-pantie\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-drink-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-dvd-face-private-private-rip-vcd\.protime\.in\.ua -https?:\/\/([^\/]*\.)?cum-ebony-face\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?cum-face-asian\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?cum-face-pic\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-face-picture\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-facial-messy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?cum-facial-video-free-clip\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cum-filled-pussy-picture\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-kiss-lick-shoes-suck-worship\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cum-mouth-ebony\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cum-nurse-sex-shot\.protime\.in\.ua -https?:\/\/([^\/]*\.)?cum-se-face-sex\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?cum-shot-movie\.dreamsuit\.net -https?:\/\/([^\/]*\.)?cum-swallow-vids\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?cuola\.goodforum\.net -https?:\/\/([^\/]*\.)?cut-xmeup-com\.blogspot\.com -https?:\/\/([^\/]*\.)?cute-ebony-girl\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?cute-girldzy\.blogspot\.com -https?:\/\/([^\/]*\.)?cutgetolo\.zikforum\.com -https?:\/\/([^\/]*\.)?cutvili\.winnerforum\.net -https?:\/\/([^\/]*\.)?cvep2\.szm\.sk -https?:\/\/([^\/]*\.)?cvipm\.com -https?:\/\/([^\/]*\.)?cxolt\.szm\.sk -https?:\/\/([^\/]*\.)?cyberlinx\.us -https?:\/\/([^\/]*\.)?cycleworldsuzuki\.info -https?:\/\/([^\/]*\.)?cyclobenzaprine\.1\.p2l\.info -https?:\/\/([^\/]*\.)?cysrf\.szm\.sk -https?:\/\/([^\/]*\.)?cytonrok\.forumculture\.net -https?:\/\/([^\/]*\.)?czelvar\.su\.pl -https?:\/\/([^\/]*\.)?czis0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?d-z-free-lesbian-movie-h\.blogspot\.com -https?:\/\/([^\/]*\.)?daddy-bear-gay\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?daddy-long-leg-venom\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?daily-porn-clip-news0we\.blogspot\.com -https?:\/\/([^\/]*\.)?dailybasis-com-cky8ax\.blogspot\.com -https?:\/\/([^\/]*\.)?dami3\.com -https?:\/\/([^\/]*\.)?danazol\.4\.pl -https?:\/\/([^\/]*\.)?dance-instruction\.lkerfocu\.be -https?:\/\/([^\/]*\.)?danga4ka\.blogspot\.com -https?:\/\/([^\/]*\.)?dansmovies-com-mu2ywho24d\.blogspot\.com -https?:\/\/([^\/]*\.)?daractr\.goodbb\.net -https?:\/\/([^\/]*\.)?darboboc\.dl\.pl -https?:\/\/([^\/]*\.)?darboctroc\.dl\.pl -https?:\/\/([^\/]*\.)?darcnaec\.dynamicbb\.com -https?:\/\/([^\/]*\.)?darcoca\.dl\.pl -https?:\/\/([^\/]*\.)?dardomcna\.blogcu\.com -https?:\/\/([^\/]*\.)?dardomdom\.darkbb\.com -https?:\/\/([^\/]*\.)?dardomzel\.blogcu\.com -https?:\/\/([^\/]*\.)?dare-poker\.com -https?:\/\/([^\/]*\.)?darelttr\.dl\.pl -https?:\/\/([^\/]*\.)?dargetou\.darkbb\.com -https?:\/\/([^\/]*\.)?darladom\.td\.pl -https?:\/\/([^\/]*\.)?darlala\.winnerforum\.net -https?:\/\/([^\/]*\.)?darlina-a1vds\.blogspot\.com -https?:\/\/([^\/]*\.)?darlina-akp4\.blogspot\.com -https?:\/\/([^\/]*\.)?darlina-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?darlina-tcifizmx\.blogspot\.com -https?:\/\/([^\/]*\.)?darmonrol\.zj\.pl -https?:\/\/([^\/]*\.)?darricer\.fr-bb\.com -https?:\/\/([^\/]*\.)?darzeltroc\.dl\.pl -https?:\/\/([^\/]*\.)?dasepluv\.dl\.pl -https?:\/\/([^\/]*\.)?dashulya\.blogspot\.com -https?:\/\/([^\/]*\.)?dastino\.republika\.pl -https?:\/\/([^\/]*\.)?data-mining\.massioni\.be -https?:\/\/([^\/]*\.)?datangid\.com -https?:\/\/([^\/]*\.)?datasol\.org -https?:\/\/([^\/]*\.)?dating-advice\.sexnation\.info -https?:\/\/([^\/]*\.)?dating-direct\.sexnation\.info -https?:\/\/([^\/]*\.)?dating\.sexnation\.info -https?:\/\/([^\/]*\.)?dave-hollister-ringtoneezm\.blogspot\.com -https?:\/\/([^\/]*\.)?dave-hollister-ringtonefoi\.blogspot\.com -https?:\/\/([^\/]*\.)?dave-hollister-ringtonewqs\.blogspot\.com -https?:\/\/([^\/]*\.)?davejackson\.com -https?:\/\/([^\/]*\.)?davte\.info -https?:\/\/([^\/]*\.)?dawsonanddadrealty\.com -https?:\/\/([^\/]*\.)?dayzve4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dbxbqb7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dc-escort-gay\.medved\.od\.ua -https?:\/\/([^\/]*\.)?dcuoo\.szm\.sk -https?:\/\/([^\/]*\.)?dcx\.org\.ua -https?:\/\/([^\/]*\.)?ddfz1\.szm\.sk -https?:\/\/([^\/]*\.)?ddlive\.info -https?:\/\/([^\/]*\.)?ddovj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ddpb6\.szm\.sk -https?:\/\/([^\/]*\.)?de-foto-gay-gratis-negros\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?dead-sea-product\.com -https?:\/\/([^\/]*\.)?deadsex\.info -https?:\/\/([^\/]*\.)?deadums\.blogspot\.com -https?:\/\/([^\/]*\.)?debk6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?debt-consolidation-care\.com -https?:\/\/([^\/]*\.)?debt-consolidation\.dd\.vg -https?:\/\/([^\/]*\.)?debtconsolidation-today\.com -https?:\/\/([^\/]*\.)?deepthroat\.coz\.in -https?:\/\/([^\/]*\.)?deerdeji\.forumzen\.com -https?:\/\/([^\/]*\.)?defacialize-com-td32\.blogspot\.com -https?:\/\/([^\/]*\.)?defi-adrian\.blogspot\.com -https?:\/\/([^\/]*\.)?degree-program\.hotmail\.ru -https?:\/\/([^\/]*\.)?degree2program\.chat\.ru -https?:\/\/([^\/]*\.)?dejablu503\.50webs\.org -https?:\/\/([^\/]*\.)?dela88\.com -https?:\/\/([^\/]*\.)?delacmon\.discutforum\.com -https?:\/\/([^\/]*\.)?delawaremortgage-x\.com -https?:\/\/([^\/]*\.)?delbocer\.dl\.pl -https?:\/\/([^\/]*\.)?delcnacna\.lolbb\.com -https?:\/\/([^\/]*\.)?delletopas\.su\.pl -https?:\/\/([^\/]*\.)?delliric\.dl\.pl -https?:\/\/([^\/]*\.)?delordel\.blogcu\.com -https?:\/\/([^\/]*\.)?delricchi\.goodforum\.net -https?:\/\/([^\/]*\.)?delricchi\.grafbb\.com -https?:\/\/([^\/]*\.)?delricou\.dl\.pl -https?:\/\/([^\/]*\.)?delserch\.com -https?:\/\/([^\/]*\.)?deltasone\.4\.pl -https?:\/\/([^\/]*\.)?deltnecca\.goodbb\.net -https?:\/\/([^\/]*\.)?delzelleto\.dl\.pl -https?:\/\/([^\/]*\.)?demingpower\.com -https?:\/\/([^\/]*\.)?denocel\.blogcu\.com -https?:\/\/([^\/]*\.)?dental-guide\.org -https?:\/\/([^\/]*\.)?dental\.gulfcoast\.edu -https?:\/\/([^\/]*\.)?dentalplans-x\.com -https?:\/\/([^\/]*\.)?deomnoou\.jconserv\.net -https?:\/\/([^\/]*\.)?depamu\.com -https?:\/\/([^\/]*\.)?depstore\.milan\.jp -https?:\/\/([^\/]*\.)?derast\.com -https?:\/\/([^\/]*\.)?derimc\.com -https?:\/\/([^\/]*\.)?description\.hostonmars\.com -https?:\/\/([^\/]*\.)?desent\.8tt\.org -https?:\/\/([^\/]*\.)?design4italy\.org -https?:\/\/([^\/]*\.)?designatchina\.com -https?:\/\/([^\/]*\.)?designer-purses\.blogspot\.com -https?:\/\/([^\/]*\.)?desk-teen-d\.blogspot\.com -https?:\/\/([^\/]*\.)?desyrel\.4\.pl -https?:\/\/([^\/]*\.)?detriot\.dtdns\.net -https?:\/\/([^\/]*\.)?deutschland-heute\.de\.tl -https?:\/\/([^\/]*\.)?devine-friend-hot-mom\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?dewall\.info -https?:\/\/([^\/]*\.)?dg\.188info\.com -https?:\/\/([^\/]*\.)?dgvy5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dial3\.szm\.sk -https?:\/\/([^\/]*\.)?diamond73\.50webs\.com -https?:\/\/([^\/]*\.)?dianchi\.dzsc\.com -https?:\/\/([^\/]*\.)?diandongji\.dzsc\.com -https?:\/\/([^\/]*\.)?dianganqi\.dzsc\.com -https?:\/\/([^\/]*\.)?dianluban\.dzsc\.com -https?:\/\/([^\/]*\.)?dianre\.dzsc\.com -https?:\/\/([^\/]*\.)?dianrong\.dzsc\.com -https?:\/\/([^\/]*\.)?dianweiqi\.dzsc\.com -https?:\/\/([^\/]*\.)?dianyuan\.dzsc\.com -https?:\/\/([^\/]*\.)?dianziguan\.dzsc\.com -https?:\/\/([^\/]*\.)?dianzu\.dzsc\.com -https?:\/\/([^\/]*\.)?diazepam\.47\.pl -https?:\/\/([^\/]*\.)?diazepam\.skocz\.net -https?:\/\/([^\/]*\.)?diazepam2\.forospace\.com -https?:\/\/([^\/]*\.)?diazepams\.ru\.tf -https?:\/\/([^\/]*\.)?dick-butkus-football-player\.protime\.in\.ua -https?:\/\/([^\/]*\.)?dick-donkey-sucking-woman\.protime\.in\.ua -https?:\/\/([^\/]*\.)?dick-fat-in-pussy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?dick-head-john-kerry\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?dick-hot-man-video\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?dicks-sporting-goods-web-site\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?didrex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?didrex\.int\.tf -https?:\/\/([^\/]*\.)?diebart\.asp2\.cz -https?:\/\/([^\/]*\.)?diesite\.com -https?:\/\/([^\/]*\.)?diet-pills-phentermine-pill-buy-cheap-online\.com -https?:\/\/([^\/]*\.)?diet-pills911\.com -https?:\/\/([^\/]*\.)?diffusersudan\.org -https?:\/\/([^\/]*\.)?diflucanbuycheap\.top\.ms -https?:\/\/([^\/]*\.)?diflucancheapbuy\.drop\.to -https?:\/\/([^\/]*\.)?diflucancheapgeneric\.notrix\.net -https?:\/\/([^\/]*\.)?diflucangeneric\.hey\.to -https?:\/\/([^\/]*\.)?diflucangenericbuy\.hp\.ms -https?:\/\/([^\/]*\.)?digilander\.libero\.it -https?:\/\/([^\/]*\.)?digital-glamour\.com -https?:\/\/([^\/]*\.)?digitalpoimt\.com -https?:\/\/([^\/]*\.)?dildo-extreme-free-movie\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?dildo-in-guys-ass\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?dilhbi7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dionysios-r\.blogspot\.com -https?:\/\/([^\/]*\.)?dir\.opank\.com -https?:\/\/([^\/]*\.)?dirare\.com -https?:\/\/([^\/]*\.)?directonlineguide\.com -https?:\/\/([^\/]*\.)?dirty-blonde-teen\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?dirty-ru-lenta\.blogspot\.com -https?:\/\/([^\/]*\.)?dirtyrhino-com-iy5ps48s\.blogspot\.com -https?:\/\/([^\/]*\.)?dirtyrhino-com-rjrotse3\.blogspot\.com -https?:\/\/([^\/]*\.)?discasegeta\.0moola\.com -https?:\/\/([^\/]*\.)?discontinued-chanel-lipstick\.protime\.in\.ua -https?:\/\/([^\/]*\.)?discount-femina-lingerie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?discount-phentermine\.health-livening\.com -https?:\/\/([^\/]*\.)?discount-phentermine\.presteert\.nl -https?:\/\/([^\/]*\.)?discounted-medications\.com -https?:\/\/([^\/]*\.)?discountphentermine\.livelog\.com -https?:\/\/([^\/]*\.)?discussions\.csbsju\.edu -https?:\/\/([^\/]*\.)?dissected-voice\.blogspot\.com -https?:\/\/([^\/]*\.)?diuvw\.szm\.sk -https?:\/\/([^\/]*\.)?diva-58\.site\.voila\.fr -https?:\/\/([^\/]*\.)?divtab\.com -https?:\/\/([^\/]*\.)?dixe-alayna\.blogspot\.com -https?:\/\/([^\/]*\.)?dixiecuties-com-av\.blogspot\.com -https?:\/\/([^\/]*\.)?dixiecuties-com-wpf1g2a\.blogspot\.com -https?:\/\/([^\/]*\.)?dka2e\.nokedem\.com -https?:\/\/([^\/]*\.)?dlaners\.blogspot\.com -https?:\/\/([^\/]*\.)?dljs5\.szm\.sk -https?:\/\/([^\/]*\.)?dltz4\.szm\.sk -https?:\/\/([^\/]*\.)?dlwlh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dlzgn\.szm\.sk -https?:\/\/([^\/]*\.)?dm-cqsf\.cn -https?:\/\/([^\/]*\.)?dm-soft\.com -https?:\/\/([^\/]*\.)?dmnft\.net -https?:\/\/([^\/]*\.)?dnk-design\.com -https?:\/\/([^\/]*\.)?do-ali\.blogspot\.com -https?:\/\/([^\/]*\.)?do-hot-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?doctorpinkerton\.ifrance\.com -https?:\/\/([^\/]*\.)?doenertreff\.de -https?:\/\/([^\/]*\.)?dogdead\.50webs\.com -https?:\/\/([^\/]*\.)?dogider-big-tit-round-a-p\.blogspot\.com -https?:\/\/([^\/]*\.)?dogzilla30\.blogspot\.com -https?:\/\/([^\/]*\.)?dohr\.joolo\.com -https?:\/\/([^\/]*\.)?dokrichi\.forumculture\.net -https?:\/\/([^\/]*\.)?dokuno-porn-clip\.blogspot\.com -https?:\/\/([^\/]*\.)?dollmovies-com-e7lqyhq\.blogspot\.com -https?:\/\/([^\/]*\.)?dom-or-dron\.jc\.pl -https?:\/\/([^\/]*\.)?domdronno\.xa\.pl -https?:\/\/([^\/]*\.)?dome-ebony-foot-herbies\.protime\.in\.ua -https?:\/\/([^\/]*\.)?domelc4t\.dl\.pl -https?:\/\/([^\/]*\.)?domest1co\.info -https?:\/\/([^\/]*\.)?domestic0\.info -https?:\/\/([^\/]*\.)?domnoor\.blogcu\.com -https?:\/\/([^\/]*\.)?domorca\.darkbb\.com -https?:\/\/([^\/]*\.)?dompasvi\.alkablog\.com -https?:\/\/([^\/]*\.)?domrelou\.discutfree\.com -https?:\/\/([^\/]*\.)?domtadom\.blogcu\.com -https?:\/\/([^\/]*\.)?domtael\.dl\.pl -https?:\/\/([^\/]*\.)?don-search\.com -https?:\/\/([^\/]*\.)?dong-sheng\.com -https?:\/\/([^\/]*\.)?dono-alaska\.blogspot\.com -https?:\/\/([^\/]*\.)?doodlepets\.net -https?:\/\/([^\/]*\.)?doormat\.ncedly\.be -https?:\/\/([^\/]*\.)?dorank\.com -https?:\/\/([^\/]*\.)?dorintop\.9999mb\.com -https?:\/\/([^\/]*\.)?dotbusinessbroker\.info -https?:\/\/([^\/]*\.)?dottorstranamore\.com -https?:\/\/([^\/]*\.)?dotwirelessinternet\.info -https?:\/\/([^\/]*\.)?double-anal-insertion\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?doubledrilled-com-ru\.blogspot\.com -https?:\/\/([^\/]*\.)?douglasgenetic\.org -https?:\/\/([^\/]*\.)?download-fisting-free-movie-pussy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?download-free-porn-clip-zone186\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-porn-movie-bb-bb-h\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-ringtonebso\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-ringtonekdw\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-ringtonekfb\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-ringtoneoug\.blogspot\.com -https?:\/\/([^\/]*\.)?download-free-ringtonesasd\.blogspot\.com -https?:\/\/([^\/]*\.)?download-ringtonevnr\.blogspot\.com -https?:\/\/([^\/]*\.)?downloadfreeringtonengp\.blogspot\.com -https?:\/\/([^\/]*\.)?downsms\.blogbus\.com -https?:\/\/([^\/]*\.)?dpfanatics-com-t7nqv\.blogspot\.com -https?:\/\/([^\/]*\.)?dqezl\.szm\.sk -https?:\/\/([^\/]*\.)?draghi\.ll11\.info -https?:\/\/([^\/]*\.)?dragonballxxx-gratis\.19mb\.info -https?:\/\/([^\/]*\.)?dragonmovies-dd2bm5sn\.blogspot\.com -https?:\/\/([^\/]*\.)?dragonmovies-rwng8vm7j\.blogspot\.com -https?:\/\/([^\/]*\.)?drbizzaro-com-r5\.blogspot\.com -https?:\/\/([^\/]*\.)?drdos\.50webs\.org -https?:\/\/([^\/]*\.)?dreamathk\.com -https?:\/\/([^\/]*\.)?dreamatsh\.com -https?:\/\/([^\/]*\.)?dreamhk\.org -https?:\/\/([^\/]*\.)?dress-jacket\.haemati\.be -https?:\/\/([^\/]*\.)?drithle\.com -https?:\/\/([^\/]*\.)?driving-school\.hotmail\.ru -https?:\/\/([^\/]*\.)?driving2school\.chat\.ru -https?:\/\/([^\/]*\.)?dronaceldar\.darkbb\.com -https?:\/\/([^\/]*\.)?dronc4tta\.blogcu\.com -https?:\/\/([^\/]*\.)?droncaca\.blogcu\.com -https?:\/\/([^\/]*\.)?dronchitr\.blogcu\.com -https?:\/\/([^\/]*\.)?drondomrac\.bb-fr\.com -https?:\/\/([^\/]*\.)?drondrontr\.zikforum\.com -https?:\/\/([^\/]*\.)?dronladar\.discutfree\.com -https?:\/\/([^\/]*\.)?dronladar\.dynamicforum\.net -https?:\/\/([^\/]*\.)?dronrelco\.td\.pl -https?:\/\/([^\/]*\.)?drownedmagenta\.50webs\.org -https?:\/\/([^\/]*\.)?drug\.prtime\.ru -https?:\/\/([^\/]*\.)?drunkgirls\.coz\.in -https?:\/\/([^\/]*\.)?dry-skin\.boom\.ru -https?:\/\/([^\/]*\.)?dry1skin\.chat\.ru -https?:\/\/([^\/]*\.)?dscw0\.szm\.sk -https?:\/\/([^\/]*\.)?dtmpdpxmsu-video\.blogspot\.com -https?:\/\/([^\/]*\.)?du-alice\.blogspot\.com -https?:\/\/([^\/]*\.)?duaroti\.50webs\.com -https?:\/\/([^\/]*\.)?dub-dom-adu\.blogspot\.com -https?:\/\/([^\/]*\.)?duckyporn-ifl4u28p\.blogspot\.com -https?:\/\/([^\/]*\.)?ducpjo3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dudoctor\.com -https?:\/\/([^\/]*\.)?dudubilz\.dl\.pl -https?:\/\/([^\/]*\.)?dumtrric\.forumzen\.com -https?:\/\/([^\/]*\.)?duncemoney\.com -https?:\/\/([^\/]*\.)?dunham-hiking-boot\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?dup-xxxfolder-com\.blogspot\.com -https?:\/\/([^\/]*\.)?dupiwu\.com -https?:\/\/([^\/]*\.)?duptv\.szm\.sk -https?:\/\/([^\/]*\.)?dushen\.net\.cn -https?:\/\/([^\/]*\.)?dusts\.info -https?:\/\/([^\/]*\.)?dutbm\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?duxbd\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?duxfhgz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dvd-vergini-economici-r\.host24h\.info -https?:\/\/([^\/]*\.)?dvdunwritten\.toplog\.nl -https?:\/\/([^\/]*\.)?dwaeaz-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?dwsyv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?dxjyb\.szm\.sk -https?:\/\/([^\/]*\.)?dykzozqlpt-video\.blogspot\.com -https?:\/\/([^\/]*\.)?dzb\.com\.cn -https?:\/\/([^\/]*\.)?dzgzm\.cn -https?:\/\/([^\/]*\.)?dzjp\.left-page\.com -https?:\/\/([^\/]*\.)?dzjp\.zxvo\.com -https?:\/\/([^\/]*\.)?dzsb\.com -https?:\/\/([^\/]*\.)?dzsc\.com -https?:\/\/([^\/]*\.)?e-dishnetworks\.com -https?:\/\/([^\/]*\.)?e-fanyi\.org -https?:\/\/([^\/]*\.)?e-holdem\.net -https?:\/\/([^\/]*\.)?e\.kth\.se -https?:\/\/([^\/]*\.)?e16\.info -https?:\/\/([^\/]*\.)?e93\.iitalia\.com -https?:\/\/([^\/]*\.)?eaby2\.szm\.sk -https?:\/\/([^\/]*\.)?eacome\.com -https?:\/\/([^\/]*\.)?eafg6\.szm\.sk -https?:\/\/([^\/]*\.)?eaglechief\.com -https?:\/\/([^\/]*\.)?eamon-fuck-it-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?eappf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?earticlesonline\.com -https?:\/\/([^\/]*\.)?easy-furniture\.org -https?:\/\/([^\/]*\.)?easygals-com-h4\.blogspot\.com -https?:\/\/([^\/]*\.)?easypic-com-if7pnmrbxd\.blogspot\.com -https?:\/\/([^\/]*\.)?easypornstars-com-b8k4y\.blogspot\.com -https?:\/\/([^\/]*\.)?easypornstars-com-subut\.blogspot\.com -https?:\/\/([^\/]*\.)?easysail\.net\.cn -https?:\/\/([^\/]*\.)?eating-free-lesbian-pussy\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?eating-lesbian-pussy\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?ebackground-checks\.com -https?:\/\/([^\/]*\.)?ebdoc\.com -https?:\/\/([^\/]*\.)?ebnjj\.info -https?:\/\/([^\/]*\.)?ebony-free-woman\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ebony-fuck-tit\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ebony-horny-hot-woman\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?ebony-hot-outdoor\.protime\.in\.ua -https?:\/\/([^\/]*\.)?ebony-info-photo-remember-sexy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?ebony-info-remember-tit\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?ebony-party-sex\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ebony-porn-trailer\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?ebony-sex-com\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?ebony-teen-pic\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?ebony-teen-tgp\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?ebonyblack-net-gf\.blogspot\.com -https?:\/\/([^\/]*\.)?ebonyblack-net-m3dy7kn\.blogspot\.com -https?:\/\/([^\/]*\.)?ebonybooty\.wehostporno\.com -https?:\/\/([^\/]*\.)?ebusiness-cards\.org -https?:\/\/([^\/]*\.)?ecar-rentals\.com -https?:\/\/([^\/]*\.)?eccellente\.info -https?:\/\/([^\/]*\.)?ececu\.com -https?:\/\/([^\/]*\.)?echayka\.com -https?:\/\/([^\/]*\.)?eclexion\.net -https?:\/\/([^\/]*\.)?eclissi-di-luna\.host24h\.info -https?:\/\/([^\/]*\.)?ecomm1\.csug\.rochester\.edu -https?:\/\/([^\/]*\.)?econtact-lens\.com -https?:\/\/([^\/]*\.)?ed2k\.net\.ua -https?:\/\/([^\/]*\.)?edasim\.com -https?:\/\/([^\/]*\.)?eddiereva\.com -https?:\/\/([^\/]*\.)?edetrali\.jconserv\.net -https?:\/\/([^\/]*\.)?edomerna\.jconserv\.net -https?:\/\/([^\/]*\.)?edonline\.ua\.edu -https?:\/\/([^\/]*\.)?edqlzct\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?education\.beta\.edgewood\.edu -https?:\/\/([^\/]*\.)?education\.uncc\.edu -https?:\/\/([^\/]*\.)?education1degree\.chat\.ru -https?:\/\/([^\/]*\.)?ee3\.be -https?:\/\/([^\/]*\.)?eelive\.info -https?:\/\/([^\/]*\.)?eenxn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ees\.ufl\.edu -https?:\/\/([^\/]*\.)?eesg8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?eeshq\.com -https?:\/\/([^\/]*\.)?eetop\.info -https?:\/\/([^\/]*\.)?eevjgn7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?effexor-xr\.1\.p2l\.info -https?:\/\/([^\/]*\.)?effexor\.b0ne\.com -https?:\/\/([^\/]*\.)?egciz\.szm\.sk -https?:\/\/([^\/]*\.)?egnadn-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?egnpgno\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?egoldhyip\.athost\.net -https?:\/\/([^\/]*\.)?egoldhyip\.sitesfree\.com -https?:\/\/([^\/]*\.)?egunteronline\.com -https?:\/\/([^\/]*\.)?eightalya\.blogspot\.com -https?:\/\/([^\/]*\.)?eighty-8088\.blogspot\.com -https?:\/\/([^\/]*\.)?eijy7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ejeesf2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ejreoonster\.blogspot\.com -https?:\/\/([^\/]*\.)?ejvyd\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ejyt9\.szm\.sk -https?:\/\/([^\/]*\.)?ekajl\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ekjms\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ekttsaj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ekviceaia\.blogspot\.com -https?:\/\/([^\/]*\.)?ekxkfyz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?el-ladies-com-m4ayb\.blogspot\.com -https?:\/\/([^\/]*\.)?elacelal\.informe\.com -https?:\/\/([^\/]*\.)?elbasbo\.dl\.pl -https?:\/\/([^\/]*\.)?elbocboc\.bbgraf\.com -https?:\/\/([^\/]*\.)?elbows-at\.blogspot\.com -https?:\/\/([^\/]*\.)?elbtoy\.realpornstar\.net -https?:\/\/([^\/]*\.)?elcnaac\.cultureforum\.net -https?:\/\/([^\/]*\.)?electric-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?electric1scooter\.chat\.ru -https?:\/\/([^\/]*\.)?electricscooterland\.com -https?:\/\/([^\/]*\.)?elephantlist-com-hozhkwuac6\.blogspot\.com -https?:\/\/([^\/]*\.)?elephantlist-com-kedi0pfbp\.blogspot\.com -https?:\/\/([^\/]*\.)?elerc4t\.blogcu\.com -https?:\/\/([^\/]*\.)?eleven-heaven0a\.blogspot\.com -https?:\/\/([^\/]*\.)?elevtenl\.blogspot\.com -https?:\/\/([^\/]*\.)?elishacuthbertfansite\.com -https?:\/\/([^\/]*\.)?eliteclips-com-c0hwm3fji\.blogspot\.com -https?:\/\/([^\/]*\.)?eliteclips-com-k5hkm6yi\.blogspot\.com -https?:\/\/([^\/]*\.)?eliteclips-com-kzjz30a5k4\.blogspot\.com -https?:\/\/([^\/]*\.)?elixirium\.ifrance\.com -https?:\/\/([^\/]*\.)?eloloac\.bbgraf\.com -https?:\/\/([^\/]*\.)?eloudar\.discutforum\.com -https?:\/\/([^\/]*\.)?elovejob\.info -https?:\/\/([^\/]*\.)?elpos\.szm\.sk -https?:\/\/([^\/]*\.)?eltalchi\.bbfr\.net -https?:\/\/([^\/]*\.)?eltalli\.zj\.pl -https?:\/\/([^\/]*\.)?eltbuzel\.forumzen\.com -https?:\/\/([^\/]*\.)?eltcer\.winnerforum\.net -https?:\/\/([^\/]*\.)?eltgetric\.uy\.pl -https?:\/\/([^\/]*\.)?eltrelboc\.bbfr\.net -https?:\/\/([^\/]*\.)?eltrical\.uy\.pl -https?:\/\/([^\/]*\.)?eltroboc\.lolforum\.net -https?:\/\/([^\/]*\.)?eltrolpas\.winnerforum\.net -https?:\/\/([^\/]*\.)?elttaacel\.heavenforum\.com -https?:\/\/([^\/]*\.)?elttaacel\.highforum\.net -https?:\/\/([^\/]*\.)?elttrocpas\.discutforum\.com -https?:\/\/([^\/]*\.)?elwg0\.szm\.sk -https?:\/\/([^\/]*\.)?elysium-ringtonebub\.blogspot\.com -https?:\/\/([^\/]*\.)?elysium-ringtonemzb\.blogspot\.com -https?:\/\/([^\/]*\.)?elzelchi\.cultureforum\.net -https?:\/\/([^\/]*\.)?emails\.ncedly\.be -https?:\/\/([^\/]*\.)?emea-consulting\.net -https?:\/\/([^\/]*\.)?emily\.slyip\.com -https?:\/\/([^\/]*\.)?eminem-suck-my-dick\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?eminem-veyb\.blogspot\.com -https?:\/\/([^\/]*\.)?eminen-lyric-ass-like-that\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?empire-holdem\.com -https?:\/\/([^\/]*\.)?empire-holdem\.net -https?:\/\/([^\/]*\.)?empire-holdem\.us -https?:\/\/([^\/]*\.)?empire-poker\.black-poker\.com -https?:\/\/([^\/]*\.)?empirepoker\.u288\.com -https?:\/\/([^\/]*\.)?emxk0\.szm\.sk -https?:\/\/([^\/]*\.)?ena-free-show\.net -https?:\/\/([^\/]*\.)?enchanted1312\.blogspot\.com -https?:\/\/([^\/]*\.)?end14april\.ifrance\.com -https?:\/\/([^\/]*\.)?enema-fetish-free-picture\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?energo\.us -https?:\/\/([^\/]*\.)?enetdrugsonline\.org -https?:\/\/([^\/]*\.)?enfoldrevel\.epinoy\.com -https?:\/\/([^\/]*\.)?engineerin2degre\.chat\.ru -https?:\/\/([^\/]*\.)?engs\.info -https?:\/\/([^\/]*\.)?enpresse\.1\.p2l\.info -https?:\/\/([^\/]*\.)?enteworld\.com -https?:\/\/([^\/]*\.)?eoglu\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?eour8\.szm\.sk -https?:\/\/([^\/]*\.)?ephedra\.269g\.net -https?:\/\/([^\/]*\.)?ephedraproduct\.seesaa\.net -https?:\/\/([^\/]*\.)?epiqq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?epointer\.freewebpage\.org -https?:\/\/([^\/]*\.)?eprom-dresses\.com -https?:\/\/([^\/]*\.)?epxxw\.szm\.sk -https?:\/\/([^\/]*\.)?erasser\.8tt\.org -https?:\/\/([^\/]*\.)?erbocco\.discutforum\.com -https?:\/\/([^\/]*\.)?erc4tget\.blogcu\.com -https?:\/\/([^\/]*\.)?erdomrol\.heavenforum\.com -https?:\/\/([^\/]*\.)?erdomrol\.highforum\.net -https?:\/\/([^\/]*\.)?ereaa\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?erealtystore\.com -https?:\/\/([^\/]*\.)?erelleta\.forumzen\.com -https?:\/\/([^\/]*\.)?eremat\.com -https?:\/\/([^\/]*\.)?erjiguan\.dzsc\.com -https?:\/\/([^\/]*\.)?erlitroc\.xa\.pl -https?:\/\/([^\/]*\.)?ernvmf7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?erotic-gay-male-sex-story\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?erotic-story-fem-dom\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?ertral\.alkablog\.com -https?:\/\/([^\/]*\.)?erw1r\.info -https?:\/\/([^\/]*\.)?escher\.isis\.vanderbilt\.edu -https?:\/\/([^\/]*\.)?eseo\.cn -https?:\/\/([^\/]*\.)?esgic\.1\.p2l\.info -https?:\/\/([^\/]*\.)?eshilzet\.forumzen\.com -https?:\/\/([^\/]*\.)?esino\.info -https?:\/\/([^\/]*\.)?esiti-gara\.hostzz\.info -https?:\/\/([^\/]*\.)?esjpd\.szm\.sk -https?:\/\/([^\/]*\.)?esmpa\.com -https?:\/\/([^\/]*\.)?esportswave\.com -https?:\/\/([^\/]*\.)?esraj\.com -https?:\/\/([^\/]*\.)?esseiwer\.dl\.pl -https?:\/\/([^\/]*\.)?estarcollector\.blogspot\.com -https?:\/\/([^\/]*\.)?etac4\.szm\.sk -https?:\/\/([^\/]*\.)?etcoq\.szm\.sk -https?:\/\/([^\/]*\.)?etgelcca\.forumzen\.com -https?:\/\/([^\/]*\.)?ethnicpassion-com-db5\.blogspot\.com -https?:\/\/([^\/]*\.)?ethnicpassion-com-ik80lyfnd\.blogspot\.com -https?:\/\/([^\/]*\.)?ethnicpassion-com-iqa3gt\.blogspot\.com -https?:\/\/([^\/]*\.)?ethnicpassion-com-itw\.blogspot\.com -https?:\/\/([^\/]*\.)?etjhechi\.forumzen\.com -https?:\/\/([^\/]*\.)?etjhetrd\.forumzen\.com -https?:\/\/([^\/]*\.)?etkrudom\.forumzen\.com -https?:\/\/([^\/]*\.)?etlitvir\.forumzen\.com -https?:\/\/([^\/]*\.)?etlurlir\.forumzen\.com -https?:\/\/([^\/]*\.)?etmuhlie\.forumzen\.com -https?:\/\/([^\/]*\.)?etnuidet\.forumzen\.com -https?:\/\/([^\/]*\.)?etofas\.com -https?:\/\/([^\/]*\.)?etrart\.com -https?:\/\/([^\/]*\.)?etrewlia\.forumzen\.com -https?:\/\/([^\/]*\.)?etshalir\.forumzen\.com -https?:\/\/([^\/]*\.)?ettamlet\.forumzen\.com -https?:\/\/([^\/]*\.)?ettimera\.forumzen\.com -https?:\/\/([^\/]*\.)?etwhiett\.forumzen\.com -https?:\/\/([^\/]*\.)?etwhiolo\.forumzen\.com -https?:\/\/([^\/]*\.)?etzvg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?etzyrpk\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?eubaspro\.com -https?:\/\/([^\/]*\.)?eudrayv\.blogspot\.com -https?:\/\/([^\/]*\.)?eueyniqott-video\.blogspot\.com -https?:\/\/([^\/]*\.)?euomtrna\.jconserv\.net -https?:\/\/([^\/]*\.)?eurosexparties-com-jezun\.blogspot\.com -https?:\/\/([^\/]*\.)?eurosexparties-com-mmnl2m\.blogspot\.com -https?:\/\/([^\/]*\.)?eva-irina\.isuisse\.com -https?:\/\/([^\/]*\.)?evamiee\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?eveqx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?everywhere-com-tpovy8exl\.blogspot\.com -https?:\/\/([^\/]*\.)?evfegl9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?evhp2\.szm\.sk -https?:\/\/([^\/]*\.)?evil-gummiworm\.blogspot\.com -https?:\/\/([^\/]*\.)?ewdnqb4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?exchange-lingerie-link-womens\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?exciting-casino\.com -https?:\/\/([^\/]*\.)?exhuq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?extrarx\.kvkb\.com -https?:\/\/([^\/]*\.)?extremeapril-com-adsm\.blogspot\.com -https?:\/\/([^\/]*\.)?extremeapril-com-woje\.blogspot\.com -https?:\/\/([^\/]*\.)?extremeapril-dhx1z\.blogspot\.com -https?:\/\/([^\/]*\.)?ez\.asn\.und\.edu -https?:\/\/([^\/]*\.)?ezjor\.com -https?:\/\/([^\/]*\.)?ezkes\.com -https?:\/\/([^\/]*\.)?ezxwc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?f-download-free-sex-video\.blogspot\.com -https?:\/\/([^\/]*\.)?f-z-a\.com -https?:\/\/([^\/]*\.)?faadney\.dl\.pl -https?:\/\/([^\/]*\.)?fabrizio-corona\.freehostss\.info -https?:\/\/([^\/]*\.)?face-lick-lickable-licker-tongue\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?facial-abuse--com\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?facial-hair-remover\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?facial-paralysis-treatment\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?facial-plastic-surgery-manhattan\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?facial-whore\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?faculty\.etsu\.edu -https?:\/\/([^\/]*\.)?faculty\.hope\.edu -https?:\/\/([^\/]*\.)?faculty\.oxy\.edu -https?:\/\/([^\/]*\.)?faculty\.ugf\.edu -https?:\/\/([^\/]*\.)?faculty\.whatcom\.ctc\.edu -https?:\/\/([^\/]*\.)?facweb\.cs\.depaul\.edu -https?:\/\/([^\/]*\.)?fadianji\.dzsc\.com -https?:\/\/([^\/]*\.)?fagin\.info -https?:\/\/([^\/]*\.)?fairy\.8888mb\.com -https?:\/\/([^\/]*\.)?faleake\.dl\.pl -https?:\/\/([^\/]*\.)?falling-anvil\.blogspot\.com -https?:\/\/([^\/]*\.)?family-viagra\.com -https?:\/\/([^\/]*\.)?famouspornstars-com-o020ss18d8\.blogspot\.com -https?:\/\/([^\/]*\.)?famvir\.1\.p2l\.info -https?:\/\/([^\/]*\.)?fangdaqi\.dzsc\.com -https?:\/\/([^\/]*\.)?fantasticnudes-com-bol80a\.blogspot\.com -https?:\/\/([^\/]*\.)?fantasticnudes-com-by8gook\.blogspot\.com -https?:\/\/([^\/]*\.)?fantasticnudes-com-qic\.blogspot\.com -https?:\/\/([^\/]*\.)?fantasticnudes-com-r60\.blogspot\.com -https?:\/\/([^\/]*\.)?fantasy-hand-job-teen\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?farmius\.org -https?:\/\/([^\/]*\.)?fascination\.my10gb\.com -https?:\/\/([^\/]*\.)?fasnty\.com -https?:\/\/([^\/]*\.)?fasoft\.com\.cn -https?:\/\/([^\/]*\.)?fast-loaneqh\.blogspot\.com -https?:\/\/([^\/]*\.)?fastmovers\.org -https?:\/\/([^\/]*\.)?fat-banging\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?fat-blonde-woman\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?fat-fuck-video\.protime\.in\.ua -https?:\/\/([^\/]*\.)?fat-porn-clip-infoecm\.blogspot\.com -https?:\/\/([^\/]*\.)?fat-porn-clip-infomyi\.blogspot\.com -https?:\/\/([^\/]*\.)?fat-tgp-com-ee\.blogspot\.com -https?:\/\/([^\/]*\.)?fat-tgp-com-g654ywug\.blogspot\.com -https?:\/\/([^\/]*\.)?fatfucks-com-kdy41nn4fr\.blogspot\.com -https?:\/\/([^\/]*\.)?fatfucks-com-t232q4\.blogspot\.com -https?:\/\/([^\/]*\.)?fatfucks-com-tf0v115rm\.blogspot\.com -https?:\/\/([^\/]*\.)?fatfucks-com-thr8\.blogspot\.com -https?:\/\/([^\/]*\.)?fathut-com-db66nw2a\.blogspot\.com -https?:\/\/([^\/]*\.)?fathut-com-hqloar2t8\.blogspot\.com -https?:\/\/([^\/]*\.)?fattythumbs-com-el24t2\.blogspot\.com -https?:\/\/([^\/]*\.)?fattythumbs-com-iq1\.blogspot\.com -https?:\/\/([^\/]*\.)?fau75\.blogspot\.com -https?:\/\/([^\/]*\.)?favorite-casino\.com -https?:\/\/([^\/]*\.)?fawninglace\.freehostingz\.com -https?:\/\/([^\/]*\.)?fbcjr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fbugy\.szm\.sk -https?:\/\/([^\/]*\.)?fcpx5\.szm\.sk -https?:\/\/([^\/]*\.)?fcuml\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fcup3\.szm\.sk -https?:\/\/([^\/]*\.)?fdjcz\.sunp\.com -https?:\/\/([^\/]*\.)?fdxyp\.szm\.sk -https?:\/\/([^\/]*\.)?fe-algebra\.blogspot\.com -https?:\/\/([^\/]*\.)?fe-whateve\.blogspot\.com -https?:\/\/([^\/]*\.)?fedems\.com -https?:\/\/([^\/]*\.)?feeltime\.cn -https?:\/\/([^\/]*\.)?feeltime\.com -https?:\/\/([^\/]*\.)?fehpks4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?feidenfurniture\.com -https?:\/\/([^\/]*\.)?fejwh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fem-dom-art-and-drawing\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?female-ass-worship\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?female-condom-sex\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?female-v\.1\.p2l\.info -https?:\/\/([^\/]*\.)?femdog\.blogspot\.com -https?:\/\/([^\/]*\.)?feq-tugjobs-com\.blogspot\.com -https?:\/\/([^\/]*\.)?ferda111\.php5\.cz -https?:\/\/([^\/]*\.)?ferer\.superprovider\.de -https?:\/\/([^\/]*\.)?feretuc\.forumculture\.net -https?:\/\/([^\/]*\.)?ferrarimaser\.info -https?:\/\/([^\/]*\.)?fest-frat-fuck\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fetish-club-in-ipswitch-uk\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?fetish-hardcore-lesbian-more\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?fetish-heel-high-in-nylon-pretty-toe\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fetish-pantie-white\.protime\.in\.ua -https?:\/\/([^\/]*\.)?fetus-free-sex-video-l\.blogspot\.com -https?:\/\/([^\/]*\.)?ffhi7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fflive\.info -https?:\/\/([^\/]*\.)?fge-teens-links-0\.blogspot\.com -https?:\/\/([^\/]*\.)?fghrf\.8888mb\.com -https?:\/\/([^\/]*\.)?fgvan\.info -https?:\/\/([^\/]*\.)?fgvzq\.szm\.sk -https?:\/\/([^\/]*\.)?fhbi5\.szm\.sk -https?:\/\/([^\/]*\.)?fhmms\.szm\.sk -https?:\/\/([^\/]*\.)?fhwl-com-dy1tbi5l\.blogspot\.com -https?:\/\/([^\/]*\.)?fhwl-com-mn8ni\.blogspot\.com -https?:\/\/([^\/]*\.)?fhwl-com-wc\.blogspot\.com -https?:\/\/([^\/]*\.)?fhwl-com-wgrog\.blogspot\.com -https?:\/\/([^\/]*\.)?fibiger\.org -https?:\/\/([^\/]*\.)?fifa2007it\.org -https?:\/\/([^\/]*\.)?fihqquj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?filipina-lesbian-teen\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?fillchill\.mybbland\.com -https?:\/\/([^\/]*\.)?film-da-scaricare\.host24h\.info -https?:\/\/([^\/]*\.)?finalteens-com-c6o0080y\.blogspot\.com -https?:\/\/([^\/]*\.)?finalteens-com-kpngsoxf\.blogspot\.com -https?:\/\/([^\/]*\.)?finanziamento-on-line\.19mb\.info -https?:\/\/([^\/]*\.)?finanziamento-personale\.hostzz\.info -https?:\/\/([^\/]*\.)?finanziamento-treviso\.host24h\.info -https?:\/\/([^\/]*\.)?findbabychick\.info -https?:\/\/([^\/]*\.)?findbabygirl\.info -https?:\/\/([^\/]*\.)?findvic\.com -https?:\/\/([^\/]*\.)?fine-lingerie-online-sexy\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?finger-fuck-clip\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fioricet\.1\.p2l\.info -https?:\/\/([^\/]*\.)?fioricet\.47\.pl -https?:\/\/([^\/]*\.)?fioricet\.edu\.tf -https?:\/\/([^\/]*\.)?fioricet\.hav\.pl -https?:\/\/([^\/]*\.)?fioricet\.skocz\.net -https?:\/\/([^\/]*\.)?fioricetrx\.weboficial\.com -https?:\/\/([^\/]*\.)?fioricets\.blogspot\.com -https?:\/\/([^\/]*\.)?firejedi\.blogspot\.com -https?:\/\/([^\/]*\.)?first-free-fuck-time-video\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?first-lesbian-experience-story\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?first-lesbian-video-xxx\.protime\.in\.ua -https?:\/\/([^\/]*\.)?first-porn\.futureblog\.org -https?:\/\/([^\/]*\.)?firstchristianbank\.info -https?:\/\/([^\/]*\.)?firstdrugstorezone\.info -https?:\/\/([^\/]*\.)?firstfriends\.us -https?:\/\/([^\/]*\.)?firsthorizonmtg\.com -https?:\/\/([^\/]*\.)?firstnightcharleston\.com -https?:\/\/([^\/]*\.)?firsttimeauditions-com-asq5m\.blogspot\.com -https?:\/\/([^\/]*\.)?firsttimeauditions-com-gxs\.blogspot\.com -https?:\/\/([^\/]*\.)?fishdor\.joolo\.com -https?:\/\/([^\/]*\.)?fishing-rod\.247ihost\.com -https?:\/\/([^\/]*\.)?fishing-rod\.hostpresso\.com -https?:\/\/([^\/]*\.)?fishing-rod\.joolo\.com -https?:\/\/([^\/]*\.)?fishins\.247ihost\.com -https?:\/\/([^\/]*\.)?fishman\.freewebhosting360\.com -https?:\/\/([^\/]*\.)?fishmpegs-com-oet5\.blogspot\.com -https?:\/\/([^\/]*\.)?fishmpegs-com-r5\.blogspot\.com -https?:\/\/([^\/]*\.)?fishmpegs-com-r87f7ui\.blogspot\.com -https?:\/\/([^\/]*\.)?fisting-gay-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?fisting-group-sex\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fisting-lesbian-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?fisting-lesson-maya\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?fistinglessons-com-dmskwfs\.blogspot\.com -https?:\/\/([^\/]*\.)?fistinglessons-com-i03p\.blogspot\.com -https?:\/\/([^\/]*\.)?fitofarm\.com -https?:\/\/([^\/]*\.)?fitvzj-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?fjp\.left-page\.com -https?:\/\/([^\/]*\.)?fjp\.zxvo\.com -https?:\/\/([^\/]*\.)?fkcvlna\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fkvvp\.szm\.sk -https?:\/\/([^\/]*\.)?flandra\.php5\.cz -https?:\/\/([^\/]*\.)?flawformed\.hostonmars\.com -https?:\/\/([^\/]*\.)?flexeril\.1\.p2l\.info -https?:\/\/([^\/]*\.)?flextra\.1\.p2l\.info -https?:\/\/([^\/]*\.)?flkkmex\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fllood\.blogspot\.com -https?:\/\/([^\/]*\.)?fllwlv6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?flnet\.org -https?:\/\/([^\/]*\.)?flonase\.1\.p2l\.info -https?:\/\/([^\/]*\.)?flooring-guide\.org -https?:\/\/([^\/]*\.)?floridamortgage-x\.com -https?:\/\/([^\/]*\.)?floridian-love\.blogspot\.com -https?:\/\/([^\/]*\.)?flower\.hostonmars\.com -https?:\/\/([^\/]*\.)?flowerdive\.info -https?:\/\/([^\/]*\.)?flqcjnw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fluffy\.hostcroc\.com -https?:\/\/([^\/]*\.)?fluoxetine\.1\.p2l\.info -https?:\/\/([^\/]*\.)?fnhtgggv\.t35\.com -https?:\/\/([^\/]*\.)?fnxsj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?foecedh3artbrat\.blogspot\.com -https?:\/\/([^\/]*\.)?foedu-de-solnil\.blogspot\.com -https?:\/\/([^\/]*\.)?folast\.com -https?:\/\/([^\/]*\.)?folcan\.my10gb\.com -https?:\/\/([^\/]*\.)?fondi-italiano\.hostzz\.info -https?:\/\/([^\/]*\.)?for-whorevideos-com\.blogspot\.com -https?:\/\/([^\/]*\.)?forbestcare\.info -https?:\/\/([^\/]*\.)?forensic1nursing\.chat\.ru -https?:\/\/([^\/]*\.)?forex\.fasthost\.pl -https?:\/\/([^\/]*\.)?fork-hief\.ibelgique\.com -https?:\/\/([^\/]*\.)?formulam\.net -https?:\/\/([^\/]*\.)?fortune-slots\.com -https?:\/\/([^\/]*\.)?forum\.kharkiv\.edu -https?:\/\/([^\/]*\.)?fos-sologals-com\.blogspot\.com -https?:\/\/([^\/]*\.)?foto-sabrina-ferilli\.host24h\.info -https?:\/\/([^\/]*\.)?foxeykie\.iespana\.es -https?:\/\/([^\/]*\.)?fozq6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fpa7kctb\.t35\.com -https?:\/\/([^\/]*\.)?fqred\.com -https?:\/\/([^\/]*\.)?fragolla\.blogspot\.com -https?:\/\/([^\/]*\.)?frbarber\.dl\.pl -https?:\/\/([^\/]*\.)?frbracco\.dl\.pl -https?:\/\/([^\/]*\.)?freakthumbs-com-bp\.blogspot\.com -https?:\/\/([^\/]*\.)?freakthumbs-com-hcmkk\.blogspot\.com -https?:\/\/([^\/]*\.)?frebnet\.com -https?:\/\/([^\/]*\.)?fredd0\.info -https?:\/\/([^\/]*\.)?free-access\.freeinsite\.net -https?:\/\/([^\/]*\.)?free-adult-porn-clip-info43c\.blogspot\.com -https?:\/\/([^\/]*\.)?free-adult-porn-clip-infopqk\.blogspot\.com -https?:\/\/([^\/]*\.)?free-amateur-hardcore-pic\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-amateur-submitted-photo\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-amateur-video-e2843\.blogspot\.com -https?:\/\/([^\/]*\.)?free-anal-blonde-sex-pic\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-anal-porn-clip\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-anal-xxx-clip\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-anime-porn-clip-info6tn\.blogspot\.com -https?:\/\/([^\/]*\.)?free-anime-porn-clips-newsyby\.blogspot\.com -https?:\/\/([^\/]*\.)?free-asian-lesbian-sex-video\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-bbw-porn-clip-blog4wm\.blogspot\.com -https?:\/\/([^\/]*\.)?free-big-ass-porn\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-big-boob-porn-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-big-boob\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-bizarre-insertion-pic\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-bizarre-porn-pic\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-black-amateur\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-black-porn-clip-blogo7t\.blogspot\.com -https?:\/\/([^\/]*\.)?free-black-porn-movie-kebi\.blogspot\.com -https?:\/\/([^\/]*\.)?free-black-porn-video-clip-newsjqj\.blogspot\.com -https?:\/\/([^\/]*\.)?free-busty-asian-movie\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-busty-blonde-pic\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-busty-porn-movie\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-busty-redhead-pic\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-butt-fucking-video\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-cartoon-porn-clip-zoneikt\.blogspot\.com -https?:\/\/([^\/]*\.)?free-cartoon-porn-clip-zonewpm\.blogspot\.com -https?:\/\/([^\/]*\.)?free-celebrity-porn-clip-infowuz\.blogspot\.com -https?:\/\/([^\/]*\.)?free-celebrity-porn-video-bo\.blogspot\.com -https?:\/\/([^\/]*\.)?free-chubby-girl-pic\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-cock-sucking-slut-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-college-fuck-fest-gallery\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-cum-blow-job-gallery\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-cum-in-mouth-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-cum-swap-video\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-ebony-porn-clip-zonek7c\.blogspot\.com -https?:\/\/([^\/]*\.)?free-ebony-porn-clip-zonelcy\.blogspot\.com -https?:\/\/([^\/]*\.)?free-ebony-pussy-pic\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-ebony-sex-video-di\.blogspot\.com -https?:\/\/([^\/]*\.)?free-fat-porn-clip-infotno\.blogspot\.com -https?:\/\/([^\/]*\.)?free-fem-dom-thumb\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-female-orgasm-video-bb-bb-h\.blogspot\.com -https?:\/\/([^\/]*\.)?free-filipina-sex-movie\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-first-time-lesbian-sex-story\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-fisting-mpeg\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-fisting-sex-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-fucking-bitch\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-fucking-gallery-hardcore\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-fucking-sex-porn-site\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-full-length-porn-mov-bb-bb-w\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gang-bang-sample\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-gay-hunk-male-movie-muscled-stud-video\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-gay-muscle\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-gay-picture-sex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-gay-porn-clips-info35a\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-porn-movie-clip-bloglor\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-porn-movie-p-d-h\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-porn-video-clip-newsa83\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-porn-video-p-v-p\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-porn-web-site\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-gay-sex-movie-bb-bb-s\.blogspot\.com -https?:\/\/([^\/]*\.)?free-gay-sex-teen-trailer\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-gay-trailer\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-granny-lesbian\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-granny-movie-old\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-granny-pic-woman\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-group-lesbian-preview-sex-video\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-hand-job-movie-bb-bb-h\.blogspot\.com -https?:\/\/([^\/]*\.)?free-hand-job-video-clip-bb-bb-c\.blogspot\.com -https?:\/\/([^\/]*\.)?free-hardcore-movie-gallery-xxx\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-hardcore-porn-clip-blog07a\.blogspot\.com -https?:\/\/([^\/]*\.)?free-hardcore-porn-clip-blogi4k\.blogspot\.com -https?:\/\/([^\/]*\.)?free-hardcore-porn-star-picture\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-hardcore-sex-mpeg\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-heel-high-leg-pic-stilettos-stocking\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-homemade-porn-clip-news22n\.blogspot\.com -https?:\/\/([^\/]*\.)?free-homemade-porn-clip-news7ro\.blogspot\.com -https?:\/\/([^\/]*\.)?free-hot-blonde-nude-pic\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-hot-leg-nude-wallpaper-woman\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-hot-mom\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-hot-web-cam-video-h-s-f\.blogspot\.com -https?:\/\/([^\/]*\.)?free-huge-black-gay-cock\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-in-lesbian-movie-nylons\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-indian-porn-clip-infok6x\.blogspot\.com -https?:\/\/([^\/]*\.)?free-interracial-sex-video-ko\.blogspot\.com -https?:\/\/([^\/]*\.)?free-latin-ass\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-lesbian-cam-chat\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-lesbian-clip-zuxi\.blogspot\.com -https?:\/\/([^\/]*\.)?free-lesbian-hentai-movie\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-lesbian-licking-pic\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-lesbian-mature-sex-video-young\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-lesbian-movie-gjqvl\.blogspot\.com -https?:\/\/([^\/]*\.)?free-lesbian-porn-clips-blogagm\.blogspot\.com -https?:\/\/([^\/]*\.)?free-lesbian-porn-video-clip-newsidt\.blogspot\.com -https?:\/\/([^\/]*\.)?free-lesbian-video-a7e8t\.blogspot\.com -https?:\/\/([^\/]*\.)?free-lesbian-xxx-picture\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-long-porn-clip-info2fo\.blogspot\.com -https?:\/\/([^\/]*\.)?free-long-porn-clip-info7pr\.blogspot\.com -https?:\/\/([^\/]*\.)?free-long-porn-movie-clip-blogxn2\.blogspot\.com -https?:\/\/([^\/]*\.)?free-long-porn-movie-clip-zoneq4f\.blogspot\.com -https?:\/\/([^\/]*\.)?free-long-porn-video-wi\.blogspot\.com -https?:\/\/([^\/]*\.)?free-male-bisexual-porn\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-mature-porn-clip-zone5bz\.blogspot\.com -https?:\/\/([^\/]*\.)?free-mature-sex-clip\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-mature-sex-story\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-mature-thumbnail-post\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?free-milf-porn-clip-zonenqn\.blogspot\.com -https?:\/\/([^\/]*\.)?free-milf-video-bb-bb-n\.blogspot\.com -https?:\/\/([^\/]*\.)?free-mmf-bisex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-naked-mature-lady\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?free-nude-bitch\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-nude-blonde-gallery\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-older-woman-fucking\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-online-poker-000\.biz -https?:\/\/([^\/]*\.)?free-orgasm-clip-supi\.blogspot\.com -https?:\/\/([^\/]*\.)?free-paris-hilton-porn-clip-infolah\.blogspot\.com -https?:\/\/([^\/]*\.)?free-personal-gay-links-tommys-favorite\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-pic-of-big-dicks\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-pic-of-busty-babes\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-pic-of-woman-kissing\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-picture-hardcore-anal\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-picture-hardcore-anal\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-picture-huge-clit\.protime\.in\.ua -https?:\/\/([^\/]*\.)?free-porn-chwd\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clip-nep\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clip-trailer-infog42\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clip-zoneil5\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clip-zonek61\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clip-zoneu7t\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-clips-newsid3\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-movie-to0r5\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-movie-zet\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-psp-video-po\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-sample-clip-infodwd\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-sample-clip-newsb26\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-sex-clip-zoneavj\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-star-movie-bb-bb-h\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-star-video-clip-blog81e\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-clip-info7km\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-clip-infoixk\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-clip-sample-newsw3t\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-clips-infooem\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-porn-clip-blogiep\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-porn-clip-zonepqd\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn-video-puz\.blogspot\.com -https?:\/\/([^\/]*\.)?free-porn\.xa\.pl -https?:\/\/([^\/]*\.)?free-pussy-fucking-movie\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?free-ringtones\.269g\.net -https?:\/\/([^\/]*\.)?free-ringtones\.aqhhhh\.info -https?:\/\/([^\/]*\.)?free-ringtoneten\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sex-clip-ceb\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sex-movie-pow\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sex-video-clip-kog\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sex-video-hup\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sex-video\.hostithere\.org -https?:\/\/([^\/]*\.)?free-sexy-leg-video\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-shemale-fucking-woman-movie\.medved\.od\.ua -https?:\/\/([^\/]*\.)?free-shemale-movie-w-r-s\.blogspot\.com -https?:\/\/([^\/]*\.)?free-skin\.newmail\.ru -https?:\/\/([^\/]*\.)?free-skin\.pochta\.ru -https?:\/\/([^\/]*\.)?free-spase\.info -https?:\/\/([^\/]*\.)?free-sprint-ringtoneija\.blogspot\.com -https?:\/\/([^\/]*\.)?free-sprint-ringtonesrha\.blogspot\.com -https?:\/\/([^\/]*\.)?free-t-mobile-ringtonehvh\.blogspot\.com -https?:\/\/([^\/]*\.)?free-teen-movie-cock-sucking\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?free-teen-porn-clip-blogpmw\.blogspot\.com -https?:\/\/([^\/]*\.)?free-teen-porn-clip-infohxv\.blogspot\.com -https?:\/\/([^\/]*\.)?free-teen-porn-video-clip-newsi5v\.blogspot\.com -https?:\/\/([^\/]*\.)?free-teens-porn-com-wod\.blogspot\.com -https?:\/\/([^\/]*\.)?free-video-sex-chat-ki\.blogspot\.com -https?:\/\/([^\/]*\.)?free-xxx-amateur-web-cam\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free-xxx-porn-clip-infoibv\.blogspot\.com -https?:\/\/([^\/]*\.)?free-xxx-porn-video-clip-infopij\.blogspot\.com -https?:\/\/([^\/]*\.)?free-young-lesbian-movie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?free2peek-com-c1iicr\.blogspot\.com -https?:\/\/([^\/]*\.)?free2peek-com-co8g24x0ee\.blogspot\.com -https?:\/\/([^\/]*\.)?free2peek-com-gi6v\.blogspot\.com -https?:\/\/([^\/]*\.)?free_skin\.chat\.ru -https?:\/\/([^\/]*\.)?freebigmovies-com-b25i040z\.blogspot\.com -https?:\/\/([^\/]*\.)?freebigmovies-com-bxf440\.blogspot\.com -https?:\/\/([^\/]*\.)?freebigmovies-com-rst\.blogspot\.com -https?:\/\/([^\/]*\.)?freebloger\.com -https?:\/\/([^\/]*\.)?freecooktop\.info -https?:\/\/([^\/]*\.)?freedirectoryv\.com -https?:\/\/([^\/]*\.)?freeforumbuilder\.com -https?:\/\/([^\/]*\.)?freegonzo-com-du\.blogspot\.com -https?:\/\/([^\/]*\.)?freegonzo-com-e8n\.blogspot\.com -https?:\/\/([^\/]*\.)?freegonzo-com-og5mpk\.blogspot\.com -https?:\/\/([^\/]*\.)?freegonzo-od5evmn\.blogspot\.com -https?:\/\/([^\/]*\.)?freeheaven-com-ap22\.blogspot\.com -https?:\/\/([^\/]*\.)?freeheaven-com-w1kx4ymi\.blogspot\.com -https?:\/\/([^\/]*\.)?freehost\.ag -https?:\/\/([^\/]*\.)?freehugemovies-com-dr\.blogspot\.com -https?:\/\/([^\/]*\.)?freehugemovies-com-hi3\.blogspot\.com -https?:\/\/([^\/]*\.)?freeinsite\.net -https?:\/\/([^\/]*\.)?freeinternetplus\.info -https?:\/\/([^\/]*\.)?freenextelringtonesupf\.blogspot\.com -https?:\/\/([^\/]*\.)?freeones-com-amrmdwb\.blogspot\.com -https?:\/\/([^\/]*\.)?freeones-com-m1fc\.blogspot\.com -https?:\/\/([^\/]*\.)?freeones-com-mb70w6\.blogspot\.com -https?:\/\/([^\/]*\.)?freeones-com-mqdm\.blogspot\.com -https?:\/\/([^\/]*\.)?freeones-com-tfirm5smvh\.blogspot\.com -https?:\/\/([^\/]*\.)?freepaintballgun\.com -https?:\/\/([^\/]*\.)?freepicseries-com-kb1\.blogspot\.com -https?:\/\/([^\/]*\.)?freepicseries-com-tfct6n\.blogspot\.com -https?:\/\/([^\/]*\.)?freeportalnow\.com -https?:\/\/([^\/]*\.)?freeringtonedgf\.blogspot\.com -https?:\/\/([^\/]*\.)?freeringtones\.seesaa\.net -https?:\/\/([^\/]*\.)?freeringtonesptl\.blogspot\.com -https?:\/\/([^\/]*\.)?freeringtoness\.fr\.funpic\.de -https?:\/\/([^\/]*\.)?frees--123clips-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--8teenfiles-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--africanvagina-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--ah-me-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--akissbetweenthelegs-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--allsitesaccess-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--amateurcurves-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--asssupply-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--atkmodels-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--auntmia-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--bigtitspalace-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--boneme-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--bootycollection-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--bustyadventures-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--camcrush-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--camelclips-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--caughtnude-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--celebrityscandal-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--cliphunter-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--cowlist-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--dirtydaughter-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--easygals-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--ebonyblack-net\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--el-ladies-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--eurosexparties-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--fuckingfreemovies-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--gallfree-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--girlfur-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--grannyplanet-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--greentits-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--hanksgalleries-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--hereistheporn-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--hornybanana-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--idealbabes-net\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--indianpassion-com\.blogspot\.com -https?:\/\/([^\/]*\.)?frees--ispycameltoe-com\.blogspot\.com -https?:\/\/([^\/]*\.)?freespaces\.com -https?:\/\/([^\/]*\.)?freesprintringtoneenx\.blogspot\.com -https?:\/\/([^\/]*\.)?freesprintringtoneswkd\.blogspot\.com -https?:\/\/([^\/]*\.)?freestyman\.com -https?:\/\/([^\/]*\.)?freetmobileringtonekaw\.blogspot\.com -https?:\/\/([^\/]*\.)?freeverizonringtonevol\.blogspot\.com -https?:\/\/([^\/]*\.)?freewebsitehosting\.net -https?:\/\/([^\/]*\.)?freexmovies-com-i1xi8s\.blogspot\.com -https?:\/\/([^\/]*\.)?freexmovies-com-ojxc1k\.blogspot\.com -https?:\/\/([^\/]*\.)?freeyaho\.com -https?:\/\/([^\/]*\.)?french-kissing-my-sister\.protime\.in\.ua -https?:\/\/([^\/]*\.)?french-kissing\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?french-lick-child-family-entertainment\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?french-tickler-condom\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?french168\.com -https?:\/\/([^\/]*\.)?frenchcum-btb\.blogspot\.com -https?:\/\/([^\/]*\.)?frenchcum-com-mzqj8hpm\.blogspot\.com -https?:\/\/([^\/]*\.)?frenchcum-com-w07ua1w7z\.blogspot\.com -https?:\/\/([^\/]*\.)?fresh-sex\.futureblog\.org -https?:\/\/([^\/]*\.)?friendsgrabber\.com -https?:\/\/([^\/]*\.)?fripcn9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?frog-sexgtw\.blogspot\.com -https?:\/\/([^\/]*\.)?frog-sexlfe\.blogspot\.com -https?:\/\/([^\/]*\.)?frogm\.info -https?:\/\/([^\/]*\.)?frogsex-com-ev4zmddt\.blogspot\.com -https?:\/\/([^\/]*\.)?frogsex-com-ivtcaqfsx\.blogspot\.com -https?:\/\/([^\/]*\.)?frogsex-gnle04e\.blogspot\.com -https?:\/\/([^\/]*\.)?frt3\.org\.ua -https?:\/\/([^\/]*\.)?fsxhl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fsyflower\.com -https?:\/\/([^\/]*\.)?ft568\.com -https?:\/\/([^\/]*\.)?ftffo\.szm\.sk -https?:\/\/([^\/]*\.)?fthaop1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ftntg\.szm\.sk -https?:\/\/([^\/]*\.)?fu-alexus\.blogspot\.com -https?:\/\/([^\/]*\.)?fuck-gallery-picture\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?fuck-her-in-mouth\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fuck-lesbian-pussy\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?fuck-pussy-suck-swallow\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?fuck-sexy-slut\.medved\.od\.ua -https?:\/\/([^\/]*\.)?fuck-the-maidens\.info -https?:\/\/([^\/]*\.)?fuckfromass\.info -https?:\/\/([^\/]*\.)?fucking-hardcore-japanese-slut\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?fucking-lesbian-licking-pussy\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?fucking-machine-thumbnail\.protime\.in\.ua -https?:\/\/([^\/]*\.)?fucking-preity-sucking-zinta\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?fucking-teen-party\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?fuckingfreemovies-com-gvps\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckingfreemovies-com-gy2\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckingfreemovies-com-qogog\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckingmachines-com-b4glo\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckingmachines-com-h3\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckingmachines-com-hqrbqh4\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckk-com-ot8wc\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckk-com-r6\.blogspot\.com -https?:\/\/([^\/]*\.)?fuckk-com-rw5485\.blogspot\.com -https?:\/\/([^\/]*\.)?fucksakes-com-ks7uskz64\.blogspot\.com -https?:\/\/([^\/]*\.)?fufpyl5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?funberry-com-meft\.blogspot\.com -https?:\/\/([^\/]*\.)?funberry-com-mkjvxl\.blogspot\.com -https?:\/\/([^\/]*\.)?funberry-com-tz8\.blogspot\.com -https?:\/\/([^\/]*\.)?funkall\.us -https?:\/\/([^\/]*\.)?funny-stuff\.3ae6ucb\.info -https?:\/\/([^\/]*\.)?funpelv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fuohcbq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?furama\.dtdns\.net -https?:\/\/([^\/]*\.)?furrysoap\.ifrance\.com -https?:\/\/([^\/]*\.)?fuvo-aimee\.blogspot\.com -https?:\/\/([^\/]*\.)?fuyinj\.ebloggy\.com -https?:\/\/([^\/]*\.)?fvinc\.4t\.com -https?:\/\/([^\/]*\.)?fvjz5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fwbhexo\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fweroze\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fwvsp\.szm\.sk -https?:\/\/([^\/]*\.)?fx120\.com -https?:\/\/([^\/]*\.)?fx120\.net -https?:\/\/([^\/]*\.)?fxxb5\.szm\.sk -https?:\/\/([^\/]*\.)?fyisy\.szm\.sk -https?:\/\/([^\/]*\.)?fylfw\.szm\.sk -https?:\/\/([^\/]*\.)?fyyvb\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?fzdlcfzh-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?g-maste\.com -https?:\/\/([^\/]*\.)?g2c2rtc\.info -https?:\/\/([^\/]*\.)?g3eros\.info -https?:\/\/([^\/]*\.)?g76\.be -https?:\/\/([^\/]*\.)?gadkj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gaeq2\.szm\.sk -https?:\/\/([^\/]*\.)?gafdyq9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gagase\.com -https?:\/\/([^\/]*\.)?gailc\.fr33webhost\.com -https?:\/\/([^\/]*\.)?galleries4free-com-e1ew\.blogspot\.com -https?:\/\/([^\/]*\.)?galleries4free-com-o8\.blogspot\.com -https?:\/\/([^\/]*\.)?gallery-jenna-jameson-blonde\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gallery-kissing-woman-woman\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gallery-lesson-milf\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?gallery-lingerie-see-teen-thru\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?gallery-mature-stocking\.protime\.in\.ua -https?:\/\/([^\/]*\.)?gallfree-com-b0uf2q0\.blogspot\.com -https?:\/\/([^\/]*\.)?gallfree-com-ra5f1d7\.blogspot\.com -https?:\/\/([^\/]*\.)?gallfree-com-teruq\.blogspot\.com -https?:\/\/([^\/]*\.)?gallview-com-a2wqsk\.blogspot\.com -https?:\/\/([^\/]*\.)?gallview-com-ahasx\.blogspot\.com -https?:\/\/([^\/]*\.)?gallview-com-wa6froqpl\.blogspot\.com -https?:\/\/([^\/]*\.)?gambling-online-theory\.com -https?:\/\/([^\/]*\.)?gamenase\.com -https?:\/\/([^\/]*\.)?gamez4less\.com -https?:\/\/([^\/]*\.)?gang-bang-free-pic-gallery\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gangsheng\.home4u\.china\.com -https?:\/\/([^\/]*\.)?gaping-ass-sex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gaqx6\.szm\.sk -https?:\/\/([^\/]*\.)?garid\.biz -https?:\/\/([^\/]*\.)?garlic\.hostonmars\.com -https?:\/\/([^\/]*\.)?garter\.nocostwebhosting\.com -https?:\/\/([^\/]*\.)?gastrointestinal\.1\.p2l\.info -https?:\/\/([^\/]*\.)?gastrw\.com -https?:\/\/([^\/]*\.)?gatalgat\.myrealboard\.com -https?:\/\/([^\/]*\.)?gatloral\.myrealboard\.com -https?:\/\/([^\/]*\.)?gatx10258\.blogspot\.com -https?:\/\/([^\/]*\.)?gay-bareback-story\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?gay-big-cock-video-clip\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gay-black-blow-job\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-blonde-twinks\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gay-cum-eater\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-gang-bang-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?gay-girl-kissing\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?gay-girl-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-hispanic-man-naked\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-hot-latinos\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-huge-thick-cock\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-hunk-sex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-man-hardcore\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gay-man-man-sex\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-man-mature-old-picture\.protime\.in\.ua -https?:\/\/([^\/]*\.)?gay-man-naked-wrestling\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?gay-marriage-benefit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-photo-personals\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?gay-porn-clip-zonehyx\.blogspot\.com -https?:\/\/([^\/]*\.)?gay-porn-video-clip-news8dd\.blogspot\.com -https?:\/\/([^\/]*\.)?gay-pride-week-in-florida\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-sex-video-on-demand\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?gay-teen-man\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-teen-sex-clip\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-themed-movie\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?gay-twinks-fucking\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gay-web-cam-site\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gay-woman-chat-rooms\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?gazwc\.szm\.sk -https?:\/\/([^\/]*\.)?gbapc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gbd-amy\.hostithere\.org -https?:\/\/([^\/]*\.)?gbtw1\.fr33webhost\.com -https?:\/\/([^\/]*\.)?gbvgxus\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gceaq\.szm\.sk -https?:\/\/([^\/]*\.)?gcqqkhx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gd-r\.com -https?:\/\/([^\/]*\.)?gdfea\.szm\.sk -https?:\/\/([^\/]*\.)?geb0cs\.nokedem\.com -https?:\/\/([^\/]*\.)?gebu-aeh\.blogspot\.com -https?:\/\/([^\/]*\.)?geddesvicente\.info -https?:\/\/([^\/]*\.)?geflamio\.dl\.pl -https?:\/\/([^\/]*\.)?genaholincorporated\.com -https?:\/\/([^\/]*\.)?generic-paxil\.contact\.cc -https?:\/\/([^\/]*\.)?genericbuy\.o-f\.com -https?:\/\/([^\/]*\.)?genoux\.dnsrd\.com -https?:\/\/([^\/]*\.)?georgiamortgage-x\.com -https?:\/\/([^\/]*\.)?germani4\.blogspot\.com -https?:\/\/([^\/]*\.)?gesrju\.com -https?:\/\/([^\/]*\.)?get6or6li\.dl\.pl -https?:\/\/([^\/]*\.)?getaer\.forumculture\.net -https?:\/\/([^\/]*\.)?getbankruptcylaw\.info -https?:\/\/([^\/]*\.)?getdeerelt\.forumzen\.com -https?:\/\/([^\/]*\.)?getdelsit\.zj\.pl -https?:\/\/([^\/]*\.)?getdomsit\.blogcu\.com -https?:\/\/([^\/]*\.)?getfemon\.dynamicforum\.net -https?:\/\/([^\/]*\.)?getgetvi\.lolbb\.com -https?:\/\/([^\/]*\.)?gethelp24x7\.net -https?:\/\/([^\/]*\.)?getkuric\.blogcu\.com -https?:\/\/([^\/]*\.)?getletovi\.winnerforum\.net -https?:\/\/([^\/]*\.)?getlimon\.discutfree\.com -https?:\/\/([^\/]*\.)?getowson\.dl\.pl -https?:\/\/([^\/]*\.)?gettaer\.ephpbb\.com -https?:\/\/([^\/]*\.)?getzelvi\.goodbb\.net -https?:\/\/([^\/]*\.)?gezu-alaina\.blogspot\.com -https?:\/\/([^\/]*\.)?gfd69\.tripod\.com -https?:\/\/([^\/]*\.)?gg0\.be -https?:\/\/([^\/]*\.)?ggfix\.com -https?:\/\/([^\/]*\.)?gglive\.info -https?:\/\/([^\/]*\.)?gguu\.com -https?:\/\/([^\/]*\.)?ggww\.dtdns\.net -https?:\/\/([^\/]*\.)?ggzhm\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ghhdh\.szm\.sk -https?:\/\/([^\/]*\.)?ghiacci0\.info -https?:\/\/([^\/]*\.)?ghnakjwcjp-video\.blogspot\.com -https?:\/\/([^\/]*\.)?ghrvu\.szm\.sk -https?:\/\/([^\/]*\.)?ghvd7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?giant-cock-shemale\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?giant-dick-sucking\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?giant-dildo-in-pussy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gifo-administrator\.blogspot\.com -https?:\/\/([^\/]*\.)?gigablast\.republika\.pl -https?:\/\/([^\/]*\.)?gigagalleries-com-c1ylawg\.blogspot\.com -https?:\/\/([^\/]*\.)?gigagalleries-com-cn4\.blogspot\.com -https?:\/\/([^\/]*\.)?gigagalleries-com-gd0a\.blogspot\.com -https?:\/\/([^\/]*\.)?gigavids-com-wcmck\.blogspot\.com -https?:\/\/([^\/]*\.)?gimps\.info -https?:\/\/([^\/]*\.)?giochi-java\.heroez\.info -https?:\/\/([^\/]*\.)?gioco-avventura-vari\.bb22\.info -https?:\/\/([^\/]*\.)?gioco-online-picchiaduro\.nnme\.info -https?:\/\/([^\/]*\.)?gipolit\.asp2\.cz -https?:\/\/([^\/]*\.)?girl-butt-in-tight-jeans\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?girl-guy-kissing\.medved\.od\.ua -https?:\/\/([^\/]*\.)?girl-kissing-video-bb-bb-j\.blogspot\.com -https?:\/\/([^\/]*\.)?girl-playing-with-dildo\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?girl-showing-there-boob\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?girl-with-big-dildo\.protime\.in\.ua -https?:\/\/([^\/]*\.)?girlfur-com-ga\.blogspot\.com -https?:\/\/([^\/]*\.)?girlfur-com-pisij\.blogspot\.com -https?:\/\/([^\/]*\.)?gisogenu\.org -https?:\/\/([^\/]*\.)?give-me-baby\.info -https?:\/\/([^\/]*\.)?gjjf\.com -https?:\/\/([^\/]*\.)?gjjp\.left-page\.com -https?:\/\/([^\/]*\.)?gjjp\.zxvo\.com -https?:\/\/([^\/]*\.)?gjqgec8\.info -https?:\/\/([^\/]*\.)?gkjxcs1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gkwzrz8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?glamouronline\.info -https?:\/\/([^\/]*\.)?glebo\.host-page\.com -https?:\/\/([^\/]*\.)?glebo1\.host-page\.com -https?:\/\/([^\/]*\.)?glebo2\.host-page\.com -https?:\/\/([^\/]*\.)?glebo3\.host-page\.com -https?:\/\/([^\/]*\.)?glebo4\.host-page\.com -https?:\/\/([^\/]*\.)?glebo5\.host-page\.com -https?:\/\/([^\/]*\.)?glebo6\.host-page\.com -https?:\/\/([^\/]*\.)?glebo7\.host-page\.com -https?:\/\/([^\/]*\.)?glebo8\.host-page\.com -https?:\/\/([^\/]*\.)?glebo9\.host-page\.com -https?:\/\/([^\/]*\.)?glmv6\.szm\.sk -https?:\/\/([^\/]*\.)?globalbartertrade\.info -https?:\/\/([^\/]*\.)?globalflights\.org -https?:\/\/([^\/]*\.)?globalrecreationguide\.com -https?:\/\/([^\/]*\.)?globegarment\.com\.cn -https?:\/\/([^\/]*\.)?glodgreen\.info -https?:\/\/([^\/]*\.)?gloryhole\.coz\.in -https?:\/\/([^\/]*\.)?glovebox\.freewebpage\.org -https?:\/\/([^\/]*\.)?gloveboxes\.cn -https?:\/\/([^\/]*\.)?gloveboxes\.com\.cn -https?:\/\/([^\/]*\.)?glover\.host-page\.com -https?:\/\/([^\/]*\.)?glover1\.host-page\.com -https?:\/\/([^\/]*\.)?glover2\.host-page\.com -https?:\/\/([^\/]*\.)?glover3\.host-page\.com -https?:\/\/([^\/]*\.)?glover4\.host-page\.com -https?:\/\/([^\/]*\.)?glover5\.host-page\.com -https?:\/\/([^\/]*\.)?glover6\.host-page\.com -https?:\/\/([^\/]*\.)?glover7\.host-page\.com -https?:\/\/([^\/]*\.)?glover8\.host-page\.com -https?:\/\/([^\/]*\.)?glover9\.host-page\.com -https?:\/\/([^\/]*\.)?gmldsb\.com -https?:\/\/([^\/]*\.)?gnsgs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?go-ansna\.ibelgique\.com -https?:\/\/([^\/]*\.)?goaie\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?goatlist-com-dk15cne\.blogspot\.com -https?:\/\/([^\/]*\.)?goatlist-com-hi\.blogspot\.com -https?:\/\/([^\/]*\.)?goatlist-com-o5\.blogspot\.com -https?:\/\/([^\/]*\.)?gobabo\.nocostwebhosting\.com -https?:\/\/([^\/]*\.)?gobald\.dtdns\.net -https?:\/\/([^\/]*\.)?gobu4\.szm\.sk -https?:\/\/([^\/]*\.)?gogllefr\.125mb\.com -https?:\/\/([^\/]*\.)?gokletvi\.dynamicbb\.com -https?:\/\/([^\/]*\.)?goko-adeline\.blogspot\.com -https?:\/\/([^\/]*\.)?gold-watch\.grimgoe\.be -https?:\/\/([^\/]*\.)?gold\.fathippohosting\.com -https?:\/\/([^\/]*\.)?goldsexcity\.info -https?:\/\/([^\/]*\.)?goldshop\.freehostia\.com -https?:\/\/([^\/]*\.)?golenord\.dl\.pl -https?:\/\/([^\/]*\.)?goler-sor1z\.blogspot\.com -https?:\/\/([^\/]*\.)?golfhq\.org -https?:\/\/([^\/]*\.)?golfshoot\.com -https?:\/\/([^\/]*\.)?gololed\.blogspot\.com -https?:\/\/([^\/]*\.)?gomy0\.szm\.sk -https?:\/\/([^\/]*\.)?gonzo-movies-com-ez\.blogspot\.com -https?:\/\/([^\/]*\.)?gonzo-movies-rkk5jq\.blogspot\.com -https?:\/\/([^\/]*\.)?good568\.com -https?:\/\/([^\/]*\.)?goodhealthjobs\.info -https?:\/\/([^\/]*\.)?goodticket\.org -https?:\/\/([^\/]*\.)?google-pharmacy\.com -https?:\/\/([^\/]*\.)?google110\.yculblog\.com -https?:\/\/([^\/]*\.)?googlepaiming\.ebloggy\.com -https?:\/\/([^\/]*\.)?googletosh\.org -https?:\/\/([^\/]*\.)?goporn\.info -https?:\/\/([^\/]*\.)?gopremen\.dl\.pl -https?:\/\/([^\/]*\.)?gor-richards-realm-com\.blogspot\.com -https?:\/\/([^\/]*\.)?gorillalinks-com-t77\.blogspot\.com -https?:\/\/([^\/]*\.)?gorillashaman\.blogspot\.com -https?:\/\/([^\/]*\.)?gorlum\.t35\.com -https?:\/\/([^\/]*\.)?gorunger\.com -https?:\/\/([^\/]*\.)?goxzk\.szm\.sk -https?:\/\/([^\/]*\.)?gpdmr\.szm\.sk -https?:\/\/([^\/]*\.)?gphv0\.szm\.sk -https?:\/\/([^\/]*\.)?gplea\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gqnzzlu\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?graduate-schools\.hotmail\.ru -https?:\/\/([^\/]*\.)?graduate1degree\.chat\.ru -https?:\/\/([^\/]*\.)?graduate2schools\.chat\.ru -https?:\/\/([^\/]*\.)?graf\.pp\.ru -https?:\/\/([^\/]*\.)?grammatica-inglese\.bb11\.info -https?:\/\/([^\/]*\.)?gran-roques\.forumhst\.info -https?:\/\/([^\/]*\.)?granny-boy-free-pic\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?granny-movie-thumb\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?grannyorgies-com-o1w34\.blogspot\.com -https?:\/\/([^\/]*\.)?grannyorgies-com-ormpubp\.blogspot\.com -https?:\/\/([^\/]*\.)?grannyorgies-com-r2on\.blogspot\.com -https?:\/\/([^\/]*\.)?grannypictures-com-a2w1\.blogspot\.com -https?:\/\/([^\/]*\.)?grannypictures-com-ak6273j85t\.blogspot\.com -https?:\/\/([^\/]*\.)?grannyplanet-com-k1bea\.blogspot\.com -https?:\/\/([^\/]*\.)?great-ass-gallery\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?greataftorless\.com -https?:\/\/([^\/]*\.)?greatbmwclub\.cn -https?:\/\/([^\/]*\.)?greatbmwparts\.cn -https?:\/\/([^\/]*\.)?greatbudgetinn\.info -https?:\/\/([^\/]*\.)?greathal\.com -https?:\/\/([^\/]*\.)?greatinsurancedirect\.info -https?:\/\/([^\/]*\.)?greatmercedescar\.info -https?:\/\/([^\/]*\.)?greatpsychology\.info -https?:\/\/([^\/]*\.)?greatusainternet\.info -https?:\/\/([^\/]*\.)?green-gradens\.org -https?:\/\/([^\/]*\.)?green-tea-300\.co\.nr -https?:\/\/([^\/]*\.)?green-tea\.co\.nr -https?:\/\/([^\/]*\.)?greentits-com-kr3h3787pt\.blogspot\.com -https?:\/\/([^\/]*\.)?greentits-com-t8xf3x5\.blogspot\.com -https?:\/\/([^\/]*\.)?greentits-com-tr242sh16\.blogspot\.com -https?:\/\/([^\/]*\.)?greet\.ipupdater\.net -https?:\/\/([^\/]*\.)?grgul\.szm\.sk -https?:\/\/([^\/]*\.)?griev\.ipupdater\.com -https?:\/\/([^\/]*\.)?griffeylaw\.com -https?:\/\/([^\/]*\.)?grimasa\.republika\.pl -https?:\/\/([^\/]*\.)?groovybus-com-cv8ry83\.blogspot\.com -https?:\/\/([^\/]*\.)?groovybus-com-gy1258kur3\.blogspot\.com -https?:\/\/([^\/]*\.)?groupforums\.com -https?:\/\/([^\/]*\.)?groups-msn-com-masturbating-site-woman\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?groups\.ku\.edu -https?:\/\/([^\/]*\.)?grrualca\.jconserv\.net -https?:\/\/([^\/]*\.)?gsaxz\.szm\.sk -https?:\/\/([^\/]*\.)?gsebook\.org -https?:\/\/([^\/]*\.)?gsloi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gsuyfy2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gsxez\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gu-amateur-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?guangdianyuanjian\.dzsc\.com -https?:\/\/([^\/]*\.)?gudtk\.fr33webhost\.com -https?:\/\/([^\/]*\.)?guess76\.blogspot\.com -https?:\/\/([^\/]*\.)?guilty-until-proven-innocent\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?gumaxxx-com-e3748i87g\.blogspot\.com -https?:\/\/([^\/]*\.)?gumaxxx-com-ow774pk74m\.blogspot\.com -https?:\/\/([^\/]*\.)?gumybear\.php5\.cz -https?:\/\/([^\/]*\.)?gunterdirect\.com -https?:\/\/([^\/]*\.)?gunterlawoffice\.com -https?:\/\/([^\/]*\.)?guruful\.stabilt\.se -https?:\/\/([^\/]*\.)?guys-butt-fucking\.medved\.od\.ua -https?:\/\/([^\/]*\.)?gvfefn3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gwebsearch\.org -https?:\/\/([^\/]*\.)?gwjsx\.szm\.sk -https?:\/\/([^\/]*\.)?gxrd3\.szm\.sk -https?:\/\/([^\/]*\.)?gyig3\.szm\.sk -https?:\/\/([^\/]*\.)?gym-equipments\.org -https?:\/\/([^\/]*\.)?gyzvpxl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gzmayz6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?gzvwa\.szm\.sk -https?:\/\/([^\/]*\.)?h0vutok\.nokedem\.com -https?:\/\/([^\/]*\.)?h15\.ru -https?:\/\/([^\/]*\.)?h3as88dw\.info -https?:\/\/([^\/]*\.)?habromjw\.dl\.pl -https?:\/\/([^\/]*\.)?haemcurio\.0moola\.com -https?:\/\/([^\/]*\.)?hahas\.info -https?:\/\/([^\/]*\.)?hairy-ass-hole\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?hairy-chubby-gallery\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?hairy-leg-pic-woman\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hairy-milf-movie\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?hairydivas-com-hg2gvyc\.blogspot\.com -https?:\/\/([^\/]*\.)?hairydivas-t150c5gmf8\.blogspot\.com -https?:\/\/([^\/]*\.)?hairyerotica-com-i4fl2x\.blogspot\.com -https?:\/\/([^\/]*\.)?hairypinktacos-com-djl\.blogspot\.com -https?:\/\/([^\/]*\.)?hairypinktacos-com-hlnfq3rea2\.blogspot\.com -https?:\/\/([^\/]*\.)?hairypussypost-com-mk0ymrj\.blogspot\.com -https?:\/\/([^\/]*\.)?hairypussypost-com-w6\.blogspot\.com -https?:\/\/([^\/]*\.)?hal\.engr\.smu\.edu -https?:\/\/([^\/]*\.)?halloween2006\.info -https?:\/\/([^\/]*\.)?halx8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hamalo\.com -https?:\/\/([^\/]*\.)?hamas2007\.republika\.pl -https?:\/\/([^\/]*\.)?hand-job-movie-x-x-d\.blogspot\.com -https?:\/\/([^\/]*\.)?hand-stained-xx\.blogspot\.com -https?:\/\/([^\/]*\.)?hangzhau\.cn -https?:\/\/([^\/]*\.)?hanksgalleries-com-b73flku8\.blogspot\.com -https?:\/\/([^\/]*\.)?hanksgalleries-com-rtuvbgdl\.blogspot\.com -https?:\/\/([^\/]*\.)?hanry\.stabilt\.se -https?:\/\/([^\/]*\.)?haole\.cn -https?:\/\/([^\/]*\.)?happy-pharma\.com -https?:\/\/([^\/]*\.)?hard-disk-esterno\.hostzz\.info -https?:\/\/([^\/]*\.)?hard-disk-esterno\.ll11\.info -https?:\/\/([^\/]*\.)?hardbabes-com-e061obbg\.blogspot\.com -https?:\/\/([^\/]*\.)?hardbabes-com-e588iqk\.blogspot\.com -https?:\/\/([^\/]*\.)?hardcore-amateur-thumbnail\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hardcore-asian-anal\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?hardcore-dancing-site-myspace-com\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hardcore-free-porn-xx\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?hardcore-lesbian-pussy-eating\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hardcore-mature-sex-young\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?hardcore-porn-clip-info73q\.blogspot\.com -https?:\/\/([^\/]*\.)?hardcore-sex-black-on-white\.protime\.in\.ua -https?:\/\/([^\/]*\.)?hardcore-xxx-video\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hardcoregangstas\.hrable\.dtdns\.net -https?:\/\/([^\/]*\.)?hardhut-com-ao8renz\.blogspot\.com -https?:\/\/([^\/]*\.)?hardhut-com-tgi\.blogspot\.com -https?:\/\/([^\/]*\.)?hardhut-com-wb8m8\.blogspot\.com -https?:\/\/([^\/]*\.)?hargd\.szm\.sk -https?:\/\/([^\/]*\.)?harley-davidson-womens-boot\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?harted\.hostpresso\.com -https?:\/\/([^\/]*\.)?haungsanok\.com -https?:\/\/([^\/]*\.)?hawaiimortgage-x\.com -https?:\/\/([^\/]*\.)?hawbij4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hawkesnest\.com -https?:\/\/([^\/]*\.)?hazell-keeley-sex-video-bb-bb-f\.blogspot\.com -https?:\/\/([^\/]*\.)?hbyfq\.fr33webhost\.com -https?:\/\/([^\/]*\.)?hcgs\.unh\.edu -https?:\/\/([^\/]*\.)?hclt-events\.blogspot\.com -https?:\/\/([^\/]*\.)?hdbj\.com\.cn -https?:\/\/([^\/]*\.)?hdchina\.com -https?:\/\/([^\/]*\.)?hdlwc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hdndeuw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?he-wells\.blogspot\.com -https?:\/\/([^\/]*\.)?he-wendy\.blogspot\.com -https?:\/\/([^\/]*\.)?head-masturbating-shower-woman\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?health-insurance-0\.blogspot\.com -https?:\/\/([^\/]*\.)?health-insurance-save\.com -https?:\/\/([^\/]*\.)?health-jack\.com -https?:\/\/([^\/]*\.)?healthinsurance-x\.com -https?:\/\/([^\/]*\.)?healthprocare\.info -https?:\/\/([^\/]*\.)?hebei-railings\.cn -https?:\/\/([^\/]*\.)?hecarabi\.info -https?:\/\/([^\/]*\.)?hefo-adrianna\.blogspot\.com -https?:\/\/([^\/]*\.)?hek-tshirthell-com\.blogspot\.com -https?:\/\/([^\/]*\.)?hellim\.3x\.ro -https?:\/\/([^\/]*\.)?heloween\.php5\.cz -https?:\/\/([^\/]*\.)?hemilton\.stabilt\.se -https?:\/\/([^\/]*\.)?hengxinbanjia\.com -https?:\/\/([^\/]*\.)?her-first-anal-fucking\.protime\.in\.ua -https?:\/\/([^\/]*\.)?her-first-cum\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?her-first-lesbian-sex-kylie\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?her-first-small-dick\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?her-sweet-ass\.protime\.in\.ua -https?:\/\/([^\/]*\.)?here\.com\.cn -https?:\/\/([^\/]*\.)?hereandnow0\.com -https?:\/\/([^\/]*\.)?hereistheporn-com-abg\.blogspot\.com -https?:\/\/([^\/]*\.)?hereistheporn-com-wxu4\.blogspot\.com -https?:\/\/([^\/]*\.)?herpes\.1\.p2l\.info -https?:\/\/([^\/]*\.)?herufip\.info -https?:\/\/([^\/]*\.)?heschlos\.dl\.pl -https?:\/\/([^\/]*\.)?hevo-alannah\.blogspot\.com -https?:\/\/([^\/]*\.)?hexingqc\.com -https?:\/\/([^\/]*\.)?hfpm\.com -https?:\/\/([^\/]*\.)?hfsflm0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hfslink\.com -https?:\/\/([^\/]*\.)?hgdpy\.szm\.sk -https?:\/\/([^\/]*\.)?hgh\.rx4\.org -https?:\/\/([^\/]*\.)?hgqz5\.szm\.sk -https?:\/\/([^\/]*\.)?hguldxxe-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?hgyxs\.szm\.sk -https?:\/\/([^\/]*\.)?hhcoh\.szm\.sk -https?:\/\/([^\/]*\.)?hhlive\.info -https?:\/\/([^\/]*\.)?hhpump\.com -https?:\/\/([^\/]*\.)?hiadadar\.forumzen\.com -https?:\/\/([^\/]*\.)?higarret\.forumzen\.com -https?:\/\/([^\/]*\.)?high-heel-western-boot\.medved\.od\.ua -https?:\/\/([^\/]*\.)?high-school-diploma\.hotmail\.ru -https?:\/\/([^\/]*\.)?high1school4dipl\.chat\.ru -https?:\/\/([^\/]*\.)?highclassblogs\.com -https?:\/\/([^\/]*\.)?hilarykallin\.50webs\.org -https?:\/\/([^\/]*\.)?hilipa\.com -https?:\/\/([^\/]*\.)?hilipy\.com -https?:\/\/([^\/]*\.)?hillery\.republika\.pl -https?:\/\/([^\/]*\.)?himd4\.szm\.sk -https?:\/\/([^\/]*\.)?himp3\.biz -https?:\/\/([^\/]*\.)?hinn8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hioctane-com-dlmv6g7y\.blogspot\.com -https?:\/\/([^\/]*\.)?hioctane-com-dq4opea\.blogspot\.com -https?:\/\/([^\/]*\.)?hioctane-com-h0un\.blogspot\.com -https?:\/\/([^\/]*\.)?hioctane-com-toxuz\.blogspot\.com -https?:\/\/([^\/]*\.)?hipoldlady\.com -https?:\/\/([^\/]*\.)?hirudaco\.forumzen\.com -https?:\/\/([^\/]*\.)?his13lessings\.blogspot\.com -https?:\/\/([^\/]*\.)?history-of-condom\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?hisyma\.dl\.pl -https?:\/\/([^\/]*\.)?hitm4n\.blogspot\.com -https?:\/\/([^\/]*\.)?hiv123\.com -https?:\/\/([^\/]*\.)?hiv987\.zj\.com -https?:\/\/([^\/]*\.)?hjia\.ebloggy\.com -https?:\/\/([^\/]*\.)?hjolmed\.com -https?:\/\/([^\/]*\.)?hkcompanyforyou\.cn -https?:\/\/([^\/]*\.)?hkfeng\.com -https?:\/\/([^\/]*\.)?hkwei\.com\.cn -https?:\/\/([^\/]*\.)?hlemizd\.republika\.pl -https?:\/\/([^\/]*\.)?hlusky\.republika\.pl -https?:\/\/([^\/]*\.)?hlxn6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hmppbw-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?hnxsv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ho-big-clip-tit-video-hox\.blogspot\.com -https?:\/\/([^\/]*\.)?hobaysin\.ifrance\.com -https?:\/\/([^\/]*\.)?hocohn\.dl\.pl -https?:\/\/([^\/]*\.)?hohoo\.cn -https?:\/\/([^\/]*\.)?hold-em-play\.com -https?:\/\/([^\/]*\.)?hold-em-play\.net -https?:\/\/([^\/]*\.)?hold-em-winner\.us -https?:\/\/([^\/]*\.)?home-made-porn-clip-blogt7y\.blogspot\.com -https?:\/\/([^\/]*\.)?home-mortgages\.bigsitecity\.com -https?:\/\/([^\/]*\.)?home-sauna\.boom\.ru -https?:\/\/([^\/]*\.)?home-secure\.org -https?:\/\/([^\/]*\.)?home-sex-video-t1ux7\.blogspot\.com -https?:\/\/([^\/]*\.)?home-spire\.com -https?:\/\/([^\/]*\.)?home\.graffiti\.net -https?:\/\/([^\/]*\.)?home\.sailormoon\.com -https?:\/\/([^\/]*\.)?home2-school\.boom\.ru -https?:\/\/([^\/]*\.)?homeequitylineofcredit-x\.com -https?:\/\/([^\/]*\.)?homeequitylineofcreditlenders\.com -https?:\/\/([^\/]*\.)?homeequityloan-now\.com -https?:\/\/([^\/]*\.)?homeequityloans-now\.com -https?:\/\/([^\/]*\.)?homeequityloans-x\.com -https?:\/\/([^\/]*\.)?homefinance-x\.com -https?:\/\/([^\/]*\.)?homeloan-now\.com -https?:\/\/([^\/]*\.)?homeloanlogic\.com -https?:\/\/([^\/]*\.)?homeloans-now\.com -https?:\/\/([^\/]*\.)?homemade-mature-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?homemade-porn-clip-infoywx\.blogspot\.com -https?:\/\/([^\/]*\.)?homesafterbankruptcy\.info -https?:\/\/([^\/]*\.)?homesbysellers\.com -https?:\/\/([^\/]*\.)?homesbysellers\.net -https?:\/\/([^\/]*\.)?homesexvideo\.org -https?:\/\/([^\/]*\.)?hometowngirls\.be -https?:\/\/([^\/]*\.)?hometwat-com-hrmml\.blogspot\.com -https?:\/\/([^\/]*\.)?homos\.php5\.cz -https?:\/\/([^\/]*\.)?homunkulus\.info -https?:\/\/([^\/]*\.)?homunkulus\.republika\.pl -https?:\/\/([^\/]*\.)?homy\.etowns\.net -https?:\/\/([^\/]*\.)?honba\.republika\.pl -https?:\/\/([^\/]*\.)?honey99\.cn -https?:\/\/([^\/]*\.)?honey99\.com -https?:\/\/([^\/]*\.)?hongjianlaw\.com -https?:\/\/([^\/]*\.)?hongqi120\.com -https?:\/\/([^\/]*\.)?hoodia\.269g\.net -https?:\/\/([^\/]*\.)?hoodiadiet\.269g\.net -https?:\/\/([^\/]*\.)?hopemarry\.com -https?:\/\/([^\/]*\.)?horizondrugs\.zaclona\.yi\.org -https?:\/\/([^\/]*\.)?hornina\.net -https?:\/\/([^\/]*\.)?horny-butt-sex\.medved\.od\.ua -https?:\/\/([^\/]*\.)?horny-grannysex-bipiw\.blogspot\.com -https?:\/\/([^\/]*\.)?horny-hailey\.hostithere\.org -https?:\/\/([^\/]*\.)?hornybanana-com-mg\.blogspot\.com -https?:\/\/([^\/]*\.)?hornybanana-com-to0b\.blogspot\.com -https?:\/\/([^\/]*\.)?hornycrocodile-com-c37c85\.blogspot\.com -https?:\/\/([^\/]*\.)?hornycrocodile-com-gmb5ev\.blogspot\.com -https?:\/\/([^\/]*\.)?hornycrocodile-com-gv3x3oxt\.blogspot\.com -https?:\/\/([^\/]*\.)?hornyduck-com-esta\.blogspot\.com -https?:\/\/([^\/]*\.)?hornyduck-com-oix7y2v\.blogspot\.com -https?:\/\/([^\/]*\.)?hornykaren-com-b16sk5\.blogspot\.com -https?:\/\/([^\/]*\.)?hornykaren-com-bl4rw4\.blogspot\.com -https?:\/\/([^\/]*\.)?hornykaren-com-rg034\.blogspot\.com -https?:\/\/([^\/]*\.)?hornyspanishflies-com-c0cx6a3bo\.blogspot\.com -https?:\/\/([^\/]*\.)?hornyspanishflies-com-ks5856vf77\.blogspot\.com -https?:\/\/([^\/]*\.)?hornytiger-com-d3\.blogspot\.com -https?:\/\/([^\/]*\.)?hornytiger-com-il0x678fwr\.blogspot\.com -https?:\/\/([^\/]*\.)?hornywolf-com-m27\.blogspot\.com -https?:\/\/([^\/]*\.)?hornywolf-com-tqwaj\.blogspot\.com -https?:\/\/([^\/]*\.)?hospitalonline\.cn -https?:\/\/([^\/]*\.)?host-page\.com -https?:\/\/([^\/]*\.)?hosting1999\.com -https?:\/\/([^\/]*\.)?hosting41\.com -https?:\/\/([^\/]*\.)?hot-anal-sex-com\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hot-asian-cock\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?hot-ass-anal\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?hot-blonde-babe-gallery\.protime\.in\.ua -https?:\/\/([^\/]*\.)?hot-brazilian-ass\.protime\.in\.ua -https?:\/\/([^\/]*\.)?hot-bubble-butt-girl\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?hot-cheerleader-getting-fucked\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?hot-dating-chat\.ifastnet\.com -https?:\/\/([^\/]*\.)?hot-latino-ass\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?hot-mature-sex-uk-woman\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?hot-mature-xxx\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?hot-mom-site-myspace-com\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?hot-nude-blonde-chick\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?hot-pussy-tit-ass\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?hot-sex-video-bb-bb-v\.blogspot\.com -https?:\/\/([^\/]*\.)?hotbigmovies-com-cd\.blogspot\.com -https?:\/\/([^\/]*\.)?hotbigmovies-com-k62que75im\.blogspot\.com -https?:\/\/([^\/]*\.)?hotchina\.org -https?:\/\/([^\/]*\.)?hotel-centro-benessere\.host24h\.info -https?:\/\/([^\/]*\.)?hotel-offerta\.nnme\.info -https?:\/\/([^\/]*\.)?hotel-shop\.info -https?:\/\/([^\/]*\.)?hotelsaccommodations\.info -https?:\/\/([^\/]*\.)?hotfunhouse-com-pevuv\.blogspot\.com -https?:\/\/([^\/]*\.)?hotfunhouse-com-r5530\.blogspot\.com -https?:\/\/([^\/]*\.)?hotgirlsplayroom-com-dl0q21\.blogspot\.com -https?:\/\/([^\/]*\.)?hotgirlsplayroom-com-isnkeded\.blogspot\.com -https?:\/\/([^\/]*\.)?hotmoko\.info -https?:\/\/([^\/]*\.)?hotorange-net-ms\.blogspot\.com -https?:\/\/([^\/]*\.)?hotpapai-com-hoc3g\.blogspot\.com -https?:\/\/([^\/]*\.)?hotty-x\.com -https?:\/\/([^\/]*\.)?hottystop-com-a252gugtk\.blogspot\.com -https?:\/\/([^\/]*\.)?hottystop-com-grn\.blogspot\.com -https?:\/\/([^\/]*\.)?house-15\.jeepsyc\.be -https?:\/\/([^\/]*\.)?houses-bahamas\.ligamic\.be -https?:\/\/([^\/]*\.)?housewifeaction-com-evv\.blogspot\.com -https?:\/\/([^\/]*\.)?housewifeaction-com-o6z0yrnat\.blogspot\.com -https?:\/\/([^\/]*\.)?housewifeaction-com-ob85\.blogspot\.com -https?:\/\/([^\/]*\.)?hovadko\.isuisse\.com -https?:\/\/([^\/]*\.)?hovass\.com -https?:\/\/([^\/]*\.)?hovi-albatross\.blogspot\.com -https?:\/\/([^\/]*\.)?how-to-catch-a-cheating-spouse\.com -https?:\/\/([^\/]*\.)?how-to-make-a-boot-disk-on-win-xp\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?how-to-make-a-boot-disk\.medved\.od\.ua -https?:\/\/([^\/]*\.)?how-to-make-a-cock-ring\.protime\.in\.ua -https?:\/\/([^\/]*\.)?hppr7\.szm\.sk -https?:\/\/([^\/]*\.)?hpua6\.szm\.sk -https?:\/\/([^\/]*\.)?hpwe6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hq-casino\.org -https?:\/\/([^\/]*\.)?hq-teens-com-aq\.blogspot\.com -https?:\/\/([^\/]*\.)?hq-teens-com-w2opp2\.blogspot\.com -https?:\/\/([^\/]*\.)?hq\.left-page\.com -https?:\/\/([^\/]*\.)?hqgal-com-eu7gbk1o\.blogspot\.com -https?:\/\/([^\/]*\.)?hqgal-com-ilxpxi0\.blogspot\.com -https?:\/\/([^\/]*\.)?hqmovs-com-k31h4x37df\.blogspot\.com -https?:\/\/([^\/]*\.)?hqmovs-com-tiou81\.blogspot\.com -https?:\/\/([^\/]*\.)?hqmovs-com-ts5\.blogspot\.com -https?:\/\/([^\/]*\.)?hrable\.ostabil\.nu -https?:\/\/([^\/]*\.)?hrhbchj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hromotlk\.asp2\.cz -https?:\/\/([^\/]*\.)?hrusky\.dtdns\.net -https?:\/\/([^\/]*\.)?hscrza1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ht120\.com -https?:\/\/([^\/]*\.)?htejj\.szm\.sk -https?:\/\/([^\/]*\.)?huaeq\.fr33webhost\.com -https?:\/\/([^\/]*\.)?huapatossu\.blogspot\.com -https?:\/\/([^\/]*\.)?huataix\.net -https?:\/\/([^\/]*\.)?hubo-aileen\.blogspot\.com -https?:\/\/([^\/]*\.)?huem-polbu\.netfirms\.com -https?:\/\/([^\/]*\.)?huge-cock-shemale\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?huge-dick-anal\.protime\.in\.ua -https?:\/\/([^\/]*\.)?huge-dildo-fucking\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?huge-mexican-ass\.protime\.in\.ua -https?:\/\/([^\/]*\.)?huge-sexy-boob\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?huge-white-dick\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?hulio\.asp2\.cz -https?:\/\/([^\/]*\.)?hulks\.info -https?:\/\/([^\/]*\.)?hummerworldusa\.info -https?:\/\/([^\/]*\.)?hupa4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hurvinek\.isuisse\.com -https?:\/\/([^\/]*\.)?huspinina\.com -https?:\/\/([^\/]*\.)?hutwistina\.com -https?:\/\/([^\/]*\.)?huynani\.mpage\.jp -https?:\/\/([^\/]*\.)?hvebjr2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hver5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hvlnb\.fr33webhost\.com -https?:\/\/([^\/]*\.)?hwantiig-yg\.blogspot\.com -https?:\/\/([^\/]*\.)?hwcw4\.szm\.sk -https?:\/\/([^\/]*\.)?hwhhw\.fr33webhost\.com -https?:\/\/([^\/]*\.)?hwkxt\.szm\.sk -https?:\/\/([^\/]*\.)?hxbqpz3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?hxlll\.net -https?:\/\/([^\/]*\.)?hydrochloride-tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?hydrocodone-911\.coz\.in -https?:\/\/([^\/]*\.)?hydrocodone-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?hydrocodone-gs\.eu\.tc -https?:\/\/([^\/]*\.)?hydrocodone-gs\.net\.tc -https?:\/\/([^\/]*\.)?hydrocodone-online\.presteert\.nl -https?:\/\/([^\/]*\.)?hydrocodone\.cheapills\.info -https?:\/\/([^\/]*\.)?hydrocodone\.conto\.pl -https?:\/\/([^\/]*\.)?hydrocodone\.esguay\.com -https?:\/\/([^\/]*\.)?hydrocodone\.fws1\.com -https?:\/\/([^\/]*\.)?hydrocodone\.guu\.pl -https?:\/\/([^\/]*\.)?hydrocodone\.presteert\.nl -https?:\/\/([^\/]*\.)?hydrocodone\.slyip\.net -https?:\/\/([^\/]*\.)?hydrocodonebxs\.blogspot\.com -https?:\/\/([^\/]*\.)?hydrocodoneq\.phpbbx\.de -https?:\/\/([^\/]*\.)?hydrocodonerx\.weboficial\.com -https?:\/\/([^\/]*\.)?hyip\.fanforum\.cc -https?:\/\/([^\/]*\.)?hz7\.org -https?:\/\/([^\/]*\.)?hzkap\.szm\.sk -https?:\/\/([^\/]*\.)?hzmeitai\.com -https?:\/\/([^\/]*\.)?hzui8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?i-truepoker\.com -https?:\/\/([^\/]*\.)?iactive\.com\.cn -https?:\/\/([^\/]*\.)?iapon\.galeon\.com -https?:\/\/([^\/]*\.)?ibizababes-com-tr\.blogspot\.com -https?:\/\/([^\/]*\.)?ic37\.com -https?:\/\/([^\/]*\.)?icdufetc\.forumzen\.com -https?:\/\/([^\/]*\.)?ickaboo\.com -https?:\/\/([^\/]*\.)?icnfr\.szm\.sk -https?:\/\/([^\/]*\.)?ict\.188info\.com -https?:\/\/([^\/]*\.)?idahomortgage-x\.com -https?:\/\/([^\/]*\.)?idc2008\.cn -https?:\/\/([^\/]*\.)?idealbabes-net-r5x1puaah0\.blogspot\.com -https?:\/\/([^\/]*\.)?iditarodhumor\.info -https?:\/\/([^\/]*\.)?iehf\.blogspot\.com -https?:\/\/([^\/]*\.)?iehffy8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?iehzup8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ifdbx\.szm\.sk -https?:\/\/([^\/]*\.)?ifmnqm6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ifyj2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ihavenourl\.com -https?:\/\/([^\/]*\.)?ihomebroker\.com -https?:\/\/([^\/]*\.)?ihrd\.blogspot\.com -https?:\/\/([^\/]*\.)?iiak2\.szm\.sk -https?:\/\/([^\/]*\.)?iio91\.net -https?:\/\/([^\/]*\.)?iisqvkk\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?iitop\.info -https?:\/\/([^\/]*\.)?ikoxf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?il4unu\.com -https?:\/\/([^\/]*\.)?ilflz\.szm\.sk -https?:\/\/([^\/]*\.)?ilfwvf2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?illcom\.com -https?:\/\/([^\/]*\.)?illinoismortgage-x\.com -https?:\/\/([^\/]*\.)?ilove-movies-com-w5nx\.blogspot\.com -https?:\/\/([^\/]*\.)?ilove-movies-com-wrde\.blogspot\.com -https?:\/\/([^\/]*\.)?iloveubaby\.info -https?:\/\/([^\/]*\.)?iltbl\.fr33webhost\.com -https?:\/\/([^\/]*\.)?im-really-cool\.blogspot\.com -https?:\/\/([^\/]*\.)?imitrex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?imitrexinjections\.sblog\.cz -https?:\/\/([^\/]*\.)?immagine-sfondo-hello-kitty\.i111i\.info -https?:\/\/([^\/]*\.)?imposingimo\.com -https?:\/\/([^\/]*\.)?impossiblemale61\.blogspot\.com -https?:\/\/([^\/]*\.)?imteen\.attacke\.ch -https?:\/\/([^\/]*\.)?incontri-amore\.19mb\.info -https?:\/\/([^\/]*\.)?incontri-amore\.you-bizz\.info -https?:\/\/([^\/]*\.)?indian-porn-clip-zone5j4\.blogspot\.com -https?:\/\/([^\/]*\.)?indian-porn-video-zo\.blogspot\.com -https?:\/\/([^\/]*\.)?indian-sex-fuck\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?indianamortgage-x\.com -https?:\/\/([^\/]*\.)?indienudes-com-h4owj60\.blogspot\.com -https?:\/\/([^\/]*\.)?infinitemonies\.com -https?:\/\/([^\/]*\.)?infinitieyewear\.info -https?:\/\/([^\/]*\.)?infinitims\.info -https?:\/\/([^\/]*\.)?infinitipianeta\.info -https?:\/\/([^\/]*\.)?infoarena\.info -https?:\/\/([^\/]*\.)?infospm\.21publish\.de -https?:\/\/([^\/]*\.)?infty\.net -https?:\/\/([^\/]*\.)?injecfu\.com -https?:\/\/([^\/]*\.)?injxx\.szm\.sk -https?:\/\/([^\/]*\.)?innocent-ass\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?innocent-busty-teen\.medved\.od\.ua -https?:\/\/([^\/]*\.)?innocent-eve-pic\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?innocentdream-com-da\.blogspot\.com -https?:\/\/([^\/]*\.)?inqygjz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?inrhqi3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?insidethecloset\.com -https?:\/\/([^\/]*\.)?inspectorgalleries-com-k5\.blogspot\.com -https?:\/\/([^\/]*\.)?insurance-leader\.com -https?:\/\/([^\/]*\.)?insurance-top\.com -https?:\/\/([^\/]*\.)?insurance\.topforyou\.net -https?:\/\/([^\/]*\.)?internal-ass-cum-shot\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?international-dating\.sexnation\.info -https?:\/\/([^\/]*\.)?interracial-gang-bang-crew\.medved\.od\.ua -https?:\/\/([^\/]*\.)?interracial-gay-anal-sex\.medved\.od\.ua -https?:\/\/([^\/]*\.)?interracial-lesbian-domination\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?interracial-teen-fucking\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?interracialpicsuux\.blogspot\.com -https?:\/\/([^\/]*\.)?intersea-fdn\.com -https?:\/\/([^\/]*\.)?inthevip-com-bc1b0kb0\.blogspot\.com -https?:\/\/([^\/]*\.)?inthevip-com-bvw\.blogspot\.com -https?:\/\/([^\/]*\.)?inthevip-com-rso\.blogspot\.com -https?:\/\/([^\/]*\.)?intll\.com -https?:\/\/([^\/]*\.)?intra\.som\.umass\.edu -https?:\/\/([^\/]*\.)?intranet\.education\.umn\.edu -https?:\/\/([^\/]*\.)?invest1\.org\.ua -https?:\/\/([^\/]*\.)?ioauaq0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ionamin\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ionizatorit\.info -https?:\/\/([^\/]*\.)?iowamortgage-x\.com -https?:\/\/([^\/]*\.)?ipeddle\.com -https?:\/\/([^\/]*\.)?ipha4\.szm\.sk -https?:\/\/([^\/]*\.)?ipod-application\.info -https?:\/\/([^\/]*\.)?ipokea\.com -https?:\/\/([^\/]*\.)?iqzyk\.szm\.sk -https?:\/\/([^\/]*\.)?iradorame\.site\.voila\.fr -https?:\/\/([^\/]*\.)?ircv6\.szm\.sk -https?:\/\/([^\/]*\.)?irenefah-gijul\.blogspot\.com -https?:\/\/([^\/]*\.)?irishlover\.info -https?:\/\/([^\/]*\.)?iron-island\.blogspot\.com -https?:\/\/([^\/]*\.)?ironing-boards\.haemati\.be -https?:\/\/([^\/]*\.)?irqs8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?isceby0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?islands-tour\.globaltr\.info -https?:\/\/([^\/]*\.)?isoway-yoga\.com -https?:\/\/([^\/]*\.)?ispycameltoe-com-cugh6n\.blogspot\.com -https?:\/\/([^\/]*\.)?ispycameltoe-com-g4s2f7vevs\.blogspot\.com -https?:\/\/([^\/]*\.)?italiagame\.org -https?:\/\/([^\/]*\.)?italianosito\.info -https?:\/\/([^\/]*\.)?italika\.info -https?:\/\/([^\/]*\.)?italizzhot\.info -https?:\/\/([^\/]*\.)?italoman\.info -https?:\/\/([^\/]*\.)?italytraffic\.info -https?:\/\/([^\/]*\.)?itchy-skin\.nm\.ru -https?:\/\/([^\/]*\.)?itchy_skin\.chat\.ru -https?:\/\/([^\/]*\.)?itcweb\.ecsu\.edu -https?:\/\/([^\/]*\.)?itdk0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?item4u\.com -https?:\/\/([^\/]*\.)?itgeecna\.forumzen\.com -https?:\/\/([^\/]*\.)?itp\.nyu\.edu -https?:\/\/([^\/]*\.)?itpvewa\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?itsum\.com\.cn -https?:\/\/([^\/]*\.)?ityh1\.szm\.sk -https?:\/\/([^\/]*\.)?iugfsvv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?iuzjbpu\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ivana-fuck-a-lot\.hoffer\.ipupdater\.com -https?:\/\/([^\/]*\.)?ivoyt\.blogspot\.com -https?:\/\/([^\/]*\.)?ivs\.com\.cn -https?:\/\/([^\/]*\.)?iwahigux\.info -https?:\/\/([^\/]*\.)?iwantmature-com-mme\.blogspot\.com -https?:\/\/([^\/]*\.)?iwuy8\.szm\.sk -https?:\/\/([^\/]*\.)?ixiixi-com-guy\.blogspot\.com -https?:\/\/([^\/]*\.)?ixllvdi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ixnl4\.szm\.sk -https?:\/\/([^\/]*\.)?ixth4\.szm\.sk -https?:\/\/([^\/]*\.)?izizyu-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?izui7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ja-rule-ringtonezad\.blogspot\.com -https?:\/\/([^\/]*\.)?jablicko\.yi\.org -https?:\/\/([^\/]*\.)?jablonec\.republika\.pl -https?:\/\/([^\/]*\.)?jadelrel\.goodbb\.net -https?:\/\/([^\/]*\.)?jagast\.com -https?:\/\/([^\/]*\.)?jahmpf3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jaja-jak-globusy\.com -https?:\/\/([^\/]*\.)?jajpip5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jamies-galleries-com-dr7itf8c\.blogspot\.com -https?:\/\/([^\/]*\.)?jamm\.host-page\.com -https?:\/\/([^\/]*\.)?janelolo\.fr-bb\.com -https?:\/\/([^\/]*\.)?janet-jackson-boob-picture\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?janisy\.republika\.pl -https?:\/\/([^\/]*\.)?jantiq\.com -https?:\/\/([^\/]*\.)?jaoqmw1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?japan-girl-sex\.com -https?:\/\/([^\/]*\.)?japan-whores-com-e28dwa2vvb\.blogspot\.com -https?:\/\/([^\/]*\.)?japan-whores-com-elay3rzsu\.blogspot\.com -https?:\/\/([^\/]*\.)?japanese-geisha-girl\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?japanese-teacher-fuck\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?japanese158\.com -https?:\/\/([^\/]*\.)?japanshanye\.com -https?:\/\/([^\/]*\.)?jarella\.goodbb\.net -https?:\/\/([^\/]*\.)?jasara-com-t6fn6k8\.blogspot\.com -https?:\/\/([^\/]*\.)?jasara-com-two5\.blogspot\.com -https?:\/\/([^\/]*\.)?jasara-com-wibeh\.blogspot\.com -https?:\/\/([^\/]*\.)?jastim\.com -https?:\/\/([^\/]*\.)?jbixc\.szm\.sk -https?:\/\/([^\/]*\.)?jblt7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jcbbxb0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jdmz\.com\.cn -https?:\/\/([^\/]*\.)?jeanniexong\.blogspot\.com -https?:\/\/([^\/]*\.)?jebmd\.fr33webhost\.com -https?:\/\/([^\/]*\.)?jed-two-lips-com\.blogspot\.com -https?:\/\/([^\/]*\.)?jeffrorocks21\.blogspot\.com -https?:\/\/([^\/]*\.)?jelatko\.republika\.pl -https?:\/\/([^\/]*\.)?jelito\.stabilt\.se -https?:\/\/([^\/]*\.)?jennifer-lopez-music-photo\.blogspot\.com -https?:\/\/([^\/]*\.)?jennifer-lopez-ringtoneqnf\.blogspot\.com -https?:\/\/([^\/]*\.)?jennysbookmarks-com-kcr\.blogspot\.com -https?:\/\/([^\/]*\.)?jessica-alba-jly9\.blogspot\.com -https?:\/\/([^\/]*\.)?jessiethebestie\.blogspot\.com -https?:\/\/([^\/]*\.)?jesuisleflet\.blogspot\.com -https?:\/\/([^\/]*\.)?jet-cold-hard-bitch-album-version-lyric\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?jetoo\.cn -https?:\/\/([^\/]*\.)?jeun\.fr -https?:\/\/([^\/]*\.)?jewels667\.blogspot\.com -https?:\/\/([^\/]*\.)?jezgy\.szm\.sk -https?:\/\/([^\/]*\.)?jfmr\.com -https?:\/\/([^\/]*\.)?jgeqhqa\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jhrxa\.szm\.sk -https?:\/\/([^\/]*\.)?jhsy0\.szm\.sk -https?:\/\/([^\/]*\.)?jiahuajipiao\.com -https?:\/\/([^\/]*\.)?jiaju88\.com -https?:\/\/([^\/]*\.)?jianfei\.cc -https?:\/\/([^\/]*\.)?jianzhi168\.com -https?:\/\/([^\/]*\.)?jiaza\.szm\.sk -https?:\/\/([^\/]*\.)?jiboki-free-lesbian-video\.blogspot\.com -https?:\/\/([^\/]*\.)?jichengdianlu\.dzsc\.com -https?:\/\/([^\/]*\.)?jidianqi\.dzsc\.com -https?:\/\/([^\/]*\.)?jieyan\.com\.cn -https?:\/\/([^\/]*\.)?jiguang\.org -https?:\/\/([^\/]*\.)?jijijo\.com -https?:\/\/([^\/]*\.)?jimbo\.php5\.cz -https?:\/\/([^\/]*\.)?jimmccarthy\.org\.uk -https?:\/\/([^\/]*\.)?jimmini\.blogspot\.com -https?:\/\/([^\/]*\.)?jinchengjipiao\.com -https?:\/\/([^\/]*\.)?jinghuigift\.com -https?:\/\/([^\/]*\.)?jingzhi-life\.com -https?:\/\/([^\/]*\.)?jipiao\.51mp4mp3\.com -https?:\/\/([^\/]*\.)?jipiaoweb\.co -https?:\/\/([^\/]*\.)?jipiaoweb\.com -https?:\/\/([^\/]*\.)?jiuwu\.com -https?:\/\/([^\/]*\.)?jizzhut-com-oq4zf\.blogspot\.com -https?:\/\/([^\/]*\.)?jizzonline-com-a3h52c1\.blogspot\.com -https?:\/\/([^\/]*\.)?jizzonline-cz0h5y1nm\.blogspot\.com -https?:\/\/([^\/]*\.)?jjfchljumf-video\.blogspot\.com -https?:\/\/([^\/]*\.)?jjuwt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jkpotv-free-video\.blogspot\.com -https?:\/\/([^\/]*\.)?jlhtj\.szm\.sk -https?:\/\/([^\/]*\.)?jlibhe9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jmjx7\.szm\.sk -https?:\/\/([^\/]*\.)?jnbxqy5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jnk713\.ifrance\.com -https?:\/\/([^\/]*\.)?jnxx3\.szm\.sk -https?:\/\/([^\/]*\.)?jobecraf\.dl\.pl -https?:\/\/([^\/]*\.)?jobruler\.com -https?:\/\/([^\/]*\.)?jocdy\.szm\.sk -https?:\/\/([^\/]*\.)?jodofiv-free-fat-ass-mo-t\.blogspot\.com -https?:\/\/([^\/]*\.)?johatch\.ifrance\.com -https?:\/\/([^\/]*\.)?joia\.com -https?:\/\/([^\/]*\.)?jointroompia\.com -https?:\/\/([^\/]*\.)?jokerupot\.blogspot\.com -https?:\/\/([^\/]*\.)?jon-a-ross\.blogspot\.com -https?:\/\/([^\/]*\.)?jonn22\.com -https?:\/\/([^\/]*\.)?jonsmovies-com-b23k3tx4h\.blogspot\.com -https?:\/\/([^\/]*\.)?joperan\.org -https?:\/\/([^\/]*\.)?journal\.eepis-its\.edu -https?:\/\/([^\/]*\.)?joycclx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jozin\.php5\.cz -https?:\/\/([^\/]*\.)?jp\.zxvo\.com -https?:\/\/([^\/]*\.)?jpeghunter-com-h6rb6\.blogspot\.com -https?:\/\/([^\/]*\.)?jpeghunter-com-hsa0g47vew\.blogspot\.com -https?:\/\/([^\/]*\.)?jpha9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jplm\.cn -https?:\/\/([^\/]*\.)?jptrip\.org -https?:\/\/([^\/]*\.)?jqri2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?jrcreations\.com -https?:\/\/([^\/]*\.)?jrqzje5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jsjgdpg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jsyuanyang\.com -https?:\/\/([^\/]*\.)?jtdh\.fuwuqituoguan\.com -https?:\/\/([^\/]*\.)?jtgq3\.szm\.sk -https?:\/\/([^\/]*\.)?jtoph\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?jtut6\.szm\.sk -https?:\/\/([^\/]*\.)?ju-alexis\.blogspot\.com -https?:\/\/([^\/]*\.)?ju-free-porn-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?juanyuancailiao\.dzsc\.com -https?:\/\/([^\/]*\.)?juggcrew-com-r4xwgs\.blogspot\.com -https?:\/\/([^\/]*\.)?jugni\.50webs\.org -https?:\/\/([^\/]*\.)?juicygals-com-c8o\.blogspot\.com -https?:\/\/([^\/]*\.)?juliatalbot\.50webs\.org -https?:\/\/([^\/]*\.)?julietsold\.info -https?:\/\/([^\/]*\.)?jumasd\.com -https?:\/\/([^\/]*\.)?jumtan\.com -https?:\/\/([^\/]*\.)?junenanney\.site\.io -https?:\/\/([^\/]*\.)?junky\.phpbb2\.us -https?:\/\/([^\/]*\.)?junyuan\.com\.cn -https?:\/\/([^\/]*\.)?jupka97\.blogspot\.com -https?:\/\/([^\/]*\.)?juruortr\.jconserv\.net -https?:\/\/([^\/]*\.)?juse-active\.blogspot\.com -https?:\/\/([^\/]*\.)?justanotherebel\.blogspot\.com -https?:\/\/([^\/]*\.)?justkor\.com -https?:\/\/([^\/]*\.)?juyi6\.szm\.sk -https?:\/\/([^\/]*\.)?jwfj8\.szm\.sk -https?:\/\/([^\/]*\.)?jwk\.cn -https?:\/\/([^\/]*\.)?jxxfl\.fr33webhost\.com -https?:\/\/([^\/]*\.)?jytpn\.szm\.sk -https?:\/\/([^\/]*\.)?jzllteva-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?jzoqn\.fr33webhost\.com -https?:\/\/([^\/]*\.)?k-teens-more\.blogspot\.com -https?:\/\/([^\/]*\.)?k98you\.info -https?:\/\/([^\/]*\.)?kabierac\.blogspot\.com -https?:\/\/([^\/]*\.)?kaejsi\.com -https?:\/\/([^\/]*\.)?kaiguan\.dzsc\.com -https?:\/\/([^\/]*\.)?kaimitech\.com -https?:\/\/([^\/]*\.)?kaizokukitsune\.blogspot\.com -https?:\/\/([^\/]*\.)?kakaloo\.dtdns\.net -https?:\/\/([^\/]*\.)?kalbongzig64\.blogspot\.com -https?:\/\/([^\/]*\.)?kamachair\.info -https?:\/\/([^\/]*\.)?kansasmortgage-x\.com -https?:\/\/([^\/]*\.)?kaopowh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kardashian\.6\.forumer\.com -https?:\/\/([^\/]*\.)?karwee\.com\.tw -https?:\/\/([^\/]*\.)?katal0g\.ru -https?:\/\/([^\/]*\.)?kates-playground-cjs61770aq\.blogspot\.com -https?:\/\/([^\/]*\.)?kates-playground-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?katie-fey-m8inou71nk\.blogspot\.com -https?:\/\/([^\/]*\.)?katie-fey\.hostithere\.org -https?:\/\/([^\/]*\.)?katsmovies-com-a4k0cr\.blogspot\.com -https?:\/\/([^\/]*\.)?kc-generator\.com -https?:\/\/([^\/]*\.)?kc\.vanderbilt\.edu -https?:\/\/([^\/]*\.)?kchaiguang\.com -https?:\/\/([^\/]*\.)?kdmj1\.fr33webhost\.com -https?:\/\/([^\/]*\.)?kedew-free-porn-movie-c\.blogspot\.com -https?:\/\/([^\/]*\.)?kedrp\.szm\.sk -https?:\/\/([^\/]*\.)?keflexbuy\.easy\.to -https?:\/\/([^\/]*\.)?keflexbuycheap\.everything\.at -https?:\/\/([^\/]*\.)?keflexcheap\.notrix\.at -https?:\/\/([^\/]*\.)?keflexcheapgeneric\.drop\.to -https?:\/\/([^\/]*\.)?keflexgeneric\.firstpage\.de -https?:\/\/([^\/]*\.)?kelley\.iu\.edu -https?:\/\/([^\/]*\.)?kellyfind-com-i1\.blogspot\.com -https?:\/\/([^\/]*\.)?kellyslovespells\.com -https?:\/\/([^\/]*\.)?kelvinova\.com -https?:\/\/([^\/]*\.)?kenji-no-sorata\.blogspot\.com -https?:\/\/([^\/]*\.)?kentuckymortgage-x\.com -https?:\/\/([^\/]*\.)?kenwoodexcelon\.com -https?:\/\/([^\/]*\.)?keps\.info -https?:\/\/([^\/]*\.)?kesdirect\.com -https?:\/\/([^\/]*\.)?keshome\.com -https?:\/\/([^\/]*\.)?kewl-links\.com -https?:\/\/([^\/]*\.)?keysplus\.com -https?:\/\/([^\/]*\.)?keyword\.net\.cn -https?:\/\/([^\/]*\.)?kfwd7\.szm\.sk -https?:\/\/([^\/]*\.)?kgbsearch\.org -https?:\/\/([^\/]*\.)?khawkslaxfan51\.blogspot\.com -https?:\/\/([^\/]*\.)?khlnbo3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ki-westly\.blogspot\.com -https?:\/\/([^\/]*\.)?kiboric\.net -https?:\/\/([^\/]*\.)?kicfmaudio\.com -https?:\/\/([^\/]*\.)?kicklikegirls\.info -https?:\/\/([^\/]*\.)?kijub-free-porn-video-v\.blogspot\.com -https?:\/\/([^\/]*\.)?kingdom\.webmelia\.com -https?:\/\/([^\/]*\.)?kingofpics-com-beib6jsm5d\.blogspot\.com -https?:\/\/([^\/]*\.)?kingofpics-com-c8f1bag\.blogspot\.com -https?:\/\/([^\/]*\.)?kipredinstitute\.org -https?:\/\/([^\/]*\.)?kiqi-airplane\.blogspot\.com -https?:\/\/([^\/]*\.)?kirsten-dunst-boob-slip\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?kiska2\.com -https?:\/\/([^\/]*\.)?kissing-foot\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?kissing-her-ass\.medved\.od\.ua -https?:\/\/([^\/]*\.)?kitchen-apron\.keckins\.be -https?:\/\/([^\/]*\.)?kitchenrebuilding\.com -https?:\/\/([^\/]*\.)?kiudcb0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kjbz0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kjor4\.szm\.sk -https?:\/\/([^\/]*\.)?kkkpd\.szm\.sk -https?:\/\/([^\/]*\.)?kkvalve\.com\.cn -https?:\/\/([^\/]*\.)?klacim\.yi\.org -https?:\/\/([^\/]*\.)?klasik111\.php5\.cz -https?:\/\/([^\/]*\.)?kleinerachel\.blogspot\.com -https?:\/\/([^\/]*\.)?klohy\.info -https?:\/\/([^\/]*\.)?kmxab\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?knkbact\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?knzfpca\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ko-paris-hilton-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?koberec\.com -https?:\/\/([^\/]*\.)?koled-porn-video-z\.blogspot\.com -https?:\/\/([^\/]*\.)?kom4um\.com -https?:\/\/([^\/]*\.)?koncatina\.dtdns\.net -https?:\/\/([^\/]*\.)?konstantine01\.blogspot\.com -https?:\/\/([^\/]*\.)?kordirect\.com -https?:\/\/([^\/]*\.)?kos123\.dtdns\.net -https?:\/\/([^\/]*\.)?kostya\.cabspace\.com -https?:\/\/([^\/]*\.)?kpdsvd9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kpqf2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kpzq6\.szm\.sk -https?:\/\/([^\/]*\.)?krakatoa\.slyip\.com -https?:\/\/([^\/]*\.)?krakon\.republika\.pl -https?:\/\/([^\/]*\.)?krasnota\.flnet\.org -https?:\/\/([^\/]*\.)?krbd2\.szm\.sk -https?:\/\/([^\/]*\.)?kreco\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ksbj5\.szm\.sk -https?:\/\/([^\/]*\.)?ksiegagosci\.info -https?:\/\/([^\/]*\.)?ktbug1373\.blogspot\.com -https?:\/\/([^\/]*\.)?ktrv2\.szm\.sk -https?:\/\/([^\/]*\.)?ku-whatnot\.blogspot\.com -https?:\/\/([^\/]*\.)?kucitok\.forumculture\.net -https?:\/\/([^\/]*\.)?kulhain\.blogspot\.com -https?:\/\/([^\/]*\.)?kunshalawyer\.com -https?:\/\/([^\/]*\.)?kvehuj8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kvywc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kwscx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kwvi\.com -https?:\/\/([^\/]*\.)?kybel\.fetftp\.nu -https?:\/\/([^\/]*\.)?kybele\.psych\.cornell\.edu -https?:\/\/([^\/]*\.)?kyjcz\.sunp\.com -https?:\/\/([^\/]*\.)?kymnruw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?kymyn\.info -https?:\/\/([^\/]*\.)?l-paris-hilton-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?l\.0s48\.info -https?:\/\/([^\/]*\.)?l1ttleblacky\.blogspot\.com -https?:\/\/([^\/]*\.)?la-ringtones\.com -https?:\/\/([^\/]*\.)?laaceler\.blogcu\.com -https?:\/\/([^\/]*\.)?labelprinter\.printer\.net\.cn -https?:\/\/([^\/]*\.)?labladar\.forumzen\.com -https?:\/\/([^\/]*\.)?lacchi\.lolforum\.net -https?:\/\/([^\/]*\.)?laconia4\.info -https?:\/\/([^\/]*\.)?ladylike\.hostcroc\.com -https?:\/\/([^\/]*\.)?lake-baikal\.info -https?:\/\/([^\/]*\.)?laked\.info -https?:\/\/([^\/]*\.)?lalisit\.heavenforum\.com -https?:\/\/([^\/]*\.)?lalisit\.highforum\.net -https?:\/\/([^\/]*\.)?lamalinks-com-ceefq\.blogspot\.com -https?:\/\/([^\/]*\.)?lamisilbuy\.drive\.to -https?:\/\/([^\/]*\.)?lamisilbuygeneric\.dive\.to -https?:\/\/([^\/]*\.)?lamisilcheap\.drink\.to -https?:\/\/([^\/]*\.)?lamisilgeneric\.drop\.to -https?:\/\/([^\/]*\.)?lamisilgenericcheap\.dive\.to -https?:\/\/([^\/]*\.)?lanasbigboobs-com-mxm7\.blogspot\.com -https?:\/\/([^\/]*\.)?lanasbigboobs-com-repif\.blogspot\.com -https?:\/\/([^\/]*\.)?laorer\.ephpbb\.com -https?:\/\/([^\/]*\.)?lapelcna\.forumzen\.com -https?:\/\/([^\/]*\.)?lapoer\.dynamicforum\.net -https?:\/\/([^\/]*\.)?large-lingerie-naughty-woman\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?las-vegas-gay-night-club\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?las-vegas-house\.nm\.ru -https?:\/\/([^\/]*\.)?laser-drilled-diamonds\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?laser-wave\.com -https?:\/\/([^\/]*\.)?laskai\.com -https?:\/\/([^\/]*\.)?lasmercedessite\.info -https?:\/\/([^\/]*\.)?lassie\.webmelia\.com -https?:\/\/([^\/]*\.)?last-minute-travel\.ebem\.info -https?:\/\/([^\/]*\.)?latex-ass\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?latex-dress\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?latex-foam-mattress-toppers\.protime\.in\.ua -https?:\/\/([^\/]*\.)?latex-mistress\.protime\.in\.ua -https?:\/\/([^\/]*\.)?latex-sluts\.protime\.in\.ua -https?:\/\/([^\/]*\.)?latex-swim-wear\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?latin\.hostaim\.com -https?:\/\/([^\/]*\.)?latina-porn-clip-blog11q\.blogspot\.com -https?:\/\/([^\/]*\.)?latina-porn-clip-blogden\.blogspot\.com -https?:\/\/([^\/]*\.)?latinata\.galeon\.com -https?:\/\/([^\/]*\.)?latoarril\.myrealboard\.com -https?:\/\/([^\/]*\.)?laus-rmore\.blogspot\.com -https?:\/\/([^\/]*\.)?lavemi\.com -https?:\/\/([^\/]*\.)?lavender-dove\.blogspot\.com -https?:\/\/([^\/]*\.)?lavor0\.info -https?:\/\/([^\/]*\.)?law-school\.hotmail\.ru -https?:\/\/([^\/]*\.)?law1degree\.chat\.ru -https?:\/\/([^\/]*\.)?law2school\.chat\.ru -https?:\/\/([^\/]*\.)?lawrencegillies\.blogspot\.com -https?:\/\/([^\/]*\.)?lawyer\.ebloggy\.com -https?:\/\/([^\/]*\.)?laynamarya\.blogspot\.com -https?:\/\/([^\/]*\.)?laythekatcom\.pupava\.dtdns\.net -https?:\/\/([^\/]*\.)?lbgetm9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lbrnrme\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lczjunf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ldrdf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?le-alma\.blogspot\.com -https?:\/\/([^\/]*\.)?le-big-free-movie-porn-cek\.blogspot\.com -https?:\/\/([^\/]*\.)?leadora\.blogspot\.com -https?:\/\/([^\/]*\.)?leannrae85\.blogspot\.com -https?:\/\/([^\/]*\.)?lebu-adidas\.blogspot\.com -https?:\/\/([^\/]*\.)?ledego\.com -https?:\/\/([^\/]*\.)?ledgiest\.xhostar\.com -https?:\/\/([^\/]*\.)?ledkrx\.com -https?:\/\/([^\/]*\.)?ledled\.nease\.net -https?:\/\/([^\/]*\.)?leebuc\.forumzen\.com -https?:\/\/([^\/]*\.)?leeticarus\.blogspot\.com -https?:\/\/([^\/]*\.)?leetvilt\.jconserv\.net -https?:\/\/([^\/]*\.)?left-leg-numbness\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?leg-exercise\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?leg-in-stocking\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?leg-in-tan-pantie-hose\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?leg-neurontin-restless-syndrome\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?leg-preteen-spread\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?leg-shaved-spread\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?leisure-suit-larry-magna-cum-laude-nudity-patch\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?leisure-suit-larry-magna-cum-laude-uncut-and-uncensored\.medved\.od\.ua -https?:\/\/([^\/]*\.)?leo-the-bastet\.site\.voila\.fr -https?:\/\/([^\/]*\.)?leopard-lady\.blogspot\.com -https?:\/\/([^\/]*\.)?leroyhotel\.com -https?:\/\/([^\/]*\.)?lesbian-anal-porn\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?lesbian-fisting-dvd\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lesbian-fucking-eachother\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?lesbian-girl-scout\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?lesbian-group-masturbation\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lesbian-oral-sex\.protime\.in\.ua -https?:\/\/([^\/]*\.)?lesbian-personals-ads\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?lesbian-personals-yahoo\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?lesbian-porn-clip-blog6e5\.blogspot\.com -https?:\/\/([^\/]*\.)?lesbian-sex-teen\.medved\.od\.ua -https?:\/\/([^\/]*\.)?lesbian-sharing-dildo\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lesbian-tit-bondage\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lesbian-web-chat-and-cam\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?lesbians\.coz\.in -https?:\/\/([^\/]*\.)?letoacel-or\.xa\.pl -https?:\/\/([^\/]*\.)?letobocpas\.frbb\.net -https?:\/\/([^\/]*\.)?letocvi\.goodbb\.net -https?:\/\/([^\/]*\.)?letomon\.graphforum\.com -https?:\/\/([^\/]*\.)?letorelpas\.xa\.pl -https?:\/\/([^\/]*\.)?lettera-di-presentazione\.zoom4x\.info -https?:\/\/([^\/]*\.)?lettersof-love\.blogspot\.com -https?:\/\/([^\/]*\.)?levitra\.1\.p2l\.info -https?:\/\/([^\/]*\.)?levitra\.rx4\.org -https?:\/\/([^\/]*\.)?levitra\.seesaa\.net -https?:\/\/([^\/]*\.)?levitra\.skocz\.net -https?:\/\/([^\/]*\.)?levitraejv\.blogspot\.com -https?:\/\/([^\/]*\.)?levitras\.eu\.tf -https?:\/\/([^\/]*\.)?levitraxpb\.blogspot\.com -https?:\/\/([^\/]*\.)?lex-interracial\.hoffer\.ipupdater\.com -https?:\/\/([^\/]*\.)?lexapro\.1\.p2l\.info -https?:\/\/([^\/]*\.)?lexaprobuyonline\.buzznet\.com -https?:\/\/([^\/]*\.)?lexpov-com\.cornut\.ipupdater\.com -https?:\/\/([^\/]*\.)?leyeager\.ifrance\.com -https?:\/\/([^\/]*\.)?lezbomovies-com-dp3256w4cb\.blogspot\.com -https?:\/\/([^\/]*\.)?lezbomovies-com-duvuv\.blogspot\.com -https?:\/\/([^\/]*\.)?lezbomovies-com-dw7q2s6l\.blogspot\.com -https?:\/\/([^\/]*\.)?lf-pm\.com -https?:\/\/([^\/]*\.)?lfamas\.com -https?:\/\/([^\/]*\.)?lhbtx\.szm\.sk -https?:\/\/([^\/]*\.)?lhnzkp9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?li-adult-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?li6or6olo\.dl\.pl -https?:\/\/([^\/]*\.)?lianjieqi\.dzsc\.com -https?:\/\/([^\/]*\.)?liaozhi\.org -https?:\/\/([^\/]*\.)?libasac\.ephpbb\.com -https?:\/\/([^\/]*\.)?libertyliga\.com -https?:\/\/([^\/]*\.)?library\.cshl\.edu -https?:\/\/([^\/]*\.)?libraryofthumbs-com-oyz1qboq\.blogspot\.com -https?:\/\/([^\/]*\.)?licecile\.dl\.pl -https?:\/\/([^\/]*\.)?licnarol\.dl\.pl -https?:\/\/([^\/]*\.)?lidaror\.blogcu\.com -https?:\/\/([^\/]*\.)?lidiarac\.forumzen\.com -https?:\/\/([^\/]*\.)?lidomca\.graphforum\.com -https?:\/\/([^\/]*\.)?lidomca\.highforum\.net -https?:\/\/([^\/]*\.)?lidompas\.td\.pl -https?:\/\/([^\/]*\.)?lidomta\.frbb\.net -https?:\/\/([^\/]*\.)?lidupett\.forumzen\.com -https?:\/\/([^\/]*\.)?lifeinsurance-x\.com -https?:\/\/([^\/]*\.)?lifewave\.com -https?:\/\/([^\/]*\.)?ligettr\.dl\.pl -https?:\/\/([^\/]*\.)?light365\.com -https?:\/\/([^\/]*\.)?lightspeed-state\.hostithere\.org -https?:\/\/([^\/]*\.)?lihach\.com -https?:\/\/([^\/]*\.)?lijoho-video-porn-gratis\.blogspot\.com -https?:\/\/([^\/]*\.)?likozrut\.stabilt\.se -https?:\/\/([^\/]*\.)?lilaleemcrightrealty\.com -https?:\/\/([^\/]*\.)?lilaliko\.dynamicbb\.com -https?:\/\/([^\/]*\.)?lile\.asp2\.cz -https?:\/\/([^\/]*\.)?lilett\.blogspot\.com -https?:\/\/([^\/]*\.)?lilhaq\.blogspot\.com -https?:\/\/([^\/]*\.)?lilo-n\.blogspot\.com -https?:\/\/([^\/]*\.)?lilotu\.com -https?:\/\/([^\/]*\.)?linarcbo\.forumzen\.com -https?:\/\/([^\/]*\.)?lincweb\.cacs\.louisiana\.edu -https?:\/\/([^\/]*\.)?lindsaylife\.com -https?:\/\/([^\/]*\.)?lineance-facial-hair-removal-cream\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?linefreeinternet\.info -https?:\/\/([^\/]*\.)?linemd\.com -https?:\/\/([^\/]*\.)?lingerie-babes-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?lingerie-girl-pic\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lingerie-guide\.org -https?:\/\/([^\/]*\.)?lingerie-sex-photo\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?lingerie-videos-com-wcu8\.blogspot\.com -https?:\/\/([^\/]*\.)?lingshengdown\.com -https?:\/\/([^\/]*\.)?lingua-francese\.host24h\.info -https?:\/\/([^\/]*\.)?link-o-rama-com-t5xhd\.blogspot\.com -https?:\/\/([^\/]*\.)?link-o-rama-com-toz5x8i2ez\.blogspot\.com -https?:\/\/([^\/]*\.)?linserch\.com -https?:\/\/([^\/]*\.)?lioral\.dl\.pl -https?:\/\/([^\/]*\.)?lioumon\.lolforum\.net -https?:\/\/([^\/]*\.)?lipitor\.skocz\.net -https?:\/\/([^\/]*\.)?lipstick-love\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?lipstick-mac\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?lipus\.org -https?:\/\/([^\/]*\.)?lirolbo\.goodforum\.net -https?:\/\/([^\/]*\.)?lirolbo\.grafbb\.com -https?:\/\/([^\/]*\.)?lisinopril\.no-ip\.info -https?:\/\/([^\/]*\.)?list\.eng\.utah\.edu -https?:\/\/([^\/]*\.)?listinna772\.galeon\.com -https?:\/\/([^\/]*\.)?listpharm\.com -https?:\/\/([^\/]*\.)?lists\.gatech\.edu -https?:\/\/([^\/]*\.)?litaacel\.lolforum\.net -https?:\/\/([^\/]*\.)?litadal\.myrealboard\.com -https?:\/\/([^\/]*\.)?litayj0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?literotica-com-t3yx\.blogspot\.com -https?:\/\/([^\/]*\.)?literotica-com-tkncy\.blogspot\.com -https?:\/\/([^\/]*\.)?litrget\.jc\.pl -https?:\/\/([^\/]*\.)?little-april-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?little-april-masturbating-movie\.medved\.od\.ua -https?:\/\/([^\/]*\.)?little-dicks-bay\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?little-teen-fuck\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?littledevildoubt\.com -https?:\/\/([^\/]*\.)?littlesunshine\.50webs\.org -https?:\/\/([^\/]*\.)?litumdet\.forumzen\.com -https?:\/\/([^\/]*\.)?liupy\.110mb\.com -https?:\/\/([^\/]*\.)?live-gay-video-chat\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?live-jasmine-cams\.com -https?:\/\/([^\/]*\.)?livejasmin-com-abc\.blogspot\.com -https?:\/\/([^\/]*\.)?livejasmin-com-abz\.blogspot\.com -https?:\/\/([^\/]*\.)?livejasmin-com-aky\.blogspot\.com -https?:\/\/([^\/]*\.)?livejasmin-com-qujef\.blogspot\.com -https?:\/\/([^\/]*\.)?livescore\.esguay\.com -https?:\/\/([^\/]*\.)?livescore\.ven\.bz -https?:\/\/([^\/]*\.)?livesupportpal\.com -https?:\/\/([^\/]*\.)?liviral\.myrealboard\.com -https?:\/\/([^\/]*\.)?lixin642\.com -https?:\/\/([^\/]*\.)?liymcc0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lizardofoz\.com -https?:\/\/([^\/]*\.)?lizas\.asp2\.cz -https?:\/\/([^\/]*\.)?lizscottrawson\.com -https?:\/\/([^\/]*\.)?lkrzfkg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ll-four-sterto\.blogspot\.com -https?:\/\/([^\/]*\.)?llillith\.blogspot\.com -https?:\/\/([^\/]*\.)?lll1l\.info -https?:\/\/([^\/]*\.)?llline\.info -https?:\/\/([^\/]*\.)?llpcoil\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?llsky\.net -https?:\/\/([^\/]*\.)?lm4nmu\.com -https?:\/\/([^\/]*\.)?lmyzm\.szm\.sk -https?:\/\/([^\/]*\.)?lnalpas\.myrealboard\.com -https?:\/\/([^\/]*\.)?lnki9\.szm\.sk -https?:\/\/([^\/]*\.)?lnqfa\.fr33webhost\.com -https?:\/\/([^\/]*\.)?lnqixlz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?loan-unsecuredcxp\.blogspot\.com -https?:\/\/([^\/]*\.)?loans-insurance\.net -https?:\/\/([^\/]*\.)?lodge\.webmelia\.com -https?:\/\/([^\/]*\.)?lodita-com-dya6s22zu\.blogspot\.com -https?:\/\/([^\/]*\.)?lodita-com-dz\.blogspot\.com -https?:\/\/([^\/]*\.)?loestrin\.1\.p2l\.info -https?:\/\/([^\/]*\.)?logast\.com -https?:\/\/([^\/]*\.)?logowap\.com -https?:\/\/([^\/]*\.)?lojlo\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lojunbas\.forumzen\.com -https?:\/\/([^\/]*\.)?lola-providence\.blogspot\.com -https?:\/\/([^\/]*\.)?lolabear1121\.blogspot\.com -https?:\/\/([^\/]*\.)?lolaparris\.freetzi\.com -https?:\/\/([^\/]*\.)?loliti-com-c5m8mt\.blogspot\.com -https?:\/\/([^\/]*\.)?lolovi\.naturalforum\.net -https?:\/\/([^\/]*\.)?lomsts\.com -https?:\/\/([^\/]*\.)?londra-ristorante\.freehostss\.info -https?:\/\/([^\/]*\.)?lonely-wolf-com-rjqlm1d6\.blogspot\.com -https?:\/\/([^\/]*\.)?long-porn-clip-info67s\.blogspot\.com -https?:\/\/([^\/]*\.)?long-porn-clip-infosm4\.blogspot\.com -https?:\/\/([^\/]*\.)?longestlist-com-b6\.blogspot\.com -https?:\/\/([^\/]*\.)?longestlist-com-b683g4ik\.blogspot\.com -https?:\/\/([^\/]*\.)?longestlist-hb\.blogspot\.com -https?:\/\/([^\/]*\.)?longestlist-hohen\.blogspot\.com -https?:\/\/([^\/]*\.)?longonline\.net -https?:\/\/([^\/]*\.)?longvideos-net-gq78qyba\.blogspot\.com -https?:\/\/([^\/]*\.)?longxiong\.ebloggy\.com -https?:\/\/([^\/]*\.)?lony\.info -https?:\/\/([^\/]*\.)?look-at-his-dick\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lookcity\.com -https?:\/\/([^\/]*\.)?lopata\.snusk\.nu -https?:\/\/([^\/]*\.)?lopressorhct\.sblog\.cz -https?:\/\/([^\/]*\.)?lorazepams\.ru\.tf -https?:\/\/([^\/]*\.)?lortab-911\.coz\.in -https?:\/\/([^\/]*\.)?lortab\.xwiki\.com -https?:\/\/([^\/]*\.)?losangelestickets\.org -https?:\/\/([^\/]*\.)?lotausch\.ifrance\.com -https?:\/\/([^\/]*\.)?loudmp3\.net -https?:\/\/([^\/]*\.)?louisianamortgage-x\.com -https?:\/\/([^\/]*\.)?lovefuckk-com-eg7gx\.blogspot\.com -https?:\/\/([^\/]*\.)?lovefuckk-com-et2x2g1sk\.blogspot\.com -https?:\/\/([^\/]*\.)?lovefuckk-com-setos\.blogspot\.com -https?:\/\/([^\/]*\.)?lovegirlsonline\.info -https?:\/\/([^\/]*\.)?lovejuliet3\.blogspot\.com -https?:\/\/([^\/]*\.)?lovetgp-com-d74h1ed3o\.blogspot\.com -https?:\/\/([^\/]*\.)?lowbudgetsuccess\.info -https?:\/\/([^\/]*\.)?lqsbjau\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lrff5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lriwaq-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?lrlep\.szm\.sk -https?:\/\/([^\/]*\.)?ltfl5\.szm\.sk -https?:\/\/([^\/]*\.)?ltntp\.szm\.sk -https?:\/\/([^\/]*\.)?lu-porn-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?lucking\.com\.cn -https?:\/\/([^\/]*\.)?lucqt\.szm\.sk -https?:\/\/([^\/]*\.)?luridess\.125mb\.com -https?:\/\/([^\/]*\.)?lusi-ada\.blogspot\.com -https?:\/\/([^\/]*\.)?lustjob\.info -https?:\/\/([^\/]*\.)?lustwork\.info -https?:\/\/([^\/]*\.)?lusvqm-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?lutaltli\.naturalforum\.net -https?:\/\/([^\/]*\.)?lutrilar\.naturalforum\.net -https?:\/\/([^\/]*\.)?lutzalvi\.naturalforum\.net -https?:\/\/([^\/]*\.)?lvanrts\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lvsi\.ebloggy\.com -https?:\/\/([^\/]*\.)?lwdf2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lwkmewp\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lycosss\.com -https?:\/\/([^\/]*\.)?lyganbaili\.com -https?:\/\/([^\/]*\.)?lyhbs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?lying-facial-expression\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?lyndawyllie\.com -https?:\/\/([^\/]*\.)?lzouv\.szm\.sk -https?:\/\/([^\/]*\.)?m-i-a-s-m-a\.blogspot\.com -https?:\/\/([^\/]*\.)?m-sr\.net -https?:\/\/([^\/]*\.)?m-teens-000\.blogspot\.com -https?:\/\/([^\/]*\.)?m\.domaindlx\.com -https?:\/\/([^\/]*\.)?m2mvc\.com -https?:\/\/([^\/]*\.)?machi-neko\.blogspot\.com -https?:\/\/([^\/]*\.)?mackenzie-kayne\.hostingtree\.org -https?:\/\/([^\/]*\.)?macromob\.com -https?:\/\/([^\/]*\.)?madesukadana\.com -https?:\/\/([^\/]*\.)?madthumbs-com-hcq1m1\.blogspot\.com -https?:\/\/([^\/]*\.)?mafy69\.blogspot\.com -https?:\/\/([^\/]*\.)?magical-casino\.com -https?:\/\/([^\/]*\.)?magneticwoman88\.blogspot\.com -https?:\/\/([^\/]*\.)?maidenpeace\.com -https?:\/\/([^\/]*\.)?main\.g2\.bx\.psu\.edu -https?:\/\/([^\/]*\.)?mainemortgage-x\.com -https?:\/\/([^\/]*\.)?maitybaba\.blogspot\.com -https?:\/\/([^\/]*\.)?makaky\.dtdns\.net -https?:\/\/([^\/]*\.)?makblxn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?make-my-dick-hard\.protime\.in\.ua -https?:\/\/([^\/]*\.)?makemoneyfast\.us -https?:\/\/([^\/]*\.)?makeup\.ifreehosts\.net -https?:\/\/([^\/]*\.)?male-hairy-leg\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?malinka\.b0b\.org -https?:\/\/([^\/]*\.)?mama-rachelbeth\.blogspot\.com -https?:\/\/([^\/]*\.)?mamaswarm\.sultryserver\.com -https?:\/\/([^\/]*\.)?man-caught-wearing-womens-lingerie\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?man-ring\.boom\.ru -https?:\/\/([^\/]*\.)?man-rings\.boom\.ru -https?:\/\/([^\/]*\.)?man-skin\.nightmail\.ru -https?:\/\/([^\/]*\.)?man-skin\.nm\.ru -https?:\/\/([^\/]*\.)?man-woman-fucking-video-clip\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?man_skin\.chat\.ru -https?:\/\/([^\/]*\.)?managementproperty\.us -https?:\/\/([^\/]*\.)?manka-kapak\.blogspot\.com -https?:\/\/([^\/]*\.)?manoke\.cn -https?:\/\/([^\/]*\.)?map4um\.com -https?:\/\/([^\/]*\.)?mapas6\.com -https?:\/\/([^\/]*\.)?maradona\.stabilt\.se -https?:\/\/([^\/]*\.)?marhula\.weedns\.com -https?:\/\/([^\/]*\.)?marinol\.xwiki\.com -https?:\/\/([^\/]*\.)?mario-lopez-gayfgg\.blogspot\.com -https?:\/\/([^\/]*\.)?marketing1degree\.chat\.ru -https?:\/\/([^\/]*\.)?marklar\.republika\.pl -https?:\/\/([^\/]*\.)?marti-adp\.iespana\.es -https?:\/\/([^\/]*\.)?marucollet\.jp -https?:\/\/([^\/]*\.)?maryannec\.com -https?:\/\/([^\/]*\.)?marylandmortgage-x\.com -https?:\/\/([^\/]*\.)?masfac\.com -https?:\/\/([^\/]*\.)?masiki\.110mb\.com -https?:\/\/([^\/]*\.)?masiti\.com -https?:\/\/([^\/]*\.)?massachusetts-hs\.newmail\.ru -https?:\/\/([^\/]*\.)?massachusettsmortgage-x\.com -https?:\/\/([^\/]*\.)?mast3t\.com -https?:\/\/([^\/]*\.)?master-z-great\.blogspot\.com -https?:\/\/([^\/]*\.)?master1degree\.chat\.ru -https?:\/\/([^\/]*\.)?master2005degree\.chat\.ru -https?:\/\/([^\/]*\.)?masterboat\.ru -https?:\/\/([^\/]*\.)?mastun\.com -https?:\/\/([^\/]*\.)?masturbating-shemale-video\.protime\.in\.ua -https?:\/\/([^\/]*\.)?masturbation-techniques1\.notlong\.com -https?:\/\/([^\/]*\.)?masvit\.com -https?:\/\/([^\/]*\.)?matching-mom-and-baby-outfit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?matrac\.loopback\.nu -https?:\/\/([^\/]*\.)?mattsvids-com-aqjt\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-bitches-com-ccvi3l\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-black-female\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?mature-blonde-fuck\.protime\.in\.ua -https?:\/\/([^\/]*\.)?mature-blonde-movie\.protime\.in\.ua -https?:\/\/([^\/]*\.)?mature-blonde-toying\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?mature-british-granny\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?mature-clip\.babubi\.net -https?:\/\/([^\/]*\.)?mature-for-you-com-mt66\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-gang-bang\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature-gay-black\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature-gay-man-gallery\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?mature-man-photo\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?mature-man-picture\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?mature-milf-milfmuffin-com\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature-nl-kss7\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-pantie-upskirt\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature-pic-post\.medved\.od\.ua -https?:\/\/([^\/]*\.)?mature-porn-clip-newsj8c\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-porn-clip-zone5s0\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-porn-movie-sihu\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-porn-video-ku\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-post-com-iecsmld78\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-redhead\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?mature-secret-com-r6t85u5\.blogspot\.com -https?:\/\/([^\/]*\.)?mature-sex-orgy\.medved\.od\.ua -https?:\/\/([^\/]*\.)?mature-sex-thumb\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature-throat-fuck\.medved\.od\.ua -https?:\/\/([^\/]*\.)?mature-wife-in-pantie-hose\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?mature-woman-vs-young\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?mature\.coz\.in -https?:\/\/([^\/]*\.)?matureandyoung-com-bgf1\.blogspot\.com -https?:\/\/([^\/]*\.)?maturedaily-net-oipq5\.blogspot\.com -https?:\/\/([^\/]*\.)?maturedaily-net-oywdf7pj0\.blogspot\.com -https?:\/\/([^\/]*\.)?maturehit-com-w8\.blogspot\.com -https?:\/\/([^\/]*\.)?maturehit-com-zifid\.blogspot\.com -https?:\/\/([^\/]*\.)?maximumsearch\.net -https?:\/\/([^\/]*\.)?maybachexelero\.org -https?:\/\/([^\/]*\.)?mayphyoe\.blogspot\.com -https?:\/\/([^\/]*\.)?maypopmusic\.cn -https?:\/\/([^\/]*\.)?mazda-6\.keckins\.be -https?:\/\/([^\/]*\.)?mazdamaindealer\.cn -https?:\/\/([^\/]*\.)?mazecreatorhosting\.net -https?:\/\/([^\/]*\.)?mba1degree\.chat\.ru -https?:\/\/([^\/]*\.)?mbiu1\.szm\.sk -https?:\/\/([^\/]*\.)?mbkxs\.szm\.sk -https?:\/\/([^\/]*\.)?mbsz0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mcfontai\.dl\.pl -https?:\/\/([^\/]*\.)?mciicvn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mckeithl\.ifrance\.com -https?:\/\/([^\/]*\.)?mcynwst\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mdfo2\.szm\.sk -https?:\/\/([^\/]*\.)?mdna8\.szm\.sk -https?:\/\/([^\/]*\.)?mdoq5\.szm\.sk -https?:\/\/([^\/]*\.)?meadelante\.blogspot\.com -https?:\/\/([^\/]*\.)?med-ph\.com -https?:\/\/([^\/]*\.)?medbig\.com -https?:\/\/([^\/]*\.)?medgarsting\.info -https?:\/\/([^\/]*\.)?medhls\.com -https?:\/\/([^\/]*\.)?medic\.kilu\.de -https?:\/\/([^\/]*\.)?medication-cheap\.com -https?:\/\/([^\/]*\.)?meds-today\.com -https?:\/\/([^\/]*\.)?megadyneinc\.com -https?:\/\/([^\/]*\.)?megan-qt-cjg\.blogspot\.com -https?:\/\/([^\/]*\.)?megaupkoad\.com -https?:\/\/([^\/]*\.)?meindies\.com -https?:\/\/([^\/]*\.)?melatrol\.podstavec\.yi\.org -https?:\/\/([^\/]*\.)?melissa-doll\.cornut\.ipupdater\.com -https?:\/\/([^\/]*\.)?melsner\.blogspot\.com -https?:\/\/([^\/]*\.)?mens\.1\.p2l\.info -https?:\/\/([^\/]*\.)?menshealth\.110mb\.com -https?:\/\/([^\/]*\.)?meoqwzr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?meridasexo\.com -https?:\/\/([^\/]*\.)?meridia\.1\.p2l\.info -https?:\/\/([^\/]*\.)?meridia\.edu\.tf -https?:\/\/([^\/]*\.)?meridia\.hav\.pl -https?:\/\/([^\/]*\.)?meridia\.skocz\.net -https?:\/\/([^\/]*\.)?meridiager\.queroumforum\.com -https?:\/\/([^\/]*\.)?meryland\.dtdns\.net -https?:\/\/([^\/]*\.)?mesothelioma-lawyer-help\.org -https?:\/\/([^\/]*\.)?meweb\.ecn\.purdue\.edu -https?:\/\/([^\/]*\.)?mewqsd\.org -https?:\/\/([^\/]*\.)?mgnzupi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mi-kkiechang\.ifrance\.com -https?:\/\/([^\/]*\.)?mia-movies-com-g2g1\.blogspot\.com -https?:\/\/([^\/]*\.)?mia-movies-e86q7ic4y7\.blogspot\.com -https?:\/\/([^\/]*\.)?miami-cose-fare\.hostzz\.info -https?:\/\/([^\/]*\.)?michelepug\.org -https?:\/\/([^\/]*\.)?michiganmortgage-x\.com -https?:\/\/([^\/]*\.)?midaslubbock\.com -https?:\/\/([^\/]*\.)?midnis\.com -https?:\/\/([^\/]*\.)?migree\.com -https?:\/\/([^\/]*\.)?mihaso\.com -https?:\/\/([^\/]*\.)?mikeinbrazil-com-k1s8higm1o\.blogspot\.com -https?:\/\/([^\/]*\.)?mikeinbrazil-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?mikesapartment-com-iwb02e1v\.blogspot\.com -https?:\/\/([^\/]*\.)?mikesapartment-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?mikewsd\.org -https?:\/\/([^\/]*\.)?miks1\.szm\.sk -https?:\/\/([^\/]*\.)?miku-thu-vilu\.110mb\.com -https?:\/\/([^\/]*\.)?mildew\.789mb\.com -https?:\/\/([^\/]*\.)?milf-blow-job-gallery\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?milf-busty-fucking\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?milf-hunter-kate\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?milf-mature-big-tit\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?milf-tgp-wife\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?milfhunter-com-h2a7q51\.blogspot\.com -https?:\/\/([^\/]*\.)?milflessons-com-bh6\.blogspot\.com -https?:\/\/([^\/]*\.)?milfnextdoor-bk23v2p4\.blogspot\.com -https?:\/\/([^\/]*\.)?milfnextdoor-w3ii\.blogspot\.com -https?:\/\/([^\/]*\.)?milkmanbook-com-o7\.blogspot\.com -https?:\/\/([^\/]*\.)?milkmanbook-com-rrup5f\.blogspot\.com -https?:\/\/([^\/]*\.)?milkmanbook-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?milkmanbook-ods016\.blogspot\.com -https?:\/\/([^\/]*\.)?milton-twins-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?mimija\.com -https?:\/\/([^\/]*\.)?miniurl\.pl -https?:\/\/([^\/]*\.)?minnesotamortgage-x\.com -https?:\/\/([^\/]*\.)?minzec\.dynamicbb\.com -https?:\/\/([^\/]*\.)?missensign\.blogspot\.com -https?:\/\/([^\/]*\.)?mississippimortgage-x\.com -https?:\/\/([^\/]*\.)?missourimortgage-x\.com -https?:\/\/([^\/]*\.)?mitsubishicarhire\.cn -https?:\/\/([^\/]*\.)?mj-net\.jp -https?:\/\/([^\/]*\.)?mj\.left-page\.com -https?:\/\/([^\/]*\.)?mjlvan4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mjqnxn1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mjspb\.szm\.sk -https?:\/\/([^\/]*\.)?mkia3\.szm\.sk -https?:\/\/([^\/]*\.)?mkiss47346\.blogspot\.com -https?:\/\/([^\/]*\.)?mksahf-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?mkzvni8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mlgta\.szm\.sk -https?:\/\/([^\/]*\.)?mlm-business-leader\.com -https?:\/\/([^\/]*\.)?mlvej\.szm\.sk -https?:\/\/([^\/]*\.)?mmm100-com-aj\.blogspot\.com -https?:\/\/([^\/]*\.)?mmm100-com-cisec\.blogspot\.com -https?:\/\/([^\/]*\.)?mmm100-com-tql1xojt\.blogspot\.com -https?:\/\/([^\/]*\.)?mnsp\.cn -https?:\/\/([^\/]*\.)?mobfiller\.com -https?:\/\/([^\/]*\.)?mobic\.sytes\.net -https?:\/\/([^\/]*\.)?mobile-phone-dealoft\.blogspot\.com -https?:\/\/([^\/]*\.)?mobile-phone-shopmgl\.blogspot\.com -https?:\/\/([^\/]*\.)?mobile-phonegsn\.blogspot\.com -https?:\/\/([^\/]*\.)?mobilefamilydental\.com -https?:\/\/([^\/]*\.)?mobilewallpaperkre\.blogspot\.com -https?:\/\/([^\/]*\.)?mobility-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?mobility2scooter\.chat\.ru -https?:\/\/([^\/]*\.)?mobprofile\.com -https?:\/\/([^\/]*\.)?modelsgroup-com-wrx\.blogspot\.com -https?:\/\/([^\/]*\.)?modelsgroup-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?modlang\.boisestate\.edu -https?:\/\/([^\/]*\.)?moju\.net\.cn -https?:\/\/([^\/]*\.)?mol-ch\.com -https?:\/\/([^\/]*\.)?mom-and-son-song\.protime\.in\.ua -https?:\/\/([^\/]*\.)?mom-music-video\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?mom-n-son\.medved\.od\.ua -https?:\/\/([^\/]*\.)?mom-vs-young\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?mommia-com-h32\.blogspot\.com -https?:\/\/([^\/]*\.)?mommia-com-hvr6wy\.blogspot\.com -https?:\/\/([^\/]*\.)?mommia-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?moms-teaching-teens-ceb\.blogspot\.com -https?:\/\/([^\/]*\.)?monbocchi\.zikforum\.com -https?:\/\/([^\/]*\.)?moncnamon\.ephpbb\.com -https?:\/\/([^\/]*\.)?moncnamon\.forumculture\.net -https?:\/\/([^\/]*\.)?monctr\.cultureforum\.net -https?:\/\/([^\/]*\.)?mondelacel\.dl\.pl -https?:\/\/([^\/]*\.)?monelal\.discutfree\.com -https?:\/\/([^\/]*\.)?moneta-algeria\.hostzz\.info -https?:\/\/([^\/]*\.)?monjco\.blogcu\.com -https?:\/\/([^\/]*\.)?monletochi\.bbgraf\.com -https?:\/\/([^\/]*\.)?monokal\.dynamicforum\.net -https?:\/\/([^\/]*\.)?monorget\.lolbb\.com -https?:\/\/([^\/]*\.)?monpasrel\.dl\.pl -https?:\/\/([^\/]*\.)?monster-cock-movie-big\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?monstersofcock-com-rvdurm2\.blogspot\.com -https?:\/\/([^\/]*\.)?montana-flugsport\.com -https?:\/\/([^\/]*\.)?montanamortgage-x\.com -https?:\/\/([^\/]*\.)?montessori-spielzeug\.com -https?:\/\/([^\/]*\.)?moody-immortal2\.blogspot\.com -https?:\/\/([^\/]*\.)?morekes\.com -https?:\/\/([^\/]*\.)?moremoms-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?moremoms-rj8f2r\.blogspot\.com -https?:\/\/([^\/]*\.)?mortgage-911\.net -https?:\/\/([^\/]*\.)?mortgagebrokers-x\.com -https?:\/\/([^\/]*\.)?mortgagecompanies-x\.com -https?:\/\/([^\/]*\.)?mortgagelenders-x\.com -https?:\/\/([^\/]*\.)?mortgageloan-x\.com -https?:\/\/([^\/]*\.)?mortgageloans-x\.com -https?:\/\/([^\/]*\.)?mortgagerates-x\.com -https?:\/\/([^\/]*\.)?mortgagerefinance-x\.com -https?:\/\/([^\/]*\.)?mortgagerefinancing-x\.com -https?:\/\/([^\/]*\.)?mortgages-411\.com -https?:\/\/([^\/]*\.)?mortgagesnrefinance\.com -https?:\/\/([^\/]*\.)?mosquito-ringtoneaee\.blogspot\.com -https?:\/\/([^\/]*\.)?mosquitoringtonewmf\.blogspot\.com -https?:\/\/([^\/]*\.)?mothershope\.com -https?:\/\/([^\/]*\.)?mothrinventor\.blogspot\.com -https?:\/\/([^\/]*\.)?motnolado\.org -https?:\/\/([^\/]*\.)?motor-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?motorized-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?motorizedscooter\.chat\.ru -https?:\/\/([^\/]*\.)?motorolaringtonesfreeucq\.blogspot\.com -https?:\/\/([^\/]*\.)?motorolaringtoneskvp\.blogspot\.com -https?:\/\/([^\/]*\.)?motorolaringtonesym\.blogspot\.com -https?:\/\/([^\/]*\.)?moviegalleries-com-gl8\.blogspot\.com -https?:\/\/([^\/]*\.)?moviepost-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?moviepost-h4s2iin\.blogspot\.com -https?:\/\/([^\/]*\.)?moviesarena-com-r42rng0\.blogspot\.com -https?:\/\/([^\/]*\.)?moviesarena-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?moviesgold-com-ig86ukjw\.blogspot\.com -https?:\/\/([^\/]*\.)?moviesgold-com-k0\.blogspot\.com -https?:\/\/([^\/]*\.)?movieshark-d0vdon27\.blogspot\.com -https?:\/\/([^\/]*\.)?moviesparade-com-a3hxnn6\.blogspot\.com -https?:\/\/([^\/]*\.)?movietitan-com-i6shde\.blogspot\.com -https?:\/\/([^\/]*\.)?movietitan-o6i14o0\.blogspot\.com -https?:\/\/([^\/]*\.)?mozzarell\.republika\.pl -https?:\/\/([^\/]*\.)?mp3ringtonerxw\.blogspot\.com -https?:\/\/([^\/]*\.)?mp3sunrise\.com -https?:\/\/([^\/]*\.)?mpdtbq8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mpeghunter-com-cyc0bec7k\.blogspot\.com -https?:\/\/([^\/]*\.)?mqirai4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mrako4\.com -https?:\/\/([^\/]*\.)?mrchewsasianbeaver-bwhmc0sk\.blogspot\.com -https?:\/\/([^\/]*\.)?mrchewsasianbeaver-com-omazvpr\.blogspot\.com -https?:\/\/([^\/]*\.)?mrntf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mrs-vette-hot-mom\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?mrwolfy49\.blogspot\.com -https?:\/\/([^\/]*\.)?ms-dos-boot-disk\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?mster6\.com -https?:\/\/([^\/]*\.)?mtaa5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mthelen\.250free\.com -https?:\/\/([^\/]*\.)?muecst9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mughalbank\.com -https?:\/\/([^\/]*\.)?mumms\.info -https?:\/\/([^\/]*\.)?murdersoul\.blogspot\.com -https?:\/\/([^\/]*\.)?murku-gunush\.110mb\.com -https?:\/\/([^\/]*\.)?mus1ca\.info -https?:\/\/([^\/]*\.)?muscle-pain-leg-cause\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?muscle-relaxers\.1\.p2l\.info -https?:\/\/([^\/]*\.)?music\.spacepur\.de -https?:\/\/([^\/]*\.)?musicguild\.bc\.edu -https?:\/\/([^\/]*\.)?mutantalias\.blogspot\.com -https?:\/\/([^\/]*\.)?muwn9\.szm\.sk -https?:\/\/([^\/]*\.)?muzyr\.szm\.sk -https?:\/\/([^\/]*\.)?mvoht\.szm\.sk -https?:\/\/([^\/]*\.)?mvsyonh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mwqbg\.fr33webhost\.com -https?:\/\/([^\/]*\.)?mwwkps6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mxmva\.szm\.sk -https?:\/\/([^\/]*\.)?mxqwnn2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?my-cashadvance\.com -https?:\/\/([^\/]*\.)?my-first-sex-teacherlbp\.blogspot\.com -https?:\/\/([^\/]*\.)?my-friends-hot-mom-free-pic\.medved\.od\.ua -https?:\/\/([^\/]*\.)?my-friends-hot-mom-lesbian\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?my-friends-hot-mom-mrs-lee\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?my-host-space\.com -https?:\/\/([^\/]*\.)?my-land\.bravehost\.com -https?:\/\/([^\/]*\.)?my-mortgagerates\.com -https?:\/\/([^\/]*\.)?my-summit\.com -https?:\/\/([^\/]*\.)?my-teensex-wikes\.blogspot\.com -https?:\/\/([^\/]*\.)?myfgj\.info -https?:\/\/([^\/]*\.)?myhost\.gb\.com -https?:\/\/([^\/]*\.)?mymitsubishiparts\.cn -https?:\/\/([^\/]*\.)?mymr\.net -https?:\/\/([^\/]*\.)?mynet-poker\.com -https?:\/\/([^\/]*\.)?myprintworks\.com -https?:\/\/([^\/]*\.)?myrotunda\.com -https?:\/\/([^\/]*\.)?mysecretmovies-com-tul73\.blogspot\.com -https?:\/\/([^\/]*\.)?myseo\.com\.cn -https?:\/\/([^\/]*\.)?myshcompany\.com -https?:\/\/([^\/]*\.)?mysmetrix\.asp2\.cz -https?:\/\/([^\/]*\.)?myspace-myspace-my\.blogspot\.com -https?:\/\/([^\/]*\.)?myteepo-3\.blogspot\.com -https?:\/\/([^\/]*\.)?myts\.vip\.sina\.com -https?:\/\/([^\/]*\.)?mywaybackwhen\.blogspot\.com -https?:\/\/([^\/]*\.)?mzaxl\.szm\.sk -https?:\/\/([^\/]*\.)?mzayxt2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mzlurz8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?mzwbifn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?n-free-porn-video-sample\.blogspot\.com -https?:\/\/([^\/]*\.)?n-free-video-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?na-hummer\.jot\.com -https?:\/\/([^\/]*\.)?naacpncnetwork\.org -https?:\/\/([^\/]*\.)?naarttrl\.forumzen\.com -https?:\/\/([^\/]*\.)?naffpqh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?naomiserge\.info -https?:\/\/([^\/]*\.)?napalerd\.forumzen\.com -https?:\/\/([^\/]*\.)?napas5\.com -https?:\/\/([^\/]*\.)?naprosyn500mg\.sblog\.cz -https?:\/\/([^\/]*\.)?naproxen\.zapto\.org -https?:\/\/([^\/]*\.)?naqowp1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nariclet\.forumzen\.com -https?:\/\/([^\/]*\.)?nas7fk\.com -https?:\/\/([^\/]*\.)?nasacort\.1\.p2l\.info -https?:\/\/([^\/]*\.)?nasonex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?nastyalien-com-dk0wnd58i\.blogspot\.com -https?:\/\/([^\/]*\.)?nastyalien-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?nastyrat-b7\.blogspot\.com -https?:\/\/([^\/]*\.)?nastyrat-com-b8mu31h87m\.blogspot\.com -https?:\/\/([^\/]*\.)?nastyrat-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?natskam\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?natural-skin\.nm\.ru -https?:\/\/([^\/]*\.)?natural-tit-cum\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?natural_skin\.chat\.ru -https?:\/\/([^\/]*\.)?naughty-com-wdk\.blogspot\.com -https?:\/\/([^\/]*\.)?naughty-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?navse\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nbay2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nbikkpb\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nbmhvbv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nbxc3\.szm\.sk -https?:\/\/([^\/]*\.)?nchqqi4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ncpx5\.szm\.sk -https?:\/\/([^\/]*\.)?ncwash\.com -https?:\/\/([^\/]*\.)?nd-tli\.com -https?:\/\/([^\/]*\.)?ndarj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ndnwrby\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nebraskamortgage-x\.com -https?:\/\/([^\/]*\.)?nedneutr\.goodbb\.net -https?:\/\/([^\/]*\.)?nedpbi3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?need-site\.com -https?:\/\/([^\/]*\.)?nefariouswraith\.blogspot\.com -https?:\/\/([^\/]*\.)?negozio-strumento-musicale\.19mb\.info -https?:\/\/([^\/]*\.)?nejqssk\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?neko-adg\.blogspot\.com -https?:\/\/([^\/]*\.)?nekoo\.cn -https?:\/\/([^\/]*\.)?nekostar3\.blogspot\.com -https?:\/\/([^\/]*\.)?nelaidla\.ifrance\.com -https?:\/\/([^\/]*\.)?nelcala\.fr-bb\.com -https?:\/\/([^\/]*\.)?nelior\.goodbb\.net -https?:\/\/([^\/]*\.)?neri-albany\.blogspot\.com -https?:\/\/([^\/]*\.)?neroj\.szm\.sk -https?:\/\/([^\/]*\.)?nerve\.zyns\.com -https?:\/\/([^\/]*\.)?net0551\.com -https?:\/\/([^\/]*\.)?netbank\.cn -https?:\/\/([^\/]*\.)?nethams\.pp\.ru -https?:\/\/([^\/]*\.)?netinternetbanking\.info -https?:\/\/([^\/]*\.)?netteak\.pp\.ru -https?:\/\/([^\/]*\.)?nettyre\.pp\.ru -https?:\/\/([^\/]*\.)?neux9\.szm\.sk -https?:\/\/([^\/]*\.)?nevadamortgage-x\.com -https?:\/\/([^\/]*\.)?nevados-hiking-boot\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?nevulo-teen-sex-video\.blogspot\.com -https?:\/\/([^\/]*\.)?new-ringtonesou\.blogspot\.com -https?:\/\/([^\/]*\.)?new-watches\.fasthost\.tv -https?:\/\/([^\/]*\.)?newae\.info -https?:\/\/([^\/]*\.)?newaf\.info -https?:\/\/([^\/]*\.)?newah\.info -https?:\/\/([^\/]*\.)?newai\.info -https?:\/\/([^\/]*\.)?newaq\.info -https?:\/\/([^\/]*\.)?newar\.info -https?:\/\/([^\/]*\.)?newau\.info -https?:\/\/([^\/]*\.)?newbabyface\.net -https?:\/\/([^\/]*\.)?newboyu\.com -https?:\/\/([^\/]*\.)?newdietpills\.bravehost\.com -https?:\/\/([^\/]*\.)?newgals-com-ean\.blogspot\.com -https?:\/\/([^\/]*\.)?newhampshiremortgage-x\.com -https?:\/\/([^\/]*\.)?newjerseymortgage-x\.com -https?:\/\/([^\/]*\.)?newmexicomortgage-x\.com -https?:\/\/([^\/]*\.)?newnewsonline\.info -https?:\/\/([^\/]*\.)?newob\.info -https?:\/\/([^\/]*\.)?newoc\.info -https?:\/\/([^\/]*\.)?newom\.info -https?:\/\/([^\/]*\.)?newov\.info -https?:\/\/([^\/]*\.)?newox\.info -https?:\/\/([^\/]*\.)?newoz\.info -https?:\/\/([^\/]*\.)?news\.101freehost\.com -https?:\/\/([^\/]*\.)?news\.engin\.brown\.edu -https?:\/\/([^\/]*\.)?newwesthonda\.info -https?:\/\/([^\/]*\.)?newworldmen\.com -https?:\/\/([^\/]*\.)?newyorkmortgage-x\.com -https?:\/\/([^\/]*\.)?nexium\.1\.p2l\.info -https?:\/\/([^\/]*\.)?nexiumbuy\.on\.to -https?:\/\/([^\/]*\.)?nexiumbuygeneric\.snap\.to -https?:\/\/([^\/]*\.)?nexiumcheap\.notrix\.ch -https?:\/\/([^\/]*\.)?nexiumcheapbuy\.notrix\.de -https?:\/\/([^\/]*\.)?nexiumgeneric\.dive\.to -https?:\/\/([^\/]*\.)?nexxx-com-r138wgeob5\.blogspot\.com -https?:\/\/([^\/]*\.)?nexxx-kc113s775\.blogspot\.com -https?:\/\/([^\/]*\.)?nfbwx\.szm\.sk -https?:\/\/([^\/]*\.)?nffnj\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nfl-cheerleader-outfit\.protime\.in\.ua -https?:\/\/([^\/]*\.)?nfme8\.szm\.sk -https?:\/\/([^\/]*\.)?nfpg4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nfyxtime\.com -https?:\/\/([^\/]*\.)?nggleb0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nginju3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nhqkyun\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nibko\.info -https?:\/\/([^\/]*\.)?nice-asian-ass-and-sex\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?nice-boob-picture\.protime\.in\.ua -https?:\/\/([^\/]*\.)?niche-porn-sites\.org -https?:\/\/([^\/]*\.)?nickdarula\.com -https?:\/\/([^\/]*\.)?nicwan\.com -https?:\/\/([^\/]*\.)?nidarim\.com -https?:\/\/([^\/]*\.)?niebn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nifedipine-solubility\.tlg\.pl -https?:\/\/([^\/]*\.)?nifjv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?niharpe\.dl\.pl -https?:\/\/([^\/]*\.)?nihosi\.com -https?:\/\/([^\/]*\.)?nika-ru\.blogspot\.com -https?:\/\/([^\/]*\.)?nikkie-cole\.blogspot\.com -https?:\/\/([^\/]*\.)?nimast\.com -https?:\/\/([^\/]*\.)?nimit-zood\.ibelgique\.com -https?:\/\/([^\/]*\.)?ninenailteen\.blogspot\.com -https?:\/\/([^\/]*\.)?ninjasidestep\.com -https?:\/\/([^\/]*\.)?ninostarto\.blogspot\.com -https?:\/\/([^\/]*\.)?ninuni\.com -https?:\/\/([^\/]*\.)?nipples-puffy-teenage\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?nipverify\.icspace\.net -https?:\/\/([^\/]*\.)?nissan-240sx\.newmail\.ru -https?:\/\/([^\/]*\.)?nissan-dealer\.newmail\.ru -https?:\/\/([^\/]*\.)?nissan-frontier\.nm\.ru -https?:\/\/([^\/]*\.)?nissan-motor\.nm\.ru -https?:\/\/([^\/]*\.)?nissan-murano\.newmail\.ru -https?:\/\/([^\/]*\.)?nissan-part\.nightmail\.ru -https?:\/\/([^\/]*\.)?nissan-pathfinder\.hotmail\.ru -https?:\/\/([^\/]*\.)?nissan-sentra\.hotmail\.ru -https?:\/\/([^\/]*\.)?nissan-titan\.hotmail\.ru -https?:\/\/([^\/]*\.)?nissan-truck\.hotmail\.ru -https?:\/\/([^\/]*\.)?nissan-xterra\.hotmail\.ru -https?:\/\/([^\/]*\.)?nissan_240sx\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_dealer\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_frontier\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_motor\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_murano1\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_part\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_pathfind\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_sentra\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_titan\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_truck\.chat\.ru -https?:\/\/([^\/]*\.)?nissan_xterra\.chat\.ru -https?:\/\/([^\/]*\.)?nixve\.blogspot\.com -https?:\/\/([^\/]*\.)?njfc\.nease\.net -https?:\/\/([^\/]*\.)?njhk\.jiuwu\.com -https?:\/\/([^\/]*\.)?njhk\.yushantang\.com -https?:\/\/([^\/]*\.)?njuta78\.125mb\.com -https?:\/\/([^\/]*\.)?njzthvq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nkkqq\.szm\.sk -https?:\/\/([^\/]*\.)?nkxow\.szm\.sk -https?:\/\/([^\/]*\.)?nkzzm\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nlexc\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nmagiietending\.blogspot\.com -https?:\/\/([^\/]*\.)?nmwj5\.szm\.sk -https?:\/\/([^\/]*\.)?nnline\.info -https?:\/\/([^\/]*\.)?no-deposit-casino-bonus\.any\.pl -https?:\/\/([^\/]*\.)?no-faxing-payday--loan\.blogspot\.com -https?:\/\/([^\/]*\.)?no-free-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?no1babes-com-juquj\.blogspot\.com -https?:\/\/([^\/]*\.)?noalzel\.blogcu\.com -https?:\/\/([^\/]*\.)?nobocli\.bbfr\.net -https?:\/\/([^\/]*\.)?nobullhardcore-com-i7mpf5i83t\.blogspot\.com -https?:\/\/([^\/]*\.)?nodb0\.szm\.sk -https?:\/\/([^\/]*\.)?noelchi\.td\.pl -https?:\/\/([^\/]*\.)?noeldar\.td\.pl -https?:\/\/([^\/]*\.)?nofatonline\.com -https?:\/\/([^\/]*\.)?nolamon\.naturalforum\.net -https?:\/\/([^\/]*\.)?noletoolo\.dl\.pl -https?:\/\/([^\/]*\.)?nomote4\.blogspot\.com -https?:\/\/([^\/]*\.)?nopasrol\.myrealboard\.com -https?:\/\/([^\/]*\.)?nord9maedchen73\.blogspot\.com -https?:\/\/([^\/]*\.)?nordette\.1\.p2l\.info -https?:\/\/([^\/]*\.)?norflex100mg\.sblog\.cz -https?:\/\/([^\/]*\.)?normanburke\.blogspot\.com -https?:\/\/([^\/]*\.)?noro-alanis\.blogspot\.com -https?:\/\/([^\/]*\.)?northcarolinamortgage-x\.com -https?:\/\/([^\/]*\.)?northdakotamortgage-x\.com -https?:\/\/([^\/]*\.)?norvasc\.coz\.in -https?:\/\/([^\/]*\.)?norwichwriters\.org -https?:\/\/([^\/]*\.)?noscudom\.forumzen\.com -https?:\/\/([^\/]*\.)?noseypets\.com -https?:\/\/([^\/]*\.)?nostawnevets53\.blogspot\.com -https?:\/\/([^\/]*\.)?not-another-teen-movie-ddw5x\.blogspot\.com -https?:\/\/([^\/]*\.)?notelymphatic\.org -https?:\/\/([^\/]*\.)?notereport\.info -https?:\/\/([^\/]*\.)?notrocli\.zj\.pl -https?:\/\/([^\/]*\.)?novanasa\.php5\.cz -https?:\/\/([^\/]*\.)?novar\.darkbb\.com -https?:\/\/([^\/]*\.)?noviac\.jc\.pl -https?:\/\/([^\/]*\.)?nox-teeniefiles-com\.blogspot\.com -https?:\/\/([^\/]*\.)?npchwp9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nqfahsc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nqkt4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nqllo\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nqlp7\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nqod6\.szm\.sk -https?:\/\/([^\/]*\.)?nqquc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nqyz6\.fr33webhost\.com -https?:\/\/([^\/]*\.)?nsstc\.uah\.edu -https?:\/\/([^\/]*\.)?nsxslk5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nthfind\.com -https?:\/\/([^\/]*\.)?nu-alicia\.blogspot\.com -https?:\/\/([^\/]*\.)?nucs2\.szm\.sk -https?:\/\/([^\/]*\.)?nuddxy-free-video\.blogspot\.com -https?:\/\/([^\/]*\.)?nude-ass-video\.protime\.in\.ua -https?:\/\/([^\/]*\.)?nude-lingerie-model-photo\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?nude-little-ass\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?nude-teacher\.com -https?:\/\/([^\/]*\.)?nudecelebritypictures-c6ob080\.blogspot\.com -https?:\/\/([^\/]*\.)?nudecelebritypictures-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?nudecelebritypictures-nu-hqb65kdn\.blogspot\.com -https?:\/\/([^\/]*\.)?nudestarz-com-xurig\.blogspot\.com -https?:\/\/([^\/]*\.)?nudistlog-com-oygsrji75\.blogspot\.com -https?:\/\/([^\/]*\.)?nugo-aerobics\.blogspot\.com -https?:\/\/([^\/]*\.)?nuje9\.szm\.sk -https?:\/\/([^\/]*\.)?numbness-in-right-leg\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?numimb\.com -https?:\/\/([^\/]*\.)?numr2\.szm\.sk -https?:\/\/([^\/]*\.)?nunikal\.stabilt\.se -https?:\/\/([^\/]*\.)?nuqfz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nurglesnymphs-com-nuxow\.blogspot\.com -https?:\/\/([^\/]*\.)?nurs-employment\.boom\.ru -https?:\/\/([^\/]*\.)?nurs2employment\.chat\.ru -https?:\/\/([^\/]*\.)?nurse-fucking-video\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?nursi2-education\.boom\.ru -https?:\/\/([^\/]*\.)?nursin-education\.boom\.ru -https?:\/\/([^\/]*\.)?nursin2education\.chat\.ru -https?:\/\/([^\/]*\.)?nursing-career\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-college\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-degree\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-degree\.fromru\.com -https?:\/\/([^\/]*\.)?nursing-degree\.pochta\.ru -https?:\/\/([^\/]*\.)?nursing-home\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-home\.land\.ru -https?:\/\/([^\/]*\.)?nursing-home\.pochta\.ru -https?:\/\/([^\/]*\.)?nursing-job\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-job\.land\.ru -https?:\/\/([^\/]*\.)?nursing-job\.pochta\.ru -https?:\/\/([^\/]*\.)?nursing-school\.fromru\.com -https?:\/\/([^\/]*\.)?nursing-school\.pochta\.ru -https?:\/\/([^\/]*\.)?nursing-scrubs\.boom\.ru -https?:\/\/([^\/]*\.)?nursing-uniform\.boom\.ru -https?:\/\/([^\/]*\.)?nursing1degree\.chat\.ru -https?:\/\/([^\/]*\.)?nursing2-school\.boom\.ru -https?:\/\/([^\/]*\.)?nursing2college\.chat\.ru -https?:\/\/([^\/]*\.)?nursing2school\.chat\.ru -https?:\/\/([^\/]*\.)?nursing2scrubs\.chat\.ru -https?:\/\/([^\/]*\.)?nursing4career\.chat\.ru -https?:\/\/([^\/]*\.)?nursing4degree\.chat\.ru -https?:\/\/([^\/]*\.)?nursing4job\.chat\.ru -https?:\/\/([^\/]*\.)?nursingeducation\.chat\.ru -https?:\/\/([^\/]*\.)?nutramigen-lipil\.leg4is\.be -https?:\/\/([^\/]*\.)?nvdwc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nwxnv\.szm\.sk -https?:\/\/([^\/]*\.)?nxbbyhc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nxnmwlh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?nxsq0\.szm\.sk -https?:\/\/([^\/]*\.)?o-medic\.tripod\.com -https?:\/\/([^\/]*\.)?o8\.aus\.cc -https?:\/\/([^\/]*\.)?oa18\.cc -https?:\/\/([^\/]*\.)?oa2010\.com -https?:\/\/([^\/]*\.)?oalink\.cn -https?:\/\/([^\/]*\.)?obesity-check\.com -https?:\/\/([^\/]*\.)?obosra\.com -https?:\/\/([^\/]*\.)?obrazok\.dtdns\.net -https?:\/\/([^\/]*\.)?obsque\.cn -https?:\/\/([^\/]*\.)?ocapk\.szm\.sk -https?:\/\/([^\/]*\.)?oceshdes\.forumzen\.com -https?:\/\/([^\/]*\.)?ockulpas\.forumzen\.com -https?:\/\/([^\/]*\.)?ocleelia\.forumzen\.com -https?:\/\/([^\/]*\.)?ocscrtro\.forumzen\.com -https?:\/\/([^\/]*\.)?oczt4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?odfxci8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?odmi1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?odqw4\.szm\.sk -https?:\/\/([^\/]*\.)?oechnxln\.tripod\.com -https?:\/\/([^\/]*\.)?oecx6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?oeqls\.szm\.sk -https?:\/\/([^\/]*\.)?offerta-volo-madrid\.19mb\.info -https?:\/\/([^\/]*\.)?officialkes\.com -https?:\/\/([^\/]*\.)?ogooch\.ifrance\.com -https?:\/\/([^\/]*\.)?ogzx4\.szm\.sk -https?:\/\/([^\/]*\.)?ohgood-com-dv8l\.blogspot\.com -https?:\/\/([^\/]*\.)?ohgood-com-isxvi72\.blogspot\.com -https?:\/\/([^\/]*\.)?ohgood-com-rv0\.blogspot\.com -https?:\/\/([^\/]*\.)?ohiomortgage-x\.com -https?:\/\/([^\/]*\.)?ohmybaby\.net -https?:\/\/([^\/]*\.)?oilpaintingkingdom\.com -https?:\/\/([^\/]*\.)?oily-skin\.newmail\.ru -https?:\/\/([^\/]*\.)?oily_skin\.chat\.ru -https?:\/\/([^\/]*\.)?oip\.org\.ua -https?:\/\/([^\/]*\.)?oirwt\.szm\.sk -https?:\/\/([^\/]*\.)?ojdo0\.szm\.sk -https?:\/\/([^\/]*\.)?ojdx7\.fr33webhost\.com -https?:\/\/([^\/]*\.)?okayhotels\.com -https?:\/\/([^\/]*\.)?okcompany\.org -https?:\/\/([^\/]*\.)?oklahomamortgage-x\.com -https?:\/\/([^\/]*\.)?okrentcar\.org -https?:\/\/([^\/]*\.)?old-lady-fuck\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?old-lady-suck-dick\.medved\.od\.ua -https?:\/\/([^\/]*\.)?old69-com-mdt71k\.blogspot\.com -https?:\/\/([^\/]*\.)?old69-k40bqc\.blogspot\.com -https?:\/\/([^\/]*\.)?older-mature-tgp\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?oldon\.info -https?:\/\/([^\/]*\.)?oldp9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?oldreboc\.forumzen\.com -https?:\/\/([^\/]*\.)?olijanko\.republika\.pl -https?:\/\/([^\/]*\.)?olml2\.szm\.sk -https?:\/\/([^\/]*\.)?olnnt\.szm\.sk -https?:\/\/([^\/]*\.)?olocnamon\.cultureforum\.net -https?:\/\/([^\/]*\.)?olocobo\.goodforum\.net -https?:\/\/([^\/]*\.)?olocobo\.grafbb\.com -https?:\/\/([^\/]*\.)?olodarelt\.heavenforum\.com -https?:\/\/([^\/]*\.)?olodarelt\.highforum\.net -https?:\/\/([^\/]*\.)?olodronric\.su\.pl -https?:\/\/([^\/]*\.)?olodronro\.blogcu\.com -https?:\/\/([^\/]*\.)?oloolovi\.ephpbb\.com -https?:\/\/([^\/]*\.)?oloorrac\.blogcu\.com -https?:\/\/([^\/]*\.)?olorelrel\.blogcu\.com -https?:\/\/([^\/]*\.)?olorodom\.blogcu\.com -https?:\/\/([^\/]*\.)?oltcha\.blogspot\.com -https?:\/\/([^\/]*\.)?olyelzet\.forumzen\.com -https?:\/\/([^\/]*\.)?omchades\.forumzen\.com -https?:\/\/([^\/]*\.)?omega\.spb\.ru -https?:\/\/([^\/]*\.)?omxmlvf\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?on-poteen-1-2\.blogspot\.com -https?:\/\/([^\/]*\.)?onac2\.szm\.sk -https?:\/\/([^\/]*\.)?one2you\.biz -https?:\/\/([^\/]*\.)?one2you\.info -https?:\/\/([^\/]*\.)?onfew\.szm\.sk -https?:\/\/([^\/]*\.)?onlin-nurs-degre\.boom\.ru -https?:\/\/([^\/]*\.)?online-blackjack-site\.com -https?:\/\/([^\/]*\.)?online-casino-l\.blogspot\.com -https?:\/\/([^\/]*\.)?online-casino-wiki\.com -https?:\/\/([^\/]*\.)?online-casinos-city\.com -https?:\/\/([^\/]*\.)?online-casinos-discovered\.com -https?:\/\/([^\/]*\.)?online-degree-4you\.com -https?:\/\/([^\/]*\.)?online-gambling-b\.blogspot\.com -https?:\/\/([^\/]*\.)?online-games24x7\.com -https?:\/\/([^\/]*\.)?online-medications24x7\.com -https?:\/\/([^\/]*\.)?online-pharm\.zmail\.ru -https?:\/\/([^\/]*\.)?online-pharmacy-24x7\.net -https?:\/\/([^\/]*\.)?online-pharmacy-4u\.net -https?:\/\/([^\/]*\.)?online-poker-game\.blogspot\.com -https?:\/\/([^\/]*\.)?online-poker-online-poker\.net -https?:\/\/([^\/]*\.)?online-poker\.black-poker\.com -https?:\/\/([^\/]*\.)?online-poker\.dd\.vg -https?:\/\/([^\/]*\.)?online-prozac\.boom\.ru -https?:\/\/([^\/]*\.)?online-shop-24x7\.com -https?:\/\/([^\/]*\.)?online-tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?online1-degree\.boom\.ru -https?:\/\/([^\/]*\.)?online1course\.chat\.ru -https?:\/\/([^\/]*\.)?online1degree\.chat\.ru -https?:\/\/([^\/]*\.)?online3course\.chat\.ru -https?:\/\/([^\/]*\.)?online4nursing\.chat\.ru -https?:\/\/([^\/]*\.)?onlineglass\.siteburg\.com -https?:\/\/([^\/]*\.)?onlinepharmacy-4u\.net -https?:\/\/([^\/]*\.)?onlinepharmacy2004\.net -https?:\/\/([^\/]*\.)?onlinesexcity\.info -https?:\/\/([^\/]*\.)?only-ringtone\.com -https?:\/\/([^\/]*\.)?only4game\.com -https?:\/\/([^\/]*\.)?onlycuties-com\.jalovica\.dtdns\.net -https?:\/\/([^\/]*\.)?onlymovies-com-e1tez\.blogspot\.com -https?:\/\/([^\/]*\.)?onlymovies-com-eczm1w\.blogspot\.com -https?:\/\/([^\/]*\.)?onlyteenstgp-com-rmn\.blogspot\.com -https?:\/\/([^\/]*\.)?onlyteenstgp-com-rrcamwws3\.blogspot\.com -https?:\/\/([^\/]*\.)?onlyteenstgp-we\.blogspot\.com -https?:\/\/([^\/]*\.)?onmycrew\.blogspot\.com -https?:\/\/([^\/]*\.)?onrueetd\.forumzen\.com -https?:\/\/([^\/]*\.)?oogqj\.szm\.sk -https?:\/\/([^\/]*\.)?oohsexy-com-hob8e5y8r\.blogspot\.com -https?:\/\/([^\/]*\.)?oohsexy-com-hpemrnff\.blogspot\.com -https?:\/\/([^\/]*\.)?oohsexy\.com -https?:\/\/([^\/]*\.)?oohsexy000\.blogspot\.com -https?:\/\/([^\/]*\.)?ooline\.info -https?:\/\/([^\/]*\.)?oolive\.info -https?:\/\/([^\/]*\.)?oonk1\.szm\.sk -https?:\/\/([^\/]*\.)?ooooi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ootop\.info -https?:\/\/([^\/]*\.)?ooyy2\.szm\.sk -https?:\/\/([^\/]*\.)?opastr\.com -https?:\/\/([^\/]*\.)?oping\.info -https?:\/\/([^\/]*\.)?opiytr\.com -https?:\/\/([^\/]*\.)?opkr1\.szm\.sk -https?:\/\/([^\/]*\.)?optbblx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?optfzj5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?opyfsen\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?oqaknky\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?oqfwt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?or-drondron\.xa\.pl -https?:\/\/([^\/]*\.)?orabc\.info -https?:\/\/([^\/]*\.)?oracelta\.lolforum\.net -https?:\/\/([^\/]*\.)?orasta\.com -https?:\/\/([^\/]*\.)?orbasolo\.dl\.pl -https?:\/\/([^\/]*\.)?orcnaac\.discutfree\.com -https?:\/\/([^\/]*\.)?orcoc\.lolbb\.com -https?:\/\/([^\/]*\.)?orcore\.graphforum\.com -https?:\/\/([^\/]*\.)?orddercelexa\.ovp\.pl -https?:\/\/([^\/]*\.)?orddercialisonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordderlevitra\.ovp\.pl -https?:\/\/([^\/]*\.)?orddertramadolonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orddervalium\.ovp\.pl -https?:\/\/([^\/]*\.)?orddervaliumonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordderviagra\.ovp\.pl -https?:\/\/([^\/]*\.)?ordderviagraonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordderzithromax\.ovp\.pl -https?:\/\/([^\/]*\.)?ordeertramadol\.ovp\.pl -https?:\/\/([^\/]*\.)?order-blue-phentermine\.coz\.in -https?:\/\/([^\/]*\.)?order-ritalin-online\.contact\.cc -https?:\/\/([^\/]*\.)?order-viagra\.health-livening\.com -https?:\/\/([^\/]*\.)?orderacyclovirr\.ovp\.pl -https?:\/\/([^\/]*\.)?orderadipexx\.ovp\.pl -https?:\/\/([^\/]*\.)?orderalbenzaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderalprazolamm\.ovp\.pl -https?:\/\/([^\/]*\.)?orderambienn\.ovp\.pl -https?:\/\/([^\/]*\.)?orderamoxicillinn\.ovp\.pl -https?:\/\/([^\/]*\.)?orderativann\.ovp\.pl -https?:\/\/([^\/]*\.)?orderccialiss\.ovp\.pl -https?:\/\/([^\/]*\.)?ordercelexaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderciaalisonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordercialisonline\.jubiiblog\.de -https?:\/\/([^\/]*\.)?ordercialiss\.ovp\.pl -https?:\/\/([^\/]*\.)?ordercializ\.blogcu\.com -https?:\/\/([^\/]*\.)?ordercializ\.spotbb\.com -https?:\/\/([^\/]*\.)?ordercymbaltaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderhydrocodonee\.ovp\.pl -https?:\/\/([^\/]*\.)?orderlevitraa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderllevitra\.ovp\.pl -https?:\/\/([^\/]*\.)?ordermeridiaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderphentermin\.phpbbx\.de -https?:\/\/([^\/]*\.)?orderphenterminee\.ovp\.pl -https?:\/\/([^\/]*\.)?orderpropeciaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrcialisonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrlevitra\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrtramadoll\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrtramadolonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrvalium\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrviagraa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderrviagraonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordersoma\.blogsome\.com -https?:\/\/([^\/]*\.)?ordersomaa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderssoma\.ovp\.pl -https?:\/\/([^\/]*\.)?ordertramadoll\.ovp\.pl -https?:\/\/([^\/]*\.)?ordertramadollonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orderultramm\.ovp\.pl -https?:\/\/([^\/]*\.)?ordervaliumm\.ovp\.pl -https?:\/\/([^\/]*\.)?orderviagraa\.ovp\.pl -https?:\/\/([^\/]*\.)?orderviagraaonline\.ovp\.pl -https?:\/\/([^\/]*\.)?ordervvalium\.ovp\.pl -https?:\/\/([^\/]*\.)?orderxanaxx\.ovp\.pl -https?:\/\/([^\/]*\.)?orderxenicalonline\.ir\.pl -https?:\/\/([^\/]*\.)?orecchino\.7god\.info -https?:\/\/([^\/]*\.)?orecchino\.freespase\.info -https?:\/\/([^\/]*\.)?oregonmortgage-x\.com -https?:\/\/([^\/]*\.)?orgetacel\.discutforum\.com -https?:\/\/([^\/]*\.)?orgeter\.cultureforum\.net -https?:\/\/([^\/]*\.)?orgs\.indianatech\.edu -https?:\/\/([^\/]*\.)?orletovar\.zikforum\.com -https?:\/\/([^\/]*\.)?ormme\.com -https?:\/\/([^\/]*\.)?ornildom\.forumzen\.com -https?:\/\/([^\/]*\.)?orrdercialisonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orrdertramadolonline\.ovp\.pl -https?:\/\/([^\/]*\.)?orsaverc\.forumzen\.com -https?:\/\/([^\/]*\.)?ortar\.com -https?:\/\/([^\/]*\.)?ortho-tri-cyclen\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ortrocrol\.heavenforum\.com -https?:\/\/([^\/]*\.)?ortrocrol\.highforum\.net -https?:\/\/([^\/]*\.)?orvict\.ephpbb\.com -https?:\/\/([^\/]*\.)?oryc0\.szm\.sk -https?:\/\/([^\/]*\.)?orzeldron\.lightbb\.com -https?:\/\/([^\/]*\.)?osakabondage\.info -https?:\/\/([^\/]*\.)?osfi5\.szm\.sk -https?:\/\/([^\/]*\.)?osthtp1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?otqsc\.szm\.sk -https?:\/\/([^\/]*\.)?oudomdar\.dl\.pl -https?:\/\/([^\/]*\.)?oudomolo\.lolbb\.com -https?:\/\/([^\/]*\.)?oudronc4t\.blogcu\.com -https?:\/\/([^\/]*\.)?ouerco\.lightbb\.com -https?:\/\/([^\/]*\.)?oufienoc\.forumzen\.com -https?:\/\/([^\/]*\.)?ouglova\.blogspot\.com -https?:\/\/([^\/]*\.)?ouhymtro\.forumzen\.com -https?:\/\/([^\/]*\.)?ouor\.lightbb\.com -https?:\/\/([^\/]*\.)?ouorrac\.bbfr\.net -https?:\/\/([^\/]*\.)?ouracdron\.discutfree\.com -https?:\/\/([^\/]*\.)?ourolal\.discutfree\.com -https?:\/\/([^\/]*\.)?outrocvar\.zj\.pl -https?:\/\/([^\/]*\.)?outward-dev\.com -https?:\/\/([^\/]*\.)?ouvier\.zj\.pl -https?:\/\/([^\/]*\.)?overseas-adventure-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?ovparnel\.dl\.pl -https?:\/\/([^\/]*\.)?ovpn2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ovrie\.szm\.sk -https?:\/\/([^\/]*\.)?ovu\.edu -https?:\/\/([^\/]*\.)?owll1\.szm\.sk -https?:\/\/([^\/]*\.)?oxpass-com-g5\.blogspot\.com -https?:\/\/([^\/]*\.)?oxpass-com-gt71a0\.blogspot\.com -https?:\/\/([^\/]*\.)?oxpass-com-hurol\.blogspot\.com -https?:\/\/([^\/]*\.)?oyspa\.szm\.sk -https?:\/\/([^\/]*\.)?oz6soqa\.nokedem\.com -https?:\/\/([^\/]*\.)?ozbk9\.szm\.sk -https?:\/\/([^\/]*\.)?ozgzm\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ozxz5\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ozyexk2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?p-free-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?p-n-lesbian-sex-video-d\.blogspot\.com -https?:\/\/([^\/]*\.)?p-teens-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?p-vi\.com -https?:\/\/([^\/]*\.)?p1v\.org -https?:\/\/([^\/]*\.)?p2l\.info -https?:\/\/([^\/]*\.)?pa19\.com -https?:\/\/([^\/]*\.)?pacfic-poker\.mutogen\.be -https?:\/\/([^\/]*\.)?pacficpoker\.xwiki\.com -https?:\/\/([^\/]*\.)?pacific-poker\.black-poker\.com -https?:\/\/([^\/]*\.)?paddedapex\.org -https?:\/\/([^\/]*\.)?paeecpx\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pafyawv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pain-medications\.us -https?:\/\/([^\/]*\.)?pain-relief\.1\.p2l\.info -https?:\/\/([^\/]*\.)?pain-relief\.2x4\.ru -https?:\/\/([^\/]*\.)?pain-relief\.fromru\.com -https?:\/\/([^\/]*\.)?pain-relief\.newmail\.ru -https?:\/\/([^\/]*\.)?pain_relief\.chat\.ru -https?:\/\/([^\/]*\.)?paisi\.com -https?:\/\/([^\/]*\.)?paisidesign\.com -https?:\/\/([^\/]*\.)?pam\.freehostia\.com -https?:\/\/([^\/]*\.)?pamlicohouse\.com -https?:\/\/([^\/]*\.)?panama2cruise\.boom\.ru -https?:\/\/([^\/]*\.)?panama2cruise\.chat\.ru -https?:\/\/([^\/]*\.)?panamacruise1\.boom\.ru -https?:\/\/([^\/]*\.)?panamacruise1\.chat\.ru -https?:\/\/([^\/]*\.)?pandamovies-com-g6lz762n76\.blogspot\.com -https?:\/\/([^\/]*\.)?pandamovies-com-tq32\.blogspot\.com -https?:\/\/([^\/]*\.)?pandamovies-o4me7xqq0f\.blogspot\.com -https?:\/\/([^\/]*\.)?panshan888\.com -https?:\/\/([^\/]*\.)?panss\.org -https?:\/\/([^\/]*\.)?panthersjaguar\.info -https?:\/\/([^\/]*\.)?panty-ass-com-w1\.blogspot\.com -https?:\/\/([^\/]*\.)?panty-ass-com-w8\.blogspot\.com -https?:\/\/([^\/]*\.)?pantybuns-com-a6ejgve\.blogspot\.com -https?:\/\/([^\/]*\.)?pantybuns-com-axeoa77ze5\.blogspot\.com -https?:\/\/([^\/]*\.)?pantybuns-com-tl0\.blogspot\.com -https?:\/\/([^\/]*\.)?pantyhose-face\.pupava\.dtdns\.net -https?:\/\/([^\/]*\.)?pantyhose-net\.com -https?:\/\/([^\/]*\.)?paola-e-chiara\.host24h\.info -https?:\/\/([^\/]*\.)?paper--shredder\.boom\.ru -https?:\/\/([^\/]*\.)?paper-s\.boom\.ru -https?:\/\/([^\/]*\.)?paper1-shredder\.boom\.ru -https?:\/\/([^\/]*\.)?paper1shredder\.chat\.ru -https?:\/\/([^\/]*\.)?paper5shredder\.chat\.ru -https?:\/\/([^\/]*\.)?paperbox\.freephpwebhosting\.net -https?:\/\/([^\/]*\.)?paperroom\.blogspot\.com -https?:\/\/([^\/]*\.)?papr-shredder\.boom\.ru -https?:\/\/([^\/]*\.)?paradisenudes-com-o71a\.blogspot\.com -https?:\/\/([^\/]*\.)?paradisenudes-com-os\.blogspot\.com -https?:\/\/([^\/]*\.)?paralegal1degree\.chat\.ru -https?:\/\/([^\/]*\.)?parench\.ifrance\.com -https?:\/\/([^\/]*\.)?parigi-appartamento-vacanza\.zoom10x\.info -https?:\/\/([^\/]*\.)?paris-hilton-huxik\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-lukuv\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-nude-tape\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-pijid\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-pojic\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-porn\.0800-porn\.com -https?:\/\/([^\/]*\.)?paris-hilton-sex-tape-xxx\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-sex-video-gf5m5\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-sex-video-sez\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-socog\.blogspot\.com -https?:\/\/([^\/]*\.)?paris-hilton-xidig\.blogspot\.com -https?:\/\/([^\/]*\.)?paris\.php5\.cz -https?:\/\/([^\/]*\.)?parishilton-paris-hilton\.blogspot\.com -https?:\/\/([^\/]*\.)?parishilton-paris\.blogspot\.com -https?:\/\/([^\/]*\.)?parnvf8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?partei-deutsches-reich\.de -https?:\/\/([^\/]*\.)?parties-supply\.jeepsyc\.be -https?:\/\/([^\/]*\.)?party-poker\.black-poker\.com -https?:\/\/([^\/]*\.)?pasacvi\.zikforum\.com -https?:\/\/([^\/]*\.)?paschiel\.blogcu\.com -https?:\/\/([^\/]*\.)?pasdronli\.winnerforum\.net -https?:\/\/([^\/]*\.)?pashkak0marov\.blogspot\.com -https?:\/\/([^\/]*\.)?paslibo\.myrealboard\.com -https?:\/\/([^\/]*\.)?pasoloro\.graphforum\.com -https?:\/\/([^\/]*\.)?pasoloro\.highforum\.net -https?:\/\/([^\/]*\.)?pasracco\.blogcu\.com -https?:\/\/([^\/]*\.)?pasrodron\.xa\.pl -https?:\/\/([^\/]*\.)?passaf\.com -https?:\/\/([^\/]*\.)?pastmagic\.blogspot\.com -https?:\/\/([^\/]*\.)?pasviric\.td\.pl -https?:\/\/([^\/]*\.)?patsytestis\.0moola\.com -https?:\/\/([^\/]*\.)?pattywhack91\.ibelgique\.com -https?:\/\/([^\/]*\.)?paulino\.greekboston\.com -https?:\/\/([^\/]*\.)?paulino\.idilis\.ro -https?:\/\/([^\/]*\.)?paxil-cr\.contact\.cc -https?:\/\/([^\/]*\.)?paxil-without-prescription\.contact\.cc -https?:\/\/([^\/]*\.)?paxil\.1\.p2l\.info -https?:\/\/([^\/]*\.)?paxil\.forospace\.com -https?:\/\/([^\/]*\.)?paxilonline\.zoomshare\.com -https?:\/\/([^\/]*\.)?payday-loan\.de\.com -https?:\/\/([^\/]*\.)?payday-loans-4us\.com -https?:\/\/([^\/]*\.)?payday-loans-ooo\.blogspot\.com -https?:\/\/([^\/]*\.)?paydayloans-guide\.com -https?:\/\/([^\/]*\.)?paydayloans-x\.com -https?:\/\/([^\/]*\.)?pcb2002\.home4u\.china\.com -https?:\/\/([^\/]*\.)?pcgzt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pdslnw6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?peace-weasel\.blogspot\.com -https?:\/\/([^\/]*\.)?peacedoorball\.blogspot\.com -https?:\/\/([^\/]*\.)?pearlibuttons\.blogspot\.com -https?:\/\/([^\/]*\.)?pebwgu0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pecilu-free-sex-video-clip\.blogspot\.com -https?:\/\/([^\/]*\.)?pee-4a\.com -https?:\/\/([^\/]*\.)?peetliel\.jconserv\.net -https?:\/\/([^\/]*\.)?pefi-albert\.blogspot\.com -https?:\/\/([^\/]*\.)?pelnp\.szm\.sk -https?:\/\/([^\/]*\.)?pendant\.hostcroc\.com -https?:\/\/([^\/]*\.)?pennsylvaniamortgage-x\.com -https?:\/\/([^\/]*\.)?people\.msoe\.edu -https?:\/\/([^\/]*\.)?percocet-without-prescription\.contact\.cc -https?:\/\/([^\/]*\.)?percocet\.xwiki\.com -https?:\/\/([^\/]*\.)?perfect-boob\.medved\.od\.ua -https?:\/\/([^\/]*\.)?permanentmagnet\.com -https?:\/\/([^\/]*\.)?persiankitty-com-kcfsibt01d\.blogspot\.com -https?:\/\/([^\/]*\.)?persiankitty-com-ksa6l1a\.blogspot\.com -https?:\/\/([^\/]*\.)?personales\.ciudad\.com\.ar -https?:\/\/([^\/]*\.)?personalserotic\.com -https?:\/\/([^\/]*\.)?petite-mature-blonde\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?petite-teen-ass\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?petiteteenager-com-cm8ku8w\.blogspot\.com -https?:\/\/([^\/]*\.)?petiteteenager-com-md6\.blogspot\.com -https?:\/\/([^\/]*\.)?petiteteenager-com-mns4n5a4\.blogspot\.com -https?:\/\/([^\/]*\.)?petiteteenager-g687rhasjq\.blogspot\.com -https?:\/\/([^\/]*\.)?peuct\.szm\.sk -https?:\/\/([^\/]*\.)?pfes7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pffl4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pgbnjja\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pharm1\.info -https?:\/\/([^\/]*\.)?pharmacies\.in\.ua -https?:\/\/([^\/]*\.)?pharmacy-experts\.org -https?:\/\/([^\/]*\.)?pharmacy-x\.ru\.ru -https?:\/\/([^\/]*\.)?pharmacy\.sovuennir\.be -https?:\/\/([^\/]*\.)?pharmacy\.t28\.net -https?:\/\/([^\/]*\.)?pharmacy05\.com -https?:\/\/([^\/]*\.)?pharmacybuy1\.angelcities\.com -https?:\/\/([^\/]*\.)?pharmaduk\.xshorturl\.com -https?:\/\/([^\/]*\.)?phendimetrazine\.1\.p2l\.info -https?:\/\/([^\/]*\.)?phendimetrazinenx\.u\.yuku\.com -https?:\/\/([^\/]*\.)?phentermine--mine\.blogspot\.com -https?:\/\/([^\/]*\.)?phentermine-911\.bee\.pl -https?:\/\/([^\/]*\.)?phentermine-911\.coz\.in -https?:\/\/([^\/]*\.)?phentermine-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?phentermine-choise\.ebloggy\.com -https?:\/\/([^\/]*\.)?phentermine-forum\.tripod\.com -https?:\/\/([^\/]*\.)?phentermine-gs\.eu\.tc -https?:\/\/([^\/]*\.)?phentermine-gs\.net\.tc -https?:\/\/([^\/]*\.)?phentermine-hcl\.org -https?:\/\/([^\/]*\.)?phentermine-online\.cheapills\.info -https?:\/\/([^\/]*\.)?phentermine-online\.presteert\.nl -https?:\/\/([^\/]*\.)?phentermine-pharmacy\.fws1\.com -https?:\/\/([^\/]*\.)?phentermine-support\.com -https?:\/\/([^\/]*\.)?phentermine\.1\.p2l\.info -https?:\/\/([^\/]*\.)?phentermine\.acbox\.com -https?:\/\/([^\/]*\.)?phentermine\.acbox\.net -https?:\/\/([^\/]*\.)?phentermine\.arkadasi\.com -https?:\/\/([^\/]*\.)?phentermine\.asistani\.com -https?:\/\/([^\/]*\.)?phentermine\.bz -https?:\/\/([^\/]*\.)?phentermine\.clubpage\.net -https?:\/\/([^\/]*\.)?phentermine\.esguay\.com -https?:\/\/([^\/]*\.)?phentermine\.flygande-apor\.com -https?:\/\/([^\/]*\.)?phentermine\.goodpharm\.info -https?:\/\/([^\/]*\.)?phentermine\.gotgeeks\.com -https?:\/\/([^\/]*\.)?phentermine\.hallonsaft\.info -https?:\/\/([^\/]*\.)?phentermine\.health-livening\.com -https?:\/\/([^\/]*\.)?phentermine\.on-4\.com -https?:\/\/([^\/]*\.)?phentermine\.ontspant\.nl -https?:\/\/([^\/]*\.)?phentermine\.presteert\.nl -https?:\/\/([^\/]*\.)?phentermine\.skocz\.net -https?:\/\/([^\/]*\.)?phentermine\.su\.pl -https?:\/\/([^\/]*\.)?phentermine\.tv -https?:\/\/([^\/]*\.)?phentermine\.websiam\.net -https?:\/\/([^\/]*\.)?phentermine2\.freewebsites\.com -https?:\/\/([^\/]*\.)?phentermine7x\.forumup\.org -https?:\/\/([^\/]*\.)?phenterminec\.phpbbx\.de -https?:\/\/([^\/]*\.)?phentermineonline\.ds4a\.com -https?:\/\/([^\/]*\.)?phentermineonline\.livelog\.com -https?:\/\/([^\/]*\.)?phentermineq\.host-page\.com -https?:\/\/([^\/]*\.)?phentermines\.int\.tf -https?:\/\/([^\/]*\.)?phoenixbrngbrt\.blogspot\.com -https?:\/\/([^\/]*\.)?phol8\.szm\.sk -https?:\/\/([^\/]*\.)?phone-service\.newmail\.ru -https?:\/\/([^\/]*\.)?phones-gsm\.haemati\.be -https?:\/\/([^\/]*\.)?photo-of-girl-boob\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?photospacefree\.com -https?:\/\/([^\/]*\.)?phots\.info -https?:\/\/([^\/]*\.)?phpbbx\.de -https?:\/\/([^\/]*\.)?phun-org-i08kd\.blogspot\.com -https?:\/\/([^\/]*\.)?phun-org-ingg0\.blogspot\.com -https?:\/\/([^\/]*\.)?pi-allyson\.blogspot\.com -https?:\/\/([^\/]*\.)?pichunter-com-bkfwk\.blogspot\.com -https?:\/\/([^\/]*\.)?pichunter-com-bzf\.blogspot\.com -https?:\/\/([^\/]*\.)?pichunter-com-hmmcyoud8\.blogspot\.com -https?:\/\/([^\/]*\.)?pichunter-com-kesip\.blogspot\.com -https?:\/\/([^\/]*\.)?picpost-com-e3xqsc6a\.blogspot\.com -https?:\/\/([^\/]*\.)?picpost-com-eu7refa3s5\.blogspot\.com -https?:\/\/([^\/]*\.)?picture-cast-on-broken-leg\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?picture-of-gay-guys-fucking\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?picture-of-used-condom\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?picture\.8tt\.org -https?:\/\/([^\/]*\.)?pictureheaven-com-ri7hn\.blogspot\.com -https?:\/\/([^\/]*\.)?pictureheaven-com-rw\.blogspot\.com -https?:\/\/([^\/]*\.)?pictures-free-org-wl0nj\.blogspot\.com -https?:\/\/([^\/]*\.)?pictures-free-org-wmmkv2w\.blogspot\.com -https?:\/\/([^\/]*\.)?piggy-soldier\.blogspot\.com -https?:\/\/([^\/]*\.)?pigtime\.net\.ru -https?:\/\/([^\/]*\.)?pigxxx-com-ctjj1\.blogspot\.com -https?:\/\/([^\/]*\.)?pigxxx-com-ge1omxgp20\.blogspot\.com -https?:\/\/([^\/]*\.)?pigxxx-com-geo8asd1i\.blogspot\.com -https?:\/\/([^\/]*\.)?pigxxx-com-nevew\.blogspot\.com -https?:\/\/([^\/]*\.)?pijjyh-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?pillalli\.info -https?:\/\/([^\/]*\.)?pillnext\.com -https?:\/\/([^\/]*\.)?pillow\.2x4\.ru -https?:\/\/([^\/]*\.)?pills-catalog\.com -https?:\/\/([^\/]*\.)?pills-pharmacy\.us -https?:\/\/([^\/]*\.)?pills\.007webpro\.com -https?:\/\/([^\/]*\.)?pills\.siemprelisto\.net -https?:\/\/([^\/]*\.)?pills1\.org -https?:\/\/([^\/]*\.)?pillsz\.com -https?:\/\/([^\/]*\.)?pimpmyblackteen-com-t6ijmwbu\.blogspot\.com -https?:\/\/([^\/]*\.)?pimpmyblackteen-com-t7d432c\.blogspot\.com -https?:\/\/([^\/]*\.)?pindosam\.com -https?:\/\/([^\/]*\.)?pine\.hostonmars\.com -https?:\/\/([^\/]*\.)?pinkpornstars-com-da3njbu\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkpornstars-com-dnjx\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkpornstars-com-drm\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkworld-com-c84agv\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkworld-com-ci8e6\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkworld-com-ge4k4kmsd\.blogspot\.com -https?:\/\/([^\/]*\.)?pinkworld-com-kp7s8i5\.blogspot\.com -https?:\/\/([^\/]*\.)?pino-daniele\.19mb\.info -https?:\/\/([^\/]*\.)?pinoyteens\.net -https?:\/\/([^\/]*\.)?piomchel\.jconserv\.net -https?:\/\/([^\/]*\.)?pisces\.8tt\.org -https?:\/\/([^\/]*\.)?pitch\.101freehost\.com -https?:\/\/([^\/]*\.)?pizda4\.com -https?:\/\/([^\/]*\.)?pizza-hut\.hotmail\.ru -https?:\/\/([^\/]*\.)?pjim6\.szm\.sk -https?:\/\/([^\/]*\.)?pjju3\.szm\.sk -https?:\/\/([^\/]*\.)?pjmykz8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pjryskur-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?pjuibhe\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pkufl\.szm\.sk -https?:\/\/([^\/]*\.)?place\.sex-jet\.net -https?:\/\/([^\/]*\.)?planetaacura\.info -https?:\/\/([^\/]*\.)?planetwatt\.republika\.pl -https?:\/\/([^\/]*\.)?plastictec\.net -https?:\/\/([^\/]*\.)?plavix\.coz\.in -https?:\/\/([^\/]*\.)?plavixbuy\.gameday\.de -https?:\/\/([^\/]*\.)?plavixbuycheap\.dive\.to -https?:\/\/([^\/]*\.)?plavixcheap\.hey\.to -https?:\/\/([^\/]*\.)?plavixcheapgeneric\.go\.to -https?:\/\/([^\/]*\.)?plavixgeneric\.change\.to -https?:\/\/([^\/]*\.)?play-777\.com -https?:\/\/([^\/]*\.)?play-online-casino\.de\.com -https?:\/\/([^\/]*\.)?play-online-poker\.newmail\.ru -https?:\/\/([^\/]*\.)?play-station-2-boot-disk\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?playandwinit777\.net -https?:\/\/([^\/]*\.)?pleasebangmywife-com-i8zdgo1\.blogspot\.com -https?:\/\/([^\/]*\.)?pleasebangmywife-com-iq\.blogspot\.com -https?:\/\/([^\/]*\.)?pleasebangmywife-com-koguq\.blogspot\.com -https?:\/\/([^\/]*\.)?pleasure\.hostonmars\.com -https?:\/\/([^\/]*\.)?ploob\.blox\.pl -https?:\/\/([^\/]*\.)?plugkblow\.pornomagnat\.net -https?:\/\/([^\/]*\.)?plumper69-com-on3664rg\.blogspot\.com -https?:\/\/([^\/]*\.)?plumper69-com-os4\.blogspot\.com -https?:\/\/([^\/]*\.)?plumper69-com-sokis\.blogspot\.com -https?:\/\/([^\/]*\.)?plxn1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pmrd2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pmyk8\.fr33webhost\.com -https?:\/\/([^\/]*\.)?po-alora\.blogspot\.com -https?:\/\/([^\/]*\.)?pobpa\.fr33webhost\.com -https?:\/\/([^\/]*\.)?pocmlaq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?podnos\.stabilt\.se -https?:\/\/([^\/]*\.)?poeller\.dl\.pl -https?:\/\/([^\/]*\.)?pogeh\.szm\.sk -https?:\/\/([^\/]*\.)?pohuym\.jo\.pl -https?:\/\/([^\/]*\.)?pointyou\.info -https?:\/\/([^\/]*\.)?poker-0\.com -https?:\/\/([^\/]*\.)?poker-24x7\.com -https?:\/\/([^\/]*\.)?poker-4all\.com -https?:\/\/([^\/]*\.)?poker-7\.com -https?:\/\/([^\/]*\.)?poker-boulevard\.com -https?:\/\/([^\/]*\.)?poker-check\.com -https?:\/\/([^\/]*\.)?poker-new\.com -https?:\/\/([^\/]*\.)?poker-party-a\.com -https?:\/\/([^\/]*\.)?poker-places-4u\.net -https?:\/\/([^\/]*\.)?poker-places\.net -https?:\/\/([^\/]*\.)?poker-pro\.us -https?:\/\/([^\/]*\.)?poker-stadium\.com -https?:\/\/([^\/]*\.)?poker-sys\.com -https?:\/\/([^\/]*\.)?poker-unique\.com -https?:\/\/([^\/]*\.)?poker-valley\.com -https?:\/\/([^\/]*\.)?poker\.black-poker\.com -https?:\/\/([^\/]*\.)?poker\.land\.ru -https?:\/\/([^\/]*\.)?poker1table\.chat\.ru -https?:\/\/([^\/]*\.)?pokera\.web\.com -https?:\/\/([^\/]*\.)?pokermaniab\.atspace\.com -https?:\/\/([^\/]*\.)?polex\.com\.cn -https?:\/\/([^\/]*\.)?police-motorcycle-boot\.medved\.od\.ua -https?:\/\/([^\/]*\.)?police\.site\.io -https?:\/\/([^\/]*\.)?polonka\.php5\.cz -https?:\/\/([^\/]*\.)?polott\.org -https?:\/\/([^\/]*\.)?polyphonic-ringtoneslsh\.blogspot\.com -https?:\/\/([^\/]*\.)?polysorb\.myoco\.be -https?:\/\/([^\/]*\.)?polyurethane-condom\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?pool-table\.hotmail\.ru -https?:\/\/([^\/]*\.)?poopoovi\.forumculture\.net -https?:\/\/([^\/]*\.)?pop\.egi\.biz -https?:\/\/([^\/]*\.)?porn-clip-blog5jc\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-clip-boj\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-clip-om16o\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-movie-clips-blogk8p\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-movie-rj8a7\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-movie-ted\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-movie\.hostingtree\.org -https?:\/\/([^\/]*\.)?porn-samples\.com -https?:\/\/([^\/]*\.)?porn-star-clip-info0n0\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-star-movie-clip-newsigj\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-star-video-clip-zone44f\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-teacher\.com -https?:\/\/([^\/]*\.)?porn-teen-pic\.com -https?:\/\/([^\/]*\.)?porn-video-clip-bb-bb-f\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-video-clip-gallery-zonehp1\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-video-clips-news5v2\.blogspot\.com -https?:\/\/([^\/]*\.)?porn-video-jef\.blogspot\.com -https?:\/\/([^\/]*\.)?porn1clip\.blogspot\.com -https?:\/\/([^\/]*\.)?pornaccess-com-k58\.blogspot\.com -https?:\/\/([^\/]*\.)?pornaccess-com-kkd1zvcobi\.blogspot\.com -https?:\/\/([^\/]*\.)?porndirectory-com-m544ar5z47\.blogspot\.com -https?:\/\/([^\/]*\.)?porndirectory-com-miyza\.blogspot\.com -https?:\/\/([^\/]*\.)?porneskimo-com-hizrd2on\.blogspot\.com -https?:\/\/([^\/]*\.)?porneskimo-com-hr1frq8hrr\.blogspot\.com -https?:\/\/([^\/]*\.)?porneskimo-d4p5\.blogspot\.com -https?:\/\/([^\/]*\.)?porneskimo-diheh\.blogspot\.com -https?:\/\/([^\/]*\.)?pornfreeusa\.info -https?:\/\/([^\/]*\.)?pornno-com-cdtkjmj\.blogspot\.com -https?:\/\/([^\/]*\.)?pornno-com-cz5dknpwc\.blogspot\.com -https?:\/\/([^\/]*\.)?pornogames4\.com -https?:\/\/([^\/]*\.)?pornoho-com-d7f\.blogspot\.com -https?:\/\/([^\/]*\.)?pornoho-com-db2ge0p\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstar-com-be1mbdy0l1\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstar-com-bsrzs22gn\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstar-com-nuvor\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstar-dz8j\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarbook-com-ag3477t\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarbook-com-agrpd\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarfinder-net-wp2lsr0\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarfinder-net-wuag8\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstargals-com-tj\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstargals-com-tk7hoxv36\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstars\.hostingtree\.org -https?:\/\/([^\/]*\.)?pornstarvid-com-dinif\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarvid-com-h5\.blogspot\.com -https?:\/\/([^\/]*\.)?pornstarvid-com-h8xe\.blogspot\.com -https?:\/\/([^\/]*\.)?pornweek-com\.isabel\.dtdns\.net -https?:\/\/([^\/]*\.)?portal777\.com -https?:\/\/([^\/]*\.)?portalrate\.info -https?:\/\/([^\/]*\.)?portcityhonda\.info -https?:\/\/([^\/]*\.)?portly\.byinter\.net -https?:\/\/([^\/]*\.)?porzo-com-dsmefbsl\.blogspot\.com -https?:\/\/([^\/]*\.)?porzo-com-gxo\.blogspot\.com -https?:\/\/([^\/]*\.)?poshlo\.com -https?:\/\/([^\/]*\.)?postdream\.org -https?:\/\/([^\/]*\.)?potulnik\.php5\.cz -https?:\/\/([^\/]*\.)?povicyt\.dynamicforum\.net -https?:\/\/([^\/]*\.)?powerlevelingweb\.com -https?:\/\/([^\/]*\.)?pozorvostoka\.250free\.com -https?:\/\/([^\/]*\.)?pp-shredd\.boom\.ru -https?:\/\/([^\/]*\.)?pppsp\.szm\.sk -https?:\/\/([^\/]*\.)?ppuhldv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pqis2\.szm\.sk -https?:\/\/([^\/]*\.)?prakashcommunication\.com -https?:\/\/([^\/]*\.)?prama\.info -https?:\/\/([^\/]*\.)?prasut\.com -https?:\/\/([^\/]*\.)?prearnha\.dl\.pl -https?:\/\/([^\/]*\.)?prednisone\.3d-game\.com -https?:\/\/([^\/]*\.)?prenotazione-albergo-rimini\.host24h\.info -https?:\/\/([^\/]*\.)?prestito-taranto\.robzz\.info -https?:\/\/([^\/]*\.)?prettyhair24-7\.blogspot\.com -https?:\/\/([^\/]*\.)?prettyhotbabes-com-r2lu08uojn\.blogspot\.com -https?:\/\/([^\/]*\.)?prettyhotbabes-com-rkgrt\.blogspot\.com -https?:\/\/([^\/]*\.)?prettymob\.com -https?:\/\/([^\/]*\.)?prevacid\.1\.p2l\.info -https?:\/\/([^\/]*\.)?price-top\.com -https?:\/\/([^\/]*\.)?price100\.info -https?:\/\/([^\/]*\.)?prilosec\.1\.p2l\.info -https?:\/\/([^\/]*\.)?prilosecbuycheap\.turn\.to -https?:\/\/([^\/]*\.)?prilosecbuygeneric\.redirect\.to -https?:\/\/([^\/]*\.)?priloseccheap\.turn\.to -https?:\/\/([^\/]*\.)?priloseccheapgeneric\.redirect\.to -https?:\/\/([^\/]*\.)?prilosecgeneric\.come\.to -https?:\/\/([^\/]*\.)?primer\.fidosoft\.de -https?:\/\/([^\/]*\.)?primojerky\.cn -https?:\/\/([^\/]*\.)?primonona\.info -https?:\/\/([^\/]*\.)?princesscruises\.chat\.ru -https?:\/\/([^\/]*\.)?princesskariboo\.blogspot\.com -https?:\/\/([^\/]*\.)?printer\.net\.cn -https?:\/\/([^\/]*\.)?printingok\.net -https?:\/\/([^\/]*\.)?private-porn-clip-newsmzm\.blogspot\.com -https?:\/\/([^\/]*\.)?proactive-facial-product\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?problem-skin\.nm\.ru -https?:\/\/([^\/]*\.)?problem_skin\.chat\.ru -https?:\/\/([^\/]*\.)?prodotti-cosmetico\.nnme\.info -https?:\/\/([^\/]*\.)?projectvoyeur-com-ec15a\.blogspot\.com -https?:\/\/([^\/]*\.)?projectvoyeur-com-eq2w\.blogspot\.com -https?:\/\/([^\/]*\.)?projectvoyeur-com-eyyd4q\.blogspot\.com -https?:\/\/([^\/]*\.)?projectvoyeur-t3j\.blogspot\.com -https?:\/\/([^\/]*\.)?prom\.createforum\.us -https?:\/\/([^\/]*\.)?propecia\.1\.p2l\.info -https?:\/\/([^\/]*\.)?propecia\.esguay\.com -https?:\/\/([^\/]*\.)?propecia\.skocz\.net -https?:\/\/([^\/]*\.)?protonixbuy\.stick\.by -https?:\/\/([^\/]*\.)?protonixbuycheap\.redirect\.to -https?:\/\/([^\/]*\.)?protonixcheap\.connect\.to -https?:\/\/([^\/]*\.)?protonixcheapgeneric\.soft-ware\.de -https?:\/\/([^\/]*\.)?protonixgenericbuy\.cut\.by -https?:\/\/([^\/]*\.)?provigilweight\.sblog\.cz -https?:\/\/([^\/]*\.)?prozac\.rx4\.org -https?:\/\/([^\/]*\.)?prsl4\.szm\.sk -https?:\/\/([^\/]*\.)?prznic\.dtdns\.net -https?:\/\/([^\/]*\.)?psfc\.mit\.edu -https?:\/\/([^\/]*\.)?psmorrison\.blogspot\.com -https?:\/\/([^\/]*\.)?psnuni\.com -https?:\/\/([^\/]*\.)?psrq4\.szm\.sk -https?:\/\/([^\/]*\.)?psychology-degre\.boom\.ru -https?:\/\/([^\/]*\.)?psychology1degre\.chat\.ru -https?:\/\/([^\/]*\.)?pszdc\.szm\.sk -https?:\/\/([^\/]*\.)?ptpm9\.szm\.sk -https?:\/\/([^\/]*\.)?ptrip\.net -https?:\/\/([^\/]*\.)?pttqt\.szm\.sk -https?:\/\/([^\/]*\.)?publicinvasion-com-bhtum2\.blogspot\.com -https?:\/\/([^\/]*\.)?publicinvasion-com-bj\.blogspot\.com -https?:\/\/([^\/]*\.)?publicinvasion-com-furok\.blogspot\.com -https?:\/\/([^\/]*\.)?publicsaftor\.com -https?:\/\/([^\/]*\.)?pued-com-maxu1g7\.blogspot\.com -https?:\/\/([^\/]*\.)?pued-com-mf3\.blogspot\.com -https?:\/\/([^\/]*\.)?pued-com-r0078gie\.blogspot\.com -https?:\/\/([^\/]*\.)?pued-ox5y12mn7s\.blogspot\.com -https?:\/\/([^\/]*\.)?puffybet\.sultryserver\.com -https?:\/\/([^\/]*\.)?pulaskiterm\.info -https?:\/\/([^\/]*\.)?pulse-squad\.com -https?:\/\/([^\/]*\.)?pumpthatass-com-a78juz38f2\.blogspot\.com -https?:\/\/([^\/]*\.)?pumpthatass-com-a7ouybe\.blogspot\.com -https?:\/\/([^\/]*\.)?pumpthatass-com-xudeb\.blogspot\.com -https?:\/\/([^\/]*\.)?punguinodoom\.110mb\.com -https?:\/\/([^\/]*\.)?punjqm0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?punk-ass-bitch-wheatus\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?puppykibble-com-o7\.blogspot\.com -https?:\/\/([^\/]*\.)?puppykibble-com-oh0w2te3k\.blogspot\.com -https?:\/\/([^\/]*\.)?puppykibble-com-oqm7hu8d\.blogspot\.com -https?:\/\/([^\/]*\.)?purextc-com-i8\.blogspot\.com -https?:\/\/([^\/]*\.)?purextc-com-iy\.blogspot\.com -https?:\/\/([^\/]*\.)?pussy-ass-bitch\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?pussy-org-kjsb51la\.blogspot\.com -https?:\/\/([^\/]*\.)?pussy-org-km5\.blogspot\.com -https?:\/\/([^\/]*\.)?putsta\.com -https?:\/\/([^\/]*\.)?pvfws\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pvqoa\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pvsiwi7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pvudt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pvzj1\.szm\.sk -https?:\/\/([^\/]*\.)?pwqx0\.szm\.sk -https?:\/\/([^\/]*\.)?pymiw\.szm\.sk -https?:\/\/([^\/]*\.)?pyr0lys1s\.blogspot\.com -https?:\/\/([^\/]*\.)?pyrebi\.blogspot\.com -https?:\/\/([^\/]*\.)?pyujxu0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?pzch0\.szm\.sk -https?:\/\/([^\/]*\.)?pzek6\.szm\.sk -https?:\/\/([^\/]*\.)?pzif1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?q-n-homemade-sex-video-z\.blogspot\.com -https?:\/\/([^\/]*\.)?qbzmbwz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qctbue2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qdhr9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qdojv\.fr33webhost\.com -https?:\/\/([^\/]*\.)?qe-hentai-sex-video-sun\.blogspot\.com -https?:\/\/([^\/]*\.)?qek-wetplace-com\.blogspot\.com -https?:\/\/([^\/]*\.)?qfoo7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qgre5\.szm\.sk -https?:\/\/([^\/]*\.)?qgtdivl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qhiqu\.fr33webhost\.com -https?:\/\/([^\/]*\.)?qhprfm6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qhyvt\.szm\.sk -https?:\/\/([^\/]*\.)?qietingqi\.ebloggy\.com -https?:\/\/([^\/]*\.)?qingpao\.com -https?:\/\/([^\/]*\.)?qinjq\.szm\.sk -https?:\/\/([^\/]*\.)?qiqiu\.org -https?:\/\/([^\/]*\.)?qite-alanna\.blogspot\.com -https?:\/\/([^\/]*\.)?qjok9\.szm\.sk -https?:\/\/([^\/]*\.)?qjt230\.com -https?:\/\/([^\/]*\.)?qjvkvcd\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qklb4\.szm\.sk -https?:\/\/([^\/]*\.)?qklhtf0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qknfl\.szm\.sk -https?:\/\/([^\/]*\.)?qknpl\.info -https?:\/\/([^\/]*\.)?qkpple2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qlpkce6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qltx2\.szm\.sk -https?:\/\/([^\/]*\.)?qmjrpuo\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qnax1\.szm\.sk -https?:\/\/([^\/]*\.)?qo-video-porn-gratis-download\.blogspot\.com -https?:\/\/([^\/]*\.)?qoclick\.com -https?:\/\/([^\/]*\.)?qoeg6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qojodeh-bdsm-post-video-f\.blogspot\.com -https?:\/\/([^\/]*\.)?qosmwx9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qpdoc\.com -https?:\/\/([^\/]*\.)?qqdaj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qqer6\.szm\.sk -https?:\/\/([^\/]*\.)?qqnbon4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qqwgp\.szm\.sk -https?:\/\/([^\/]*\.)?qrvkof5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qsc7\.org\.ua -https?:\/\/([^\/]*\.)?qsskk\.info -https?:\/\/([^\/]*\.)?qtru3\.szm\.sk -https?:\/\/([^\/]*\.)?qu-free-latina-sex-vide-wiv\.blogspot\.com -https?:\/\/([^\/]*\.)?quails\.ipupdater\.us -https?:\/\/([^\/]*\.)?quandugift\.com -https?:\/\/([^\/]*\.)?queryguild\.com -https?:\/\/([^\/]*\.)?quqob\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qutgmzbuje-video\.blogspot\.com -https?:\/\/([^\/]*\.)?qvewr\.szm\.sk -https?:\/\/([^\/]*\.)?qvrzi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qvulp\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qwhhmaj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qwrn6\.fr33webhost\.com -https?:\/\/([^\/]*\.)?qxmk2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?qyda0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qyf99\.com -https?:\/\/([^\/]*\.)?qypv5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qz\.informs\.com -https?:\/\/([^\/]*\.)?qzjeqcv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?qzrhj\.fr33webhost\.com -https?:\/\/([^\/]*\.)?r-t-free-porn-video-clip-c\.blogspot\.com -https?:\/\/([^\/]*\.)?racelleto\.dl\.pl -https?:\/\/([^\/]*\.)?racer\.graphforum\.com -https?:\/\/([^\/]*\.)?racerboc\.ephpbb\.com -https?:\/\/([^\/]*\.)?rachel-hunter-as-stacys-mom\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?racnelelt\.fr-bb\.com -https?:\/\/([^\/]*\.)?racoloboc\.graphforum\.com -https?:\/\/([^\/]*\.)?racoloboc\.highforum\.net -https?:\/\/([^\/]*\.)?racoloor\.dl\.pl -https?:\/\/([^\/]*\.)?racrella\.dl\.pl -https?:\/\/([^\/]*\.)?racsitli\.dl\.pl -https?:\/\/([^\/]*\.)?ractrcna\.bb-fr\.com -https?:\/\/([^\/]*\.)?racviget\.blogcu\.com -https?:\/\/([^\/]*\.)?raezey\.blogspot\.com -https?:\/\/([^\/]*\.)?raged\.info -https?:\/\/([^\/]*\.)?rajzhze\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ramandrom\.com -https?:\/\/([^\/]*\.)?randomlogik\.blogspot\.com -https?:\/\/([^\/]*\.)?rappture\.blogspot\.com -https?:\/\/([^\/]*\.)?raruzeol\.jconserv\.net -https?:\/\/([^\/]*\.)?rate-boob-pic\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?ratonhteroad\.blogspot\.com -https?:\/\/([^\/]*\.)?rawpussy-b0q\.blogspot\.com -https?:\/\/([^\/]*\.)?rawpussy-com-t3l\.blogspot\.com -https?:\/\/([^\/]*\.)?rawpussy-com-tawon6x\.blogspot\.com -https?:\/\/([^\/]*\.)?raxm2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?razor-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?razor2scooter\.chat\.ru -https?:\/\/([^\/]*\.)?rboub\.szm\.sk -https?:\/\/([^\/]*\.)?rdavisinc\.com -https?:\/\/([^\/]*\.)?re-advertising\.boom\.ru -https?:\/\/([^\/]*\.)?re\.rutan\.org -https?:\/\/([^\/]*\.)?readworld\.com -https?:\/\/([^\/]*\.)?real-gay-sex-story\.medved\.od\.ua -https?:\/\/([^\/]*\.)?real-ringtoneserd\.blogspot\.com -https?:\/\/([^\/]*\.)?realitsen\.info -https?:\/\/([^\/]*\.)?realitypassplus-com-e34pddwt1\.blogspot\.com -https?:\/\/([^\/]*\.)?realitypassplus-com-e7y\.blogspot\.com -https?:\/\/([^\/]*\.)?realityporn\.coz\.in -https?:\/\/([^\/]*\.)?realtimewatches\.info -https?:\/\/([^\/]*\.)?realtors-x\.com -https?:\/\/([^\/]*\.)?reboteen5\.blogspot\.com -https?:\/\/([^\/]*\.)?rebuildsanmateohighschool\.org -https?:\/\/([^\/]*\.)?recipe4you\.info -https?:\/\/([^\/]*\.)?recupero-dati-hard-disk\.ll11\.info -https?:\/\/([^\/]*\.)?redder\.my-wifi\.info -https?:\/\/([^\/]*\.)?redfxo\.blogspot\.com -https?:\/\/([^\/]*\.)?redsex4\.info -https?:\/\/([^\/]*\.)?redtcyw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?reductildrug\.coz\.in -https?:\/\/([^\/]*\.)?redway-org-d8u\.blogspot\.com -https?:\/\/([^\/]*\.)?redway-org-dtxz0863\.blogspot\.com -https?:\/\/([^\/]*\.)?redway-rla\.blogspot\.com -https?:\/\/([^\/]*\.)?reeringtonesptl\.blogspot\.com -https?:\/\/([^\/]*\.)?refinance-x\.com -https?:\/\/([^\/]*\.)?reggdr\.org -https?:\/\/([^\/]*\.)?regsh\.com -https?:\/\/([^\/]*\.)?reiw9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rejoicing\.gigsweb\.com -https?:\/\/([^\/]*\.)?rekara\.com -https?:\/\/([^\/]*\.)?relagen\.orkan\.yi\.org -https?:\/\/([^\/]*\.)?relalract\.lolforum\.net -https?:\/\/([^\/]*\.)?relcadron\.bbgraf\.com -https?:\/\/([^\/]*\.)?relcoli\.lightbb\.com -https?:\/\/([^\/]*\.)?relics\.hackers-unite\.info -https?:\/\/([^\/]*\.)?relmonric\.lolforum\.net -https?:\/\/([^\/]*\.)?reloading-software\.lycan\.be -https?:\/\/([^\/]*\.)?relsitelt\.darkbb\.com -https?:\/\/([^\/]*\.)?relsitrel\.xa\.pl -https?:\/\/([^\/]*\.)?reltaro\.lolbb\.com -https?:\/\/([^\/]*\.)?remiza\.dtdns\.net -https?:\/\/([^\/]*\.)?renova\.1\.p2l\.info -https?:\/\/([^\/]*\.)?rentbuscompany\.net -https?:\/\/([^\/]*\.)?rentcarcenter\.com -https?:\/\/([^\/]*\.)?rentcarok\.org -https?:\/\/([^\/]*\.)?replacement-batteries\.loretic\.be -https?:\/\/([^\/]*\.)?repq7\.szm\.sk -https?:\/\/([^\/]*\.)?rerdiq4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?reshall\.iweb\.bsu\.edu -https?:\/\/([^\/]*\.)?responderpal\.com -https?:\/\/([^\/]*\.)?restless-leg--com\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?restless-leg-syndrome-com\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?retin-a\.1\.p2l\.info -https?:\/\/([^\/]*\.)?retirement1comm\.chat\.ru -https?:\/\/([^\/]*\.)?returboc\.forumculture\.net -https?:\/\/([^\/]*\.)?revitolantiaging\.com -https?:\/\/([^\/]*\.)?rfjn0\.szm\.sk -https?:\/\/([^\/]*\.)?rgvlg\.szm\.sk -https?:\/\/([^\/]*\.)?rhdhh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rhinotickets\.com -https?:\/\/([^\/]*\.)?rhn45\.nokedem\.com -https?:\/\/([^\/]*\.)?rhodeislandmortgage-x\.com -https?:\/\/([^\/]*\.)?rhooh\.flnet\.org -https?:\/\/([^\/]*\.)?ri-hardcore-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?ricacelco\.dl\.pl -https?:\/\/([^\/]*\.)?ricaldneu\.fr-bb\.com -https?:\/\/([^\/]*\.)?riceltleto\.dl\.pl -https?:\/\/([^\/]*\.)?ricetta-cucina\.host24h\.info -https?:\/\/([^\/]*\.)?rich-r\.blogspot\.com -https?:\/\/([^\/]*\.)?richards-realm-com-c4h\.blogspot\.com -https?:\/\/([^\/]*\.)?richards-realm-com-cs\.blogspot\.com -https?:\/\/([^\/]*\.)?riclarol\.dl\.pl -https?:\/\/([^\/]*\.)?ricostruzione-unghia\.hostzz\.info -https?:\/\/([^\/]*\.)?ricrelnel\.frbb\.net -https?:\/\/([^\/]*\.)?rictaget\.uy\.pl -https?:\/\/([^\/]*\.)?rictrocvar\.zikforum\.com -https?:\/\/([^\/]*\.)?riczelur\.forumzen\.com -https?:\/\/([^\/]*\.)?ridiaulctions\.blogspot\.com -https?:\/\/([^\/]*\.)?right-leg-swelling\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?rigour\.info -https?:\/\/([^\/]*\.)?rijulina\.dl\.pl -https?:\/\/([^\/]*\.)?ring-tonecti\.blogspot\.com -https?:\/\/([^\/]*\.)?ring2man\.chat\.ru -https?:\/\/([^\/]*\.)?ring4man\.chat\.ru -https?:\/\/([^\/]*\.)?ring4tel\.com -https?:\/\/([^\/]*\.)?ringg\.info -https?:\/\/([^\/]*\.)?ringtones-4phone\.com -https?:\/\/([^\/]*\.)?ringtones-dir\.com -https?:\/\/([^\/]*\.)?ringtones-dir\.net -https?:\/\/([^\/]*\.)?ringtones-for-a-samsungtwt\.blogspot\.com -https?:\/\/([^\/]*\.)?ringtones-rate\.com -https?:\/\/([^\/]*\.)?ringtones\.blogharbor\.com -https?:\/\/([^\/]*\.)?ringts\.269g\.net -https?:\/\/([^\/]*\.)?risajno\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?risque-sexy-plus-size-lingerie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?rit\.edu -https?:\/\/([^\/]*\.)?ritalin-without-prescription\.contact\.cc -https?:\/\/([^\/]*\.)?ritalin\.myvnc\.com -https?:\/\/([^\/]*\.)?river-road-motorcycle-boot\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?river\.greatfreehosting\.com -https?:\/\/([^\/]*\.)?rivotril\.int\.tf -https?:\/\/([^\/]*\.)?rm-ast-pants\.blogspot\.com -https?:\/\/([^\/]*\.)?rmsq9\.szm\.sk -https?:\/\/([^\/]*\.)?rmuuur3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rndk1\.szm\.sk -https?:\/\/([^\/]*\.)?rnmg6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ro-westin\.blogspot\.com -https?:\/\/([^\/]*\.)?robotqueen\.250free\.com -https?:\/\/([^\/]*\.)?rochili\.alkablog\.com -https?:\/\/([^\/]*\.)?rodar6or6\.dl\.pl -https?:\/\/([^\/]*\.)?rodvww7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rogetou\.dl\.pl -https?:\/\/([^\/]*\.)?rojeracr\.forumzen\.com -https?:\/\/([^\/]*\.)?roketplanet\.weedns\.com -https?:\/\/([^\/]*\.)?rokminric\.dynamicbb\.com -https?:\/\/([^\/]*\.)?rokzecdok\.dynamicbb\.com -https?:\/\/([^\/]*\.)?rolccna\.dl\.pl -https?:\/\/([^\/]*\.)?rolcnac\.td\.pl -https?:\/\/([^\/]*\.)?rolex\.heberg-forum\.net -https?:\/\/([^\/]*\.)?rolexreplica\.269g\.net -https?:\/\/([^\/]*\.)?rolica\.blogcu\.com -https?:\/\/([^\/]*\.)?rollaolo\.blogcu\.com -https?:\/\/([^\/]*\.)?rollatobas\.naturalforum\.net -https?:\/\/([^\/]*\.)?rolracboc\.bb-fr\.com -https?:\/\/([^\/]*\.)?roltrsit\.bbfr\.net -https?:\/\/([^\/]*\.)?rom\.dl\.pl -https?:\/\/([^\/]*\.)?romahotel\.org -https?:\/\/([^\/]*\.)?romandie\.com -https?:\/\/([^\/]*\.)?romanticmaui\.net -https?:\/\/([^\/]*\.)?room-house\.jeepsyc\.be -https?:\/\/([^\/]*\.)?root\.dns\.bz -https?:\/\/([^\/]*\.)?roouvar\.dl\.pl -https?:\/\/([^\/]*\.)?roricdom\.lightbb\.com -https?:\/\/([^\/]*\.)?roseofgold52\.50webs\.com -https?:\/\/([^\/]*\.)?rotl\.info -https?:\/\/([^\/]*\.)?rotrocrol\.darkbb\.com -https?:\/\/([^\/]*\.)?roundandbrown-com-bkb03g0hi\.blogspot\.com -https?:\/\/([^\/]*\.)?roundandbrown-com-kp04\.blogspot\.com -https?:\/\/([^\/]*\.)?roundandbrown-com-wqzj337l\.blogspot\.com -https?:\/\/([^\/]*\.)?roundandbrown-com-wus56c\.blogspot\.com -https?:\/\/([^\/]*\.)?routan\.org -https?:\/\/([^\/]*\.)?roxyobsessed7\.blogspot\.com -https?:\/\/([^\/]*\.)?rphqj\.szm\.sk -https?:\/\/([^\/]*\.)?rqhdnj4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rqpwn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rrefr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rrgr4\.fr33webhost\.com -https?:\/\/([^\/]*\.)?rrlive\.info -https?:\/\/([^\/]*\.)?rrsfmw7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rseo7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?rshu2\.szm\.sk -https?:\/\/([^\/]*\.)?rsmy8\.szm\.sk -https?:\/\/([^\/]*\.)?rthl0\.fr33webhost\.com -https?:\/\/([^\/]*\.)?rtugwoy\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ruanjian\.cwrjcn\.com -https?:\/\/([^\/]*\.)?rucowdena\.ifrance\.com -https?:\/\/([^\/]*\.)?rudecomputing\.com -https?:\/\/([^\/]*\.)?rudu-adam\.blogspot\.com -https?:\/\/([^\/]*\.)?ruimingwei\.com\.cn -https?:\/\/([^\/]*\.)?rulurbuc\.forumzen\.com -https?:\/\/([^\/]*\.)?runutr\.forumzen\.com -https?:\/\/([^\/]*\.)?russiannudesgirlszxa\.blogspot\.com -https?:\/\/([^\/]*\.)?russiapreteen\.com -https?:\/\/([^\/]*\.)?russiavista\.sitiasp\.it -https?:\/\/([^\/]*\.)?rwfe5\.szm\.sk -https?:\/\/([^\/]*\.)?rxdate\.net -https?:\/\/([^\/]*\.)?rxdfh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ryehfpz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ryhgsb\.com -https?:\/\/([^\/]*\.)?ryryj\.szm\.sk -https?:\/\/([^\/]*\.)?ryu-jounetsu\.blogspot\.com -https?:\/\/([^\/]*\.)?rzwj8\.szm\.sk -https?:\/\/([^\/]*\.)?s-r-free-porn-movie-clip-x\.blogspot\.com -https?:\/\/([^\/]*\.)?s1xbucksamonkey\.blogspot\.com -https?:\/\/([^\/]*\.)?s32\.bilsay\.com -https?:\/\/([^\/]*\.)?saaaaa\.52blog\.net -https?:\/\/([^\/]*\.)?safety-product\.hotmail\.ru -https?:\/\/([^\/]*\.)?safety-product\.pochta\.ru -https?:\/\/([^\/]*\.)?safety_product\.chat\.ru -https?:\/\/([^\/]*\.)?sahezzz\.blogspot\.com -https?:\/\/([^\/]*\.)?saibon\.com\.cn -https?:\/\/([^\/]*\.)?sakura-watanuki\.blogspot\.com -https?:\/\/([^\/]*\.)?salewroughtiron\.cn -https?:\/\/([^\/]*\.)?sample-porn-clip-newst1x\.blogspot\.com -https?:\/\/([^\/]*\.)?sample-porn-clip-zoneapa\.blogspot\.com -https?:\/\/([^\/]*\.)?samsung-ringtonedta\.blogspot\.com -https?:\/\/([^\/]*\.)?sand-stars\.blogspot\.com -https?:\/\/([^\/]*\.)?sandra-teen-model-qux\.blogspot\.com -https?:\/\/([^\/]*\.)?sangrandy\.com -https?:\/\/([^\/]*\.)?sanhy\.com -https?:\/\/([^\/]*\.)?sanpaulo\.flnet\.org -https?:\/\/([^\/]*\.)?santjhon\.php5\.cz -https?:\/\/([^\/]*\.)?sapphiceroticacom\.klose\.ipupdater\.com -https?:\/\/([^\/]*\.)?sapphicparadise-com-r00asy\.blogspot\.com -https?:\/\/([^\/]*\.)?sarobo\.com -https?:\/\/([^\/]*\.)?satellite-tv\.hotmail\.ru -https?:\/\/([^\/]*\.)?sauna-eq\.boom\.ru -https?:\/\/([^\/]*\.)?sauna-heater\.boom\.ru -https?:\/\/([^\/]*\.)?sauna-kit\.boom\.ru -https?:\/\/([^\/]*\.)?sauna-room\.boom\.ru -https?:\/\/([^\/]*\.)?saunaguide\.org -https?:\/\/([^\/]*\.)?save-on-auto-insurance\.info -https?:\/\/([^\/]*\.)?saved\.ddns\.info -https?:\/\/([^\/]*\.)?sbarzn3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?scanthenet\.com -https?:\/\/([^\/]*\.)?scat-fetish-story\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?school-driving\.info -https?:\/\/([^\/]*\.)?school-girl-butt\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?school2home\.chat\.ru -https?:\/\/([^\/]*\.)?sciensezero\.republika\.pl -https?:\/\/([^\/]*\.)?scnh6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?scooter11\.chat\.ru -https?:\/\/([^\/]*\.)?scooter2\.hotmail\.ru -https?:\/\/([^\/]*\.)?screwedupmovies-com-a5wj\.blogspot\.com -https?:\/\/([^\/]*\.)?screwedupmovies-com-ax\.blogspot\.com -https?:\/\/([^\/]*\.)?scripts-cert\.mit\.edu -https?:\/\/([^\/]*\.)?scscj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sdao7\.szm\.sk -https?:\/\/([^\/]*\.)?sdfr0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sdfsfssss\.com -https?:\/\/([^\/]*\.)?se4u\.net -https?:\/\/([^\/]*\.)?seafordmed\.info -https?:\/\/([^\/]*\.)?seainsurancegroup\.info -https?:\/\/([^\/]*\.)?search4sex\.us -https?:\/\/([^\/]*\.)?searchbigtits-com-apxd1hwatd\.blogspot\.com -https?:\/\/([^\/]*\.)?searchbigtits-com-obraj\.blogspot\.com -https?:\/\/([^\/]*\.)?searcheng\.com -https?:\/\/([^\/]*\.)?searcheon\.com -https?:\/\/([^\/]*\.)?searchgalleries-com-i7\.blogspot\.com -https?:\/\/([^\/]*\.)?searchgalleries-com-ib2bi6on5\.blogspot\.com -https?:\/\/([^\/]*\.)?searchgals-com-gu1810j\.blogspot\.com -https?:\/\/([^\/]*\.)?searcholdies-com-msa\.blogspot\.com -https?:\/\/([^\/]*\.)?searchsuperhit\.com -https?:\/\/([^\/]*\.)?searchvids-com-h47g8mf\.blogspot\.com -https?:\/\/([^\/]*\.)?seasonale\.1\.p2l\.info -https?:\/\/([^\/]*\.)?secure-network\.info -https?:\/\/([^\/]*\.)?seeallhomes\.com -https?:\/\/([^\/]*\.)?seeallnatural\.com -https?:\/\/([^\/]*\.)?seeallsite\.com -https?:\/\/([^\/]*\.)?seecomplete\.com -https?:\/\/([^\/]*\.)?seehersquirt-com-k0\.blogspot\.com -https?:\/\/([^\/]*\.)?seehersquirt-com-k3\.blogspot\.com -https?:\/\/([^\/]*\.)?seekcounty\.com -https?:\/\/([^\/]*\.)?seeyo\.info -https?:\/\/([^\/]*\.)?segbqj1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sege-addison\.blogspot\.com -https?:\/\/([^\/]*\.)?seho-aiyana\.blogspot\.com -https?:\/\/([^\/]*\.)?sekapad\.info -https?:\/\/([^\/]*\.)?sekbad\.info -https?:\/\/([^\/]*\.)?selfbuying\.com -https?:\/\/([^\/]*\.)?semarqua\.dl\.pl -https?:\/\/([^\/]*\.)?senapier\.dl\.pl -https?:\/\/([^\/]*\.)?send-flowers\.acb\.pl -https?:\/\/([^\/]*\.)?sendon\.net\.cn -https?:\/\/([^\/]*\.)?senlu\.com -https?:\/\/([^\/]*\.)?sensorscity\.marshall\.edu -https?:\/\/([^\/]*\.)?seo\.ohsu\.edu -https?:\/\/([^\/]*\.)?seo88\.com -https?:\/\/([^\/]*\.)?seomdahi\.jconserv\.net -https?:\/\/([^\/]*\.)?seozone\.net -https?:\/\/([^\/]*\.)?seranton\.blogspot\.com -https?:\/\/([^\/]*\.)?sercheng\.com -https?:\/\/([^\/]*\.)?serchlid\.com -https?:\/\/([^\/]*\.)?serious-skin\.boom\.ru -https?:\/\/([^\/]*\.)?serts\.blogshot\.nl -https?:\/\/([^\/]*\.)?servemp3\.com -https?:\/\/([^\/]*\.)?serversolutions\.us -https?:\/\/([^\/]*\.)?servitch\.com -https?:\/\/([^\/]*\.)?ses1\.info -https?:\/\/([^\/]*\.)?sestrenish\.biografi\.org -https?:\/\/([^\/]*\.)?setara\.dl\.pl -https?:\/\/([^\/]*\.)?seventeenlive-com-bado3i\.blogspot\.com -https?:\/\/([^\/]*\.)?seventeenlive-com-bmg\.blogspot\.com -https?:\/\/([^\/]*\.)?seventeenlive-com-h4dw652dzl\.blogspot\.com -https?:\/\/([^\/]*\.)?severnfollow\.info -https?:\/\/([^\/]*\.)?sevtentoe\.blogspot\.com -https?:\/\/([^\/]*\.)?sewingmachinesusa\.com -https?:\/\/([^\/]*\.)?sex--x\.com -https?:\/\/([^\/]*\.)?sex-clip-ce872\.blogspot\.com -https?:\/\/([^\/]*\.)?sex-dating\.sexnation\.info -https?:\/\/([^\/]*\.)?sex-movie-e8qbm\.blogspot\.com -https?:\/\/([^\/]*\.)?sex-movie-qig\.blogspot\.com -https?:\/\/([^\/]*\.)?sex-video-clip-haq3r\.blogspot\.com -https?:\/\/([^\/]*\.)?sex-video-juz\.blogspot\.com -https?:\/\/([^\/]*\.)?sex-without-condom\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?sex-woman-only-fuck\.protime\.in\.ua -https?:\/\/([^\/]*\.)?sex-xxx-free\.100freemb\.com -https?:\/\/([^\/]*\.)?sex\.yeahost\.com -https?:\/\/([^\/]*\.)?sex1movie\.blogspot\.com -https?:\/\/([^\/]*\.)?sexadultdating\.com -https?:\/\/([^\/]*\.)?sexape-bpb0\.blogspot\.com -https?:\/\/([^\/]*\.)?sexape-com-chdaj7\.blogspot\.com -https?:\/\/([^\/]*\.)?sexape-com-cz4z44iud3\.blogspot\.com -https?:\/\/([^\/]*\.)?sexape-com-kw7623jxvd\.blogspot\.com -https?:\/\/([^\/]*\.)?sexape-com-qipil\.blogspot\.com -https?:\/\/([^\/]*\.)?sexape-mte7jm\.blogspot\.com -https?:\/\/([^\/]*\.)?sexdirectory-com-tbt0\.blogspot\.com -https?:\/\/([^\/]*\.)?sexegirls\.net -https?:\/\/([^\/]*\.)?sexgrannies-com-d17v0sa\.blogspot\.com -https?:\/\/([^\/]*\.)?sexgrannies-com-dvg3lh0\.blogspot\.com -https?:\/\/([^\/]*\.)?sexmaxx-com-w2aoe7q\.blogspot\.com -https?:\/\/([^\/]*\.)?sexmaxx-com-w7\.blogspot\.com -https?:\/\/([^\/]*\.)?sexmaxx-com-wy23e2588\.blogspot\.com -https?:\/\/([^\/]*\.)?sexmaxx-kvhilzx76\.blogspot\.com -https?:\/\/([^\/]*\.)?sexnemo-com-joxud\.blogspot\.com -https?:\/\/([^\/]*\.)?sexnemo-com-r7iv5\.blogspot\.com -https?:\/\/([^\/]*\.)?sexnemo-com-rpj18ot\.blogspot\.com -https?:\/\/([^\/]*\.)?sexo-anal-teen\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?sexoasis-a00r68ac\.blogspot\.com -https?:\/\/([^\/]*\.)?sexoasis-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?sexoasis-hkz6z4fmr6\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-com-e2zci5\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-com-ew426c7qej\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-com-itvux\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-com-r6fjn1dz\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean-ibf53b\.blogspot\.com -https?:\/\/([^\/]*\.)?sexocean000\.blogspot\.com -https?:\/\/([^\/]*\.)?sexy-ass-and-leg\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?sexy-blonde-big-tit\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?sexy-busty-hot\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?sexy-knee-high-boot\.protime\.in\.ua -https?:\/\/([^\/]*\.)?sexy-leg-xxx\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?sexy-lesbian-having-sex\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?sexy-models-net-g13hqljr0\.blogspot\.com -https?:\/\/([^\/]*\.)?sexy-teacher\.net -https?:\/\/([^\/]*\.)?sexy\.dastish\.org -https?:\/\/([^\/]*\.)?sexyst\.info -https?:\/\/([^\/]*\.)?sfjo7\.szm\.sk -https?:\/\/([^\/]*\.)?sftic\.szm\.sk -https?:\/\/([^\/]*\.)?sfzone\.cn -https?:\/\/([^\/]*\.)?sgkr3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?shaffelrecords\.com -https?:\/\/([^\/]*\.)?shahang\.net -https?:\/\/([^\/]*\.)?shakira-pa3t\.blogspot\.com -https?:\/\/([^\/]*\.)?shakirafortner\.hostingweb\.us -https?:\/\/([^\/]*\.)?shampoo\.moistri\.be -https?:\/\/([^\/]*\.)?shavedgoat-com-hlfai1dvfb\.blogspot\.com -https?:\/\/([^\/]*\.)?shbuscenter\.com -https?:\/\/([^\/]*\.)?shcarcenter\.com -https?:\/\/([^\/]*\.)?shdianjiang\.cn -https?:\/\/([^\/]*\.)?sheji\.paim123\.com -https?:\/\/([^\/]*\.)?shemale-action\.net -https?:\/\/([^\/]*\.)?shemale-ebony-fuck\.protime\.in\.ua -https?:\/\/([^\/]*\.)?shemale-fuck-guys-com\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?shemale-no-cock\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?shemalefuckguy\.isabel\.dtdns\.net -https?:\/\/([^\/]*\.)?shemales\.coz\.in -https?:\/\/([^\/]*\.)?shemp-com-k1yng8\.blogspot\.com -https?:\/\/([^\/]*\.)?shemp-com-kcutd\.blogspot\.com -https?:\/\/([^\/]*\.)?shemp-com-zuhig\.blogspot\.com -https?:\/\/([^\/]*\.)?shenzhenjp\.com -https?:\/\/([^\/]*\.)?shesexy-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy-com-i1xf\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy-com-rugok\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy-com-w0dffbvzz\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy-gogub\.blogspot\.com -https?:\/\/([^\/]*\.)?shesexy000\.blogspot\.com -https?:\/\/([^\/]*\.)?shetelel\.jconserv\.net -https?:\/\/([^\/]*\.)?shexpo2010\.com -https?:\/\/([^\/]*\.)?shijiren\.com -https?:\/\/([^\/]*\.)?shinylights\.org -https?:\/\/([^\/]*\.)?shipeng\.net -https?:\/\/([^\/]*\.)?shmoorge\.tripod\.com -https?:\/\/([^\/]*\.)?shoesnike\.cn -https?:\/\/([^\/]*\.)?shoesorder\.biz -https?:\/\/([^\/]*\.)?shoesshop\.biz -https?:\/\/([^\/]*\.)?shop24x7\.net -https?:\/\/([^\/]*\.)?short-porn-clip-news8rj\.blogspot\.com -https?:\/\/([^\/]*\.)?shoujicaixin\.com -https?:\/\/([^\/]*\.)?shplaycenter\.cn -https?:\/\/([^\/]*\.)?shredder-4paper\.boom\.ru -https?:\/\/([^\/]*\.)?shredder-paper\.boom\.ru -https?:\/\/([^\/]*\.)?shredder\.boom\.ru -https?:\/\/([^\/]*\.)?shredder4paper\.chat\.ru -https?:\/\/([^\/]*\.)?shrentcar\.com -https?:\/\/([^\/]*\.)?shrudant\.jconserv\.net -https?:\/\/([^\/]*\.)?shticketcenter\.com -https?:\/\/([^\/]*\.)?shtiklmiaou\.fizwig\.com -https?:\/\/([^\/]*\.)?shtranslate\.com -https?:\/\/([^\/]*\.)?shufflequince\.org -https?:\/\/([^\/]*\.)?siamforum\.com -https?:\/\/([^\/]*\.)?siek2\.szm\.sk -https?:\/\/([^\/]*\.)?sifa600\.com -https?:\/\/([^\/]*\.)?sigla-cartoni-animati\.19mb\.info -https?:\/\/([^\/]*\.)?sijalik\.blogspot\.com -https?:\/\/([^\/]*\.)?sik-sapphicparadise-com\.blogspot\.com -https?:\/\/([^\/]*\.)?sildenafil-citrate\.perso\.tc -https?:\/\/([^\/]*\.)?siliconpulse\.info -https?:\/\/([^\/]*\.)?silly-n\.blogspot\.com -https?:\/\/([^\/]*\.)?simply-gamine\.hostingweb\.us -https?:\/\/([^\/]*\.)?simtershrapnel\.blogspot\.com -https?:\/\/([^\/]*\.)?sinbiom\.blogspot\.com -https?:\/\/([^\/]*\.)?sindyhalliday\.com -https?:\/\/([^\/]*\.)?sinequanwithdrawal\.sblog\.cz -https?:\/\/([^\/]*\.)?sineto\.net -https?:\/\/([^\/]*\.)?sinfulcurves-com-obh\.blogspot\.com -https?:\/\/([^\/]*\.)?singova\.org -https?:\/\/([^\/]*\.)?siq-xxlmovies-com\.blogspot\.com -https?:\/\/([^\/]*\.)?sirloincentury\.org -https?:\/\/([^\/]*\.)?sisus\.org -https?:\/\/([^\/]*\.)?sitacsit\.goodforum\.net -https?:\/\/([^\/]*\.)?sitacsit\.grafbb\.com -https?:\/\/([^\/]*\.)?sitchi-or\.xa\.pl -https?:\/\/([^\/]*\.)?sitdelcna\.lightbb\.com -https?:\/\/([^\/]*\.)?sitdelta\.jc\.pl -https?:\/\/([^\/]*\.)?sitdeltroc\.bbfr\.net -https?:\/\/([^\/]*\.)?site\.voila\.fr -https?:\/\/([^\/]*\.)?siteapts\.info -https?:\/\/([^\/]*\.)?sitedating\.org -https?:\/\/([^\/]*\.)?sitel\.goodforum\.net -https?:\/\/([^\/]*\.)?sitel\.grafbb\.com -https?:\/\/([^\/]*\.)?sitladar\.dl\.pl -https?:\/\/([^\/]*\.)?sitorsit\.discutfree\.com -https?:\/\/([^\/]*\.)?sittazel\.bb-fr\.com -https?:\/\/([^\/]*\.)?sj-qh\.com -https?:\/\/([^\/]*\.)?sjzwz\.com -https?:\/\/([^\/]*\.)?skbrql5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?skelaxin\.1\.p2l\.info -https?:\/\/([^\/]*\.)?skelaxin800mg\.sblog\.cz -https?:\/\/([^\/]*\.)?skin-care-tip\.boom\.ru -https?:\/\/([^\/]*\.)?skin-care\.1\.p2l\.info -https?:\/\/([^\/]*\.)?skin-diseas\.boom\.ru -https?:\/\/([^\/]*\.)?skin-disease\.boom\.ru -https?:\/\/([^\/]*\.)?skin-disease\.fromru\.com -https?:\/\/([^\/]*\.)?skin-disease\.newmail\.ru -https?:\/\/([^\/]*\.)?skin-product\.hotmail\.ru -https?:\/\/([^\/]*\.)?skin-treat\.boom\.ru -https?:\/\/([^\/]*\.)?skin-treatm\.boom\.ru -https?:\/\/([^\/]*\.)?skin-treatment\.boom\.ru -https?:\/\/([^\/]*\.)?skin-trt\.boom\.ru -https?:\/\/([^\/]*\.)?skin1-disease\.boom\.ru -https?:\/\/([^\/]*\.)?skin1disease\.chat\.ru -https?:\/\/([^\/]*\.)?skin1tip4care\.chat\.ru -https?:\/\/([^\/]*\.)?skin1treatment\.chat\.ru -https?:\/\/([^\/]*\.)?skin_product\.chat\.ru -https?:\/\/([^\/]*\.)?skincare\.ixdm\.info -https?:\/\/([^\/]*\.)?skodasite\.info -https?:\/\/([^\/]*\.)?skvonk\.blogspot\.com -https?:\/\/([^\/]*\.)?skvvdm2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sleep-aids\.1\.p2l\.info -https?:\/\/([^\/]*\.)?sleepingsex\.coz\.in -https?:\/\/([^\/]*\.)?slickgalleries-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?slickgalleries-com-acf4a01s86\.blogspot\.com -https?:\/\/([^\/]*\.)?slots-wiki\.com -https?:\/\/([^\/]*\.)?slutsvideos-com-mwnyvb2\.blogspot\.com -https?:\/\/([^\/]*\.)?smack-dvd\.mutogen\.be -https?:\/\/([^\/]*\.)?smackinghotlips\.blogspot\.com -https?:\/\/([^\/]*\.)?smal\.php5\.cz -https?:\/\/([^\/]*\.)?small-bubble-butt\.protime\.in\.ua -https?:\/\/([^\/]*\.)?smart\.45\.kg -https?:\/\/([^\/]*\.)?smbay\.cn -https?:\/\/([^\/]*\.)?smithtownelementarypta\.org -https?:\/\/([^\/]*\.)?smkpe\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?smlwqj2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?smnvapnd-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?smolyak\.isuisse\.com -https?:\/\/([^\/]*\.)?sms\.bjicp\.net -https?:\/\/([^\/]*\.)?smsdown\.blogbus\.com -https?:\/\/([^\/]*\.)?smut-house-com-c6t8hcv1be\.blogspot\.com -https?:\/\/([^\/]*\.)?smutgremlins-com-a46sull\.blogspot\.com -https?:\/\/([^\/]*\.)?smutgremlins-com-w6d7m6ji\.blogspot\.com -https?:\/\/([^\/]*\.)?smutmaestro\.net -https?:\/\/([^\/]*\.)?snafusurfer\.net -https?:\/\/([^\/]*\.)?snakesworld-com-bye\.blogspot\.com -https?:\/\/([^\/]*\.)?sneakercool\.com -https?:\/\/([^\/]*\.)?sneakernice\.com -https?:\/\/([^\/]*\.)?sneck\.info -https?:\/\/([^\/]*\.)?snkfbl1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?snmcq\.szm\.sk -https?:\/\/([^\/]*\.)?snorting-ritalin\.contact\.cc -https?:\/\/([^\/]*\.)?snymk\.szm\.sk -https?:\/\/([^\/]*\.)?so-big-tit-video-clip-kos\.blogspot\.com -https?:\/\/([^\/]*\.)?so-home-sex-clip-god\.blogspot\.com -https?:\/\/([^\/]*\.)?so-so-young-com-kk727o82n\.blogspot\.com -https?:\/\/([^\/]*\.)?so1di\.info -https?:\/\/([^\/]*\.)?soafacil\.com -https?:\/\/([^\/]*\.)?socalmovies-com-enr61t\.blogspot\.com -https?:\/\/([^\/]*\.)?socalmovies-com-oy08pp72i\.blogspot\.com -https?:\/\/([^\/]*\.)?soccer-mom-sticker\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?socialsciencedeg\.chat\.ru -https?:\/\/([^\/]*\.)?socsci\.mccneb\.edu -https?:\/\/([^\/]*\.)?sodo0\.szm\.sk -https?:\/\/([^\/]*\.)?sofiefie\.blogspot\.com -https?:\/\/([^\/]*\.)?soft17-com-d1577f\.blogspot\.com -https?:\/\/([^\/]*\.)?softcore-erotica\.net -https?:\/\/([^\/]*\.)?software-engine\.org -https?:\/\/([^\/]*\.)?softwarematrix\.org -https?:\/\/([^\/]*\.)?sohardcore-com-r56bt\.blogspot\.com -https?:\/\/([^\/]*\.)?soho0\.szm\.sk -https?:\/\/([^\/]*\.)?solacemysoul\.blogspot\.com -https?:\/\/([^\/]*\.)?solder\.lowestprices\.at -https?:\/\/([^\/]*\.)?soler\.net\.cn -https?:\/\/([^\/]*\.)?sologals-com-hs2xad\.blogspot\.com -https?:\/\/([^\/]*\.)?sologals-grr5g3\.blogspot\.com -https?:\/\/([^\/]*\.)?soma\.1\.p2l\.info -https?:\/\/([^\/]*\.)?soma\.homelinux\.com -https?:\/\/([^\/]*\.)?soma\.int\.tf -https?:\/\/([^\/]*\.)?soma\.php5\.cz -https?:\/\/([^\/]*\.)?soma1\.skocz\.net -https?:\/\/([^\/]*\.)?someshit\.ru -https?:\/\/([^\/]*\.)?somqyxli-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?sonata\.1\.p2l\.info -https?:\/\/([^\/]*\.)?sonr4\.fr33webhost\.com -https?:\/\/([^\/]*\.)?sotremont\.ru -https?:\/\/([^\/]*\.)?soulswallo\.blogspot\.com -https?:\/\/([^\/]*\.)?soundandmossl\.com -https?:\/\/([^\/]*\.)?southcarolinamortgage-x\.com -https?:\/\/([^\/]*\.)?southdakotamortgage-x\.com -https?:\/\/([^\/]*\.)?southtecrepair\.com -https?:\/\/([^\/]*\.)?spacedim68\.blogspot\.com -https?:\/\/([^\/]*\.)?spamim\.net -https?:\/\/([^\/]*\.)?spawww\.info -https?:\/\/([^\/]*\.)?spcw3\.szm\.sk -https?:\/\/([^\/]*\.)?special-ringtones\.net -https?:\/\/([^\/]*\.)?specific911\.biz -https?:\/\/([^\/]*\.)?specific911\.org -https?:\/\/([^\/]*\.)?speed-casino\.com -https?:\/\/([^\/]*\.)?speens\.pass\.as -https?:\/\/([^\/]*\.)?spermicide-trojan-condom\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?spermshack-al\.blogspot\.com -https?:\/\/([^\/]*\.)?spermshack-com-bef\.blogspot\.com -https?:\/\/([^\/]*\.)?spermshack-com-gee1\.blogspot\.com -https?:\/\/([^\/]*\.)?spermshack-com-gtafrogps\.blogspot\.com -https?:\/\/([^\/]*\.)?spermshack-g01u1\.blogspot\.com -https?:\/\/([^\/]*\.)?spewie-com-mbntjlrkk\.blogspot\.com -https?:\/\/([^\/]*\.)?spfwq\.zhengstar\.com -https?:\/\/([^\/]*\.)?spice-girlpkg\.blogspot\.com -https?:\/\/([^\/]*\.)?spirit-of-llama\.blogspot\.com -https?:\/\/([^\/]*\.)?spirit-psyki\.ifrance\.com -https?:\/\/([^\/]*\.)?spiserch\.com -https?:\/\/([^\/]*\.)?splashka\.xhostar\.com -https?:\/\/([^\/]*\.)?splendid-casino\.com -https?:\/\/([^\/]*\.)?spoilzone\.epinoy\.com -https?:\/\/([^\/]*\.)?spqi6\.fr33webhost\.com -https?:\/\/([^\/]*\.)?sprint-ringtonenot\.blogspot\.com -https?:\/\/([^\/]*\.)?sprintringtonesxvt\.blogspot\.com -https?:\/\/([^\/]*\.)?sprintringtoneuad\.blogspot\.com -https?:\/\/([^\/]*\.)?spstestfree\.com\.com -https?:\/\/([^\/]*\.)?spunkmonster\.net -https?:\/\/([^\/]*\.)?spwnk\.szm\.sk -https?:\/\/([^\/]*\.)?spxqly9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?spyware-adware-killer\.com -https?:\/\/([^\/]*\.)?sqoi8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?squall\.my10gb\.com -https?:\/\/([^\/]*\.)?sqvde\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sralua\.com -https?:\/\/([^\/]*\.)?srarware\.com -https?:\/\/([^\/]*\.)?srkyyca\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?srtongje\.republika\.pl -https?:\/\/([^\/]*\.)?sruqsz3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ssdcard\.info -https?:\/\/([^\/]*\.)?sslive\.info -https?:\/\/([^\/]*\.)?sspwye7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sswingersss-777\.tripod\.com -https?:\/\/([^\/]*\.)?st-pharmacy\.com -https?:\/\/([^\/]*\.)?staa8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?staff\.jccc\.edu -https?:\/\/([^\/]*\.)?stainlesssteelpipe\.net -https?:\/\/([^\/]*\.)?stampa-foto-digitale\.ll11\.info -https?:\/\/([^\/]*\.)?starcelebs-com-ewe5\.blogspot\.com -https?:\/\/([^\/]*\.)?starcelebs-com-i3a2mxf\.blogspot\.com -https?:\/\/([^\/]*\.)?starcelebs-wihuk\.blogspot\.com -https?:\/\/([^\/]*\.)?starryland\.com\.cn -https?:\/\/([^\/]*\.)?startchicks\.info -https?:\/\/([^\/]*\.)?state-gay-marriage-legal\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?state-of-germany\.com -https?:\/\/([^\/]*\.)?statisticpal\.com -https?:\/\/([^\/]*\.)?stcc9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?steeen-s-bl\.blogspot\.com -https?:\/\/([^\/]*\.)?steel-table-leg\.medved\.od\.ua -https?:\/\/([^\/]*\.)?stocking-fetish-video\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?stocking-movies-com-du1\.blogspot\.com -https?:\/\/([^\/]*\.)?stocking-tease-b7gl\.blogspot\.com -https?:\/\/([^\/]*\.)?stocking-tease-com-bm6h145g\.blogspot\.com -https?:\/\/([^\/]*\.)?stockings\.coz\.in -https?:\/\/([^\/]*\.)?stop-smoking\.1\.p2l\.info -https?:\/\/([^\/]*\.)?stpetersburg\.it -https?:\/\/([^\/]*\.)?stphipps\.dl\.pl -https?:\/\/([^\/]*\.)?strakac\.dtdns\.net -https?:\/\/([^\/]*\.)?strange-bizarre-things\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?stranieriinitalia\.org -https?:\/\/([^\/]*\.)?straponpost\.net -https?:\/\/([^\/]*\.)?street-poker\.com -https?:\/\/([^\/]*\.)?streetmp3\.com -https?:\/\/([^\/]*\.)?strega\.us -https?:\/\/([^\/]*\.)?strip-tease-video-bb-bb-z\.blogspot\.com -https?:\/\/([^\/]*\.)?strongsong\.republika\.pl -https?:\/\/([^\/]*\.)?structure-settlement\.hotmail\.ru -https?:\/\/([^\/]*\.)?sts\.ucsd\.edu -https?:\/\/([^\/]*\.)?students\.hsc\.unt\.edu -https?:\/\/([^\/]*\.)?study-us\.cn -https?:\/\/([^\/]*\.)?stvincent\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?stydx\.szm\.sk -https?:\/\/([^\/]*\.)?sublimedirectory-com-otb\.blogspot\.com -https?:\/\/([^\/]*\.)?sublimemovies-com-wdvh2wmm3\.blogspot\.com -https?:\/\/([^\/]*\.)?sublimepie-com-e8g3dw2\.blogspot\.com -https?:\/\/([^\/]*\.)?sudanportal\.mrcc\.aast\.edu -https?:\/\/([^\/]*\.)?suede-cowboy-boot\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?suicidexlove\.blogspot\.com -https?:\/\/([^\/]*\.)?sumeshi0206\.dyndns\.org -https?:\/\/([^\/]*\.)?sunaseth\.blogspot\.com -https?:\/\/([^\/]*\.)?sunp\.com -https?:\/\/([^\/]*\.)?sunporno-com-avbxn\.blogspot\.com -https?:\/\/([^\/]*\.)?sunporno-com-go5\.blogspot\.com -https?:\/\/([^\/]*\.)?sunsetdreamscondo\.com -https?:\/\/([^\/]*\.)?sunsky365\.net -https?:\/\/([^\/]*\.)?superadultdirect\.info -https?:\/\/([^\/]*\.)?supercalcinhas-com-rij\.blogspot\.com -https?:\/\/([^\/]*\.)?superdiosas-com-tm5k7f1v3\.blogspot\.com -https?:\/\/([^\/]*\.)?superfinancesolutions\.com -https?:\/\/([^\/]*\.)?supergirls\.pochta\.ru -https?:\/\/([^\/]*\.)?superha\.angelcities\.com -https?:\/\/([^\/]*\.)?superinsuranceworld\.info -https?:\/\/([^\/]*\.)?superinternetexplorer\.info -https?:\/\/([^\/]*\.)?supershare\.cn -https?:\/\/([^\/]*\.)?suphost\.info -https?:\/\/([^\/]*\.)?supplements\.1\.p2l\.info -https?:\/\/([^\/]*\.)?supplements\.mylonso\.be -https?:\/\/([^\/]*\.)?supplierlist\.com -https?:\/\/([^\/]*\.)?surfacing\.101freehost\.com -https?:\/\/([^\/]*\.)?surmontil\.sblog\.cz -https?:\/\/([^\/]*\.)?suxwyj-free-porn\.blogspot\.com -https?:\/\/([^\/]*\.)?suzoro-amateur-sex-video\.blogspot\.com -https?:\/\/([^\/]*\.)?suzulan\.blogspot\.com -https?:\/\/([^\/]*\.)?svetys9i\.125mb\.com -https?:\/\/([^\/]*\.)?svike\.info -https?:\/\/([^\/]*\.)?swdella\.ifrance\.com -https?:\/\/([^\/]*\.)?swechat\.republika\.pl -https?:\/\/([^\/]*\.)?sweet-krissy\.babubi\.net -https?:\/\/([^\/]*\.)?sweetpniangel87\.blogspot\.com -https?:\/\/([^\/]*\.)?swingersadult\.net -https?:\/\/([^\/]*\.)?sx\.nazari\.org -https?:\/\/([^\/]*\.)?sx\.z0rz\.com -https?:\/\/([^\/]*\.)?sxwliwe\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?sy-casino\.com -https?:\/\/([^\/]*\.)?sygz\.51mp4mp3\.com -https?:\/\/([^\/]*\.)?sylvan-queen\.iespana\.es -https?:\/\/([^\/]*\.)?symphony\.8tt\.org -https?:\/\/([^\/]*\.)?symptom-of-allergic-reaction-to-latex-condom\.protime\.in\.ua -https?:\/\/([^\/]*\.)?symy\.jp -https?:\/\/([^\/]*\.)?synnin-viemaa\.blogspot\.com -https?:\/\/([^\/]*\.)?sz-cj\.com -https?:\/\/([^\/]*\.)?sz-dongtai\.com -https?:\/\/([^\/]*\.)?sz-tianyicn\.com -https?:\/\/([^\/]*\.)?sz4a\.cn -https?:\/\/([^\/]*\.)?szarts\.com -https?:\/\/([^\/]*\.)?szbeiyang\.net -https?:\/\/([^\/]*\.)?szhangkong\.com -https?:\/\/([^\/]*\.)?szhjc\.net -https?:\/\/([^\/]*\.)?szhowfine\.com -https?:\/\/([^\/]*\.)?szhx\.ebloggy\.com -https?:\/\/([^\/]*\.)?szhxseo\.com -https?:\/\/([^\/]*\.)?szjiuli\.com -https?:\/\/([^\/]*\.)?szjiuli\.ebloggy\.com -https?:\/\/([^\/]*\.)?szjpnet\.ebloggy\.com -https?:\/\/([^\/]*\.)?szjyhk\.com -https?:\/\/([^\/]*\.)?szlawyer\.home4u\.china\.com -https?:\/\/([^\/]*\.)?szlichuang\.cn -https?:\/\/([^\/]*\.)?szlszx\.com -https?:\/\/([^\/]*\.)?sznuts\.cn -https?:\/\/([^\/]*\.)?szpptc\.com -https?:\/\/([^\/]*\.)?szsc-car\.com -https?:\/\/([^\/]*\.)?szsfbq\.com -https?:\/\/([^\/]*\.)?szyongjin\.ebloggy\.com -https?:\/\/([^\/]*\.)?szzhuce\.home4u\.china\.com -https?:\/\/([^\/]*\.)?t-sonnaya\.blogspot\.com -https?:\/\/([^\/]*\.)?t-teens-for\.blogspot\.com -https?:\/\/([^\/]*\.)?t\.tl -https?:\/\/([^\/]*\.)?tabarlie\.forumzen\.com -https?:\/\/([^\/]*\.)?tabgand\.info -https?:\/\/([^\/]*\.)?tablitki\.xwiki\.com -https?:\/\/([^\/]*\.)?taboo-porn-clip-blogeq2\.blogspot\.com -https?:\/\/([^\/]*\.)?tackle\.247ihost\.com -https?:\/\/([^\/]*\.)?tacomanissansubaru\.info -https?:\/\/([^\/]*\.)?tactroc\.dl\.pl -https?:\/\/([^\/]*\.)?tadalafil-\.ql\.st -https?:\/\/([^\/]*\.)?tadalafil\.scanthenet\.com -https?:\/\/([^\/]*\.)?tadalafil\.skocz\.net -https?:\/\/([^\/]*\.)?tadalafil35\.lookscool\.com -https?:\/\/([^\/]*\.)?taefis\.com -https?:\/\/([^\/]*\.)?tagetboc\.darkbb\.com -https?:\/\/([^\/]*\.)?talj5\.szm\.sk -https?:\/\/([^\/]*\.)?tanoli\.su\.pl -https?:\/\/([^\/]*\.)?tanorol\.dl\.pl -https?:\/\/([^\/]*\.)?taouolo\.dl\.pl -https?:\/\/([^\/]*\.)?tapz3\.szm\.sk -https?:\/\/([^\/]*\.)?taracdom\.heavenforum\.com -https?:\/\/([^\/]*\.)?tarfol\.com -https?:\/\/([^\/]*\.)?target-oo6qbtx\.blogspot\.com -https?:\/\/([^\/]*\.)?taria-m4j\.blogspot\.com -https?:\/\/([^\/]*\.)?taricdam\.dynamicbb\.com -https?:\/\/([^\/]*\.)?tarkupu\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?taroelt\.bb-fr\.com -https?:\/\/([^\/]*\.)?tarra-i6vqa54v\.blogspot\.com -https?:\/\/([^\/]*\.)?tart0938\.blogspot\.com -https?:\/\/([^\/]*\.)?taryn-hgxikm27y\.blogspot\.com -https?:\/\/([^\/]*\.)?tarzuf\.com -https?:\/\/([^\/]*\.)?tasculio\.forumzen\.com -https?:\/\/([^\/]*\.)?tasha-rup0n3a\.blogspot\.com -https?:\/\/([^\/]*\.)?tashia-w1evjakk7\.blogspot\.com -https?:\/\/([^\/]*\.)?tasia-emtoy\.blogspot\.com -https?:\/\/([^\/]*\.)?tasimd\.com -https?:\/\/([^\/]*\.)?tasizuwann-tm7y\.blogspot\.com -https?:\/\/([^\/]*\.)?tasnin\.com -https?:\/\/([^\/]*\.)?tate-dt\.blogspot\.com -https?:\/\/([^\/]*\.)?tateyana-c8s1ms4ai\.blogspot\.com -https?:\/\/([^\/]*\.)?tateyona-br48\.blogspot\.com -https?:\/\/([^\/]*\.)?tatrocbas\.dl\.pl -https?:\/\/([^\/]*\.)?tatrocmon\.dl\.pl -https?:\/\/([^\/]*\.)?tattoo-ojqmc35d\.blogspot\.com -https?:\/\/([^\/]*\.)?tatum-mlzsfqw\.blogspot\.com -https?:\/\/([^\/]*\.)?tatumn-i4anj15\.blogspot\.com -https?:\/\/([^\/]*\.)?tatyiana-kwg0ud8fqf\.blogspot\.com -https?:\/\/([^\/]*\.)?tauntianna-h6\.blogspot\.com -https?:\/\/([^\/]*\.)?taurus-gx\.blogspot\.com -https?:\/\/([^\/]*\.)?tayamarn\.blogspot\.com -https?:\/\/([^\/]*\.)?taydem-wdm6rxd328\.blogspot\.com -https?:\/\/([^\/]*\.)?taydra-ejk45\.blogspot\.com -https?:\/\/([^\/]*\.)?tayla-t7b\.blogspot\.com -https?:\/\/([^\/]*\.)?tayler-cfez\.blogspot\.com -https?:\/\/([^\/]*\.)?taylor-bof5\.blogspot\.com -https?:\/\/([^\/]*\.)?taylorbow-com-il3f4ae\.blogspot\.com -https?:\/\/([^\/]*\.)?taylorbow-com-inbg2nw\.blogspot\.com -https?:\/\/([^\/]*\.)?taynafrates\.freetzi\.com -https?:\/\/([^\/]*\.)?taysha-avsm8\.blogspot\.com -https?:\/\/([^\/]*\.)?tazman-m6\.blogspot\.com -https?:\/\/([^\/]*\.)?tbgbnt5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tbns\.net -https?:\/\/([^\/]*\.)?tbrgxjv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tcsgn\.szm\.sk -https?:\/\/([^\/]*\.)?tczxwwz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tczxxm6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tdzkzkt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tdzl\.sunp\.com -https?:\/\/([^\/]*\.)?tea-imk7ry1\.blogspot\.com -https?:\/\/([^\/]*\.)?tea-pot\.keckins\.be -https?:\/\/([^\/]*\.)?teacher-fucking-free\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?teacher-km\.blogspot\.com -https?:\/\/([^\/]*\.)?teaching1degree\.chat\.ru -https?:\/\/([^\/]*\.)?teainfo\.org -https?:\/\/([^\/]*\.)?teamsquirt-com-kjcj3u3i\.blogspot\.com -https?:\/\/([^\/]*\.)?tear\.hostcroc\.com -https?:\/\/([^\/]*\.)?tech-txyvo8\.blogspot\.com -https?:\/\/([^\/]*\.)?tech\.china\.com -https?:\/\/([^\/]*\.)?techinpet\.blogspot\.com -https?:\/\/([^\/]*\.)?technical-school\.fromru\.com -https?:\/\/([^\/]*\.)?technical-school\.hotmail\.ru -https?:\/\/([^\/]*\.)?technical-school\.newmail\.ru -https?:\/\/([^\/]*\.)?technical1school\.chat\.ru -https?:\/\/([^\/]*\.)?teen-anal-cum-shot\.protime\.in\.ua -https?:\/\/([^\/]*\.)?teen-blonde-beauty\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?teen-blow-job-movie\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?teen-boob-fuck\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?teen-boob-porn\.medved\.od\.ua -https?:\/\/([^\/]*\.)?teen-buff\.net -https?:\/\/([^\/]*\.)?teen-chick-masturbating\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?teen-facial-fuck\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?teen-feet-bew\.blogspot\.com -https?:\/\/([^\/]*\.)?teen-internal-cum-shot\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?teen-kelly-lesbian\.medved\.od\.ua -https?:\/\/([^\/]*\.)?teen-movie\.freeinsite\.net -https?:\/\/([^\/]*\.)?teen-porn-clip-newsyk6\.blogspot\.com -https?:\/\/([^\/]*\.)?teen-sex-movie-f-d-t\.blogspot\.com -https?:\/\/([^\/]*\.)?teen-sex-video-w8jpk\.blogspot\.com -https?:\/\/([^\/]*\.)?teen-zips\.babubi\.net -https?:\/\/([^\/]*\.)?teen6\.vdforum\.ru -https?:\/\/([^\/]*\.)?teenax-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?teenax-com-pidoq\.blogspot\.com -https?:\/\/([^\/]*\.)?teenax-com-rh0ssu62yh\.blogspot\.com -https?:\/\/([^\/]*\.)?teenax-com-rke6\.blogspot\.com -https?:\/\/([^\/]*\.)?teenbe-com-bdp\.blogspot\.com -https?:\/\/([^\/]*\.)?teenbe-com-mb6x\.blogspot\.com -https?:\/\/([^\/]*\.)?teenbe-com-mh03o\.blogspot\.com -https?:\/\/([^\/]*\.)?teenblowjobs\.vdforum\.ru -https?:\/\/([^\/]*\.)?teenboat-com-g6\.blogspot\.com -https?:\/\/([^\/]*\.)?teenboat-com-g6f103r\.blogspot\.com -https?:\/\/([^\/]*\.)?teenboat-com-mu1s7p\.blogspot\.com -https?:\/\/([^\/]*\.)?teenboat-e76l\.blogspot\.com -https?:\/\/([^\/]*\.)?teenboys-wel\.blogspot\.com -https?:\/\/([^\/]*\.)?teenel-com-hhd\.blogspot\.com -https?:\/\/([^\/]*\.)?teenel-com-hq0sgbm\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniefiles-com-g84lu\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniefiles-com-o43\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniefiles-com-ob782u\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniemovies-com-aptqg\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniemovies-com-as\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniemovies-com-hinof\.blogspot\.com -https?:\/\/([^\/]*\.)?teeniesxxx-b00\.blogspot\.com -https?:\/\/([^\/]*\.)?teenmodels\.hostingtree\.org -https?:\/\/([^\/]*\.)?teenporn\.vdforum\.ru -https?:\/\/([^\/]*\.)?teenpornrur\.blogspot\.com -https?:\/\/([^\/]*\.)?teenpussyfhv\.blogspot\.com -https?:\/\/([^\/]*\.)?teens-chat\.info -https?:\/\/([^\/]*\.)?teens-list-b-all\.blogspot\.com -https?:\/\/([^\/]*\.)?teenseven-com-c0jvb2z\.blogspot\.com -https?:\/\/([^\/]*\.)?teensex-com-c4w3g\.blogspot\.com -https?:\/\/([^\/]*\.)?teensex-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?teensex\.adultserv\.info -https?:\/\/([^\/]*\.)?teensss-com-b8s44\.blogspot\.com -https?:\/\/([^\/]*\.)?teensss-com-tds\.blogspot\.com -https?:\/\/([^\/]*\.)?teensss-com-thrd\.blogspot\.com -https?:\/\/([^\/]*\.)?teentera-com-d5j3qqs\.blogspot\.com -https?:\/\/([^\/]*\.)?teentera-com-dyty5cv\.blogspot\.com -https?:\/\/([^\/]*\.)?teentera-com-w65\.blogspot\.com -https?:\/\/([^\/]*\.)?teentiger-com-e4e6i2f\.blogspot\.com -https?:\/\/([^\/]*\.)?teentiger-com-eo602\.blogspot\.com -https?:\/\/([^\/]*\.)?teentiger-com-fozol\.blogspot\.com -https?:\/\/([^\/]*\.)?teeny-boppers-club-beg\.blogspot\.com -https?:\/\/([^\/]*\.)?teenybopperclub-com-bgqk6ejjv\.blogspot\.com -https?:\/\/([^\/]*\.)?teenybopperclub-com-bukb\.blogspot\.com -https?:\/\/([^\/]*\.)?teenybopperclub-segod\.blogspot\.com -https?:\/\/([^\/]*\.)?tegan-d1yagb\.blogspot\.com -https?:\/\/([^\/]*\.)?tehxm\.szm\.sk -https?:\/\/([^\/]*\.)?tehya-csxo8\.blogspot\.com -https?:\/\/([^\/]*\.)?tehyana-bg3\.blogspot\.com -https?:\/\/([^\/]*\.)?tekd8\.szm\.sk -https?:\/\/([^\/]*\.)?tekiartur\.xhostar\.com -https?:\/\/([^\/]*\.)?tekila-a5x7\.blogspot\.com -https?:\/\/([^\/]*\.)?tela-ou3khz\.blogspot\.com -https?:\/\/([^\/]*\.)?telenglish\.com\.cn -https?:\/\/([^\/]*\.)?telephone-ip\.blogspot\.com -https?:\/\/([^\/]*\.)?telnushka\.blogspot\.com -https?:\/\/([^\/]*\.)?temazepam\.xwiki\.com -https?:\/\/([^\/]*\.)?temma-k1n03ege\.blogspot\.com -https?:\/\/([^\/]*\.)?temp-h33\.blogspot\.com -https?:\/\/([^\/]*\.)?temptation-gujlu2\.blogspot\.com -https?:\/\/([^\/]*\.)?ten-ra66722hs5\.blogspot\.com -https?:\/\/([^\/]*\.)?tenea-w1\.blogspot\.com -https?:\/\/([^\/]*\.)?tenisha-e6f\.blogspot\.com -https?:\/\/([^\/]*\.)?tennasa-ttk2oqe4m\.blogspot\.com -https?:\/\/([^\/]*\.)?tennesseemortgage-x\.com -https?:\/\/([^\/]*\.)?tennille-dm\.blogspot\.com -https?:\/\/([^\/]*\.)?tennis-ca8swtk\.blogspot\.com -https?:\/\/([^\/]*\.)?tenor-saxophone-fingering\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?tenuate\.1\.p2l\.info -https?:\/\/([^\/]*\.)?teopoo\.dynamicforum\.net -https?:\/\/([^\/]*\.)?teplomer\.dtdns\.net -https?:\/\/([^\/]*\.)?tequila-be5\.blogspot\.com -https?:\/\/([^\/]*\.)?teresanict-oorzzsxmjd\.blogspot\.com -https?:\/\/([^\/]*\.)?teri-m84ywv38\.blogspot\.com -https?:\/\/([^\/]*\.)?terika-i10\.blogspot\.com -https?:\/\/([^\/]*\.)?term-paper\.fromru\.com -https?:\/\/([^\/]*\.)?term-paper\.nm\.ru -https?:\/\/([^\/]*\.)?term_paper\.chat\.ru -https?:\/\/([^\/]*\.)?terminal-h0o2cfsibt\.blogspot\.com -https?:\/\/([^\/]*\.)?terri-gqdjfrm33d\.blogspot\.com -https?:\/\/([^\/]*\.)?terrianna-ru\.blogspot\.com -https?:\/\/([^\/]*\.)?terrin-wmwxu3v\.blogspot\.com -https?:\/\/([^\/]*\.)?terriona-erbvdaj\.blogspot\.com -https?:\/\/([^\/]*\.)?terry-tqzto0ek\.blogspot\.com -https?:\/\/([^\/]*\.)?terryikah-dhw46164c2\.blogspot\.com -https?:\/\/([^\/]*\.)?terryiona-czcng\.blogspot\.com -https?:\/\/([^\/]*\.)?terryn-b8p04mxhn2\.blogspot\.com -https?:\/\/([^\/]*\.)?tess-oybaa0ng\.blogspot\.com -https?:\/\/([^\/]*\.)?tessa-mugg\.blogspot\.com -https?:\/\/([^\/]*\.)?test1\.com -https?:\/\/([^\/]*\.)?test123-kpgwe3vie4\.blogspot\.com -https?:\/\/([^\/]*\.)?test2-h6qofysx\.blogspot\.com -https?:\/\/([^\/]*\.)?test2\.com -https?:\/\/([^\/]*\.)?test3\.com -https?:\/\/([^\/]*\.)?testmutherfucker\.com -https?:\/\/([^\/]*\.)?testtest-g14\.blogspot\.com -https?:\/\/([^\/]*\.)?tetteteent\.blogspot\.com -https?:\/\/([^\/]*\.)?tettgwk\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?texas-hold-em-winner\.net -https?:\/\/([^\/]*\.)?texas-hold-em\.black-poker\.com -https?:\/\/([^\/]*\.)?texas-holdem-poker\.us\.com -https?:\/\/([^\/]*\.)?texas-holdem-winner\.com -https?:\/\/([^\/]*\.)?texas-holdem\.black-poker\.com -https?:\/\/([^\/]*\.)?texas-rvmu1a0\.blogspot\.com -https?:\/\/([^\/]*\.)?texas-va-loan\.com -https?:\/\/([^\/]*\.)?texasdad\.com -https?:\/\/([^\/]*\.)?texasholdem2\.com -https?:\/\/([^\/]*\.)?texasholdemcenteral\.com -https?:\/\/([^\/]*\.)?texasholdemsite\.net -https?:\/\/([^\/]*\.)?texasmortgage-x\.com -https?:\/\/([^\/]*\.)?teyana-wtpu\.blogspot\.com -https?:\/\/([^\/]*\.)?teylore-ew24\.blogspot\.com -https?:\/\/([^\/]*\.)?tez-teenybopperclub-com\.blogspot\.com -https?:\/\/([^\/]*\.)?tgao2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tgksg\.szm\.sk -https?:\/\/([^\/]*\.)?tgp-movie-facial\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?tgpprincess\.net -https?:\/\/([^\/]*\.)?tgpseeker\.net -https?:\/\/([^\/]*\.)?thailand-t865\.blogspot\.com -https?:\/\/([^\/]*\.)?thalia-d125yh\.blogspot\.com -https?:\/\/([^\/]*\.)?thalya-cgjm\.blogspot\.com -https?:\/\/([^\/]*\.)?thbxg\.szm\.sk -https?:\/\/([^\/]*\.)?the-amberlady\.blogspot\.com -https?:\/\/([^\/]*\.)?the-craftman\.blogspot\.com -https?:\/\/([^\/]*\.)?the-female-orgasm-com-h1sx\.blogspot\.com -https?:\/\/([^\/]*\.)?the-female-orgasm-com-h8qf5l27j\.blogspot\.com -https?:\/\/([^\/]*\.)?the-most-biggest-boob-in-the-world\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?the-murderer\.blogspot\.com -https?:\/\/([^\/]*\.)?the-roulette\.net -https?:\/\/([^\/]*\.)?theaddedtouch\.net -https?:\/\/([^\/]*\.)?theaf\.info -https?:\/\/([^\/]*\.)?theaftor\.com -https?:\/\/([^\/]*\.)?theag\.info -https?:\/\/([^\/]*\.)?theap\.info -https?:\/\/([^\/]*\.)?theas\.info -https?:\/\/([^\/]*\.)?theat\.info -https?:\/\/([^\/]*\.)?theaw\.info -https?:\/\/([^\/]*\.)?thebestjaguar\.info -https?:\/\/([^\/]*\.)?thebigswallow-com-khcs\.blogspot\.com -https?:\/\/([^\/]*\.)?thebigswallow-com-kp3hmbl2e\.blogspot\.com -https?:\/\/([^\/]*\.)?thebondbroker\.info -https?:\/\/([^\/]*\.)?thecardinaleempire\.com -https?:\/\/([^\/]*\.)?thechryslerjeep\.info -https?:\/\/([^\/]*\.)?thedailywash\.blogspot\.com -https?:\/\/([^\/]*\.)?thedrivingsite\.info -https?:\/\/([^\/]*\.)?theente\.com -https?:\/\/([^\/]*\.)?thefiatspider\.info -https?:\/\/([^\/]*\.)?thehomeworkco\.com -https?:\/\/([^\/]*\.)?theiconclub\.info -https?:\/\/([^\/]*\.)?theillegalcause\.blogspot\.com -https?:\/\/([^\/]*\.)?thejaguarracing\.cn -https?:\/\/([^\/]*\.)?thejaguarracing\.info -https?:\/\/([^\/]*\.)?theking-ox0p87\.blogspot\.com -https?:\/\/([^\/]*\.)?theluckyman\.magnesia\.dtdns\.net -https?:\/\/([^\/]*\.)?theman-mbvc\.blogspot\.com -https?:\/\/([^\/]*\.)?themazdaspeed\.info -https?:\/\/([^\/]*\.)?themoblogs\.com -https?:\/\/([^\/]*\.)?theofe\.com -https?:\/\/([^\/]*\.)?theorless\.com -https?:\/\/([^\/]*\.)?theorrent\.com -https?:\/\/([^\/]*\.)?thepartyplaza\.info -https?:\/\/([^\/]*\.)?theresa-ipvfeka0y\.blogspot\.com -https?:\/\/([^\/]*\.)?thesam118\.blogspot\.com -https?:\/\/([^\/]*\.)?theseeall\.com -https?:\/\/([^\/]*\.)?theslots\.biz -https?:\/\/([^\/]*\.)?thesmart-casino\.com -https?:\/\/([^\/]*\.)?thesportspark\.net -https?:\/\/([^\/]*\.)?thessaloni-ka8qpmq7\.blogspot\.com -https?:\/\/([^\/]*\.)?thestartrekuniverse\.net -https?:\/\/([^\/]*\.)?thetexasholdpoker\.com -https?:\/\/([^\/]*\.)?thetrafficproject\.com -https?:\/\/([^\/]*\.)?thetruevoyeur-com-gkjz2m\.blogspot\.com -https?:\/\/([^\/]*\.)?thetruevoyeur-com-gy0\.blogspot\.com -https?:\/\/([^\/]*\.)?thetruevoyeur-com-iuswifnlo\.blogspot\.com -https?:\/\/([^\/]*\.)?thewarhal\.com -https?:\/\/([^\/]*\.)?thexe\.info -https?:\/\/([^\/]*\.)?thexo\.info -https?:\/\/([^\/]*\.)?thg\.org\.ua -https?:\/\/([^\/]*\.)?thick-ass-movie\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?thick-ass-stripper\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?thick-black-ass-pic\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?thigh-boot-movie\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?thiyanna-hl74o5m\.blogspot\.com -https?:\/\/([^\/]*\.)?thomarina-gt\.blogspot\.com -https?:\/\/([^\/]*\.)?thomas-r6ik\.blogspot\.com -https?:\/\/([^\/]*\.)?thomasina-wpcw\.blogspot\.com -https?:\/\/([^\/]*\.)?thongbattle-com-rtrllksm\.blogspot\.com -https?:\/\/([^\/]*\.)?thongbattle-com-rx2f2tcqrm\.blogspot\.com -https?:\/\/([^\/]*\.)?thongdreams-com-w0r16sf\.blogspot\.com -https?:\/\/([^\/]*\.)?thongdreams-com-wq50\.blogspot\.com -https?:\/\/([^\/]*\.)?thongdreams-com-wx67\.blogspot\.com -https?:\/\/([^\/]*\.)?thongdreams-com-xehiw\.blogspot\.com -https?:\/\/([^\/]*\.)?thornblack-eq3a55o4\.blogspot\.com -https?:\/\/([^\/]*\.)?three-to8p73\.blogspot\.com -https?:\/\/([^\/]*\.)?threesforest\.blogspot\.com -https?:\/\/([^\/]*\.)?thugs-djaox\.blogspot\.com -https?:\/\/([^\/]*\.)?thugz-cqi0x7wkb6\.blogspot\.com -https?:\/\/([^\/]*\.)?thumbzilla-com-mq\.blogspot\.com -https?:\/\/([^\/]*\.)?thumbzilla-com-mqtw65e\.blogspot\.com -https?:\/\/([^\/]*\.)?thumper-bs3t1\.blogspot\.com -https?:\/\/([^\/]*\.)?thunder-aq\.blogspot\.com -https?:\/\/([^\/]*\.)?thunder\.hostonmars\.com -https?:\/\/([^\/]*\.)?thursday-om2jka\.blogspot\.com -https?:\/\/([^\/]*\.)?thusqus\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?thx1138-mh86v55t2\.blogspot\.com -https?:\/\/([^\/]*\.)?tia-icc0gbqhya\.blogspot\.com -https?:\/\/([^\/]*\.)?tiahaat\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tiahnna-kf24x7i4n\.blogspot\.com -https?:\/\/([^\/]*\.)?tiaja-hr4ci\.blogspot\.com -https?:\/\/([^\/]*\.)?tiana-g12f0\.blogspot\.com -https?:\/\/([^\/]*\.)?tianna-r4s2r44e50\.blogspot\.com -https?:\/\/([^\/]*\.)?tianti\.com\.cn -https?:\/\/([^\/]*\.)?tiava-com-i60\.blogspot\.com -https?:\/\/([^\/]*\.)?tiava-com-i73ph\.blogspot\.com -https?:\/\/([^\/]*\.)?tiava-fiduh\.blogspot\.com -https?:\/\/([^\/]*\.)?tiava-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?tiava-tqfgkv74\.blogspot\.com -https?:\/\/([^\/]*\.)?tibisa-e5d1w5g\.blogspot\.com -https?:\/\/([^\/]*\.)?ticket\.hostaim\.com -https?:\/\/([^\/]*\.)?ticketcenter\.cn -https?:\/\/([^\/]*\.)?tied-gay-bondage\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?tiepin\.my10gb\.com -https?:\/\/([^\/]*\.)?tieteler\.jconserv\.net -https?:\/\/([^\/]*\.)?tiffani-dvy3\.blogspot\.com -https?:\/\/([^\/]*\.)?tiffany-b5arc\.blogspot\.com -https?:\/\/([^\/]*\.)?tiffany-teen-video-ces\.blogspot\.com -https?:\/\/([^\/]*\.)?tiffanyteen-a75atrdr\.blogspot\.com -https?:\/\/([^\/]*\.)?tigers-ows\.blogspot\.com -https?:\/\/([^\/]*\.)?tigger-muhul2h8\.blogspot\.com -https?:\/\/([^\/]*\.)?tight-ik340a6f\.blogspot\.com -https?:\/\/([^\/]*\.)?tight-tranny-ass\.medved\.od\.ua -https?:\/\/([^\/]*\.)?tightdelights-com-bayzdrm4r\.blogspot\.com -https?:\/\/([^\/]*\.)?tightdelights-com-bproar5r\.blogspot\.com -https?:\/\/([^\/]*\.)?tigre-k0qdp\.blogspot\.com -https?:\/\/([^\/]*\.)?tijldebie\.net -https?:\/\/([^\/]*\.)?tilneshia-r1\.blogspot\.com -https?:\/\/([^\/]*\.)?timank\.com -https?:\/\/([^\/]*\.)?timelee\.pp\.ru -https?:\/\/([^\/]*\.)?timetopaynow\.com -https?:\/\/([^\/]*\.)?timewill\.pp\.ru -https?:\/\/([^\/]*\.)?timex-ironman\.leg4is\.be -https?:\/\/([^\/]*\.)?timothy-tkd\.blogspot\.com -https?:\/\/([^\/]*\.)?timsmovies-com-ck0iq6v\.blogspot\.com -https?:\/\/([^\/]*\.)?timsmovies-com-cui64k6qv\.blogspot\.com -https?:\/\/([^\/]*\.)?timyra-dy\.blogspot\.com -https?:\/\/([^\/]*\.)?tina-ce\.blogspot\.com -https?:\/\/([^\/]*\.)?tinman-bb4k610\.blogspot\.com -https?:\/\/([^\/]*\.)?tintin-abz\.blogspot\.com -https?:\/\/([^\/]*\.)?tiny-cock-blow-job\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?tiny18-net-e5zw0x8\.blogspot\.com -https?:\/\/([^\/]*\.)?tiny18-net-thb44\.blogspot\.com -https?:\/\/([^\/]*\.)?tiny18-net-tq5qwp\.blogspot\.com -https?:\/\/([^\/]*\.)?tinyeve-net-d8ejy5\.blogspot\.com -https?:\/\/([^\/]*\.)?tinyeve-net-dzjflb1\.blogspot\.com -https?:\/\/([^\/]*\.)?tinysblackadventures-com-a61px\.blogspot\.com -https?:\/\/([^\/]*\.)?tinysblackadventures-com-a638lqrud\.blogspot\.com -https?:\/\/([^\/]*\.)?tipw\.org\.ua -https?:\/\/([^\/]*\.)?tise2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?titanium-ring\.boom\.ru -https?:\/\/([^\/]*\.)?titanium-rings\.boom\.ru -https?:\/\/([^\/]*\.)?titanium1ring\.chat\.ru -https?:\/\/([^\/]*\.)?titanium4ring\.chat\.ru -https?:\/\/([^\/]*\.)?titkis\.com -https?:\/\/([^\/]*\.)?tittypalace-com-o352hny\.blogspot\.com -https?:\/\/([^\/]*\.)?tiye-e5rhl\.blogspot\.com -https?:\/\/([^\/]*\.)?tiyona-t4m7cq\.blogspot\.com -https?:\/\/([^\/]*\.)?tizanidine\.1\.p2l\.info -https?:\/\/([^\/]*\.)?tj-d04qczfk\.blogspot\.com -https?:\/\/([^\/]*\.)?tjbb1\.szm\.sk -https?:\/\/([^\/]*\.)?tjjp\.left-page\.com -https?:\/\/([^\/]*\.)?tjjp\.zxvo\.com -https?:\/\/([^\/]*\.)?tjzhh\.com\.cn -https?:\/\/([^\/]*\.)?tjzrr\.com -https?:\/\/([^\/]*\.)?tkml\.tblog\.com -https?:\/\/([^\/]*\.)?tknani\.50webs\.com -https?:\/\/([^\/]*\.)?tkzrb\.szm\.sk -https?:\/\/([^\/]*\.)?tladies\.net -https?:\/\/([^\/]*\.)?tlchjhs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tldley4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tlhd3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tljsrq\.com -https?:\/\/([^\/]*\.)?tlkdb\.szm\.sk -https?:\/\/([^\/]*\.)?tmhbj\.com -https?:\/\/([^\/]*\.)?tmobilenfn\.blogspot\.com -https?:\/\/([^\/]*\.)?tmooeen-six\.blogspot\.com -https?:\/\/([^\/]*\.)?tneccotnec\.fr-bb\.com -https?:\/\/([^\/]*\.)?tnt163\.com -https?:\/\/([^\/]*\.)?toggle-c0t3\.blogspot\.com -https?:\/\/([^\/]*\.)?tohj3\.szm\.sk -https?:\/\/([^\/]*\.)?tohqy\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tokuctro\.forumzen\.com -https?:\/\/([^\/]*\.)?tom-b56vx6b48\.blogspot\.com -https?:\/\/([^\/]*\.)?tomato-a7e\.blogspot\.com -https?:\/\/([^\/]*\.)?tomems\.125mb\.com -https?:\/\/([^\/]*\.)?tommys-bookmarks-com-eeb0\.blogspot\.com -https?:\/\/([^\/]*\.)?tommys-bookmarks-com-ev\.blogspot\.com -https?:\/\/([^\/]*\.)?tomng\.info -https?:\/\/([^\/]*\.)?tomsthumbs-com-ihj\.blogspot\.com -https?:\/\/([^\/]*\.)?tomsthumbs-com-iqkobr\.blogspot\.com -https?:\/\/([^\/]*\.)?ton4all\.com -https?:\/\/([^\/]*\.)?tonea-m3t\.blogspot\.com -https?:\/\/([^\/]*\.)?tonegativeone\.blogspot\.com -https?:\/\/([^\/]*\.)?toniann-kr3\.blogspot\.com -https?:\/\/([^\/]*\.)?tony-h3xs1\.blogspot\.com -https?:\/\/([^\/]*\.)?tonya-g0x1\.blogspot\.com -https?:\/\/([^\/]*\.)?toons-fuck-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?toor3\.szm\.sk -https?:\/\/([^\/]*\.)?tootsie-rjg323oj2\.blogspot\.com -https?:\/\/([^\/]*\.)?top-hold-em\.us -https?:\/\/([^\/]*\.)?top-holdem\.com -https?:\/\/([^\/]*\.)?top-holdem\.us -https?:\/\/([^\/]*\.)?top-mp3\.biz -https?:\/\/([^\/]*\.)?top\.pcanywhere\.net -https?:\/\/([^\/]*\.)?topacio-w3fpzg\.blogspot\.com -https?:\/\/([^\/]*\.)?topairlines\.ifrance\.com -https?:\/\/([^\/]*\.)?topcelebs-com-hf34tmj\.blogspot\.com -https?:\/\/([^\/]*\.)?topdasar\.com -https?:\/\/([^\/]*\.)?topee\.info -https?:\/\/([^\/]*\.)?topege\.com -https?:\/\/([^\/]*\.)?topfarmasearch\.info -https?:\/\/([^\/]*\.)?topgun-ef7gc204\.blogspot\.com -https?:\/\/([^\/]*\.)?topless-babes-com-mq6hbe5uvq\.blogspot\.com -https?:\/\/([^\/]*\.)?topo20\.org -https?:\/\/([^\/]*\.)?topography-tuowheetle\.blogspot\.com -https?:\/\/([^\/]*\.)?topozo\.org -https?:\/\/([^\/]*\.)?topworldauto\.info -https?:\/\/([^\/]*\.)?torey-dr343r\.blogspot\.com -https?:\/\/([^\/]*\.)?tori-cmg8\.blogspot\.com -https?:\/\/([^\/]*\.)?toriana-baui\.blogspot\.com -https?:\/\/([^\/]*\.)?tornado-axe8uch1ar\.blogspot\.com -https?:\/\/([^\/]*\.)?toronto-ox7aprp\.blogspot\.com -https?:\/\/([^\/]*\.)?toropiz\.125mb\.com -https?:\/\/([^\/]*\.)?torri-mrmj\.blogspot\.com -https?:\/\/([^\/]*\.)?tortoise-iz\.blogspot\.com -https?:\/\/([^\/]*\.)?torucnro\.jconserv\.net -https?:\/\/([^\/]*\.)?tosuralz\.forumzen\.com -https?:\/\/([^\/]*\.)?tottiona-k1zx8juj\.blogspot\.com -https?:\/\/([^\/]*\.)?touya012\.blogspot\.com -https?:\/\/([^\/]*\.)?town-china\.cn -https?:\/\/([^\/]*\.)?toxic-h8jasyqt1\.blogspot\.com -https?:\/\/([^\/]*\.)?toyota-g8\.blogspot\.com -https?:\/\/([^\/]*\.)?tpwyc\.szm\.sk -https?:\/\/([^\/]*\.)?tqdd7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tqnkaoi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tqrkf\.szm\.sk -https?:\/\/([^\/]*\.)?traci-r30narn\.blogspot\.com -https?:\/\/([^\/]*\.)?tracie-wskg17md\.blogspot\.com -https?:\/\/([^\/]*\.)?trackting\.com -https?:\/\/([^\/]*\.)?tractor-etae7hau1y\.blogspot\.com -https?:\/\/([^\/]*\.)?tracy-kae\.babubi\.net -https?:\/\/([^\/]*\.)?tracy-toe7\.blogspot\.com -https?:\/\/([^\/]*\.)?traesha-d8u3731bb6\.blogspot\.com -https?:\/\/([^\/]*\.)?traffit\.info -https?:\/\/([^\/]*\.)?tralina-bvqz366sv\.blogspot\.com -https?:\/\/([^\/]*\.)?tramadol-4u\.net -https?:\/\/([^\/]*\.)?tramadol-911\.coz\.in -https?:\/\/([^\/]*\.)?tramadol-bznz\.blogspot\.com -https?:\/\/([^\/]*\.)?tramadol-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?tramadol-gs\.eu\.tc -https?:\/\/([^\/]*\.)?tramadol-gs\.net\.tc -https?:\/\/([^\/]*\.)?tramadol-online\.presteert\.nl -https?:\/\/([^\/]*\.)?tramadol-wiki\.com -https?:\/\/([^\/]*\.)?tramadol\.1\.forogratis\.es -https?:\/\/([^\/]*\.)?tramadol\.1\.p2l\.info -https?:\/\/([^\/]*\.)?tramadol\.esguay\.com -https?:\/\/([^\/]*\.)?tramadol\.fws1\.com -https?:\/\/([^\/]*\.)?tramadol\.goodpharm\.info -https?:\/\/([^\/]*\.)?tramadol\.knopkabablo\.info -https?:\/\/([^\/]*\.)?tramadol\.presteert\.nl -https?:\/\/([^\/]*\.)?tramadol\.skocz\.net -https?:\/\/([^\/]*\.)?tramadol\.su\.pl -https?:\/\/([^\/]*\.)?tramadol\.weboficial\.com -https?:\/\/([^\/]*\.)?tramadol7\.php5\.cz -https?:\/\/([^\/]*\.)?tramadolnx\.u\.yuku\.com -https?:\/\/([^\/]*\.)?tramadolonline\.ovp\.pl -https?:\/\/([^\/]*\.)?tramadolonlinez\.blogsome\.com -https?:\/\/([^\/]*\.)?tramadolq\.bloggingmylife\.com -https?:\/\/([^\/]*\.)?tramadols\.us\.tf -https?:\/\/([^\/]*\.)?trami-a7oq4k1\.blogspot\.com -https?:\/\/([^\/]*\.)?tramika-o4no\.blogspot\.com -https?:\/\/([^\/]*\.)?tran-ma86bq3\.blogspot\.com -https?:\/\/([^\/]*\.)?tranici\.info -https?:\/\/([^\/]*\.)?tranlaura-ktn\.blogspot\.com -https?:\/\/([^\/]*\.)?trannysurprise-com-ghn6k4r88\.blogspot\.com -https?:\/\/([^\/]*\.)?trannysurprise-com-gq\.blogspot\.com -https?:\/\/([^\/]*\.)?trannysurprise-com-i05csl\.blogspot\.com -https?:\/\/([^\/]*\.)?transbiding\.com -https?:\/\/([^\/]*\.)?transchinese\.com -https?:\/\/([^\/]*\.)?transfer-h56d4zxl4\.blogspot\.com -https?:\/\/([^\/]*\.)?translateatsh\.cn -https?:\/\/([^\/]*\.)?translatebbs\.com -https?:\/\/([^\/]*\.)?translateforcompany\.cn -https?:\/\/([^\/]*\.)?traore-guh68nn\.blogspot\.com -https?:\/\/([^\/]*\.)?trashnx\.datadiri\.cc -https?:\/\/([^\/]*\.)?trastian-r1\.blogspot\.com -https?:\/\/([^\/]*\.)?travel-blast\.com -https?:\/\/([^\/]*\.)?travel-wa4g2\.blogspot\.com -https?:\/\/([^\/]*\.)?travel\.globaltr\.info -https?:\/\/([^\/]*\.)?travel2nursing\.chat\.ru -https?:\/\/([^\/]*\.)?travelmarket\.mytravelsearch\.info -https?:\/\/([^\/]*\.)?travis-ez8v\.blogspot\.com -https?:\/\/([^\/]*\.)?tray-t5\.blogspot\.com -https?:\/\/([^\/]*\.)?trbodel\.frbb\.net -https?:\/\/([^\/]*\.)?trbusget\.forumzen\.com -https?:\/\/([^\/]*\.)?trcchi\.td\.pl -https?:\/\/([^\/]*\.)?trcota\.bb-fr\.com -https?:\/\/([^\/]*\.)?trdombas\.blogcu\.com -https?:\/\/([^\/]*\.)?trerdron\.discutfree\.com -https?:\/\/([^\/]*\.)?trerdron\.dynamicforum\.net -https?:\/\/([^\/]*\.)?tressa-a7w83sb\.blogspot\.com -https?:\/\/([^\/]*\.)?tretinoingelbuy\.move\.to -https?:\/\/([^\/]*\.)?tretinoingelbuycheap\.move\.to -https?:\/\/([^\/]*\.)?tretinoingelbuygeneric\.drive\.to -https?:\/\/([^\/]*\.)?tretinoingelcheap\.rulestheweb\.com -https?:\/\/([^\/]*\.)?tretinoingelgeneric\.germany\.ms -https?:\/\/([^\/]*\.)?trevisos\.org -https?:\/\/([^\/]*\.)?trevor-obp5qlgdb\.blogspot\.com -https?:\/\/([^\/]*\.)?trhlina\.republika\.pl -https?:\/\/([^\/]*\.)?tribuna\.asp2\.cz -https?:\/\/([^\/]*\.)?trident-m6wm\.blogspot\.com -https?:\/\/([^\/]*\.)?trinbagoauto\.com -https?:\/\/([^\/]*\.)?trinity-ikvstb\.blogspot\.com -https?:\/\/([^\/]*\.)?triobuy\.vtost\.com -https?:\/\/([^\/]*\.)?triphasil\.1\.p2l\.info -https?:\/\/([^\/]*\.)?tripto\.com -https?:\/\/([^\/]*\.)?trisha-ksmv\.blogspot\.com -https?:\/\/([^\/]*\.)?tristen-h2b1b1\.blogspot\.com -https?:\/\/([^\/]*\.)?trivial-gk13on\.blogspot\.com -https?:\/\/([^\/]*\.)?trixie-rkn\.blogspot\.com -https?:\/\/([^\/]*\.)?trkucorc\.forumzen\.com -https?:\/\/([^\/]*\.)?trlicut\.winnerforum\.net -https?:\/\/([^\/]*\.)?trocacsit\.dl\.pl -https?:\/\/([^\/]*\.)?troccvi\.darkbb\.com -https?:\/\/([^\/]*\.)?trocdarc\.bb-fr\.com -https?:\/\/([^\/]*\.)?troceltolo\.dl\.pl -https?:\/\/([^\/]*\.)?trocoches\.info -https?:\/\/([^\/]*\.)?trocrolac\.dl\.pl -https?:\/\/([^\/]*\.)?troctrocro\.zj\.pl -https?:\/\/([^\/]*\.)?trombone-wafnt\.blogspot\.com -https?:\/\/([^\/]*\.)?trorolo\.ephpbb\.com -https?:\/\/([^\/]*\.)?trorta\.blogcu\.com -https?:\/\/([^\/]*\.)?trte2\.szm\.sk -https?:\/\/([^\/]*\.)?trtrocli\.uy\.pl -https?:\/\/([^\/]*\.)?trucks-t5rikxk1yk\.blogspot\.com -https?:\/\/([^\/]*\.)?trumpet-d5846b6u\.blogspot\.com -https?:\/\/([^\/]*\.)?trumst\.com -https?:\/\/([^\/]*\.)?trzelor\.bbfr\.net -https?:\/\/([^\/]*\.)?ts998\.com -https?:\/\/([^\/]*\.)?tsc-clara\.hostingtree\.org -https?:\/\/([^\/]*\.)?tsfzia5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tshirthell-com-h4dd14cx0g\.blogspot\.com -https?:\/\/([^\/]*\.)?tshirthell-com-wbc\.blogspot\.com -https?:\/\/([^\/]*\.)?tshirthell-com-wvayrpu2\.blogspot\.com -https?:\/\/([^\/]*\.)?tslist-com-rwwi8zl\.blogspot\.com -https?:\/\/([^\/]*\.)?tslist-com-ry\.blogspot\.com -https?:\/\/([^\/]*\.)?tsoy7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tss-car\.com -https?:\/\/([^\/]*\.)?tssuih5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tsvibak\.blogspot\.com -https?:\/\/([^\/]*\.)?tt001\.com -https?:\/\/([^\/]*\.)?tt002\.com -https?:\/\/([^\/]*\.)?tt003\.com -https?:\/\/([^\/]*\.)?tt004\.com -https?:\/\/([^\/]*\.)?tt005\.com -https?:\/\/([^\/]*\.)?tthumvir\.forumzen\.com -https?:\/\/([^\/]*\.)?ttjpm\.szm\.sk -https?:\/\/([^\/]*\.)?ttlive\.info -https?:\/\/([^\/]*\.)?ttrgb\.szm\.sk -https?:\/\/([^\/]*\.)?ttvpkp0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tu-wendi\.blogspot\.com -https?:\/\/([^\/]*\.)?tubas-bc45h\.blogspot\.com -https?:\/\/([^\/]*\.)?tuesday-anx780we1\.blogspot\.com -https?:\/\/([^\/]*\.)?tufa\.info -https?:\/\/([^\/]*\.)?tugjobs-com-kmr4pm\.blogspot\.com -https?:\/\/([^\/]*\.)?tuhe-advil\.blogspot\.com -https?:\/\/([^\/]*\.)?tulip123456\.ifrance\.com -https?:\/\/([^\/]*\.)?turbo-o3f520u0jd\.blogspot\.com -https?:\/\/([^\/]*\.)?turl\.jp -https?:\/\/([^\/]*\.)?turtle-m6pr6y\.blogspot\.com -https?:\/\/([^\/]*\.)?tuttle-i5\.blogspot\.com -https?:\/\/([^\/]*\.)?tuttosport\.freespase\.info -https?:\/\/([^\/]*\.)?tuubu\.szm\.sk -https?:\/\/([^\/]*\.)?tv-bazzar\.com -https?:\/\/([^\/]*\.)?twam0\.fr33webhost\.com -https?:\/\/([^\/]*\.)?tweety-k8z4spyz\.blogspot\.com -https?:\/\/([^\/]*\.)?twelvalve\.blogspot\.com -https?:\/\/([^\/]*\.)?twilightsex-cixeh\.blogspot\.com -https?:\/\/([^\/]*\.)?twilightsex-com-o31qd\.blogspot\.com -https?:\/\/([^\/]*\.)?twilightsex-com-op\.blogspot\.com -https?:\/\/([^\/]*\.)?twins-hzhz\.blogspot\.com -https?:\/\/([^\/]*\.)?twist-ga\.blogspot\.com -https?:\/\/([^\/]*\.)?twister-r4\.blogspot\.com -https?:\/\/([^\/]*\.)?two-lips-com-cfvn7fu3\.blogspot\.com -https?:\/\/([^\/]*\.)?two-lips-com-cwk\.blogspot\.com -https?:\/\/([^\/]*\.)?two-teen-kissing\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?two-wgn3t3\.blogspot\.com -https?:\/\/([^\/]*\.)?twoq5\.szm\.sk -https?:\/\/([^\/]*\.)?twxtbqn\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?txnpgc2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?txvfpo7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tyepobv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?tyj\.cwrjcn\.com -https?:\/\/([^\/]*\.)?tyra-dna0lnjav\.blogspot\.com -https?:\/\/([^\/]*\.)?tytiana-bjag\.blogspot\.com -https?:\/\/([^\/]*\.)?tyvj5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uaobs\.szm\.sk -https?:\/\/([^\/]*\.)?ub-mongolia\.mn -https?:\/\/([^\/]*\.)?ubasak\.stabilt\.se -https?:\/\/([^\/]*\.)?ubpmr\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ucdrun\.forumzen\.com -https?:\/\/([^\/]*\.)?ucol2\.szm\.sk -https?:\/\/([^\/]*\.)?udqhh\.szm\.sk -https?:\/\/([^\/]*\.)?udtm7\.szm\.sk -https?:\/\/([^\/]*\.)?uemhpgv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uglyjezz\.asp2\.cz -https?:\/\/([^\/]*\.)?ugmhq\.szm\.sk -https?:\/\/([^\/]*\.)?ukbettingweb\.com -https?:\/\/([^\/]*\.)?ukek-hin\.isuisse\.com -https?:\/\/([^\/]*\.)?ukrosi\.com -https?:\/\/([^\/]*\.)?uksr9\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ulqj9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ultimateairpurifier\.com -https?:\/\/([^\/]*\.)?ultimatesurrender-com-bkio\.blogspot\.com -https?:\/\/([^\/]*\.)?ultimatesurrender-com-bm8z1b\.blogspot\.com -https?:\/\/([^\/]*\.)?ultimatesurrender-com-c75r71j2e\.blogspot\.com -https?:\/\/([^\/]*\.)?ultracet\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ultradonkey-com-acp\.blogspot\.com -https?:\/\/([^\/]*\.)?ultradonkey-com-ag0\.blogspot\.com -https?:\/\/([^\/]*\.)?ultram-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?ultram\.1\.p2l\.info -https?:\/\/([^\/]*\.)?ultram\.47\.pl -https?:\/\/([^\/]*\.)?ultram\.goodpharm\.info -https?:\/\/([^\/]*\.)?ultram\.hav\.pl -https?:\/\/([^\/]*\.)?ultram\.is-a-geek\.com -https?:\/\/([^\/]*\.)?ultram\.serveftp\.com -https?:\/\/([^\/]*\.)?ultram\.skocz\.net -https?:\/\/([^\/]*\.)?ultrameds\.dtdns\.net -https?:\/\/([^\/]*\.)?ultrams\.eu\.tf -https?:\/\/([^\/]*\.)?ultrasexmovies-com-dm2dmh\.blogspot\.com -https?:\/\/([^\/]*\.)?ultrasexmovies-com-dz02q7\.blogspot\.com -https?:\/\/([^\/]*\.)?ultrasexmovies-com-zujuz\.blogspot\.com -https?:\/\/([^\/]*\.)?umax-forum\.com -https?:\/\/([^\/]*\.)?umax-ppc\.com -https?:\/\/([^\/]*\.)?umax-se\.com -https?:\/\/([^\/]*\.)?umax-se\.info -https?:\/\/([^\/]*\.)?umax-search-ppc-se-board\.com -https?:\/\/([^\/]*\.)?umax-search-se\.com -https?:\/\/([^\/]*\.)?umax-search\.net -https?:\/\/([^\/]*\.)?umaxppc\.com -https?:\/\/([^\/]*\.)?umaxse\.net -https?:\/\/([^\/]*\.)?umaxse\.org -https?:\/\/([^\/]*\.)?umaxsearch-search-engine\.com -https?:\/\/([^\/]*\.)?umojucd\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?umsbm\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?un-fois\.blogspot\.com -https?:\/\/([^\/]*\.)?un-nachrichten\.de -https?:\/\/([^\/]*\.)?unbelievable-poker\.com -https?:\/\/([^\/]*\.)?uncledeadly83\.blogspot\.com -https?:\/\/([^\/]*\.)?understandish\.50webs\.org -https?:\/\/([^\/]*\.)?unglaublichkeiten\.com -https?:\/\/([^\/]*\.)?unicom\.027168\.com -https?:\/\/([^\/]*\.)?uniform2nursing\.chat\.ru -https?:\/\/([^\/]*\.)?unit01\.com -https?:\/\/([^\/]*\.)?united-airline\.boom\.ru -https?:\/\/([^\/]*\.)?united24\.com -https?:\/\/([^\/]*\.)?unitedinchristchurch\.org -https?:\/\/([^\/]*\.)?universal-hosting\.net -https?:\/\/([^\/]*\.)?university-degre\.boom\.ru -https?:\/\/([^\/]*\.)?university1degre\.chat\.ru -https?:\/\/([^\/]*\.)?unixbrewers\.org -https?:\/\/([^\/]*\.)?unka\.su\.pl -https?:\/\/([^\/]*\.)?unseenoyster\.blogspot\.com -https?:\/\/([^\/]*\.)?unwqs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uobasdel\.fr-bb\.com -https?:\/\/([^\/]*\.)?uokx8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uous6\.fr33webhost\.com -https?:\/\/([^\/]*\.)?up-skirt-butt\.medved\.odessa\.ua -https?:\/\/([^\/]*\.)?updatenames\.dtdns\.net -https?:\/\/([^\/]*\.)?upskirt-ebony-teen\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?upskirt-gallery-leg\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?upskirtsexxfh\.blogspot\.com -https?:\/\/([^\/]*\.)?upwaldru\.ifrance\.com -https?:\/\/([^\/]*\.)?uraharaben1hime\.blogspot\.com -https?:\/\/([^\/]*\.)?urkrdh5\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?urky5\.szm\.sk -https?:\/\/([^\/]*\.)?us-senator-dick-durbin\.protime\.in\.ua -https?:\/\/([^\/]*\.)?us-viagra\.us -https?:\/\/([^\/]*\.)?us\.kopuz\.com -https?:\/\/([^\/]*\.)?usa-online-pharmacy\.net -https?:\/\/([^\/]*\.)?usa568\.com -https?:\/\/([^\/]*\.)?usaah\.com -https?:\/\/([^\/]*\.)?usbestlawyer\.org -https?:\/\/([^\/]*\.)?usbuorl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?usednotebooks\.ru -https?:\/\/([^\/]*\.)?ushoh\.szm\.sk -https?:\/\/([^\/]*\.)?uskbbb9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?usuc\.us -https?:\/\/([^\/]*\.)?uszfp\.szm\.sk -https?:\/\/([^\/]*\.)?utahmortgage-x\.com -https?:\/\/([^\/]*\.)?utranslate\.org -https?:\/\/([^\/]*\.)?utranslation\.net -https?:\/\/([^\/]*\.)?uucwsw7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uulitr\.forumzen\.com -https?:\/\/([^\/]*\.)?uulive\.info -https?:\/\/([^\/]*\.)?uvfotuc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uvgpy\.szm\.sk -https?:\/\/([^\/]*\.)?uvndhxh\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uwacadweb\.uwyo\.edu -https?:\/\/([^\/]*\.)?uwek\.info -https?:\/\/([^\/]*\.)?uxyei\.szm\.sk -https?:\/\/([^\/]*\.)?uyjdrg3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?uzfde\.fr33webhost\.com -https?:\/\/([^\/]*\.)?uzzclm9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?v-f-sex-video-clip-g\.blogspot\.com -https?:\/\/([^\/]*\.)?v-j-big-movie-tit-v\.blogspot\.com -https?:\/\/([^\/]*\.)?v1h\.com -https?:\/\/([^\/]*\.)?v5wednesday\.info -https?:\/\/([^\/]*\.)?v7njlwgd\.nokedem\.com -https?:\/\/([^\/]*\.)?vacanza-barcellona\.zoom10x\.info -https?:\/\/([^\/]*\.)?vacanza-montagna\.freespase\.info -https?:\/\/([^\/]*\.)?vacanza-neve\.zoom4x\.info -https?:\/\/([^\/]*\.)?vacanza-toscana\.host24h\.info -https?:\/\/([^\/]*\.)?vacuums\.be -https?:\/\/([^\/]*\.)?vahitchc\.dl\.pl -https?:\/\/([^\/]*\.)?valiubusines\.blogcu\.com -https?:\/\/([^\/]*\.)?valium-911\.coz\.in -https?:\/\/([^\/]*\.)?valium-cc\.blogspot\.com -https?:\/\/([^\/]*\.)?valium-cheap\.18\.to -https?:\/\/([^\/]*\.)?valium-online\.cheapills\.info -https?:\/\/([^\/]*\.)?valium-qrxo\.blogspot\.com -https?:\/\/([^\/]*\.)?valium\.269g\.net -https?:\/\/([^\/]*\.)?valium\.47\.pl -https?:\/\/([^\/]*\.)?valium\.goodpharm\.info -https?:\/\/([^\/]*\.)?valium\.skocz\.net -https?:\/\/([^\/]*\.)?valium\.su\.pl -https?:\/\/([^\/]*\.)?valiumnx\.u\.yuku\.com -https?:\/\/([^\/]*\.)?valiums\.eu\.tf -https?:\/\/([^\/]*\.)?valleyswap\.info -https?:\/\/([^\/]*\.)?valtrex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?vametase\.com -https?:\/\/([^\/]*\.)?vands88\.blogspot\.com -https?:\/\/([^\/]*\.)?vanhelsingsgirl\.datadiri\.cc -https?:\/\/([^\/]*\.)?vaniqa\.1\.p2l\.info -https?:\/\/([^\/]*\.)?varac\.heavenforum\.com -https?:\/\/([^\/]*\.)?varac\.highforum\.net -https?:\/\/([^\/]*\.)?varelvi\.discutfree\.com -https?:\/\/([^\/]*\.)?varnish\.8888mb\.com -https?:\/\/([^\/]*\.)?varnotr\.naturalforum\.net -https?:\/\/([^\/]*\.)?varoracel\.bbfr\.net -https?:\/\/([^\/]*\.)?varracleto\.dl\.pl -https?:\/\/([^\/]*\.)?vazicoj\.info -https?:\/\/([^\/]*\.)?vboya\.9999mb\.com -https?:\/\/([^\/]*\.)?vcjwc\.fr33webhost\.com -https?:\/\/([^\/]*\.)?vcpk9\.szm\.sk -https?:\/\/([^\/]*\.)?vcsps\.com -https?:\/\/([^\/]*\.)?vdpf4\.szm\.sk -https?:\/\/([^\/]*\.)?ve-alisa\.blogspot\.com -https?:\/\/([^\/]*\.)?vegetnuks\.blogspot\.com -https?:\/\/([^\/]*\.)?veggis\.org\.cn -https?:\/\/([^\/]*\.)?vehal\.com -https?:\/\/([^\/]*\.)?vek-xxxpower-net\.blogspot\.com -https?:\/\/([^\/]*\.)?velvetimalice\.ibelgique\.com -https?:\/\/([^\/]*\.)?vemiles\.ifrance\.com -https?:\/\/([^\/]*\.)?verba\.dyndns\.dk -https?:\/\/([^\/]*\.)?verfolva\.blogspot\.com -https?:\/\/([^\/]*\.)?veriel\.dl\.pl -https?:\/\/([^\/]*\.)?verizonringtonersy\.blogspot\.com -https?:\/\/([^\/]*\.)?verizonringtonesdvf\.blogspot\.com -https?:\/\/([^\/]*\.)?vermontmortgage-x\.com -https?:\/\/([^\/]*\.)?vertyg\.org -https?:\/\/([^\/]*\.)?veryge\.com -https?:\/\/([^\/]*\.)?veryprivatebanking\.info -https?:\/\/([^\/]*\.)?vestuk\.com -https?:\/\/([^\/]*\.)?veterinar\.spb\.ru -https?:\/\/([^\/]*\.)?vets\.appliedphysics\.swri\.edu -https?:\/\/([^\/]*\.)?vfrkiv6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vfrrto\.org -https?:\/\/([^\/]*\.)?vhuekxi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vi-allo\.blogspot\.com -https?:\/\/([^\/]*\.)?viadele\.dl\.pl -https?:\/\/([^\/]*\.)?viagaravaegra\.com -https?:\/\/([^\/]*\.)?viaggi-del-ventaglio\.forumhst\.info -https?:\/\/([^\/]*\.)?viagra-4u\.us -https?:\/\/([^\/]*\.)?viagra-online\.presteert\.nl -https?:\/\/([^\/]*\.)?viagra-soft-tabs\.1\.p2l\.info -https?:\/\/([^\/]*\.)?viagra\.1\.p2l\.info -https?:\/\/([^\/]*\.)?viagra\.cheapills\.info -https?:\/\/([^\/]*\.)?viagra\.edu\.tf -https?:\/\/([^\/]*\.)?viagra\.esguay\.com -https?:\/\/([^\/]*\.)?viagra\.inc5\.com -https?:\/\/([^\/]*\.)?viagra\.rx4\.org -https?:\/\/([^\/]*\.)?viagra\.skocz\.net -https?:\/\/([^\/]*\.)?viagrai\.blogspot\.com -https?:\/\/([^\/]*\.)?viagraorder\.mail15\.com -https?:\/\/([^\/]*\.)?viagraq\.bloggingmylife\.com -https?:\/\/([^\/]*\.)?viagrarx\.weboficial\.com -https?:\/\/([^\/]*\.)?vicodin-pharm\.fws1\.com -https?:\/\/([^\/]*\.)?vicodin\.269g\.net -https?:\/\/([^\/]*\.)?vicodin\.conto\.pl -https?:\/\/([^\/]*\.)?vicodin\.esguay\.com -https?:\/\/([^\/]*\.)?vicodin\.guu\.pl -https?:\/\/([^\/]*\.)?vicodin88\.tblog\.com -https?:\/\/([^\/]*\.)?victoria-silvstedt\.freehostss\.info -https?:\/\/([^\/]*\.)?videlric\.dl\.pl -https?:\/\/([^\/]*\.)?video-comico\.host24h\.info -https?:\/\/([^\/]*\.)?video-porn-caseros-ju\.blogspot\.com -https?:\/\/([^\/]*\.)?video-porn-gratis-sod\.blogspot\.com -https?:\/\/([^\/]*\.)?video-post-com-bejiq\.blogspot\.com -https?:\/\/([^\/]*\.)?video-post-com-bfoybt\.blogspot\.com -https?:\/\/([^\/]*\.)?video-post-com-my\.blogspot\.com -https?:\/\/([^\/]*\.)?video-post-com-thumbview-rehif\.blogspot\.com -https?:\/\/([^\/]*\.)?video-spot-sexy\.19mb\.info -https?:\/\/([^\/]*\.)?video-spot-sexy\.you-bizz\.info -https?:\/\/([^\/]*\.)?video-whore-bb-bb-b\.blogspot\.com -https?:\/\/([^\/]*\.)?videosection-com-h0xon\.blogspot\.com -https?:\/\/([^\/]*\.)?videosection-com-w1w\.blogspot\.com -https?:\/\/([^\/]*\.)?videosection-com-w62l\.blogspot\.com -https?:\/\/([^\/]*\.)?videosharez\.com -https?:\/\/([^\/]*\.)?vidgals-com-e13sc4yv0\.blogspot\.com -https?:\/\/([^\/]*\.)?vidgals-com-e6ig7a\.blogspot\.com -https?:\/\/([^\/]*\.)?vidgals-com-edvo\.blogspot\.com -https?:\/\/([^\/]*\.)?vidronla\.blogcu\.com -https?:\/\/([^\/]*\.)?vielsit\.su\.pl -https?:\/\/([^\/]*\.)?vietnamparadisetravel\.com -https?:\/\/([^\/]*\.)?viewerswives-net-c4\.blogspot\.com -https?:\/\/([^\/]*\.)?viewerswives-net-oc\.blogspot\.com -https?:\/\/([^\/]*\.)?viewgals-com-ah\.blogspot\.com -https?:\/\/([^\/]*\.)?viewgals-com-il253r\.blogspot\.com -https?:\/\/([^\/]*\.)?vigduk30\.xshorturl\.com -https?:\/\/([^\/]*\.)?vigetleto\.heavenforum\.com -https?:\/\/([^\/]*\.)?vihl6\.szm\.sk -https?:\/\/([^\/]*\.)?viliolo\.winnerforum\.net -https?:\/\/([^\/]*\.)?village\.asp2\.cz -https?:\/\/([^\/]*\.)?villaggio-ischia\.ll11\.info -https?:\/\/([^\/]*\.)?vinnie-1-hit\.blogspot\.com -https?:\/\/([^\/]*\.)?vintage\.sexcluborgy\.net -https?:\/\/([^\/]*\.)?vioxx\.1\.p2l\.info -https?:\/\/([^\/]*\.)?vioxx\.3d-game\.com -https?:\/\/([^\/]*\.)?vipasrel\.cultureforum\.net -https?:\/\/([^\/]*\.)?vipcrew-com-bj\.blogspot\.com -https?:\/\/([^\/]*\.)?vipcrew-com-r0w\.blogspot\.com -https?:\/\/([^\/]*\.)?vipcrew-com-rs74r7iy5\.blogspot\.com -https?:\/\/([^\/]*\.)?viphls\.com -https?:\/\/([^\/]*\.)?vipliz\.com -https?:\/\/([^\/]*\.)?vipmsite\.com -https?:\/\/([^\/]*\.)?virgin-porn\.futureblog\.org -https?:\/\/([^\/]*\.)?virgin-sexy\.com -https?:\/\/([^\/]*\.)?virginfucked-com-h200n1lxcg\.blogspot\.com -https?:\/\/([^\/]*\.)?virginiamortgage-x\.com -https?:\/\/([^\/]*\.)?viricrel\.lolbb\.com -https?:\/\/([^\/]*\.)?virinok\.dynamicforum\.net -https?:\/\/([^\/]*\.)?virtualeinfiniti\.cn -https?:\/\/([^\/]*\.)?vitalitymax\.1\.p2l\.info -https?:\/\/([^\/]*\.)?vivino\.ephpbb\.com -https?:\/\/([^\/]*\.)?vizelvar\.frbb\.net -https?:\/\/([^\/]*\.)?vjkavu6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vjsgby0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vjuk7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vjwm2\.fr33webhost\.com -https?:\/\/([^\/]*\.)?vkblq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vksfucm\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vmdes\.com -https?:\/\/([^\/]*\.)?vmpi4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vmvip\.com -https?:\/\/([^\/]*\.)?vmvip\.net -https?:\/\/([^\/]*\.)?vmvip\.org -https?:\/\/([^\/]*\.)?vo-free-oral-movie-clip-toc\.blogspot\.com -https?:\/\/([^\/]*\.)?voip-guide\.org -https?:\/\/([^\/]*\.)?vol-soft17-com\.blogspot\.com -https?:\/\/([^\/]*\.)?voli-amsterdam\.freespase\.info -https?:\/\/([^\/]*\.)?voli-argentina\.zoom10x\.info -https?:\/\/([^\/]*\.)?voli-londra\.freespase\.info -https?:\/\/([^\/]*\.)?voli-spagna\.freespase\.info -https?:\/\/([^\/]*\.)?volume5\.8888mb\.com -https?:\/\/([^\/]*\.)?voxn2\.szm\.sk -https?:\/\/([^\/]*\.)?voyeur-video-amateur-free\.protime\.in\.ua -https?:\/\/([^\/]*\.)?voyeurzine-com-af2\.blogspot\.com -https?:\/\/([^\/]*\.)?voyeurzine-com-dbhx1q\.blogspot\.com -https?:\/\/([^\/]*\.)?voyiu\.szm\.sk -https?:\/\/([^\/]*\.)?vpbu1\.szm\.sk -https?:\/\/([^\/]*\.)?vrlw9\.szm\.sk -https?:\/\/([^\/]*\.)?vrnjgk1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vstqfs3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vtop\.fateback\.com -https?:\/\/([^\/]*\.)?vtop\.kilu\.de -https?:\/\/([^\/]*\.)?vtop\.topcities\.com -https?:\/\/([^\/]*\.)?vtrxzzwj-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?vttolldd\.org -https?:\/\/([^\/]*\.)?vttthtgg\.org -https?:\/\/([^\/]*\.)?vtwm7\.szm\.sk -https?:\/\/([^\/]*\.)?vu-alias\.blogspot\.com -https?:\/\/([^\/]*\.)?vu-aliases\.blogspot\.com -https?:\/\/([^\/]*\.)?vu-free-big-sex-movie-fen\.blogspot\.com -https?:\/\/([^\/]*\.)?vud-vipcrew-com\.blogspot\.com -https?:\/\/([^\/]*\.)?vue\.uit\.tufts\.edu -https?:\/\/([^\/]*\.)?vulgarisprime\.50webs\.org -https?:\/\/([^\/]*\.)?vuqi-alana\.blogspot\.com -https?:\/\/([^\/]*\.)?vutwwd6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vuzeq-sex-video-d\.blogspot\.com -https?:\/\/([^\/]*\.)?vvaliumonline\.ovp\.pl -https?:\/\/([^\/]*\.)?vvline\.info -https?:\/\/([^\/]*\.)?vwjr2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vwzm6\.szm\.sk -https?:\/\/([^\/]*\.)?vyqdvf1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?vyuf9\.szm\.sk -https?:\/\/([^\/]*\.)?vzevz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?w-q-elmo-extreme-video-n\.blogspot\.com -https?:\/\/([^\/]*\.)?w-s-free-gay-sex-video-l\.blogspot\.com -https?:\/\/([^\/]*\.)?w2\.ftpcn\.cn -https?:\/\/([^\/]*\.)?w528\.com -https?:\/\/([^\/]*\.)?wacks\.info -https?:\/\/([^\/]*\.)?wak1ngmel0dies\.blogspot\.com -https?:\/\/([^\/]*\.)?walker-ross\.com -https?:\/\/([^\/]*\.)?walkerproconsulting\.com -https?:\/\/([^\/]*\.)?walt-disney-world-travel\.globaltr\.info -https?:\/\/([^\/]*\.)?wanadoo-fr-eyn6u1yt0\.blogspot\.com -https?:\/\/([^\/]*\.)?wanadoo-fr-gsz\.blogspot\.com -https?:\/\/([^\/]*\.)?wanadoo-fr-i0iq\.blogspot\.com -https?:\/\/([^\/]*\.)?wannawatch-com-k1rckf8\.blogspot\.com -https?:\/\/([^\/]*\.)?wannawatch-com-krz7dxd5a\.blogspot\.com -https?:\/\/([^\/]*\.)?wannawatch-com-oaeedr\.blogspot\.com -https?:\/\/([^\/]*\.)?wapzhijia\.com -https?:\/\/([^\/]*\.)?waserk\.com -https?:\/\/([^\/]*\.)?washingtonmortgage-x\.com -https?:\/\/([^\/]*\.)?watch-free-porn-clip-zone43l\.blogspot\.com -https?:\/\/([^\/]*\.)?watch-free-porn-clip-zonekjl\.blogspot\.com -https?:\/\/([^\/]*\.)?watch-free-porn-video-bu\.blogspot\.com -https?:\/\/([^\/]*\.)?watchersweb-com-t61o4wrr4h\.blogspot\.com -https?:\/\/([^\/]*\.)?watchersweb-com-tnwrlyoqk\.blogspot\.com -https?:\/\/([^\/]*\.)?watchingthetube\.com -https?:\/\/([^\/]*\.)?water\.toxhost\.com -https?:\/\/([^\/]*\.)?waxen\.kwik\.to -https?:\/\/([^\/]*\.)?wbun7\.szm\.sk -https?:\/\/([^\/]*\.)?wc1\.worldcrossing\.com -https?:\/\/([^\/]*\.)?we-alfred\.blogspot\.com -https?:\/\/([^\/]*\.)?we-alondra\.blogspot\.com -https?:\/\/([^\/]*\.)?we-lesbian-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?web\.missouri\.edu -https?:\/\/([^\/]*\.)?web\.scc\.losrios\.edu -https?:\/\/([^\/]*\.)?web\.skku\.edu -https?:\/\/([^\/]*\.)?web55\.info -https?:\/\/([^\/]*\.)?webhost11\.com -https?:\/\/([^\/]*\.)?webhosting-x\.com -https?:\/\/([^\/]*\.)?weblog\.xanga\.com -https?:\/\/([^\/]*\.)?webmd-drugs\.com -https?:\/\/([^\/]*\.)?websz\.com -https?:\/\/([^\/]*\.)?wedding-knot\.com -https?:\/\/([^\/]*\.)?weddingactions\.com -https?:\/\/([^\/]*\.)?wedner\.info -https?:\/\/([^\/]*\.)?weekly-pay\.com -https?:\/\/([^\/]*\.)?weersa\.com -https?:\/\/([^\/]*\.)?weight-loss\.1\.p2l\.info -https?:\/\/([^\/]*\.)?weixing\.hk\.cn -https?:\/\/([^\/]*\.)?welisi\.hk -https?:\/\/([^\/]*\.)?welivetogether-com-ek6boac\.blogspot\.com -https?:\/\/([^\/]*\.)?welivetogether-com-oc7yzd4ev\.blogspot\.com -https?:\/\/([^\/]*\.)?welivetogether-com-wcu8\.blogspot\.com -https?:\/\/([^\/]*\.)?wellbutrin\.1\.p2l\.info -https?:\/\/([^\/]*\.)?wellbutrin\.php5\.cz -https?:\/\/([^\/]*\.)?wenmasterworld\.com -https?:\/\/([^\/]*\.)?werdq\.com -https?:\/\/([^\/]*\.)?wess\.250free\.com -https?:\/\/([^\/]*\.)?westvirginiamortgage-x\.com -https?:\/\/([^\/]*\.)?wet-mature-slut\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?wet-pussy-cum-shot\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?wet-teen-panties-wen\.blogspot\.com -https?:\/\/([^\/]*\.)?wetplace-com-g16jfp6\.blogspot\.com -https?:\/\/([^\/]*\.)?wfkd3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wgxq2\.szm\.sk -https?:\/\/([^\/]*\.)?whipped-ass-slut\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?whipsnorkel\.275mb\.com -https?:\/\/([^\/]*\.)?white-guys-fucking-black-teen\.medved\.od\.ua -https?:\/\/([^\/]*\.)?whitehole\.republika\.pl -https?:\/\/([^\/]*\.)?wholesale-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?whorevideos-com-hj8shgp\.blogspot\.com -https?:\/\/([^\/]*\.)?whorevideos-com-wddx\.blogspot\.com -https?:\/\/([^\/]*\.)?whorevideos-txe5g0x\.blogspot\.com -https?:\/\/([^\/]*\.)?whpsjw1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?whss0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wierdporno-com-kur70yvrl0\.blogspot\.com -https?:\/\/([^\/]*\.)?wifi-planet\.org -https?:\/\/([^\/]*\.)?wiku-aikman\.blogspot\.com -https?:\/\/([^\/]*\.)?wild-party-fuck\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?wild-poker\.com -https?:\/\/([^\/]*\.)?willeyfordmazda\.info -https?:\/\/([^\/]*\.)?win-for-italy\.info -https?:\/\/([^\/]*\.)?wind\.8888mb\.com -https?:\/\/([^\/]*\.)?winter-gossamer\.blogspot\.com -https?:\/\/([^\/]*\.)?winter\.12gbfree\.com -https?:\/\/([^\/]*\.)?wired-shemales\.lampa\.ipupdater\.com -https?:\/\/([^\/]*\.)?wiremesh-guanda\.com -https?:\/\/([^\/]*\.)?wisconsinmortgage-x\.com -https?:\/\/([^\/]*\.)?wisdom123\.com -https?:\/\/([^\/]*\.)?wisewomanguide\.com -https?:\/\/([^\/]*\.)?wisnp\.szm\.sk -https?:\/\/([^\/]*\.)?wix-timsmovies-com\.blogspot\.com -https?:\/\/([^\/]*\.)?wizingsh\.dl\.pl -https?:\/\/([^\/]*\.)?wjch5\.szm\.sk -https?:\/\/([^\/]*\.)?wjhh9\.szm\.sk -https?:\/\/([^\/]*\.)?wjjk0\.szm\.sk -https?:\/\/([^\/]*\.)?wjsueg-free-video\.blogspot\.com -https?:\/\/([^\/]*\.)?wkelleylucas\.com -https?:\/\/([^\/]*\.)?wkfsi774k\.org -https?:\/\/([^\/]*\.)?wljp9\.szm\.sk -https?:\/\/([^\/]*\.)?wm-u\.com -https?:\/\/([^\/]*\.)?wmis\.com\.cn -https?:\/\/([^\/]*\.)?wmlpv\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wmtnd\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wnwr5\.szm\.sk -https?:\/\/([^\/]*\.)?woilco6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wolflist-com-rkj7d3\.blogspot\.com -https?:\/\/([^\/]*\.)?wolverine-steel-toe-work-boot\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?woman-masturbating-man\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?woman-who-can-lick-their-own-pussy\.gameover\.in\.ua -https?:\/\/([^\/]*\.)?woman-who-fuck-donkey\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?woman-with-prosthetic-leg\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?womansmith\.com -https?:\/\/([^\/]*\.)?women-fitness\.org -https?:\/\/([^\/]*\.)?womens-hard-nipples\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?womens-snake-boot\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?woolygrrl\.blogspot\.com -https?:\/\/([^\/]*\.)?worldsex-com-byzv1xjl\.blogspot\.com -https?:\/\/([^\/]*\.)?worldsex-com-eqn4b\.blogspot\.com -https?:\/\/([^\/]*\.)?worldtalktv\.net\.ru -https?:\/\/([^\/]*\.)?worldufo\.net\.ru -https?:\/\/([^\/]*\.)?worldwide-games\.net -https?:\/\/([^\/]*\.)?worldwide-online-pharmacy\.net -https?:\/\/([^\/]*\.)?worldwide-tramadol\.net -https?:\/\/([^\/]*\.)?woro-adriana\.blogspot\.com -https?:\/\/([^\/]*\.)?wot-smutgremlins-com\.blogspot\.com -https?:\/\/([^\/]*\.)?wow-gold\.dinmo\.cn -https?:\/\/([^\/]*\.)?wow-powerleveling-wow\.com -https?:\/\/([^\/]*\.)?wowgold\.org\.cn -https?:\/\/([^\/]*\.)?wowtgp-com-ap4y\.blogspot\.com -https?:\/\/([^\/]*\.)?wowvids-com-ooiofshz5\.blogspot\.com -https?:\/\/([^\/]*\.)?woww0\.szm\.sk -https?:\/\/([^\/]*\.)?wpgt1\.szm\.sk -https?:\/\/([^\/]*\.)?wpnvjk9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wqhnog2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wqr\.cn -https?:\/\/([^\/]*\.)?wrnf9\.szm\.sk -https?:\/\/([^\/]*\.)?wshcroq\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wsuonline\.weber\.edu -https?:\/\/([^\/]*\.)?wszqc\.szm\.sk -https?:\/\/([^\/]*\.)?wtrpfpa\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wuconweb\.wustl\.edu -https?:\/\/([^\/]*\.)?wujin\.dzsc\.com -https?:\/\/([^\/]*\.)?wulzi\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wvuf0\.szm\.sk -https?:\/\/([^\/]*\.)?wvwd6\.szm\.sk -https?:\/\/([^\/]*\.)?wwfedgechristian\.com -https?:\/\/([^\/]*\.)?wwlive\.info -https?:\/\/([^\/]*\.)?wwtop\.info -https?:\/\/([^\/]*\.)?www-girlygangbang-com\.magnesia\.dtdns\.net -https?:\/\/([^\/]*\.)?www-loadmymouth-com\.klose\.ipupdater\.com -https?:\/\/([^\/]*\.)?www-shemales-from-hell-com\.magnesia\.dtdns\.net -https?:\/\/([^\/]*\.)?www\.aet\.cup\.edu -https?:\/\/([^\/]*\.)?www\.ags\.uci\.edu -https?:\/\/([^\/]*\.)?www\.chaco\.gov\.ar -https?:\/\/([^\/]*\.)?www\.coe\.ohio-state\.edu -https?:\/\/([^\/]*\.)?www\.csulb\.edu -https?:\/\/([^\/]*\.)?www\.cucsur\.udg\.mx -https?:\/\/([^\/]*\.)?www\.depts\.ttu\.edu -https?:\/\/([^\/]*\.)?www\.elie\.com\.cn -https?:\/\/([^\/]*\.)?www\.forourbano\.gov\.ar -https?:\/\/([^\/]*\.)?www\.grad\.english\.ttu\.edu -https?:\/\/([^\/]*\.)?www\.hcs\.harvard\.edu -https?:\/\/([^\/]*\.)?www\.health-livening\.com -https?:\/\/([^\/]*\.)?www\.imperial\.edu -https?:\/\/([^\/]*\.)?www\.isis\.vanderbilt\.edu -https?:\/\/([^\/]*\.)?www\.leal-alfa\.upc\.edu -https?:\/\/([^\/]*\.)?www\.ns\.ui\.edu -https?:\/\/([^\/]*\.)?www\.oswego\.edu -https?:\/\/([^\/]*\.)?www\.oznet\.ksu\.edu -https?:\/\/([^\/]*\.)?www\.polisci\.berkeley\.edu -https?:\/\/([^\/]*\.)?www\.redwingnet\.com -https?:\/\/([^\/]*\.)?www\.rit\.edu -https?:\/\/([^\/]*\.)?www\.rso\.cmich\.edu -https?:\/\/([^\/]*\.)?www\.sccs\.swarthmore\.edu -https?:\/\/([^\/]*\.)?www\.sportsbackers\.org -https?:\/\/([^\/]*\.)?www\.tamug\.edu -https?:\/\/([^\/]*\.)?www\.ug\.it\.usyd\.edu\.au -https?:\/\/([^\/]*\.)?www\.uky\.edu -https?:\/\/([^\/]*\.)?www\.wvup\.edu -https?:\/\/([^\/]*\.)?www1\.freehostingguru\.com -https?:\/\/([^\/]*\.)?www2\.cs\.washington\.edu -https?:\/\/([^\/]*\.)?www3\.ddns\.ms -https?:\/\/([^\/]*\.)?www4\.epac\.to -https?:\/\/([^\/]*\.)?www4\.nau\.edu -https?:\/\/([^\/]*\.)?www4\.vjc\.edu -https?:\/\/([^\/]*\.)?www6\.ezua\.com -https?:\/\/([^\/]*\.)?www6\.ns1\.name -https?:\/\/([^\/]*\.)?www69\.bestdeals\.at -https?:\/\/([^\/]*\.)?www69\.byinter\.net -https?:\/\/([^\/]*\.)?www69\.dynu\.com -https?:\/\/([^\/]*\.)?www69\.findhere\.org -https?:\/\/([^\/]*\.)?www69\.fw\.nu -https?:\/\/([^\/]*\.)?www69\.ugly\.as -https?:\/\/([^\/]*\.)?www7\.25u\.com -https?:\/\/([^\/]*\.)?www7\.ygto\.com -https?:\/\/([^\/]*\.)?www8\.ns01\.us -https?:\/\/([^\/]*\.)?www9\.servequake\.com -https?:\/\/([^\/]*\.)?www9\.trickip\.org -https?:\/\/([^\/]*\.)?www99\.bounceme\.net -https?:\/\/([^\/]*\.)?www99\.zapto\.org -https?:\/\/([^\/]*\.)?wwweazol\.znamka\.yi\.org -https?:\/\/([^\/]*\.)?wwwmenozac\.gumaky\.yi\.org -https?:\/\/([^\/]*\.)?wwwpeterscumshotscom\.jalovica\.dtdns\.net -https?:\/\/([^\/]*\.)?wwwpornweekcom\.lampa\.ipupdater\.com -https?:\/\/([^\/]*\.)?wwwtheluckymancom\.hrable\.dtdns\.net -https?:\/\/([^\/]*\.)?wxcl6\.szm\.sk -https?:\/\/([^\/]*\.)?wxmbv\.fr33webhost\.com -https?:\/\/([^\/]*\.)?wxsbjx\.com -https?:\/\/([^\/]*\.)?wxzgyb\.com -https?:\/\/([^\/]*\.)?wy-ls\.com -https?:\/\/([^\/]*\.)?wyeax\.szm\.sk -https?:\/\/([^\/]*\.)?wyloguj\.php5\.cz -https?:\/\/([^\/]*\.)?wyomingmortgage-x\.com -https?:\/\/([^\/]*\.)?wywurxj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wzcub\.szm\.sk -https?:\/\/([^\/]*\.)?wzhj\.com\.cn -https?:\/\/([^\/]*\.)?wzhjom6\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?wzlsx\.com -https?:\/\/([^\/]*\.)?x-cialis\.be -https?:\/\/([^\/]*\.)?x-ho-com-m23lsy\.blogspot\.com -https?:\/\/([^\/]*\.)?x-ho-com-mlk2tai422\.blogspot\.com -https?:\/\/([^\/]*\.)?x-orgy-com-in7nn0o1\.blogspot\.com -https?:\/\/([^\/]*\.)?x24\.xxuz\.com -https?:\/\/([^\/]*\.)?x25\.2mydns\.com -https?:\/\/([^\/]*\.)?x25\.plorp\.com -https?:\/\/([^\/]*\.)?x4\.lov3\.net -https?:\/\/([^\/]*\.)?x6x\.a\.la -https?:\/\/([^\/]*\.)?x888x\.myserver\.org -https?:\/\/([^\/]*\.)?x8x\.trickip\.net -https?:\/\/([^\/]*\.)?xadultpersonals\.com -https?:\/\/([^\/]*\.)?xafengyuan\.com -https?:\/\/([^\/]*\.)?xaltc\.szm\.sk -https?:\/\/([^\/]*\.)?xanax-911\.coz\.in -https?:\/\/([^\/]*\.)?xanax-acpq\.blogspot\.com -https?:\/\/([^\/]*\.)?xanax-ccc\.blogspot\.com -https?:\/\/([^\/]*\.)?xanax-lyiy\.blogspot\.com -https?:\/\/([^\/]*\.)?xanax-online\.cheapills\.info -https?:\/\/([^\/]*\.)?xanax\.esguay\.com -https?:\/\/([^\/]*\.)?xanax\.goodpharm\.info -https?:\/\/([^\/]*\.)?xanax\.skocz\.net -https?:\/\/([^\/]*\.)?xanax\.su\.pl -https?:\/\/([^\/]*\.)?xanaxnx\.u\.yuku\.com -https?:\/\/([^\/]*\.)?xawcj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xboct13\.blogspot\.com -https?:\/\/([^\/]*\.)?xbyzkngo-teensite\.blogspot\.com -https?:\/\/([^\/]*\.)?xcp\.51mp4mp3\.com -https?:\/\/([^\/]*\.)?xd-fw\.com -https?:\/\/([^\/]*\.)?xdwxs\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xdzs\.com\.cn -https?:\/\/([^\/]*\.)?xef-publicinvasion-com\.blogspot\.com -https?:\/\/([^\/]*\.)?xejedot-sophie-marceau-c\.blogspot\.com -https?:\/\/([^\/]*\.)?xelby0\.blogspot\.com -https?:\/\/([^\/]*\.)?xenical\.1\.p2l\.info -https?:\/\/([^\/]*\.)?xenical\.1k\.pl -https?:\/\/([^\/]*\.)?xenicallem\.queroumforum\.com -https?:\/\/([^\/]*\.)?xfdr7\.szm\.sk -https?:\/\/([^\/]*\.)?xfokcw0\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xgdlfj\.com -https?:\/\/([^\/]*\.)?xhttp\.net -https?:\/\/([^\/]*\.)?xian-hua\.nease\.net -https?:\/\/([^\/]*\.)?xiangyujipiao\.com -https?:\/\/([^\/]*\.)?xibch\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xih-snakesworld-com\.blogspot\.com -https?:\/\/([^\/]*\.)?xih-topless-babes-com\.blogspot\.com -https?:\/\/([^\/]*\.)?xihdl\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xionny\.cn -https?:\/\/([^\/]*\.)?xitokiry\.blogspot\.com -https?:\/\/([^\/]*\.)?xiwhr\.szm\.sk -https?:\/\/([^\/]*\.)?xjenhx\.blogspot\.com -https?:\/\/([^\/]*\.)?xlala\.com -https?:\/\/([^\/]*\.)?xlale\.com -https?:\/\/([^\/]*\.)?xlalu\.com -https?:\/\/([^\/]*\.)?xlvc3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xlxx-com-i0xeru\.blogspot\.com -https?:\/\/([^\/]*\.)?xlxx-fokiq\.blogspot\.com -https?:\/\/([^\/]*\.)?xlxx-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?xmail\.net -https?:\/\/([^\/]*\.)?xmodem-mal\.blogspot\.com -https?:\/\/([^\/]*\.)?xnbs1\.szm\.sk -https?:\/\/([^\/]*\.)?xnews\.soad\.umich\.edu -https?:\/\/([^\/]*\.)?xnxx-com-e06t\.blogspot\.com -https?:\/\/([^\/]*\.)?xnxx-crcdfs0jy6\.blogspot\.com -https?:\/\/([^\/]*\.)?xnxxmovies-com-bv10g2\.blogspot\.com -https?:\/\/([^\/]*\.)?xnxxmovies-com-wv\.blogspot\.com -https?:\/\/([^\/]*\.)?xo-whatever\.blogspot\.com -https?:\/\/([^\/]*\.)?xolz4\.szm\.sk -https?:\/\/([^\/]*\.)?xometi\.com -https?:\/\/([^\/]*\.)?xonlinedating\.com -https?:\/\/([^\/]*\.)?xoomer\.alice\.it -https?:\/\/([^\/]*\.)?xparamacy\.org -https?:\/\/([^\/]*\.)?xpharmacy\.org -https?:\/\/([^\/]*\.)?xqnqh\.szm\.sk -https?:\/\/([^\/]*\.)?xr\.bz -https?:\/\/([^\/]*\.)?xsecrets-com-kyms\.blogspot\.com -https?:\/\/([^\/]*\.)?xsgr7\.szm\.sk -https?:\/\/([^\/]*\.)?xshorturl\.info -https?:\/\/([^\/]*\.)?xsyvh\.szm\.sk -https?:\/\/([^\/]*\.)?xt168\.com -https?:\/\/([^\/]*\.)?xudo-akira\.blogspot\.com -https?:\/\/([^\/]*\.)?xujwy\.szm\.sk -https?:\/\/([^\/]*\.)?xun-screwedupmovies-com\.blogspot\.com -https?:\/\/([^\/]*\.)?xvbbols\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?xvec\.com -https?:\/\/([^\/]*\.)?xvnj5\.szm\.sk -https?:\/\/([^\/]*\.)?xwsdr\.szm\.sk -https?:\/\/([^\/]*\.)?xxellaxx\.250free\.com -https?:\/\/([^\/]*\.)?xxhk2\.szm\.sk -https?:\/\/([^\/]*\.)?xxlmovies-com-gswie\.blogspot\.com -https?:\/\/([^\/]*\.)?xxlmovies-com-m7rg0g8viu\.blogspot\.com -https?:\/\/([^\/]*\.)?xxlmovies-mcorb4\.blogspot\.com -https?:\/\/([^\/]*\.)?xxufdm-free-video\.blogspot\.com -https?:\/\/([^\/]*\.)?xxx-mature-movie-gallery\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?xxx-pic-blonde\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?xxx-porn-clip-blogn0y\.blogspot\.com -https?:\/\/([^\/]*\.)?xxx0movie\.info -https?:\/\/([^\/]*\.)?xxx1adult1video\.blogspot\.com -https?:\/\/([^\/]*\.)?xxx1clip\.blogspot\.com -https?:\/\/([^\/]*\.)?xxx1movie\.blogspot\.com -https?:\/\/([^\/]*\.)?xxx1video\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxdessert-com-rl7e3\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxfolder-com-h3126\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxkey-com-ma\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxlost\.info -https?:\/\/([^\/]*\.)?xxxphenterm1nen0w\.tripod\.com -https?:\/\/([^\/]*\.)?xxxpornstarclassics-com-cezx51lw8\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxpornstarclassics-com-d2ttwy\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxpower-net-aped3c1xa\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxproposal-com-b06etpw\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxvogue-hux\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxvogue-net-oe2t1p081c\.blogspot\.com -https?:\/\/([^\/]*\.)?xxxvogue-net-qerij\.blogspot\.com -https?:\/\/([^\/]*\.)?xyz-i2\.blogspot\.com -https?:\/\/([^\/]*\.)?xyzzy-k7c37b5tuw\.blogspot\.com -https?:\/\/([^\/]*\.)?xzc\.org\.ua -https?:\/\/([^\/]*\.)?xzgang-bangorgy\.hav\.pl -https?:\/\/([^\/]*\.)?xznylonlycra\.hav\.pl -https?:\/\/([^\/]*\.)?xzrapeextreme\.hav\.pl -https?:\/\/([^\/]*\.)?xzzoodogsex\.hav\.pl -https?:\/\/([^\/]*\.)?y--e--s\.com -https?:\/\/([^\/]*\.)?ya\.ru -https?:\/\/([^\/]*\.)?yaahoeu\.com -https?:\/\/([^\/]*\.)?yaco-hbkklx6ltp\.blogspot\.com -https?:\/\/([^\/]*\.)?yahia-g3x\.blogspot\.com -https?:\/\/([^\/]*\.)?yaho-rei6\.blogspot\.com -https?:\/\/([^\/]*\.)?yahoochat-w11g7\.blogspot\.com -https?:\/\/([^\/]*\.)?yale-eui5rgcu\.blogspot\.com -https?:\/\/([^\/]*\.)?yamaha-scooter\.hotmail\.ru -https?:\/\/([^\/]*\.)?yamaha-t46nzou\.blogspot\.com -https?:\/\/([^\/]*\.)?yamaha2scooter\.chat\.ru -https?:\/\/([^\/]*\.)?yamel-da\.blogspot\.com -https?:\/\/([^\/]*\.)?yamil-c1n2ob52\.blogspot\.com -https?:\/\/([^\/]*\.)?yamonee-bqcyojq\.blogspot\.com -https?:\/\/([^\/]*\.)?yang-as\.blogspot\.com -https?:\/\/([^\/]*\.)?yankees-o3\.blogspot\.com -https?:\/\/([^\/]*\.)?yasashisa\.blogspot\.com -https?:\/\/([^\/]*\.)?yashun-i63\.blogspot\.com -https?:\/\/([^\/]*\.)?yasin-kfn0g\.blogspot\.com -https?:\/\/([^\/]*\.)?yaskap\.com -https?:\/\/([^\/]*\.)?yasmin-hovn5q\.blogspot\.com -https?:\/\/([^\/]*\.)?yasmin\.1\.p2l\.info -https?:\/\/([^\/]*\.)?yazar-rnzt\.blogspot\.com -https?:\/\/([^\/]*\.)?yblwoh-free-video\.blogspot\.com -https?:\/\/([^\/]*\.)?ycft3\.szm\.sk -https?:\/\/([^\/]*\.)?ycixxgt\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ycsv1\.szm\.sk -https?:\/\/([^\/]*\.)?ydyofrj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ydyp\.left-web\.com -https?:\/\/([^\/]*\.)?ydyp\.zxvo\.com -https?:\/\/([^\/]*\.)?yehuo\.cn -https?:\/\/([^\/]*\.)?yell0w-n1njaman\.blogspot\.com -https?:\/\/([^\/]*\.)?yellow-wc4pxnc\.blogspot\.com -https?:\/\/([^\/]*\.)?yellowstone-e4b\.blogspot\.com -https?:\/\/([^\/]*\.)?yes-t2cfk28\.blogspot\.com -https?:\/\/([^\/]*\.)?yesenia-dip5700iq\.blogspot\.com -https?:\/\/([^\/]*\.)?yessenia-c0ue443\.blogspot\.com -https?:\/\/([^\/]*\.)?yetbarek-b31fe\.blogspot\.com -https?:\/\/([^\/]*\.)?yfojo\.szm\.sk -https?:\/\/([^\/]*\.)?yfxy2\.szm\.sk -https?:\/\/([^\/]*\.)?yhmh\.vip\.myrice\.com -https?:\/\/([^\/]*\.)?yi-gan\.com -https?:\/\/([^\/]*\.)?yicloqd\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?yiqiyibiao\.dzsc\.com -https?:\/\/([^\/]*\.)?yisroel-a5dk2rzyvx\.blogspot\.com -https?:\/\/([^\/]*\.)?yjyvm\.szm\.sk -https?:\/\/([^\/]*\.)?ymaby\.info -https?:\/\/([^\/]*\.)?yncharm\.com -https?:\/\/([^\/]*\.)?ynij1\.szm\.sk -https?:\/\/([^\/]*\.)?ynkbb\.szm\.sk -https?:\/\/([^\/]*\.)?ynndy\.szm\.sk -https?:\/\/([^\/]*\.)?ynztp\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?yoda-oz08ueg\.blogspot\.com -https?:\/\/([^\/]*\.)?yoel-mu5ej\.blogspot\.com -https?:\/\/([^\/]*\.)?yogee\.info -https?:\/\/([^\/]*\.)?yojany-iu3bpg2\.blogspot\.com -https?:\/\/([^\/]*\.)?yolanda-k1\.blogspot\.com -https?:\/\/([^\/]*\.)?yomama-hmsa\.blogspot\.com -https?:\/\/([^\/]*\.)?yongxun\.net -https?:\/\/([^\/]*\.)?yosemite-gf77c0ggp\.blogspot\.com -https?:\/\/([^\/]*\.)?yoshi-in-black\.blogspot\.com -https?:\/\/([^\/]*\.)?yosuke-r8aua1\.blogspot\.com -https?:\/\/([^\/]*\.)?young-anal-fuck\.travel-ag\.od\.ua -https?:\/\/([^\/]*\.)?young-anal-sex\.travel-ag\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?young-blonde-slut\.medved\.uzhgorod\.ua -https?:\/\/([^\/]*\.)?young-britney\.babubi\.net -https?:\/\/([^\/]*\.)?young-cheerleader-pic\.medved\.od\.ua -https?:\/\/([^\/]*\.)?young-chubby-pussy\.protime\.in\.ua -https?:\/\/([^\/]*\.)?young-ffm\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?young-lesbian-having-sex\.protime\.in\.ua -https?:\/\/([^\/]*\.)?young-sex\.futureblog\.org -https?:\/\/([^\/]*\.)?young-teen-girl-anal\.aroundworld\.in\.ua -https?:\/\/([^\/]*\.)?young-tender\.info -https?:\/\/([^\/]*\.)?young-wqn\.blogspot\.com -https?:\/\/([^\/]*\.)?youngerbabes-com-d1fem\.blogspot\.com -https?:\/\/([^\/]*\.)?youngerbabes-com-dpdc\.blogspot\.com -https?:\/\/([^\/]*\.)?youngerbabes-freesite\.blogspot\.com -https?:\/\/([^\/]*\.)?youngleafs-eh2a6kcze\.blogspot\.com -https?:\/\/([^\/]*\.)?youngpervs-com-wdh\.blogspot\.com -https?:\/\/([^\/]*\.)?youngshemalesex\.com -https?:\/\/([^\/]*\.)?your-online-health\.com -https?:\/\/([^\/]*\.)?your-starry-sky\.blogspot\.com -https?:\/\/([^\/]*\.)?yourbudgetcar\.info -https?:\/\/([^\/]*\.)?yourbusinesshouston\.info -https?:\/\/([^\/]*\.)?yourchryslersebring\.info -https?:\/\/([^\/]*\.)?yourgunter\.com -https?:\/\/([^\/]*\.)?yourhealthypharmacy\.com -https?:\/\/([^\/]*\.)?yourlust-com-rttu8a0a\.blogspot\.com -https?:\/\/([^\/]*\.)?yourmazdacar\.info -https?:\/\/([^\/]*\.)?yourmerchandise\.org -https?:\/\/([^\/]*\.)?yourofe\.com -https?:\/\/([^\/]*\.)?yrada\.flnet\.org -https?:\/\/([^\/]*\.)?yrecnfz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?yrgs2\.szm\.sk -https?:\/\/([^\/]*\.)?yronc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ysvc0\.szm\.sk -https?:\/\/([^\/]*\.)?ytdebao\.com -https?:\/\/([^\/]*\.)?ytgf84j\.nokedem\.com -https?:\/\/([^\/]*\.)?ythsq\.com -https?:\/\/([^\/]*\.)?ytifexil\.org -https?:\/\/([^\/]*\.)?ytlmc\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ytwoqlj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?yucaibooks\.com -https?:\/\/([^\/]*\.)?yuebing\.com -https?:\/\/([^\/]*\.)?yume-taira\.blogspot\.com -https?:\/\/([^\/]*\.)?yuniel-ebyd5\.blogspot\.com -https?:\/\/([^\/]*\.)?yunmak\.com -https?:\/\/([^\/]*\.)?yushantang\.com -https?:\/\/([^\/]*\.)?yvette-tshq577\.blogspot\.com -https?:\/\/([^\/]*\.)?yvonte-dyv02l\.blogspot\.com -https?:\/\/([^\/]*\.)?yvpwh\.szm\.sk -https?:\/\/([^\/]*\.)?ywnid\.szm\.sk -https?:\/\/([^\/]*\.)?ywuyuan\.com -https?:\/\/([^\/]*\.)?ywxjm\.com -https?:\/\/([^\/]*\.)?yycp\.com -https?:\/\/([^\/]*\.)?yylive\.info -https?:\/\/([^\/]*\.)?yyys\.com\.cn -https?:\/\/([^\/]*\.)?z411\.net -https?:\/\/([^\/]*\.)?za\.spamim\.net -https?:\/\/([^\/]*\.)?zabavna9sy4ka\.biografi\.org -https?:\/\/([^\/]*\.)?zaccary-ciworog\.blogspot\.com -https?:\/\/([^\/]*\.)?zachariah-bebg88d2x\.blogspot\.com -https?:\/\/([^\/]*\.)?zacharias-a0kmh1em7\.blogspot\.com -https?:\/\/([^\/]*\.)?zacharygen-okno4540\.blogspot\.com -https?:\/\/([^\/]*\.)?zacherie-m82qs0617\.blogspot\.com -https?:\/\/([^\/]*\.)?zack-ir368\.blogspot\.com -https?:\/\/([^\/]*\.)?zackari-kkcdz8\.blogspot\.com -https?:\/\/([^\/]*\.)?zackarylee-h4qu\.blogspot\.com -https?:\/\/([^\/]*\.)?zackerize-ge\.blogspot\.com -https?:\/\/([^\/]*\.)?zahtavia-riy3\.blogspot\.com -https?:\/\/([^\/]*\.)?zaid-wi0g\.blogspot\.com -https?:\/\/([^\/]*\.)?zaidimar-ej\.blogspot\.com -https?:\/\/([^\/]*\.)?zainab-t46we0w3y\.blogspot\.com -https?:\/\/([^\/]*\.)?zakaria-c5j57crpj7\.blogspot\.com -https?:\/\/([^\/]*\.)?zanaflex\.1\.p2l\.info -https?:\/\/([^\/]*\.)?zanuda-juja\.blogspot\.com -https?:\/\/([^\/]*\.)?zap-ar2fzu\.blogspot\.com -https?:\/\/([^\/]*\.)?zara-oze5dt\.blogspot\.com -https?:\/\/([^\/]*\.)?zarat\.php5\.cz -https?:\/\/([^\/]*\.)?zatowana-m5hsah3h\.blogspot\.com -https?:\/\/([^\/]*\.)?zaxswq\.com -https?:\/\/([^\/]*\.)?zayfa\.com -https?:\/\/([^\/]*\.)?zazu-ikzc0402\.blogspot\.com -https?:\/\/([^\/]*\.)?zbbi8\.fr33webhost\.com -https?:\/\/([^\/]*\.)?zbifhoep\.t35\.com -https?:\/\/([^\/]*\.)?zbjyzm1\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zbrown\.org -https?:\/\/([^\/]*\.)?zbwk\.com -https?:\/\/([^\/]*\.)?zcld\.net -https?:\/\/([^\/]*\.)?zdei\.nokedem\.com -https?:\/\/([^\/]*\.)?zdpid\.fr33webhost\.com -https?:\/\/([^\/]*\.)?ze-sex-video-download\.blogspot\.com -https?:\/\/([^\/]*\.)?zebbiejohnson\.blogspot\.com -https?:\/\/([^\/]*\.)?zebra-ka8g\.blogspot\.com -https?:\/\/([^\/]*\.)?zebutal\.1\.p2l\.info -https?:\/\/([^\/]*\.)?zeds\.info -https?:\/\/([^\/]*\.)?zeku-airhead\.blogspot\.com -https?:\/\/([^\/]*\.)?zelalal\.darkbb\.com -https?:\/\/([^\/]*\.)?zelalli\.blogcu\.com -https?:\/\/([^\/]*\.)?zelbasleto\.heavenforum\.com -https?:\/\/([^\/]*\.)?zeldomric\.dl\.pl -https?:\/\/([^\/]*\.)?zelekah-h5u4yo\.blogspot\.com -https?:\/\/([^\/]*\.)?zella\.grafbb\.com -https?:\/\/([^\/]*\.)?zelladar\.bb-fr\.com -https?:\/\/([^\/]*\.)?zellapask\.lolbb\.com -https?:\/\/([^\/]*\.)?zelpasacel\.dl\.pl -https?:\/\/([^\/]*\.)?zelrelacel\.su\.pl -https?:\/\/([^\/]*\.)?zelrelli\.zj\.pl -https?:\/\/([^\/]*\.)?zelrelzel\.blogcu\.com -https?:\/\/([^\/]*\.)?zelrictr\.lolforum\.net -https?:\/\/([^\/]*\.)?zelvaracel\.zikforum\.com -https?:\/\/([^\/]*\.)?zelviacel\.frbb\.net -https?:\/\/([^\/]*\.)?zelvicat\.fr-bb\.com -https?:\/\/([^\/]*\.)?zemiacik\.yi\.org -https?:\/\/([^\/]*\.)?zena-grmhf3shi\.blogspot\.com -https?:\/\/([^\/]*\.)?zenaidalee-rm0p6t8md\.blogspot\.com -https?:\/\/([^\/]*\.)?zenda-wszf1\.blogspot\.com -https?:\/\/([^\/]*\.)?zennie-ey5i633f\.blogspot\.com -https?:\/\/([^\/]*\.)?zenw7\.szm\.sk -https?:\/\/([^\/]*\.)?zephyr-tk1\.blogspot\.com -https?:\/\/([^\/]*\.)?zepporah-dypvn5g3\.blogspot\.com -https?:\/\/([^\/]*\.)?zerks\.info -https?:\/\/([^\/]*\.)?zfbfbs9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zfkmaei\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zghy2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zgzr\.com -https?:\/\/([^\/]*\.)?zhenrong\.com\.cn -https?:\/\/([^\/]*\.)?zhihehotel\.com -https?:\/\/([^\/]*\.)?zhiju\.home4u\.china\.com -https?:\/\/([^\/]*\.)?zhkaw\.com -https?:\/\/([^\/]*\.)?zhkuj\.fr33webhost\.com -https?:\/\/([^\/]*\.)?zhopaitalii\.info -https?:\/\/([^\/]*\.)?zhuxg\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zhw35iida\.org -https?:\/\/([^\/]*\.)?ziahya-cbqb\.blogspot\.com -https?:\/\/([^\/]*\.)?zimg4\.szm\.sk -https?:\/\/([^\/]*\.)?zimmerman-a4shi\.blogspot\.com -https?:\/\/([^\/]*\.)?zippedurl\.com -https?:\/\/([^\/]*\.)?zisai\.com\.cn -https?:\/\/([^\/]*\.)?ziseq-sex-movie-x\.blogspot\.com -https?:\/\/([^\/]*\.)?zithromaxbuycheap\.drive\.to -https?:\/\/([^\/]*\.)?zithromaxbuygeneric\.cut\.by -https?:\/\/([^\/]*\.)?zithromaxcheap\.drive\.to -https?:\/\/([^\/]*\.)?zithromaxgenericbuy\.drive\.to -https?:\/\/([^\/]*\.)?zithromaxgenericcheap\.dive\.to -https?:\/\/([^\/]*\.)?zithromaxxonline\.ovp\.pl -https?:\/\/([^\/]*\.)?zivuc-free-sex-movie-l\.blogspot\.com -https?:\/\/([^\/]*\.)?zjeyu\.com -https?:\/\/([^\/]*\.)?zjpgxo4\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zjudeyah-m2r38d\.blogspot\.com -https?:\/\/([^\/]*\.)?zjww\.com -https?:\/\/([^\/]*\.)?zlid3\.szm\.sk -https?:\/\/([^\/]*\.)?zljekr8\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zlocztw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zmga3\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zmodem-isjrjd\.blogspot\.com -https?:\/\/([^\/]*\.)?zocor\.bad-food\.net -https?:\/\/([^\/]*\.)?zocor\.barnkalas\.net -https?:\/\/([^\/]*\.)?zocor\.blomberg\.nu -https?:\/\/([^\/]*\.)?zocor\.bokmarke\.nu -https?:\/\/([^\/]*\.)?zocor\.bredbandsfabriken\.nu -https?:\/\/([^\/]*\.)?zocor\.center\.nu -https?:\/\/([^\/]*\.)?zocor\.hellstrom\.nu -https?:\/\/([^\/]*\.)?zocor\.hem\.nu -https?:\/\/([^\/]*\.)?zocor\.infosajt\.net -https?:\/\/([^\/]*\.)?zocor\.internetreklam\.nu -https?:\/\/([^\/]*\.)?zocor\.jacobson\.nu -https?:\/\/([^\/]*\.)?zoe-ktd\.blogspot\.com -https?:\/\/([^\/]*\.)?zofarl\.com -https?:\/\/([^\/]*\.)?zofia-hkn\.blogspot\.com -https?:\/\/([^\/]*\.)?zoie-g2h02z5mta\.blogspot\.com -https?:\/\/([^\/]*\.)?zoklaku\.forumculture\.net -https?:\/\/([^\/]*\.)?zoklapec\.dynamicbb\.com -https?:\/\/([^\/]*\.)?zoloft\.1\.p2l\.info -https?:\/\/([^\/]*\.)?zoloft\.1k\.pl -https?:\/\/([^\/]*\.)?zoloft\.skocz\.net -https?:\/\/([^\/]*\.)?zombie-r7ye\.blogspot\.com -https?:\/\/([^\/]*\.)?zovirax\.esdemasiado\.com -https?:\/\/([^\/]*\.)?zovirax\.inicioya\.com -https?:\/\/([^\/]*\.)?zovirax\.ole\.to -https?:\/\/([^\/]*\.)?zovirax\.redireccion\.com -https?:\/\/([^\/]*\.)?zoya-w1tebgqbtr\.blogspot\.com -https?:\/\/([^\/]*\.)?zpbvsng\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zpco4\.szm\.sk -https?:\/\/([^\/]*\.)?zpykbi9\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zqit6\.szm\.sk -https?:\/\/([^\/]*\.)?zqxss\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zsbupdo\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zswok\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zsxqgv2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ztauk\.szm\.sk -https?:\/\/([^\/]*\.)?ztkvz\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ztlztpj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?ztnqok7\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zuleima-epbxv\.blogspot\.com -https?:\/\/([^\/]*\.)?zulema-tsaieb\.blogspot\.com -https?:\/\/([^\/]*\.)?zulmarie-dk8\.blogspot\.com -https?:\/\/([^\/]*\.)?zuri-ch0\.blogspot\.com -https?:\/\/([^\/]*\.)?zurysarai-bykp\.blogspot\.com -https?:\/\/([^\/]*\.)?zusette-ai2\.blogspot\.com -https?:\/\/([^\/]*\.)?zvcqr\.szm\.sk -https?:\/\/([^\/]*\.)?zvnaw\.szm\.sk -https?:\/\/([^\/]*\.)?zvoh2\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zvzsxqw\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zxtpets\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zya9\.info -https?:\/\/([^\/]*\.)?zyban\.1\.p2l\.info -https?:\/\/([^\/]*\.)?zyban\.controlando\.com -https?:\/\/([^\/]*\.)?zybans\.blogspot\.com -https?:\/\/([^\/]*\.)?zyrtec\.1\.p2l\.info -https?:\/\/([^\/]*\.)?zyrtec\.1k\.pl -https?:\/\/([^\/]*\.)?zyrtec\.coz\.in -https?:\/\/([^\/]*\.)?zywyn\.info -https?:\/\/([^\/]*\.)?zzcwj\.myfreewebhost\.org -https?:\/\/([^\/]*\.)?zzdx\.com +# Words +s-e-x +zoofilia +xqit +ganzaoji +aot[eu]bang +sonnerie +sexyongpin +grusskarte +geburtstagskarten +sex(cam|chat|-with|-plugin|-zone) +adult(chat|live|porn|web\.) # dot for adultweblaw.com +(animal|cam|chat|dog|hardcore|live|online|voyeur)sex +(hardcore|teen|xxx)porn +lesbiansex\. #dot for lesbiansexmafia.org +(live|cam)girl +spycam +casino-online +online-casino +kontaktlinsen +cheapest-phone +laser-eye +eye-laser +fuelcellmarket +lasikclinic +cragrats\. +AFmbb\. +exicornt +paris-hilton +2large +oa274 +-horoskop +fuel(ing)?-dispenser +huojia +jinxinghj +telemati[ck]sone +a-mortgage +diamondabrasives +reuterbrook +lazy-stars +eblja +liuhecai +\bsexkanjer\.nl # sexspammer on nl (added by andre) +show-your-pussy # (added by andre) + +# Added by shizhao 7/4/05 to 7/9/05 +\btencent\.cc +\b00856\.com + +#spamming lots of wikis from different IPs +\bfidosoft\.de + +# Added by shizhao 7/19/05 +\bzggift\.com +\b51flower\.cn +\b1car\.cn +\bbjshunsui\.com +\bqhycchina\.com +\b9s6\.com +\bfullmelon\.com +\bxuemeipaper\.com + +# Added by Andre Engels 7/20/05 +\bnerdcamp\.net + +# Added by Datrio 8/4/05 +\bnonews\.ru +\bstatic\.net + +# Added by UninvitedCompany 8/5/05 +-handys\.de +handy-(fun|kaufhaus)\.tk + +# Replacing overly broad ones above - Andre Engels, 2005-08-09 +\b(heavytools|spyware|carisoprodol|sexforfree)\.webzdarma\.cz\b +viagra\.newmail\.ru +(donewhere|olonline|spyware)\.bigsitecity\.com + +# added by brion +about-travels\.host\.sk + +# Added by Yann on 25-8-2005 (from Meta) +hotsex\.free-pussy\.org + +# Annoying user on fr: +\.etunisie\.net + +# from zh +\.ltdcr\.(com|net|org|cn) +\.hkccr\.org +\.hkce\.(org|net) +\.cegcr\.(com|net) +\.hktmr\.com +\.hkltdcr\.org +\.tradeinvests\.com +\.ovecr\.cn +\.bjicp\.com +\.tvsou\.com +\.54163\.com + +# Mar 05 +\.rockphiles\.com +\.omninerd\.com # Do not remove\. See http://meta.wikimedia.org/wiki/Spam_blacklist/recurring_requests +detoxiy\.com + +# Apr 06 +bestcardshop\.pushline\.com + +# Jun 06 +eaeaq\.info + +#11 Jul 06 - bot spamming en.wp +clicnetwork\.com + +#17 Jul 06 - spamming en.wp +\.at/aaoffers + +#7 October 05 Hashar (spam on fr:) +fuckfactor\.com + +# Requested by Ta bu shi da yu, added by Tim Starling +nastydollars\.com + +# elian's + +# dec 05 +\.cyberthug\.de +# Amgine's +\b98\.to # Hégésippe's list +\.be\.ma\b +1stOK\.com +3xforum\.ro +\bservik\.com +executiveshuttleservice\.com +\.girls\.info #disabled by Naconkantari - re-instated with dot in front by Andre Engels +efl-law\.com +myflooring\.org +efl-law\.org +\bkonecco\.com +\b51hc\.(com|net) +\.365igo\.cn +\.8009999008\.com +\.bj-huayang\.com +\.bjyhtf\.com +\.cato\.co\.jp +\.chasedream\.com +\.cn-frp\.com +\.cnjunhe\.com +\.cnsunway\.com +\.dshow\.com\.cn +\.evergreen-aloe\.cn +\.game-level\.com +\.guanfiu\.jp +\.hailide\.com\.cn +\.jipiao258\.com +\.jwac\.net +\.lipin258\.com +\.lykwell\.com +\.replica(?:-watch-center|shopping)\.com +\.shjiankong\.com +\.shmenjin\.com +\.stonephenix\.com +\.tuiguang\.org +\.wlchem\.com +\.wowgoldvip\.com +\.xinyitong\.net +\.xylww\.com +\.yn578\.com +\.ynkmty\.com +\.zjunited\.com +\.zuche258\.com +hothouse\.linux\.dk +\.true-search\.net +\.wikipedia\.741\.com +freesexxx[1-4]?\.blog-city\.com +club[1-4]?\.blog-city\.com +\.comunalia\.com/replica +gaestebuch\.007box\.de +\.sove\.info +sexypinoy\.50webs\.com +\.gayhomes\.net +\.gozilla\.info +canadian-pharmacy-portal\.com +algohio\.com +altavista\.in\.ua +\.artezia\.net +\.q1\.ohost\.de +freehostonline\.com +websamba\.com +\.luckysportsmanagement\.com +\.steveyzerman\.com +levitra\.webzdarma\.cz +jarmyl\.tripod\.com +lunesta\.tripod\.com +xanax-pills\.tripod\.com +valium-online\.tripod\.com +sex4you\.webzdarma\.cz +s-sex4you\.tripod\.com +works(?:1\.netfirms|-at-home14\.tripod)\.com +green-tea\w*\.netfirms\.com +lunesta\.netfirms\.com +where\.netfirms\.com +best-weight-loss-diet\.netfirms\.com +ephedra-weight-loss\.netfirms\.com +incognitto\.tripod\.com +slow-weight-loss\.netfirms\.com +weight-loss-for-women\.netfirms\.com +on-line\.tripod\.com +medicine\.netfirms\.com +\.xf\.cz +xmail\.net +site\.voila\.fr/cine-passion +cine-passion\.site\.voila\.fr +nezumi\.dumousseau\.free\.fr +ann\.ledoux\.free\.fr +cechail\.site\.voila\.fr +datasheet4u\.com +\.digchip\.com +datasheet\.org\.uk +\.icbank\.com +bestincosmetics\.com +videposters\.es +josiemodel\.ca +brookesbedroom\.ca +top20man\.in\.ua +ringtonemaker\.blogs\.eurosport\.com +blog\.yukonho\.com +blogs\.wwwcoder\.com +ringtone\.forumco\.com +novogate\.com +4898\.rapidforum\.com +blogs\.heraldextra\.com +blog\.investing\.com +buddyprofile\.com +\.missoula\.com +justachat\.com +westwoodbapt\.org +toutelapoesie\.com +topsites\.blog\.expedia\.fr +buysanfranciscotours\.com +buyalcatraztours\.com +\bwhale\.to\b +vaccination\.org\.uk +pharma-store\.docspages\.com +tablets\.php5\.cz +no-amazon\.com +benefits-of-honey\.com +cartier-glasses\.personal-watercraft-loan\.info +iamtv\.tv +nigeria\.mooo\.com +lagospicture\.mooo\.com +aishwaryalife\.com +jessicaalbalife\.com +shakiralife\.com +terapatricklife\.com +adrianalimapics\.org +wifi(-world|-planet|guide)\.org +university-canada\.net +zwai\.stikipad\.com +hawksquawk\.net +maclenet\.com +\.enacre\.net + +# D\.M\.: used for shock links +goatse\.ca + +# Aphaia: +\.fengshui-xuankong\.com +\.chineseart\.com/feng-shui\.htm +\.smilingbamboo\.com +\bsplashblog\.com/order(ambien|carisoprodol)\b +www\.debt-money\.com +831rec\.blog99\.fc2\.com +www\.fm99\.com/implant_vote\.asp +julebyen\.com +apocalyptism\.ru +dolmen\.es\.iespana\.es +bburunestetik\.com\.tr +bestetik(?:forum\.net|ameliyat\.org|\.name|cerrahi\.biz) +bgogusestetigi\.com +bburunestetigi\.biz +bpsclinic\.biz +bteomandogan\.com +bkralsiteler\.Com +besiteekle\.com +bahsap\.gen\.tr +bfixarkadas\.com +biyimirc\.com +biyisohbet\.gen\.tr +bsohbetli\.net +biyi-sohbet\.com +bsohbete\.net +btrcafe\.com +bossanovamusic\.net +au-(feminin|masculin)\.blogspot\.com +millionnairedeluxe\.com +praguedailyphoto\.blogspot\.com +hotelsinweb\.com +cityweb\.gr +yahotels\.gr +heraklio\.gr +mykonosweb\.gr +astipalea\.gr +delmar\.gr +kithnos\.gr +alexandros-skopelos\.gr +yahotels\.(net|eu) +stripshowclubs\.com +nissiros\.gr +findhotels\.gr +travelsites\.gr +kardamilivillas\.com +beelinetv\.com +wwitv\.com +webtv-club\.com +tv-cb\.com +www\.incatech\.net/TR/productlist.asp +# Aphaia chinese spams 2007-08 +www\.2dou3\.com +www\.global-study\.jp +topbearing\.cn +jiadev\.com +hs-pv\.com +yg-pump\.com +086pm\.cn +m-sr.net/wld39n2r/immunity +www\.51ticket\.net +www\.21gctt\.com +www\.57usa\.com +www\.gt-stair\.com +www\.bjlaibao\.com +# Aphaia Job offering spams 2007-09 +vacancy@intershipco.com +info@acglogistics.net +# Aph. OTRS ticket #2007072110009211 +caiquecrazy\.spreebb\.com +# Aph Sep 2007 +dogbreedsdirectory\.co\.uk +# "Saibanin stop" spam +\bno-saiban-in\.org\b +\bwww5f\.biglobe\.ne\.jp/~kokumin-shinbun/H16/1601/1601002devilsystem.html +\bmaebashi\.cool\.ne\.jp/saibanin +\binterq\.or\.jp/enka/svkoya + + +# Brian0918 +\.look4vacation\.com +bulgaria-houses\.com +hawaiicity\.com +postersinc\.com +\.asn\.und\.edu +bbs-bscw\.nibis\.de +simple\.trustbee\.com +fulfillmentinformation\.com +hotnewdesign\.blogspot\.com +\.nova68\.com +tempurpedicshop\.com +investing-central\.com +licescabiesandbedbugs\.com + +# Datrio +adult\.dynu\.net +celika\.dynu\.net #add by Suisui +vendweb\.com + +# Massive spam +f9zs\.info + +# Suisui +\.raus\.de/crashme/ +northwestairlines\.bravehost\.com +news\.scenecritique\.com +mp3\.com/users/ +2ch\.bufuu\.mnw\.jp +\.16ch\.net +\.remus\.dti\.ne\.jp/~wings/ +\.angelplace\.jp #20060418 +\.eronavi\.st +\.ark-web\.net +\.porn-host\.org +\.kurumaerabi\.com +keytoart\.org\.ua +users\.iptelecom\.net +nihonjustice\.hp\.infoseek\.co\.jp + +# Datrio, spam on Commons and Wikinews +ijijiji\.com +\.5g6y\.info + +#Kylu +#req by Ryulong +animesongs\.com\.br + +#as per request on talk:spam_blacklist page - User:M7 (M\/) +adult-contact\.info +7-24porn\.com +cybartv\.org +gruntmuskielures\.com +ringtones-dir\.com +myglobaldir\.com +k98you\.info +gamenase\.com +w4t3r\.com +zekesbodyworks\.com +alfredo-braga\.pro\.br +members\.comteche\.com +softecare\.com +megaupkoad\.com +factorywhores\.com +dod1\.info + +#old inserts and direct requests to User:M7 +signoraggio\.com +\.1go\.it +wikipediaitalia\.blogspot\.com +megabustybimbos\.com +tropeaonline\.it +\.tuoip\.net +\.new-media\.it +sanzioniamministrative\.it +chicercatrova2000\.it +ajcarvelli\.com +mitopositano\.it +animemanga\.de +\.bleach\.de +detektivconan\.de +digitalmonsters\.de +dragonballz\.de +gundam(wing|seed)\.de +hikarunogo\.de +inuyasha\.de +\.naruto\.de +onepiece\.de +princeoftennis\.de +\.ranma\.de +shaman-king\.de +yugioh\.de +\.fanart\.de +(freeonlinecasinoslots|vip-freeonlineslots|vip-bestonlinecasinos|atlanticcitycasinos|car-insurance-)\.blogspot\.com + +#commons +health-medical\.be +freewebs\.com/diet-about-diet + +#Added by Raul654 on Jan 25 2006 - constant spamming on en main page +all\.yard\.ru +sleepgoodmusic\.com +w9uh\.info +\bnimp\.org\b +loldongs +# URL shorteners +\b0rz\.tw\b +\bleenk\.org +\bdwarfurl\.com +\.1tiny\.com +\.all\.at +andmuchmore\.com +ataja\.es +babyurl\.com +\.back\.to +\.beam\.at +\.been\.at +biglnk\.com +\.bite\.to +\.board\.to +\.bounce\.to +\.bowl\.to +\.break\.at +\.browse\.to +\bbrowser\.to\b +\.change\.to +\.chip\.ms +compactURL\.com +\.connect\.to +\.crash\.to +\.cut\.by +\bdigbig\.com\b +\.direct\.at +\.dive\.to +\.dri(?:nk|ve)\.to +\.drop\.to +\.easy\.to +\.eb\.cx +\beasyurl\.jp\b +escape\.to +\.everything\.at +\.fade\.to +\.fanclub\.ms +\.firstpage\.de +\.fly(?:ing)?\.to +fornovices\.com +\.forward\.to +\.fullspeed\.to +\bfun\.to +\.fun\.ms +\.gameday\.de +gentleurl\.net +\.germany\.ms +\.get\.to +\.getit\.at +glinki\.com +\bgot\.to\b +\.hard-ware\.de +\.hello\.to +\.hey\.to +\.hop\.to +hottestpix\.com +\.how\.to +\.hp\.ms +imegastores\.com +jeeee\.net/url +\.jump\.to +\.kiss\.to +latest-info\.com +\blearn\.to\b +\.lin\.kz +link\.toolbot\.com +linkezy\.com +linktrim\.com +ln-s\.net # silsor +lznk\.com +makeashorterlink\.com +\.mediasite\.de +\.megapage\.de +\.messages\.to +\.mine\.at +\.minilien\.com +\.more\.(at|by) +\.move\.to +moviefever\.com +mp3-archives\.com +\.musicpage\.de +\.mypage\.org +myprivateidaho\.com +\.mysite\.de +\bmyurl\.com\.tw\b +\.nav\.to +nlug\.org/url +\.notrix\.(at|ch|de|net) +\bnow\.to\b +\.on\.to +\.page\.to +\.pagina\.de +\.played\.by +\.playsite\.de +\.privat\.ms +\.quickly\.to +\.qrl\.be +\bqurl\.com +\.qurl\.net +\bradpages\.com\b +\.redirect\.to +\bremember\.to\b +\bresourcez\.com\b +\breturn\.to\b +rubyurl\.com +\.rulestheweb\.com +\.run\.to +\.runurl\.com +\bsail\.to\b +\.scroll\.to +\.seite\.ms +\.shortcut\.to +shurl\.(net|org) +\.skip\.to +skocz\.pl +\.snap\.to +\bsnipurl\.com +\.soft-ware\.de +\bsports-reports\.com\b +\.start\.at +\.stick\.by +\bstop\.to\b +\.surf\.to +s-url\.net +\.switch\.to +thrill\.to +tiny\.cc +tiny(click|link)\.com +\.tinyr\.us +\btinyurl\.(co\.uk|com)\b +tiny\.vj\.e\.pl +\.tip\.nu +\.tny\.se +\.top\.ms +tophonors\.com +\.tra(?:nsfer|vel)\.to +turl\.jp +\.turn\.to +\burlalarm\b.com\b +uncutuncensored.com +\.url123\.com +url\.fibiger\.org +\.url\.fm +urlcut\.(com|net) +\burl(?:freeze|ic)\.com\b +urlin\.it +url(?:mask|ser)\.com +vacations\.to +veryweird\.com +videopage\.de +virtualpage\.de +\.w3\.to +\.walk\.to +\.warp9\.to +web-freebies\.com +webalias\.com +webdare\.com +\.window\.to +xrl\.us +xxx-posed\.com +\.yours\.at +\.zap\.to +\.zip\.to +\bzuso\.tw +\belfurl\.com +\bdoiop\.com +\b301url\.com +\bkuso\.cc +\burlx\.org +\burl(?:snip|bee|logs)\.com +\bsx\.am\b +\btrimurl\.com\b +\btiniuri\.com\b +\bxn6\.net\b +\b9ax\.ne\b +\b(hot|tiny)?short(enurl|url|text|erlink)\.com\b +\bnot2long\.net\b +\biceglow\.com\b +\birotator\.com\b +\bigoto\.co\.uk\b +\bdl\.am\b +\bzwap\.to\b +\bexplode\.to\b +\bunonic\.com\b +\bnet\.tf\b +\bus\.tf\b +\bint\.tf\b +\bc[ahz]\.tf\b +\bedu\.tf\b +\bru\.tf\b +\bpl\.tf\b +\bbg\.tf\b +\bsg\.tf\b +\bkickme\.to\b +\blovez\.it\b +\bneedz\.it\b +\bcraves\.it\b +\bmeans\.it\b +\bdigs\.it\b +\badores\.it\b +\bchills\.it\b +\bis-(chillin|groovin)\.it\b +\bdrives\.it\b +\breads\.it\b +\bsurfs\.it\b +\bswims\.it\b +\bplayz\.it\b +\bsingz\.it\b +\bdances\.it\b +\bhas\.it\b +\bdoes\.it\b +\bshows\.it\b +\brules\.it\b +\brocks\.it\b +\bmakes\.it\b +\bsays\.it\b +\bowns\.it\b +\bzor\.org\b +\b(1024|128|16|256|32|512|64|8)bit\.at\b +\bagain\.at\b +\ballday\.at\b +\balone\.at\b +\baltair\.at\b +\bamerican\.at\b +\bamiga500\.at\b +\bammo\.at\b +\bamplifier\.at\b +\bamstrad\.at\b +\banglican\.at\b +\bangry\.at\b +\baround\.at\b +\barrange\.at\b +\baustralian\.at\b +\bbaptist\.at\b +\bbasque\.at\b +\bbattle\.at\b +\bbazooka\.at\b +\bberber\.at\b +\bblackhole\.at\b +\bbooze\.at\b +\bbosnian\.at\b +\bbrainiac\.at\b +\bbrazilian\.at\b +\bbummer\.at\b +\bburn\.at\b +\bc-64\.at\b +\bcatholic\.at\b +\bcatalonian\.at\b +\bchapel\.at\b +\bchristiandemocrats\.at\b +\bcname\.at\b +\bcolors\.at\b +\bcommodore(64)?\.at\b +\bcommunists\.at\b +\bcons(ervatives|piracy)\.at\b +\bcooldude\.at\b +\bcroatian\.at\b +\bcuteboy\.at\b +\bdance(mix|party)\.at\b +\bdanish\.at\b +\bdealing\.at\b +\bdeep\.at\b +\bdemocrats\.at\b +\bd(ivx|vd)(links|movies|stuff)\.at\b +\bdizzy\.at\b +\bdork\.at\b +\bdutch\.at\b +\bemulaaaaars\.at\b +\bend\.at\b +\benglish\.at\b +\beniac\.at\b +\berror40[34]\.at\b +\bevangelism\.at\b +\bexhibitionist\.at\b +\bfaith\.at\b +\bfight\.at\b +\bfinn?ish\.at\b +\bforward\.at\b +\bfree(bie|mp3)\.at\b +\bfrench\.at\b +\bgraduatejobs\.at\b +\bgreenparty\.at\b +\bgrunge\.at\b +\bhacked\.at\b +\bhang(up)?\.at\b +\bhide\.at\b +\bhindu\.at\b +\bhtmlpage\.at\b +\bhungarian\.at\b +\bicelandic\.at\b +\bindependents\.at\b +\binvisible\.at\b +\bjapanese\.at\b +\bjive\.at\b +\bkickass\.at\b +\bkindergarden\.at\b +\bkurd\.at\b +\blabour\.at\b +\bleech\.at\b +\bliberals\.at\b +\blinuxserver\.at\b +\bliqour\.at\b +\bmaxed\.at\b +\bmeltdown\.at\b +\bmethodist\.at\b +\bmicrocomputers\.at\b +\bmingle\.at\b +\bmirror\.at\b +\bmoan\.at\b +\bmormons\.at\b +\bmusicmix\.at\b +\bnationalists\.at\b +\bnerds\.at\b +\bneuromancer\.at\b +\bnewbie\.at\b +\bnicepage\.at\b +\bninja\.at\b +\bnorwegian\.at\b +\bntserver\.at\b +\bpaint\.at\b +\bpalestinian\.at\b +\bphoneme\.at\b +\bphreaking\.at\b +\bpolish\.at\b +\bpopmusic\.at\b +\bportuguese\.at\b +\bpowermac\.at\b +\bpro(cessor|testant|spects)\.at\b +\brapmusic\.at\b +\braveparty\.at\b +\breachme\.at\b +\breboot\.at\b +\brelaxed\.at\b +\brepublicans\.at\b +\brese(archer|t)\.at\b +\bresolve\.at\b +\bretrocomputers\.at\b +\brockparty\.at\b +\brollover\.at\b +\brough\.at\b +\brumble\.at\b +\brussian\.at\b +\bscared\.at\b +\bseikh\.at\b +\bserbian\.at\b +\bshort\.as\b +\bsilence\.at\b +\bsimpler\.at\b +\bsinclair\.at\b +\bslowdown\.at\b +\bsocialists\.at\b +\bspanish\.at\b +\bsplit\.at\b +\bstand\.at\b +\bsaaaaned\.at\b +\bstumble\.at\b +\bsupercomputer\.at\b +\bswedish\.at\b +\bsynagogue\.at\b +\bsyntax(error)?\.at\b +\btechie\.at\b +\btemple\.at\b +\bthinkbig\.at\b +\bthirsty\.at\b +\bthrow\.at\b +\baaaaplist\.at\b +\btrekkie\.at\b +\btrouble\.at\b +\bturkish\.at\b +\bunexplained\.at\b +\bunixserver\.at\b +\bvegetarian\.at\b +\bventure\.at\b +\bverycool\.at\b +\bvic-20\.at\b +\bviewing\.at\b +\bvintagecomputers\.at\b +\bvirii\.at\b +\bvodka\.at\b +\bwannabe\.at\b +\bwebpagedesign\.at\b +\bwheels\.at\b +\bwhisper\.at\b +\bwhiz\.at\b +\bwonderful\.at\b +\bzx(8[01]|spectrum)\.at\b +\b15h\.com\b +\b1dr\.biz\b +\b2url\.org\b +\b7ref\b +\b8rf\.com\b +\bactive\.ws\b +\bbydl\.com\b +\bbittyurl\.com\b +\bbizz\.cc\b +\bbriefurl\.com\b +\bc-o\.in\b +\bchopurl\.com\b +\bko168\.com\b +\bcool1[56]8\.com\b +\bontheinter\.net\b +\bcutalink\.com\b +\bdephine\.org\b +\bfx\.to\b +\bdrlinky\.com\b +\bfireme\.to\b +\bontheway\.to\b +\bnextdoor\.to\b +\bfancyurl\.com\b +\bget2\.us\b +\bspotted\.us\b +\bwent2\.us\b +\bhasballs\.com\b +\bglobalredirect\.com\b +\bgo\.cc\b +\bgonow\.to\b +\bgowwwgo\.com\b +\bhere\.is\b +\bhothere\.com\b +\bcoolhere\.com\b +\bhomepagehere\.com\b +\bmustbehere\.com\b +\bonlyhere\.net\b +\bpagehere\.com\b +\bsurfhere\.net\b +\bzonehere\.com\b +\biscool\.net\b +\bl8t\.com\b +\b5ux\.xom\b +\b9irl\.com\b +\b9uy\.com\b +\blink(frog|zip)\.net\b +\blispurl\.com\b +\bmidgeturl\.com\b +\br8\.org\b +\bnanoref\.com\b +\bozonez\.com\b +\bppcredirect\.com\b +\bquickurl\.net\b +\bqwer\.org\b +\bred\.tc\b +\bsky\.tc\b +\btnx\.be\b +\blol\.la\b +\bthe\.vg\b +\bredirectfree\.com\b +\bsurl\.ws\b +\bsg5\.co\.uk\b +\bfreegaming\.org\b +\bfreebiefinders\.net\b +\bop7\.net\b +\b2cd\.net\b +\b0kn\.com\b +\bv9z\.com\b +\bsimurl\.com\b +\bpassingg\.as\b +\bredirect\.hm\b +\brr\.nu\b +\bkwik\.to\b +\bfw\.nu\b +\bontheweb\.nu\b +\bisthebe\.st\b +\bbyinter\.net\b +\bfindhere\.org\b +\bonthenet\.as\b +\bugly\.as\b +\bassexy\.as\b +\bpass\.as\b +\bath(?:is|er)site\.com\b +\bisgre\.at\b +\blookin\.at\b +\bbeastdeals\.at\b +\blowestprices\.at\b +\bspydar\.com\b +\btz4\.com\b +\bcemper\.com\b +\burlproxy\.com\b +\bi\.am\b +\blisten\.to\b +\bxaddr\.com\b +\burlot\.com\b + +# spyware +\bntsearch\.com\b + +# spam +kapitalism\.net + +#Delphine's little list +a85\.no-ip\.biz + +#Essjay's list +xanax\.umaxnet\.com +free-web-polls\.com +superlongpenis\.com +therealincome\.com +doubleblue\.info +virtualneopetz\.com +stvincent\.od\.ua +\.pru\.in\.ua +uzhgorod\.ua +pornogames4\.com +jewsdidwtc\.com +bestv\.forenserver\.net +satellitetvtopc\.com +parts4euro\.com +\.getlazy\.tk + +#Jon Harald Søby's list +\.wsite\.org +janedoe0911\.tripod\.com +etnapark\.com + +#requests +coinable\.com #by epopt +\.meltemi\.pl +cheap-airline-tickets\.be +pills-pharmacy\.us +www-search\.be +bestdeals\.at +girlswantmore\.info +\.qiiq\.info +putinbay\.com +pibinfo\.com +putinbayphotos\.com +put-in-bayonline\.com +bizorigin\.com # DM +haber18\.com +\.kimim\.com +misterwatchonline\.com +lopezzz\.be +putinbayresort\.com +furosemide\.be +\.toprol\.be +lisinopril\.be +synthroid\.be +norvasc\.be +physicsarchives\.com +xenon-hebergement\.net +adultclub\.adultserving\.com +nigeriaplanet\.proboards43\.com +e-economysolutions\.com +friendscyberclub\.com +virginporn\.info #Requested on talkpage +qklinkserver\.com #Requested on talkpage +don-search\.com #Requested by freakofnurture +find-web\.info #Requested by freakofnurture +bypills\.net #Requested by freakofnurture +web-best\.info #Requested by freakofnurture +fisheaters\.com # requested by JzG +kensmen\.com/catholic # requested by JzG +enterfin\.net\.ru #requested by Sjakkalle + +# from zh wp 2006-5-30 +stanleyng\.net +\.etpass\.com + +##Nakon + +##The reasons for adding the links below is located at +##http://meta.wikimedia.org/wiki/Spam_blacklist/Log/Nakon/sbl + +#New +\bgiovannardierontini\.it\b +\bbusfoto\.nl\b +\bwsiadaj\.pl\b +\bmymusiki\.com\b +\bhadiths\.eu\b +\bgermanplaces\.com\b +\bistinitisti\.com\b +\bslacker\.ch\b +\bkanusur\.com\.ar\b +\breve-de-bagages\.fr\b +\bgooglekaydi\.com\b +\bla-malle-en-coin\.com\b + +#Old + +mesothelioma-fyi\.blogspot\.com +mygeneralhospital\.com +myabcsoaps\.com +justin-timberlake-news\.blogspot\.com +my-whitney-houston\.blogspot\.com +terminator-chronicles\.blogspot\.com +2008-american-idol\.blogspot\.com +aspsupergirls\.phpnet\.us +users\.libero\.it/seza +hifrienddd\.info +childharness\.net +self-defender\.net +girls4fuking\.com +spaland\.googlepages\.com +\.ho\.com\.ua +biki4\.com +\.rdos\.net +casino\.realdiscounts\.be +sessocities\.net +nigeria(?:one\.com|planet\.tk) +geocities\.com/seelagos +securefta\.com +freewaretown\.com +sharewareisland\.com +\.box\.net/public/4y0dyzya43 +discutfree\.com +\.coz\.in +fulltimewebmaster\.com +\.5[34]\.pl +\.internationalpenfriends\.net +rockdd\.beeplog\.com +nfhtt\.info +fo4n\.com +de\.kakiko\.com +bloomingtonnormal\.com +glow-sticks\.org +glowsticks\.co\.uk +partners\.webmasterplan\.com +\.hepi\.pl +hometown\.aol\.com/(kolakq|cup2006fifa|fokann) +\.hentai\.com +\.xhost\.ro +nigeria\.chickenkiller\.com +pharisees\.org +xhostar\.com +\.sufx\.net +\.pochta\.ru +hometown\.aol\.com/viagriu +ooqwe\.info +gabenewell\.com +\.tvhosted\.com +theglowcompany\.co\.uk +forum\.bodybuilding\.com +bodybuilding\.com/fun/bigron +guide-(phytosante|proteines|vitamines)\.org +all-musculation\.com +forums\.2cpu\.com +g00ns\.net +lastoa\.cat +1golod\.org +1jolla\.org +1ebalo\.org +1ibanusiks\.org +1domiks\.org +\bipoo\.org +american-eagle-gold-coins\.com +thefreepornking\.com +\byu\.to +onlineph\.info +digitalpoimt\.com +quotesandpoem\.com +kikks\.info +qp16\.com +webcamhelp\.redirectme\.net +adult\.csx\.jp +ad\.zanox\.com +1narodoo\.org +fort-myers-florida-real-estate\.com +bbtttgg\.org +brrddd\.org +jhyujik\.org +kktthhyy\.org +lliippoo\.org +mewqsd\.org +mmuukkii\.org +nnyykkii\.org +nnntttl\.org +nnwwddrr\.org +polott\.org +ssddffrr\.org +ttuuoopp\.org +vfrrto\.org +vttolldd\.org +vttthtgg\.org +download\.reggdr\.org +mikewsd\.org +1kioskoo\.org +ifa-space\.de/host/pills +freeforen\.com/wss/host/pills +space\.webshells\.de/host/pills +\.thima\.org +kingmegames\.com +pyrobilia\.com +faragauss\.com +\.accim\.org +free-forums\.org +\.anzwers\.net +\.jw0\.info +groto\.info +bjdyzs\.com +zgxbw\.cn +shfldz\.com +home-trade\.net +home4u\.china\.com +mhgzs\.com +lkcx\.com +webtest-community\.canoo\.com +\.jo\.pl +\.blog\.naszemiasto\.pl +pardoschiken\.info +parent(leaders|directorymp3|soasis|ingliving|sreportcard)\.info +parejaslibeales\.info +paripori\.info +paris(officedetourisme|tennessenews|roller|texasnewspaper)\.info +park(11|avemassage|avenuecoc|blvdwest|crossingpoker)\.info +\.abukir\.info +bao(jiti|leys|limingdu|linzhai|lize)\.info +admmission\.info +ad(mmusicgroup|musics|musicacademy)\.info +nychesskids\.com +makinamuhendisi\.com +u288\.com +bxava\.prv\.pl +imsn\.biz +piranho\.com +top\.netfirms\.com +homes\.aol\.com +tfitj\.info +espacioblog\.com +(udtgt|pzkyy|pxjhh)\.info +21publish\.de +chezmoi\.aol\.ca +\.cs\.com +mpsong1\.info +mpmusik2\.info +mp-song3\.info +mp-musik4\.info +super10sites\.info +mopstravel\.com +forumgratis\.com +phpbbforfree\.com +tekcities\.com +freehostpro\.com +batcave\.net +finance-on-line\.biz +trade-soft\.biz +aba2ad\.info +acac3ad\.info +kvadratdvd\.com +proinvestment\.biz +drivecleaner\.com +editthis\.info/the_alternative_universe +1foleks\.org +chronicpainresourcecenter\.com +shihhsin\.com\.tw +\.westlord\.com +realfierotech\.com +fieronews\.com +skincarecity\.com +kleeneze-information\.co\.uk +earningsboost\.com +kleeneze-information\.com +\.slum\.in +\.iwde\.de +shop-links\.info +\.rapa\.jp +airports\.org\.ua +logicgame\.com\.ua +putivnyk\.com +ishipress\.com +jbactors\.com +greysanatomyinsider\.com +hometown\.aol\.co\.uk +\.ewebet\.com +softherenow\.org +\.aswev\.info +penispillinfo\.com +blog\.expresso\.repubblica\.it +rss99\.com +pvcblue\.com +bitefight\.it +adsense-wissen\.de +nueva-acropolis\.org\.ar +body-builder-pro\.com +structuredsettlementtips\.com +findlocalguide\.com +tvmilk\.com +5191victims\.com +\.za\.pl +bigestass\.info +ibdanswers\.com +greiff\.org +devrosareas\.waw\.pl +banki-online\.info +searchadv\.com +topmeds10\.com +freewebspace\.com +opensourcearmenia\.com/members +bloopdiary\.com +\.lenta\.com\.ua +corona4\.info +medicine-center\.info +111porno\.com +myautomaticlinkexchange\.com +islands-n-beaches\.com +animals-pictures-dictionary\.com +\.ses1\.info +\.nif1\.com +\.45\.kg +\.ledes\.net +\.thea[spt]\.info +xoomer\.alice\.it/(dynamixpro|iokimo) +yearlykos\.org +rootg\.org +\.comlive\.biz +\.rubite\.net +accki\.com +bapki\.com +\.xvec\.com +xlal[0-9a-z-]*\.com +extrasound\.net +urlcutter\.com +\.rollyo\.com +mixtapeman\.net +beatclappaz\.com +download-mixtapes\.net +\.ton4all\.com +\.topege\.com +wiretappro\.com +relytec\.com +cap3lxrw\.info +\.mnoga\.com +nascarspace\.com +freehost\.pl +greatestjournal\.com +e4ls6p2\.com +\.new[aeiouy][0-9a-z-]\.info +artbennett\.net +\.allall\.org +freewebsitehosting\.net +fqred\.com +streamload\.com +kipredinstitute\.org +woodking24(?:\.exporterindias|india(\.b2bquote)?)\.com +geocities\.com/woodking24 +(indoor|outdoor|rustic|indian|home)furniture\.co\.in +20six\.co\.uk +\.pill[0-9]\.info +funchain\.com +\.soduko\.org +monforum\.fr +megspace\.com +topozo\.org +medbucks\.info +techblog\.net\.ru +\.dv8\.com +shoes(ebuy|order|shop)\.(com|biz) # shoesshop added in Spam blacklist cleanup +xoomer\.virgilio\.it/insurance* +slsae\.org +anzwers\.org +ashanet\.ru +kapills\.com +freerhost\.com +sosovica\.info +pelendrek\.com +yarsity\.com +kuznetsova\.net +cocaine-drink\.com +tmx-elmo\.org +nitrousdirect\.com +penny-stock\.org +house-mortgage\.org +DieselSmoke\.com +blogsit\.ru +blogmania\.ru +vnunetblogs\.com +blog\.kataweb\.it +wmjblogs\.ru +sledtv\.org +donate-eggs\.com +acne-b5\.org +peter-leeds\.org +badcredit-loan\.org +foto-julius\.at +sexandcum\.info +\.astore\.amazon\.(com|co\.uk|fr) +srisathyasaibookcentre\.org\.uk +liveeyetv\.org +lonympics\.co\.uk +lyricsandsongs\.com +bellproxy\.com +kitzor\.com +zluf\.com +bettersolutions\.com +extranomical\.com +yosemitetours\.travel +coffeereview\.net +auto-insurance-company\.net +isbn-check\.(com|de) +pimpblog\.nl +reciter\.com +blogagotchi\.com +classic-car-insurance\.biz +free-mortgage-calculator\.info +christine-hanson\.com +topjobnet\.org +bet-at-home\.com +bet365\.com +10bet\.com +israelnewsagency\.com +cheridinovo\.com +zhitomirhost\.com +wrestlingobserver\.com/wo/news/headlines/default\.asp\?aID=19419 +yamour\.com +\.hour\.ws +wainscoting\.info +\.ostuni\.tv +painkillers\.com +wheelsinternational\.com +appraisalcenter\.com +www\.mashup\.com +bastardpop\.com +tqscore\.com +it-aly\.com +usatn\.com +australiagate\.com +cana-da\.com +fr-ance\.com +turkeygate\.com +uk-time\.com +usaak\.com +usamn\.com +lapiazzetta\.lecce\.it +greenlandtravel\.com +dailyyoutubeblog\.blogspot\.com +npizlog\.org\.yu +globaljihad\.net +germanygate\.com +bookistanbul\.com +j-apan\.com +egypt-Ian\.com +cafeDeyIm\.com +\.minibus\.ws +allstarnba\.es +truehealthy\.com +\.ybay1\.co\.il +gamegoldspace\.com +mergerinvesting\.com +look-for-albania\.com +alldatasheet\.com +datasheet\.kr +ethanol-news\.de +unleashmypower\.com +prosumersystems\.com +dreamcrowd\.com +arkleywatch\.blogspot\.com +ronpaulforum\.com +quotaless\.com + +#Brass India +aksharmetal\.com +appleeou\.com +appleinternational(enggworks)?\.(com|in|co\.in) +appleworldwide\.com +autobrassonline\.com +brass(turnedcomponents|terminalconnectors|-screws-bolts-nuts|precisionparts|partsindia|nuts-brassbolts|neutrallinks|-inserts-fasteners-india|insertsbrassnutsbrassbolts|buildinghardware|cableglands|electrical|electricalaccessories|electricalcomponents|fastenersindia|-fasteners|-fasteners-india|fittingcomponents)\.com +brassparts\.ind\.in +cable(glandsworldwide|-glands-asia|glands-india)\.com +hindustanimpex\.com +jamnagaronline\.com +rathodind\.com +sahajanandbrass\.com +skynetindia\.info +siliconbronzefasteners\.com +shivombrass\.com +webnettechindia\.com + +#req on ANI http://en.wikipedia.org/wiki/Wikipedia:Administrators'_noticeboard/IncidentArchive120#New_York_City_blackout_of_1977 +\.acmedias\.org +aquinox\.net +\.ballfolio\.com +clantemplates\.com +\.compagnons\.org +dragonflyeast\.com +\.easl\.info +erisfree\.com +\.iaa-dc\.org +\.j-mayer\.org +jouvence\.com + +rockthedesert\.com +soargbsc\.com +somber-resplendence\.net +starfan\.lamost\.org +\.abook4all\.com +applausestore\.com +comfortinndowntown\.com +creativesplendors\.com +\.doggroups\.com +emulnation\.info +flyingpirate\.com +infinet\.net +kit2fit\.com +mi-aime-a-ou\.com +\.mohid\.com +pulverradio\.com +quiz-zone\.co\.uk +simplefuture\.org +splendidshirt\.com +systemtek\.net +vegas-coupons\.org +webdistributionltd\.com + +#end of ANI + +#Universe Daily (en.wiki redir spam) +alien(life|news)\.info +amateurspaceflight\.com +\.artofwar\.name +atomicrockets\.com +\bbadastronomer\.com\b +bindiirwin\.info +carlsagan\.info +chloemurdoch\.com +\.dalek\.name +\.dinosaurs\.name +everythings(?:cience\.org|pace\.com) +fuckamerica\.info +fuckisrael\.org +james-?packer\.(info|net|org) +jamie-packer\.(com|net|org) +jamiepacker\.(com|net) +janogibson\.com +jeeperscreepers3\.net +jerrypournelle\.(net|org) +jodhi(meares|packer)\.com +jodiemeares\.com +lachlanmurdoch\.(net|org) +lochnessmonster\.name +manpoweredflight\.com +\.minotaur\.name +monster(hunter|news)\.org +nuclear(?:(australia|starships)\.com|space\.org) +projectorion\.(proboards28\.com|info|net|org) +richardfinnila\.com +rupertmurdoch\.ws +robertzubrin\.com +\.science(?:(?:geek|weekly)\.info|news\.(?:name|ws)) +sciforums\.info +space4peace\.com +\.space(?:daily\.info|forums\.(?:info|org)) +stephenhawkingsuniverse\.com +\.terrorismnews\.info +universe(?:daily\.(?:com|info|net|org)|today\.(?:info|net)) +wendideng\.(net|org) +wendimurdoch\.com +wikipedia[clm]\.(info|net) +\.wikipedian\.info +yowiehunter\.com +\bganjagrower\.com\b +\balienstarships\.com\b +\bterriirwin\.(?:info|name)\b +\bmasterwho\.com\b +\bdalekinvasion\.com\b + +#end UD + +##Gastrich +jcsm\.org +jasongastrich\.com +(la|sd)musiclessons\.com +\.golbu\.com +maleboge\.com # added by JzG ~~~~~ + +#end G + +##redirection spam on simple\.wiki +\.computersci\.net/wwwboard +\.hemsida\.net/wwwboard +\.shieldofprayer\.org/Requests +\.evilcycling\.com/evilcrap +redmondcyclingclub\.com/evilmessages +\.novurengoi\.ru/wwwboard +\.charm\.ru/wwwboard +wiki\.esm\.co\.jp:8080/myswiki +objectclub\.esm\.co\.jp:8080/myswiki +\.fukuikenren\.or\.jp/wwwboard +\.terrybozzio\.com/wwwboard +swiki\.nadir\.org/refs +japanese-girl-xxx\.com + +##spam on catux\.org +doc\.svp-info\.com +weer\.blogs\.(eurosport\.es/files|com/f) +figgles\.8k\.com +privetparis\.com + +##spam on sonikmatter\.com +\.trafu\.com +\.pantyhose-net\.com + +##fsorward +needlustgirl\.org + +##phrases +(online|discount|best)(md|rx) +cheap-xanax +bestviag +buycheap +llpharm +phvonline +wikipharm +bobbyboulders +imwithbobby +dronnoal +tprehj +cheap-airfares +myzenegra +netftpblya +payday-loan +consolidatedebt +onlinecollegedegree +cashadvance +rentersinsurance +businesscreditcards +freeblowjobvideo +freexmovies +010897078278572180631 + +#urlredir +\.short\.be +\.n3t\.nl +\.f2b\.be +\.n0\.be +\.ssr\.be +zapto\.org +redirectme\.com +\.myftp\.(biz|org) +bounceme\.net +\.hopto\.org +myvnc\.com +serve(beer|blog|counterstrike|ftp|game|halflife|mp3|pics|quake)\.com +sytes\.net +clipurl\.com +wapurl\.co\.uk +liteurl\.com +zippedurl\.com +32url\.com +\btinyurl\.us\b +relurl\.com +urlkick\.com +1url\.org +masl\.to +lnk\.in + +##End of Naconkantari + +# Added by MaxSem + +## August 2006 +\.ipfox\.com +\.opticsplanet\.net +thesexlane\.com +herhairlosshelp\.com +kittenbootie\.info +carrotjuice\.com +pineapplejuice\.com +aceshowbiz\.com +\.fiero\.nl +alexeykaz\.boom\.ru +\.rxhj\.net +lop\.netfirms\.com +\.nokedem\.com +booksmusicfilmstv\.com +freehardcorevideo\.org + +## Sept +freewebs\.com/pool-supply1 +pharmacy-on-line\.org +abcfreeringtones\.com +\.allln\.com +plone\.akl\.lt + +## Oct +the2ndmortgagehelp\.com +encyclopediadramatica\.(?:com(?!/Main_Page)|net|org) + +## Nov +offshoreincorporation101\.com +earthanduniverse\.net + +##Jan 2007 +milstd\.net +my-spaces\.org +parishiltontoday\.com +aim-search\.com +gocurrency\.com +fxwords\.com +forextradingllc\.com +##Mar 2007 +beam\.to +##May 2007 +mobipocket\.ru +excitesearch\.info +##December 2007 +\bsommelier\.dn\.ua + +# Eloquence, August 2006 +rexcurry\.net +\.2surf\.eu +122mb\.com +neopets\.com/refer\.phtml\?username= # requested by Ryulong +zetapets\.com/register\.php\?ref= # requested by Ryulong +\.lotoplay\.com + +# Walter +web247\.s5\.netcup\.net # German linkspammer + +#http://en.wikipedia.org/w/index.php?title=User_talk%3ACool_Cat%2FArchive%2F2006%2F09&diff=77994772&oldid=75840958 +\.webhosting\.gs +hottest-host\.com +www4free\.de +wingisp\.com + +# http://fr.wikipedia.org/w/index.php?title=Licence_publique_g%C3%A9n%C3%A9rale_GNU&diff=10489059&oldid=10479749&rcid=10039037 +parishilton-paris\.blogspot\.com +lifestylemagic\.com #en spamming +strumpette\.com #en spamming; discussed by arbcom + +#The following sites are being used to get around the scroogle.org spam blacklisting (above) +being-ones-self\.org +myegotimes\.com + +# from zh wp +\.x4hk\.com +\.gogameland\.com +\.x-shopz\.org +\.banan\.net\.ua + +#added by Darkoneko 27/01/07, due to spambot on fr:wp +daimonds\.php5\.cz + +# 1/29/07 -- Dmcdevit +jeder-tag\.de +gooya\.co\.uk +freemasonrywatch\.org +old-classics\.info +dsbworldwide\.com +LasVegasBaby\.net +mycraigranch\.com +mylocallink\.com +planoland\.com +professionalhooker\.com +SinCityBaby\.net +texomaland\.com +thongtalking\.com +webitems(pro)?\.com +ingenieur-verlag\.de + +#added by Redux on February 1st 2007 +elodiscovery\.com + +# [[Spam blacklist/Log]] + +## Unknown +(gui.*|chai?r|lamp.*|cook.*|visa.*)\.white\.prohosting\.com +buy-cheap-meds\.us +julie\.xxserv\.com +pills-pharmacy\.net +searchterror\.com +\.lycos1\.com +\.0s48\.info +torontonian\.com +vacarreno\.net +wiki\.servetown\.com +cumfiesta4\.us +stadianet\.com +(alprazolam|ambien|diazepam|valium|xanax|zolpidem)\.daj\.pl +sex\.hut1\.ru +vanjatka\.be +\.vorbo\.com +stdhost\.net +kelly-hosting\.com +101hosters\.com +cvh100\.com +onix1000\.com +\.k6je\.info +\.w0qb\.info +drugs\.(?:(?:mooo|ignorelist|chickenkiller)\.com|strangled\.net) +\.lol\.to +loprox\.atwork\.to +niaspan\.mrfriendly\.com +tricor\.athome\.to +\.7726\.info +\.cc3\.be +freesexyhouse\.com +skozlozop\.com +z0rder\.tripod\.com +smuttygirls\.info +f3so\.info +(allmed|comeds)\.blogs\.eurosport\.com +\.dare14\.com +ourtrinity\.net +oxrash\.com +cell-phones-store\.net +order-online\.50webs\.com +casino-(flower|baron)\.com +pornzonehost\.com +meenan1\.com +west263\.com +firmasiden\.com +\.ttmr\.com +gangchenpa\.com +\.ibada\.org +sd1718\.com +huaxianame\.com +\.tour[0-9]+\.com +chinese-pesticide\.com +\.jsgmt\.com +\.rmbrmb\.com +\.ndtek\.com +ynkm-trip\.com +\.euyn\.com +e-fanyi\.com +\bhuangshan\.com(?!\.cn\b) +hssight\.com +changyuansh\.com +\.ynsw\.com +datianmachine\.com +microzovd\.com +haugeprint\.co\.uk +logical-planet\.co\.uk +-luxuries\.co\.uk +\.playbest\.de +ja-ac\.com +attapulgite\.org +international-pharma\.com +51crab\.com +touchcn\.net +cmd365\.com +sensmagnets\.com +cnliandong\.com +szsuun\.com +blueattain\.com +color4day\.com +\.rorta\.com +worldinternational\.co\.uk +\.abiao\.name +\.aaff\.net +\.aagg\.net +\.atb\.name +attapulgite\.com +yucaibooks\.com +bjicp\.net +[0-9]+epson\.com +newboyu\.com +digital-projector\.net +\.ponytest\.com +nbflashlights\.com +-bidet\.com +google163\.net +geciwu\.com +enjoyguilin\.com +burningcar\.net +csetouch\.com +lvhang\.com +cnttec\.com +sinosyn\.com +black-eyes\.net +86ieta\.com +bjyiwang\.com +reputek\.com +autumncom\.com +sun-sand-sea\.com +jiatugz\.com +chenguang-cn\.com +shangguanhong\.com +payono\.com +anttm\.com +sharella\.com +yesmeaning\.com +bj-dzjp\.com +cn-fireplace\.com +si-bay\.com +overseas-edu\.com +iron-world\.com +cnyunge\.com +cnwinch\.com +rongpeng\.com +pasco-stationery\.com +accessories-car\.com +chinese-suppliers\.com +chinalifting\.com +blogletters\.com +uvinewine\.co\.uk +couponmountain\.com +hukuki\.net +gift800\.net +\.mmyou\.com +chinamimi\.net +fimdainternet\.com\.br +allwoodoxford\.com +cornishholidaysuk\.com +\.169xp\.com +silberhochzeit\.de\.nr +-diaeten\.de\.vu +-testen\.de\.ms +malvorlagen\.de\.ms +-kochrezepte\.de\.vu +abnehmen\.freeweb-hosting\.com +hintergrundbilder\.us\.ms +waycn\.com +dealcn\.com +\.artsdeal\.com +\.stonedeal\.com +decorationsexport\.com +nikeproduct\.com +shoesbuynow\.com +seekcn\.net +tupianwu\.com +\.ling8\.com +\.ok8\.org +dirhot\.com +kan365\.com +yuding\.org +sex-fu\.com +geneostar\.com +a--e\.com +card-lottery\.org +nikesupplier\.com +top-point\.net +ukex\.net +yedian\.com +\.contake\.com +ulcer\.by\.ru +\.ulcer\.ws +gt-lite\.com +flowerwish\.com +sec-battery\.co\.uk +-hire\.co\.uk +tcom-control\.co\.uk +parkersexecutivecar\.co\.uk +beaumont-bar\.co\.uk +owaceilings\.co\.uk +jgc-network\.co\.uk +execsoft-software\.co\.uk +bodet-clocks\.co\.uk +buzz-hotels\.co\.uk +longcrossgroup\.co\.uk +pantandsocks\.co\.uk +bjrealcolor\.com +efuchina\.com +21cnmanager\.com +xunte\.com +\.aclas\.com +radi-instrument\.com +wbzj\.com +marketingbetter\.com +topcel-battery\.com +23mr\.com +bennettchina\.com +luckyarn\.com +\.shgoto\.com +battery-oem\.com +kingview\.com +hlhologram\.com +haiz\.com +jiasongmachine\.com +fiporter\.com +brightking\.com +lily-bearing\.com +waysvalves\.com +hy-chem\.net +v2tech\.com +pumpvalveworld\.com +flashfun\.com +eastdb\.com +[0-9]+fang\.com +\.omnia\.co\.uk +shopper-jobs\.us +bjedin\.com +vivaful\.com +googlead\.com +21cnbj\.com +packmc\.com +dnsvhost\.com +2kdata\.com +raiddata\.com +nactech\.com +markemiah\.com +jobbnu\.com +ifamen\.com +hrbyly\.com +bpzj\.com +bnuteacher\.com +datasoon\.com +butianshi\.com +iqwork\.com +uswebdata\.com +bnuol\.com +hddata\.com +by-and-by\.com +egyway\.com +xxx\.biz +bucuo\.net +cqhyjx\.com +qjfy\.com +guilintour\.net +360e\.net +chinajack\.com +jiefo\.com +web136\.net +hyey\.com +china-crestron\.com +fif-relay\.com +power-steering-pump\.com +xiaogang\.com +happysport\.com +\.cn006\.com +ittea\.net +mysunmun\.com +luck-star\.com +hailuo\.net +jnjlnet\.com +\.sx98\.com +cnsepm\.com +\.pdjt\.com +\.hjbt\.com +\.jsags\.com +\.bzsf\.com +cn-mzc\.com +yi-tong\.com +runtudyes\.com +cghyjx\.com +\.hegao\.com +star-machinery\.net +jitianmachine\.com +fultrust\.com +\.wx-e\.com +nahoku\.com +blogeasy\.com +paidsurveysforall\.com +isourceindia\.com +thuriam\.com +swellongtools\.com +\.tlup\.com +szhicom\.net +inflatables-china\.com +yourgoogle\.com +transcosmo\.com +ty9run\.com +\.ad-www\.com +\.10000s\.com +\.allwally\.com +\.togoogle\.net +jiayinte\.com +pkuyy\.com +\.ebani\.com +52wenxue\.com +eczz\.com +211\.157\.35\.153 +musica\.org\.es +\.y365\.com +-cam-chat\.com +-chat-(room|live)\.(us|com) +-webcams\.com +xyzdown\.com +boxget\.net +swan-storage\.com +china57\.com +touch168\.com +fly-sky\.com +ancientmoods\.com +\.zhanao\.com +easthome\.com +putixin\.com +d-secure\.com +dadaposter\.com +gongsizhuce\.com +huifu\.com +cnnttm\.com +soonlink\.net +cnbjflower\.com +sexeach\.com +branson-china\.com +lycos\.(?:co\.uk/elo575|es/migmigmig|nl/pierre141) +easyspace\.com/hkl +\.lj5\.net +beijingxinfa\.com +\.88888\.net +xzyrack\.com +sinrui\.com +bjjingtu\.com +\.dfrog\.be +-frauentag\.de\.sr +zonemu\.com +ama-son\.com +ad-ope\.com +lariska-porn\.com +-topliste\.com +tintenpatronen\.tv +strapse\.tv +zhongzhibiotech\.com +creator-cg\.com +sfcomm\.com +dnsasp\.com +100free\.com +sixmarklhc\.org +-casino-chips\.com +pv365\.com +365pv\.com +pump365\.com +valve365\.com +bengfawang\.com +magnus-automation\.com +thaistudy\.net +think-t\.com +newstyle-w\.com +writerlw\.com +ly-yufeng\.com +lnhbsb\.com +\.dfhb\.com +xinpushihua\.com +casters-net\.com +amwaypower\.com +vita-biotech\.com +google123\.net +900house\.com +globalfbc\.com +xiloo\.com +xagoogle\.com +dvdcn\.net +xiaji\.net +guilinhotel\.info +nanting\.com +news123\.org +midiwu\.com +huola\.com +bjhsdx\.com +51zhengxing\.net +dongdao\.net +kredit-magazin\.com +dprktime\.com +lookupcars\.co\.uk +china2house\.com +buch5\.com +-watch-china\.org +dacash\.com +omeida\.com +huihualin\.com +chindata\.com +tonzh\.com +raise-win\.com +approachina\.com +bjacca\.com +tmrr\.com +1annonce\.com +sunstar\.ws +\.cock\.ws +adp6\.co\.uk +gatewaytotheorient\.com +domesticgear\.com +aajj\.net +aauu\.net +kykdz\.com +china-crawfish\.com +in-net\.ws +yahoo\.com/(a1likostar|a0cany_2004|a00poleroid|a00asaz|a0_00leksa|stoons_cartoon|skystarpilot|klirinc|fhkdfohjdfhk|freekeramika|aikishot) +les-mas-de-provence\.com +mp3prof\.com +fullhentaimovies\.net +-hentai\.net +tartkartong\.com +macdostu\.com +disney-toons\.com +cn4e\.com +hzsaite\.com +shjiajiao\.com +myetang\.com +locloso\.com +bzzt\.net +zoosex\.net +knasweb\.se +marnkad\.nu +\.84g\.com +\.4acn\.com +in-sexstory\.com +pics69\.com +rp-story\.com +-preisvergleich\.de +price-comparison\.com +cupfart\.net +categoryshop\.com +rake-back\.com +clubducati\.com +virgoans\.co\.uk +grandads\.co\.uk +\.5p\.org\.uk +noisybrain\.tv +\.3xx\.org +baby-sleep\.us +eq-1\.usrecipes +online-web-detective\.com +pop-the-question\.us +gooddy-images\.com +catering\.better-living\.us +ultrawiredsex\.com +apache-stuff\.com +css-stuff\.com +pythoninfo\.com +ushummingbirds +usfederal-firearms-license +black-sex-teen\.com +wislearn\.tv +popkalaset\.nu +tgpoverdose\.com +porrposten\.com +helena\.lindskog\.ws +vscorp\.com +realestatecds\.com +letscompareit\.com +archive4mail\.com +funeral-planning\.us +spytek\.tv +annonsplatsen\.nu +internet-world\.nu +de-lete\.tv +\.puttel\.com +\.vastra\.nu +\.quality\.nu +nudotnetguy +save-money\.ws +\.brig\.nu +pics-of\.(com|org) +pictures-free\.org +\.wic\.nu +\.xvil\.tv +vetskapskoltema\.nu +mauraders\.nu +usstop-your-divorce +etrafik\.com +everythingonweb\.net +a-z-how-to\.us +day0\.comcatch-a-cheat +states\.hostrocket\.com +sew-roman-shades\.com +medica-center\.com +google8\.net +websitedesigningpromotion\.com +bahraichfun\.com +thewebbrains\.com +overseaspharmacy\.com +biztravels\.com +ceramic-mugs\.com +governmentgrants-us\.com +justsweatshirts\.com +tmlawoffices\.com +gccgle\.com +lingeriesex\.org +monolove\.org +sweetadultpics\.com +pansat2300\.com +dvbcardgroup\.com +bsdseek\.com +flashworm\.com +kkktv\.com +qqbug\.com +drusearch\.com +\.gopages\.net +pornxxxsearch\.com +divaporn\.com +virginsplanet\.com +\.porn\.(?:biz|us) +realyoungboy\.com +olderlady\.net +dominatrix-domination\.com +mailorder-steroids\.com +contactlensesprice\.com +\.xmyyz\.com +lct3000\.com +\.wuyue\.cn +curtainnet\.com +toobis\.com +netsurf\.ru +xxx-me\.info +\.thirty-one\.info + +# A whole bunch from http://en.wikipedia.org/wiki/User:A._B./pressreleasegold.com +pressreleasegold\.com +asiannet\.com +deerelkhunting\.com +etanklesshotwaterheater\.com +firsthearingaids\.com +\.malektips\.com +medicalhairtransplantation\.org +southbeach-diet-plan\.info +toxicblackmoldhelp\.org +treat(acidreflux|genitalwarts|nailfungus)\.org +\.aatrax\.com +\.abilogic\.com +alaska(?:-adventures\.net|trophyadventures\.com) +allthewebsites\.org +bangkoksmiledental\.com +biohealthchip\.com +\.cancerhelponline\.org +captainjacksalaska\.com +essential-sugar\.com +\.datingsoftware\.org +delllaptopreviews\.info +disability-resource\.com +drug-rehabcenter\.com +fishswiftsure\.com +\.fjaproducts\.com +glycoexpert\.com +globaltelesis\.com +h57-hoodia\.net +homehealthcaredepot\.com +\.jpidata\.com +kenai-guides\.com +kuuloakai\.com +link-pimp\.com +\.linkhelpers\.net +\.medipro\.com +mysolitaire\.com +online-shopping-catalogs\.com +phonecardsmile\.com +profish-n-sea\.com +purehealthsystems\.com +\.riverpirate\.com +seattlefishing\.com +selfhealingexpressions\.com +skagwayfishing\.com +skincancernet\.info +skoobe\.biz +smartwomensupplements\.com +surgeryconcerns\.com +\.tgfusa\.com +thehyips\.info +yearstoyourhealth\.com + +## 2004 +7csun\.(com|org|net) +\.8cx\.net +17train\.com +18show\.(cn|org|net) +88aabb\.com +100comm\.com +100jjy\.com +5118\.net\.cn +\.b2m\.cn +cashmerebiz\.com +consumeralertsystem\.com +\.cp868\.com +dongyiqi\.com +ebook2u\.com +\.ec[59]1\.com +\.emay\.cn +\.emmss\.(net|com) +free-porn-friend-finder-adult\.info +ganzao\.68l\.com +gerhard\.paducktions\.net +hanlang88\.com +home\.graffiti\.net/grafikdesign +jlsun\.com +kgc-networks\.com +\.king(?:network\.(org|net)|online\.org) +lemai\.com +lingshengdown\.com +ltjz2000\.com +mmyoucomtypee\.51\.net +mongolie\.mn +nakurka\.ru +nnuuoo\.51\.net +\.no-1\.org\.cn +nuoya-hd\.com +ny528\.51\.net +ohhmybaby\.info +oskceo\.com +paperlessarchives\.com +property2u\.com +renzhengwang\.com +riba\.unixserverhosting\.com +\.s018\.(org|net) +scandinavia-pictures\.com +searchmiracle\.com +shop263\.com +shouji\.com +\.sj55\.com +sjzyxh\.com +smokaz\.com +sudokusweb\.com +targetwords\.com +ticketsmyway\.com +ultimasurf\.net +\.uusky\.com +voip99\.(com|net) +webrank\.cn +wines-cellar\.info +www1\.com\.cn +\.zw88\.com +\.to8\.com + +## sometime 2005 ([[Spam blacklist/Log]]) +(duranmania|kajagoogoomania)\.proboards[0-9][0-9]\.com +\.0302\.net +51dragon\.com +\.888\.web\.com +25340\.rapidforum\.com +5782601\.net +13288888888 +\.aazman\.com +acmetranslation\.com +adipex +artmtm\.nease\.net +autospectator\.com +azzacash +b2\.boards2go\.com +big\.de\.com +boenicke-keramik\.de +book-translation\.com +buy-(valium|ambien)-online\.fuks\.pl +celebrities\.evac4\.com +cheapholidayaccommodation +chinaplay\.org +cn80051\.1816\.net +commerce-translation\.com +crazymaidens\.info +cruise-guide\.org +degrassi\.dumbbaby\.net +didrex +\.dimmo\.net +discuss\.freeforumsite\.com +dmoz\.org/(Bookmarks/S/spaland|profiles/spaland\.html) +ebackground-checks\.com +ebusiness-cards\.org +ecar-rentals\.com +enhancemysearch\.com +\.fiberia\.com +fibromyalgie-treffpunkt\.de +flats\.h1\.ru +freewebs\.com/home-business-0 +games\.net4free\.org +ganzao\.88118888\.com +geocities\.com/(enspaland|hungarybusiness/spaland\.htm|railwayguide|spalandhu) +gghggh\.com +glmf33\.fr\.fm +globalflights\.org +golfcards\.com +golftour\.de +google-seo\.net +green-tea\.airmode\.de +guizang\.net +handycool\.de +home-business-0\.t35\.com +\.arcor(?:-online)?\.de/eberhard\.liss +\.tiscali\.be/wallpaperheaven +hornyblog\.org +house(?:263\.com|so\.cn) +hydrocodone +hz\.livingchina\.cn +\.lau\.biz +law-translation\.com +losthorizons\.com +lucky7\.to +\.mq6\.info +mycompiere\.(com|net) +newsmotion\.com +notlong\.com +online-shopping\.wb\.st +paper-translation\.com +pharmacy\.pumag\.net +phentermine +pokera\.web\.com +predictive-dialers\.org +presidentcard\.com +prtime\.ru +purchase-xanax-online\.daj\.pl +pxxi100\.51\.net +rackstorage\.cn +robbeklobbe +rx-seote\.com +secure-network\.info +seov\.net +serverlogic3\.com +sexyladies\.eroticalservers\.net +\.sowang\.com +sultryserver +taichifollowme +teneriferesorts\.com +torrie-wilson\.org +ubtt\.org +vbzx\.net +villepin2007\.org +viprape\.com +voip-guide\.org +web524\.beta\.web\.expressmedia\.de +webloga\.com +wedding-knot\.com +\.welcome\.to +\.wik1\.info +wikidragon\.net +\.biglobe\.ne\.jp/~kokumin-shinbun/S47/4708 +\.02188888888\.com/itcp009 +\.2adultflashgames\.com/ +\.1177888888\.com +\.a688\.net +\.angelfire\.com/poetry/seidel +\.copychina\.cn +\.dzsc\.com +\.epackshop\.net +\.games-soft\.net/sex_games\.html +\.h345\.com/Hotel +\.hsfangzhen\.com +\.hzyage\.com +\.isoway-yoga\.com/ +\.jifamark\.com/xhj\.htm +\.kufurao\.net +\.liss-kompendium\.de +\.MatchstickCats\.com +\.myseo\.com\.cn +\.seo88\.com +free-adult-webcam-live-chat +\.zhkaw\.com +\.zya9\.inf +xazl\.net +xh008\.com +zymq\.com +\.asso\.ws +\.b3\.nu +\.can\.ac +\.clan\.ac +\.cool\.ac +\.corp\.st +\.euro\.tm +\.freewebpage\.org +\.golft\.nl +\.go\.51\.net +\.hot\.ac +\.just-go\.to +\.mx\.gs +\.perso\.tc +\.propel\.to +\.site\.tc +\.societe\.st +\.xs3\.com +\.zlap\.to +\.zlip\.to +\.zmack\.to +\.znap\.to +\.zwitch\.to +\.go\.to +\.shengen\.ru +\.visa-usa\.ru +\.2x4\.ru +\.town-china\.cn +\.anteyi\.cn +\.atetech\.com\.cn +\.ic37\.com +91yg\.com +51wisdom\.com +56918\.com +air520\.com +021boy\.com +ywxjm\.com +\.haole\.cn +\.gguu\.com +idc2008\.cn +google-in-china\.org +\.lxhost\.com +\.125mb\.com +\.linemd\.com +\.buyremedy\.com +\.fineaction\.com +online-(?:levitra-4sale\.com|poker\.webpark\.pl) +gambling-forums\.net +adultfriend\.404host\.com +homedb\.slife\.com +info-for-home\.slife\.com +WTHP[0-9]\.disney\.com +\.p21\.info +\.forexhsi\.com +\.sexy-maidens\.info +\.tempurpedics\.org +\.kanod\.com +\.hilbort\.com +\.guvax\.com +\.leronex\.com +\.sekob\.com +\.usefulresults\.com +\.welllook\.com +\.18servers\.com +\.ds4a\.com +\.sexus\.host +\.1min\.us +allfioricet\.com +allvicodin\.com +diazepampill\.com +russia\.webmatrixhosting\.net +zya9\.info +\.p2l\.info +m0re\.net +utenti\.lycos\.it/pills1 +hagensafrika\.de +b0ne\.com +slyip\.net +gotgeeks\.com +3d-game\.com +soma\.homelinux\.com + +## 2005-05 ([[Spam blacklist/Log]]) +\.qx5\.net +\.117000\.com +\.126hao\.com +\.51lac\.com +\.52lac\.net +\.563000\.com +\.606162\.com +\.70678\.com +\.77556\.net +\.borncompany\.com +\.chinacarcenter\.net +\.cncarcenter\.com +\.cnticket\.net +\.companyforyou\.com +\.curevitiligo\.com +\.dela88\.com +\.designatchina\.com +\.dreamat(?:hk|sh)\.com +\.dreamhk\.org +\.duweb\.w2\.ftpcn\.cn +\.goodticket\.org +\.googletosh\.org +\.haungsanok\.com +\.jptrip\.org +\.myshcompany\.com +\.okcompany\.org +\.okrentcar\.org +\.postdream\.org +\.printingok\.net +\.ptrip\.net +\.regsh\.com +\.rentbuscompany\.net +\.rentcarcenter\.com +\.rentcarok\.org +\.shbuscenter\.com +\.shcarcenter\.com +\.shrentcar\.com +\.shticketcenter\.com +\.shtranslate\.com +\.ticketcenter\.cn +\.translatebbs\.com +\.tripto\.com +\.tt00[1-5]\.com +\.utranslat(?:e\.org|ion\.net) + +## 2005-06 ([[Spam blacklist/Log]]) +bjicp\.org +lucking\.com\.cn +17ip\.com +bj-united\.com\.cn +carlack\.cn +cnpeonyflowers\.com +hsdvi\.com +husemachinery\.com +tzonline\.cn +tzpet\.com\.cn +x-rainbow\.com\.cn +yorkinstrument\.com +hg-fix\.com +hg-?fix\.org +wxzgyb\.com +yy-ls\.com +xd-fw\.com +hdchina\.com +gmldsb\.com +tljsrq\.com +ryhgsb\.com +crazypussy\.info +\.mysweetie\.info +\.xl\.ru +readnovel\.com +\.4394\.com +\.48123\.com +\.tm003\.com +\.18019\.com +5ball\.org +\.001003\.com +\.67067\.com +\.15016\.com +\.6y7y\.com +\.p003\.com +\.2y3y\.com +\.tm259\.com +\.33044\.com +\.11033\.com +\.49sms\.com +530sms\.com +goodasses\.info +crazyabouttv\.com + +## 2006-06 ([[Spam blacklist/Log]]) +academiccalendar\.info +allsexxdomain\.com +art-passion\.site\.voila\.fr +chocolateplanet\.org +coffee-guide\.us +freesex\.com +ipfeurope\.(eu|com|net|org) +\bkreuz\.net\b +lunesta\.wz\.cz +perso\.orange\.fr/jf\.dumousseaux +\bsmut\.com\b +teainfo\.org +\.to\.pl +toporol\.be +topsearch10\.com +zocor-1\.be +\.spaingate\.com + +## 2006-07 ([[Spam blacklist/Log]]) +hoops(vibe|stats)\.com +adsbus\.com +freebao\.com + +## 2006-09 ([[Spam blacklist/Log]]) +(dojo|ecole)-miyamoto-musashi\.com +bmd-certificates\.co\.uk +casinoforumu\.com +chabad(?:(?:east|usa|world)\.(?:am|com|org)|\.am) +easytobook\.com +favyr\.fa\.funpic\.org +gamenline\.ga\.funpic\.org +klavato\.kl\.funpic\.de +home\.kimo\.com\.tw/pager1114/ +kingmessiah\.com +lubavitchnetworks\.com +memorial-niten-ichy-ryu\.com +pharmacy-school\.info +\.share\.ws +tattoos\.phpnet\.us +teradewunmer\.com +thetrueheroes\.org +\.webex\.com\.cn +inspectore\.net + +## 2006-10 ([[Spam blacklist/Log]]) +hpc1\.biblog\.ru +\.ytmnd\.com +succodimelone\.it +(debt|financ|loan|morgage).*\.blogspot\.com +rosnersquared\.com +code-interactive\.com +ideamappingsuccess\.com +(cup|league|football|wayne|premiership|steven|united|athletic).*years\.com +ilsonline\.it +engagementring-4u\.com +\.forumcommunity\.net +loan\.just2006\.info +\.glyangshuo\.com +complexxon\.org +scheerer-software\.de +free-game-downloads\.mosw\.com +lepetitsaintjames\.com +halflife2\.zoy\.org +aiccon\.it +thebookstandard\.typepad\.com +torrentmania\.info +zigiweb\.com +\.pope\.com +wikipediia\.info + +## 2006-11 ([[Spam blacklist/Log]]) +killerstore\.(it|net) +\.mliii\.info +savealbertparkcollege\.com +amantea\.net +bt-blog\.net\.ru +salvador-dali\.net +meatspin\.com +wikipedia-download\.org +digiads\.com\.au +webcam-[a-z]+-sms\.info +videochat-porno-sms\.info +webcam-sexo-[a-z]+\.info +shareinvestornz\.jconserv\.net +theshadowsun\.(com|net) +amantea(?:(?:online|radio|calcio)\.it|ninelmondo\.info) +(zzw2z|myjhy|ngvjj|eqqwsa|ccxxsg|weewss)\.info +(uskupi|klzuydg|abradco|xddme|dicmh)\.com +(prosaleshop|bestbidbuy|adirect)\.org +(oduuy|aiipa|lyvyl|moank|anagl|ankyl|gergv|clapn|tigri|teeti|sabd|scyb|iifooi|qsskk|csddj|ddl8i|afdss|oberl|ykkkh|tdfsf|zfdfs)\.info +special-ringtones\.net +\.xxell\.com +blackcomb\.co\.uk +ezpicking\.com +song-book\.info +anysubs\.com +pichunter\.com +suite101\.com +federazionepagana\.(it|com) +free-ringtones\.aqhhhh\.info +loan\.ododf\.info +yourmerchandise\.org +exploring-[a-z]+\.com +melano(?:(?:corp|planet)\.com|tan\.com\.au) +12987\.rapidforum\.com +teens\.fr33host\.net +blackburnroversyears\.com +woodland-bunkbeds\.com +silent-?night\.info +board123\.com +\bholocaustresearchproject\.(net|org)\b +hs4free\.info +easths\.info +judicial-inc\.biz +ghosttracker\.50webs\.com +mortgage-refinance\.rubylq2\.com +refinance-mortgage-4you\.com +mobprofile\.com +mobeditor\.com +megapornstarvids\.com +1esbian\.org +4pk\.de\.tl +jeuverbal\.com +prettymob\.com +rutaverdebolivia\.com +librie\.boom\.ru +hhwtyt\.info +recipes\.keralaz\.info +v-tarot\.com +a-ait\.com +lemonparty\.org +bestpornvideosonline\.info +dreamsexy\.info +bestwinantivirus\.info +metalgearsolidforums\.com +muhammaddressup\.com + +## 2006-12 ([[Spam blacklist/Log]]) +freefind\.com +diesel-diesel\.com +thewebcity\.com +10dollarwine\.com +adcentercode\.net +africanhousesnake\.blogspot\.com +broad(?:-band-phone|band-phone-future\.blogspot|band-phone-info|bandphoneservices)\.com +carefreecom\.com +celestineview\.com +chrishdaughtryfans\.com +comtechnews\.net +cutthatbill\.com +dishnetworkordirectv\.com +\.gethd\.tv +infinitephone\.net +internetpro\.ws +jackspirko\.com +magnumsandbass\.com +mamasmarketplace\.com +marketingpitbull\.net +nflipod\.com +pagenetagent\.com +providetechnology\.com +sagelocalphone\.com +sagetelecom\.net +search-engine-positioning-experts\.com +shopfort1\.com +t1quotes\.net +\.telebay\.com +voipblogs\.blogspot\.com +voiphunt\.com +kewlestsites\.com +\bcognigen\.(com|net) +\.envy\.nu +halychen\.com +just2buy\.com +bestmine\.com +(.*/)?18speedtranny +urlbounce\.com +\.xbuv\.info +sveti-stefan\.net +carauto-insurance\.org +italy-info\.org +\.heiten\.info +newsitaly\.org +auswirt\.info +\.preins\.info +coolwb\.com +\.pnope\.com +\.xort\.in +\.url4\.net +geocities\.com/nozomsite +autoworldcare\.com +sexy-chat-rooms\.org +grotteriaonline\.com +med911\.t35\.com +\.middlesell\.com +\.thewallpapers\.us +\.e-business-pages\.com +thehotelheiress\.com +\.sexotica\.info +roorex\.net +infinite(?:hosting|s)\.net +attorneys-online\.org +animations-games-india\.com +\.bras(?:components|parts)\.com +\bbrass(fast|-parts-india|-nuts-screws-fasteners|-inserts|-fittings-india|-fastener-india|-copper-castings|-components-india)\.com\b +bronze-castings-fittings\.com +\.cable(?:accs|glandsindia)\.com +\.conex(?:india|metals|techno)\.com +diamond-(rings-india|ring-diamond-rings|pendants-india|earrings-india|jewellery-india|ring-rings\.tripod)\.com +\.elecaccs\.com +electrical(?:-brass-components|brass\.f2s)\.com +engagement-rings-india\.com +fittingsindia\.com +jambrass\.com +jamnagar-brass-parts\.com +myjewelz\.com +pipefitindia\.com +primemumbai\.com +screwfastindia\.com +stai?nlesssteel-fittings\.com +205\.234\.131\.76/ + +## 2007-01 ([[Spam blacklist/Log]]) +sohbetchat\.tc +trsohbet\.com +canliizle\.tv +traductionportugais\.net +fashiony\.it +creativeinvest\.com +carouto-insurance\.org +101pharmacy\.org +electro-funk\.de +myspace\.com/3933516 +hoodia.*\.blogspot\.com +party-poker.*\.blogspot\.com +casino-gam.*\.blogspot\.com +soyde(barakaldo|portugalete|santurtzi)\.com +\.waslan\.de +chiquitania\.com +\.kensavage\.com +aminmaalouf\.ifrance\.com +dahmaneelharrachi\.narod\.ru +gadelmaleh\.narod\.ru +guyalepage\.narod\.ru +in-gridsite\.ifrance\.com +jeandujardin\.narod\.ru +jonathanlittell\.narod\.ru +josegarcia\.narod\.ru +naguibmahfouz\.narod\.ru +o-zone-website\.narod\.ru +sachabaroncohen\.narod\.ru +aminmaalouf\.narod\.ru +in-gridsite\.narod\.ru +\.sapes[ow]\.com +\.sanpsw\.com +\.free-?wishes\.com +\.old-games\.com +\.ogpaper\.com +tourettesguy\.com +bhmjikhkumhh\.blogspot\.com +\.ipetitions\.com +\.freevideo\.cz +\.gamend\.net +\.turkishweekly\.net/turkce +adult-cam-chat\.info +gideononline\.net +krakow-apartments\.biz +ring-tones\.dgo5d\.info +google\.com/group/watdet +probuzz\.wordpress\.com +\.kalakendra\.com +blueplanetsurfmaps\.com +asphost4free\.com +\.lame\.name +geocities.com/stymets +blog?\.myspace\.com +videochat-xl\.com\.ru +prizee-free\.narod\.ru +brawl-hall\.com +worldtopix\.com +xs4all\.nl/~wichm +chello\.nl/a\.wichmann +/ibtimes\.com +ghazporkindustrial\.com +royalessence\.com +\.medi-vet\.com +zeligfilm\.it +queroumforum\.com +makeminemarvel\.com +thefairproject\.com +morefori\.org +\.merypop\.org +\.tedyypor\.org +\.linaster\.org +\.selectitve\.org +\.thisit\.org +\.mercuty\.org +\.cialikan\.org +\.velikaze\.org +\.retructi\.org +\.minipik\.org +boogiestreet\.com +adult-sex-chat\.info +declarationofindependents\.net +beginwork\.by\.ru +testftp\.by\.ru +\.odele\.ru +\.chr\.ru +\.atst\.ru +\.iapb\.ru +\.kamaztorg\.ru +amazon\.com/chuvashiaportal +\.poldow\.com +\.nbaoh\.com +\.nobelpr\.com +npcart\.com +\.nobmer\.com +shumilloff\.jino-net\.ru +modlibrary\.net/proxy +waterfordhomeschool\.org +\b(mk8|dy9|b80|t63|m32|80i|b65|bz8|68t|51a|z56|z95|7rg|74a|mr7|98f|i38|d4x)\.org\b +clandrake\.org +(ninja|fastfree|getmyspace|school|myinternet|ship|water|les|grand|dirty|cgiweb|arandom|angry|fully)proxy\.com +drpruxy\.net +prxy\.co\.uk +freetoview\.net +workbrowse\.com +hideip\.be +surfatschool\.com +phproxy5\.com +surfonsteroids\.com +browsefrom\.com +letmepast\.com +proxy(77|80|88|aliens|bat|devil|drop|eye|ez|flame|flux|foxy|friend|guy|index|lla|ly|mess|mix|mummy|nanny|offer|pulse|raptor|snow|spy|theweb|tips|tiger|void|work|zap)\.com +proxycover\.(com|net) +bypassproxy\.net +gostealthy\.com +shannen\.info +redlandsclassic\.org +avpas\.org +atomblog\.org +(3ga|6ad|bx3|2ry|23a|43j|4j4|5b5|70m|78n|8hj|9rb|20d|68u|73r|d39|3xa|k1d)\.org +pr0xy\.us +connypug\.org +ipdefend\.com +\bproxy(atwork|atschool|allow)\.com\b +cloakme\.net +proxies\.bz +\b(eco|ano|el)proxy\.com +shadowsurf\.com +nevercaught\.com +unblockweb\.com +daveproxy\.co\.uk +72\.232\.68\.234 +blockmy\.info +sctta\.org +privprox\.com +underfirewall\.com +iphide\.com +blairstownnj\.org +atunnel\.com +thejays\.org +proxee\.net +instantunblock\.com +foxyproxy\.net +yourportal\.us +hiddenwebbrowser\.com +ucacanada\.org +3tiered\.org +backfox\.com +goproxing\.com +blockmenot\.co\.uk +dunkindonuts\.be +myproxy\.ca +myspaceproxysite\.net +w00tage\.com +schoolmyspace\.com +confusedyeti\.com +75i\.net +ageautam\.org +dejacey\.com +guardster\.com +proxy\.tl +atmnetwork\.org +concealmy\.info +atedplace\.org +thecamelclub\.org +proxyplanet\.info +realtimeproxy\.com +aniscartujo\.com +getaroundfilters\.com +proxies\.gr +proxypro\.info +roboproxy\.com +schooloflostarts\.org +no-block\.com +proxers\.com +shoutproxy\.com +bypasslive\.com +stealthclick\.com +myproxybox\.com +zeroproxy\.com +gopast\.net +xeaq\.com +palsys\.ca/proxy +libertyproxy\.com +provacy\.com/phproxy +browseatwork1\.com +gmprs\.org +proxy\.info +nchausa\.org +rockproxy\.com +anonymouscamp\.org +webwarper\.net +officeproxy\.net +rdcumd\.org +adamworks\.org +crazyarabs\.moonfruit\.com +xx-viewer\.com +airport-shuttle\.com +global.*warming.*awareness2007 +home\.no/all4ass +megaupload\.kayyo\.com +travelscope\.co\.uk +hhent\.com +citronpaper\.it +supermortgagerate\.info +abolishthegmc\.blogspot\.com +searchtexoma\.com +nationwidebillrelief\.com +surfquotes\.com +\bcarinsurance\.com +old-classics\.com +\.by\.ru\.ru +myspace\.com/anchoredcross +joseplacido\.(net|com) +onlineloanofficers\.com +shaadibliss\.com +crazysportsfan\.com +gurusofdating\.com +yourmoviepal\.com +presidentpolls2008\.com +amifobornot\.com +nflsystems\.com +camsfaq\.com +didbarrycheat\.com +lasvegasbuyeragent\.com +\.sportus\.com +easybaseballbetting\.com +(manchester|birmingham)cityyears\.com +arsenalfcyears\.com +plymouthargyleyears\.com +sunderlandafcyears\.com +fulhamfcyears\.com +portsmouthfcyears\.com +\.240sx\.org +240sx(?:convertible|tech)\.com +350zclub\.org +altimacoupe\.com +g35club\.org +\.gtrclub.org +hybridaltima\.com +infiniti(?:cx|onlinemechanic)\.com +\.j30club\.com +\.m30club\.com +\.muranoclub\.com +\.m35forum\.com +\.m45forum\.com +\.maximaclub\.org +\bnissan(commercials|foria|onlinemechanic|tech|terranaut)\.com\b +\bnissanversa\.org\b +\.q45\.org +\.qx56club\.org +\.rb26dett\.com +\.vq35de\.com +\.vh45de\.com +\.vq35hr\.com +\.azhitman\.com +\.z32club\.org +webbrainiac\.com +\.nicoclub\.com +\.iyisozluk\.com # Jdforrester # pan-wiki spam +loans.mortgagerefinancedot\.info +homeloancourse\.info +besttradelink\.info +usadaytrade\.biz +superrefinancerate\.info +myblog\.es +\.gaudi\.cat +geekissues\.org # contains redirect pages to porn/shock sites +manutd-clip\.blogspot\.com +barcagoal\.blogspot\.com +italiagame\.org +siamforum\.com +oseculoprodigioso\.blogspot\.com + +## 2007-02 ([[Spam blacklist/Log]]) +monicabelluccionline\.com +turkudostlari\.net +gravinaoggi\.it +moviesofsex\.info +sexfreevideos\.info +pussy\.phpbbx\.de +pendant\.php5\.cz +jewellery\.php5\.cz +1001nights\.net/free-porn +(virtual-grub-street|vgs-pbr-reviews|vgs-index-and-specialty|gilbert-wesley-purdy|vgs-wiki-watchdog|gilbertwesleypurdy)\.blogspot\.com +vgscomputerarchive\.myblogsite\.com +catalyzerjournal\.com +studentville\.it +digital-synthesizer\.info +hostingphpbb\.com +emptynosesyndrome\.org +classicpcgames\.info +myscreensavers\.net +dailycelebsearch\.com +\.opa\.com +\bmarta\.com +kalamita\.php5\.cz +telefanatic\.com +users\.berexa\.info +elliottgann\.com +welikehorses\.com +socrates\.run2\.ws +\bhem\.fyristorg\.com/kraftwerk +\binfonet\.com\.br/mozart +\bAutoInsuranceCarInsurance\.net +\bauto-insurance-rate\.biz +\bbadcredit-mortgagerefinance\.info +\bcar-insurance-comparison\.net +\bCheapCarInsuranceQuote\.biz +\bclipboardgenie\.com +\bFreewareCity\.com +\binsureme\.com +\blynxtrack\.com +\buiopq\.com +\bvsis(?:oftware|systems)\.com +\bdavincisketches\.com +all-car-photos\.com +unitedfutures\.com +brightcommoditybroker\.com +\bvandvis\.com +firewalldown\.com +\bScarlettJohanssonworld\.net +\bbiometrie-online\.net +\blifeandtrend\.com +\bwordpress\.web\.tr +\bauuuu\.com +\brayvan\.net +\bwarspawn\.com +\bragnarev\.com +\bwefotyou\.com +\blees-estate\.com +\becomarchenews\.com +\bbusinesscardsexpress\.net +\bgenghiskhan\.yatb\.info +\basiairas\.com +\bberjayahotels-resorts\.com +\bchinese\.net\.my +\bdirectb2b\.biz +\be-my\.net\.my +\beplace21\.com\.sg +\bfurnituremanufacturer\.biz +\bhowtofrenchkiss\.net +\bkopitiammalaysia\.com +\bksuria\.com +\blycosasia\.com +\bmagicwin\.com\.my +\bmalaysia(?:-(?:supplier|webdesign)\.com|seo\.net) +\bmanufacturer-supplier\.com +\bmaximus\.com\.my +\bmicci\.com\.my +\bmipe\.com\.my +\bmodularfurn\.com +\bmydotmobi\.com +\bmyhydro1\.com +\bnewmalaysia\.com\.my +\bnstpi\.com\.my/ +\bonlinefloristmalaysia\.com +\bpersonalimagegrooming\.com +\bpestcontrol-malaysia\.com +\bplasticproductmanufacturer\.net +\bsgbroadband\.com\.sg +\bstainlesssteelblh\.com +\bsupplier-manufacturer\.com +\btravelhotelmalaysia\.com +\bwebhosting-malaysia\.com +\bwelfordmedical\.com +\bworldsites\.net\.my +\blangmaker\.com.*Modern_Latin +\bbled\.net +\bfotoplatforma\.pl +\bschoolkorfball\.org +\bgamesff\.com +\bsimone-numismatica-e-storia\.blogspot\.com +\bbestwaytoinvest\.com +\bpussy(?:mania\.(?:com|info|net)|ass\.(?:com|info|net|org)) +\bfavorite-games\.com +\binstant-car-insurance-quote\.net +\balessia-ventura\.net\.ms +\bvoyager1\.h80\.org +\byoyita\.com +\btour-europe\.org +\bcromaps\.com +\bdomusmea-nekretnine\.info +\bsexinitaly\.com +\bHairLossAdvisory\.com +\blaserhairremovalanswers\.com +\bStudentLoanAdvisory\b +\bAcneTreatmentForum\.com +\btopmeds10\.tu1\.ru +\bchoosemalta\.com +\bronago\.net +\bsmg-italia\.com +\bautoinsurancequoteonline\.us +\bprofrios\.hpg\.ig\.com\.br +\bsima\.kit\.net +\bgelsenkirchen-im-blick\.de +\blastmeasure.zoy.org +\bjobpilto\.de +\bcdjuridico\.com + +# 2007-02-10, Datrio +republika\.pl/stranasmer + +# All these additions can be found properly logged. +\b40weekspregnancystages\.com +\babout(?:-credit-(?:card|report)\.com|bodybuilding\.net) +\bacneskincareinfo\.com +\bair-purifier-and-filter\.com +\ball-soccer-info\.com +\basbestos-mesothelioma-cancer-info\.com +\batkin(?:dietplan\.com|s-diet\.cc) +\bbenefit-green-tea\.com +\bbreast-augmentation-(and-enlargement|implants)\.com +\bcabbage-soup-diet-plan\.com +\bcarpetsearch\.org +\bcell-phone-blog\.net +\bcredit-cards-n-debt\.com +\bdiabetes-diabetic-diet\.com +\bdietpills-information\.com +\bdigital-camera-technology\.com +\bdsl-(broadband-isp|link)\.com +\bedi-guide\.com +\bfitness-health-plan\.com +\bgrapefruit-diet\.org +\bhdtv-lcd-plasma\.com +\blasik(-surgery-info|lasereyesurgeries)\.com +\blowcarb\.ca +\bnewyork-architects\.com +\bswiss-architects\.com +\bbelgium-architects\.com +\bworld-architects\.com +\baustriaarchitects\.com +\bchinese-architects\.com +\bsardiniaholidayrentals\.com +\bsatellite-service-providers\.com +\bskincaresinformation\.com +\bsouth(?:-beach-diet-information|beachdietprogram)\.com +\btech-guide\.org +\bteleconferencing-technology\.com +\bthe-atkins-diet\.info +\bvpn-info\.com +\baffiliatedirectorysite\.com +\bfurniture-asian\.com +\bnetbiz(?:asia|solutions)\.com +\bsixco\.ws +\btemplatesnew\.com +\badfunk\.blog-city\.com +\bf1rezone\.tblog\.com +\bfiucer\.blogsome\.com +\bwtslink\.com +\bmylink\.tblog\.com +\btech2\.blogsome\.com +\byellowpages1\.blogspot\.com +\bhealth1011\.blogspot\.com +\bekhye\.blogspot\.com +\binternumber\.blogspot\.com +\bconniefrancis\.nl +\bLost\.eu +\bgeocities\.com/xpw5yearslater +\bmodiarte\.it +\bmondeducirquelausanne87\.blogspot\.com +\bruswar\.com +\bcharlie-parker\.org +\bkit-direito\.com +\bxatpro\.com +\bgratuliermir\.de +\bforumfree\.net +\bstatisticsoftheworld\.page\.tl +\bparkourstyle\.com +\btexaspoker\.tk +\bcosplay(\.de|x\.com) +\bkatardat\.org +\bnefac\.net +\bnapolinelmondo\.org +\bpetrophoto\.net +\basociacionjacob52\.com +\bharmonica\.it +\bwga\.hu/html/t/tintoret +\bworld-cat\.org +\bindiabroadband\.net +\bmake-money-online4\.tripod\.com +\bvisitdaugavpils\.lv +\bulkerfenerbahce\.com +\bantu\.com +\bbukkake\.com +\bgo-sierra-nevada\.com +\bnarutokage\.135\.it +\bgo-passau-land\.com +\bbratz\.tv +\bvoila\.fr/bharatanatyam-dance +\bgeocities\.com/medhahari +\bmedha\.info +\bguatemalahist\.com +\bnamibianhistory\.com +\bcroatiahis\.com +\bzimbab\.net +\bxz5\.org +\bz4o\.net +\bpxy1\.net +\bagablog\.com +\bakoblog\.com +\bfamilyincestbiz\.com +\b(cqhfs|cqfnc|ackue|aqhfc)\.info\b +\b(aepwd|aexqq|cxqqc|foxqq)\.org +\b(xcjas|xcjei|xcjin)\.com +\bamantea\.eu +\boutrate\.net +\btutorialspoint\.com +\bbonuslover\.com +\bjeffsfamilypharmacy\.com +\bthereddoorstore\.com +\bbluevelvet\.com +\bobsessedwithwrestling\.com/columns/jonathanbarber +\bfffans-fr\.com +\bmoviesbuzz\.com +\bpornoass\.iespana\.es +\btvsylt\.com +\b321books\.co\.uk +\bhaber80\.net +ultime-notizie\.eu +\byahoo\.335-i\.com/(BMW|Mercedes_Benz) +\bgeiz-gorilla\.com + +# 20070314 by Shizhao add +\bible\.ttsite\.com + +# Smartdots.com redirect sites Nick1915 +\b(au|es|h[ku]|i[et]|kr|mx|pl|se|th|u[as]|shop)\.tc\b +\bcom?\.at\.t[ct]\b +\b(co|me|borg)\.uk\.tc\b +\bu[ks]\.tt\b + +#Back to proper logging... +\bfree-car-insurance-quote\.net +\bchabad-baden\.de +\baffordable-car-insurance\.net +\bcontrolling21\.(de|eu|net|com|org|biz|at|ch|info) +\bmultimedia-beratung\.de +\bmortgagequeen\.us +\banemony\.info +\bnasturciya\.info +\bkolokolchiki\.info +\borchideya\.info +\bmagnoliya\.info +\btyulpan\.info +\bvasilyok\.info +\blandysh\.info +\bazaliya\.info +\blutik\.info +\baffordable-auto-insurance\b.biz +\bpressarchive\.net +\ballthingschina\.(com|org)\b +\balternateroutestravel\.com +\bbusinessesi\.(com|org) +\bchinaschoolreview\.org +\bchina(hearts|travelfacts|visaservice)\.com\b +\besl(franchise|jobschina|schoolreview|z)\.com\b +\bhunanteach\.com +\bjourney(east|west)\.org\b +\blearnchinesenow\.net +\bstudenttravelchina\.org +\bteach-(and-travel|in-zhejiang)\.org +\bteach-in-Beijing\.com +\bTEFLjobs\.org +\bz-visa\.com +\baffordable-car-insurance\.biz +\binstant-auto-insurance-quote\.net +\bvulcano(?:consult|vacanze)\.it +\bmysergeybrin\.com +\bmoviemirth\.com +\bgeocities\.com/anxietydetective +\banxietydetective\.org +\bproducerdb\.com +\bfreemasonwatch\.freepress-freespeech\.com +\blaurenphoenix\.net +\blanitodd\.org +\bmasonmarconi\.org +\bmonicasweet\.org +\bnicolevoss\.org +\brayveness\.org +\bsydneecapri\.net +\bterabond\.org +\btianalynn\.org +\bmyopia\.org +\bnearsightedness\.org +\bpinholeglasses\.org +\bpreventmyopia\.org +\bthebestof\.co\.uk +\bmusiciandictionary\.com +\bcelebritydictionary\.com +\bspysurfing\.com +\bproxyhole\.com +\btvsylt\.de +\bhomejobsite\.com +\bmccallsnotes\.live\.spaces +\bagloco(test)?\.com +\bjohnchow\.com +\bwegetpaidtosurf\.com +\bxfile007\.blogspot\.com +\blinksynergy\.com +\besperantio\.com +\bamericandiscoverytrail\.org +\bepaleo\.com +\bnorthernforestcanoetrail\.com +\bsurvivaltopics\.com +\bwhitemountainsworld\.com +\bweb\.archive\.org.{0,50}obsessedwithwrestling\.com #to stop prior spamming with OWW columnist linking to deleted pages. +\bmyinternetaccess\.net +\bsteelecommerce\.com +\bmyphoneservice\.net +\bcheap-online\.net +\bdsl-internet-service\.blogspot\.com +\bld\.net +\bmyld\.net +\bwebmaxsearch\.com +\belrelojdesol\.com/classical-music-online +\bbunnyluv\.net +\bchantarose\.net +\bharleydavis\.net +\bjoanneguest\.net +\bkarinschubert\.net +\bkristarabarrington\.net +\bkrystaldeboor\.net +\bleademae\.net +\bnadianyce\.org +\btiffanymillion\.net +\bveronicabrazil\.org +\bvictoriaparis\.org +\bxxxena\.org. +\bnicoladugo\.com +\bthe-planets\.com +\bmyclassiclyrics\.com +\bpornstarbucks\.com +\bmilos(-island|isforlovers)\.com +\bmilos-hotels\.org +\biMilos\.com +\brashi12\.com +\brefspace\.com +\bwww\.hkcoolsam\.com +\bcarandbikeforum\.com +\btozsdesed\.googlepages\.com +\bfasturl\.it +\bzootit\.com +\bumatlantide\.it +\bsis007\.org +\bgargoyles\.dracandros\.com +\bversatilclassic\.com +\bamojoo\.com +\bGamedogs\.org +\bgoodoldtoronto\.com +\bdoctorscloset\.com +\bhiphopjazzproductions?\.com +\bracetotheright\.com +\bLearning-Theories\.com +\blearninginvideogames\.com +\basianink\.com +\bgroup-games\.com +\bbamboo-blinds\.org +\bcelebritygetmeoutofhere\.co\.uk +\bhomeinteriors\.co\.uk +\bitsnature\.org +\bsecretofmana\.info +\bsnesclassics\.com +\bsonycarstereos\.co\.uk +\btranslatedarticles\.com +\bquetzal\.4t\.com +\bdmv\.org +\baffiliateprograms\.com +\bunitedstates\.org +\bdepartmentofmotorvehicles\.com +\bsforzesca\.it +\bbrookebiggs\.net +\bkrisztinasereny\.net +\bcassideyrae\.net +\bautumnhaze\.net +\bangel(?:adangelo|icabella)\.net +\banitablonde\.org +\balexisfire\.net +\bbritannyandrews\.net +\bchrissymoran\.org +\bgillianbonner\.net +\blucithai\.net +\blittleoralannie\.org +\blillythai\.org +\bkittyfoxx\.org +\bFRESHswing\.com +\bharmonicazone\.com +\bflo2flo\.com +\barchive\.org/details/Bharatanatyam_dance +\bkalakendra\.wordpress\.com +\barchive\.org/details/Bharatanatyam-Bharathanatyam +\bbharatanatyam-bharathanatyam\.blogspot\.com +\bhtmlgear\.tripod\.com/event/control\.event\?a=render&style=event&u=promiserani&i=1&rec=349 #Note I think I have this regex right +\bpwp\.netcabo\.pt/jmmg\b +\blionfree\.altervista\.org\b +\bartericerca\.com\b +\bmikafanclub\.com +\bkartingextra\.com +\byourmycrush\.com +\bdateburn\.com +\bbrightonvibes\.com +\bwaterutopia\.com +\beatingbritain\.com +\bhyundaisportsclub\.com +\bredclaim\.com +\bdashboardmonkey\.com +\burbanindustry\.co\.uk +\bmercedesbenzcarinsurance\.com +\bduvetland\.com +\blacieg2s\.ca +\bw3terra\.(?:ca|net) +\baina-model\.net +\balfd\.net +\bchranenka\.net +\bdarla\.ca +\bdarling-model\.net +\bdearly-loved-one\.net +\beternal-girl\.net +\bforever-(?:girl\.|sabrina-)net +\bforevermydarling\.com +\bicon-girl\.net +\bkyra-model-star\.net +\bliving-spirit\.ca +\bmaeve-model\.net +\bmar(?:ie|y)-model\.net +\bophelia-model\.net +\bveronica-model\.net +\beasylnk\.com +\bus-banks\.info +\bquickbabysite\.com +\bmexicotravel\.in\b +\bfederbukkake\.com\b +\bhealth\.cleeck\.com +\bamericansharemarket\.com +\barticles(?:4free|bridge)\.com +\baustraliastockexchange\.net +\bblogsbasket\.com +\bcanadastockexchange\.biz +\bdubaistock\.info +\behealthguide\.info +\bexplorearticle\.com +\bezinevalley\.com +\bkarachistock\.info +\bpaycents\.com +\btext2read\.com +\bthekarachi\.com +\btopnasdaqstocks\.com +\bportal\.ismaili-net\.com +\bsaree\.50webs\.com +\bminiweblink\.com +\bsubmitlink\.biz +\bhd-dvd-key\.com +\babruzzoturismo\.net +traditio[\..]ru +\bcais-soas\.com +\bsardimpex\.it +\bantiwrap\.com\b +\btheigdb\.com +\blysting\.com +\bautocrust\.blogspot\.com +\bafif(?:(?:2|chat|poem|up)\.com|\.ws) +\blocation\.essaouira-voyage\.com +\bworkforall\.net +\bhealthadel\.com +\bsouthsurvey\.com +\bkitzor\.net +\bxlurl\.net +\bamoo\.org +\bmyfreepaysite\.com\b +\bwikisucks\.blogspot\.com #spamming [[en:Criticism of Wikipedia]] +\bgaypornlinx\.com\b +\bbest-cartuning\.com +\bfd\.tc\.co\.uk\b +\bsurl\.co\.uk\b +\bslingshot\.to\b +\bcontinue\.to\b +\bcommitted\.to\b +\bget-me\.to\b +\bdestined\.to\b +\bembark\.to\b +\bwakeup\.to\b +\btra[kx]\.to\b +\bdear\.to\b +\btakeoff\.to\b +\bchild-support-laws-state-by-state\.com\b +\b(ronpaulpresident|cometobeyondbabylon|beyondbabylon|christmascondemned|templemountjerusalem|kemplervideo|armstrongherbert|toledo-race-riots|two-witnesses-revelation|europeunitedstates|unresolution181|tentribes|herbert-w-armstrong|david-ben-ariel|shimonperes|yitzhakrabin|plaintruthabouteaster|christmasandeaster|lifeisatrek|losttentribes|daniel-911|daniel911|sharon-ariel)\.blogspot\.com\b +\balanasoares\.net\b +\balenaseredova\.org\b +\balinavacariu\.net\b +\bangieeverhart\.org\b +\bannafalchi\.org\b +\bannetteschwarz\.net\b +\baprilhunter\.org\b +\bbrittanydaniel\.net\b +\bchristinemendoza\.org\b +\bdanielacicarelli\.org\b +\bericarosecampbell\.org\b +\berikamichellebarre\.net\b +\bfedericafontana\.org\b +\bgiulianamarino\.org\b +\bhannaverboom\.net\b +\bheather(?:renesmith|thomas)\.org\b +\bjenniferhurt\.net\b +\bjennsterger\.org\b +\bjerilee\.org\b +\bjessicastam\.org\b +\bkarrinesteffans\.net\b +\bleannaheart\.net\b +\blisasparxx\.net\b +\bmeganhauserman\.net\b +\bmonicabelucci\.net\b +\bnatashayi\.org\b +\bnormastitz\.net\b +\bpatriciavelasquez\.org\b +\braicaoliveira\.org\b +\brebekahteasdale\.org\b +\brobertasmallwood\.net\b +\bryouehara\.net\b +\btatjanasimic\.net\b +\btinytove\.org\b +\btorilane\.org\b +\bjijija\.com #from zh wp +\bcriccawikipediaitaliana\.blogspot\.com +\bscpanel\.net\b +\bgoogle\..{1,5}/cse\b +\bxshorturl\.info\b +\bchrismorris\.ws\b +\bcli[kx]\.to\b +\bdevoted\.to\b +\byoutube\.ag\b +\bsearchtravel\.biz/countrylist/italy\.php\b +\bwowomg\.com\b +\bwatchbritneyspears\.com\b +\bclokwise\.com\b +\bredknob\.teamdot\.com\.au\b +\bterminalvelocityparkour\.tk\b +\beq2nation\.tk\b +\bffconsultancy\.com\b +\blg-sl\.net\b +\banti2ch\.blog61\.fc2\.com\b +\barvel7aico\.btblog\.jp\b +\bAdvisorsDirectory\.com\b +\bdebbiedoesdallasagain\.net\b +\bjennafilms\.com\b +\bkimkardashiandvd\.net\b +\boliviatape\.com\b +\bart\.lojadeluxo\.com\b +\bSinghsandKaurs\.com\b +\bYoungSikhs\.net\b +\bggssc\.net\b +\bnokiastore\.in\b +\btrack\.vivid\.com\b +\bchildrensangelflight\.org/images\b +\bcanadianmedsworld\.com\b +\barabti\.com\b +\btarjan\.uw\.hu\b +\benglandandenglishhistory\.com\b +\bezinearticles\.com\b +\bskimall\.net\b +\btellurideofficialguide\.org\b +\bscpanel\.com\b +\bnewslimited\.org\b +\bwesmannion\.Com\b +\bziggyswitkowski\.com\b +\bhoodiagordoniiplus\.com\b +\betclinic\.com\b +\bcrocsclub\.(com|info)\b +\bmobiways\.com\b +\bankor\.info\b +\bbems\.info\b +\bbsbs\.biz\b +\bcinn\.info\b +\bconm\.info\b +\bcret\.info\b +\bdiplomov\.net\b +\bdufy\.info\b +\befraim\.info\b +\bendre\.info\b +\bfard\.org\b +\bfederalcreditunion\.biz\b +\b(vodu|toed|tios|salp|olid|nulo|muci|kapi|juho|jaki)\.info\b +\bpape\.us\b +\bseacartel\.com\b +\bsnns\.biz\b +\byogacentre\.info\b +\bandorraz\.org\b +\bkwfm\.net\b +\bluketheking\.(2page|zweipage)\.de\b +\bdui-trix\.com\b +\bsigord\.blogfa\.com\b +\bpargatravel\.eu\b +\bdlel\.2s2s\.com +\bwikipedia\.un\.mythe\.over-blog\.com\b +\btourismindochina\.com\b +\bpassioncambodia\.com\b +\bbayontours\.com\b +\bitaly-lowcost\.com\b +\bfilcoo\.com\b +\b50centfanforum\.com\b +\bacademyawardsfan\.com\b +\bakonfan\.com\b +\bannanicolesmithfan\.com\b +\bbachelorfan\.com\b +\bbeyonceknowlesfan\.com\b +\bbigbrotherfansite\.com\b +\bchanningtatumfan\.com\b +\bchrisbrownclub\.com\b +\bclarksonfan\.com\b +\bcolinjamesfarrell\.com\b +\bdogshowclub\.com\b +\beminemfanforum\.com\b +\bgooglefansite\.com\b +\bhilaryerhardduff\.com\b +\bhiltonfan\.com\b +\bholydaysofobligation\.com\b +\bidolfansite\.com\b +\bjamesbluntfan\.com\b +\bkatharinemcpheeforum\.com\b +\bkeirachristinaknightley\.com\b +\bmadonnafansite\.com\b +\bmannypacquiaofan\.com\b +\bmaumarcelo\.org\b +\bmichellewingkwan\.com\b +\bpamelaandersonclub\.com\b +\bpbbfan\.com\b +\bpgatourforum\.com\b +\brachaelrayweb\.com/\b +\brichardbrucecheney\.com\b +\brunescapefanclub\.com\b +\bsmalltownlottery\.com\b +\bstacyannmariekeibler\.com\b +\bterilynnhatcher\.com\b +\btheprojectrunway\.com\b +\btonigonzaga\.org\b +\bmankatowebdesign\.com\b +\bboredboard\.org\b +\bcaffeinemarketing\.com\b +\bjohnmarkkarrblog\.com\b +\bmarketresearchmarketing\.com\b +\bemailmonk\.com\b +\bbanfacebook\.com\b +\bsmellywasher\.com\b +\bsoulfinder\.eu\b +\baishwaryaraifan\.com\b +\bamandapeetforum\.com\b +\bamyelizabethfisher\.com\b +\bangellocsin\.org\b +\barnoldaloisschwarzenegger\.com\b +\bashleesimpsonclub\.com\b +\bburberryworld\.com\b +\bcaptainbarbell\.org\b +\bcassieforum\.com\b +\bchanelworld\.com\b +\bcherylburke\.net\b +\bchristi(?:anbautista\.org|naaguilerafan\.com)\b +\bclayaikenforum\.com\b +\bdanitykanelyric\.com\b +\bdavidblainefan\.com\b +\bdemimoorefan\.com\b +\bdixiechicksonline\.com\b +\bdondforum\.com\b +\bdooneybourke\.info\b +\bevalongoriaforum\.com\b +\bfalloutboyforum\.com\b +\bfergieclub\.com\b +\bgofaithhill\.com\b +\bgreysanatomyclub\.com\b +\bgucciweb\.com\b +\bhalleberryforum\.com\b +\bhi5-friend\.com\b +\bhowardallanstern\.com\b +\binthedb\.com\b +\bjasminetrias\.org\b +\bjeanreesewitherspoon\.com\b +\bjennifer(?:anistonforum|joanneaniston)\.com\b +\bjeriryanfan\.com\b +\bjessicaalbaclub\.com\b +\bjustintimberlakeforum\.com\b +\bkapamilya(?:\.org|dealornodeal\.net)\b +\bkapuso\.net\b +\bkatieholmesweb\.com\b +\bkeithurbanforum\.com\b +\bkelliepicklerforum\.com\b +\bkimchiu\.(net|org)\b +\bkirstendunstforum\.com\b +\bleasalonga\.net\b +\bmariahfansite\.com\b +\bmariasharapovapicture\.org\b +\bmariolopez\.info\b +\bmarthastewartfans\.com\b +\bmauitaylor\.org\b +\bmichellerodriguezforum\.com\b +\bmimirogersonline\.com\b +\bmyangelinajolie\.com\b +\bmycarrieunderwood\.com\b +\bmyfendi\.com\b +\bmypanicatthedisco\.com\b +\bmyspacefansite\.com\b +\bnascarfish\.com\b +\bnatalieportmanclub\.com\b +\bncaafansite\.com\b +\bnellykimfurtado\.com\b +\bneopetsfansite\.com\b +\bnflfansite\.com\b +\bnicklacheyforum\.com\b +\bnicole(?:kidmanworld|richiefan)\.com\b +\boprahfansite\.com\b +\bphilippine(?:-idol\.com|idol\.org)\b +\bpinoydreamacademy\.info\b +\bpiolopascual\.org\b +\bpradafan\.com\b +\bpurseboard\.com\b +\bpussycatdollsforum\.com\b +\brihannaforum\.com\b +\brock-star-supernova\.com\b +\bsalmahayekworld\.com\b +\bsammilby\.org\b +\bscarlettforum\.com\b +\bshakirafanforum\.com\b +\bsharonstoneforum\.com\b +\bsimpsonfan\.com\b +\bsouthparkclub\.com\b +\bsoyouthinkyoucandance\.info\b +\bspearsfan\.com\b +\bstephencolbertonline\.com\b +\bthe(?:amazingrace|apprentice|facebook|lost|nba)fan\.com\b +\bthemasters-tournament\.com\b +\btigerwoodsforum\.com\b +\btomcruiseforum\.com\b +\btopmodelfan\.com\b +\btriciahelferfansite\.com\b +\btylerchristopher\.org\b +\bufcheaven\.com\b +\bvanessaminnillofan\.com\b +\bwikipediafan\.com\b +\bwwefanforum\.com\b +\byoutubefan\.com\b +\bzacefronforum\.com\b +\bzhangziyiweb\.com\b +\bzoesaldana\.org\b +\bdatasheet(4u|s)?\.(net|co\.kr|in)\b +\.orkut\.com/Comm +\bphilosopedia\.org +\bmysh-game\.de +compact\.exe\.su +\bgobacolod\.com +\bway\.to +\bup\.to +\bcordbloodhub\.com +\bexpert-dog-training\.com +\b100studentloans\.com +\bacnexpert\.com +\ball-(carparts|digitalreviews|home-security|pcgames)\.com\b +\barthritis-hub\.com +\basthmaxpert\.com +\bbulimia-expert\.com +\bcartoon-secrets\.com +\bcerebral-palsy-med\.com +\bcruise-heaven\.com +\bdating-guru\.com +\bdefibrillatorhub\.com +\bengagementringreview\.com +\beurope-top100\.com +\bexerciseheaven\.com +\bhidrosiscure\.com +\bmortgage-top100\.com +\bmylol\.ro +\bplatinum-first\.com +\brehabcourse\.com +\bweb2earn\.com +\ball-usajobs\.com +\bacdc-forum\.de +\bclogsclub\.com +\bvoobys\.com +\bgemisimo\.com +\bdidim(?:rehberim\.com|(?:beachresort|estate|homes|property)\.net|elmak\.org) +\baltinkumhomes\.net +\bdidymapartotel\.com +\bstudiando\.it\b +\bwebalice\.it/pigionantialfio\b +\becemaml\.(blogia\.)?com +\bgeocities\.com/(wikipedia_bibliotecarios|censura_no) +\bspain\.info/cn/TourSpain # spam on zh wp +\bfredthompsonforum\.com +\bmenwith\.blogspot\.com +\bae18\.com +\beconomichostels\.com\b +\bmuratpasa\.com\b +\bithelpdesksolutions\.com #requested by Ta bu shi da yu +\bhezarbareshgh\.blogfa\.com +\btheocseries\.com\b +\btelefilmseries\.com\b +\bautonomica4\.info\b +\bsega-univers\.de +\bcarnifest\.com +\bjobklub\.com +\bmsoe\.edu/~millerni +\bnews\.engin\.brown\.edu/forums +\bwc1\.worldcrossing\.com +\bpsfc\.mit\.edu/~jinseok +\bees\.ufl\.edu/alumni/forums +\bitcweb\.ecsu\.edu/portal/forums +\bhassock\.org +\bclogsclub\.info +\bkinzparty\.com +\bacmeporn\.com +\bamerican-idol-show\.info +\banrdoezrs\.net +\bdpbolvw\.net +\beasymdpharm\.com +\bfertilizer-information\.info +get-mortgage-refinancing\.info +\bjuicybooty\.net +\bkerismart\.com +mobile-(content-news|ringbacks)\.info +second-mortgage-refinance\.net +\bspokenwordz\.com +\boperafiles\.com +\btop-seo\.cn +\bdinmoseo\.com +powerleveling(?:web|-wow)\.com +\bbeijingimpression\.com +\bdeqinfy\.com +\bruanjianceshi\.cn +\bxowow\.com +\bbjcaihongbj\.com +\bsino-jipiao\.com\.cn +\bchinalipin\.com\.cn +\bcnvacation\.com +\bllegalemapas\.com +\bgeocities\.com/celebrityspaghetti +\bulink\.co\.nr/ +\bpropeciahelp\.com +\bandrewjohns\.ca +\bsanpedrodeatacama\.net +\blatuaautomobile\.com +\bfishingnotes\.com +\bmavirize\.com +\blanguedoc-france\.info +\bsearchmusiconline\.com +\bglobal-itv\.com +\ble\.puy43\.free\.fr +\bbrtravel\.com\.br +\bgamerosters\.com +\bil.*\.interfree\.it +\bla.*\.interfree\.it +\bbabyhold\.com +\bworldchesslinks\.net +\bsustainablesystemsinternational\.org +\bncaa2008rosters\.com +\bsohbetoyun\.com +\bbensohbet\.com +\bduygum\.com +\basksozlerim\.com +\bvatanlar\.gen\.tr +\bhaydichat\.net +\bsohbetsu\.com +\bhotels99\.net +\bindependencia\.net +\bmqblog\.cn +\bmendean\.net +\bcelsnet\.cn +\bcthb\.com\.cn +\bcaws\.cn +\bchongshang\.com\.cn +\btimeyiqi\.com\.cn +\beachost\.com +\bhauyut\.com +\bsino-biyan\.cn +\bnanqu-dental\.com +\batchina\.com\.cn +\bhollycrm\.com +\bstacent\.com\.cn +\bcaipirinha\.us\b +\banna-marly\.narod\.ru\b +volgota\.com +\b5min\.com\b +\bminiville\.fr +\bwinupdatesserv\.com +\bcronologia\.it +www\.google\.com/search\?source=ig&hl=en&q=music\+education\+by\+color +\.privatesalepartners\.com +\.visaforu\.com +\bcilanie\.com\b +\bpumppump\.cn\b +\brecphone\.cn\b +\bchina-byt\.com\b +\bsh-dzbc\.cn\b +\bofficezx\.com\b +\bvcd-dvd168\.com\.cn\b +\bdmseo\.cn\b +\benrichuk\.com\b +\bgoodpolisher\.com\b +\bleexi\.com\b +\btx-bridge\.com\b +\bmyperpignan\.com\b +\bperpignanfr\.com\b +# Thai sexy +\balexandre-pato-fanclub\.blogspot\.com\b +\bcristianoronaldoworld\.com\b +\bfernando-torres-fan\.info\b +\bfrancesc-fabregas\.net\b +\bjapan-sexygirls\.blogspot\.com\b +\bsergio-aguero\.blogspot\.com\b +\bthai-sexygirls\.blogspot\.com\b +\bwallpaper-football\.com\b +# painters +\bbypainters\.com\b +\bjeditoo\.com\b +\bmysundial\.ca\b +\bhells-angels\.pagina\.nl\b +\bbodypaint\.startpagina\.nl\b +\bpinstriping\.startpagina\.nl\b +\bairbrush\.pagina\.nl\b +\bhenna\.pagina\.nl\b +\bred-light-district\.nl\b +\bbowtrol(coloncleanse)?\.org\.ua\b +\bbuyhghproduct\.org\.ua\b +\bchronicpainrelief\.org\.ua\b +\begipt\.org\.ua\b +\bhairrestoration\.org\.ua\b +\bmelatrol\.org\.ua\b +\bnitka\.org\.ua\b +\bquitsmoking\.org\.ua\b +\bthyrominethyroid\.org\.ua\b +\bcathar\.info\b +\brenneslechateaubooks\.info\b +\bbestfrenchfilms\.com\b +\bst-ferriol\.com\b +\bheretication\.info\b +\bvotejedi\.co(\.uk|m)\b +\bspringald\.com\b +\brealstandards\.info\b +\bobservacionesfilosoficas\.net\b +\bpsikeba.com\.ar\b +\bwroclaw-online\.eu\b +\bwarsaw-online\.eu\b +\bpoznan-online\.net\b +\bcracowonline\.com\b +\bgdansk-online\.eu\b +\bzakopane-online\.eu\b +\ballkrakowhotels\.com\b +\bkrakaddict\.com\b +\btorunonline\.com\b +\bhotelewkrakowie\.pl\b +\bkrakowlife\.pl\b +\bhotele(?:wtoruniu\.pl|-warszawa\.eu|wgdansku\.eu)\b +\bnoclegi-wroclaw\.pl\b +\bzakopane-noclegi\.eu\b +\bbellazon\.org\b +\bchilax\.de\b +\bfsffm\.com\b +\bwft-forum\.de\b +\bbellazon\.de\b +\bana-claudia-michels\.com\b +\braica-oliveira\.com\b +\balessandra-ambrosio\.eu\b +\badriana-lima(-forum\.com|\.eu)\b +\breisbegeleider\.com\b +\bmeinliedfuerdich\.com\b #Added by Yann: porn +\bcanurl\.com\b +\bgu\.ma\b +\bakmokanzen\.ifrance\.com\b +\bbroadwaylili\.ifrance\.com\b +\bdemurediablo\.ifrance\.com\b +\bdeviantrus\.ifrance\.com\b +\bgirlwho-is\.ifrance\.com\b +\bhighbulp\.ifrance\.com\b +\bigaros\.ifrance\.com\b +\bjdawsona\.ifrance\.com\b +\bkalian42\.ifrance\.com\b +\blordsander\.ifrance\.com\b +\blovereceier\.ifrance\.com\b +\bnoxuhax\.ifrance\.com\b +\boiyaoi\.ifrance\.com\b +\bsingaporepets\.ifrance\.com\b +\bspeedofsoun\.ifrance\.com\b +\btat-ooin\.ifrance\.com\b +\btizolaa\.ifrance\.com\b +\btoofarfrommaybe\.ifrance\.com\b +\bvoltia\.ifrance\.com\b +\byeeden\.ifrance\.com\b +\bceilingworld\.com\b +\bfindsignal\.com\b +\bfineroof\.com\b +\bfreemobilefun\.net\b +\bhairremovalarea\.com\b +\bhosearea\.com\b +\binsulationhelp\.com\b +\bledplace\.com\b +\blocaltreatment\.com\b +\bmovable-wall\.com\b +\bnicebath\.com\b +\bplayground-world\.com\b +\broomflooring\.com\b +\bthebestinsulation\.com\b +\btitaniumarea\.com\b +\bweldingarea\.com\b +\ball(?:myringtones|phonegames)\.com\b +\barchitectspot\.com\b +\barturnikitin\.com\b +\bbargainhammocks\.com\b +\bbenedict-xvi-pope\.com\b +\bbest-(mortgage-quotes|sex-enhancers|sunless-tanning)\.com\b +\bbobbleheadfinder\.com\b +\bbreast-enhancement-help\.com\b +\bbuy-cruise\.com\b +\bcell(?:-phone-wallpapers|ularservicehelp)\.com\b +\bcheap-(playstation|x-box)\.com\b +\bcloset-world\.com\b +\beroticsexylingerie\.com\b +\bfindfurnace\.com\b +\bfree(?:currencycalculator|desktopfun)\.com\b +\bget-(degree-online|fast-money)\.com\b +\bgetaircompressors\.com\b +\bgypsumus\.com\b +\bhairextensionhelp\.com\b +\bhybridcartoday\.com\b +\bkitchen-remodeling-help\.com\b +\blastcasket\.com\b +\bletmeconvert\.com\b +\bmylogoland\.com\b +\bmytiny(?:baby|phone)\.com\b +\bmywifiphones\.com\b +\bonline-(auto|car)-quotes\.com\b +\border-drugs-online\.com\b +\bphone-screensavers\.com\b +\bpoolsarea\.com\b +\brastagear\.com\b +\breal(?:fiberglass|truetones)\.com\b +\brecreational-vehicles-insurance\.com\b +\bseektires\.com\b +\bskinarea\.com\b +\bstressrelievertools\.com\b +\bthecladdaghrings\.com\b +\bvideoclipcards\.com\b +\bwindow-tinting-info\.com\b +\bfiorano\.com\b +\bnetforu\.org\b +\busome\.com\b +\bbiblewalks\.com\b +\bmyspace\.com/universedaily\b +\bericapacker\.com\b +\bstickycarpet\.com\b +\bvolvosellsdamagedcars\.com\b +\bbratislava-info\.sk\b +\bmts\.net/~sabanski + +\bsimplelink\.php5\.sk\b +\bleggievai\.it\b +\btelavivguide\.net\b +\bmoolamusic\.co\.il\b +\bporto-guide\.com\b +\bbjdyg\.com\.cn\b +\bikyoku-jinji\.com\b +\bvisaforu\.awardspace\.com\b +\bgirafa\.com\b +\brawartint\.com\b +\bboxing-memorabilia\.com\b +\bredtopbg\.com\b +\b1tm\.de\b +\biil\.be\b +\bcarnivalservice\.com\b +\bgtabeauties\.com\b +\bgoascii\.(com|de)\b +\bsnurl\.com\b +\b(sk|hr|hu)\.tl\b +\bshim\.net\b +\b(au|br|fr|hk|shop)\.ms\b +\bhowtocrowd\.com\b +\bremedycrowd\.com\b +\brumorcrowd\.com\b +\brantcrowd\.com\b +\bpredictcrowd\.com\b +\bpalavas\.blog4ever\.com\b +\b12-Steps\.info\b +\bAfricaCo\.com\b +\bBankAccountsCo\.com\b +\bCaymanBankingServices\.com\b +\bClickSwiss\.com\b +\bSwiss(?:BankAccount\.biz|(?:Bank(?:Names|services)|PrivateBank)\.com)\b +\bTaxHavenco\.com\b +\bAnonymousDebitCard\.com\b +\bAtozOfWatches\.com\b +\bBillyFitz\.com\b +\bChannelIslandsCo\.com\b +\bCompanyFormations?Co\.com\b +\bDebitCard24-7\.com\b +\bDelawareCo\.com\b +\bDubai24-7\.com\b +\bMediterraneanCo\.com\b +\bMerchantAccountCo\.com\b +\bOffshoreExclusive\.com\b +\bPrestigeAdverts\.com\b +\bPrivateBankAccount\.com\b +\bWeKnowAbout\.com\b +\balishca-st\.ifrance\.com\b +\batrayah\.ifrance\.com\b +\bcall-shotgun\.ifrance\.com\b +\bcocopuff66\.ifrance\.com\b +\bdejablu503\.ifrance\.com\b +\bflawedamythyst\.ifrance\.com\b +\bgabe95\.ifrance\.com\b +\bgajar\.ifrance\.com\b +\bhorcrionebay\.ifrance\.com\b +\bjoshuaw-wise\.ifrance\.com\b +\bkrychan\.ifrance\.com\b +\blekusya\.ifrance\.com\b +\blightmyfire0214\.ifrance\.com\b +\bmfirishka\.ifrance\.com\b +\bnokros\.ifrance\.com\b +\bsm4\.ifrance\.com\b +\bsmegmacheez\.ifrance\.com\b +\bsquoi-oop\.ifrance\.com\b +\btrumanburb\.ifrance\.com\b +\beakk\.ifrance\.com\b +\bkonthaitours?\.com\b +\b(hiphop|reggae)-radio\.50webs\.com\b +\bcrowdspin\.com\b +\breviewcrowd\.com\b +\bcomedycrowd\.com\b +\bgoldenseconds\.com\b +\bquotescrowd\.com\b +\bideascrowd\.com\b +\bkinzparty\.info\b +\bisra(loft|medicine)\.com\b +\bwebkinz-(recipes|cheat)\.net\b +\bworld-religion\.org\b +\botazoj\.nl\b +\bcaiuszip\.com\b +\bsciarthistory\.com\b +\bstartingiseasy\.com\b +\bmunfitnessblog\.com\b +\bmunblog\.com\b +\btweetl\.com\b +\bcaiozip\.com\b +\bmundoceleste\.ch\b +\bvideo\.olympus\.ru\b +\b2-www\.de\b +\b2go4\.de\b +\b2see\.de\b +\b3rdlevel\.de\b +\b4sports\.de\b +\bbesucht\.de\b +\bcheck-page\.net\b +\bclick(-fun|-page|-?url)\.net\b +\bclickdown\.de\b +\bclubpage\.de\b +\bdirect2\.de\b +\be33\.de\b +\bfast-(here|visit)\.com\b +\bfast2\.de\b +\bfly(?:-page|url)\.net\b +\bfun-url\.(com|net)\b +\bfun-visit\.com\b +\bfunhome\.de +\bfwd2\.de\b +\bgo4me\.de\b +\bhateuchlieb\.de\b +\bhere(?:4u)?\.de\b +\bhere(?:-fast|url)\.com\b +\bhispeed\.de\b +\bist-(hier|im-netz)\.de\b +\bixy\.de\b +\bkurz-url\.de\b +\blikesmusic\.de\b +\blook2\.de\b +\bnetjump\.de\b +\bnice-click\.com\b +\bp-a-g-e\.de\b +\bpage-visit\.com\b +\bpage(?:fun|show|url)\.net\b +\bpage(?:jump|me)\.de\b +\bshow-(fast|url)\.com\b +\bshowurl\.net\b +\bsub-page\.com\b +\bsub\.cc\b +\bsub4u\.de\b +\bsubdomains\.(at|ch|de)\b +\btvsite\.de\b +\buserpage\.de\b +\bvisit-page\.com\b +\bwwwjump\.de\b +\bexasystem\.com\b +\bturkey-industry\.com\b +\bindustrieinderturkei\.com\b +\bsubaru-impreza\.it\b +\bcasinobonusdeposit\.com\b +\bturkcemirc\.org\b +\bbunchofphotosabout\.com\b +\bbicycle-adventures\.com\b +\bmy-island-penang\.com\b +\bpulau-pangkor\.com\b +\byangshuo-travel-guide\.com\b +\bmalaysiavacationguide\.com\b +\befn\.org/~(fotozone|hkrieger)\b +\bwithyouitspossible\.com\b +\bcontigoesposible\.com\b +\bdrugstoretm\.com\b +\bonline-pharmacy-drugstore\.blogspot\.com\b +\bamericapharmacyworld\.com\b +\bhoganrx\.net\b +\bmypharma(?:(?:1|cyworld)\.net|n(?:ow)?\.com|(?:stop|usa)\.(?:biz|net))\b +\bmyrxunited\.com\b +\bpharma1\.net\b +\bhibiny\.ru\b +\bgervaisworld\.com\b +\bjimmycarr\.net\b +\bdbtalk\.co\.uk\b +\bderren-brown\.net\b +\binternetbabel\.com\b +\bdrivingmadeeasy\.co\.uk\b +\ballkeyword\.org\b +\bxml-rss\.com\b +\btry\.hu\b +\bvoip-services-provider\.co\.uk\b +\bminorurl\.com\b +\bgourl\.biz\b +\bflowers-photos\.eu\b +\bendangeredspeciesinternational\.org\b +\bwikimages\.org\b +\banimalstube\.com\b +\bbunchofvideosabout\.com\b +\bbiz-vision\.org\b +\bworldwidealbums\.tk\b +\bzonow\.com\b +\bkurl\.nl\b +\burlsie\.com\b +\blix\.in\b +\bhref\.to\b +\bkuerzer\.de\b +\braghunathmanet\.com\b +\bmecatiss\.(com|info)\b +\bsmartlabs\.pl\b +losethegame\.com #encouraging page vandalism which includes this URL +\beclipse-glasses\.(com|net)\b +\b(?:england-|chester|york|bath)360\.co\.uk\b +\bhandster\.com\b +\bbeatbox\.be\b +\bbeatoxic\.com\b +\beclipse-glasses\.eu\b +\bvenuscope\.com\b +\bblpurl\.com\b +\bcmsimple\.com\.br\b +\bsudpontino\.net\b +\buarticles\.blogspot\.com\b +\bdokuwiki\.com\.br\b +digilander\.libero\.it/andrea\.nardo1977 +\badultcliks\.com\b +\bav-videos\.com\b +\bbabecollector\.com\b +\bbaseballsexgames\.com\b +\bcelebrityinferno\.com\b +\beurohotbabes\.com\b +\bfcnudes\.com\b +\bkbabe\.com\b +\bkbitches\.com\b +\bkcastings\.com\b +\bkerotic\.com\b +\bkfetish\.com\b +\bkfisting\.com\b +\bklivecam\.com\b +\bkpeeing\.com\b +\bkporns\.com\b +\bkscans(-germany)?\.com\b +\bkteama.info\b +\bmouthpee\.net\b +\bpuppetcams\.com\b +\br-back\.com\b +\bsexmetaltoys\.com\b +\btop-nude\.com\b +\bvipbeauties\.net\b +\bvipclash\.com\b +\bwatchmyexbabes\.com\b +\bx-proxy\.com\b +\bamazon\.de/First-Class-Nudes-Marketa-Belonoha\b +\bcentroherbalife\.com\b +\burl\.vg\b +\bhappybuyer\.org\b +\bmicholita\.com\b +\bcyndilauperuk\.com/ReissuesPage.html\b +\bhumanthermodynamics\.com\b +\bhumanchemistry\.net\b +\bendeav\.org\b +\bwebalice\.it/giubizza1\b +\bgiubizza\.blogspot\.com\b +\bxoomer\.alice\.it/giubizza\b +\bgiubizza\.tk\b +\bborgenproject\.(com|org)\b +\b(facel-vega|facel.*\.wanadoo)\.fr\b +\bshanghai2010\.hu\b +\bapurogol\.com\b +\badvisorsdirectory\.(net|org)\b +\bexpo2010china\.hu\b +\bbahamas(-beach-rental|-bookstore|-diving|-honeymoon|-rental|-store|-travel|-villa-rental|homesite)\.com\b +\bcaribbean-rental\.com\b +\bcat-island(?:-rental\.com|\.net)\b +\beleu\.net\b +\beleuthera-(bahamas|bahamas-rental|rental)\.com\b +\beleuthera\.(biz|com)\b +\bkafkas-cafe\.com\b +\bout-island-wedding\.com\b +\btheduckinn\.com\b +\bwww-saand\.com\b +\bagrigento\.ag\b +\bgelalive\.com\b +\blogisticsclub\.com\b +\blojistikkulubu\.(com|org)\b +\blogisticsclub\.org\b +\bmyspace\.com/terriirwin\b +\bbombingscience\.com\b +\bitalien-gastgeber\.com\b +\btravexpert\.net\b +\btopsiter\.net\b +\bparis-prisoner\.com\b +\bilwebmaster\.net\b +\bnoemy\.net\b +\bbayern-gastgeber\.de\b +\btheflowersofromance\.tk\b +\bdcc\.ttu\.ee/Bands/get\.asp\?ident=2555\b +\bmyspace\.com/(tfor|vennaskond)\b +\bgportal\.hu\b +\bexpo2010kina\.hu\b +\bbeginner-sql-tutorial\.com\b +\brxmedsoffer\.com\b +\bbudapestpocketguide\.com\b +\bfreelancer\.com\.ar\b +\bfaeroerne\.dk\b +\b2008-beijingolympics\.(com|org)\b +\b2010shanghaiworldexpo\.com\b +\balternateroutestravel\.org\b +\bausteach\.(com|org)\b +\bbusinessesl\.(com|org)\b +\bbuxiban\.(biz|net)\b +\bchina-(2008-beijing|study-in|teach-in)\.com\b +\bchinacam\.net\b +\bchinaeducationexchange\.com\b +\bchinatravelfacts\.org\b +\bchinavisaapplication\.org\b +\besljobschina\.org\b +\beslschoolreview\.org\b +\beslschoolwatch\.com\b +\beslteachercafe\.(com|net|org)\b +\beslteachersboard\.(net|org)\b +\beslteacherscafe\.net\b +\bflooring(?:-contractor|supply)\.biz\b +\bflooring(?:-laminate|fromchina)\.net\b +\bfootprintsrecruiting\.net\b +\bhunanteach\.(net|org)\b +\bjourneywest\.net\b +\blearnchinesenow\.org\b +\bmarksesl\.org\b +\bmikescreel\.com\b +\bmychinesewife\.com\b +\bpandasteps\.(com|net)\b +\bstudent-travel-china\.org\b +\bstudyinchina\.biz\b +\bsummerinchina\.(net|org)\b +\bteach-and-travel\.com\b +\bteach-in-(asia|beijing|shanghai)\.org\b +\bteachcn\.org\b +\bteachinasia\.org\b +\btesolmax\.(net|org)\b +\btravel-insurance-quote\.org\b +\buschina-edu\.com\b +\bvolunteer-jobs-abroad\.com\b +\bz-visa\.(net|org)\b +\bnicole-scherzinger\.bizs\.pl\b +\bhalongbay-vietnam\.com\b +\bsofraser\.com\b +\bmetro-subway-train-list\.com\b +\borigamivideos\.net +\bmetalhead\.ro\b +\bbestmusic\.ro\b +\brockon\.ro\b +\bmetalheadtv\.com\b +\bbilgipara\.com\b +\bpataraexcavations\.com\b +\brhodiapolis\.com\b +\bfree-lock-picking-guide\.com\b +\ballmartialart\.com\b +\bfreefighting\.org\b +\bclosedefenceart\.org\b +\beirikur\.info\b +\bmesothelioma\.pl\b +\bcube2007\.com\b +\bwypadek\.info\b +\bglowicki\.pl\b +\bwypadki\.fotolog\.pl\b +\bthisdaythatyear\.com\b +\bvizaginfo\.(com|net)\b +\belectionsinfo\.com\b +\bpincodesindia\.com\b +\bastrologyforu\.com\b +\bvijaytechnologies\.com\b +\bindia(?:hostingreview|studycenter)\.com\b +\biitisnapur\.com\b +\bgajuwakainfo\.com\b +\bedcetinfo\.com\b +\baucet\.com\b +\bicetinfo\.com\b +\bandhranews\.com\b +\bchitoor\.com\b +\btelanganauniv\.com\b +\bsrikakulaminfo\.com\b +\btollywood\.info\b +\bvizagclassifieds\.com\b +\bsoftwaretalk\.info\b +\bgetpaidindia\.com\b +\basuku\.com\b +\bbanks-atms\.com\b +\bcollegezones\.com\b +\bcricketfun\.com\b +\bgreatpersonalities\.com\b +\bknowledgeisfun\.com\b +\bvizagnews\.com\b +\bandhranews\.net\b +\burbantrash\.(net|altervista\.org)\b +\bstatisticum\.org\b +\bhurghada(?:homes\.co\.uk|-tourism\.com)\b +\beasy-forex\.com\b +\btuttotempolibero\.(com|altervista\.org)\b +\be-zeus.narod\.ru\b +\ballhostinginfo\.com\b +\bnedvarticles\.narod\.ru\b +\bfirewall-pi\.narod\.ru\b +\bnedcruise\.info\b +\bfreewebs\.com/tradeforeignexchange\b +\bdirectoryforex\.com\b +\beasyforexforum\.com\b +\bseology\.co\.il\b +\bbookkeeping-course\.com\b +\bcanaseed\.com\b +\bfancydiamonds\.net\b +\bworldwide-tax\.com\b +\bkwizcom\.com\b +\bseo1site\.com\b +\bwao\.co\.il\b +\bmustangranch\.com\b +\bdeu\.edu\.tr/yot\b +\bkisi\.deu\.edu\.tr/dogan\.gunay\b +\b2girls1cup\.com\b +\bpatanibook\.blogspot\.com\b +\bmilostravel\.com\b +\bkimolos-island\.com\b +\bfolegandros\.com\b +\bislands-greece\.com\b +\bvilla-kapari\.com\b +\bconnexia\.com\b +\bisolegreche\.com\b +\bbirgersandzengallery\.com\b +\bedgarpaynegallery\.com\b +\belmerwachtelpaintings\.com\b +\bgranvilleredmondgallery\.com\b +\bguyrosegallery\.com\b +\bguywigginspaintings\.com\b +\bjohnmarshallgamble\.com\b +\bjoseph(?:kleitschgallery|raphaelgallery)\.com\b +\blawrencebeebe\.com\b +\bmauricebraungallery\.com\b +\bsvenbirgersandzen\.com\b +\bwilliamwendtgallery\.com\b +\bguidetocissp\.com\b +\bzoabonito\b.com\b +\bsteadycam(?:\.ws|-pro\.com)\b +\beurobiler\.dk\b +\bbig(?:bmw|onlinegames)\.com\b +\bchristmas\.bizhat.com\b +\beurope\.bizhat\.com\b +\bkeywords\.bizhat\.com\b +\bmmorpg\.bizhat\.com\b +\bonlinegames\.bizhat\.com\b +\bdating-tip\.org\b +\bdealertruck\.net\b +\bfastestcar\.net\b +\bflightlondon\.net\b +\bhosting15\.com\b +\borpgames\.com\b +\btopcelebrityphoto\.com\b +\btophybridcar\.net\b +\bbbsggames\.net\b +\bfreeogames\.com\b +\bwebhostingspotter\.com\b +\bdm-(cqsf|lietou)\.cn +\bhosting-pi\.narod\.ru\b +\bstroit-info\.narod\.ru\b +\bcmsarticles\.awardspace\.com\b +\bkompinfo\.com\b +\bcmsarticles\.narod\.ru\b +\bhardwax\.net\b +\bmyminicity\.com\b +\bchinayuntong\.cn\b +\bhungarybudapestguide\.com\b +\btouristguide\.gyuli\.com\b +\bmarvaoguide\.com\b +\bipoconsult\.info\b +\bhow-to-tie-a-tie-video\.com\b +\bmetapedia\.org\b +\bpugliarooms\.com\b +\bthelolicon\.com\b +\bgallipolibedbreakfast\.it\b +\bmusicserver\.us\b +\biccco\.org\b +\bpeace-diplomacy\.org\b +\bsynpolis\.org\b +\beufpc\.org\b +\bdiplomacy-advisory\.org\b +\bcanadaliving.org\b +\bdouggilmour\.com\b +\bsemexpertise\.com\b +\btax-services\.ca\b +\blocalsearchcanada\.com\b +\blyrikline\.(com|net|org)\b +\bmyrize\.org\b +\brizebilisim\.com\b +\brizeresimleri\.blogcu\.com\b +\brize-resimleri\.blogspot\.com\b +\brize\.fukuku\.com\b +\bcay\.fukuku\.com\b +\byoutube-seo\.blogspot\.com\b +\btapp\.it\b +\bsillyurl\.com\b +\businglinux\.org\b +\bkeskinmavi\.com\b +\bkemaliye\.net\b +\barsaofisi\.net\b +\barsaborsa\.com\b +\bkiemlak\.com\b +\bemlaknetwork\.net\b +\binformation-center\.biz\b +\bkemaliye\.eu\b +\bflatsinistanbul\.net\b +\b1st-cheapest-domain-names-registration-best-price-hosting\.com\b +\bkitdesign\.eu\b +\bizmir\.us\b +\btatilrehberiniz\.us\b +\bkellekci\.net\b +\begin\.us\b +\brehberiniz\.org\b +\bprojevi\.com\b +\brehberi\.us\b +\bclickbank\.net\b +\btrrap\.net\b +boylovernet +\bbigforexlive\.com\b +\bdatashaping\.com\b +\bsearchsmart\.net\b +\bnewprinceton\.com\b +\bclickscoring\.blogspot\.com\b +\blanguageshaping\.com\b +\bclick(?:scoring|-audit)\.com\b +\bqueryintelligence\.com\b +\btext(?:raction|shaping)\.com\b +\banalytic(?:consulting|group)\.com\b +\bbed-breakfastpuglia\.it\b +\bplay-asia\.com/SOap\b +\bpacino\.narod\.ru\b +\bmustang\.te\.ua\b +\bcaesarstone(us)?\.com\b +\blacalabria\.biz\b +\bvacanzeatropea\.biz\b +\bcapovaticano\.info\b +\boutdoorebooks\.com\b +\bd3m-host\.com\b +\busabirds\.free\.fr\b +\bperrin.olivier\.free\.fr\b +\bnewyork\.drawing\.free\.fr\b +\bevry-daily-photo\.blogspot\.com\b +\bwalkinnewyork\.blogspot\.com\b +\bnewyorkbirds\.free\.fr\b +\bnyc2006\.free\.fr\b +\bclickok\.co\.uk\b +\bmanaging-creativity\.com\b +\bfile-splitter-by-lines\.com\b +\bsqaji\.com\b +\bheros-journey\.info\b +\bscreenplay-structure\.com\b +\bstory-structure\.org\b +\bamede\.nyc\.free\.fr\b +\btk\.kelly\.free\.fr\b +\bthetimeshareforum\.com\b +\btenerifedreams\.com\b +\bresortproperties-world\.com\b +\blovingdubai\.com\b +\bisland-korcula\.info\b +\briviera-makarska\.info\b +\bisland-hvar\.info\b +\bvis-island\.info\b +\bsucuraj(-hvar)?\.com\b +\bisland-of-brac\.info\b +\bgeocities\.yahoo\.com\.br/gotaelbr\b +\bforeverpemba\.blogspot\.com\b +\bplaneta\.terra\.com\.br/turismo/pesodaregua\b +\bfunctionpointmodeler\.com\b +\bbsunsweetskin\.com\b +\bbasbestos-cancer\.sk\b +\bbarchitecture\.sk\b +\bbpsychoworld\.sk\b +\bbasbestosdoc\.com\b +\bbaboutmodafinil\.com\b +\bbadaphostin\.com\b +\bbampakines\.org\b +\bbastirmarketing\.com\b +\bbbarleylake\.com\b +\bbburntreatment\.org\b +\bbhedgefundquestions\.org\b +\bbhmo-lawsuits\.com\b +\bbhyperstrategy\.com\b +\bbmalignesmesotheliom\.de\b +\bbmesoteliomamaligno\.(es|it)\b +\bbmesotheliomainternational\.org\b +\bbmesotheliome\.fr\b +\bbmigrainemanager\.com\b +\bbnalmefene\.org\b +\bbprodrax\.com\b +\bbprovigilweb\.org\b +\bbsiteco(?:ach|mpass)\.com\b +\bbsleepdex\.org\b +\bbstatinanswers\.com\b +\bdalekozor\.com\b +\bfunctionpointmodeler\.de\b +\bvilasta\.com\b +\bpteelien\.net\b +\bajalehed\.com\b +\bavisernorge\.com\b +\bceskenoviny\.net\b +\bdanskeaviser\.com\b +\befimerides\.net\b +\bgazet(?:eler\.com|at\.net)\b +\bgiornaliitalia\.com\b +\bjornais(?:\.net|dobrasil\.com)\b +\bjornaisportugueses\.com\b +\bjournaux\.net\b +\bnederlandsekranten\.com\b +\bnewspapersin(?:ireland|nigeria|theuk)?\.com\b +\bperiodikos\.com\b +\bpolskiegazety\.net\b +\bsuomensanomalehdet\.com\b +\btidningarsverige\.com\b +\btouslesjournaux\.com +\bzeitungen(?:deutschland|osterreich|schweiz)\.com +\bziareromanesti\.net +\btshaberler\.com +\bfmbb\.livreforum\.com +\bseksmarketim\.biz\b +\bextremesportsvideos\.org\b +\beuropedia\.moussis\.eu\b +\blegambientecorato\.it\b +\bhiphop-reggae-radio\.we\.bs\b +\bpresident-star\.blogspot\.com\b +\bmetallica\.su\b +\bplaymates\.su\b +\bvideophone\.nu\b +\blive-station\.org\b +\bdruk(?:werken|kerij-drukwerk)\.nl\b +\btrouwkaartjes\.com\b +\btagate\.com\b +\bfactasy\.com\b +\bcommonpurpose\.org\b +\blibertas(?:\.sm|-newssanmarino\.blogspot\.com)\b +\bvirtual\.oradea\.net\b +\bmoneybookers\.com/app/\?rid= +\bamazon.com/gp/redirect\.html +\brcm\.amazon\.com/cm\?t= +\bamazon\.com.*(\?|&)tag= +\bbastore\.amazon\.com\b +\beclipse-china\.com\b +\bdeath-?camps\.org\b + +## URL shorteners 2 +\bsmileurl\.com\b +\bhumbleurl\.(com|net)\b +\burlhash\.(com|org)\b +\burlsmash\.com\b +\boffto\.net\b +\balgart\.net +\bye-s\.com\b +# End of URL shorteners 2 + +\bdotcominfoway\.com\b +\bgalatta\.com\b +\bshriyaonline\.(com|info)\b +\bmalavika\.info\b +\bnayantaraonline\.info\b +\bbhavanaonline\.info\b +\bnishakothari\.info\b +\bsandya\.info\b +\basinonline\.info\b +\bsnehaonline\.info\b +\brenukamenon\.info\b +\bkanihaa\.com\b +\bjyotikaonline\.com\b +\bvellitheraithemovie\.com\b +\bjithanramesh\.com\b +\bsherin-online\.com\b +\bjothika-online\.com\b +\bkettavanthe(movie|film)\.com\b +\b2checkout\.com\b +\bdashaavtaram\.com\b +\bvaaranamaayiram\.com\b +\bbheema(?:\.info|a\.com)\b +\bsultan-the-film\.com\b +\bkuruvi\.info\b +\bbillathemovie\.com\b +\bgraphwise\.com\b +\bpazhani\.com\b +\bparuthiveeranthemovie\.com\b +\bilayathalapathyvijay\.com\b +\bsimbuonline\.com\b +\baaryamovie\.com\b +\bsivaji-the-film\.com\b +\batmthefilm\.com\b +\bazhakiyathamizhmagan\.info\b +\bzerust\.com\b +\bkireedom\.info\b +\bmadurai4u\.com\b +\biltsource\.com\b +\bxyleme\.com\b +\bjothikaonline\.com\b +\bpriyamudansneha\.com\b +\bmy-bharath\.blogspot\.com\b +\bgalatta\.tv\b +\borampo\.com\b +\bbilla2007\.info\b +\bkaalai\.com\b +\bdebtfin\.com\b +\bamericandreamwine\.com\b +\bactorvijay\.com\b +\bgauthammenon\.com\b +\bdirectorbalumahendra\.com\b +\bactresspooja\.com\b +\bactor(?:suriya|arya)?\.com\b +\bmachakkaaran\.com\b +\brskworld\.com\b +\b75yearstamilcinema\.com\b +\bsuriya-online\.com\b +\bsneha-online\.com\b +\bbackwatersthefilm\.com\b +\bjeevaonline\.com\b +\bkannumkannum\.com\b +\bactorvijayonline\.com\b +\bjeeva-online\.com\b +\bgalattaglobalevents\.com\b +\bmeeravasudevan\.com\b +\bchiyaanvikramonline\.com\b +\bthoondilthefilm\.com\b +\bpoothefilm\.com\b +\bramanthediyaseethai\.com\b +\brmadhavan\.com\b +\btrsimbu\.com\b +\bbhavana-online\.com\b +\bvannathupoochi\.com\b +\bprashanthonthenet\.com\b +\binbathefilm\.com\b +\bnaankadavul\.com\b +\blailaonline\.info\b +\bharrisjayaraj\.com\b +\byaaradineemohini\.com\b +\bthiruvasagamthemovie\.com\b +\bactorvishal\.com\b +\blaila\.net\b +\btamilmathefilm\.com\b +\brameshwaramthemovie\.com\b +\bdirectorbala\.com\b +\bvalavaan\.com\b +\bsathyamthemovie\.com\b +\bnandita-das\.com\b +\bnepalithefilm\.com\b +\bdhaamdhoom\.com\b +\bnandalalathefilm\.com\b +\bdesirable-pleasur\.info\b +\bviyabari\.com\b +\bsathyaraj\.com\b +\bsajinithefilm\.com\b +\bkiranonline\.info\b +\bsibiraj\.com\b +\brssurya\.com\b +\bmeenaonthenet\.com\b +\bthottathefilm\.com\b +\banandapictures\.com\b +\bdhurai\.com\b +\babhiyumnaanum\.com\b +\bvedikundumurugesan\.com\b +\bthalaimagan\.com\b +\brenukamenon\.com\b +\bradikaa\.com\b +\btrishakrishnan\.com\b +\bsangavi\.com\b +\breggae-hiphop-radio\.we\.bs\b +\bierasmus\.com\b +\bplaneterasmus\.net\b +\bparapara-doga\.seesaa\.net\b +\bvinatown\.org\b +\bazqq\.com\b +\bbags-4u\.co\.uk\b +\bcheap-tv-uk\.co\.uk\b +\bcomputer(?:forstudentuk|partuk)\.co\.uk\b +\bcredit-card4u\.com\b +\bentrepreneurs4u\.com\b +\bgifts-occasions-4u\.co\.uk\b +\bproperty-and-real-estate-4u3\.co\.uk\b +\bsmart-traffic\.co\.uk\b +\bstudent(?:computers|find)\.co\.uk\b +\baccommodation-4u\.co\.uk\b +\barts-crafts-4u\.co\.uk\b +\bautocar4u\.com\b +\bbabies-children-resource\.co\.uk\b +\bbeanbagfactory\.co\.uk\b +\bbroadband-4u\.com\b +\bbusiness-services-4u\.co\.uk\b +\bcebu-food\.com\b +\bcheap-(flights4u|sat-nav)\.com\b +\bcheap(-travel-4u|computeruk|laptopuk|notebookuk)\.co\.uk\b +\bclothing-4u\.co\.uk\b +\bcommunication4\.co\.uk\b +\bcomputer(caseuk|computeruk|monitoruk)\.co\.uk\b +\bconsumer-(electronics|goods|services)-4u\.co\.uk\b +\bdating-service-4u\.com\b +\bdiscountcomputeruk\.co\.uk\b +\becommerce-asia\.co(\.uk|m)\b +\becommercebuddy\.co\.uk\b +\bexhibitions-promotions-4u\.co\.uk\b +\bfinancialservice4u\.com\b +\bfind-homes-4u\.com\b +\bgaming-activities-4u\.co\.uk\b +\bgarmin4u\.com\b +\bgiantcod\.com\b +\bhealthonline4u\.com\b +\bholiday-4u\.com\b +\bhome-improvements-4u\.co\.uk\b +\binternet(-services-4u|buyerdirect)\.co\.uk\b +\binternetcomputersdirect\.co(\.uk|m)\b +\bjust-diamond-jewellery\.co\.uk\b +\bkitesurfing4u\.com\b +\blaptop(battery|computer|laptop)uk\.co\.uk\b +\bloans-online4u\.com\b +\bmoalboal-travel-guide\.com\b +\bnews-4u3\.co\.uk\b +\bnotebookcomputeruk\.co\.uk\b +\bonline(?:-insurance|gambling-)4u\.com\b +\bpocket-bikes\.co\.uk\b +\bprofessional-services-4u\.co\.uk\b +\brecreation-4u\.co\.uk\b +\brecruitment-4u\.com\b +\brefurbished(?:computerlaptop|notebook)uk\.co\.uk\b +\bregional-info-uk\.co\.uk\b +\bringtones-logos-4u\.com\b +\bshopping-guides-4u\.co\.uk\b +\bsports-stuff-4u\.co\.uk\b +\bstudentcomputer\.org\.uk\b +\bstudentkiss\.co\.uk\b +\bstudentmachines\.co(\.uk|m)\b +\btransport-4u\.co\.uk\b +\busbfactory\.co\.uk\b +\bused(?:computer|laptop(?:computer)?|notebook)uk\.co\.uk\b +\bweb-services-4u\.co\.uk\b +\bweddings-cebu\.com\b +\bautomarkhistory\.com\b +\breizen-(portugal|duitsland)\.info/\b +\bportugal-travel-guide\.info/\b +\bviaggi-(germania|portogallo)\.info/\b +\bviagens-alemanha\.info/\b +\bviajes-(alemania|portugal)\.info/\b +\bbaccara-forever\.de\b +\bvoyage-(portugal|allemagne)\.info/\b +\bgermany-travel-guide\.info/\b +\bseguente\.com\b +\bbursahalter\.com\b +\bprovenmodels\.com\b +\bvizads\.com\b +\bamorrow.wikidot\.com\b +\bkizilsungurdefender\.jimdo\.com\b +\bsuedtirol-tirol\.com\b +\bfree-proxy\.org\.ua\b +\bmeloteca\.com\b +\bjosefov\.com\b +\bpevnostjosefov\.wz\.cz\b +\bmyclassifiedads\.net\b +\blogosphera\.com\b +upload\.wikimedia\.org/.*XRumer.screenshot\.gif +\btremulous\.net\.ru\b +\bcroatia-map\.net\b +\balfpoker\.com\b +\bayvalikda\.com\b +\bbikerosario\.com\.ar\b +\bcundadan\.com\b +\bimg352\.imageshack\.us\b +\bkarvinsko\.eu\b +\bsarimsaklida\.com\b +\bvidiac\.com\b +\bworldmapfinder\.com\b +\byarak(?:web\.com|\.co\.uk)\b +\bjava-certification-tutorial\.com\b +\bplsql-tutorial\.com\b +\bs9\.bitefight\.ru\b +\babdul(?:matic|paula)\.com\b +\bpaula(?:abdul\.tk|-abdul\.eu)\b +\brandyjackson\.de\b +\bpaulapaula\.com\b +\bthecosplayworld\.com\b +\bfrancenepal\.info\b +\bfine-art-images\.net\b +\breggae-auction\.com\b +\bkomendant\.cal\.pl\b +\bsexidate\.com\b +\bvision\.chobirich\.com\b +\bpuroibiza\.com\b +\bhuntforantiques\.com\b +\bmother-surrogate\.(com|net)\b +\bsurrogate-mother(?:-cost\.com|(?:hood|s)\.net)\b +\bsquidoo\.com\b +\bboardthesun\.com\b +\bpolskiswiat\.com\b +\bworldmartialartsfederation\.org\b +\bconflictologist\.narod\.ru\b +\btipsity\.com\b +\bthenokian96\.com\b +\bvoipguides\.blogspot\.com\b +\bdishwashersreview\.com\b +\bair-conditioner-review\.com\b +\bmodelsobserver\.com\b +\bdetector\.org\.ua\b +\botopsi\.gen\.tr\b +\bdarkjuva\.com\b +\bplcteknoloji\.com\b +\bwinxoyun\.net\b +\balemi\.biz\b +\bminikperi\.biz\b +\bfulldizi\.net\b +\bzirvesi\.net\b +\bdiziniz\.net\b +\bhitkazan\.info\b +\bmovie-net\.org\b +\bprovacylonline\.com\b +\bfdapharmacy\.org\b +\bacneshoponline\.com\b +\bpharmacyrx\.org\b +\biasa\.ir\b +\baluminiumleader\.com\b +\bmiysvit\.info\b +\bmetallian\.com\b +\bhotel-5\.net\b +\binca-cola\.com\b +\bhotelclick\.org\b +\bhurtigruten\.tk\b +\bemedialive\.com\b +\bsantabot\.com\b +\bisraelinphotos\.com\b +\belvisromania\.ro\b +\bturismo-prerromanico\.es\b +\blabel\.fr\b +\bgastreferenten\.de\b +\bradiopapesse\.org\b +\bit-servizi\.it\b +\bdvdfilmler\.net\b +\biltuobenessere\.com\b +\bmircmerkez\.net\b +\bpolonia\.asia\b +\bcachacastore\.com\b +\bcutehoneys\.com\b +\bweb-bearn\.fr\b +\blucadea\.com\b +\bpresstv\.asia\b +\bovablastic\.blogspot\.com\b +\bsunfrance\.com\b +\bnews\.nikito\.su\b +\bpamparam\.md\b +\bradiotecktonik\.ro\b +\bpetrsoukal\.profitux\.cz\b +\bjaponsko\.profitux\.cz\b +\bpetrsoukal\.php5\.cz\b +\bbjornborgfanforever2\.free\.fr\b +\bdavidbisbalbrowser\.com\b +\bmembers\.lycos\.co\.uk/davidbisbal/ +\bmaluw\.flyfolder\.ru\b +\bpeons4hire-4mmo\.com\b +\bbrogame\.com\b +\bitemrate\.com\b +\bwowgold1078\.com\b +\bshshenyang\.com\b +\bminghsing\.com\b +\bmj-net\.jp\b +\bsenior-work\.jp\b +\bcaxa\.com\b +\bmarucollet\.jp\b +\bdocs\.weblog\.ro\b +\bblog\.goo\.ne\.jp/umineko300\b +\bborderterriers\.xooit\.fr\b +\bsolobale\.com\b +\brakastar\.com\b +\bmarylinmonroe\.it\b +\blogos\.com\b +\bpasiontango\.net\b +\bskyscrapervideos\.com\b +\bthomas(carlyle)?\.eu\b +\bfunkyukrainian\.com\b +\bjapan-architects\.com\b +\badslteknikservis\.com\b +\bhandresearch\.com\b +\babers-tourisme\.com\b +\bprison-break\.org\.ua\b +\bchatsohbetodasi\.net\b +\bnews\.architectures\.sk\b +\bmarshall\.charles\.googlepages\.com\b +\bpasiphae\.poems.googlepages\.com\b +\buntoldtales\.googlepages\.com\b +\bbibblish\.blogspot\.com\b +\bvzugadi\.googlepages\.com\b +\bdeluxecruises\.com\b +\bseabourn\.us\b +\bcroisieresdeluxe\.com\b +\bjustcrystalcruises\.com\b +\bsilversea\.info\b +\bluxury-cruises\.info\b +\bbantanges\.com\b +\bbourgogneimmo\.biz\b +\bcuisery\.com\b +\bporquerolles\.biz\b +\bregentcruises\.us\b +\briomavuba\.com\b +\bsilversea-luxury-cruises\.com\b + +\b3-immo\.com\b +\b7seas\.com\b +\ballsuitecruiseships\.us\b +\bchateauxdeluxe\.com\b +\bcroisiere(?:-de-luxe\.net|sdeluxe\.biz)\b +\bcrucero-de-lujo\.com\b +\bcruisebalconiesandsuites\.(com|us)\b +\bcruise(?:bids|saroundtheworld)\.com\b +\bcrystal-luxury-cruises\.com\b +\bcunard-(luxury-cruises|queen-mary-2us|queens-grillus)\.com\b +\bcunardqueenelizabeth(\.biz|(?:blog|home|online|site)\.com|\.info|\.net|\.org|\.us)\b +\bcunardqueenvictoria\.(biz|com|info|net|org)\b +\bdeluxe(?:-cruises\.(info|net)|cruises\.(biz|info))\b +\bdemeuresdeluxe\.com\b +\beurope-annonce\.com\b +\bjust(?:cunard|radisson)cruises\.com\b +\bjustsilversea(cruises)?\.com\b +\bluxury(-castles|-cruises-single|-world-cruises|cruisesforless)\.com\b +\bmiami-beach-condos\.org\b +\bmichelinechaneac\.com\b +\bnewcunardqueenelizabeth\.com\b +\bofficialcunardqueenelizabeth\.com\b +\bprestiges-?autos\.com\b +\bqvcruises\.com\b +\bradisson-luxury-cruises\.com\b +\brestaurant(-le-|le)tilleul\.com\b +\bseabourn-luxury-cruises\.com\b +\bthecunardqueenelizabeth\.com\b +\bvoituresdeluxe\.(info|net|us)\b +\bzmaxtravel\.com\b +\bbydinka\.ucoz\.ru\b +\bpersonalstructures\.org\b +\bmyresistor\.com\b +\bmeikk\.com\b +\btcfaces\.com\b +\bmusique\.arabe\.over-blog\.com\b +\belusiva\.com\b +\binformacitta\.vi\.it\b +\bbonjovideos\.com\b +\bic1\.it\b +\binformagiovani\.vi\.it\b +\bbreton\.brezhoneg\.free\.fr\b +\bfr\.youtube\.com/(profile\?user=|user/)Languages1001\b +\blang\.(?:arabe|deutsch|esperanto|farsi|gaeilge|hebraic|italiano|neerlandais|neerlandais|occitan|polski|russe|shqip|svenska|swahili|turk|yiddish)\.free\.fr\b +\bmacedonian\.free\.fr\b +\bpince31\.free\.fr\b +\bportuguesa\.lingua\.free\.fr\b +\bcertlobby\.com\b +\bhot-air-ballooning\.org\b +\bimaseo\.com\b +\binesystems\.com\b +\bsemguru\.wordpress\.com\b +\bsohachawla\.blogspot\.com\b +\bwhizlabs\.com\b +\bziceholidays\.com\b +\bdaldorfer\.info\b +\bmusicvmix\.com\b +\bnew-beat\.musicblog\.be\b +\bantalya-web(cam)?\.com\b +\bfotobox24\.com\b +\bprisonbreak\.org\.ua\b +\bhotelsworld\.pl\b + +#E-library +\be-library\.(net|us)\b +# drini: croswiki spam seo +\bhzgames\.com\b +\btopowerleveling\.com\b +\bgowowpowerleveling\.com\b +\bhigh-replica\.com\b +\bgame-win\.com\b +\byszdh\.com\b +#end drini +\bprefabrike\.net\b +\bartiajans\.net\b +\bprefabrik(?:\.tv|yapi\.com)\b +\bartiajans\.info\b +\bhekim(?:holding|madencilik|sirketlergrubu|boya|plastik|sut|yapi)\.com\b +\bozgeyapi\.com\b +\bheboyapi\.com\b +\bilportaleditrieste\.(com|it)\b +\bnakedafrica\.net\b +\bnahaafrika\.cz\b +\bfotoplantas\.110mb\.com\b +\babkhazia\.nu\b +\byouporn\.com\b +\binternet-srs\.biz\b +\burlgen\.com\b +\bsmalur\.com\b +\bindirdur\.blogcu\.com\b +\bsitetiny\.com\b +\bbloomsdaynyc\.com\b +\bkosovo-law\.org\b +\bnavarra\.net\b +\bpamplona\.com\b +\bsex(?:doctor4|info4wo)men\.blogspot\.com\b +\bpeniss-size\.blogspot\.com\b +\bwomen-menses\.blogspot\.com\b +\bbreast-info12\.blogspot\.com\b +\bdating-tips08\.blogspot\.com\b +\bmoney-making12\.blogspot\.com\b +#url shorteners +\bshorl\.com\b +\bshort(er)?links?\.co\.uk\b +\b6url\.com\b +\bflingk\.com\b +\bmetamark\.net\b +\bpaulding\.net\b +\bsmcurl\.com\b +\btighturl\.com\b +\byatuc\.com\b +\byep\.it\b +#end of url shorteners +\binnojairja\.blogspot\.com\b +\btiibet\.org\b +\bmsapubli\.com\b +\ballaahuakbar\.net\b +\btroid\.org\b +\bmuslims\.ws\b +\basipak\.com\b +\bclaasfamily\.org\b +\bcocktailteam\.net\b +\bindicatoreamaranto\.it\b +\bthatsqingdao\.com\b +\bqingdao(?:china|official)guide\.com\b +\bmyred(guide|sail|star)\.com\b +\bportale(?:pienza|valdorcia)\.it\b +\bfototoscana\.it\b +\bwebamiata\.it\b +\bimmaginasas\.it\b +\bilovekatsuni\.com\b +\bkatsunihardcore\.com\b +\bspirited-expeditions\.com\b +\bsearchx\.1gb\.in\b +\bkelis-pics\.com\b +\baliciakeys-pics\.com\b +\bshakira-pictures\.net\b +\bseomarket\.info\b +\bonherown\.net\b +\belephant-batyr\.livejournal\.com\b +\bingush-studio\.com\b +\blafee\.net\.ru\b +\bwienbilder\.at\b +\bucadhadi\.fr\.gd\b +# CTKohl section +\bchristianthomaskohl\.(?:wordpress|googlepages)\.com\b +\bctkohl\.googlepages\.com\b +\blankalibrary\.com/phpBB/viewtopic\.php\?t=3618\b +\bboloji\.com/buddhism/00119\.htm\b +nagarjuna.*?\.goo?glepages\.com\b +\bnagarjunafreiburg\.wordpress\.com\b +\bbuddhismandquantumphysics\.blogspot\.com\b +\brationalvedanta\.net/node/137\b +\bscribd\.com/doc/3245023/Buddhism-and-Quantum-Physics\b +\bblog\.civilisations-matter\.org/(2008/01/15/east-meets-west|category/blog-von-christian-thomas-kohl)\b +\bcm-germany\.org/wordpress/2008/02/09/east-meets-west/\b +\bnewdualism\.org/papers/C\.Kohl/Buddhism-QP-Parallel\.htm\b +\bkohl12345\.googlepages\.com\b +\borient\.ruf\.uni-freiburg\.de\/dotpub\/kohl\.pdf\b +\bchina-observer\.de\/druckansicht\/entry081022-130003\.htm\b +\bconceptsofphysics\.net\/V_3/517\.pdf\b +\blarousse\.fr\/ref\/contrib\/Bouddhisme-et-Physique-quantique_11003609\.htm\b +\bcientificosconscientes\.com\/cc\/articulos\/budismo_fisica\.html\b +\blacoctelera.com\/kohl\/post\/2008\/06\/05\/budismo-y-fisica-cuantica +\bbuddhachannel\.tv\/portail\/spip\.php\?article907\b +# End CTKohl section +\bcristinascabbia\.jino-net\.ru\b +\bgaliza\.indymedia\.org\b +\boffisteria\.com\b +\bradiovazogasy\.com\b +\bthemza\.com\b +\bdesigneeroaarnio\.com\b +\bhedge(lender|loan)(\.wordpress)?\.(com|net|org)\b +\bstock-load\.org\b +\bsecuritiesfinance\.com\b +\bpipe-replacement\.com\b +\bloan-stock\.org\b +\bbidmonfa\.com\b +\bis\.gd\b +\bkamasyworkamanda\.info\b +\bpoker(loco|tars)\.com\b +\beverestpoker\.com\b +\bultimatepoker\.com\b +\bcarmasutra\.fr\.gd\b +\bmysticquestontheweb\.free\.fr\b +\bnatsume-hyuga\.net\b +\bdrugslink\.info\b +\bgiannanannini\.fan-club\.it\b +\bspanish\.online-spanisch\.com\b +\bnoticiasmusicais\.com\b +\beclipse-china\.cn\b +\bcardcounting\.com\.br\b +\bstorz-bickel\.com\b +\bflash-ascript\.blogspot\.com\b +\beberhard-dilba\.homepage\.t-online\.de\b +\bdiplomaticsociety\.org\b +\bcomicradioshow\.com\b +\bkurz\.es\b +\bderindusunce\.org\b +\bcasadoxadrez\.com\.br\b +\bffxii\.us\b +\bgeorge-michael\.nl\b +\bspeereo\.com\b +\bdraftydraft\.com\b +\bletzlearn\.org\b +\baberystwyth-online\.co\.uk\b +\bhomonym(e\.eu|es\.fr|-list\.com)\b +\bedom\.co\.uk\b +\bcopenhagencity\.org\b +\bjamsankoski\.com\b +\bbucegi\.info\b +\bmyrtle-beach-guide\.org\b +\bdiscoverlausanne\.com\b +\babout(porto|lausanne|sheffield|liverpool)\.com\b +\bnurnberg\.biz\b +\bbigorchestra\.com\b +\bmandelbrot\.ovh\.org\b +\bsms\.ie\.ma\b +\bphony\.ie\.ma\b +\busd4ever\.com\b +\bhotusd\.com\b +\bhkc22\.com\b +\bhow-to-make-money-easily\.com\b +\blinkedin\.com/in/nguyenta\b +\bthemilli\.com/ta\b +\bsiciliasud\.it\b +\bviticciodeironchi\.it\b +\bporno-izlee\.com\b +\bcontroversi\.org\b +\bstadtfuehrung-magdeburg\.de\b +\bmyoyvey\.com\b +\bbasketter1991\.wsnw\.net\b +\bcgi\.sfu\.ca/~gpeters\b +\babsolutregis\.com\b +\bdebruk\.pl\b +\bqpc\.ro\b +\bburcuyum\.com\b +\bmodeltravestiler\.com\b +\brenkarenk\.net\b +\btravesti(?:\.(?:bz|mn)|(?:cik|evi|sohbet)\.net|(?:evi|i|nilsu|esmerayasil|mujde)\.com|yim\.(?:org|com))\b +\bclupforsbar\.com\b +\bcindydila\.net\b +\brekli\.com\b +\bmedyumhabermerkezi\.com\b +\brenkarenk\.com\b +\bserapserap\.com\b +\binterkariyer\.com\b +\btrv(canan|seren|hazal|sabrina|helinay|kardelen)\.com\b +\btrvjanset\.net\b +\bsmartlinktrade\.com\b +\bankara(?:travestileri\.net|newsworld\.com)\b +\btoplis\.in\b +\biyi-dershane\.info\b +\bmerveiletisim\.com\b +\bdeniztube\.com\b +\byoutube(?:53\.com|city\.net)\b +\bkokoliko\.com\b +\bgribanov\.ru\b +\bexpekt\.com\b +\btradedoubler\.com\b +\bsbaffiliates\.com\b +\bnhatrang\.hotels\.officelive\.com\b +\bactive-domain\.com\b +\bautofinance-ez\.com\b +\bgimnazjum2\.tomaszow-maz\.pl\b +\baviaworld\.com\b +\bsexyunderwear-weddingdresses\.com\b +\bhealthcarebeauty\.org\b +\bzangao518\.com\b +\bgayfriend\.free-datings\.com\b +\bfree-jsf-components\.net\b +\bhip-hop\.net/member/Luna%20Musik\b +\bguzmanconstruction\.webs\.com\b +\blunamusik\.webs\.com\b +\bezber\.org\b +\bkenehastaligi\.com\b +\bolgu\.org\b +\bvideocix\.com\b +\bkikindai\.hu\b +\bdiegovelazquez\.(110mb\.com|webcindario\.com|about\.vg)\b +\bnachobenjumea\.atspace\.org\b +\bcosmoetica\.com\b +\bswinoujscie\.travel\.pl\b +\bceyiz\.com\b +\b51icjm\.com\b +\bcascadafan\.de\b +\bexhauss-ibnkhaldoun\.com\.tn\b +\bstencils\.ch\b +\bcasesdecastalla(\.blogspot)?\.com\b +\bgazipasam\.com\b +\badriatic\.wikidot\.com\b +\bandroid-phone\.org\b +\biaindustrie\.fr\.nf\b +\bwohnprojekte-berlin\.info\b +\bkoningin-wilhelmina\.hyves\.nl\b +\bgarbagefan\.8k\.com\b +\boutofthedark\.net\.ms\b +\brociomarquez\.com\b +\bbrazilthinks\.blogspot\.com\b +\bdelta-cimic\.com\b +\bverder\.cn\b +\bhumanity\.sh\.cn\b +\bsourmath\.com\b +\bcupvid\.com\b +\bbouncecup\.com\b +\bp-navigator\.com\b +\baudi-a1\.(org|com)\b +\bbulgarien\.(se|nu)\b +\b(redarmy|heavymetal|grandonline|(black|white|blue|red)devils|cska|bollywood|redarmy|holland|montecarlo|greekcasino|india|ganges|gibraltar|bangalore|greatwall|flamingo|goldenpalace|bellavista|germany|hongkong)(casino|poker(club)?)\.(com|biz|org|net|info)\b +\bsevenluckystars\.info\b +\b24karatgold\.org\b +\bpanama-pictures\.com\b +\boxidativstress\.se\b +\bcasino4e\.com\b +\bopus-info\.org\b +\bturkiyemirc\.org\b +\bircsohbet\.com\b +\bfotosalhambra\.es\b +\bchanneldb2\.com\b +\bplanetdb2\.com\b +\bmknk\.net\b +\bvivien-leigh\.info\b +\blepabrena\.biz\b +\bkuniyoshi\.fastmail\.fm\b +\bsearchoptima\.com\b +\btheclickinfo\.com\b +\binfoom\.se\b +\bclumber-spaniel\.(eu|nl)\b +\btourmycountry\.com\b +\bmonetpainting\.net\b +\bzeta\.torrent\.googlepages\.com\b +\bpitbuehler\.ch\b +\blamazmorraabandon\.com\b +\buaeuro2012\.com\b +\btoledo-travelguide\.com\b +\bjudetulgorj\.info\b +\bshakira\.in\.rs\b +\baccounts-rs2\.net\b +\b(hero|star)questgame\.com\b +\bcheryclub\.com\b +\bshibuimarkets\.com\b +\bveryglamour\.com\b +\btwisturl\.com\b +\bwikijava\.org\b +\bayfer\.org\b +\bayakizi\.com\.tr\b +\bplay-win-rummy\.com\b +\brummyportal\.com\b +\broomsinscotland\.com\b +\bwhitexx\.ru\b +\bbluecruisesturkey\.com\b +\bbayrams\.com\b +\banzacgallipolitour\.com\b +\bhotairballooncappadocia\.com\b +\bolympostreehouse\.com\b +\bzesttravel\.com\b +\bolymposturkey\.com\b +\bv-go(hotel)?\.(com|co\.uk)\b +\bboatcruiseturkey\.com\b +\banzacdaytoursturkey\.co\.(uk|nz)\b +\bmarmaris\.kalemguzeli\.net\b +\bdtools\.net\b +\bsuvn\.net\b +\blabeouf\.ru\b +\btanolis\.onesite\.com\b +\bmilitarygnome\.com\b +\brajasthantourism-india\.com\b +\blogialafayette\.blogspot\.com\b +\bmelandroweb\.it\b +\bmakulit\.info\b +\b2d-code\.co\.uk\b +\blasvegas-nevada\.com\.ar\b +\bmagnitiendum\.com\.mx\b +\btrademark-1\.com\b +\bmegarotic\.com\b +\brankingoogle\.com\b +\bwebseos\.5gigs\.com\b +\bgeocities\.com/search_engine_ranker\b +\bwebseos\.com\b +\bnew-york-divorce-attorney\.com\b +\bpharmacareerguide\.com\b +\btheactivechild\.com\b +\badriaticglobal\.net\b +\berosramazzotti\.biz\b +\burbanlive\.org\b +\balcoholaddiction\.org\b +\bvipflux\.com\b +\bjourneyetc\.com\b +\bluv-emo\.com\b +\bmusicflux\.net\b +\bbacalaureat2008\.net\b +\bsoccerbro\.com\b +\bmp3pls\.com\b +\bmyimg\.org\b +\baudado\.com\b +\bvector\.com\.pl\b +\bweb-app\.net\b +\becommerce[a-z]\.blogspot\.com\b +\bcommerceusa\.blogspot\.com\b +\biran(home|learn)\d?\.(blogfa|blogspot|blogtak)?\.(com|ir|net)\b +\bbuyuyenicerik\.com\b +\bweb-app\.us\b +\bmlapp\.org\b +\bwdalaw\.com\b +\banti-jw\.chat\.ru\b +\bnatureperu\.com\b +\bciovo\.eu\b +\bamanda-bynes\.tv\b +\bvanessa-hudgens\.tv\b +\brwitherspoon\.net\b +\bashley-tisdale\.tv\b +\bjennifer-pics\.com\b +\bsharapova-pics\.com\b +\baniston-pics\.com\b +\bgeocities\.com/(satanismresource|spiritualsatanist)\b +\bimmovableproperty\.com\b +\bbanknotes\.com\b +\bequay\.com\b +\bfloridah\.com\b +\bnortherncarolina\.com\b +\breserve-bank\.com\b +\bsingle2\.com\b +\buinternet\.com\b +\bbanknote\.biz\b +\bworldcurrency\.biz\b +\badrian-valles\.com\b +\bantalyahomes\.com\b +\bgroups\.yahoo\.com/group/satanismresource\b +\bCelebPoker\.com\b +\bimaginationtakeover\.blogspot\.com\b +\bmultiquiz\.net\b +\berosramazzottiweb\.com\b +\bwikifipau\.org\b +\bnukinavi-212\.com\b +\bdeli-spot\.net\b +\bza-hitonotsuma.co\b +\bnightlifepartner\.com\b +\boka-3\.com\b +\bfuzokudx\.com\b +\bpropaganda-web\.com\b +\bfolkmusicindia\.com\b +\bgiacomo\.lorenzoni\.name\b +\bviartis\.net\b +\bthingyurl\.com\b +\bcocateaperu\.com\b +\bincaperu\.org\b +\bminibooksworld\.com\b +\bsatanismresource\.fortunecity\.com\b +\bapartmani\.soko-banja\.org\b +\bgeocities\.com/Peces20 +\bzhengyexing\.com\b +\b1kez\.com\b +\badslkurulum\.com\b +\bcityairportrain\.com\b +\bkiralik-oto-ankara\.com\b +\bmuzikfakultesi\.com\b +\bpechakucha\.org\b +\bseoogle\.(com\.tr|net)\b +\bsomethingunpredictable\.com\b +\bvoxml\.org\b +\bcasino(?:gun|mundi)\.com\b +\bgallo(?:(?:eros|geo|sexy|shop|vip)\.com|mania\.it|media\.net)\b +\bpokerinweb\.com\b +\bsmsfusion\.com\b +\btreatmentcenters\.org\b +\bdrugrehabcenter\.com\b +\bcccb\.org\b +\bmaskmelin\.livejournal\.com\b +\bstadiumzone\.net\b +\bpedagogy\.ir\b +\bronaldoweb\.com\b +\balizee-latino\.com\b +\bossolaland\.com\b +\bm-monroe\.org\b +\bw3\.coh\.arizona\.edu/french/accueil\b +\bqaraim\.eu\.googlepages\.com\b +\bvideo-globe\.com\b +\bjehovah-shamah\.wikidot\.com\b +\banimal-sex\.com\.ua\b +\bvilnius1\.com\b +\badmiroutes\.asso\.fr/larevue/2007/83/kohl\.htm +\bla-palma\.de\b +\bblack-imari\.com\b +\bnil\.su\b +\baccessoarerdesign\.se\b +\btownbridgecom\.com\b +\bmuzioclementi\.org\b +\banadubawi\.com\b +\bphotomaxi\.com\b +#temporary to stop ongoing cross-wiki spam +\bbudterence\.it\b +\bitem4u\.com\b +\biphone\.click2creation\.com\b +\bachterhoek-promotie\.nl\b +\bpatagoniaschool\.com\b +\ball-pokersites\.com\b +\bautomovil\.cc\b +\bpowerplaymanager\.com\b +\bone2many\.eu\b +\bmonkeysee\.com\b +\bstavanger-guide\.no\b +\bsandnes-guide\.(com|no)\b +\bundeadcf\.info\b +\bkaralahana\.net\b +\bbaccara2007\.moonfruit\.com\b +\bbaccara-web\.de\b +\bboards\.melodysoft\.com/baccara2000\b +\bczejarek\.pl/baccara\b +\bmayte-mateos\.cabanova\.de\b +\bmondakalendaro\.org\b +\bklaku\.net\b +\bjameslastfan\.de\b +\beturbo\.net\b +\bdieselevante\.com\b +\brastaforum\.org\b +\bforexinvestor\.(se|de|nl|us|es)\b +\bseo-info\.nl\b +\bkavlak\.net\b +\badoraphoto\.com\b +\bmhbox\.cn\b +\bfm9001\.com\b +\bbjjnmc\.com\b +\bdaliprinting\.com\b +\bzstrans\.com\b +\b198m\.com\b +\bbendery-600\.ru\b +\bsheetmusicarchive\.net\b +\bmusicdumper\.com\b +\boil-community\.blogspot\.com\b +\bdesigparis\.com\b +\brapmatix\.com/musics/music527\.mp3\b +\breadysteadygirls\.eu\b +\bvipaocgold\.com\b +\baocsale\.com\b +\bbuyfastgold\.com\b +\baocgold10\.com\b +\bhellgate-pd\.com\b +\brgtrcredit\.com\b +\bbuy-cheap-aoc-gold\.com\b +\bgold4power\.com\b +\bgame4power\.com\b +\bmmop\.com\b +\bitemchannel\.com\b +\bgo4guide\.com\b +\bitemstores\.com\b +\bmmocdk\.com\b +\bbuyaccounts\.net\b +\bcheapsneakersb2b\.com\b +\bminu\.ws\b +\bwallpaper(-3d\.tripod|-new\.0catch|-new\.100freemb|\.totalh|\.66ghz)\.com\b +\bwallpaper\.0fees\.net\b +\btopsearch\.ws\b +\bpicturesofaruba\.com\b +\budinesechannel\.it\b +\btravel2macedonia\.com\.mk\b +\bmorrodesaopaulo(brasil)?\.com\.br\b +\bpousadamarraro\.com\.br\b +\b1host\.in\b +\bventimiglia\.biz\b +\byoutube\.com/watch\?v=tqedszqxxzs\b +\bolympiakosnicosia\.tk\b +\barcocarib\.com\b +\ball-tourism\.com\b +\bcheapestwowgold\.org\b +\bpharma(?:shell\.com|zon\.gr)\b +\bpha24\.com\b +\bfx-daytrader\.blogspot\.com +\bvuoialonsoinmclaren\.sitonline\.it\b +\baustrians\.at\b +\brosari\.eu\b +\bplantaospicegirls\.com\b +\bparroquiadepalafrugell\.com\b +\bhomonym\.fr\b +\bstreamingtheolympics\.com\b +\blluisllach\.pl\b +\bonline-roulette-gambling\.com\b +\bhuguesdepayns\.fr\b +\bfree-training-tutorial\.com\b +\bnijmegennieuws\.nl\b +\bdoetinchemnieuws\.nl\b +\beasypostjob4u\.com\b +\bfabianswebworld\.fa\.funpic\.de\b +\btheamazingsysrem\.ws\b +\bezy-money\.ws\b +# \binternationalbadminton\.org\b +\btarkanfunclub\.com\b +\bmeatsalad\.ru +\bphoneall\.ru +\breceptsous\.ru +\bsalad(?:meat|veg)\.ru +\bsiteons\.ru +\bsousrecept\.ru +\bvegsalad\.ru +\bweb-(?:hostings|siteon)\.ru + +##Highhi spam - See every contrib @ http://toolserver.org/~vvv/sulutil.php?user=Highhi +##Kylu 8/12/08 +\bhkcbn\.org\b +\bnavmc\.com\b +\b16885\.com\b +\bchaosantiques\.com\b +\btravelchinaplanner\.com\b +\bbellisimasexshop\.com\b +\bcinselticaret\.com\b +\bgulyeri\.com\b +\bhikayelersex\.com\b +\bkaliterehberi.com\.tr\b +\brealist(?:ikbebek|shop)\.com\b +\bsibersonic\.com\b +\bencostablanca\.com\b +\bgrupoesmeralda\.com\b +\bunitursa\.com\b +\bgal(?:axtur|etamar)\.com\b +\brocaesmeralda\.com\b +\bimperialpark\.org\b +\bdiamantebeach\.com\b +\bfirme\.rs\b +\bdtpwiz\.com\b +\bfirme.co\.yu\b +\bonlineseo\.info\b +\bfihaa\.com\b +\bcgarab\.com\b +\bmysmp\.com\b +\brich-media-project\.com\b +\bweb-anatomy\.com\b +\bmagicurl\.net\b +\bpaul-gauguin\.net\b +\bedgar-degas\.org\b +\bkatsushikahokusai\.org\b +\bgabrielmetsu\.org\b +\banderszorn\.org\b +\bvincent-van-gogh-gallery\.org\b +\brembrandtonline\.org\b +\beugenedelacroix\.org\b +\bwilliam-turner\.org\b +\bpierre-auguste-renoir\.org\b +\bgiottodibondone\.org\b +\bclaudemonetgallery\.org\b +\bcreepsmash\.de\b +\bur1\.ca\b +\b8xhost\.com/automativerepair\b +\bautoguide\.gigacities\.net\b +\bautomotiverepair\.co\.nr\b +\bautorepair\.netfast\.org\b +\bcureacne\.koolhost\.com\b +\bdedicatedhosting\.com\b +\be-tutes\.com\b +\bfastservers\.net\b +\bfreetutes\.com\b +\bfriendfinder\.com/go\b +\bgeocities\.com/cooltutorials\b +\bkqzyfj\.com\b +\bmaligant-mesothelioma\.co\.nr\b +\boxado\.com\b +\bprogrammersheaven\.com\b +\brealdownload\.webng\.com\b +\bresellerspanel\.com\b +\brhapsodydownload\.webng\.com\b +\bsystemanalysis\.(co\.nr|freehostpro\.com)\b +\btutes\.webng\.com\b +\btutorial(-index|ized)\.com\b +\bvbplanet\.gigacities\.net\b +\bwebng\.com/(pcnow|tutes)\b +\btnij\.org\b +\blegalmenu\.com\b +\bcalculate-linux\.org\b +\bbfcoffgeorgebush-yu\.blogspot\.com\b +\boinakarin\.com\b +\bitour(?:schina|beijing|stibet)\.com\b +\btripbus\.com\b +\btraveltibettours\.com\b +\bchinayak\.com\b +\btibetinchina\.com\b +\bpanda-tour\.net\b +\byangtzeriver-cruise\.net\b +\bseoloji\.org\b +\bguzelcekoyu\.org\b +\bvidovix\.com\b +\btarzoyun\.com\b +\bkurbaga\.net\b +\bsinematik\.org\b +\brehberblog\.com\b +\bibrahimari\.net\b +\bsuperoyunx\.com\b +\bibrahimerdogan\.com\b +\bkemalist-iz\.com\b +\bara-bux\.com\b +\bcaracal-pistol\.info\b +\bhost\.co\.in\b +\bfrancizor\.ro\b +\bchannelf\.ro\b +\bexploremychina\.com\b +\bhuntforjustice\.com\b +\benergie\.numeriblog\.fr\b +\bstaderennais1901\.com\b +\bnig\.gr\b +\bnike(?:888|888\.en\.ec21|xyz|-jordan-shoes)\.com\b +\bshoesprovision\.com\b +\bglobaltrademarket\.org\b +\bwmsg-draughts\.org\b +\bwikio\.com\b +\bfootball(?:-talents\.(org|fr|co\.uk)|-?talent\.net)\b +\bfutbal-talentos\.es\b +\bfussball-talente\.com\b +\bvoetbal-talenten\.nl\b +\bvissen-barramundi\.nl\b +\buseurl\.us\b +\bmemurl\.com\b +\bix\.lt\b +\bturo\.us\b +\bfreeitsolutions\.com\b +\bnederlandnieuws\.nl\b +\bforeignelegion\.blogspot\.com\b +\bbariloche(argentina\.blogspot\.com|\.esp\.br)\b +\bbombinhas\.org\b +\bhomero-simpson\.com\b +\bkillersites(design\.com|\.com\.ar)\b +\bonline(?:-hoteles\.com\.ar|hoteles\.com)\b +\bsimpsonstrivia\.com\.ar\b +\bvillalaangostura\.com\.br\b +\bonlinehoteles\.com\.ar\b +\bshop\.ebay\.com\b +\bbuk\.me\b +\bfuseurl\.com\b +\bgofrom\.us\b +\bprevurl\.com\b +\bshrink2one\.com\b +\btinycurl\.com\b +\bu95\.ru\b +\bxedurl\.com\b +\bquickfilepost\.com\b +\bjacksonstreet\.nl\b +\bfirenzebb\.net\b +\bisoladiburano\.it\b +\bmembers\.home\.nl/robtenberge\b +\brobtenberge\.nl\b +\byoutube.com\/watch\?v=XePjp-H3TBI\b +\bartstamps\.dk\b +\bflickr\.com/(79/250582482_305b4c1817_b|88/243534260_bf5d79f1f7_o|120/250582489_502d133364_o|1282/1344096823_c25a593078_b|1315/1332889069_b98e8bffea_o)\.jpg\b +\bvallenajerilla\.com\b +\bpowerleveling2000\.com\b +\bwhy(?:peoplesnore|getlasik)\.com\b +\bizits\.com\b +\bburiguri\.com\b +\bdailydiablo\.com\b +\bvqte\.com\b +\bxporntubex\.com\b +\bexetuning\.com\b +\btuttofassa\.stepdev\.org\b +\bconsultant-legros\.fr\b +\bsantapost\.fi\b +\bakenna\.net\b +\bcuri222\.blogspot\.com\b +\btrainpetdog\.com\b +\bdogpottytrain\.com\b +\bparrotsecrets\.com\b +\b(dogtraining|pug|akita|corgi|poodle|shihtzu|papillon|chihuahua|bordercollie|pomeranian|siberianhuskey|goldenretriever|germanshepard)institute\.(com|org)\b +\b0rg\.fr\b +\bpodhuri-sumavy\.cz\b +\balojamientosrurales(decantabria)?\.(com|net)\b +\bcuevamuseoaltamira\.com\b +\bsantillana-del-mar\.(com|es)\b +\bhellwars\.com\b +\bceo-europe\.com\b +\bmykonostour\.com\b +\bavsasitesi\.com\b +\bayurvedasite\.it\b +\bberlin-stadtfuehrung\.de\b +\bstallone-the-best\.piczo\.com\b +\bhardmob\.com\.br\b +\b(fotos|mapa)cantabria\.es\b +\bturismocantabria\.net\b +\bayonix\.com\b +\bclickmenorca\.com\b +\bbarradatijuca\.com\.br\b +\bdisfrutamallorca\.es\b +\bevarkadasi\.org\b +\bevertonfc\.ru\b +\bfurifuri\.org\b +\bfuroshiki\.com\b +\bgermany\.mygreatworld\.com\b +\bgoisproperty\.co\.uk\b +\balestevinos\.com\b +\bianchel\.nhveldh\.org\b +\bthe-mafia\.de\b +\bgreenshop\.hu\b +\bhackersunisel\.blogspot\.com\b +\bpokemonyaoi\.net\b +\btoolquarter\.com\b +\bstudiodiruggiero\.it\b +\bibneyiz\.biz\b +\bst-pauli-hamburg\.de\b +\bprincevaliant\.net\b +\b1(3485|4000|6949)store\.com\b +\b22000-(blog|tools)\.com\b +\b9001(-info|-training|resource)\.com\b +\bas9100(resource|store)\.com\b +\biso(?:-9000-2000|9000store)\.com\b +\bknol\.google\.com\/k\/cynthia-weber\b +\bnormas9000\.com\b +\bthe9000store\.com\b +\bts16949resource\.com\b +\bproduccionsblau\.com\b +\bsandhaan\.com\b +\bsilivriliyiz\.com\b +\bsodaquick\.com\b +\bplwha\.com\b +\bwebshabab\.com\b +\brapedaily\.com\b +\bhotmale\.com\b +\bkawase-market\.com\b +\b(baldwinchuck|bidenobama|clintonhillary|heres-your-chance-to-apologize|jewjewsjewish|jewsforjoseph|nationalmessenger|philadelphiachurchgod|plaintruthmagazine|sorry-iam|thepeoplewe|worldwidechurchgod|wrightjeremiah)\.blogspot\.com\b +\bdavidbenariel\.(blogspot\.com|wordpress\.com|org)\b +\bbingifm\.com\b +\bhindimirchi\.com\b +\bideasnext\.com\b +\bloksangeet\.com\b +\bmarathi(fm|fun|spice|zone)\.com\b +\bmasalaads\.com\b +\bmazafm\.com\b +\bmeemarathi\.tv\b +\bteluguclick\.com\b +\bbstat\.(e[su]|fr|org)\b +\bcomiris(-international)?\.com\b +\bsportig(g\.com|g?\.fr|g\.net)\b +\bcavenaghi\.artelista\.com\b +\baerobaticteams\.net\b +\bharptabs\.com\b +\bseinfeldx\.net\b +\bonlinerummikub\.com\b +\brummy(royal|-500)\.com\b +\bwinner-horse\.com\b +\bremi\.co\.il\b +\bhindyugm\.com\b +\b(merekavimitra|niyamawamsharten|hindyugmparichay|niyamawamsharten|kaviparichay|baaludyan|kahanikalash)\.blogspot\.com\b +\bhindyugm\.mypodcast\.com\b +\bgoalmaniac\.com\b +\bapelosurgentes\.com\.br\b +\bipbdesign\.ru\b +\beurodance4ever\.blogspot\.com\b +\bwilliamlong\.info\b +\bmzlit\.cn\b +\bmovv\.com\b +\bbstat\.(it|co\.uk)\b +\b34rock\.com\b +\beasyreikilearning(\.homestead)?\.com\b +\bturksevdasi\.com\b +\b70b(bs|log)\.com\b +\bhouhai\.(com|net)\b +\bi70s\.com\b +\bi928\.net\b +\bfotoambar\.com\b +\brott(forum\.com|der\.org\.tr)\b +\bokeytek\.com\b +\bweblence\.com\b +\beziyetsiz\.com\b +\bromanticapart\.com\b +\brapclips\.net\b +\bokeycafe\.com\b +\bnetarac\.com\b +\baylak\.com\b +\bzoomcad\.com\b +\bbranddaze\.com\b +\b(cool|nike)jordanshoes(onsale)?\.com\b +\bcamp\.wcbo\.org\b +\bhotel-neue-post\.de\b +\bparkguell\.net84\.net\b +\bcyinterview\.com\b +\bthesportsinterview\.com\b +\bdiaday\.com\b +\bmarrakech\.net\b +\bteletextonline\.de\b +\bsoft82\.fu8\.com\b +\bjproshin\.info\b +\btube-dudes\.net\b +\bcheck-antivir-tool\.net\b +\bdavemckay\.co\.uk\b +\bekomobiili\.fi\b +\bflachlaender\.fl\.ohost\.de\b +\bpixeljoint\.com\b +\bwayofthepixel\.net\b +\bbubleland\.nl\b +\bfrance-voyage\.com\b +\bmentorelio\.com\b +\bicanhaz\.com\b +\bvivaxp\.com\b +\byoutube-?hostels\.com\b +\bfacebookster\.com\b +\blogobench\.com\b +\bsalactive\.com\b +\b123seotalk\.com\b +\bdigital-kaos\.co\.uk\b +\bplanetlotto\.co\.uk\b +\btalk-scotland\.com\b +\buknationallottery\.net\b +\bpiurl\.com\b +\bwikimatera\.it\b +\b101pills\.org\b +\b10rx\.net\b +\b168hours\.us\b +\b1997pharmacy\.com\b +\b24h-drugs\.com\b +\b24x7pharmacy-online\.com\b +\b7{1,3}pills\.(net|com)\b +\babsulutepills\.com\b +\ball(thedrugs|medshop|amateur)\.(net|org|info)\b +\bamerican-drug-shop\.com\b +\bbargainmedsplace\.com\b +\bbeeimmo\.com\b +\bbest(medsplace|drugdirect|cheapmedsworld|canadianmed|-us-drugs)\.com\b +\bbonpharm\.com\b +\bbrandpills4u\.com\b +\bbuy(valuemeds|pillsstore|pharmonline|med24|bestdrug)\.com\b +\bca-(pharma|pills)\.com\b +\bcad(pharmacy|meds|meds-support|med-support|med-support|med-support)\.(info|com|net)\b +\bcanada(m[ea]nhealth|cheapmed|-rxpharmacy|-online-pharmacy|-best-drugs)\.com\b +\bcanadian(pillshop|s-drugstore|s-health|s-medication|s-pharmacy|s-pills|s-support|pharma?(world)?|pharmacystore|pharmacy-ltd|choicemeds|-meds-shop|-med-shop|-drug-pharmacy|-drug-meds|-discount-med)\.(com|biz|net|info|org)\b +\bcertified-pharmacy\.com\b +\bcheapestpill\.net\b +\bcheapvaluemeds\.com\b +\bcheckeddrug\.com\b +\bcialischeap\.info\b +\bdiscountmedsplace\.com\b +\bdoctorkrez\.com\b +\bdontsupply\.info\b +\bdoroven\.(org|info)\b +\bdrug(zdirect|storeforall|shopforyou|s4love|l|inshop|-x|-shop-online)\.com\b +\be-med(ical)?support.com\b +\beagle-pharmacy\.com\b +\bed-(megamall|medstore|medshop|meds-store)\.com\b +\beurohealthshop\.com\b +\bevgenycherkasovstore\.com\b +\bexpress-health\.info\b +\beyzempills\.com\b +\bfastpharmacies\.com\b +\bfeelfreetocontact\.com\b +\bfindallhere\.info\b +\bfinestmedications\.com\b +\bgeneric(pharm|-or-brand)\.org\b +\bgoodvaluemeds\.com\b +\bhealthcare7x24\.com\b +\bhousepills\.com\b +\bi(am)?bestlover\.com\b +\biii(pharmacy|drugstore)\.com\b +\bimpotencekiller\.com\b +\bjnouri\.com\b +\bkillmydisease\.com\b +\blegris\.org\b +\bli[vn]e-pharm(acy)?\.com\b +\blovetabs\.org\b +\bm-pills\.com\b +\bmdcagencies\.com\b +\bmed(sup|sthrifty|sportal|spill|5top|s-store|pills|icinestorerx|icinemartworld|icationscompany|icaredrugmart|icalonline24)\.(biz|com|us)\b +\bmegapharm\.biz\b +\bmens-medication\.com\b +\bminepills\.com\b +\bmy(pillguide|internetmedications|erectionpills|drugtablets|-drugstoreonline)\.com\b +\bnationalwebmeds\.com\b +\bnicetoolforu\.info\b +\bofficial(viagra|pharmacy|meds(world)?|drugstore)\.(net|com|org)\b +\boksek\.info\b +\bolanc\.com\b +\bon1ysex\.com\b +\bonline-(?:pharm(-?rx|-store)\d{0,2}|drug-shop)\.com\b +\bonline(medstoday|medshop|medscentral)\.info\b +\bonlinepharmacyltd\.com\b +\bonlypharmacy\.net\b +\bontario-drugs\.(com|biz)\b +\bonxe\.net\b +\bpdrugstore\.com\b +\bpendoz\.com\b +\bph24\.com\b +\bpharm-commerce\d{0,2}\.com\b +\b(blqtoiocihyuivbjytkedpmc|zmdzubgoqyzwjjntmutrccscxgcw)\.blogspot\.com\b +\bxykribwams\.com\b +\bprofessionalmedicines\.com\b +\brelaxin(italy|spain)\.ru\b +\btravelto(france|prague)\.ru\b +\bruicona\.ru\b +\bnewbluepill\.com\b +\bphentrimine-shop\.com\b +\bus-ds\.com\b +\bdeepforestmusic\.com\b +\bcyndilauper\.com\.br\b +\bdeepforest\.gotdns\.com\b +\bbillevans\.nl\b +\boprah-fansite\.com\b +\bgraffiti\.cx\b +\bteknoloji\.tc\b +\balternativemedicineseminars\.com\b +\bdaciaclub\.eu\b +\bteatropovero\.it\b +\bislantillaplaya\.com\b +\beloquentbooks\.com\b +\bspacephoto\.org\b +\bpol-and\.eu\b +\blittlebritainfan\.com\b +\btwilightsaga\.altervista\.org\b +\bpirucha\.net\b +\bvoler\.com\.tr\b +\bdekortas\.com\.tr\b +\bplwha\.org\b +\bhandandaily\.com\b +\bkaixin110\.cnblogs\.com\b +\bbit\.ly\b +\byanjiecao\.com\b +\bterryananny\.com\b +\bd-addicts\.com\b +\bolshansky\.sitecity\.ru\b +\bamisdecolette\.fr\b +\baspergeritjns\.suntuubi\.com\b +\bcbsystematics\.com\b +\bdivrigibayirlikoyu\.com\b +\bgaliffasyndrome\.com\b +\bgallery\.kunzweb\.net\b +\bhotclassic\.net\b +\bimaginate1057\.com\.ar\b +\bloiselet\.com\b +\bigrandiviaggidellagtf\.net\b +\byesemm\.com\b +\barchitectour\.net\b +\bmobilya\.wordpress\.com\b +\bteletext-online\.de\.vu\b +\bgolokbuday\.com\b +\bezmapfinder\.com\b +\bprincealwaleed\.blog\.mongenie\.com\b +\bstock-seller\.com\b +\bdavid-walliams\.co\.uk\b +\bhamachicity\.com\b +\b39pf\.com\.cn\b +\b51qimo\.com\b +\b91wxds\.cn\b +\bairgreat\.com\b +\bbeautyspacenter\.com\b +\bbjx(ps|ytx)\.com\b +\bchieftech\.net\.cn\b +\bchinakain\.com\b +\bclamandarin\.com\b +\bcnjcy999\.cn\b +\bcqdingyao\.com\b +\bdyhhly\.cn\b +\bdxjbzy\.com\b +\bfsjbkf\.com\b +\bgztao\.net\b +\bhblc123\.com\b +\bhelenarubinstein\.cc\b +\bhyshusongdai\.com\b +\bja010\.com\b +\bjiushun\.com\.cn\b +\bjxfilter\.com\b +\bks8code\.com\b +\blaw-ssc\.com\b +\bmlkq\.com\b +\bqm8881\.com\b +\bsako-or\.cn\b +\bshanghai(anfeng\.com|huayu\.cn)\b +\btfkfw\.com\.cn\b +\btkglc\.net\b +\bts-ky\.com\b +\bvipnikeshoes\.com\b +\bwellforcesbj\.com\b +\bwxboleda\.com\b +\bxcbzy\.com\b +\bxhhome\.com\b +\byyxingke\.com\b +\bzhuoyueenglish\.com\b +\bbaili-rollforming\.com\b +\bbeijing(808\.com|tour\.cc)\b +\bchuangliandsj\.com\b +\bchun-dance\.cn\b +\bdragonorient\.com\b +\bgd96\.com\b +\bhzxyck\.cn\b +\bshengxinan\.com\b +\bsssty\.cn\b +\bvaot\.com\.cn\b +\byanzifei\.cn\b +\bzhefiry\.com\b +\bzibohengtai\.com\.cn\b +\b31kv\.cn\b +\blinkbee\.com\b +\bdwz\.tw\b +\bppt\.cc\b +\bfree6\.com\b +\byoubt\.com\b +\bpornomotore\.it\b +\beroticbeauties\.cnet\b +\btrunc\.me\b +\bboxersrosadelosvientos\.com\b +\bjdv-trc\.blogspot\.com\b +\bmarquesdetamaron\.blogspot\.com\b +\bneta\.ge\b +\bd3aia\.(net|com)\b +\bwikivel\.org\b +\bcalculadoras\.com\.mx\b +\bnhal\.net\b +\bvitamincesitleri\.blogspot\.com\b +\bfrancescogeminiani\.com\b +\bsilviofioravanti\.it\b +\bchildren-behavior\.com\b +\bhedel\.info\b +\biles-de-lerins\.info\b +\binfoslash\.net\b +\bevancamp\.com\b +function/c_urlredirect\.asp\?url= +\brover\.ebay\.com\b +\bqlbi\.com\b +\bynrc\.net\b +\bkmhr\.net\b +\bchenghai\.com\.cn\b +\bbansko\.org\b +\bamericageo\.com\b +\bzalimcafe\.com\b +\bmesajlarsozler\.com\b +\bislamisohbetciler\.com\b +\bmotokolik\.com\b +\bgizliarkadas\.com\b +\bfikraz\.com\b +\bsohbetozel\.org\b +\bmotorlive\.org\b +\bogameilk\.com\b +\bsohbet15\.com\b +\bulix\.ucoz\.ru\b +\btolong\.in\b +\bapoke\.com\b +\bprojeksiyon\.com\.tr\b +\bcentralbohemia\.cz\b +\bnatal-live\.com\b +\burlsh\.com\b +\bicadsales\.com\b +\bhalf-lifebrasil\.com\b +\bblog\.fuku-heiwa\.main\.jp\b +\bredtube\.com\b +\bwebcam\.cap-d-agde\.com\b +\bhotelen\.net\b +\bporno\.ru\b +\bnaturist\.de\b +\bphoto\.sing365\.com\b +\bfreewebtown\.com\b +\b3iny3ink\.com\b +\b777z\.net\b +\b9down\.com\b +\ba7asisqtr\.com\b +\babhxlxeplc\.com\b +\badma1\.com\b +\baguileraundresse\.sprayblog\.se\b +\bahluae\.net\b +\bal1lg\.net\b +\banalmatureorgies\.net\b +\banti(-virus-live-scanner|virus-protectionscan)\.com\b +\bar-tra(vian)?\.com\b +\bartcateringbyjenn\.com\b +\bavxp-2008\.us\b +\bayda\.ru\b +\bbeautyxxx\.net\b +\bbigtits(\.yoll\.net|vision\.com)\b +\bbobsmetalworks\.com\b +\bbuterik\.com\b +\bcameos\.ca\b +\bclicks(agent\.net|overview\.com)\b +\bcold-live\.net\b +\bcomphost\.info\b +\bcykaqcpi\.mail15\.su\b +\bdajjh\.com\b +\bdarkstarhosting\.net\b +\bdefence-live-scan\.com\b +\be4e\.pl\b +\bext1\.pl\b +\bfoneplanet\.com\b +\bfreephpnuke\.org\b +\bfreewebhosting360\.com\b +\bfull-pc-scan\.com\b +\bgarnabudin\.ifrance\.com\b +\bgeltraffic\.com\b +\bgoogleimproved\.com\b +\bgreatnuke\.com\b +\bgulfup\.com\b +\bgwengalerevealed\.blogspot\.com\b +\bh1\.ripway\.com\b +\bhikayeler99\.com\b +\bhostdandy\.info\b +\bhotusa\.org\b +\biblogger\.org\b +\biconadserver\.com\b +\bincestlessons\.net\b +\binvisioni\.com\b +\bisuisse\.com\b +\bkernell\.freeo\.net\b +\bkitchen-moms\.com\b +\bklik\.in\b +\blesbian-hotties\.biz\b +\blineacount\.info\b +\bmooon-light\.com\b +\bmov(shighway|zline|iezlibs)\.com\b +\bms-avc\.com\b +\bmy(bikerz|okhost)\.com\b +\bnoirgroup\.org\b +\bnssim\.com\b +\bp2h\.info\b +\bpawka111\.info\b +\bpineridgehouse\.com\b +\bpluscount\.net\b +\bporndreams\.info\b +\bprivatewebsphere\.com\b +\bpro-scanner-online\.com\b +\bprogramlar\.org\b +\bproscribedsites\.info\b +\bredir\.to\b +\bs2a2s\.com\b +\bsaklanbac\.net\b +\bsalahws\.com\b +\bscorebee\.com\b +\bsecond-reason\.com\b +\bseedrecords\.co\.uk\b +\bselectedclipz\.com\b +\bsfntop\.com\b +\bshawya\.(43i\.net|freetzi\.com)\b +\bsvinushka\.net\b +\bteenlotto\.com\b +\btobikat\.com\b +\btrlist\.gen\.tr\b +\bturbo-player\.com\b +\btxdnl\.com\b +\bunetworks\.biz\b +\bviacodecright---\d\.com\b +\bvidzd(aily|evice)\.com\b +\bvsatforums\.com\b +\bwackystone\.com\b +\bwar3z\.to\b +\bwarezrocker\.net\b +\bweb1counter\.cn\b +\bwebmed\.com\b +\bwindoffresh\.ru\b +\bwmpinstrument\.com\b +\bwp-stats-php\.info\b +\bwwwinfoclick\.com\b +\bxdxbx\.com\b +\bxxxstarvideo\.com\b +\byieldmanager\.com\b +\bz4ar\.com\b +\bzlzaluae\.com\b +\bzzw\.pl\b +\be-zgierz\.eu\b +\bdifferentangle\.info\b +\bfarmersdaughterhotel\.com\b +\bgm-rus\.ru\b +\bsmileycentral\.com\b +\bwest-alliierte-in-berlin\.de\b +\buser-guides\.co\.uk\b +\bspritzlandia\.it\b +\bsintanna\.eu\b +\balkhabar\.tv\b +\bwww\.pinspenyes\.com\b +\btrampero\.com\b +\barab-sex\.org\b +\baskell\.com\b +\bmarinedataservice\.com\b +\bpatagonia(adventure|adventureracing|expedition)race\.com\b +\bmysiyaset\.com\b +\bmelitopol-realty\.com\b +\bluigitenco60s\.it\b +\bushebtisegipcios\.blogia\.com\b +\bgirlswallpaper\.net\b +\bturkgayclub\.com\b +\bbabes2babes\.net\b +\bmyweb\.io\b +\bmiarroba\.com\b #replaces \bnacho\.miarroba\.com\b +\bsuche-vorwahl\.de\b +\barcadvisor\.com\b +\besyurl\.com\b +\bnanoshop\.ir\b +\bfestivalbeckett\.com\.ar\b +\bbitgle\.com\b +\brealgems\.org\b +\bsixxs\.org\b +\bibis\.experimentals\.de\b +\bsheqel\.info\b +\blamborghiniaddicted\.fr\b +\blittl(ink|eurl)\.com\b +\bskinnylink\.com\b +\bsmallurls\.com\b +clubevfrportugal(\.freehostia)?\.com +\bannenurmi\.cl\.gd\b +\bthemoviesareus\.com\b +\bclubsimca\.fr\b +\btorokkanizsa\.extra\.hu\b +\bfizy\.org\b +\bgorodetc\.ru\b +\bnarcotics\.su\b +\bseesplit\.com\b +\bkarakalpak\.com\b +\bstrivinglife\.com\b +\bsouvenir-dvd\.com\b +\bzurl\.ws\b +\burlpire\.com\b +buzz\.igg\.com +\bellibrodelmensajero\.blogspot\.com\b +\bfirmypuchov\.sk\b +\bugg4sale\.com\b +\bimagenes\.condenet\.es\b +\bfarecompare\.com\b +\bak-kelebek\.com\b +\bmaselectromedicina\.com\b +\bsurmedical\.com\b +\byayinakisi\.com\b +\binugg\.com\b +\bbyfiles\.storage\.live\.com\b +\bashtalakshmi\.com\b +\bte\.tl\b +\bw3tag\.com\b +\bvillemagne\.net\b +\brosarioonline\.altervista\.org\b +\bshotokai\.com\.br\b +\bpuratimba\.com\b +\bpetardas\.com\b +ferienwohnungen-auf-sizilien\.de +\bvova\.cz\b +\binxs\.phpbbforum\.eu\b +\bhotel-erb\.de\b +\bbestwestern\.de\b +\bhotel-am-borsigturm\.de\b +\bteosofia-liberdade\.org\.br\b +\balestewines\.com\b +\bthebusschedule\.com\b +\blinksemulacao\.googlepages\.com\b +\btsmservice\.fr\b +\bcamilla-belle-picture\.blogspot\.com\b +\bgroohashpazi\.blogfa\.com\b +\bmiata\.es\b +\baccumalaga\.es\b +\bpatagonia-web\.com\b +\btorrevieja24\.com\b +\bxtreme-corp\.net\b +hitlerbunker\.com +\bsnapmaze\.com\b +\bdreamscreators\.com\b +\blenr-canr\.org\b +\bal-wlaah\.com\b +\bborgloon\.com\b +\bbredene\.com\b +\bbruggebusiness\.com\b +\bdehaanonline\.com\b +\bdilsen-stokkem\.com\b +\bheusden-zolder\.com\b +\bizegem\.com\b +\bkruibeke\.com\b +\blanaken\.com\b +\bmaas(?:eik|mechelen)\.com\b +\bmortsel\.com\b +\bpoperinge\.com\b +\bpuurs\.com\b +\briemst\.com\b +\brotselaar\.com\b +\btemse\.com\b +\btielt-winge\.com\b +\bveurne\.com\b +\bvlaams-brabant\.com\b +\bflandersonline\.com\b +\bwenduine\.com\b +\bwervik\.com\b +\bwetteren\.com\b +\bzonhoven\.com\b +\befuengirola\.com\b +\bbenalmadenacosta\.com\b +\bsotograndecosta\.com\b +\bleopoldsburg\.com\b +\bua-teens\.com\b +\bcorazondepuebla\.com\.mx\b +\bportalcadista\.com\b +\bberlinertageszeitung\.de\b +\binstantocr\.com\b +\bsematild\.qsh\.eu\b +\blofaako\.strefa\.pl\b +\bgolxando\.0lx\.net\b +\bmysafelink\.com\b +\brachmaninow\.narod\.ru\b +setif\.forumactif\.info +giurgiuro\.blogspot\.com +\bnegox\.com\b +\boomoto\.ucoz\.ru\b +\btalk\.to\b +\bklimenro\.0fees\.net\b +\bw-ru\.com\b +(russian-?|\bru-)(bride|girls|ladies|lady|single|wife|wives|wom[ae]n) +(on-?line-?|ua|own|okfree|go4)dating(\b|\d|site) +\b(vipgirlie|brides(finder|inrussia)|visa2russia|matchingsite|my-wife)\.net\b +\b(russ-love|myfreecupid|princessbridesite|asterot|mygourds|fianceefromrussia)\.com\b +\bwomenrussia\.eu\b +\beroticvisits?\.com\b +\blove-r\.info\b +\b(jorge150|jorgesoftware)\.blogspot.com\b +\bihateliz\.com\b +muselius\.com +\bkelebeknakliyat\.com\b +\byandex\.ru/redir\b +\bexvaluere\.com\b +\bzilnic\.net\b +\bgreencard-vision\. +\bkanqateam\.com\b +\bcanoesport\.ru\b +\bglobalflight\.net\b +\bfajelacicevidvorizapresic\.blog\.hr\b +\bgeckoleo\.com\b +\byoujizz\.com\b +\bminyurl\.net\b +\bautomania\.it\b +\bfff\.to\b +\blink4seo\.com\b +zurnafinal\.net +\bski-russia\.net\b +\bymap\.ru\b +\bsomkutin\.fw\.hu\b +\bnewdigitalsouth\.org\b +\bmoggames\.net +(buy|cheap)-?viagra +viagra-?(drugs|online|billig) +\bearth4energy(z|-solarhome.blogspot)?\.(tk|com|net)\b +\bhome-energy\.tk\b +\bearth-energy4home\.tk\b +\bfile-factory\.co\.uk/energy\.html\b +\bterrastraniera\.de\b +\bwww-2\.net\b +\bcyborg-on-smallville\.tk\b +\bhome-made-energy\.tk\b +\bweight-loss-pros\.tk\b +\bimg\.yandex\.net\b +\bla-biznaga\.com\b +\bannneftin\.com\b +\bnlpls\.com\b +\byammypix\.com\b +\blettercredit\.com\b +\blacrimosaforever\.com\b +\bhotel-cezar\.com\b +\bapartments-makarska\.com\b +\bexotour\.ge\b +\bafricainquirer\.com\b +\b3dmax-tutorials\.com\b +\banatoliangifts\.com\b +\barchicad-tutorials\.info\b +\bautomatic-level\.com\b +\bbatik-tulis\.com\b +\bbloomsandbaskets\.com\b +\bcharacter-studio\.net\b +\bchinawholesale247\.com\b +\bconstruction-laser\.com\b +\bcosmeproud\.com\b +\bdigitaltheodolite\.com\b +\bdistanciometro\.com\b +\beastalgarvevilla\.com\b +\bechosounder\.org\b +\becommerce-designer\.com\b +\ben-ru\.org\b +\bfreelanceprogrammers\.org\b +\bgeminispanishproperties\.com\b +\blalamirr\.com\b +\bmeasuring-wheels\.com\b +\bnxs4\.com\b +\botakuhouse\.com\b +\bpdesigner\.net\b +\brtks82\.com\b +\bsmsmp3\.co\.uk\b +\bstonex(italia\.it|surveying\.com)\b +\bteodolito\.org\b +\btopografico\.net\b +\btotalstation(shop\.com|\.org)\b +\btravelbaku\.com\b +\b(ay7agh|linkat)\.l9l\.org\b +\bmobileey\.blogspot\.com\b +\basbestos4info\.blogspot\.com\b +\bizucardematamoros\.net\b +\b3x3\.in\b +\bgeocenter\.es\b +\bborat-bruno\.com\b +\baviatorsale\.com\b +\bzlatwork\.ru\b +\bparisairportguide\.com\b +\bexvaluere\.(co\.uk|eu|us)\b +\b4uaf\.com\b +\bair-(max-shoes|shox)\.com\b +\baj2u\.com\b +\bmax-sky\.com\b +\bnbajs\.com\b +\bnike-star-shoes\.com\b +\bphoneworth\.com\b +\bugg2u\.net\b +\bcheap-air-jordan\.cn\b +\bdunk2u\.com\b +\bsilver-tiffany\.com\b +\bdiaghilev\.org\b +\bwellness-heaven\.net\b +\bversicherungs-check\.info\b +\bdax-prognose\.de\b +\b3dtour\.eu\b +\bihtiandr\.info\b +\btrakomedia\.com\b +\bdivxsubtitles\.net\b +\bandroid-phones\.ru\b +\bfreebiesms\.co\.uk\b +\b301\.am\b +\bturkishcoffeehouse\.blogspot\.com\b +\bsystem-linux\.eu\b +\bchitinshield\.blogspot\.com\b +\bsturly\.com\b +\bturkeytravelinfo\.net\b +\bhidro-teknik\.com\b +\bapolitik\.org\b +\b123(?:biotech|goa|indiaonline)\.com\b +\bamericansharemarket\.info\b +\basiansharemarket\.com\b +\basianstockmarket\.ws\b +\bawesomehomilies\.com\b +\bbestin(diancooking|diancuisines|dianfilms|tourism)\.com\b +\bbest(?:healthtourism|seoguide)\.com\b +\bblackpoollive\.net\b +\bbrainees\.com\b +\bbuyseolinks\.com\b +\bexamtoolkits\.com\b +\bh1bmarriages\.com\b +\bindianhoneymoonspots\.com\b +\bindianshare(market\.net|sonline\.com)\b +\bindiaweblinks\.com\b +\binvestingstock\.info\b +\bjustworldcup\.com\b +\bkeralanews\.co\.uk\b +\bmanchesterlive\.net\b +\bmortgagetoolsandtips\.com\b +\bmyworldcupinfo\.com\b +\bprestononline\.net\b +\bprojectmanagementideas\.com\b +\brealdummies\.com\b +\bstockandsharemarket\.com\b +\bthodupuzha\.(info|net)\b +\btourism-worldwide\.com\b +\buksharemarket\.com\b +\bukstockmarket\.info\b +\bukvisit\.net\b +\bvallarpadam(port|terminal)\.com\b +\bvcode(4u|infosystems|infotech)\.(com|net)\b +\bvismayamax\.com\b +\bworldwondersweb\.com\b +\bblog-teachingsolutions\.org\b +\b(ca|texas-)teachingsolutions\.com\b +\btest-help\.org\b +\bpraxis-test-coaching\.com\b +\bduparts\.com\b +\bfarmsandvillas\.com\b +\bantonioolinto\.co\.nr\b +\bseecornwall\.eu\b +\bcornwall\.rgds\.pl\b +\bvkusnyblog\.ru\b +\biremetforlag\.tripod\.com\b +\btriviabot\.galeon\.com\b +\bgenovagay\.com\b +\bexamjunction\.blogspot\.com\b +\bquijuve\.com\b +\bhostingdnz.com\b +\b[dh]enizhost\.net\b +\bhostingclub\.tk\b +\balanadial\.net\b +\bbereketnikahseker(i|leri)\.com\b +\bhostclub\.tk\b +\bbagrut\.org\b +\bclassicalhebrew(blog)?\.com\b +\bjewish-greetings\.com\b +\blearn-hebrew-names\.com\b +\bmy-chinese-name\.com\b +\bmy-christmas-card\.com\b +\bbible-name\.com\b +\bchinese-character\.com\b +\bchinesevoice\.co(m|\.il)\b +\be-teacher\.co\.il\b +\benglishonline\.co\.il\b +\beteachergroup\.com\b +\bhebrewonline(\.co\.il|(blog|shop)?\.com)\b +\bhomeworkhelp\.co\.il\b +\blearn-(chinese-blog\.com|hebrew-phrases\.com|hebrew\.co\.il)\b +\bb23\.ru\b +\bfarmcliff\.com\b +\bzlatni-bol\.com\b +\bzabranjenaljubavblog\.blog\.hr\b +\bbol-croatia-apartments\.com\b +\bdiromo\.com\b +\bdvdkaraokejukebox\.com\b +\baccountsbay\.com\b +\bblog\.mook\.com\.tw/wow_account\b +\bblogs\.albawaba\.com/wowaccount\b +\bgamemobile\.com\b +\bgoldups\.com\b +\bitem4sale\.com\b +\bsamyibiz\.com\b +\bthsale\.com\b +\bwow-accounts?\.(net|org)\b +\bwow\.xtrablog\.dk\b +\bwowaccount\d?\.(obolog|xtrablog|indiainteracts)\.(com|dk)\b +\bwowgold51\.net\b +\bairdestroyer\.ru\b +\bchatarkadas\.net\b +\bceppaloni\.info\b +\bforexfacile\.it\b +\bdoramovie\.blogspot\.com\b +\bcardollarsforall\.com\b +\bcarmoneyrealfast\.com\b +\bcarloan123\.net\b +\bsuper-avi-converter\.com\b +\bauto-loan-refinance\.net\b +\ballmyhealth\.net\b +\bguiaderoses\.net\b +\b104-game\.blogspot\.com\b +\b168games\.blogspot\.com\b +\b8591-game\.blogspot\.com\b +\bfree(-games|onlinegames|title)\.net\.ru\b +\bfreegamesbase\.com\b +\bfun-games\.net\.ru\b +\bgameswu\.pixnet\.net\b +\bharry-potter\.pp\.ru\b +\binkheart\.net\.ru\b +\bminiclip\.net\.ru\b +\bmlb\.net\.ru\b +\bonlinegames\.net\.ru\b +\bplaygames\.pp\.ru\b +\bsecondlife\.pp\.ru\b +\bvideogames\.net\.ru\b +\bzkaskay\.com\b +\balizeeclub\.ucoz\.ru\b +\bzonemediafire\.tk\b +\bkrabi\.info\b +\bbaalart\.com\b +\bxr\.com\b +\bgrancanarias\.wordpress\.com\b +\bsexshopdf\.com\.mx\b +\broyalhouseofportugal\.org\b +\bcasareal(deportugal|portuguesa)\.org\b +\bzi\.ma\b +\bmylottoadserv\.com\b +(ireland|(euro|mega)mil|canada|the)lotter(wiz)?\.com\b +\bknightrider\.3dn\.ru\b +\bfunctionpointmodeller\.com\b +\bgost-ukrsepro\.com\b +\bpag-kolan-novalja\.com\b +\bchinatravelvip\.com\b +\bhowtogold\.com\b +\bacupuncture(-points)?\.medicalspecialists\.info\b +\bbuy-mmorpg-money\.com\b +\bbuycd-key\.com\b +\bcheap(-vanguard-gold|est4ffxigil|estwowgoldworld|wow-gold-us-eu)\.com\b +\bcolleges\.findyourschool\.info\b +\bdetox(ification\.findhealthinfo\.net|treatments\.medicalspecialists\.info)\b +\bepicwower\.com\b +\bffxi(-sale|4gil)\.com\b +\bfindgamecheats\.net\b +\bflightschools\.aircraftdata\.net\b +\bgame(isok|rsell)\.com\b +\bgoldcheapest\.com\b +\bgolf-swing-instructions\.thegolfplanet\.info\b +\bgosuperplayers\.com\b +\bgp4runescape\.com\b +\bguildwars-sale\.com\b +\bhaomianfei\.com\b +\bibuymils\.com\b +\bidspire\.com\b +\bmmorpg-currency-store\.com\b +\bmygamestock\.com\b +\bpurchaser(s2money|unescapemoney)\.com\b +\brs(2moneystore|4sale)\.com\b +\brunescape4gold\.com\b +\bshoppingrs2\.com\b +\bvanguard-gold-sell\.com\b +\bwatches\.realbeauty\.info\b +\bwow(-paypal\.com|suibian\.com|game\.cn|china\.us)\b +\bwowgold((-?shopping|order|sell|service|vip\.wordpress)\.com|\.org\.cn|price\.org)\b +\byogawww\.com\b +\bgame15\.tk +\bbaixllobregat\.tv\b +\bwalernov\.narod\.ru\b +\bmandalaseverler\.somee\.com\b +\bscavidiercolanopompei\.jimdo\.com\b +\bantitub\.com\b +\bwedmi\.ru\b +\bgoodquotes\.org\b +\bsestosenso\.com\b +\b888\.com\b +\btanquesyblindados\.tk\b +\bcanon(\d+[a-z]+|[a-z]+\d+)\w*\.ru\b +\bgreenpower\.com\.ua\b +\buglezhog\.ru\b +\bthermoscan\.in\.th\b +\bnightvision\.in\.th\b +\bvibration\.in\.th\b +\binfrared(training)?\.in\.th\b +\bsafety\.in\.th\b +\bfilipina4u\.net\b +\bghumlo\.com\b +\bciill\.com\b +\b10bux\.net +\b5centminimum\.com +\ba-n-cash\.com +\baaa-mails\.com +\bad(5\.biz(ad-fortune\.com)?|-fortune\.com|onlyptc\.us|qds\.com|sbux\.org|smaker\.net|sneed\.com|vertisingcentral\.biz) +\baglocomails\.com +\bahacash\.com +\balertpay\.com +\bal(lcashmail|lyousubmitters|miyachts|tsurf|wayspay)\.com +\bam(erican-mails|igoemail|ity-cash)\.com +\ban(-cash|nies-biz|s-advertising)\.com +\bap(ache|pealing|ple|polo)mails?\.com +\bar(ab-gpt|abbux|adiasgarden|cane-mails|csurvey|cticmails|rowheadptr)\.com +\basonewishes\.com +\ba(tom[-s]|uction-e)mails\.com +\bawsurveys\.com +\bba(byloncash|n-mail|nboocash|ybux)\.com +\bbank-mails\.(com|net) +\bbe(anybux|arshare-mails|autymails|eptr|etrmails|stflymails|ta-cash|ttybucks|yondemails)\.com +\bbest-hyip\.be +\bbgpaymails?\.com +\bbi(gdollar-mails|ggestdollars|gluck-mails|gpaymail|lliondollarmails|zbizs|zsonline)\.com +\bblacklistptc\.blogspot\.com +\bblue(maniacs|rwebmail)\.com +\bbo(a-|bo|ffopaid|rat|ss-)mails?\.com +\bbondjamesbond\.net +\bbournemouthbreeze\.com +\bbravevolitation\.com +\bbu(gcash|sinessptr)\.com +\bbux(\.to|a\.in|euro\.com|galore\.com|junction\.com|out\.com) +\bcamel-mails\.com +\bca(n-discount|ndy-mail|nnabismails|t-mails|t-ptr|tch-cash)\.com +\bcash(-kitty|4(all|hits)|n?bux|eden|fiesta|nclicks|origin|out|pointclicks|posse|read|sea)\.(com|org|net) +\bcasino-mails\.com +\bcgcash\.info +\bch(arm-mail|erokeeptr|icago-ptr)\.(biz|com) +\bchobit[-s]?mails\.(com|net) +\bclass(-act-clicks|ical-mail)\.com +\bclick(-mails|-monkey|-wizard|2earnmoney|4coins|buxx?|cent|evolution|fantasy|ingmoney4u|oly|s(-4-cash)?|topsites)\.(biz|com|net|org) +\bclixy\.net +\bclo(nebux|set-clickers|udmails|verclicks)\.(com|net) +\bco(ast-?mail|inclicks|lor-mail|mpactmails|okie-mails|operativemail|pymails|smicwealth|splaymails|verclicks|wboy-mail)\.(com|info) +\bcr(abmails|ash-cash|azy-4-cash|azyclicks|eam-mails)\.(com|us) +\bcy-mails\.com +\bearn3\.com +\begyptp(ost\.org|tc\.com) +\bisabelmarco\.com +\bneobux\.to +\bp2cdaily\.com +\bperfectbux\.com +\brocashbux\.info +\broudycash\.com +\bsandraclicks\.com +\bthinkbux\.com +\bcropcirclesdatabase\.org\b +\bfilipina4u\.proboards83\.com\b +\bshrinktheweb\.com\b +\bpaiagua\.com\b +\bw3c-at\.org\b +\bkaysericity\.net\b +\bhadiseacikgoz\.net\b +\bingsys\.com\.ua\b +\bnigelkennedyonline\.com\b +\bdonada\.it\.gg\b +\bsexyemilie\.com\b +\bhamspirit\.org\b +\bpostrockxchange\.com\b +\bbecollared\.com\b +\bsamui-samui\.org\b +\bsamuitiger\.de\b +\bno2low\.com\b +\bfortalezaapartments\.net\b +\bharz-unterkunft\.eu\b +#Croatian tourism-spammer +\bhvarinfo\.com\b +\bmakarskainfo\.com\b +\bvisinfo\.org\b +\bikorculainfo\.com\b +\bbracinfo\.com\b +\btrogirinfo\.com\b +\bomisinfo\.com\b +\bciovoinfo\.com\b +#End of Croatian tourism spammer +\bklikhierniet\.net\b +\bscaffolddesigns\.com\b +\bvisualtarot\.com\b +\basianmediawiki\.com\b +\blunapark6\.com\b +\bcadstudio\.ru\b +\bcarhiredubrovnik\.com\b +\b6starescort\.blogspot\.com\b +\b6-star-escort\.rare-escort\.com\b +\beberhardfritz\.de\.tl\b +\bventspils\.info\b +\bvinilosrock\.blogspot\.com\b +\bharmonicafans\.com\b +ayahuascadistribution\.org +\blaslomitasvirtual\.com\b +\btigerdogskingdom\.com\b +\bregression\.nl\b +\bsvetlanov\.ru\b +\bmons\.hr\b +\bcredit-calc\.com\b +\bgoogle\.(com|(com\.)?[a-z]{2})/.*[?&]btnl=1 +\b(lmgtfy|letmegooglethatforyou)\.com.*[?&]l=1 +\bhacibektas\.de\b +\bkaracaahmet\.com\b +\balevi\.com\b +\bgeminimanagementnv\.com\b +\b4images\.gen\.tr\b +\bpublic-domain-image\.com\b +\bgrantorinoteam\.blogspot\.com\b +\balovize\.com\b +\bmymoneymarket2009\.blogspot\.com\b +\bshadmehraghili\.ws\b +\bvirginiacuellar\.spaces\.live\.com\b +\.kproxy\.com\b +\bsilav\.net\b +\btinyarro\.ws\b +\bkiyipansiyon\.com\b +\bsilvento\.kiev\.ua\b +\brealultimatepower\.net\b +xxxxxx/ +\bpresaleswiki\.com\b +\b7p-e\.com\b +\b(good|very|goin|demo|auto)\.to\b +\b(hit|just|key|forever)\.as\b +\btestmasters\.net\b +\bkerryshine\.com\b +\bjudyspence\.com\b +\bjuliagillard\.org\b +\bpetergarrett\.org\b +\bliberalnationalparty\.org\b +\blaborparty\.info\b +\brossgarnaut\.com\b(?!\.au) +\bworldrecession\.org\b +\blivetribun\.com\b +\ba-to-z-artists\.blogspot\.com\b +\baquitaine\.wikidot\.com\b +\bartists\.wikidot\.com\b +\bauvergne\.wikidot\.com\b +\bbirmingham\.wikidot\.com\b +\bbretagne\.wikidot\.com\b +\bbristol\.wikidot\.com\b +\bbrittany\.wikidot\.com\b +\bburgundy\.wikidot\.com\b +\bcentre\.wikidot\.com\b +\bcharente\.wikidot\.com\b +\bdevon\.wikidot\.com\b +\bdor(dogne|set)\.wikidot\.com\b +\bfrench-property\.wikidot\.com\b +\bgeoff-bunn\.wikidot\.com\b +\bgloucestershire\.wikidot\.com\b +\bherefordshire\.wikidot\.com\b +\blanguedoc\.wikidot\.com\b +\blimousin\.wikidot\.com\b +\bloire\.wikidot\.com\b +\bmidi-pyrenees\.wikidot\.com\b +\bnormandy\.wikidot\.com\b +\boxford\.wikidot\.com\b +\bpoitou-charentes\.wikidot\.com\b +\bshropshire\.wikidot\.com\b +\bsomerset\.wikidot\.com\b +\bwiltshire\.wikidot\.com\b +\bworcester\.wikidot\.com\b +\baustralia(npoliticians\.com|ncorruption\.com|npolice\.net|zoo\.us)\b +\bbindiirwin\.name\b +\bcavingaustralia\.org\b +\bdavidtennant\.org\b +\bdivingaustralia\.org\b +\bhangglidingaustralia\.org\b +\bhelenclark\.org\b +\bkevin(michaelrudd|ruddmyspace)\.com\b +\bkylieannminogue\.com\b +\blegalisemarijuanaparty\.com\b +\bliberalnationalparty\.com\b +\bnewdrwho\.com\b +\bnewgallifrey\.com\b +\bstevenmoffat\.org\b +\bprojectorlampsworld\.com\b +\b(sandoftime|rare)-mv\.(ucoz|narod)\.ru\b +\bevrekaegitim\.com\b +\bjaponcakonus\.com\b +\berciyesgazetesi\.com\b +\balbelda\.info\b +\barm\.in\b +\bchat\.com\.tr\b +\botagyorukcadirlari\.com\b +\bfinance\.asia\b +\bag0ga\.com\b +\barticleiq\.com\b +\bbeijingrealestate\.eu\b +\bcentralasianews\.eu\b +\bdiamonds\.uz\b +\beurasianews\.eu\b +\bfainvestment\.com\b +\bfinancing\.asia\b +\bhotelnikko\.com\b +\binsure\.asia\b +\blonelyplanet\.org\b +\bmytyshi\.co\b +\boption\.us\b +\brefinance\.mobi\b +\bsatte\.com\b +\btaliban\.asia\b +\btext\.asia\b +\btours\.asia\b +\bunicycletrials\.com\b +\buzairways\.eu\b +\buzbekistanairways\.eu\b +\bvip\.asia\b +\bmyspace\.com/zhoroscop\b +\besnips\.com/zhoroscop\b +\bzhoroscop\.hi5\.com\b +\bnonameno\.com\b +\bwissensbilanz\.ch\b +\blarafabiannews\.kit\.net\b +\bmanavgatim\.net\b +\bmegasuits\.wordpress\.com\b +\bmens-fashions\.blogspot\.com\b +\belegant-mens-apparel\.blogspot\.com\b +\bfondane\.eu\b +\bblogven\.net\b +\bbustersbuzz\.com\b +\bsexoroid\.com\b +\bhotelslloret\.com\b +\bcorluhaber\.com\b +\bhelptranslation\.com\b +\blabottegadimartone\.it\b +\bstilnakliyat\.com\b +\bidiomfox\.com\b +\bfrmcix\.com\b +\bshadyrunstudios\.tripod\.com\b +\bin-grid\.com\.pl\b +\bmorandi\.one.pl\b +\bcascada\.xt\.pl\b +\bingrid\.wot\.pl\b +\bin-grid\.xt\.pl\b +\bmardelbuscador\.com\b +\bsuper-masini-tuning\.blogspot\.com\b +\bramabeach\.com\b +\bzambales(?:philippines\.com|\.net\.ph)\b +\bantoniocarlosmachado\.com\b +\bciaux\.com\b +\bguia(?:imoveis|saopaulo|viajar)\.com\b +\bguidesaopaulo\.com\b +\biberovision\.com\b +\bleamachado\.com\b +\bnegocioreal\.net\b +\bnetsaopaulo\.com\b +\bportalsaopaulo\.com\b +\bpremiumflats\.com\b +\bsaopaulo(?:aero|artes|autos|bares|bus|channel|cidades|cinemas|estradas|eventos|gallery|gallery|gaytravel|invest|links|mall|mapas|market|metro|moda|museus|night|noticias|parques|photo|praias|relax|restaurantes|ruas|shuttle|sites|suites|teatros|town|work)\.com\b +\bweb(?:carnaval|saopaulo|taubate)\.com\b +\bnutshellurl\.com\b +\bcjb\.net\b +\buni\.cc\b +\bvai\.la\b +\bk6\.com\.br\b +\bs9k\.net\b +\bv3\.com\b +\bcab8\.net\b +\brg3\.net\b +\brg9\.(?:net|org)\b +\brg10\.net\b +\bbr30\.com\b +\besmiweb\.com\b +\bmidominiogratis\.com\b +\b1br\.net\b +\bsitio\.de\b +\bclic3\.net\b +\burl\.ie\b +\bdunesdugolf\.eu\b +\bavsam\.com\.tr\b +\bavsaadasi\.gen\.tr\b +\bzoodl\.com\b +\bwww\.x\.se\b +\babc1\.eu\b +\baquisitions\.asia\b +\barriba\.asia\b +\barticle19\.eu\b +\bbankoflatvia\.eu\b +\bbankofsweden\.eu\b +\bbecali\.asia\b +\bbeira\.(?:asia|us)\b +\bbesides\.tv\b +\bbetting\.uz\b +\bbingo\.uz\b +\bblasphemy\.asia\.com\b +\bboobs\.uz\b +\bborderline\.asia\.com\b +\bbritish\.(?:asia|tv)\b +\bbritneyspears\.asia\b +\bbrought\.tv\b +\bbsiness\.net\b +\bbuckhead\.asia\b +\bburberry\.org\b +\bcareerbuilding\.net\b +\bcasinowise\.net\b +\bcentralasia\.asia\.com\b +\bcepf\.eu\b +\bchinese\.uz\b +\bclickpage\.net\b +\bcnlhotels\.com\b +\bdepress\.asia\b +\bdiscover-places\.com\b +\bdnguards\.com\b +\be-shopping\.asia\.com\b +\bemcef\.eu\b +\bemissions\.asia\.com\b +\beuromalt\.eu\b +\bexclusive\.asia\.com\b +\bexpress247\.com\b +\bfertile\.mobi\b +\bfinished\.tv\b +\bflights\.uz\b +\bfrenchbank\.eu\b +\bgateway\.us\b +\bgermanbank\.eu\b +\bggeat\.com\b +\bglitch\.asia\.com\b +\bhappened\.tv\b +\bholidaybug\.com\b +\bhomesaid\.com\b +\bhoping\.tv\b +\bhostile\.asia\.com\b +\binstore\.net\b +\bkarshi\.asia\.com\b +\blawforum\.asia\b +\bloan\.uz\b +\bloans\.uz\b +\blohdon\.com\b +\bloneon\.net\b +\blottery\.uz\b +\bmeant\.tv\b +\bmeccahotels\.eu\b +\bmoonlight\.asia\.com\b +\bmortgages\.uz\b +\bnamecout\.com\b +\bnbsp\.us\b +\bneither\.tv\b +\bnewyorkrealestate\.eu\b +\bnioc\.eu\b +\bnizhenvartovsk\.com\b +\bonlinecasinoreview\.biz\b +\boparis\.com\b +\bparishilton\.asia\b +\bpdf\.uz\b +\bphotosuites\.com\b +\bpolandworldcup\.com\b +\bprais\.org\b +\bprelinia\.com\b +\bpyzza\.net\b +\bqatargas\.eu\b +\bratar\.com\b +\bsand\.mobi\b +\bsatte\.asia\.com\b +\bseen\.asia\b +\bseikh\.com\b +\bsenliscouncil\.eu\b +\bsitting\.tv\b +\bspread\.mobi\b +\bstan\.asia\.com\b +\bstaying\.tv\b +\bstriper\.asia\.com\b +\bsupposed\.asia\b +\bsurprised\.tv\b +\bswf\.asia\.com\b +\btaliban\.asia\.com\b +\btaschenlampe\.net\b +\bterminus\.asia\.com\b +\bthinks\.tv\b +\btokyorealestate\.eu\b +\btora\.asia\b +\btripadviser\.info\b +\bukenergy\.eu\b +\bukraineworldcup\.com\b +\buk(?:style|water)\.eu\b +\bvisa-card\.asia\b +\bvisit(?:afghanistan|armenia|azerbaijan|bahrain|bangladesh|bhutan|bosnia|brunei|cambodia|china|christmasisland|centralasia|cocosislands|croatia|cyprus|egypt|india|indonesia|iran|israel|jordan|kiev|korea|kosovo|kuwait|kyrgyzstan|laos|latvia|macedonia|malaysia|maldives|mongolia|nepal|northkorea|oman|pakistan|philippines|russia|saudiarabia|southkorea|switzerland|tajikistan|turkmenistan|uae|uzbekistan)\.(?:asia|eu)\b +\bvisit(?:chn|capena|car|esp|solomonislands)\.com\b +\bvisit(?:bombay|world)\.info\b +\bvisit-london\.eu\b +\bvvjz\.com\b +\bwhitepapers\.asia\b +\bwikiaction\.com\b +\bwondering\.tv\b +\byalta\.asia\.com\b +\bindustrialstrengthstaging\.com\b +\bgbcattani\.com\b +\bespadrilles(?:\.ca|distribution\.com)\b +\beasyurl\.net\b +\banti-virus-trojan-worm\.com\b +\bfilminformation\.blogspot\.com\b +\bilook\.tw\b +\bw3t\.org\b +\balturl\.com\b +\shorturl\.com\b +\brussianworld\.com\.au\b +\bweatherpage\.(?:co\.nz|com\.au)\b +\btripleme\.com\b +\brussianworld\.co\.nz\b +\bonlybest\.com\.au\b +\bnewpeoplefinder\.com\b +\brussiannewzealand\.com\b +\bantratel\.com\b +\btriplemecom\.blogspot\.com\b +\bpeopleschocolate\.com\b +\bsearchenginegreyfalcon\.com\b +\bcwill1\.com\b +\bjosoleil\.com\b +\bfaucongris\.com\b +\bgrey-falcon\.com\b +\baxebet\.com\b +\bsanyaweb\.com\b +\bmundo-ocio\.es\b +\bputin\.ru\b +\bxurl\.jp\b +\bcloakedlink\.com\b +\bmillesabords\.net\b +\btharmada\.net\b +\bmihaisora\.eu\b +\bquran\.waraqat\.net\b +\brs2pl\.com\b +\bnelioguerson\.palcomp3\.com\.br\b +\bmyspace\.com/fantomenk\b +\b5alej\.com\b +\barb7b\.com\b +\bvente-privee\.com/vp4/Registration/Registration\.aspx\? +\bmistureca\.blogspot\.com\b +\bgivemeknol\.com\b +\bmaxreading\.com\b +\btrucchi-e-consigli-msn\.spaces\.live\.com\b +\bphilatino\.com\b +\bspeechcorrector\.org\b +\basuka-team\.ru\b +\bmcdo3333\.blogspot\.com\b +\blitlurl\.net\b +\bbozkir\.com\b +\b1classical\.com\b +\bcomoj\.com\b +\bmoushumy\.tk\b +\bpsychology\.tk\b +\bpayel\.tk\b +\bazpayel\.blogspot\.com\b +\bmircd\.org\b +\bplagecorse\.com\b +\bgamewatch\.com\.es\b +\bmigre\.me\b +\bcabinas\.net\b +\bseekinusa\.com\b +\belargentino\.net\b +\bkomik-fikralar\.net\b +\bthe-locos\.com\b +\bgoldengate\.w2c\.in\b +\bsatelliteview\.org\b +\bsecure-x-001\.net\b +\bpornoxo\.com\b +\bladonia\.net\b +\bcyborg009\.it\b +\babbr\.com\b +\babe5\.com\b +\bgospelhearts\.synthasite\.com\b +\bbusty\.pl\b +\bmoourl\.com\b +\borospuporno\.com\b +\bpepekanavis\.org\b +\bserkann\.com\b +\bvinosearchwine\.com\b +\bstrongvpn\.com\b +\bgentefresa\.com\b +\bown3d\.es\b +\bmasfresa\.com\b +\brecaero\.fr\b +\byfrog\.com\b +\baforismi\.awardspace\.com\b +\btebesirim\.com\b +\bplayerswin-casino\.com\b +\bvinyland\.com\b +\bciquestudios\.com\b +\bpageditorpro\.com\b +\bsiremfc\.marlito\.com\b +\bkaspersky-key\.net\b +\bspikey\.com\b +\blearningrussian\.net\b +\beuropeopen\.org\.uk\b +\bgraffiti\.cs\.brown\.edu\b +\baekition\.blogspot\.com\b +\bsufifinder\.com\b +\btr\.im\b +\bmmafight\.ru\b +\brealestatesky\.net\b +\borchidea\.com\.ua\b +\bcatalanschool\.com\b +\bwebweevers\.com\b +\burlmin\.com\b +\binvx\.com\b +\btaturkey\.net\b +\bmoya-shkola\.info\b +\bjimmywales\.(info|net|org)\b +\b(jimmywales|projectorion)\.proboards\.com\b +\bbindiirwin\.com\b +\bnataliebassingthwaighte\.(net|org)\b +\b(vickydarling|jeffseeney|andrewcripps|john-paullangbroek|howardhobbs)\.com\b +\bhugeurl\.com\b +\bfreakinghugeurl\.com\b +\bfacebook\.com/l\.php\b +\btangodans\.com\b +(?<!www\.)\bmybrute\.com\b +\bmybrutehacks\.forumotion\.com\b +\balbumfototrenes\.idohost\.com\b +\bpfx\.me\b +\bcasareal\.co\.pt\b +\bartists-home\.com\b +\barsuka\.wordpress\.com\b +\bvisitsubotica\.rs\b +\bbanhatalaba\.com\b +\bbestmals\.ru\b +\bpepekanavis\.com\.ar\b +\beasterislandquest\.com\b +\bn-spa(?:re|er)s\.ru\b +\blytdybr\.com\.ua\b +\b250\.org\.ua\b +\bmobiletinyurl\.com\b +\balexander-klaws\.pl\b +\bnobrain\.dk\b +\beczema-treatment\.biz\b +\bslki\.ru\b +\btopleveltour\.com\b +\bjusticeleague\.org\.ru\b +\bcityrock\.ru\b +\bbonsai-search-engine\.com\b +\bkohtao\.name\b +\b(anaheimducks|bluejackets|bruins|buffalosabres|calgaryflames|chicagoblackhawks|coloradoavalanche|dallasstars|detroitredwings|edmonton-oilers|floridapanthers|hurricanes|mapleleafs|minnesotawild|montreal-canadiens|newjerseydevils|newyorkislanders|newyorkrangers|ottawasenators|philadelphia-flyers|pittsburghpenguins|tampabay|tampabaylightning|thrashers|vancouvercanucks|washingtoncapitals)\.ru\b +\bskatel-1chezone\.blogspot\.com\b +\bshoes007\.com\b +\b365165\.net\b +\btrade-leads-directory\.com\b +\bstonec2c\.cn\b +\bzhangxiaohe\.org\b +\bkaoyao\.net\b +\bforepak\.com\b +\bpamukkale\.org\.tr\b +\bblogdealbergaria\.blogspot\.com\b +\bkinbacon\.org\b +\b(losangeleskings|nashvillepredators|phoenixcoyotes|sanjosesharks|stlouisblues)\.ru\b +\bliveshow-tv\.com\b +\bpatagonianexpeditionrace\.com\b +\blexpressio\.wordpress\.com\b +\bnesvizh\.by\b +\bmcar\.ru\b +\bfashionistas\.(?:cc|me)\b +\bfashionschmooze\.com\b +\bfutureleaders\.ca\b +\bmycentrecourt\.com\b +\bfashionistas\.ca\b +\bfilmfans\.me\b +\bgolfschmooze\.com\b +\bsanjivkhullar\.blogspot\.com\b +\bfilmfans\.cc\b +\bs3\.gladiatus\.com\b +\bsarahjessicaparkerlookslikeahorse\.com\b +\biso8583\.info\b +\bifniville\.com\b +\bholidays-in-alicante-spain\.com\b +\bhipalgarve\.net\b +\bsee-business\.biz\b +\bseemacau\.blogspot\.com\b +\bseemacaunow\.com\b +\bxn--spermario-q9a\.com\b +\bbonsaici\.com\b +\bnodet\.us\b +\bgoogland\.blogsky\.com\b +\bdickensurl\.com\b +\bstoppuhr-online\.de\b +mongolische-jurten\.de +\baznvidz\.com\b +\barabgfx\.com\b +\bthe-jordan\.com\b +\bpho2o\.net\b +\bmanutdarb\.com\b +\bjp4h\.com\b +\blietuviu\.ucoz\.com\b +\bmisericords\.co\.uk\b +\bkozouh\.s7\.x-beat\.com\b +\bin-tasmania\.com\b +\bzapadnetatry\.com\b +\berasmusproject\.com\b +\berasmusinfo\.net\b +\bchaganava\.com\b +\bmapsofbalkan\.com\b +\bstihi-xix-xx-vekov\.ru\b +\biltwistacapri\.blogspot\.com\b +\bhowtofriends\.com\b +\bgeocities\.com\/yogafull\b +\btiny-url\.org\b +\bcapacitorx\.com\b +\belectronicspal\.com\b +\bguide-to-slovenia\.com\b +\bformalid\.com\b +\bapartments\.com\.ua\b +\beast-women\.com\b +\bkiev-service\.com\.ua\b +\bukraine-(?:girls|travel)\.kiev\.ua\b +\bedem-club\.(?:kiev\.ua|net)\b +\bkiev-apartments-rent\.com\b +\bukrainian-girl\.com\b +\bwomen\.kiev\.ua\b +\bfreeecardgreeting\.net\b +\becarddesignanimation\.com\b +\bmyfasturl\.com\b +\bcatalogocelular\.com\b +\badf\.ly\b +\bterminatorsalvationfig\.com\b +\bkatherinemoennigturkey\.com\b +\belbruto\.es\b +\bguerrastribales\.es\b +\brasora\.com\b +\btorahforever\.net\b +\bevileyescurses\.wordpress\.com\b +\binugg\.co\.uk\b +\bcomercialuruapan\.com\b +\bbitly\.com\b +\bdawsons\.narod\.ru\b +\bwaynerobertsmith\.com\b +\bparalleluniverses\.net\b +\badventureaustralia\.org\b +\baquaticapetheory\.(?:com|info)\b +\baustralianrecession\.com\b +\baustraliazoo\.name\b +\bbautboard\.com\b +\bbautforum\.(?:info|net)\b +\bclimbingaustralia\.org\b +\bfuturestarships\.com\b +\bgaryspence\.com\b +\bgreaterdowns\.(?:com|info|net|org)\b +\bgreaterdownsregionalcouncil\.com\b +\bhelenclarke\.org\b +\bkylieannminogueobe\.com\b +\bkylieminogueobe\.com\b +\bliberalnational(?:forum)?\.com\b +\bliberalnationalparty\.(?:info|net)\b +\blnpforum\.com\b +\bmultiverses\.info\b +\bmurdochwire\.com\b +\bmythbustersbusted\.com\b +\bnationalliberalparty\.org\b +\bparalleluniverses\.info\b +\brobertgbarrett\.com\b +\brobertschwarten\.com\b +\bsailingaustralia\.org\b +\bstarshiptechnology\.(?:info|net|org)\b +\bsteveirwin\.us\b +\bwesterndownsregionalcouncil\.com\b +\bworldrecession\.net\b +\bforumseo\.org\b +\b1256\.org\.ua\b +\bbascarsija\.info\b +\bvirl\.com\b +\btwurl\.nl\b +\btweetburner\.com\b +\bannastaciapalaszczuk\.com\b +\baquaticapetheory\.net\b +\baustralianrevolution\.(?:net|org)\b +\bbautforum\.org\b +\beastwest101\.com\b +\bhempembassy\.org\b +\bjobsforaustralia\.(?:net|org)\b +\bjohnpaullangbroek\.com\b +\blegalisecannabisparty\.(?:com|info|net|org)\b +\blegalisemarijuana\.org\b +\blegalise(?:cannabis|marijuanaparty)\.(?:info|net|org)\b +\bliberalnationals\.com\b +\bmurdochpress\.com\b +\bnationalforums\.org\b +\bworldwarming\.net\b +\bgetir\.net\b +\blburl\.com\b +\bmini\.web\.tr\b +\bthnlnk\.com\b +\bsrcedalmacije\.com\b +\bchopper-apparel\.de\b +\beurox10\.com\b +\bvjtube\.net\b +\brickroll +\bcescfabregas\.3dn\.ru\b +\bzobyhost\.com\b +\bsyntext\.(com|ru)\b +\bidukki\.com\b +\bthrissur\.com\b +\bpalakkad\.com\b +\bkottayam\.in\b +\bkannur\.in\b +\bmalabar\.in\b +\bkozhikode\.in\b +\balappuzha\.in\b +\bmalappuram\.in\b +\bkochi\.(com|in|mobi)\b +\bkeralatourism\.mobi\b +\bkerala\.(in|pro)\b +\bkeralahotels\.(info|asia)\b +\bkeralarealestate\.co\.in\b +\bkochi\.co\.in\b +\bkeralaclassifieds\.com\b +\bxvideos\.com\b +\bldonia\.net\b +\barab-fex\.org\b +\bxadonia\.net\b +\bthatsnotsexy\.com\b +\bctn-music\.com\b +\bcalls-to-nothing\.com\b +\balias-angelus\.net\b +\bctn-music\.info\b +\btranslator\.vndv\.com\b +\btrymasak\.my\b +\bgeoflex\.com\.my\b +\btrafficjam\.(?:com\.)?my\b +\bmyairvita\.com\b +\bagrolink\.moa\.my\b +\bmodernshogi\.pbworks\.com\b +\bfluradar\.webxells\.com\b +\btheofficialboard\.(?:com|fr)\b +\bthe-?board\.fr\b +\bthe-official-board\.(?:com|fr)\b +\bgotrekking\.(?:cl|org)\b +\bblogemarketing\.cl\b +\bwebandsmart\.c(?:l|om)\b +\beurovision\.gen\.tr\b +\bcardvdsupply\.com\b +\basiaing\.com\b +\blicensedpracticalnurselpn\.tk\b +\bpath\.to\b +\bphuket-relax\.com\b +\bimpotence\.at\.ua\b +\bshortsight\.at\.ua\b +\bbruise\.at\.ua\b +\ballergy\.at\.ua\b +\bglaucoma\.at\.ua\b +\bshigella\.at\.ua\b +\bascariasis\.at\.ua\b +\bmononucleosis\.at\.ua\b +\bencephalitis\.at\.ua\b +\brotavirus\.at\.ua\b +\bbronchiolitis\.at\.ua\b +\bcommoncold\.at\.ua\b +\bscarletfever\.at\.ua\b +\bcampylobacter\.at\.ua\b +\bconjunctivitis\.at\.ua\b +\bdiphtheria\.at\.ua\b +\bpertussis\.at\.ua\b +\bsalmonella\.at\.ua\b +\babueling\.com\b +\bhns-latest\.com\b +\bafroradio\.it\b +\bcar--tuning\.blogspot\.com\b +\bpuresuperaudio\.blogspot\.com\b +\bchrisyandek\.com\b +\bbnr\.cz\b +\blukashenk[ao]\.eu\b +\bucpb\.eu\b +\bsunion\.cat\b +\bjazz-radio\.110mb\.com\b +\bronchamp-fr\.com\b +\bangelsphynx\.com\b +\bpaypal\.com/.*mrb/pal=.*\b +\bz\.pe\b +\bhiphopalemi\.net\b +\bbearing\.co\.il\b +\bmobilya\.us\b +\bsummercity\.ru\b +\bbuylive\.ru\b +\brestown\.ru\b +\bkleiber\.blog\.bg\b +\bexcel4audit\.wordpress\.com\b +\blogin\.livesss\.idoo\.com\b +\bjazzgall3\.com\b +\bnapredvosa\.com\b +\ballparisguide\.com\b +\bopen-bank-account\.com\b +\bclipmarks\.com\b +\btifaenlared\.com\b +\byoga\.theholisticcare\.com\b +\bvacacionesbulgaria\.com\b +\bhp(6102|2550|6061|6125|6127|6185|6310|6325|6349)\.ru\b +\bacer(7320|7220|9301)\.ru\b +\badjix\.com\b +\b123redirect\.com\b +\besnips\.com/user/zhoroscop\b +\bword\.web\.tr\b +\breverent\.org\b +\bdofuskamas4u\.com\b +\blurl\.me\b +\bpbguide\.com\b +\bli2\.me\b +\blynk2\.me\b +\bpapagiovanni\.com\b +\blynk2\.(?:net|us)\b +\bl2m\.us\b +\bl2u\.(?:me|us)\b +\bly2\.us\b +\blynk2\.com\b +\bprivat-sex\.info\b +\bfickporno\.com\b +\bto\.ly\b +\brodbeckstrom\.(?:net|org|info)\b +\balgravio007\.blogspot\.com\b +\bediturl\.com\b +\byabancidilkitap\.com\b +\bamclicks\.com\b +\btotalreal\.com\b +\bfstage\.com\b +\badire\.jp\b +\bcatwebsite\.org\b +\balizee2\.zforum\.biz\b +\binmassage\.net\b +\bcarloscevola\.com\b +\bafrikaans\.free\.fr\b +\balsacien\.alsatian\.free\.fr\b +\barabe\.arabic\.free\.fr\b +\barabic\.images\.free\.fr\b +\bbelarusian\.free\.fr\b +\bbasque\.euskara\.free\.fr\b +\bbulgare\.bulgarian\.free\.fr\b +\bcatala\.catalan\.free\.fr\b +\bchinois\.chinese\.free\.fr\b +\bczech\.tcheque\.free\.fr\b +\bdanish\.dansk\.danois\.free\.fr\b +\bfinnish\.suomi\.free\.fr\b +\bfrench\.france\.free\.fr\b +\bgalician\.galego\.free\.fr\b +\bgerman\.deutsch\.free\.fr\b +\bgrec\.greek\.free\.fr\b +\bhebrew\.images\.free\.fr\b +\bicelandic\.islandais\.free\.fr\b +\bjaponais\.japanese\.free\.fr\b +\bkorean\.coreen\.free\.fr\b +\bmagyar\.hungarian\.free\.fr\b +\bmalagasy\.malgache\.free\.fr\b +\bneerlandais\.dutch\.free\.fr\b +\bnorwegian\.norsk\.free\.fr\b +\bpolish\.polski\.free\.fr\b +\bportuguese\.portugais\.free\.fr\b +\brussian\.images\.free\.fr\b +\bsenegal\.wolof\.free\.fr\b +\bslovak\.slovencina\.free\.fr\b +\bslovenski\.slovenian\.free\.fr\b +\bsuedois\.swedish\.free\.fr\b +\bukraine\.audio\.free\.fr\b +\bvietnam\.viet\.free\.fr\b +\bamharic\.ethiopien\.free\.fr\b +\bbahasa\.indonesia\.free\.fr\b +\bchti\.picard\.free\.fr\b +\bcongo\.lingala\.free\.fr\b +\bcopte\.coptic\.free\.fr\b +\bcorse\.corsican\.free\.fr\b +\bcroatian\.hrvatski\.free\.fr\b +\benglish\.anglais\.free\.fr\b +\bespagnol\.spanish\.free\.fr\b +\bestonian\.eesti\.free\.fr\b +\bfilipino\.tagalog\.free\.fr\b +\bindia\.hindi\.free\.fr\b +\binuit\.inuktitut\.free\.fr\b +\bkurde\.kurdi\.kurdish\.free\.fr\b +\blao\.laotian\.free\.fr\b +\blatvian\.letton\.free\.fr\b +\blithuanian\.lituanien\.free\.fr\b +\bmalti\.maltese\.free\.fr\b +\bmongol\.mongolian\.free\.fr\b +\bpashto\.pachtoun\.free\.fr\b +\bromanian\.roumain\.free\.fr\b +\bserbian\.srpski\.serbe\.free\.fr\b +\btamil\.tamoul\.free\.fr\b +\bthai\.thailandais\.free\.fr\b +\burdu\.ourdou\.free\.fr\b +\bzulu\.zoulou\.free\.fr\b +\bhidanime\.comli\.com\b +\bdenizmuzeleri\.tsk\.tr\b +\bjordandi\.com\b +\bedhardybazar\.co\.uk\b +\btiffanyhot\.com\b +\buggsky\.co\.uk\b +\bnikempire\.com\b +\bup2ugg\.com\b +\btiffanyou\.com\b +\blnk\.ms\b +\btinyurl\.ru\b +\btiny9\.com\b +\b1lnk\.net\b +\bmicrourl\.ru\b +\bf1ru\.net\b +\bgo2cut\.com\b +\bbesplatne-slike\.net\b +\bcheaped\.ru\b +\brokutaki\.ru\b +\bchatlaak\.com\b +\bodessahotels\.ru\b +\bodecca\.ru\b +\baiongoldbuynow\.com\b +\baionkinasale\.com\b +\baiononline\.us\.com\b +\barchlord(?:golds|money)\.com\b +\batlantica(?:moeny|money|shop)\.com\b +\bbuy-runescape\.net\b +\bbuy(?:aion|aoc|cabal|lotro|sro|zeny)\.com\b +\bcabal(?:gold|money)\.com\b +\beveisk(?:hq|store)\.com\b +\bffgil\.com\b +\bgoldwarhammer\.com\b +\bgwgolds\.com\b +\blotro(?:money|shop)\.com\b +\bmesosmaple\.com\b +\bmmo(?:bread|fisher)\.com\b +\bmyaionkina\.com\b +\bmyffxigil\.com\b +\bmymaplemesos\.com\b +\bmyrosezuly\.com\b +\bmywowgoldshop\.com\b +\bromgold\.com\b +\brozenyshop\.com\b +\brs007\.com\b +\bsilkroad(?:golds|money)\.com\b +\bwarhammer007\.com\b +\bwowgoldbuynow\.com\b +\bdownapp1\.com\b +\btheclickbux\.exofire\.net\b +\blistenarabic\.com\b +\bmusique-arabe\.net\b +\bhamms9\.com\b +\bzirzir\.net\b +\bfilmizlefilm\.net\b +\byerlifilmizle\.com\b +\bvizyonfilmizle\.net\b +\bvielfliegerforum\.de\b +\bvornesitzen\.de\b +\bso-war-mein-flug\.de\b +\bw3-translations\.de\b +\bubema\.(?:de|eu|com)\b +\bjonsay\.co\.uk\b +\bdachau\.com\b +\bdeconet\.com\b +\bbedlingtonduberry\.free\.fr\b +\brazmavar\.com\b +\bfreehobbysolutions\.com\b +\badamfakililar\.xm\.com\b +\bstarckinblog\.blogspot\.com\b +\bashley-greene\.ru\b +\bdigital\.am\b +\bcrea\.web\.tr\b +\bjahorinalive\.net\b +\bafricapoverty\.org\b +\berepublik\.com.*?/referrer\b +\bpluscep\.com\b +\bzeindex\.com\b +\bnikesoso\.com\b +\bprosolutionpills\.com\b +\bvigrxplus\.com\b +\btarot\.cc\b +\bfalkolik\.com\b +\btozmaskesi\.com\b +\bresidency-database\.helmsic\.gr\b +\bexploremyasean\.com\b +\bbuxwiz\.com\b +\bneobux\.com\b +\bmyfreeshares\.com\b +\bjillsclickcorner\.com\b +\bmilkywayclicks\.com\b +\bowensclickplace\.com\b +\borangebizs\.com\b +\brosebizs\.com\b +\bworldwide-cash\.net\b +\b70cents\.net\b +\bgptoffers\.com\b +\bgptreasure\.com\b +\blibertyreserve\.com\b +\bway\.com\b +\b1skip\.com\b +\bclck\.ru\b +\bfoo9\.net\b +\bplaybonuscasino\.com\b +\bproakvariumy\.ru\b +\bponyurl\.com\b +\b9\.gp\b +\bpornstarglobal\.com\b +\bdeathgleaner\.wordpress\.com\b +\bport-arthur\.ucoz\.ru\b +\b123ahp\.com\b +\b3\.ly\b +\buggsme\.com\b +\brs2box\.com\b +\btwi\.cc\b +\bmatrikon(?:(?:analytics|opc)?\.com|opc\.de)\b +\bopctraining\.com\b +\bopcsupport\.com\b +\btunisia\.com\b +\bmoneyandmarkets\.com\b +\buncommonwisdomdaily\.com\b +\binvestwithanedge\.com\b +\bdentalinsurancecare\.com\b +\bnoclaimsdiscount\.co\.uk\b +\bgoodtherapy\.org\b +\bsunglassesuk\.com\b +\bgrayboxx\.com\b +\bsupergreenme\.com\b +\binctime\.com\b +\bweb4desi\.com\b +\bcru\.ms\b +\bhouellebecq\.webpark\.pl\b +\bmediumurl\.com\b +\bShorty\.im\b +\b58msg\.cn\b +\bmsplinks\.com\b +\balgarvedigital\.pt\b +\balgarve\.com\.pt\b +\bobservatoriodoalgarve\.com\b +\bvisitalgarve\.pt\b +\balgarve\.fm\b +\bforum\.astroempires\.com\b +\bccr-alg\.pt\b +\bnicopon\.com\b +\b101\.gs\b +\bcli\.gs\b +economy-point\.org +\bbankers-telenet\.com\b +\bdr\.tl\b +\bwikireality\.ru\b +\bdecopedia\.com\b +\bp\.ly\b +\btutorialspoint\.com\b +lexikon\.calsky\.com +\bresearch-service\.com\b +\bessaymill\.com\b +\bbestessays\.com\.au\b +\bcollege-paper\.org\b +\bsuperiorpapers\.com\b +\bbestdissert(?:ion\.org|ation\.com)\b +\btradult\.com\b +\bj\.mp\b +\b00r\.ru\b +\bburnurl\.com\b +\bgolfvillasinbelek\.com\b +\b51jh6\.com\b +\baskgeo\.org\b +\bluxor-lozenets\.com\b +\bvk\.com\b +\bsantatelevision\.com\b +\bjoulupukki\.fi\b +\bpaintingdb\.com\b +\bnaj-obchody\.sk\b +\bporsemprefloripa\.com\b +\bedicionesgondo\.com\b +\bafghanshow\.com\b +\badanaotokiralama\.net\b +\bparaworld\.tk\b +\bakdenizbook\.com\b +\bbeer-pedia\.com\b +\bsetupmyfreeblastoffaccount\.com\b +\bwikidirect\.freehostia\.com\b +\bboriken\.info\b +\bconceptcar\.ee\b +\bhotchkiss\.eu\b +\bmyuggsonshop\.com\b +\bmyuggs\.org\b +\buggs(?:bootsshoes|forcheap)\.com\b +\bparislikeaparisian\.net\b +\bthegazette-brasil\.webs\.com\b +\bthewordmodules\.com\b +\bsmsgol\.com\b +\bmillivanilli-bio\.narod\.ru\b +\bsrsportinguista\.blogspot\.com\b +\bnanoyou\.eu\b +\bstuffbyed\.com\b +\bbyst\.ro\b +\bservis34\.com\b +\barizavar\.(net|com)\b +\btravestinet\.(net|com)\b +\bislamievlilikler\.net\b +\barabaoyunlari60\.com\b +\bcasusbocek\.com\b +\btelefonkayitsistemi\.com\b +\beniyiilaclama\.com\b +\bopcti\.com\b +\bopcgroup\.com\b +\be-republik\.net\.ms\b +\bi-q-t-e-s-t\.com\b +\bholidaytours\.in\.th\b +\bnytimes\.com/2009/10/26/opinion/26iht-edban\.html\b +\bcyclingforall\.net\b +\bradiomakedonia\.ro\b +\barmanameatv\.com\b +\bscriptureearth\.org\b +\bmoldovarious\.com\b +\bbiodiesel(?:plants)?\.com\.ar\b +\bmeszarosmarton\.wordpress\.com\b +\blinkak\.com\b +\bsportamericani\.it\b +\bwinemaker\.com\.tw\b +\bow\.ly\b +\bgooglehammer\.com\b +\bto-url\.ru\b +\bvisitrovaniemi\.fi\b +\bgatosphynx\.com\b +\bsmila\.org\.ua\b +\brazboifilatelic\.blogspot\.com\b +\b1u\.ro\b +\b1url\.com\b +\b2pl\.us\b +\b2tu\.us\b +\ba\.gg\b +\ba\.nf\b +\ba2a\.me\b +\batu\.ca\b +\bawe\.sm\b +\bbacn\.me\b +\bbkite\.com\b +\bblippr\.com\b +\bbloat\.me\b +\bbt\.io\b +\bbudurl\.com\b +\bc\.shamekh\.ws\b +\bcd4\.me\b +\bchilp\.it\b +\bchs\.mx\b +\bclickthru\.ca\b +\bcort\.as\b +\bcuturl\.com\b +\bdecenturl\.com\b +\bdf9\.net\b +\bee[pz]url\.com\b +\bewerl\.com\b +\bfa\.by\b +\bfav\.me\b +\bff\.im\b +\bfhurl\.com\b +\bflic\.kr\b +\bflq\.us\b +\bfly2\.ws\b +\bfwd4\.me\b +\bgl\.am\b +\bgo\.9nl\.com\b +\bgo2\.me\b +\bgolmao\.com\b +\bgoshrink\.com\b +\bgri\.ms\b +\bgurl\.es\b +\bhellotxt\.com\b +\bhex\.io\b +\bhref\.in\b +\bhtxt\.it\b +\bhurl\.ws\b +\bicio\.us\b +\bidek\.net\b +\bito\.mx\b +\bjijr\.com\b +\bkissa\.be\b +\bkl\.am\b +\bkorta\.nu\b +\bl9k\.net\b +\bliip\.to\b +\bliltext\.com\b +\blin\.cr\b +\bliurl\.cn\b +\bln-s\.ru\b +\blnkurl\.com\b +\bloopt\.us\b +\blru\.jp\b +\blt\.tl\b +\blurl\.no\b +\bminilien\.com\b +\bminiurl\.com\b +\bminurl\.fr\b +\bmyurl\.in\b +\bncane\.com\b +\bnetnet\.me\b +\bnn\.nf\b +\bo-x\.fr\b +\bofl\.me\b +\bomf\.gd\b +\boxyz\.info\b +\bp8g\.tw\b +\bparv\.us\b +\bpic\.gd\b +\bping\.fm\b +\bplurl\.me\b +\bpnt\.me\b +\bpoll\.fm\b +\bpop\.ly\b +\bpoprl\.com\b +\bpost\.ly\b +\bposted\.at\b +\bptiturl\.com\b +\bqurlyq\.com\b +\brb6\.me\b +\breadthis\.ca\b +\bredirects\.ca\b +\bredirx\.com\b +\brelyt\.us\b +\bretwt\.me\b +\bri\.ms\b +\brly\.cc\b +\brsmonkey\.com\b +\brurl\.org\b +\bs3nt\.com\b +\bs7y\.us\b +\bshort\.(?:ie|to)\b +\bshortna\.me\b +\bshoturl\.us\b +\bshrinkster\.com\b +\bshrinkurl\.us\b +\bshrtl\.com\b +\bshw\.me\b +\bsimurl\.(?:net|org|us)\b +\bsn\.(?:im|vc)\b +\bsnipr\.com\b +\bsp2\.ro\b +\bspedr\.com\b +\bst(?:art|ick)url\.com\b +\bsu\.pr\b +\btakemyfile\.com\b +\btcrn\.ch\b +\bthrdl\.es\b +\btiny\.pl\b +\btinytw\.it\b +\btl\.gd\b +\btnw\.to\b +\btogoto\.us\b +\btr\.my\b +\btrcb\.me\b +\btw[0125689]\.us\b +\btwi\.gy\b +\btwit\.ac\b +\btwit(?:zap\.com|this\.com|url\.de)\b +\btwtr\.us\b +\bu\.mavrev\.com\b +\bu\.nu\b +\bub0\.cc\b +\bupdating\.me\b +\burl\.co\.uk\b +\burl\.inc-x\.eu\b +\burl4\.eu\b +\burl(?:borg|brief|hawk|kiss)\.com\b +\burlvi\.be\b +\burlx\.ie\b +\buservoice\.com\b +\bustre\.am\b +\bvl\.am\b +\bwa9\.la\b +\bwipi\.es\b +\bwp\.me\b +\bx\.hypem\.com\b +\bx\.se\b +\bxrl\.in\b +\bxzb\.cc\b +\bzi\.pe\b +\bzz\.gd\b +\bbestessays\.ca\b +\bbestessays\.com(\.au|\.au\.com)?\b +\bbesttermpaper\.com\b +\bcustom-essaywriting\.blogspot\.com\b +\baki-kaurismaki\.ru\b +\bmiss-cinnamon\.over-blog\.com\b +\bsolarelectricity\.weebly\.com\b +\btranslation-blog\.trustedtranslations\.com\b +\brock-fotos\.de\b +\bbluesfotos\.de\b +\bshc\.residentevilcenter\.net\b +\blapshins\.com\b +\bkob\.tj\b +\b021caipiao\.com\b +\bre-shui\.cn\b +\bbangong-jiaju\.com\b +\bguohaojuanlianmen\.cn\b +\bkong-tiao\.com\.cn\b +\b021-hf\.com\.cn\b +\bsh-jimei\.com\b +\bshzjs56\.cn\b +\bhywuliu56\.cn\b +\bshanghaibaojie\.net\b +\bjunyi56\.com\b +\bshzhongtiekuaiyun\.cn\b +\bshanghaizhongtie\.cn\b +\bshcl56\.com\.cn\b +\bshdbwlgs\.cn\b +\bboompm\.com\b +\bshhlkj\.com\.cn\b +\bwei-xiu\.org\.cn\b +\bweixiu818\.cn\b +\bshhuajun\.cn\b +\b114gf\.com\b +\bjsjuanlianmen\.cn\b +\bbianyaqichang\.cn\b +\bqi-che-zu-lin\.cn\b +\bkongtiaoweixiu6\.cn\b +\bi-courses\.org\b +\bnucleosantiago\.blogspot\.com\b +\bdarknesspirates\.es\.tl\b +\blomboklinks\.com\b +\bcorallocammeitorredelgreco\.jimdo\.com\b +\bthegazette-brasil\.tk\b +\btorredelgreco\.jimdo\.com\b +\bparconazionaledelvesuvio\.jimdo\.com\b +\bvesuvio\.jimdo\.com\b +\bercolano\.jimdo\.com\b +\bcampania\.jimdo\.com\b +\bportici\.jimdo\.com\b +\bstudyguide\.com\.vn\b +\boh-barcelona\.com\b +\bphuket\.us\.com\b +\blandser\.org\.ua\b +\batasozlerianlamlari\.com\b +\btrakyauniversitesi\.com\b +\bkitzur\.com\b +\bktzr\.us\b +\bitaliaans-ijs\.com\b +\brus-on-line\.ru\b +\bvilshanka\.org\.ua\b +\bgratisweb\.com\b +\bxlurl\.de +\bpromotionalmodels\.com\b +\babqo\.com\b +\bneilsonrabelo\.blogspot\.com\b +\bpawel72\.republika\.pl\b +\bpd\.am\b +\blnk\.ly\b +\bopcae\.com\b +\bexcelreporter\.com\b +\bopcuasupport\.com\b +\bopcworkshops\.com\b +\bmatrikonopc\.(?:cn|es)\b +\bonline-betting\.me\.uk\b +\bsoccerbetting\.info\b +\bwettbasis\.com\b +\bapuestas-deportivas\.es\b +\bfussballwetten-tipps\.de\b +\bnitelusa\.com\b +\bindex\.com\.pe\b +\bsocuteurl\.com\b +\bto\.net\b +\bgoo\.gl\b +\bfunurl\.com\b +\brihannanow\.fr\.cr\b +\bairsoft-cube\.com\b +\bcasino\.ru\b +\bcheaplvsale\.com\b +\b(pokerodds|slotstyle|casinotown|pokermagic|casinoroulette|roulette4you\.by)\.ru\b +\bcasino-all\.info\b +\bpeoplesprimary\.com\b +\bmylvshow\.com\b +\bpillandia\.blogspot\.com\b +\bbizztripbriefing\.com\b +\buggsbank\.com\b +\bbizkickz\.com\b +\baerobaticteam(?:s\.free.bg|s\.110mb.com|\.blogspot.com)\b +\bpendek\.in\b +\binnocentric\.blogspot\.com\b +\bchicasperuanas\.com\b + bsap-exp\.com\b +\barthritis-library\.com\b +\bmesothelioma-informations\.org\b +\bmysapsd\.com\b +\ballsapsolution\.com\b +\bsap2you\.blogspot\.com\b +\bdarknetvpn\.com\b +\bvpntunnel\.se\b +\burlpass\.com\b +\bdoyouneedvisa\.com\b +\burlalacon\.com\b +\buggbootszone\.info\b +\bturl\.ca\b +\burlal\.com\b +\bmuseomagazine\.com\b +\bamerigovespucci-theboat\.com\b +\bshrt\.st\b +\bredir\.ec\b +\bmerky\.de\b +\bomani\.ac\b +\bstomatology\.zp\.ua\b +\bdartsforum\.ru\b +\buggs4cheap\.com\b +\bextremesmartproducts\.com\b +\bviviennewestwoodsale\.com\b +\btomblands-fr\.blogspot\.com\b +\bdiscussionshome\.com\b +\bafricacupofnationshighlights\.blogspot\.com\b +\bwiki-links\.org\b +\bwhatis\.wikidot\.com\b +\bmoladi\.net\b +\bbestessay\.net\b +\bimelda-staunton\.es\.tl\b +\bonline\.titancasino\.com\b +\bsltcfi\.com\b +\brevedesign\.com\b +\bidentitypi\.com\b +\binstatest\.com\b +\brapidtest\.com\b +\bparvizshahbazi\.com\b +\bautocondenserstore\.com\b +\bsilverimagestudios\.com\b +\b714dentist\.com\b +\bkhamagmongol\.com\b +\bhamagmongol\.narod\.ru\b +\bbumbinorum\.ru\b +\bbumbinorum\.com\b +\bmandal\.ca\b +\bantandrus\.tripod\.com\b +\bmikemontalbanowebtv\.webs\.com\b +\bwebtvmikemontalbano\.webs\.com\b +\bncis80048436282250\.webs\.com\b +\bbones80048436282250\.webs\.com\b +\bteennick80048436282250\.webs\.com\b +\bcharmed80048436282250\.webs\.com\b +\bangel80048436282250\.webs\.com\b +\bbuffy80048436282250\.webs\.com\b +\bgetlang\.com\b +\bmedicana(?:life|tv)\.com\b +\blifesyrup\.com\b +\bmedicalvideos\.eu\b +\bjuzztv\.com\b +\bboutiqueandsmallhotels\.com\b +\bboutiqueluxuryhotelsofworld\.com\b +\balwaystravel\.tv\b +\bminimax\.ir\b +\byojen\.com\b +\brosecoaudit\.ru\b +\bthewall\.de\b +\bradiosanmiguelfm\.blogspot\.com\b +\bedithgonzalezit\.altervista\.org\b +\bb2b-c(?:b\.com|lub\.ru)\b +\bedithgonzalezclubinternacional\.es\.tl\b +\binfonu\.nl\b +\btranslator-club\.com\b +\bpecunia-cash\.com\b +\bkronikler\.com\b +\bdadra\.ru\b +\bpolimore\.com\b +\bandecor\.ru\b +\bproto-pic\.com\b +\bwslibrary\.net\b +\beng\.exchangecards\.ru\b +\bbahchisaray\.org\.ua\b +\bniggaflip\.com\b +\bshareflare\.net/download/5991\.58cef4b9f396bae48f6ff3cd5/youtube_downloader_3\.59\.rar\.html\b +\bjustuggboot\.com\b +\bmyuggsale\.com\b +\bwebuggshoes\.com\b +\bvndic\.net\b +\blupeloidigmailcom\.blogspot\.com\b +\bbud-tech\.ru\b +\bcarvings\.org\.ua\b +\bweb-vector-image\.net\b +\bde-regalo\.com\b +\bagffan\.dk\b +\bfolkblog\.in\.ua\b +\busenetforyou\.com\b +\ballbeachtennis\.com\b +\bmandelbrot\.sellit\.pl\b +\bna-ozero\.ru\b +\bbest-medshop\.com\b +\byy\.vc\b +\btamazight\.forumactif\.com\b +\bsocionic\.qsh\.eu\b +\badultwiki\.net\b +\bfuturamahd\.ru\b +\bcitirpartnerim\.com\b +\bescorttr\.com\b +\bredtubetr\.com\b +\badultforumxtr\.com\b +\batesburda\.com\b +\batesbasti\.net\b +\burloid\.com\b +\boomphfan\.com\b +\bbiorhythm-calculator\.net\b +\bamazing-cheryl\.new\.fr\b +\baltritaliani\.net\b +\barmavia\.org\b +\bclipproject\.info\b +\bwikipediahatescheerleaders\.blogspot\.com\b +\bthearcademagazine\.org\b +\btt-group\.net\b +\brankingoficialuruguay\.blogspot\.com\b +\bbuscabairro\.com\.br\b +\bnvros\.ru\b +\bterm-paper-research\.com\b +\bessayontime\.com\b +\banypapers\.com\b +\bessaywriters\.net\b +\brushessay\.com\b +\bmightystudents\.com\b +\bessaydot\.com\b +\bonline-sport-betting\.org\b +\bslots-machines-online\.net\b +\bbestessay\.org\b +\bbesttermpaper(?:\.org|s\.net)\b +\bresumesplanet\.com\b +\bterm-paper\.biz\b +\bimagesfreehost\.com\b +\bmaxiocio\.net\b +\bcerezasladulce\.com\b +\bpregnantcornbread\.com\b +\balternativaproletaria\.wordpress\.com\b +\btowerdefence\.be\b +\basturiasenimagenes\.com\b +\bbilet-kiev\.narod\.ru\b +\bautorepairinmesa\.com\b +\bshadyurl\.com\b +\b5z8\.info\b +\balice\.3dn\.ru\b +\balbano-romina\.narod\.ru\b +\bongdarolha\.webnode\.com\.pt\b +\bpsalmtours\.com\b +\bstresa\.com\b +\bbaseavalancha\.mforos\.com\b +\bmybbgrup\.com\b +\boskemen\.info\b +\bportopino\.eu\b +\broxelana\.hostel\.com\b +\bbilboard\.com\b +\bpillmedical\.com\b +\bcode-saturne\.blogspot\.com\b +\bbudgetlandscapes\.co\.uk\b +\bregim-hotelier\.com\b +\bbeetours\.com\b +\bbudgetgardening\.co\.uk\b +\bgsxr\.es\b +\bc2kb\.com\b +\bhentaitoonami\.com\b +\bpartytrip\.fr\b +\bmeigalicia\.com\b +\bblconsulting\.com\.hk\b +\buigres87\.net\b +\bbuystarcraft2today\.com\b +\b12mesyatcev\.ru\b +\bchapadadosveadeiros\.com\b +\btheolivebranch\.net\b +\brodreamers\.es\b +\bkarelgott\.tv\b +\bkomputersaya\.com\b +\bweb20\.su\b +\bdeloeiletdelamain\.hautetfort\.com\b +\btkd-spirit\.com\b +\bteutoburgo\.web44\.net\b +\bsurf\.to\b +\bbiogas\.vn\.ua\b +\bromania-vacations\.com\b +\bsiver\.org\.ua\b +\bdragon-fruit\.biz\b +\bazov\.zp\.ua\b +\beldespertardelmusico\.blogspot\.com\b +\bauditionrich\.com\b +\bkanchanaburi-info\.com\b +\bmatavisen\.no\b +\bfairytalearchive\.com\b +\bmikiurl\.com\b +\bixiz\.net\b +\byrmz\.com\b +\blimametro\.blogspot\.com\b +\bleo-fl\.hit\.bg\b +\bserfinaz\.com/p\b +\b7les\.com\b +\bforum42\.ru\b +\bhukukiktisatforumu\.net\b +\bmksoley\.com\b +\bsoley\.cn\b +\bseawaterfarming\.com\b +\balgaecollection\.com\b +\bdeprem\.tv\b +\bmankenlik\.com\b +\balgaecenter\.com\b +\bphycocyanin\.in\b +\bmicroalgae\.ca\b +\bsoleymedikal\.com.tr\b +\bmicroalgaeoil\.net\b +\bcomapfa\.com\b +\bsoley\.edu\.ms\b +\balgaeinstitute\.com\b +\bphycobilin\.net\b +\bsoso\.bz\b +\bugg(?:bootsuk\.org|sboot\.de)\b +\bgouggs\.com\b +\bgematrix\.org +camica\.netfirms\.com/gematria/ +\btrancepodium\.com\b +\btraveltibetguide\.com\b +\bveoseries\.tv\b +\bawesomegrow\.org\b +\bblcremationsystems\.com\b +\bsuper-alizee\.de\b +\bsandsoftime\.ws\b +\bqualified-audit-partners\.be\b +\bmegashare\.com\b +\bchinesepaladin3\.windy-goddess\.net\b +\bwillysjeep\.com\b +\bhelpjaycee\.blogspot\.com\b +\bheyrheyr\.is\b +\binfogradina\.ro\b +\bvivedeporte\.com\b +\brorysfriends\.com\b +\bmiamipeople\.ru\b +\bshareflare\.net\b +\bxepnya\.org\.ru\b +\bdeine-erfindung\.de\b +\bhamaka\.huu\.cz\b +\bkayzen\.az\b +\baromats\.info\b +\bmbtforcheap\.com\b +\bletrasjohnfrusciante\.wordpress\.com\b +\bthreelittlebirds\.pl\b +\bfcoe\.ru\b +\bdobrzenieccy\.pl\b +\b69\.64\.63\.153/redirect\.php\b +\bmedicanalife\.org\b +\bmedicanalife\.net\b +\bbelawela\.com\b +\bnsever\.org\.ua\b +\bordago-olite\.es\b +\bgsm-kharkov\.com\.ua\b +\bshotgunsolutionpaytodie\.blogspot\.com\b +\bayak\.org\b +\bexpresspol\.ru\b +\bqytetet\.org\b +\bmazdafreunde\.de\b +\bseslimola\.com\b +\b777slot\.at\.ua\b +\belizabethselwyn\.50webs\.com\b +\bguard-soft\.com\b +\bbodybuildingrevealed\.com\b +\bservicescleans\.com\b +\bdie-bildersammlung\.de\b +\bdezboys\.com\b +\btravelkefalonia\.com\b +\bfree2g1c\.com\b +\btelefon-numarasi\.com\b +\bsapaninka\.com\b +\bpsi-test\.ru\b +\bamberabg\.com\b +\bmini-mag\.com\b +\bcacasubmarina\.com\b +\bprolocopasiandiprato\.org\b +\bmicrosoftproject\.su\b +\blagunavirtual\.com\b +\bleblancsamedresort\.com\b +\bkoninginnedagamsterdam\.nl\b +\bprime-time\.ru\b +\bsexinbucharest\.com\b +\bchinarollformingmachine\.com\b +\bspartadata\.com\b +\bavraidire\.eu\b +\bwebauditing\.org\b +\bpokemongamesnow\.com\b +\bstart\.com\.mt\b +\bdniprowazirka\.com\.ua\b +\bmilforum\.net\b +\bx1fm\.com\b +\bcandelariapuno\.pcriot\.com\b +\bkitdetox\.com\b +\borthomatic\.net\b +\bzizum\.com\b +\bti89\.com\b +\btorrentflux\.blogspot\.com\b +\bsmoking-calculator\.com\b +\bolympus-e420\.blogspot\.com\b +\bfuturama-opening-gags\.blogspot\.com\b +\bnerd-characteristics\.blogspot\.com\b +\bchangluncity\.blogspot\.com\b +\binternet-niche-marketing\.blogspot\.com\b +\badsense-skyline\.blogspot\.com\b +\bumusu\.com\b +\bflood\.tforums\.org\b +\biznikgifts\.com\b +\bsoweirdwebpageofficialsite\.blogspot\.com\b +\bairforcefansite\.com\b +\balabamafansite\.com\b +\bbyufansite\.com\b +\bboisestatefansite\.com\b +\bbostoncollegefansite\.com\b +\bcaliforniafansite\.com\b +\bgeorgiafansite\.com\b +\billinoisfansite\.com\b +\bindianafansite\.com\b +\biowafootballfansite\.com\b +\bjameselle\.com\b +\blsufansite\.com\b +\bmiamifansite\.com\b +\bmichiganfansite\.com\b +\bminnesotafansite\.com\b +\bnebraskafansite\.com\b +\bnflfootballfansite\.com\b +\bnotredamefansite\.com\b +\bohiostatefansite\.net\b +\boklahomafansite\.com\b +\boregonfansite\.com\b +\bpurduefansite\.com\b +\brutgersfansite\.com\b +\bsouthcarolinafansite\.com\b +\bsouthfloridafansite\.com\b +\btexasfansite\.com\b +\buclafansite\.com\b +\bvirginiatechfansite\.com\b +\bwisconsinfansite\.com\b +\bwellspringwatersystems\.com\b +\bdespertaibereanos\.blogspot\.com\b +\bsumasax\.es\b +\bibuy\.co\.th\b +\btodoliteratura\.es\b +\bpecaijeca\.coolpage\.biz\b +\bshowbol\.eu\b +\bmicroflex-services\.de\b +\belectronicmusicfree\.com\b +\bib-info\.com\b +\barizonacardinalsfansite\.com\b +\barizonafansite\.com\b +\barizonastatefansite\.com\b +\barkansasfansite\.com\b +\batlantafalconsfansite\.com\b +\bauburnfansite\.com\b +\bbaltimoreravensfansite\.com\b +\bbuffalobillsfansite\.com\b +\bcarolinapanthersfansite\.com\b +\bchicagobearsfansite\.com\b +\bcincinnatibengalsfansite\.com\b +\bclemsonfansite\.com\b +\bclevelandbrownsfansite\.com\b +\bcollegebasketballfansite\.com\b +\bcollegefootballfansite\.com\b +\bcollegefootblogs\.com\b +\bcoloradofansite\.com\b +\bdallascowboysfansite\.com\b +\bdenverbroncosfansite\.com\b +\bdetroitlionsfansite\.com\b +\bfloridafansite\.com\b +\bfloridastatefansite\.com\b +\bgeorgiatechfansite\.com\b +\bgreenbaypackersfansite\.com\b +\bhawaiifansite\.com\b +\bhoustontexansfansite\.com\b +\bindianapoliscoltsfansite\.com\b +\bjacksonvillejaguarsfansite\.com\b +\bkansascitychiefsfansite\.com\b +\bkansasfansite\.com\b +\bkentuckyfansite\.com\b +\bmajorleaguebaseballfansite\.com\b +\bmiamidolphinsfansite\.com\b +\bmichiganfootballfansite\.com\b +\bmichiganstatefansite\.net\b +\bminnesotavikingsfansite\.com\b +\bmississippifansite\.com\b +\bmissourifansite\.com\b +\bnbabasketballfansite\.com\b +\bnewenglandpatriotsfansite\.com\b +\bneworleanssaintsfansite\.com\b +\bnewyorkgiantsfansite\.com\b +\bnewyorkjetsfansite\.com\b +\bnhlfansite\.com\b +\bnorthcarolinafansite\.com\b +\boaklandraidersfansite\.com\b +\bpennstatefansite\.com\b +\bpgagolffansite\.com\b +\bphiladelphiaeaglesfansite\.com\b +\bpittsburghsteelersfansite\.com\b +\bsandiegochargersfansite\.com\b +\bsanfrancisco49ersfansite\.com\b +\bseattleseahawksfansite\.com\b +\bsportsfansitenetwork\.com\b +\bstlouisramsfansite\.com\b +\btampabaybuccaneersfansite\.com\b +\btennessee(?:titans)?fansite\.com\b +\buscfansite\.com\b +\bwashington(?:redskins)?fansite\.com\b +\bwestvirginiafansite\.com\b +\blaptopvsgadget\.blogspot\.com\b +\bjualbelipaypals\.blogspot\.com\b +\bardhie\.info\b +\bcatatansiboy(?:ii|iiiii?|1|onky)\.blogspot\.com\b +\bentretenidosycontrolados\.info\b +\bskiptest\.info\b +\bkristalkristalcinta\.blogspot\.com\b +\bpacarketinggalankereta\.blogspot\.com\b +\btaxijuga\.blogspot\.com\b +\bnamakujoeboy\.blogspot\.com\b +\bonkyapaartinyacinta\.blogspot\.com\b +\bavenged-sevenfold\.web\.id\b +\bmobilegamezone\.info\b +\bnyepakbola\.info\b +\bgioieditalia\.com\b +\bsicilia-by-divino\.com\b +\bumbria-by-divino\.com\b +\bpositano-by-divino\.com\b +\btuscany-by-divino\.com\b +\btuscany-travel\.blogspot\.com\b +\byourtuscanvilla\.com\b +\bholiday-apartment-tuscany\.net\b +\bturismo-toscana\.blogspot\.com\b +\bguia-sicilia\.blogspot\.com\b +\bernodaronline\.usersboard\.net\b +\bstarstube\.narod\.ru\b +\binsset\.u-picardie\.fr\b +\bfolk-craft\.com\b +\bnasyidparadise\.blogspot\.com\b +\bwelovecock\.com\b +\bnovportal\.ru\b +\bprettylittleliarsss\.webs\.com\b +\bplanestv\.com\b +\bapartamentosgomera\.com\b +\bhot-map\.com\b +\bamarun\.org\b +\bpegiovanni\.com\b +\btibiahelp\.com\b +\baerocardio\.com\b +\bdiabetia\.org\b +\bbakrecepten\.se\b +\bclassd\.com\.es\b +\bclassd.co\.uk\b +\battuariale\.com\b +\breactiq\.com\b +\belissacafe\.com\b +\bmailwriter\.com\b +\bnationaldebtclocks\.com\b +\b8americain\.org\b +\bbelote-ligne\.fr\b +\bbouillotte\.eboaz\.com\b +\bbrumisateurs\.eboaz\.com\b +\bchapka\.eboaz\.com\b +\bdamedepique\.eboaz\.com\b +\bdamedepique\.info\b +\bjeudebelote\.org\b +\bjeutarot\.org\b +\bparier-sport\.info\b +\bscommesse-sportive\.cc\b +\btypy-bukmacherskie\.com\.pl\b +\barequipainfo\.com\b +\barequipatravel\.com\b +\bcolca\.info\b +\bcotahuasicanyon\.com\b +\bdirectorioarequipa\.com\b +\bforosarequipa\.com\b +\binfocolca\.com\b +\bmollendo\.net\b +\btodoarequipa\.com\b +\blivercancer\.eu\b +\bhuaweie220\.(?:biz|com|info|net|org)\b +\bbt\.gd\b +\bthemysterymethod\.net\b +\bmysterypua\.net\b +\barea51lifestyle\.com\b +\bthegameneilstrauss\.com\b +\baesthetic-clinic-dombard-brussels\.com\b +\bfraserislandtours\.com\.au\b +\bgreatoceanroadtours\.com\b +\bbluemountaintours\.com\.au\b +\b4solarpanels\.com\b +\bvipskrip\.ru\b +\bamalfitancoast\.com\b +\bamigosdevillatuelda\.spaces\.live\.com\b +\binkoob\.com\/cruzroja\b +\bzentechnologies\.com\b +\bamishvyas\.com\b +\bticketstothemansion\.com\b +\bdefensivedrivingcompanyofamerica\.com\b +\btheaterseatstore\.com\b +\bvipnightlifetour\.com\b +\btripfilms\.com\b +\blearn-ukrainian\.org\.ua\b +\bprofessays\.com\b +\bwftpserver\.com\b +\bftprush\.com\b +\bseop\.com\b +\bsleepapneasymptoms\.info\b +\bvitaminefacts\.info\b +\bkidney-disease\.info\b +\bacidreflux-disease\.info\b +\bandroidlife\.net\b +\bandroid-tr\.com\b +\bandroiddestek\.com\b +\bmanofart\.com\b +\bharz-ferienwohnung-ferienhaus\.de\b +\bapparelus\.com\b +\baustralian-visa-info\.blogspot\.com\b +\baviationmodelworks\.com\b +\bbicolanobiron\.webs\.com\b +\bchildrenswonderland\.com\b +\bdiagnosticautomation\.com\b +\belegant-fashion-4men\.blogspot\.com\b +\bextreme-gamelist\.com\b +\bintelifi\.com\b +\bjustlabcoats\.com\b +\bkstinoco\.blogsome\.com\b +\bmens-suit\.blogspot\.com\b +\bmountmayon\.blogspot\.com\b +\bnationalvisas\.com\.au\b +\bpillsless\.com\b +\bplasticosfoundation\.org\b +\bprevawater101\.wordpress\.com\b +\bsupreme(?:autoparts|condensers|mirror)\.com\b +\bultimateautolights\.com\b +\bwholesaleappareldirect\.com\b +\blease-a-seo\.com\b +\bhebeigo\.com\b +\bnzjsw\.com\b +\balresim\.com\b +\btatuturkey\.net\b +\bmazidagim\.com\b +\baviacioncivil\.com\.ve\b +\bminoxidil\.gen\.tr\b +\bchatroulet\.gen\.tr\b +\bobouka\.ru\b +\bavrupabayrak\.com\b +\bbayrak\.tv\b +\baybayrak(?:-tr)?\.com\b +\bbayrakci\.biz\.tr\b +\bbayrak(?:imalati|resimleri|satisi)?\.gen\.tr\b +\bbayrak(?:ajans|evim|imalatcilari|line|nedir|satinal|satisi?|turk)\.com\b +\bdigitaltekstil\.com\b +\bdijitalbaski\.gen\.tr\b +\bizzetadar\.com\.tr\b +\bkibrisbayrak\.com\b +\bmarmarabayrak\.com\b +\bozelbayrak\.gen\.tr\b +\bturkbayragi\.gen\.tr\b +\bucuzbayrak\.com\b +\btheudaipurhotels\.com\b +\bcheappoolproducts\.com\b +\bovernightpools\.com\b +\bmyczechonline\.com\b +\bcostabrava-rentals\.co\.uk\b +\blocations-vacances-costabrava\.com\b +\bfinquesfrigola\.com\b +\bryanair-girona\.com\b +\bfilmfarsi\.blogfa\.com\b +\bkellyvogel\.com\b +\blindaolsson\.com\b +\btibbisuluk\.com\b +\bdoktorsuluk\.com\b +\bleechesturkey\.com\b +\basytekstil\.com\b +\besarpim\.com\.tr\b +\beskidjinakliyat\.com\b +\bfulminaksesuar\.com\b +\bmadalya(?:cilar|m)\.com\b +\bmasabayragi\.com\b +\bomergida\.com\b +\bsancakbayrak\.com\b +\bturkiyebayragi\.com\b +\bcountryguidebook\.com\b +\bluxury-delhi-hotels\.com\b +\bdeccanodysseytrain\.com\b +\bgoheritageindiajourneys\.com\b +\bgoldenchariot-train\.com\b +\bheritageindiajourneys\.com\b +\bindia-(?:buddhisttours|delhihotels|goldentriangletours|mumbaihotels|royalrajasthanonwheels)\.com\b +\bindianmaharaja-train\.com\b +\bmaharajaexpresstrain\.com\b +\bpalaceonwheels-train\.com\b +\broyaltrainsindia\.com\b +\btajmahaltours-india\.com\b +\breal-estate-ixtapa-zihuatanejo\.com\b +\bstarstube\.ru\b +\btheforceofreason\.blogspot\.com\b +\btefilot\.org\b +\basportsnews\.com\b +\bcicek(?:postasi|sepetiniz)\.com\b +\blatlongs\.com\b +\bjavplanet\.com\b +\butqweb\.com\b +\bpopoint\.free\.fr\b +\bpaylasimci\.org\b +\bsaveourseeker\.com\b +\bcarplugs\.com\b +\bmorrodesaopaulohotelpde\.com\.br\b +\bhoteles-en-cancun\.com\.mx\b +\blecollagiste\.com\b +\balbania4ever\.com\b +\byouflorence\.it\b +\bdissertationwritinghelp\.co\.uk\b +\bthewholesaleforums\.co\.uk\b +\balibabascam\.com\b +\bb2bfreezone\.com\b +\bcable-glossary\.blogspot\.com\b +\btradekey\.com\b +\brawalpindi\.city\.blogspot\.com\b +\bhatedenmark\.blogspot\.com\b +\beyecatchypics\.com\b +\bgreatnutri\.blogspot\.com\b +\brawalpindi(?:-islamabad\.blogspot|city\.wordpress)\.com\b +\bstarherb\.com\b +\bdoors-decorations\.blogspot\.com\b +\bequipment-machinery-information\.blogspot\.com\b +\brawalpindi-city\.blogspot\.com\b +\bfreewebs\.com/greatnutri\b +\bsauditrades\.com\b +\bsaudicommerce\.com\b +\bsuperiorthesis\.com\b +\bnaughtybunny\.co\.uk\b +\blotter\.pl\b +\b206\.225\.22\.48\b +\bbigbras-club\.com\b +\bkingoflotto\.com\b +\bciszewski\.com\b +\bbig-hooters\.net\b +\bhardcorecash\.net\b +\bannuaire-(?:lausanne|neuchatel)\.ch\b +\bbbwebmaster.com\b +\bfribourgnet.ch\b +\bgeneve-annuaire.ch\b +\bjurassiens.ch\b +\bsuisse-internet.com\b +\bvalaisannet.ch\b +\bweb-expert.ch\b +\bzurich-info.ch\b +\bchicagohajj\.com\b +\bdragonage-fan\.ru\b +\bwebhostingservices\.us\b +\baavsa\.com\b +\bmojeszamotuly\.com\b +\btotentanz\.nl\b +\bsalouholiday\.co\.uk\b +\bhelovescreampies\.com\b +\bhercreampies\.com\b +\bkidsvideoreviews\.com\b +\bkidsvideoreviews\.blogspot\.com\b +\bgenerico-del-viagra\.com\b +\bcasalemonferrato\.blogolandia\.it\b +\bserydarth\.wordpress\.com\b +\beugeneportfolio\.com\b +\bskepter\.com\b +\bpro-mesh\.net\b +\bnokia-articles\.ru\b +\bnokia-company\.ru\b +\bnokia-event\.ru\b +\bnokianews\.ru\b +\breceptssous\.ru\b +\btelefon-nokia\.ru\b +\bweb-hosings\.ru\b +\bmajesticthailand\.com\b +\bhard-wood\.net\b +\bhardwoodflooringinstallation\.net\b +\bfriendlybags\.com\b +\bbiodegradableplasticbags\.org\b +\broykellner\.com\b +\blandmarkgroup\.us\b +\beventplannerspain\.com\b +\bglamylooks\.com\b +\bccf-technologies\.com\b +\bftm-technologies\.com\b +\binfomedicos\.com\b +\binfoarquitectos\.com\b +\binfoabogados\.com\b +\binfoveterinarios\.com\b +\binfopsicologos\.com\b +\binfoingenieros\.com\b +\binfoeconomistas\.com\b +\binfodentistas\.com\b +\binfoinformaticos\.com\b +\bdzone\.com\b +\bsaletoo\.com\b +\bsalesid\.com\b +\bpanoraview\.com\b +\b118\.98\.171\.131\b +\banimefreak\.tv\b +\bapplicationessay\.net\b +\bbestdissertation\.net\b +\bbestdissertation\.org\b +\bbestessay\.com\b +\bbestessays\.0catch\.com\b +\bbestessays\.net\b +\bbestessays\.org\b +\bbestessaytips\.com\b +\bbesttermpaper\.net\b +\bbesttermpapers\.org\b +\bbraindumps\.com\.ua\b +\bcustom-essay\.net\b +\bcustom-writings\.net\b +\bcustomessays\.uvoweb\.net\b +\bessayplant\.com\b +\bessaysontime\.com\b +\bessaystore\.us\b +\bessaytodaycom\b +\bextension\.kiev\.ua\b +\bgambling-online-review\.com\b +\bgenuinepapers\.com\b +\bj-in\.org\.ua\b +\bkiev-home\.com\b +\bmydeco\.com\b +\bonline-casino-gaming\.org\b +\bonline-poker-spielen\.biz\b +\bpalace\.com\b +\bplay-poker-games\.com\b +\bpoker-rooms-review\.org\b +\bproessay\.com\b +\bresearch-paper\.us\b +\brushessay\.net\b +\brushessay\.org\b +\brushessays\.net\b +\brushessays\.org\b +\bsuperiorpaper\.net\b +\bsuperiorpaper\.org\b +\bsuperiorpapers\.net\b +\bsuperiorpapers\.org\b +\btermpaperscorner\.com\b +\btopwriter\.info\b +\bmargherita-caminita\.com\b +\b8bit-game\.ru\b +\babsurdko\.ru\b +\bbatfun\.ru\b +\bcomix-live\.ru\b +\bdn-fun\.ru\b +\bdoctoprav\.ru\b +\bgoretur\.ru\b +\bhotturism\.ru\b +\biscrubs\.ru\b +\bjapanese-girls\.ru\b +\bjourneyboy\.ru\b +\bmedelita\.ru\b +\bmedevil\.ru\b +\bmedobot\.ru\b +\bnedoleteli\.ru\b +\bonly-suicide-girls\.ru\b +\bpolsezann\.ru\b +\bprogylka\.ru\b +\brock-slovo\.ru\b +\bsh-ost\.ru\b +\bsweet-news\.ru\b +\bsweet-photo\.ru\b +\btarantino-ost\.ru\b +\btriton-tribe\.ru\b +\btrupoezdka\.ru\b +\bturzalet\.ru\b +\bwriters\.ph\b +\bsheetalaproductions\.hpage\.com\b +\bgsfinancial\.hpage\.com\b +\bsheetalasingh\.typepad\.com\b +\bgsfinancial\.in\b +\btotalscreenrecorder\.com\b +\ballspymonitor\.com\b +\bidevlite\.com\b +\bchesssoul\.com\b +\bsoftwarewikipedia\.com\b +\bgodswmobile\.com\b +\bchatixdating\.com\b +\bteensay\.com\b +\bteenssite\.co\.uk\b +\bteensay\.co\.uk\b +\bnitronet\.co\.uk\b +\bmsndisplaypics\.com\b +\bchatix\.co\.uk\b +\bfunnyden\.com\b +\bmyspace-icons\.com\b +\bmyspace-layouts\.com\b +\bmyspacehive\.com\b +\bfreechatrooms\.me\b +\bchatlinks\.co\.uk\b +\bmyspace-generators\.com\b +\bcelebrityrush\.com\b +\btvdrawing\.com\b +\btylervo\.com\b +\bcityofgoldenfriendship\.com\b +\bfonejacker\.eu\b +\bglastonbury2010\.info\b +\bgohaveaniceday\.com\b +\bkiller-content\.com\b +\bmayonvolcano\.net\b +\bmyspace\.com/markcalfe\b +\bmyspace\.com/realfonejacker\b +\bnurseshelp\.blogspot\.com\b +\bprofessional-essay-writer\.blogspot\.com\b +\bseopinay\.com\b +\bsmart-it-consulting\.com\b +\bsuperiorpapers\.co\.cc\b +\bthequarry\.net\b +\bwbbhost4u\.com\b +\bwebsitecopywriting\.wordpress\.com\b +\binfiniteseo\.co\.uk\b +\b123articledirectory\.com\b +\bajelv\.com\b +\barticlecabinet\.info\b +\bcomlabsoft\.com\b +\bgetmoretwitterfollowers\.info\b +\bglastonbury2009\.info\b +\blatestramblings\.com\b +\blinkwheel\.biz\b +\bonebillionpageviews\.org\b +\bre-tweet\.me\b +\btheoriginalarticle\.com\b +\bwikislam\.co\.uk\b +\bcvresumewriters\.com\b +\bessaywritingservices\.org\b +\bcustom-paper-writing\.com\b +\bcustom-essay-writing-service\.org\b +\bkitdetox\.com\b +\btobuybattery\.com\b +\bhardingsoft\.com\b +\bmyrecipesfood\.com\b +\bmy\.mail\.ru\/mail\/sexanimeshka\b +\bstar-tube\.narod\.ru\b +\bwa7\.ru\b +\bcelebritysextape\.narod\.ru\b +\bcelebritysextape\.narod2\.ru\b +\bberkovasex\.ru\b +\bsilvia-saint-club\.narod\.ru\b +\bberkovasex\.narod\.ru\b +\bitsbattery\.com\b +\breallifevampires\.info\b +\bsameurl\.com\b +\baustralianpolice\.org\b +\bfamousquotesfunnyquotes\.com\b +\b123greetings\.com\b +\bentrainbow\.com\b +\boddsnet\.com\b +\bcamfroger\.com\b +\balgherovacanze\.blogspot\.com\b +\bsom\.pt\b +\ballruspower\.narod\.ru\b +\bcasinotop5\.nl\b +\bgokkentotaal\.nl\b +\bonlineblackjackspelen\.nl\b +\bvakantiehuishindeloopen\.wordpress\.com\b +\bwebforumu\.com\b +\bregister\.web\.tr\b +\bmynet\.pro\b +\bvps\.web\.tr\b +\bkurtlarvadisi\.mobi\b +\bosym\.web\.tr\b +\bturkcell\.in\b +\bwordpress\.web\.tr\b +\bankara-nakliyat\.name\.tr\b +\bankara-nakliyeci\.net\b +\bankaranakliyeci\.net \b +\bankaraticaret\.org\b +\bcicekcim\.name\.tr\b +\bevden-eve-nakliyat\.name\.tr \b +\bevden-eve-nakliyeciler\.name\b +\bevdeneve\.name\.tr \b +\bevdenevenakliyeci\.name\b +\blazer-epilasyon\.name\.tr\b +\blazerepilasyon\.name\b +\bnakliyatfirmalari\.org\b +\bnakliyeevden\.info\b +\botoarackiralama\.com\b +\bsacekimmerkezi\.name\.tr\b +\btupbebegim\.org\b +\bmerchantos\.com\b +\bessaywriter\.co\.uk\b +\bukessaysadvice\.co\.uk\b +\bkiatan\.com\b +\bessaysource\.net\b +\bgexhost\.com\b +\bgexton\.com\b +\bahcorporation\.com\b +\bcustompapers4u\.net\b +\bmastersessay\.com\b +\benglish2urdutranslations\.com\b +\bnonplagiarizedessays\.co\.uk\b +\brealessaywriting\.com\b +\bmustuniversity\.com\b +\bunitransservice\.org\b +\bpariblog\.ro\b +\bessayonline\.net\b +\bbuybamboosheets\.com\b +\bcheats\.name\b +\bomnibet\.ro\b +\bsteroidsbuy\.com\b +\bfreebetsbonuscodes\.com\b +\bessay\.tv\b +\bs7\.gladiatus\.net\b +\btotalscreenrecorder\.com\b +\ballspymonitor\.com\b +\bidevlite\.com\b +\bchesssoul\.com\b +\bsoftwarewikipedia\.com\b +\bgodswmobile\.com\b +\bcomparemysql\.com\b +\bdigitalempireshop\.com\b +\brasim1\.com\b +\btopspeedup\.com\b +\bwingramo\.com\b +\ba1z3\.com\b +\baat\.teldap\.tw\b +\bcheapmarket\.com\b +\b2ued\.com\b +\b2unfl\.com\b +\b8mbs\.com\b +\babcd2you\.com\b +\badidashome\.com\b +\badidasshoesoutlet\.com\b +\bair-force-one\.com\b +\bair-maxshoes\.com\b +\bbuy-dunk\.com\b +\bcheap-nikeshox\.com\b +\bcheapjordansneaker\.com\b +\bcheapmaket\.com\b +\bcheapnikeairshoes\.com\b +\bdiscount-air-jordan\.com\b +\bdiscount-coach-outlet\.com\b +\bdiscount-louis-vuitton\.com\b +\bdvdboxset2you\.com\b +\bedunksb\.com\b +\beyourbiz\.com\b +\bghd2sale\.com\b +\bgucci-outlet-store\.com\b +\bmbt2y\.com\b +\bmlb\.jersey2you\.net\b +\bmywalkingtime\.com\b +\bnewnfljerseys\.com\b +\bnike-air-force-one\.com\b +\bnikemaxsale\.com\b +\bnikesneakers4u\.com\b +\bpiketrade\.com\b +\bsalenewbalance\.com\b +\bshoesook\.com\b +\bugg-boot-shoes\.net\b +\buggboots-shoes\.net\b +\buggbootstribal\.com\b +\bgoodgoodssell\.cn\b +\bmalappuraminfo\.com\b +\bmalappuram\.co\.in\b +\bsoft-techit\.com\b +\bencodeinfotech\.com\b +\bkerala-info\.com\b +\bagadir-airport\.com\b +\basturias-airport\.com\b +\bbodrum-airport\.com\b +\bibible\.mobi\b +\bmenorca-airport\.com\b +\bmenorca-airport\.com\b +\bpedrangular\.com\b +\breus-airport\.com\b +\bsevilla-airport\.com\b +\bzaragoza-airport\.com\b +\bessaysexperts\.com\b +\bhcc-ainshams\.com\b +\bperuvianairlines\.com\b +\bpezweon\.com\b +\bperuvianfood\.com\b +\bperujobs\.com\b +\balquilerenlima\.com\b +\bjuiciofujimori\.com\b +\blatinpropaganda\.com\b +\bsilvinadellafontana\.com\b +\bperuviantv\.com\b +\bpaginasweb\.com\.pe\b +\bkarendejo\.com\b +\bidea180\.com\b +\binternetwarrior\.com\b +\blatinpropaganda\.blogspot\.com\b +\bstar-signs\.org\b +\bdna-fingerprinting\.info\b +\bfacebooklayouts\.us\b +\bonlinesocialnetworkssite\.com\b +\bjusttopasstime\.net\b +\bvoip-phone-service-solutions\.com\b +\balarmasdeseguridad\.tv\b +\bcamarasdeseguridad\.net\b +\bcircuitocerradotelevision\.com\b +\bhiv-aids-help-desk\.com\b +\blatinamericantelemedicine\.com\b +\bmacelatinamerica\.com\b +\baffordablesecuritycameras\.com\b +\bbestipcameras\.com\b +\bcamaracctv\.com\b +\bcamaradecctv\.com\b +\bcamarascctv\.com\b +\bcamarascircuitocerradotelevision\.com\b +\bcamarasdecctv\.com\b +\bcamarasdecctv\.net\b +\bcamarasdecircuitocerrado\.com\b +\bcamarasdeseguridad\.info\b +\bcamarasdeseguridad\.tv\b +\bcamarasdeseguridadchinas\.com\b +\bcamarasdeseguridadporinternet\.com\b +\bcamarasdevigilancia\.info\b +\bcamarasdevigilancia\.org\b +\bcamarasdevigilancia\.us\b +\bcamarasdevigilanciaporinternet\.com\b +\bcamarasescondidas\.net\b +\bcamarasescondidas\.org\b +\bcamarasescondidas\.us\b +\bcamarasindiscretas\.org\b +\bcamarasseguridad\.info\b +\bcamarasseguridad\.net\b +\bcaptadoencamara\.com\b +\bcaptadoencamara\.tv\b +\bcctvargentina\.com\b +\bcctvbrazil\.com\b +\bcctvcatalogs\.com\b +\bcctvchile\.com\b +\bcctvcolombia\.com\b +\bcctvcostarica\.com\b +\bcctvgeovision\.com\b +\bcctvguatemala\.com\b +\bcctvinstalacion\.com\b +\bcctvinstaller\.info\b +\bcctvmexico\.com\b +\bcctvnews\.info\b +\bcctvpanama\.com\b +\bcctvpuertorico\.com\b +\bcctvrepublicadominicana\.com\b +\bcctvuruguay\.com\b +\bcctvvenezuela\.com\b +\bcircuitocerradotelevision\.com\b +\bcolombiacctv\.com\b +\bfree-voip-service\.com\b +\binstalaciondecamarasdeseguridad\.com\b +\binstalaciondecamarasdeseguridad\.info\b +\binstalaciondecamarasdeseguridad\.net\b +\blocalizadordevehiculos\.com\b +\bmonitoreo\.tv\b +\bmonitoreoelectronico\.com\b +\bperucctv\.com\b +\bsecuritycamerasmadeinchina\.com\b +\bseguridadelectronica\.info\b +\bsistemasdeseguridad\.tv\b +\bsouthfloridatelecom\.com\b +\bsouthfloridatelecom\.com\b +\btelemedicinedirectory\.org\b +\btelevigilancia\.org\b +\btelevigilancia\.us\b +\bventadecctv\.com\b +\bventadecctv\.info\b +\bventadecctv\.net\b +\bventadecctv\.org\b +\bvideosdeseguridad\.com\b +\bvideosdeseguridad\.tv\b +\bvideovigilanciaporinternet\.com\b +\bvigilanciaporinternet\.net\b +\bvigilanciaviainternet\.com\b +\bvigilatupropiedad\.com\b +\bvigilatupropiedad\.tv\b +\bvoice-over-internet-protocol\.com\b +\bvoip-call-center\.com\b +\bvoip-international\.com\b +\bvoip-softphones\.com\b +\bvoip-telefonia\.com\b +\bvoip-wholesale\.com\b +\bvoipserviceargentina\.com\b +\bvoipservicebrazil\.com\b +\bvoipservicechile\.com\b +\bvoipservicecolombia\.com\b +\bvoipservicemexico\.com\b +\bvoipservicepanama\.com\b +\bvoipservicevenezuela\.com\b +\bwholesaletermination\.com\b +\bandronmoscow\.livejournal\.com\b +\bukschoolsdirectory\.net\b +\bamerican-schools\.net\b +\bgubta\.com\b +\bcommence\.com\b +\bcommenceonline\.net\b +\bebusinessline\.com\b +\besupportline\.com\b +\bgodiscount\.us\b +\bmychristianheels\.com\b +\bmbtshoesupply\.com\b +\bjordanshoesebay\.com\b +\bmbtforcheap\.com\b +\b800millions\.com\b +\bcheapchloe\.com\b +\bmbtsale\.org\b +\bmbtshoesdiscount\.org\b +\bmbtmvp\.com\b +\bnikecoo\.com\b +\baaiatrade-cn\.com\b +\bbootsluxury\.com\b +\bfcnzz\.com\b +\bbagsclothing\.com\b +\brenzeba\.com\b +\bwholesale-cheap\.com\b +\bbesoso\.com\b +\buggcardy\.org\b +\bshoemkt\.com\b +\belectronics-store-china\.com\b +\bb2bjersey\.com\b +\bjerseyonsale\.com\b +\bdifferential-pressure-transmitter\.com\b +\bbt-embroidery\.com\b +\blkkreplicas\.com\b +\bclothes-wholesales\.com\b +\bmillennium1000\.net\b +\btohongkong\.cn\b +\bposhcraze\.info\b +\bshoemachine\.cc\b +\bheatsinks\.cc\b +\bgelinsoles\.cn\b +\bgoldspace\.cc\b +\bhonnypower\.com\b +\bleddisplays\.cn\b +\blasercuttingmachine\.cn\b +\bugglist\.com\b +\bmalljewelry\.com\b +\bmallrolex\.com\b +\bchina-usb\.cn\b +\blights-china\.com\b +\bshuangdan\.com\b +\btozc\.net\b +\baf-wholesale\.com\b +\bchangande\.com\.cn\b +\breplicawatchesmart\.com\b +\bsdhongda\.net\b +\bcameramarkets\.com\b +\bgolfclubs365\.com\b +\bc2cjersey\.com\b +\bglobalc2c\.com\b +\badidas-kids\.com\b +\bsf39\.com\b +\b2010nbajerseys\.com\b +\bchaussures-nike\.org\b +\bregistry-cleaner-guide\.com\b +\bstoptinnitustips\.com\b +\blg668\.com\b +\bcure-acne-tips\.com\b +\bstop-sweating-tips\.com\b +\bbuild-muscle-tips\.com\b +\bhypnosis-secret-tips\.com\b +\bfat-loss-secret-tips\.com\b +\blose-weight-secret\.com\b +\badazhe\.com\b +\bjietoumen\.com\b +\bsupplyedhardy\.com\b +\bafandhco\.com\b +\bcaclothingshop\.com\b +\bcoachor\.com\b +\bhollisterbest\.com\b +\bhollisterlife\.com\b +\bjerseysclubhouse\.com\b +\bjordankicksale\.com\b +\bjuicy4sale\.com\b +\bjuicydiscount\.com\b +\bjuicystoreuk\.com\b +\blacosteshoesforsale\.com\b +\bpick4shoes\.com\b +\bpickyournikes\.com\b +\bpiketrade\.com\b +\brackets4uk\.com\b +\bsupplyedhardy\.com\b +\btennisracketsbuy\.com\b +\bwonderfuljersey\.com\b +\b(?:4|best)vibram\.com\b +\b(?:ace|best|discount|nice|pick|sell|top|us-)vibramfivefingers\.com\b +\bbuyvibramshose\.com\b +\bcheapvibramshoes\.com\b +\b(?:fivefinger|my|sell|usa-|top)vibram\.com\b +\bvibram-(?:five-finger|fivefingerss|retailers|store)\.com\b +\bvibram(?:4u|5fingersshoes|eshop|fit|five-fingers|fivefingers(?:2sale|6|mall|usa|web)|fivesfingers|officialstore|s-fivefingers|salesmall|shoes(?:online|store|tores)|shoponline|sky|soutlet|store(?:online)?|web)\.com\b +\bvibram(?:fivefingers-outlet|sales)\.net\b +\baaaeluxury\.com\b +\baaagoods\.com\b +\balibabox\.com\b +\bbalmainboots\.com\b +\bbuy-vertu\.com\b +\bbymoncler\.com\b +\bemoncler\.com\b +\bemystique\.com\b +\bherve-leger(?:-skirts)?\.com\b +\bherve-leger\.(?:net|co\.uk)\b +\bherveleger(?:com|e|-?e?shop|net|sale|shops|web)\.com\b +\bhervelegeronsale\.net\b +\bherveleger(?:-?dresses|show)\.org\b +\bherveleger\.us\.com\b +\b(?:best|buy|e?shop-?|like|shopping)herveleger\.com\b +\bhiebay\.com\b +\bjimmychoocom\.com\b +\bladyitems\.com\b +\bmanoloblahnikcom\.com\b +\bmanoloblahnikretail\.com\b +\bmonclercom\.com\b +\bmonclerhome\.com\b +\bmonclerjacketstock\.com\b +\bmoncleronlinestore\.com\b +\bmonclershopping\.com\b +\bmywholesale-handbags\.com\b +\bpumpsmall\.com\b +\bqqtwo\.com\b +\bshoes\.vc\b +\buggnetshop\.com\b +\bvertuexclusiveshop\.com\b +\bvipwomenshop\.com\b +\bweddingdresscom\.com\b +\b21etop\.com\b +\baaaluxury\.org\b +\baaashow\.org\b +\bcen56569\.cn\b +\bcouponrolexwatches\.com\b +\breplicawatchesweb\.com\b +\bshabate\.com\b +\bshowbag\.org\b +\bwebtbl\.com\b +\bwrtshe\.com\b +\beshoppingluxury\.com\b +\bmbtpub\.com\b +\bmbtshoes-eu\.com\b +\buggsalon\.com\b +\b74\.86\.181\.245\b +\bchishopping\.com\b +\beshoppingluxury\.com\b +\bfeet-about\.com\b +\bmbt-shoes-(?:discount|wholesale)\.com\b +\bmbtantishoes-u[ks]\.com\b +\bsuperbowljerseys\.com\b +\bswiss-replicas-watch\.com\b +\btriabuy\.com\b +\buggboots\.jp\b +\bed-hardy-tshirt\.com\b +\b35331\.com\b +\b360ebagsonline\.com\b +\b360salebags\.com\b +\b4lvbag\.com\b +\baaa-replicas\.com\b +\bbagstag\.com\b +\bbalmainboots\.com\b +\bbinocular-sk\.com\b +\bbrandlouisvuitton\.com\b +\bbuydesignerwomenshoes\.com\b +\bbuyreplicahandbags\.com\b +\bbuyreplicaluxury\.com\b +\bbuyvertureplica\.com\b +\bbyreplica\.com\b +\bcaesarol\.com\b +\bcheapcoachonsale\.com\b +\bcheapguccishoesale\.com\b +\bchinamodelwholesaler\.com\b +christianlouboutinshoe +\bchristian--louboutin\.com\b +\bchristian-louboutin-(?:heels|ladyshoes|sandals)\.com\b +\bchristianlouboutin(?:designer|ssale)\.co\.uk\b +\bchristianlouboutin(?:-hot|-on-line|2sell|4girl|\d+|aaa|buy|collection|etrendy|foryou|kiss|ks|my|-?mall|okay|payless|replica|sandalssale|shop|y|zone)\.com\b +\bchristianlouboutin\.hk\b +\bchristianlouboutin(?:outlet|us)\.net\b +\bchristianlouboutin(?:sale|us)\.org\b +\bchristinlouboutian\.com\b +\b(?:2010|bu?y|e|i|ilove|our|shoe|uk-|to|vip)christianlouboutin(?:com|shop|uk)?\.com\b +\bcheapchristianlouboutin\.org\b +\blouboutin(?:1992|selling)\.com\b +\blouboutinsales\.net\b +\bmylouboutinstore\.com\b +\bcoach(?:bagsday|serise|shopping|supports)\.com\b +\bdealugg\.com\b +\be-lv\.net\b +\bebagsoutlets\.com\b +\begoluxury\.com\b +\belebiz\.com\b +\bemoncler\.com\b +\beuropefashionhouse\.com\b +\bfamouslafashion\.com\b +\bfashionehall\.com\b +\bguccishoesdiscount\.com\b +\bhandbagsma(?:ma|ster)\.com\b +\bhappy-e-shopping\.com\b +\bhiebay\.com\b +\bjimmychoocom\.com\b +\bjordanfromchina\.com\b +\bjordanscoop\.com\b +\bkicksparty\.com\b +\blook4wholesaler\.com\b +\blouboutinsales\.net\b +\blouisvuitton(?:-show|bay|stuff)\.com\b +\bluxuryheelshop\.com\b +\blv-gucciaaa\.com\b +\bmanoloblahnik(?:com\.com|shoes\.org)\b +\bmbtshoeshouse\.com\b +\bmbtshoesselling\.com\b +\bmoncler-mall\.com\b +\bmonclercom\.com\b +\bmonclerjacketstock\.com\b +\bmonshoes\.com\b +\bmybrandbar\.com\b +\bmylouboutinstore\.com\b +\bonsilkway\.com\b +\bp90x-dvd-onsale\.com\b +\bp90xdvdfitness\.com\b +\bqqtwo\.com\b +\bralphlaurenonsale\.com\b +\breplicaestore\.us\b +\breplicahandbagmall\.com\b +\breplicahandbagscheap\.com\b +\breplicalvbags\.com\b +\breplicaslv\.com\b +\bshoes\.vc\b +\bshopmoncler\.hk\b +\bshoppingogo\.com\b +\btalktosky\.com\b +\bugg-franchiser\.com\b +\bvipwomenshop\.com\b +\bwideworker\.com\b +\bwirelessphonejammer\.com\b +\bwomenshoesize\.com\b +\byslcom\.com\b +\bshowjordanshoes\.com\b +\b2010jordan\.com\b +\b2010mbtshoes\.co\.uk\b +\bcchua\.com\b +\beuroshoesbox\.com\b +\bgoodluxuryshoes\.com\b +\binpoloshop\.com\b +\bjordangogogo\.com\b +\bjordanselling\.com\b +\bjordanshoes2010\.com\b +\bjordanshoesdiscount\.com\b +\bjordanshoesf\.com\b +\bjordanshoesrelease\.com\b +\blouboutin2010\.com\b +\blouboutin2011\.com\b +\blouboutinbrand\.net\b +\bluxuryshoessale\.com\b +\bmbtestore\.com\b +\bmbtgohere\.com\b +\bmbtmbt\.org\b +\bmbtshoes888\.com\b +\bmbtshoescool\.com\b +\bmbtshoesebay\.com\b +\bmbtshoesgogogo\.com\b +\bordermbtshoes\.com\b +\bsexy4shoes\.com\b +\bshoppingpolo\.com\b +\bwomenshoes2010\.com\b +\bwowmbtshoes\.com\b +\byourdunk\.com\b +\bsaigontravelguides\.com\b +\blinksoflondonstore\.com\b +\bifrslistcom\b +\bbackupurl\.com\b +\bkelkooshoes\.com\b +\bwishesg20\.com\b +\bsghgate\.com\b +\bbuynowshoes\.com\b +\bsneakersoutlets\.com\b +\bstunningheels\.com\b +\bloubsheels\.com\b +\bbellashoess\.com\b +\bposhshoess\.com\b +\bstunningshoess\.com\b +\btopshoess\.com\b +\bmanolomall\.com\b +\bitisheels\.com\b +\bitisshoes\.com\b +\bmbtshoesoffer\.com\b +\b21-nfl\.com\b +\bjerseysplanet\.com\b +\bcoachoutletoffer\.com\b +\bhairstyleup\.com\b +\bshoppingrepublic\.com\b +\bfootballshirtsmall\.co\.uk\b +\bwatchesfantasy\.com\b +\bwatchesboom\.com\b +\bsupercoolwatches\.com\b +\btrade969\.com\b +\blvaa77\.com\b +\bbagshobby\.com\b +\bbagsvuitton\.com\b +\bsalelouboutin\.com\b +\blovelouboutin\.com\b +\blouboutinlouboutin\.com\b +\blouboutinfans\.com\b +\bbuylouboutin\.com\b +\bomega-joy\.com\b +\bchanel-tracy\.com\b +\blv-malcolm\.com\b +\bcorum-linda\.com\b +\brolex-dolly\.com\b +\balange-mala\.com\b +\bmontblanc-ford\.com\b +\brolex-nancy\.com\b +\bu-boat-lee\.com\b +\biwc-beata\.com\b +\baudemars-piguet-lily\.com\b +\blv-linda\.com\b +\bwatchessell\.com\b +\btrade-database\.net\b +\bgucci-rudy\.com\b +\bomega-yvonne\.com\b +\bdior-lillian\.com\b +\bbalenciaga-fiona\.com\b +\bferrari-doris\.com\b +\bcartier-lillian\.com\b +\bcartier-sophia\.com\b +\bprada-lisa\.com\b +\brolex-mary\.com\b +\brolex-jane\.com\b +\bzenith-whitney\.com\b +\bdior-joy\.com\b +\brolex-shelly\.com\b +\bgucci-lee\.com\b +\bwatches4sale\.net\b +\bgucci-shirley\.com\b +\bomega-melody\.com\b +\balain-lark\.com\b +\bfranck-ann\.com\b +\blv-whitney\.com\b +\blv-joan\.com\b +\blv-niki\.com\b +\bwatchesshow\.org\b +\bchanel-melody\.com\b +\bhermes-nancy\.com\b +\blv-lily\.com\b +\bgucci-katharine\.com\b +\bpatek-philippe-niki\.com\b +\bgucci-diana\.com\b +\bcartier-emily\.com\b +\bnice-watches\.com\b +\breplicawatches-sale\.com\b +\bnewstylerolex\.com\b +\bwelder-julie\.com\b +\bbreguet-bela\.com\b +\bomega-barbara\.com\b +\bbest-replicawatches\.com\b +\btag-caitlin\.com\b +\bbellross-gail\.com\b +\bhublot-ida\.com\b +\breplicawatchestock\.com\b +\bprada-yvonne\.com\b +\blv-betty\.com\b +\bcartier-shirley\.com\b +\bomega-lisa\.com\b +\breplicawatcheshop\.com\b +\bwatches-bags\.com\b +\bmyacewatches\.com\b +\bulysse-nardin-ann\.com\b +\bwatchestrade\.net\b +\bchanel-joan\.com\b +\bcartier-vivian\.com\b +\btopreplica-watches\.com\b +\bchu-yun\.com\b +\bwatches1775\.com\b +\bgucci-ann\.com\b +\broger-dubuis-judy\.com\b +\bdolce-beth\.com\b +\bchanel-debbie\.com\b +\bbreitling-eaton\.com\b +\bprada-dolly\.com\b +\bnewreplicawatch\.net\b +\bselling-watches\.com\b +\bhermes-emily\.com\b +\bgucci-doris\.com\b +\bchanel-helen\.com\b +\bchopard-becky\.com\b +\bbalenciaga-joan\.com\b +\bgucci-judy\.com\b +\bhermes-jane\.com\b +\bgucci-amanda\.com\b +\bbalenciaga-malcolm\.com\b +\bdior-ross\.com\b +\bbalenciaga-amanda\.com\b +\b5myj\.com\b +\bluxurywatchhome\.com\b +\blv-barbara\.com\b +\bprada-shelly\.com\b +\bprada-mary\.com\b +\bhermes-shirley\.com\b +\bdior-sophia\.com\b +\bdior-vivian\.com\b +\blv-elizabeth\.com\b +\bgucci-fiona\.com\b +\bbalenciaga-julie\.com\b +\bluxurywatchgift\.com\b +\bcoachoutletsell\.com\b +\bmanyreplica\.com\b +\bwatches4men\.net\b +\bgrade1replica\.com\b +\busedbvlgariwatches4men\.info\b +\bmijewels\.com\b +\bthaisilverjewelry\.net\b +\bsyntheticgems\.org\b +\bcubiczirconia-labgems\.com\b +\bsextoyfun\.com\b +\badversus\.it\b +\breplica-watches-best\.com\b +\bcoolinks\.co\.uk\b +\beuroluxury\.eu\b +\bfootballjerseynfl\.com\b +\bglobaltiffany\.com\b +\blinkslondon\.terapad\.com\b +\blinkslondonshop\.com\b +\blinksoflondonbox\.com\b +\blinksoflondonstore\.com\b +\blinksoflondonuk\.com\b +\blinksoflondonworld\.co\.uk\b +\blouboutinshoesonline\.com\b +\bswarovski\.uk\.com\b +\bsydneytiffany\.com\b +\bcartier1847\.com\b +\blinksofengland\.com\b +\blinksoflondonbest\.com\b +\blinksoflondonlatest\.com\b +\bmyjewellerystore\.com\b +\bshoppingvans\.com\b +\btiffanyjewelleryes\.com\b +\bbestlouisvuitton\.com\b +\blcgyjg\.com\b +\bhandbag(?:com|spop)\.com\b +\bwatches-life\.com\b +\be-lv\.net\b +\bsunglassvip\.net\b +\b2g-3g\.com\b +\brolex-hot\.com\b +\bmomax\.hk\b +\bgoodshotsale\.com\b +\btootoocheap\.com\b +\btungflower\.com\b +\bamzstore\.com\b +\blv-handbag\.net\b +\b7zyx\.com\b +\bmaslou\.com\b +\blouisvuittonmy\.com\b +\bnbcth\.com\b +\b90920\.com\b +\bjg02\.com\b +\breplicahandbags86\.com\b +\bhandbagroom\.com\b +\bhighreplica1\.com\b +\bselltopbags\.com\b +\bdesigner-replicahandbag\.com\b +\bdesignerbagestore\.com\b +\bsix-star-replicas\.com\b +\breplicaestore\.us\b +\bhandbag-bags\.com\b +\beshop-lvhandbag\.com\b +\bbagcrazy\.net\b +\bb2csite\.com\b +\b6starhandbags\.com\b +\bsearchingbag\.com\b +\bpradacn\.com\b +\breplicaestore\.biz\b +\btiffanyjewelry1837\.com\b +\bguccidepot\.com\b +\bmyfashionelement\.com\b +\btoptopbag\.com\b +\bgrandjewelry\.net\b +\bbuyvertureplica\.com\b +\bshes5588\.com\b +\blouisvuittonstock\.com\b +\bgo-ubas\.com\b +\bniketop\.com\b +\bnikesky888\.com\b +\bmbttop\.com\b +\benjoycl\.com\b +\buggtop\.com\b +\bgo-to-be\.com\b +\beast-nike\.com\b +\btopviviennewestwood\.com\b +\bgoodu-disk\.com\b +\bclboots\.com\b +\bgogogoboots\.com\b +\bcheapjuciyshop\.com\b +\bjuicy888\.com\b +\blikembtshoes\.com\b +\babercrombiefitchonline\.org\b +\buggdiscountboot\.com\b +\bonlinebootssale\.com\b +\bedhardywholesalers\.com\b +\bhhtrd\.com\b +\bchristian-shoes\.cc\b +\bjordanshoes2\.com\b +\bausboots2sale\.com\b +\bbootsgogo\.com\b +\bgenuinebootssale\.com\b +\biwantbootscheap\.com\b +\bhibootsshop\.com\b +\bbootsussale\.com\b +\b2010luxuryboots\.com\b +\busbootssale\.com\b +\bboots777\.com\b +\bbootsshop2010\.com\b +\babercrombieandfitchuk\.com\b +\babercrombie-usa\.com\b +\babercrombieandfitchusa\.com\b +\babercrombie-malls\.com\b +\babercrombiefitchonline\.net\b +\babercrombiefitchonlineshop\.com\b +\bnikedunkoutlet\.com\b +\bbuyairmax\.com\b +\bmy-abercrombie\.com\b +\bshoes-vip\.com\b +\bokeyjordans\.com\b +\babercrombieuk\.net\b +\bedhardytshirts4u\.com\b +\babercrombielondon\.net\b +\babercrombiepromotions\.com\b +\bfitchclothing-uk\.com\b +\babercrombiestock\.com\b +\babercrombiemart\.com\b +\bdonedhardy\.us\b +\bedhardyesale\.com\b +\buselv\.com\b +\bcoachshandbags\.com\b +\bbagagent\.com\b +\bcoachonsale\.net\b +\bsuperbowljerseyshop\.com\b +\bmvpghd\.com\b +\blamboutlet\.com\b +\bhellotimberland\.com\b +\buggultra\.com\b +\beasyforbuy\.com\b +\bthecheapbags\.com\b +\bultratallugg\.com\b +\buggschestnut\.com\b +\blowestmall\.com\b +\bcheapuggretail\.com\b +\bsuperuggshop\.com\b +\buggssundance\.com\b +\buggsshoesonline\.com\b +\bgoodshox\.com\b +\bshoxhot\.com\b +\burjordan\.com\b +\buggblackboot\.com\b +\bpopularshoes\.net\b +\bmyshortugg\.com\b +\buggblacktall\.com\b +\bupsideugg\.com\b +\bgoodbags\.org\b +\bthepradabags\.com\b +\bbags4lv\.com\b +\bwholedesigner\.com\b +\blove-louisvuitton\.com\b +\blouis-vuitton-bags\.net\b +\bhandbags-agent\.com\b +\brosettastoneonline\.net\b +\bpradaltd\.com\b +\bhohoshoes\.com\b +\bluxusbag\.com\b +\bwalletseshop\.com\b +\bgreatgreenshoes\.com\b +\b51uggboots\.com\b +\bluxusbags\.com\b +\bgoodestore\.com\b +\b8guccionline\.com\b +\bvaluesuit\.com\b +\baaa-replicabag\.com\b +\bkoobashop\.com\b +\breplica-gucci\.com\b +\bsellgoodssale\.com\b +\bnewcoachoutlet\.com\b +\blcsti\.net\b +\bbyshoesuk\.com\b +\bkepu\.cc\b +\bsofiabags\.com\b +\b5bag5\.com\b +\b2handbag2\.com\b +\bmysofiabags\.com\b +\bmyfashionstation\.net\b +\bdzhfgj\.com\b +\bone-best\.com\b +\bshopahandbags\.com\b +\bbesthandbagsshop\.com\b +\bmysofiabag\.com\b +\bpromohandbag\.com\b +\bmy-sofiabag\.com\b +\bevoguecollections\.com\b +\bus-eluxury\.com\b +\b1837tiffany\.net\b +\bvutrade\.com\b +\breplicaguccihandbag\.com\b +\bnikeshoes2010\.com\b +\bmyleatherbelt\.com\b +\bcheapkingdom\.com\b +\blv-buy\.com\b +\byzzg\.net\b +\bqqone\.com\b +\bworld-importexport\.com\b +\bzhuiyan\.net\b +\bblinkycloset\.com\b +\blightinthebags\.co\.uk\b +\bjeansmay\.com\b +\bbuy-dropship\.com\b +\buggboots-onlineshop\.com\b +\bimportsafehitec\.com\b +\bcelebritystyle4u\.com\b +\bofficialmbt\.com\b +\b8080dy\.com\b +\bdoubleshoes\.net\b +\bredbottomshoes\.info\b +\bshoespops\.com\b +\bdeelingerie\.com\b +\blvvuittonkorea\.com\b +\beshop-bag\.com\b +\bebayunions\.com\b +\bwholesaletiffany\.biz\b +\blouboutinshoesbox\.com\b +\b7louisvuitton\.com\b +\bleatherbagsmanufacturer\.com\b +\bbrandreplicashop\.com\b +\b24replicawatches\.com\b +\b1004coco\.com\b +\bdesigner-inspired-handbags\.com\b +\bsale4luxury\.com\b +\bdesirehandbag\.com\b +\bmakegoldonwow\.net\b +\bhowtogetasixpackinamonth\.com\b +\belite-martial-arts-site\.com\b +\bhoteldeals\.ae\b +\bjeddah\.asia\b +\bfreegames\.ae\b +\bbackgammon\.ae\b +\bbybloshotelcostarica\.com\b +\b2010-nfl\.com\b +\bgucciboss\.com\b +\bjerseylink\.com\b +\bnflwholesaleusa\.com\b +\bveryverycheap\.us\b +\bnikeairmaxshoes88\.com\b +\bnicefootwork\.com\b +\bbagforu\.com\b +\bnikelord\.com\b +\bnfljerseysale\.com\b +\biofferjerseys\.com\b +\bshoppingjerseys\.com\b +\bjerseystown\.com\b +\bmac-makeup\.us\b +\bjordanshoesky\.com\b +\bacdmart\.com\b +\bjerseyscenters\.com\b +\bshoespuma\.us\b +\bshoes-shoesshoe\.com\b +\bjerseyok\.com\b +\bsf46\.com\b +\bhoop-jerseys\.com\b +\bsalerolexwatches\.com\b +\bjq11\.com\b +\bwinnersneaker\.com\b +\bnfldolphins\.org\b +\bteamsjerseys\.us\b +\bjerseyswarehouse\.com\b +\bsale-nfl-jerseys\.com\b +\bfansshirt\.com\b +\btolouboutinshoes\.com\b +\bnflnhljerseyscheap\.com\b +\b2jerseys\.com\b +\b4jerseys\.com\b +\bjersey-boys\.com\b +\bshirtdays\.com\b +\bjerseys888\.com\b +\ba-jerseys\.com\b +\bmlb-shops\.com\b +\bectopmall\.com\b +\bb2bsaling\.com\b +\bnfljerseys2you\.com\b +\bnfl-jerseys-nba\.com\b +\bworld-cup-shirt\.com\b +\bjerseysonline\.cc\b +\bkicksnike1\.com\b +\bcheapwholesalejersey\.com\b +\bwholesale-jerseys\.net\b +\bnfl-football-jerseys\.org\b +\bshowjerseys\.com\b +\bjerseyseshop\.com\b +\bjerseysfanshop\.com\b +\bjerseysleague\.com\b +\bmitchellandness2u\.com\b +\bworldwholesalemall\.com\b +\bjersey2you\.com\b +\bgojerseyshop\.com\b +\bjersey-retail\.com\b +\bjerseys7\.com\b +\bjerseys711\.com\b +\becnstore\.com\b +\bnflnhlsale\.com\b +\bmine-store\.com\b +\bvancltrade\.com\b +\bsell-nfl\.us\b +\b4unfl\.com\b +\bjerseyspar\.com\b +\bnbajerseysale\.com\b +\bhavejerseys\.com\b +\bnflid\.com\b +\bgodjersey\.com\b +\bjerseyzones\.com\b +\bbrandpromomall\.info\b +\bnfljerseys2010\.com\b +\bofficialtimberland\.com\b +\bjerseyrelease\.com\b +\bbuynbajerseys\.info\b +\boovcc\.com\b +\bnflstorecn\.com\b +\boem-bearing\.com\b +\be-timberland\.com\b +\btopuggever\.com\b +\byouradidas\.com\b +\bmylovintech\.com\b +\bjordanshoesmart\.com\b +\bbelovewrist\.com\b +\buggsupplies\.com\b +\bnewyorkicks\.com\b +\bechandbags\.com\b +\bshoesbey\.com\b +\bexclusivejay\.com\b +\bectwins\.com\b +\bbagspage\.com\b +\bshoestotally\.com\b +\bnikeairyeezy\.com\b +\bpickyourclothing\.com\b +\bsneakerfather\.com\b +\bhiairmaxshoes\.com\b +\bbargainpump\.com\b +\bhandbagsagent\.com\b +\bwholesale-dressmart\.com\b +\bcoachhandbags2u\.com\b +\busa-onsale\.com\b +\bwell-sport\.com\b +\bathleticshoebox\.com\b +\bwebsaling\.com\b +\bthekickshop\.com\b +\bwomenhandbagsaaa\.com\b +\btheairyeezy\.com\b +\bnikeairmax-trainers\.com\b +\bairmaxshoesales\.com\b +\bvstrainer\.co\.uk\b +\becheapness\.com\b +\b74trade\.com\b +\bmbtistore\.com\b +\bshoesnumen\.co\.uk\b +\bonekickzstop\.com\b +\bwholesale-from-china\.com\b +\bdeal-shoe\.com\b +\bjourneys\.cc\b +\bgenuineuggboots\.com\b +\badidasshoesbuy\.com\b +\bhandbags\.hk\b +\badidas-online-shop\.com\b +\bairjordanonsale\.com\b +\bpickmyclothing\.com\b +\bfashionfavourites\.com\b +\bsellnikesb\.com\b +\bairyeezy\.net\b +\bopenjerseys\.com\b +\b7x24gucci\.com\b +\beupfashion\.com\b +\b2buyprada\.com\b +\bgo2bagtrade\.com\b +\bsneakersbuddy\.com\b +\bgetagoodbuy\.com\b +\bairyeezy\.org\b +\bnike-dunk-shoe\.com\b +\bnike-online\.com\b +\bjordan11a\.com\b +\b8superdunksb\.com\b +\baaaking\.com\b +\bsogoodedhardy\.com\b +\bfeedmyfeet\.com\b +\bfashion-sneaker\.com\b +\bairyeezy\.com\b +\bgetyourbag\.us\b +\bonsale-usa\.com\b +\bmediamobilespa\.com\b +\blovethosesole\.com\b +\bbuynflshop\.com\b +\bnhlsky\.com\b +\bgonflshop1\.com\b +\bgonflshop2\.com\b +\bsuperbowl2you\.com\b +\b4unjshop\.com\b +\bbowljersey4u\.com\b +\bvoguesoccerjerseys\.com\b +\bjeveuxque\.com\b +\bvisaforum\.freeforums\.org\b +\bshortmyurl\.net\b +\btinyurls\.co\.uk\b +\bownbrandshop\.com\b +\bnewgoing\.com\b +\b10[02]bhshoe\.com\b +\b104allbyer\.com\b +\b106fashion4biz\.com\b +\b108akshoe\.com\b +\b109elife\.com\b +\b110maidi2008\.com\b +\b11[24]batsale\.com\b +\b116kicksquality\.com\b +\b118onseeking\.com\b +\b120e2to\.com\b +\b122luxuryeasy\.com\b +\b124green2style\.com\b +\b1268000trade\.com\b +\b128chicmalls\.com\b +\b129elife\.com\b +\b130e4cn\.com\b +\b132wanderfulshopping\.com\b +\b134bbbshoe\.com\b +\b136salesuper\.com\b +\b138takeofdream\.com\b +\b14[02]newflybuy\.com\b +\b144mesoso\.com\b +\b146steezecloth\.com\b +\b1[46]wowhotsale\.com\b +\b18ecartshopping\.biz\b +\b1[46]wowhotsale\.com\b +\b20uspopularbiz\.com\b +\b22etradinglife\.com\b +\b24vipshops\.org\b +\b26wowcool\.org\b +\b28plzzshop\.com\b +\b2fashion-long-4biz\.com\b +\b30plzzshop\.com\b +\b32goladymall\.com\b +\b34coolforsale\.com\b +\b36overstockes\.com\b +\b38sbbshoe\.com\b +\b4[02]vipmalls\.com\b +\b44netetrader\.com\b +\b46tqshoes\.com\b +\b48tntshoes\.com\b +\b4fashion-long-4biz\.com\b +\b5[02]kogogo\.com\b +\b54shopperstrade\.com\b +\b56goflywire\.com\b +\b58fashion-sell\.com\b +\b6[02]shoppingtime\.us\b +\b64iseeshoe\.com\b +\b66foruping\.com\b +\b68muyuo\.com\b +\b6elivestyle\.com\b +\b70seekjersey\.com\b +\b72bccloth\.com\b +\b74domchisport\.com\b +\b76domchisport\.com\b +\b78ebuyings\.com\b +\b80ebuyings\.com\b +\b82elivebuy\.com\b +\b84stefsclothes\.com\b +\b8[68]itemtolive\.com\b +\b8cheapmaket\.com\b +\b90ccshoper\.com\b +\b92etootoo\.com\b +\b94streetcandy\.org\b +\b96minewear\.com\b +\b98myyshop\.com\b +\bchatroulettecite\.com\b +\bgucciguccigucci\.com\b +\blouisvuittonlouisvuitton\.com\b +\breplicahandbags963\.com\b +\brolexreplica123\.com\b +\btiffanyreplica\.info\b +\b123rolex\.com\b +\breplicawatches8\.com\b +\bgucci-shoes-bags\.com\b +\bsupercheapgucci\.com\b +\bguccitouch\.com\b +\blouisvuittons\.cc\b +\bdealsunglasses\.com\b +\blvbagsmvp\.com\b +\bguccibagsshop\.com\b +\bhandbags-shop\.com\b +\byaotrading\.com\b +\bguccishoponline\.net\b +\btiffanyshoponline\.net\b +\bmy-juicycouture\.com\b +\bqingfeng520\.com\b +\bguccipick\.com\b +\bdesignerinbag\.com\b +\bchanelonlineshop\.net\b +\bhandbagsstore\.cn\b +\bjordan23club\.com\b +\bpradaoutlets\.com\b +\breplica8bags\.com\b +\becboots\.com\b +\b7-handbags\.com\b +\breplicahandbags888\.com\b +\bchinascloset\.com\b +\bshopping-handbags\.com\b +\bfashioncooper\.com\b +\bpickjuicycouture\.com\b +\blouisvuittonbagmall\.com\b +\bbrand-wholesale\.net\b +\blovevuitton\.org\b +\bshopdreambag\.com\b +\bgoodhandbagsale\.com\b +\b7replicabags\.com\b +\bnflluck\.net\b +\bbest-shoes-online\.com\b +\bhandbagsestore\.com\b +\bnflinformation\.org\b +\bcarlottascloset\.biz\b +\bbyetillbuy\.com\b +\bgoluxuryreplica\.com\b +\bnfl-information\.net\b +\bluxury-handbags-lady\.com\b +\bnfl-information\.org\b +\bsolid925silver\.com\b +\btiffanyjewelry9\.com\b +\burl9\.de\b +\brocketlanguages\.com\b +\bnoxedge\.com\b +\bnewgoing\.com\b +\bbatterylaptops\.co\.uk\b +\bshopokey\.com\b +\bcycshop\.com\b +\bmeddrugshop\.com\b +\bindiaformeds\.com\b +\bonlineprescriptiondrugstore\.net\b +\bitopmed\.net\b +\bcanadianpharmacyi\.net\b +\bachatacheter\.co\.cc\b +\biagra-cool\.net\b +\bclan-low\.com\b +\bveloclubtamalpais\.com\b +\bshopcheappills\.com\b +\bcanada-pharmacy\.biz\b +\bcanada-pharmacy-online\.info\b +\bpharmacy-24-online\.net\b +\bblue-pills\.info\b +\btuckle\.net\b +\bindian-pharmacies\.org\b +\bovernightessay\.com\b +\bwriting-services\.org\b +\baplusreports\.com\b +\byourdissertation\.com\b +\bstandoutessay\.com\b +\bshamany\.com\b +\bresearchpaperz\.net\b +\btobuybattery\.com\b +\bessaywritingservice\.org\b +\bhardingsoft\.com\b +\bripurl\.co\.uk\b +\bbookmarksuri\.com\b +\btrimr\.de\b +\bkiwiurl\.com\b +\bwealthyaffiliate\.com\b +\bmandarinportal\.com\b +\bcheap-wow-accounts\.com\b +\bwowgoldsonline\.com\b +\bwowgoldlife\.com\b +\bbdxsw\.com\b +\bcypress\.com\b +\bcitibank\.co\.in\b +\bcheapcl\.com\b +\brs2acc\.com\b +\becwarmboots\.com\b +\bpopsaling\.com\b +\bscooterschina\.com\b +\btouchnike\.com\b +\bkisstbl\.com\b +\bslflife\.com\b +\bgouggs\.com\b +\bb2bsharing\.com\b +\boursugg\.com\b +\bhuxhbuy\.com\b +\bforsaletiffany\.com\b +\bsaletiffany\.com\b +\bonsaletiffany\.com\b +\bpowergolding\.com\b +\bgameminter\.com\b +\bshoppinglv\.com\b +\bjuicycouturedeals\.com\b +\bviviennejewellery\.co\.uk\b +\bfashionjuicystore\.com\b +\btiffanyforsale\.com\b +\bforsalesunglasses\.com\b +\bsuprafootwear-online\.com\b +\bsuprashoes\.org\b +\bsupra-shoes\.us\b +\bfreshkicks4u\.com\b +\bfirstsneakers\.com\b +\bmytiffanybar\.com\b +\bdiscountsuprashoes\.com\b +\bcooltiffany\.com\b +\bnewstyles\.eu\b +\bsupra-skytop-shoes\.com\b +\blovetiffany1837\.com\b +\bpretty-tiffany\.com\b +\bdiscountiffany\.com\b +\btiffany1837top\.com\b +\btiffanyjewelryweb\.com\b +\blinkslondonhut\.com\b +\bjuicyjewelrysale\.com\b +\blinksoflondonhut\.com\b +\bhellotiffany1837\.com\b +\blinksoflondonhut\.co\.uk\b +\beshoesonline\.net\b +\bfabuloustiffany\.com\b +\bjewel-tiffany\.com\b +\bhappytiffany\.com\b +\bbuy-ugg\.info\b +\bskechersonsale\.com\b +\buggscheapsale\.com\b +\bsoftugg\.com\b +\boboots\.com\b +\bprettyboots\.com\b +\bsweatboots\.com\b +\bwowuggs\.com\b +\blinkboots\.com\b +\bkissuggboots\.com\b +\buggssnowboots\.com\b +\bofferuggs\.com\b +\bgetsnet\.com\b +\blouboutinparty\.com\b +\blouboutining\.com\b +\bloveladyshoes\.com\b +\blouboutinshoesforyou\.com\b +\bueasyshop\.com\b +\btoponlineseller\.com\b +\b08-trade\.com\b +\bnino-trade\.com\b +\bjordancozy\.com\b +\blouboutinseller\.com\b +\bebaytrading15\.com\b +\blady-blog\.com\b +\bzypopular\.com\b +\bpolostorm\.com\b +\bcasualbrand\.com\b +\balltopshoes\.com\b +\bredhighshoes\.com\b +\bdunks-high\.com\b +\bgladfashion\.net\b +\bchaussureenligne\.net\b +\bshoesinlove\.com\b +\bfashiontowns\.com\b +\blouboutinmall\.com\b +\belegantstation\.com\b +\bluxury-buying\.com\b +\blouboutin4u\.com\b +\bluxury-heels\.com\b +\bwomensplaza\.com\b +\barmortradingltd\.com\b +\bbylouboutin\.com\b +\bluxuryshoesbuy\.com\b +\bcheapchristian\.com\b +\bedressonline\.com\b +\bstop4buy\.com\b +\betopbrands\.com\b +\blouboutincom\.com\b +\bnewladyshoes\.com\b +\bluxureshoes\.com\b +\babercrombieclothing4u\.com\b +\bluxforever\.com\b +\bmeemak\.com\b +\bmbtshoesok\.com\b +\byoursbag\.com\b +\bfadbaggs\.com\b +\bjiataitrade\.com\b +\busbindustry\.com\b +\bsellnikeairmax\.com\b +\bmyhottopwholesale\.com\b +\bmytopwholesale\.com\b +\btrading-space\.com\b +\bnflnfljerseys\.com\b +\bstores-nlfjerseys\.com\b +\bforeverbar\.com\b +\bgucci-stores\.com\b +\btobling\.com\b +\btiffanyonlinestore\.us\b +\buklondons\.com\b +\btiffanyshop\.org\b +\bshopoingjuicyjewelry\.com\b +\bwauoo\.com\b +\blinksfromlondon\.com\b +\bebaytop\.com\b +\bfenditrade\.com\b +\btiffanyjewelrysalesstore\.com\b +\bnpbags\.com\b +\bguccisaleonline\.com\b +\bjuicycouture4sale\.com\b +\btopbuyjewelry\.com\b +\bchinacrystaljewelry\.com\b +\bp90xwow\.com\b +\bjoytiffany\.com\b +\bguccinecklace\.com\b +\btoopeshop\.com\b +\bjuicyclothingsale\.com\b +\bmydvdbuy\.com\b +\bstore4daidaihua\.com\b +\bnetgucci\.com\b +\btiffanyo\.com\b +\btv-series-store\.com\b +\btodaysfashionjewelry\.com\b +\buggs4onsale\.com\b +\bsilver-zone\.com\b +\bsalenikejordan\.com\b +\bhitiffany1837\.com\b +\bnirvanahandicrafts\.com\b +\btiffany-jewelry-sale\.com\b +\bsharkfeet\.com\b +\btiffanyonsale\.com\b +\bchanel-bags8\.com\b +\brs2-accounts\.org\b +\brs2-accounts\.com\b +\bwolfeye-keylogger\.de\.vu\b +\bcastles\.travelinos\.com\b +\bmilotice\.com\b +\bmiud\.in\b +\bourlouisvuitton\.com\b +\bbag15\.com\b +\bstylebagstore\.com\b +\bshoestop10\.com\b +\byes-bags\.com\b +\byes-bag\.com\b +\bbagsforyours\.com\b +\bthemanbag\.net\b +\breplica-idol\.com\b +\blv4me\.net\b +\bwatch-youbags\.com\b +\bvogue-shoes\.com\b +\bclassic-louboutin\.com\b +\buggbootdiscount\.net\b +\b91handbags\.com\b +\bcross-mark\.com\b +\bmoonyue\.com\b +\borienttouch\.com\b +\bmandarintouch\.com\b +\boriental-cheongsam\.com\b +\blouboutin-christian-shoes\.com\b +\bgoodorient\.com\b +\bfinechineseclothing\.com\b +\bteenagelingerie\.com\b +\bcnetshopping\.com\b +\buggs-uggsok\.com\b +\bnikeairyeezy\.net\b +\bfeatureduggboots\.com\b +\bb2cforsale\.com\b +\bguccing\.com\b +\bzxcart\.com\b +\bdiscounttiffanyjewelry\.us\b +\bnewtangstore\.com\b +\bmanoloshoe\.com\b +\bevescharm\.com\b +\btruereligionjeansonline\.com\b +\baustraliabootsale\.com\b +\bshoestop4\.com\b +\bboxlouboutin\.com\b +\blouboutinbox\.com\b +\bhandbags888\.com\b +\bugg-timberland\.com\b +\blouboutinsale1\.com\b +\bhellojersey\.org\b +\bourlouisvuitton\.com\b +\bmy4bags\.com\b +\bsexylouboutinshoes\.info\b +\b2010christian\.com\b +\bbags4chanel\.com\b +\bwe4bags\.com\b +\bsalefivefinger\.com\b +\blouboutinretailer\.info\b +\b10fashionzone\.com\b +\btakefringefashion\.info\b +\blvbags\.info\b +\bunique-coach\.com\b +\blux4bags\.com\b +\bluxuryex\.com\b +\bredsoleheels\.com\b +\banyspark\.com\b +\bbuyitpal\.com\b +\bbags4gucci\.com\b +\boutlet-coach\.com\b +\boutlet-purses\.com\b +\bmyluxbags\.com\b +\bluxurywareroom\.com\b +\blv-bags\.us\b +\bpurse-agent\.com\b +\bcool4bags\.com\b +\bhighheelsfashion\.com\b +\bgohahashop\.com\b +\bbags-outlet\.net\b +\bool4bags\.com\b +\bwholesalejerseys999\.com\b +\blouboutinshoponlines\.com\b +\bwhatshelove\.com\b +\bthenetshoponline\.com\b +\bsvhandbags\.com\b +\bshoes4cl\.com\b +\bluxhorde\.com\b +\bmyclbags\.com\b +\btn4bags\.com\b +\bmy4bag\.com\b +\bigxe\.co\.uk\b +\bgameusd\.us\b +\bmmovalue\.us\b +\bgmbar\.us\b +\binwowgold\.us\b +\bmmoga\.us\b +\bgold4power\.co\.uk\b +\blorland\.com\b +\bmmo4rpg\.com\b +\bthsale\.co\.uk\b +\bmygamesale\.us\b +\bgold4rpg\.com\b +\bdo4bags\.com\b +\bvt4bags\.com\b +\btn4bags\.com\b +\bpvpwowbgs\.com\b +\boffgamers\.us\b +\bguy4game\.us\b +\bgubags\.com\b +\bwowhead\.us\b +\blorland\.co\.uk\b +\bgaziantepsporlular\.com\b +\blechan\.info\b +\bhautes-alpes\.org\b +\bsn\.im\b +\bcl\.lk\b +\bgobananas\.com\b +\bkarmakerala\.com\b +\bmedicexchange\.com\b +\breputationmanagementfor\.com\b +\bzco\.com\b +\bascenderfonts\.com\b +\bascendercorp\.com\b +\bkliddell2\.community\.officelive\.com\b +\blmseragency\.web\.officelive\.com\b +\bnoxedge\.com\b +\bhqessays\.com\b +\bfifa-world-cup-brazil-2014\.com\b +\bhigh-heels-fashionista\.com\b +\bsalto15\.com\.br\b +\bpagina-uno\.com\b +\botimizacao-sites-busca\.com\.br\b +\bcarnaval-em-salvador\.com\b +\bfetiche-salto-alto\.com\b +\bsalvador-bahia-brasil\.com\b +\bempregos-em-salvador\.info\b +\bimoveis-em-salvador-bahia\.info\b +\bimoveis-em-sao-paulo\.info\b +\bagencias-de-viagens-em-salvador\.info\b +\bbahiasexy\.com\b +\bleibnizbrasil\.pro\.br\b +\bmenstimberlandshoes\.com\b +\ballofcoach\.com\b +\bipmart\.com\b +\bmonopolizationshop\.com\b +\bmobilephoneretail\.com\b +\bfivefingerssupply\.com\b +\bbagworlds\.com\b +\bpop-sunglasses\.com\b +\bpickguccis\.com\b +\bsneaker-shoes\.com\b +\bpickyourshoes\.com\b +\bkixgame\.com\b +\bjordanshoesstore\.com\b +\bajdreams\.net\b +\bcheap-abercrombie\.com\b +\bfitch-abercrombie\.com\b +\bbagitaly\.com\b +\bsportshoestown\.com\b +\bkixultra\.com\b +\bdangerstyle\.com\b +\b2cshopping\.com\b +\bvariantkicks\.com\b +\bsneakerbum\.com\b +\bvoguejeans\.com\b +\btheshoestrip\.com\b +\blovinjordan\.com\b +\bexclusivesole\.com\b +\bcitysole\.com\b +\blacelocked\.com\b +\bsneaker\.co\.jp\b +\bsnowuggs\.com\b +\bmbt-style\.com\b +\bmax9095\.com\b +\bhey-b2b\.com\b +\bshortz\.me\b +\btiny\.by\b +\bwebpage\.asia\b +\bhoteldeals\.ae\b +\bjouercasino\.eu\b +\bvalesmucho\.com\b +\burlbu\.com\b +\bkisaurl\.com\b +\bcvm\.biz\b +\byit\.me\b +\bfarscinema\.com\b +\bnowrunning\.ir\b +\benardy\.com\b +\bplayway\.ru\b +\bsmariogame\.com\b +\ben\.enardy\.com\b +\bmicuatro\.com\b +\blazytownpoint\.com\b +\bkisaca\.net\b +\bfaja\.me\b +\bbagswatches\.com\b +\bbuytopreplica\.com\b +\boemwatches\.com\b +\bshopping-replica\.com\b +\bokweddingdresses\.com\b +\bnikempire\.com\b +\bjordandi\.com\b +\bup2ugg\.com\b +\bair32\.com\b +\bar32\.com\b +\bnk4u\.com\b +\buggsky\.co\.uk\b +\bedhardybazar\.co\.uk\b +\bsight-focus\.com\b +\bglobalreplica\.com\b +\bwell-replica\.com\b +\bbags-replica\.com\b +\bhoneyreplicas\.com\b +\bchinese-replica\.com\b +\bdearuggboots\.com\b +\breplica-hermes\.com\b +\b277266\.com\b +\buggboots88\.com\b +\bhandbagirl\.com\b +\btopmywatches\.com\b +\bexact-handbags\.com\b +\breplica-handbags-biz\.com\b +\bbagsdesigners\.com\b +\bgzshijin\.com\b +\bhigh-replica-bags\.com\b +\bhandbagsonsell\.com\b +\btopbrandswatches\.com\b +\bjennyhandbags\.com\b +\breplica-aaa-bags\.com\b +\bugg1boots\.com\b +\bgloblewatch\.com\b +\bsell-replicas\.com\b +\bbagsreplicashop\.com\b +\bereplicachanel\.com\b +\bereplicahermes\.com\b +\busshoesshop\.com\b +\bbagsluxury\.com\b +\bnikewholesaleshop\.com\b +\bsuperbaghome\.com\b +\breplical-handbag\.com\b +\b21replica\.com\b +\behandbag-replica\.com\b +\bereplicashow\.com\b +\breplica-estore\.com\b +\blvebags\.com\b +\blv-louis-vuitton\.com\b +\bhermes-replica\.com\b +\blikereplica\.com\b +\blvbagshopping\.com\b +\breplicaestores\.com\b +\bdesignerbag4u\.com\b +\bereplicagucci\.com\b +\bdesigner-handbag-replica\.com\b +\breplicalestore\.com\b +\breplicachaneleshop\.com\b +\b21replicahandbag\.com\b +\bnice-bags\.com\b +\bluxuries-replicas\.com\b +\blouisvuitton-us\.com\b +\bwatches188\.com\b +\breplicahermes\.net\b +\bwatchescentre\.com\b +\bvip-bags\.net\b +\be-buy-bags\.com\b +\breplica-watches-wholesale\.com\b +\biamreplica\.net\b +\bvoguemobile\.com\b +\bwatches9\.com\b +\breplica-swisswatches\.com\b +\bbreitling-watches-replica\.com\b +\biamreplicas\.com\b +\bereplicawatches\.net\b +\bdocostume\.com\b +\bdaydaydiscount\.com\b +\blittlecoral\.com\b +\bchinapparels\.com\b +\btopweddingshop\.com\b +\bpainting-art\.net\b +\bgoods-wholesales\.co\.uk\b +\bdressebuy\.com\b +\btrip2\.asia\b +\bluxury222\.com\b +\bradowatcheshome\.com\b +\bdesigner-louis\.com\b +\bdaydaysale\.com\b +\bbestsales4u\.com\b +\bjusttopwatches\.com\b +\bdearwatches\.com\b +\bwatcheshot\.com\b +\btopwatchbrand\.com\b +\bgarbhandbags\.com\b +\bbestsales4u\.com\b +\bwholesale-order\.com\b +\b24designerreplica\.com\b +\bbockwatches\.com\b +\bcupwatches\.com\b +\bcnreplicas\.com\b +\byoungershoes\.com\b +\bhandbagmerchant\.com\b +\bjkbase\.com\b +\bcheaphandbags2009\.com\b +\bjewelry-watches\.org\b +\bomegawatchesforsale\.com\b +\bwatches-brand\.com\b +\b09goodhandbag\.com\b +\bin-watches\.com\b +\bcufflinks-online\.com\b +\bwatcheprice\.com\b +\bcartierreplicawatch\.net\b +\b78863\.com\b +\btopswissreplicas\.com\b +\bwatchesetrade\.com\b +\bwatchesreplication\.com\b +\bitbag-online\.com\b +\breplicawatcheshk\.com\b +\bwatchesehot\.com\b +\bpopbrands\.net\b +\bpalwatches\.com\b +\b09handbagshop\.com\b +\bchopardshop\.com\b +\bhavewatches\.com\b +\bmy-luxury-watches\.com\b +\bhotreplicawatches8\.com\b +\bjordand1\.com\b +\bsell-brand-bag\.com\b +\bwto-sell\.com\b +\ballthebesthandbags\.com\b +\bbags-watches\.com\b +\btiffanyfest\.com\b +\b4uluxuryhandbags\.com\b +\bjordan11\.us\b +\bsunglassestrade\.com\b +\breplica-scarf\.com\b +\breplicas8\.com\b +\bjrhandbags\.com\b +\bdshandbags\.com\b +\blinksinns\.com\b +\besightfocus\.com\b +\btiffanyouth\.co\.uk\b +\bomega-watches-replica\.com\b +\bedhardygoodss\.com\b +\btiffanyhot\.com\b +\btiffanyou\.com\b +\bprovideuggboots\.com\b +\blinksmvp\.com\b +\bfinetiffany\.com\b +\bedhardyjoy\.com\b +\bairjordan-shoes\.net\b +\bshoesbybuy\.com\b +\bnfljersey123\.com\b +\bzapposbag\.com\b +\balyshop\.com\b +\boktiffany\.com\b +\bthebrandshoes\.com\b +\bjoybuy123\.com\b +\bbagonline\.net\b +\btiffany4girl\.com\b +\bmyacoach\.com\b +\bdrhandbags\.com\b +\breplica-china\.net\b +\bhk-replica\.com\b +\bjazzyhandbag\.com\b +\breplicabagworld\.com\b +\bjadeshoponline\.com\b +\bhk-replicas\.com\b +\bamalfi-mall\.com\b +\bchnknot\.com\b +\bsellshoemall\.com\b +\bairnk\.com\b +\btiffanysun\.com\b +\b360yd\.com\b +\bawurl\.com\b +\bi\.cx\b +\bittly\.com\b +\bturkeystadiumsandsportarenas\.blogspot\.com\b +\bswurl\.cc\b +\bkurkov\.org\b +\bsasgo\.info\b +\bsolyankarecipe\.com\b +\bhowdrinkwine\.com\b +\bsamuraizen\.com\b +\bzenhantz\.wordpress\.com\b +\bncpdtoo\.info\b +\byouareanidiot\.org\b +\bguiadediadema\.net\b +\bsmsgang\.com\b +\bsmsgang\.pl\b +\banonym\.to\b +\b56casino\.com\b +\bcasino-spielen\.biz\b +\bcrushingmill\.com\b +\bcrushermobile\.com\b +\bvipeak\.com\b +\bvipeakgrinder\.com\b +\bvipeakmill\.com\b +\bvipeakgroup\.com\b +\bgrinderpro\.com\b +\bp90xkicks\.com\b +\bwubags\.com\b +\buggpark\.com\b +\bchristian4sale\.com\b +\bnike-star-shoes\.com\b +\bair-max-shoes\.com\b +\baj2u\.com\b +\bchristian4sale\.com\b +\buggoutletstores\.com\b +\bchristianonlineshop\.com\b +\bdesignerhandbagscom\.com\b +\bhisentrade\.com\b +\bwholesale-replica-chanel\.com\b +\bnfljerseysinbox\.com\b +\basolo-shoes\.com\b +\bnikeairshox\.com\b +\bair-jordan-10\.com\b +\bjeansclassic\.com\b +\bairmax-shoe\.com\b +\ball-star-shoes\.net\b +\bcoolsuprashoes\.com\b +\buggsbox\.com\b +\bcheap-boots-for-sale\.co\.uk\b +\bboots-uggs\.com\b +\bdiscount-winter-boots\.com\b +\bcheap-luxury-boots\.com\b +\bchi-ghd-hair-straighteners\.com\b +\bugg-snow-boots\.com\b +\ball-star-shoe\.com\b +\bchinawholesale2008\.com\b +\btopmallnet\.com\b +\bcheapwears\.com\b +\bairmaxshoesite\.com\b +\bxhdtrade\.com\b +\bbrandproductsonsale\.com\b +\bxolook\.com\b +\bairjordan-2010\.com\b +\blebron-james-shoe\.com\b +\bair-shox\.com\b +\bhothotshoes\.com\b +\bofferairjordan\.com\b +\bugg-uk\.net\b +\bdiscountbapeshoes\.com\b +\bswimsuits-2010\.com\b +\buggclassic-shop\.com\b +\bcheap-uggboots\.net\b +\bchinawholesale2009\.com\b +\blacostepolo-shirts\.com\b +\blouis-vuitton-outlet-store\.com\b +\bmoncler-jackets-outlet\.com\b +\bjeans-for-sale\.com\b +\busa-basketball-shoes\.com\b +\b4uaf\.com\b +\bdiscount-bape-shoes\.com\b +\bsuprasema\.com\b +\bdunk2u\.com\b +\bdiscount-nike-dunk-shoes\.com\b +\bchaneloutletstores\.com\b +\bkickssalon\.com\b +\buggboots-home\.net\b +\bdior-store\.com\b +\bsunglasshutshop\.com\b +\buggbootspace\.com\b +\bnike-air-max-shoes\.com\b +\buggprovide\.com\b +\buggsalezone\.com\b +\b4upuma\.com\b +\b4ugucci\.com\b +\bcheap-louboutin-shoes\.com\b +\boutlet-ugg-boots\.com\b +\bairmax360\.us\b +\bairofshoes\.com\b +\bair-jordan-7\.com\b +\bcosmetic-brush-sets\.com\b +\bmbt-outlet-store\.com\b +\buggs-outlet-store\.com\b +\bairmax360\.net\b +\bmoncler-down-jackets\.com\b +\blvbagstrade\.com\b +\bnbasupplier\.com\b +\bjordans-sneakers\.com\b +\b97999\.com\b +\b2010newshoes\.com\b +\bmbtselling\.com\b +\bitemsuppliers\.com\b +\bsale-sneakers\.com\b +\bcheap-ugg\.net\b +\bshopmbtnice\.com\b +\bcoachcharming\.com\b +\bsellshoebag\.com\b +\bdicountshoesmall\.com\b +\bdicountshoesale\.com\b +\bugged\.org\b +\b95800\.net\b +\bgaoes\.net\b +\bshopmerry\.com\b +\bliveupup\.com\b +\bshoplark\.com\b +\bourbigtime\.com\b +\buggbootsworlds\.com\b +\blouboutinbestshoes\.com\b +\bshopglad\.com\b +\bfasiontrade\.com\b +\btruereligionjeansstoes\.com\b +\bmobiper\.com\b +\bjimmychoo4sale\.com\b +\bkarenmillens\.com\b +\bbougiehandbags\.com\b +\bcoogiswear\.com\b +\bgiuseppezanottishoessale\.com\b +\balgbiotek\.com\b +\bparascientifica\.com\b +\bgulistanememon\.blogspot\.com\b +\btiket2\.com\b +\bcnekt\.com\b +\b4gk\.com\b +\btli\.tl\b +\bz8\.ro\b +\bsaf\.li\b +\btdb\.rs\b +\bufil\.ms\b +\bflx\.im\b +\bfashionaltrade\.com\b +\bcellulite\.co\.uk\b +\buggs1000\.com\b +\bguccionlinesale\.com\b +\buggsboots-australia\.com\b +\btiffanyesale\.com\b +\bsalejeansmart\.com\b +\bjeansclothingstore\.com\b +\bedhardylastest\.com\b +\buggslife\.com\b +\bpanjewellery\.com\b +\bepanbeads\.com\b +\bsaleghdhairs\.com\b +\bghduk2010sale\.com\b +\bshopguccionline\.com\b +\bghduksalon-sale\.com\b +\buggsboots-store\.com\b +\btruereligionjeans-store\.com\b +\blouis-vuitton-overstock\.com\b +\bcheapmoncler\.com\b +\buggenjoy\.com\b +\bedhardyshopclothing\.com\b +\bukhairghdsale\.com\b +\bukghdhaironlinestore\.com\b +\bshopghdhairuk\.com\b +\bshoppanjewellery\.com\b +\belinkslondons\.com\b +\bghdhaircheapuk\.com\b +\buggs8\.com\b +\bbeadsonlinestore\.com\b +\bghdhairukonline\.com\b +\bluxurybagsin\.com\b +\btradeugg\.com\b +\buk-ghdsaler\.com\b +\bhairghd-shop\.com\b +\bukghdhair\.org\b +\bghdhairinuk\.com\b +\bghdhairukmart\.com\b +\btiffany1837jewellerys\.com\b +\bhairghdstraightenermall\.com\b +\bshoponlinejeans\.com\b +\buggsbootssole\.com\b +\bghdhairukmart\.net\b +\bonlineguccishop\.com\b +\beuggsboots\.com\b +\beuggbootsshop\.com\b +\bshopguccistore\.com\b +\blinkslondonsale\.com\b +\bsaleuggsky\.com\b +\bprada-online-store\.com\b +\bhairghdstorecheap\.com\b +\bghdhairshopukcheap\.com\b +\bcheapghdshair\.net\b +\btimberland-shoe\.com\b +\bmbtshoes4sale\.com\b +\buggofficial-retail\.com\b +\bcologhd\.com\b +\bugg-mall\.com\b +\bshopghdhairstraightener\.com\b +\byeahluxury\.com\b +\bshopmonclerjackets\.com\b +\buggsboots-mall\.com\b +\bbuyghd2010\.com\b +\bdesignerjeans-online\.com\b +\bshopmbtshoesonline\.com\b +\buggsboots-mart\.com\b +\betruereligionjeans-store\.com\b +\bcheapwatches4sale\.com\b +\byestruereligionjeans\.com\b +\bjeansonlinemart\.com\b +\bguccionlinemall\.com\b +\bgucci-online-store\.com\b +\bshopedhardystore\.com\b +\bgucci-onlineshop\.com\b +\bugg1000\.com\b +\buggmore\.com\b +\bugg4shop\.co\.uk\b +\bhealthvideo\.tk\b +\bfavoripartner\.com\b +\bmetin2wiki\.ru\b +\bpageranksites\.com\b +\bht\.ly\b +\bsms4luv\.com\b +\bpqr\.in\b +\bbagsop\.com\b +\bhome-our\.com\b +\bgcgoods\.com\b +\bmbtshoesaleonline\.com\b +\bhome-shoes\.com\b +\bhome-more\.com\b +\bshoes-from-china\.com\b +\bwalkervillechiropractic\.com\.au\b +\bguccigogo\.com\b +\bmydesignerbasket\.com\b +\bswissluxury\.com\b +\bcoachbagselling\.com\b +\beshoptimes\.com\b +\bairjordandiscount\.com\b +\bedshoponline\.com\b +\bluxurycrystal\.com\b +\bjuicy-couture-handbags\.org\b +\bpx90beach\.com\b +\bcheapcoachbags2010\.com\b +\bjuicy-couture-outlet\.org\b +\boursbag\.com\b +\bcanadagooses\.com\b +\broyaltimepiece\.com\b +\bguccieshop\.com\b +\bcoachnew\.com\b +\bclnetstoreonline\.com\b +\bmbtshoesmbt\.com\b +\bjimmychooworld\.com\b +\bcheapcoachbagssale\.com\b +\bpolardiamonds\.com\b +\blouis-vuitton-outlet\.org\b +\bcoachbags1941\.com\b +\bbags212\.com\b +\btopcredittrade\.com\b +\bcheapstores2u\.com\b +\blouisvuitt4u\.com\b +\bvogueme\.com\b +\bwatchtoyou\.com\b +\bcheaplouboutins\.com\b +\bloveinsport\.com\b +\bnew-fashion\.org\b +\ballofbags\.com\b +\brmjd\.info\b +\bpumashoesite\.com\b +\bincredibleitem\.com\b +\badirondacktall\.com\b +\bhighkoo576\.com\b +\badirondackboot\.com\b +\bkissglasses\.com\b +\bchanelhandbags2u\.com\b +\bcheersnfl\.com\b +\btopcredittrade6\.com\b +\beyewearhot\.com\b +\bsunglasses-hut\.com\b +\bbagsontheway\.com\b +\btopcredit-trade\.com\b +\bnikeshoessale\.com\b +\btopclothstrade\.com\b +\bkaleidoscope-dh\.com\b +\buggboots-trade\.com\b +\bmodselling\.com\b +\btopwatchessale\.com\b +\bhandbagsol\.com\b +\bshoppingfuns\.com\b +\bglassesgroup\.com\b +\bwbrandbags\.com\b +\bthehandbagbuzz\.com\b +\beastoffer\.com\b +\boobag\.com\b +\bbuyerdiy\.com\b +\busbagus\.com\b +\btopfashionboutique\.com\b +\bdesignerbagwholesale\.com\b +\bstylereplicabags\.com\b +\bhighreplica\.com\b +\bhandbag365\.com\b +\bilovethisbag\.com\b +\bmixorders\.com\b +\bbagaol\.com\b +\bcheap-louis-lv\.com\b +\btophandbagssell\.com\b +\bluxunion\.com\b +\bisreplicas\.com\b +\befashionbags\.net\b +\bok-hi\.com\b +\bcomeoffer\.com\b +\bchinabagseller\.com\b +\bcnrreplicas\.com\b +\bffchloe\.com\b +\badozenbag\.com\b +\bbrandhandbagreplica\.com\b +\bshopyop\.com\b +\bdaydayvs\.com\b +\bomeioffer\.com\b +\bbags-coach\.com\b +\bcheap-bags\.org\b +\bfashion-brands\.co\.uk\b +\btopareplica\.com\b +\bbrandedavenue\.com\b +\bwbrandbag\.com\b +\be4brand\.com\b +\bbrandbagzone\.com\b +\bmasshandbag\.com\b +\breplicabaguk\.com\b +\bedhardybuy\.com\b +\baf1outlet\.com\b +\bcoachbagsshops\.com\b +\bsb-dunks\.us\b +\bcheap-chanel\.com\b +\bcoachlvhandbags\.com\b +\bcoachsoutlet\.com\b +\bchanelbags2\.com\b +\bpridebag\.com\b +\bb2b-er\.com\b +\bwetopbag\.com\b +\bwangcai9527\.com\b +\bnewlouboutins\.com\b +\b3bextra\.com\b +\bluxurysaleplace\.com\b +\bcoachbagschain\.com\b +\bokaygoods\.com\b +\boka1225\.com\b +\bmaplestorymesos4u\.com\b +\begsale\.com\b +\bok1225\.com\b +\bfcsgame\.com\b +\bmetin2yang\.cc\b +\bpaypalgame\.com\b +\bfast-wowgold\.com\b +\bsalegolds\.com\b +\bdofus-ankama\.com\b +\bugg-boots-online-usa\.com\b +\bjuicy-bags-sale\.com\b +\bjuicycoutureusa\.com\b +\bnike-air-max-christian-louboutin\.com\b +\bzlfurniture\.com\b +\bjckwwholesale\.com\b +\bdy-wholesale\.com\b +\bsalembtshoes\.net\b +\bsilver-tiffany\.com\b +\bsaleairmaxshoes\.com\b +\bnflfansjersey\.com\b +\bnewaj\.com\b +\bgucci-shoes\.cc\b +\bugg2u\.net\b +\bphoneworth\.com\b +\bnbajs\.com\b +\bmax-sky\.com\b +\bcheap-mbt-shoes\.net\b +\bmonclerjacketsstore\.com\b +\bjordan2u\.com\b +\bjordansport2\.com\b +\bmoncler-discount\.com\b +\bkissaj\.com\b +\bbackpackssaleoutlet\.com\b +\baj-pt\.com\b +\blajordanshoes\.com\b +\bgucci-zone\.com\b +\bsuprashoesvip\.com\b +\bcheap-jordan-shoes\.net\b +\bmoncleroutlet\.net\b +\bbackpackswholesaler\.com\b +\bnorthfacefans\.com\b +\bcheap-air-jordan\.cn\b +\bshoes-mbt\.net\b +\bfivefingerssale\.com\b +\bsellnfljersey\.com\b +\bjordangoogle\.com\b +\bmonclerouterwearshop\.com\b +\buggboots-onsale\.net\b +\bairmax-online\.net\b +\bed-hardy-outlet\.net\b +\bmbtshoesstore\.net\b +\bbrandofshoes\.com\b +\bedhardy4sale\.com\b +\byzxsc\.com\b +\bbootsoutletstore\.co\.uk\b +\bboots-outlet-store\.co\.uk\b +\bbootsforsale\.us\b +\bboots-outlet-stores\.co\.uk\b +\bcheap-mbt-shop\.com\b +\bnikeshoefr\.com\b +\bboryokugai\.com\b +\bshopofdresses\.com\b +\bmerimobiles\.com\b +\bpandawill\.com\b +\bsunnygain\.com\b +\bgetbetterlife\.com\b +\bpearlcrown\.com\b +\blaptopbatterypack\.org\.uk\b +\bsheenpearl\.com\b +\blaptopbatteriesinc\.co\.uk\b +\bwholesaleinc\.net\b +\bkissmymelinda\.com\b +\bwomencoachbags\.com\b +\blaptopbatteriesinc\.com\.au\b +\boakleysunglassesforsale\.com\b +\bdj-wholesale\.com\b +\belectronics-provider\.com\b +\bglad-shopping\.com\b +\bchinawholesaleonline\.org\b +\bccctop\.com\b +\bchinagoodsbay\.com\b +\bbazzarbd\.com\b +\bctobay\.com\b +\btheintershoponline\.com\b +\bmyecstar\.com\b +\bonseeking\.com\b +\bchinesehobby\.com\b +\bchinagoshop\.com\b +\bchina-blackberrywholesale\.com\b +\bhellobuynow\.com\b +\bjordaner\.com\b +\bgsmdevice\.com\b +\bdodressme\.com\b +\bucloth\.com\b +\belectron-mall\.com\b +\bsunjiangpoffd\.com\b +\bhohotrade\.com\b +\buggsbootshoes\.com\b +\beos-electron\.com\b +\btoaaa\.com\b +\bgofars\.com\b +\b10000cool\.com\b +\btopbrandswholesale\.com\b +\bnewdigi\.com\b +\btopbag2u\.com\b +\bgoodweddingdresses\.com\b +\blove-beautiful\.com\b +\bchineseshoponline\.com\b +\bzacoo\.com\b +\bibulkwholesale\.com\b +\bmyboxedset\.com\b +\bwholesale-chinashop\.com\b +\bfeagou\.com\b +\bbomwin\.com\b +\bdvdsohot\.com\b +\btoobest\.com\b +\bwholesaleretailsupplies\.com\b +\bmydalle\.com\b +\bo-digital\.com\b +\beluxurybar\.com\b +\bwholesalepricee\.com\b +\bmallmic\.com\b +\beast9west\.com\b +\bchinawholesalegoods\.com\b +\bsellshell\.com\b +\bchinawholesalefocus\.com\b +\b121specials\.com\b +\b7starspecialsales\.com\b +\bgodeen\.com\b +\bjuleer\.com\b +\b1688sale\.com\b +\bbestownstore\.com\b +\bwholesaleonepiece\.com\b +\bdiscount-sport-jerseys\.com\b +\bhobby-china\.com\b +\bbrandedbuying\.com\b +\bjerseysoho\.com\b +\bchinasilkpearl\.com\b +\bbuyamore\.com\b +\bsotobuy\.com\b +\bbbcshopping\.com\b +\be4cn\.com\b +\bcrystal-sun\.net\b +\bbeyoursource\.com\b +\bhifungoods\.com\b +\bwholesalenight\.com\b +\bdhwatch\.com\b +\bmyselfshop\.com\b +\bvikishop\.com\b +\bmeegen\.com\b +\bvivedresses\.com\b +\bshoesxx\.com\b +\bebay-hk\.com\b +\bec87\.com\b +\bslimmings\.com\b +\bp90x-on-sale\.com\b +\bracquet4sale\.com\b +\bstraightener-ghd\.com\b +\bvivehandbags\.com\b +\boutlets-wholesale\.com\b +\bcheap-chanel-watchers\.com\b +\bcinte-shop\.com\b +\bhkfashionmall\.com\b +\b18fashionshopping\.com\b +\btriole\.cn\b +\bcafumall\.com\b +\bomgcar2010\.com\b +\bqcdeals\.com\b +\bcheap-goods\.org\b +\bopen-mall\.com\b +\bbranddiscountstore\.net\b +\bartfujian\.com\b +\bongoin\.com\b +\bdressforchildren\.com\b +\bpoloshopweb\.com\b +\bbeddingitems\.com\b +\bbrandunderdress\.com\b +\bbrandwatcheshop\.com\b +\bbrandsportshoe\.com\b +\bzjzyfz\.net\b +\bbecmart\.com\b +\bwholesaleany\.com\b +\bhngstore\.com\b +\bvoguemania\.com\b +\bcloud9mart\.com\b +\bchinafactoryoutlets\.net\b +\b51ctoall\.com\b +\bctoshop\.info\b +\bedhardyshop\.in\b +\bhealing-skull\.com\b +\bb2cshare\.com\b +\bchanelwatcheszone\.com\b +\bedhappy\.com\b +\bedigitalwholesale\.com\b +\btimetoshopping\.com\b +\blooklowprice\.com\b +\bwholesale-weddingdress\.com\b +\bchinajiaho\.com\b +\bbeautyonlines\.com\b +\bwholesale-bridesmaiddress\.com\b +\bamansh\.com\b +\bwholesaleworlds\.com\b +\bshopping588\.com\b +\bsatisoffer\.com\b +\bsuperwweb\.com\b +\beagle-officefurniture\.com\b +\bgoodwholesaleshop\.com\b +\bwholesaleenjoy\.com\b +\bjerseysco\.com\b +\b2010chinamobilephone\.com\b +\bcomdress\.com\b +\ba-capshop\.com\b +\bmy-wholesale-store\.com\b +\bhandbagsshow\.com\b +\bwholesale-bridalgown\.com\b +\b21-replica\.com\b +\bdragoneshop\.com\b +\blacosteoutletonline\.com\b +\btop-gift\.net\b +\btrademass\.com\b +\bhead-sneaker\.com\b +\bwholesalecheapsneaker\.com\b +\bvip1trade\.com\b +\baolush\.cn\b +\bgo2nflshop\.com\b +\b8dress\.com\b +\bjerseystore4u\.com\b +\bcce-electronics\.com\b +\bszht-trade\.com\b +\blishoes\.com\b +\bcnproductswholesaler\.com\b +\blanglangtrade\.com\b +\bcosmeticshotsale\.com\b +\bshoesbuybuy\.com\b +\bbuyshoesmbt\.com\b +\bcheapairjordanstore\.com\b +\bdesignerclothestore\.com\b +\b4adidas\.com\b +\bbrush111\.com\b +\bbrush999\.com\b +\bplentystock\.com\b +\buuoffer\.com\b +\bp90xworkouthome\.com\b +\bbulknfljerseys\.com\b +\bmac-brush\.com\b +\breplicabags1\.com\b +\bswissbestreplicas\.com\b +\breplicas-watch\.com\b +\bcosmohit\.com\b +\breplical\.com\b +\befashion-replica\.com\b +\breplicashandbag\.com\b +\bbuyluxwatch\.com\b +\bhandbags-replica-store\.com\b +\bpsptg\.com\b +\bdiscount-replicahandbags\.com\b +\bhandbags-handbag\.com\b +\bfake-designer\.com\b +\breplica-louisvuitton\.com\b +\bbestchiropractoradelaide\.com\.au\b +\bdensitygs\.info\b +\bdensitygs\.com\b +\bverifyemailaddress\.org\b +\byouporn\.gr\b +\bcheapugg-onlinestore\.com\b +\bbootmalls\.us\b +\bpickuggshop\.com\b +\buggswomensshoes\.com\b +\bugguggnew\.com\b +\buggbootorg\.com\b +\buggsboothotsell\.com\b +\bugg-supershop\.com\b +\baustraliabootsforsales\.com\b +\bbrandmartonline\.com\b +\bbuy-bootsshoes\.com\b +\bbuycheapuggsboots\.com\b +\bcheapuggtop\.com\b +\buggbootsseries\.com\b +\bugghomelike\.com\b +\buggonly\.us\b +\buggtopselling\.com\b +\busuggbootsoutlets\.com\b +\bvogueuggisboots\.com\b +\buggsbootdiscount\.com\b +\bbootsmalls\.us\b +\besaleuggboots\.info\b +\bwinterwarmboots\.com\b +\busuksale\.com\b +\bcheapuggsonline\.net\b +\buggfactorystore2\.net\b +\buggfactorysale-uk\.com\b +\buggclassicbootshop\.com\b +\buggtradetopline\.com\b +\bbuyuggbootsdirect\.net\b +\bbootspart\.com\b +\buggbootoff\.com\b +\bitshoesbox0\.com\b +\buk-b2boots-shop\.com\b +\bugg-uggaustralia\.com\b +\bugg-buyer\.com\b +\bcheapugg-mall\.com\b +\bevshoes\.com\b +\buggbootsems\.com\b +\bugg-boots\.ca\b +\buggcanada\.ca\b +\buggdirectstore\.com\b +\bbootsonsalenow\.net\b +\buggbootsave\.com\b +\bcheapugg-boots\.com\b +\bbuycheapuggboots\.com\b +\bsiteugg\.com\b +\bdiscountuggbootstribe\.com\b +\bsnowboots4sales\.com\b +\buggschuhe\.com\b +\baustraliauggboot\.net\b +\bboonoutlet\.com\b +\bbootsshop2010\.com\b +\bfashionuggsboot\.com\b +\blastestuggboots\.info\b +\bugg4ladies\.com\b +\buggbootsines\.com\b +\buggbootstrading\.com\b +\buggsale\.com\.au\b +\buggs-saleonline\.com\b +\buggukc\.com\b +\bwholesalesellboots\.com\b +\buggbootsfun\.com\b +\buggbootbar\.com\b +\buggboots2buy\.com\b +\buggaustraliaonline\.com\b +\buggs1\.com\b +\bsupuggs\.com\b +\bbesterwin\.com\b +\bbootsonway\.com\b +\bcheapugg-onlinestore\.net\b +\bhmazon\.com\b +\bnewuggsboots\.com\b +\buggbootsbailey\.info\b +\buggboots-gb\.com\b +\bugggoods\.info\b +\buggssky\.com\b +\buggretailer\.org\b +\bbestuggoutlet\.com\b +\buggsbootsireland\.com\b +\buggbootsmart\.com\b +\buggbootslove\.com\b +\buggonsale\.com\b +\bugggogo\.com\b +\bfootuggboots\.com\b +\bgood-uggboots\.com\b +\buggoutlet-store\.com\b +\bugg18\.com\b +\bsnowbootsboutique\.com\b +\bclassicsnowboots\.com\b +\bfashioncolourway\.com\b +\b010jordan\.com\b +\bglowandsparkle\.com\b +\buggsaustralia-uk\.com\b +\buggoutlet-usa\.net\b +\buggoutletstore\.net\b +\buggretailer4uk\.com\b +\b2009ugg-outlet\.com\b +\buggfactoryoutlet\.com\b +\baubootssale\.com\b +\baustraliauggoutlet1\.com\b +\bsweetuggboots\.com\b +\buggbootushop\.com\b +\bcenturyugg\.com\b +\baubootsale\.com\b +\bshoes-uggboots\.com\b +\b09uggbootsonline\.co\.uk\b +\buggsellnow\.com\b +\buggstime\.com\b +\bclassicsheepskinboots\.com\b +\buggbootforsale\.com\b +\bhot-saleboots\.com\b +\busuggboot\.com\b +\buggbootsforyou\.com\b +\bugg-zone\.com\b +\b09uggboots\.co\.uk\b +\bugginter\.com\b +\bolshoe\.com\b +\buggboots-shop\.com\b +\buggshelf\.com\b +\buggsoflondon\.com\b +\bladiesugg\.com\b +\bformyboot\.com\b +\bwholesalechinaboots\.com\b +\bgetsnet\.com\b +\buggstyles\.com\b +\buggs4sale\.co\.uk\b +\bmimiugg\.com\b +\bmissugg\.com\b +\bsale-uggboots\.com\b +\buggdaily\.co\.uk\b +\bhotuggbootsonline\.com\b +\bbootslife\.com\b +\btheuggword\.com\b +\buggdirect\.net\b +\buggoutletsusa\.com\b +\bgbpugg\.co\.uk\b +\bbuyuggonline\.com\b +\bhotstyleugg\.com\b +\buggbootsgenuine\.com\b +\belegantugg\.com\b +\buggcase\.com\b +\buggg\.org\b +\bmyhothot\.com\b +\bcheapuggbootsdiscount\.com\b +\bgodugg\.com\b +\bselluggsboots\.com\b +\bkissuggboots\.com\b +\bcome2ugg\.com\b +\buggbootsforsale\.com\b +\buggbootsaleuk\.com\b +\bsupplyugg\.co\.uk\b +\bnewsnowboots\.com\b +\buggwebsite\.com\b +\bcheapsugg\.com\b +\bbootsok\.com\b +\bbuyshopugg\.com\b +\bsalesluxury\.com\b +\buggboot-malls\.net\b +\bugg2top\.com\b +\buggsvipshop\.com\b +\bglobaluggboots\.com\b +\buggbootship\.com\b +\bsaleugg\.co\.uk\b +\bbeeplugged\.com\b +\bflyinsnow\.com\b +\bkissboots\.co\.uk\b +\bpopbiz24\.com\b +\buggbootsforsale\.co\.uk\b +\buggfeel\.com\b +\b100mfugg\.com\b +\bbuddyugg\.com\b +\bhomeugg\.com\b +\buggnewyork\.com\b +\buggbootscity\.com\b +\bcheapuggboots4sale\.com\b +\bisellugg\.com\b +\buggwarmboots\.com\b +\buggfactorystore\.com\b +\bugglybootsdirect\.com\b +\bmiugg\.com\b +\bgenuineuggstore\.com\b +\baustralianiceboots\.com\b +\baustraliabootssale\.com\b +\baustraliaugg-shop\.com\b +\bcardy-uggboots\.com\b +\bretailuggs\.co\.uk\b +\bshoppinguggboots\.com\b +\buggcardyboots\.co\.uk\b +\buggs-uk\.biz\b +\bugguksale\.com\b +\buk-uggs\.com\b +\bwholesaeuggboots\.com\b +\buggmall\.co\.uk\b +\bbuyuggbootnow\.com\b +\bsheepskinbootonline\.com\b +\bbuybootssite\.com\b +\buggeshopping\.com\b +\bausboots4u\.com\b +\bausbootsoffer\.com\b +\baustraliaboots\.co\.uk\b +\baustralianuggs-uk\.com\b +\baustraliauggoutlet\.com\b +\bbuybootonline\.com\b +\bbuyuggnow\.co\.uk\b +\bcheapuggbootsonsale\.com\b +\bdirectuggboot2\.com\b +\bmorevogue\.com\b +\bmyuggsales\.com\b +\bnuggetshoes\.com\b +\bofficialuggboots\.net\b +\bokuggshop\.com\b +\bsaleugggoods\.com\b +\bsell-boots\.info\b +\bsnowbootsshop\.com\b +\bsweatboots\.com\b +\btheuggstyle\.com\b +\bugg\.name\b +\bugg1u\.com\b +\buggaustralia-uk\.biz\b +\bugg-bag\.com\b +\buggbootfactory\.com\b +\buggbootsalef\.com\b +\buggboots-aus\.com\b +\buggbootshopnow\.com\b +\buggbootsstoreonline\.com\b +\buggbootstoyou\.com\b +\buggbootsz\.com\b +\buggcollections\.com\b +\buggmart\.co\.uk\b +\buggonlineseller\.com\b +\buggscom\.com\b +\buggsearch\.com\b +\buggshopd\.com\b +\buggsinlondon\.com\b +\buggslondon\.com\b +\buggs-online\.org\b +\bugg-ukoutlet\.com\b +\buggvogueboots\.com\b +\buk-ugg\.co\.uk\b +\buk-uggs-sale\.com\b +\bus-uggoutlet1\.com\b +\bwarmugg\.com\b +\bwelikeugg\.com\b +\bwinteruggs\.com\b +\buggboots-sale\.com\b +\bgoodugg\.co\.uk\b +\bgo4ugg\.com\b +\bugg2you\.com\b +\becwarmboots\.com\b +\bsell-ugg\.com\b +\buggbootsforsale\.us\b +\buggboots-zone\.com\b +\bugg4boots\.co\.uk\b +\bshoppingnikesb\.com\b +\badidasvipshop\.com\b +\bafkicks\.com\b +\bairmaxmart\.com\b +\bshopping-jerseys\.com\b +\bugginlondon\.com\b +\bshopshox\.com\b +\bhotmlbjerseys\.com\b +\bbestshoxshoes\.com\b +\bmyuggbootssale\.com\b +\bsuperairjordan\.com\b +\bhotmbtshoessale\.com\b +\bsellairmax\.com\b +\bmbtshoeshotsale\.com\b +\bsupermbtshoes\.com\b +\bshoppingmbtshoes\.com\b +\bjerseys-shopping\.com\b +\bmysmalldeal\.com\b +\buggsaappaat\.info\b +\buggsnederland\.info\b +\buggsnorge\.info\b +\bdgshoeshi\.com\b +\btopmbtshop\.com\b +\binnikeshox\.com\b +\bugg-boots-london\.com\b +\blouisvuittonbagsonline\.com\b +\btoogle\.cc\b +\bmyretrokicks\.com\b +\bdearjordanstore\.com\b +\bmeetjordan\.com\b +\bpro-sneakers\.com\b +\bfreshstyleshop\.com\b +\bjordanshoponline\.com\b +\bfreshstyledrop\.com\b +\bokaysneakers\.com\b +\bnikedress\.com\b +\bkickshouse\.com\b +\bdiscountretroshoes\.com\b +\bpromo-sneakers\.com\b +\bmyretroshoe\.com\b +\bweststreetclothes\.com\b +\bugg-australia-sale\.com\b +\bflysneaker\.com\b +\bcozyuggaustralia\.com\b +\bonlyairforceone\.com\b +\bcoolkicksonline\.com\b +\bsaletimberlandboots\.com\b +\btravelsitesonline\.net\b +\bbiodiesel-processor\.biz\b +\bspectech\.dn\.ua\b +\bdensitygs\.info\b +\bdensitygs\.com\b +\bhockeyfights\.com\b +\brc-shop\.net\.ms\b +\bperfectwriting\.co\.uk\b +\bcustomwritinghelp\.co\.uk\b +\basianbeat\.com\b +\bminasdirect\.com\b +\bfancyuggboots\.com\b +\bp90xvideodvd\.net\b +\buggboots-mall\.net\b +\bbestuggboots\.net\b +\bnikemaxsneakers\.com\b +\bgucci3\.com\b +\bpoloee\.com\b +\beluxzone\.com\b +\bbikininstyle\.com\b +\bshoeset\.com\b +\bnikeshoxmax\.com\b +\bshirthotsale\.com\b +\bmybestedhardy\.com\b +\bbestpolotshirt\.com\b +\bnikeairmaxnz\.com\b +\bsexylingeriehome\.com\b +\bsexylingeriehot\.com\b +\bpumashoeshot\.com\b +\bfitpandora\.net\b +\bnike-shoes-max\.com\b +\bshoes-christian-louboutin\.com\b +\bjerseys-guide\.com\b +\bmissfloral\.com\b +\bantexbuyer\.com\b +\bcharmheels\.com\b +\breplika-watch\.com\b +\bfashionenight\.com\b +\bcharmheels\.com\b +\bnflsupershop\.com\b +\b68jewelry\.com\b +\bfashionjewelryaccessorieswholesale\.com\b +\brayricejersey\.com\b +\btrend-apparel\.com\b +\bebagssale\.com\b +\befairshop\.com\b +\bwinbowgems\.com\b +\bgamemk\.com\b +\bucoolstuff\.com\b +\bonlypuma\.com\b +\basicsshow\.com\b +\bdiscounttoryburch\.com\b +\bnbabasketballshoes\.com\b +\bkobeshoes\.biz\b +\bnikeairmax\.org\b +\bthesuprashoes\.com\b +\bcollect-shoes\.com\b +\bdresseszone\.com\b +\badidasonlineshop\.com\b +\bgobizfashion\.com\b +\bbootsofficial\.com\b +\boksupra\.net\b +\breebokjerseyshop\.com\b +\bcheapnfljerseys\.info\b +\byoupradastore\.com\b +\bp90x-workout\.biz\b +\bthetopshoes\.com\b +\bchi-flat-iron\.biz\b +\buggsbootsstores\.com\b +\bbyever\.com\b +\bfind-af1\.com\b +\bboseinear\.com\b +\bnba2you\.com\b +\bpumashoesoutlet\.com\b +\bairmaxonlinesite\.com\b +\bjdshoe\.com\b +\bshopkiss\.com\b +\blinksbracelet\.com\b +\bvip-boots\.com\b +\bmoncler-jackets\.net\b +\bolasics\.com\b +\btiffany4sale\.org\b +\bbagsagent\.com\b +\bsneakershoesite\.com\b +\bpickcoachbags\.com\b +\bnewsslong\.com\b +\bsupramvp\.com\b +\byoulacoste\.com\b +\bwomenuggshoes\.com\b +\bsalembt\.com\b +\bnewconverseshoes\.com\b +\buggbootscool\.com\b +\bmallabraod\.com\b +\btopuggshoes\.com\b +\btiffany1837jewelrys\.com\b +\buggur\.com\b +\bbuy-supra-shoes\.org\b +\btagder\.com\b +\btopbizbags\.com\b +\buggbays\.com\b +\bairmaxsite\.com\b +\bpaulsmithsalestore\.com\b +\bwholesalesneakercn\.com\b +\b5fingersshoes\.org\b +\bmofangcheng\.net\b +\bshoenets\.com\b +\bpaulsmithforsale\.com\b +\bsuchnice\.com\b +\btoblingdvd\.com\b +\bbasketballbay\.com\b +\buggclothingboots\.org\b +\beby-store\.com\b +\bpumaebay\.com\b +\btoopolo\.com\b +\bairyeezykicks\.com\b +\blikedunksb\.com\b +\btoopghd\.com\b +\bonlineanf\.com\b +\btribepainting\.com\b +\b2ugg\.org\b +\baf1myshop\.com\b +\bshepherds-life\.com\b +\bgowayshoe\.com\b +\bmyshopplaza\.com\b +\bghd-hairstraightenersuk\.com\b +\bugg-boots\.nl\b +\bjackwillurl\.com\b +\blinksofboots\.com\b +\bghdstore-sydney1\.net\b +\bugg-stiefel\.com\b +\bnflshopping\.net\b +\bjackets-talk\.org\b +\bjackets-buy\.org\b +\bjackets-online\.org\b +\bjackets-world\.org\b +\bshoes-stock\.org\b +\bmbtshoessale\.net\b +\bmaxmaradress\.com\b +\biinthebox\.com\b +\byidianf\.com\b +\btoryburchstores\.com\b +\bcoachoutletstore2010\.com\b +\bvisvim-shoes\.org\b +\blaptopbattery2012\.com\b +\bp90x-workouts\.org\b +\bcoachoutletstore1\.com\b +\boctopus-paul\.org\b +\binsanitywokouts\.org\b +\bcore-rhythms\.org\b +\bbestabcd\.com\b +\bcoachoutletstores\.us\b +\byidiani\.com\b +\bhealthymobi\.com\b +\bghdgoodchi\.com\b +\bairmaxbest\.com\b +\bmesbottesugg\.com\b +\bpower13dvds\.net\b +\byidianc\.com\b +\b123softwareshoping\.com\b +\b9lco\.com\b +\bcqdlmk\.com\b +\bhksportnike\.com\b +\bbalenciagabags\.org\b +\bpaco-chicano\.com\b +\bchi-outlets\.net\b +\baddugg\.com\b +\bperfectmbtshoe\.com\b +\bagbose\.com\b +\btiffany1837\.info\b +\bugg-en\.com\b +\bbagmalls\.com\b +\bugg2me\.com\b +\bmbtlami\.com\b +\bdiscount-uggs-boots\.com\b +\buggtowin\.com\b +\bedhardy-buy\.com\b +\baf1instore\.com\b +\bnewpaulsmith\.com\b +\baf1star\.com\b +\bprettysaler\.com\b +\bghdprincess\.com\b +\buggsbootsoutlet\.org\b +\buggshoesbrands\.com\b +\bairforceoneshop\.com\b +\bmbtsource\.com\b +\boilartsell\.com\b +\bvogueforever\.com\b +\bmbtshoes4clearance\.com\b +\bairjordanshow\.com\b +\bbuymbtshoe\.com\b +\btougg\.com\b +\buggyard\.com\b +\bghdhaironstyler\.com\b +\bghdgoogle\.com\b +\bghdfactorystore-uk\.com\b +\bp90xdvds-shop\.com\b +\bchiirons-outlet\.net\b +\bghdoutlet-sydney1\.net\b +\bchiirons-sale\.com\b +\bpinkchishop-us\.net\b +\bysl-highheel\.com\b +\bbirkenstockmall\.com\b +\bbirkenstockshoesshop\.net\b +\bghd-mk4\.net\b +\bghdhotsale-au\.net\b +\bghdironoutlet-au\.com\b +\bchiifactorydirect-usa\.com\b +\bchisale\.net\b +\bchihairshops-usa\.com\b +\bcoolbirkenstockstore\.com\b +\bp90xdvdstore-us\.net\b +\bbirkenstock-cheap\.net\b +\bp90xdvdstore-us\.com\b +\boutlet-birkenstock\.net\b +\bpaulsmithfactoryoutlet\.com\b +\bchiturboshop-us\.com\b +\binsanitytopshop\.com\b +\bfabulousghd\.com\b +\bbirkenstockcheap\.com\b +\bcheapuggbootonline\.com\b +\bchifactorydirect\.com\b +\bghdshopbar\.com\b +\bbirkenstockoutlet\.info\b +\bbirkenstock-cheap\.com\b +\bcooleyewearonline\.com\b +\bghdfactoryshop-au\.com\b +\bghdoutlets-au\.com\b +\bghdperfect-au\.net\b +\boutletbirkenstock\.net\b +\bcoolbirkenstock\.com\b +\bghdcheapstore\.net\b +\bchiiron-sale\.com\b +\bpaulsmithoutletshop\.net\b +\bghdoutletstores-uk\.com\b +\bbirkenstockonline\.net\b +\bghdcheapmallonline\.net\b +\buk-ghdhairstores\.com\b +\buksunglasses\.net\b +\bbestp90xshop\.com\b +\buk-ghdhairstores\.net\b +\bcoolghdstraighteners\.com\b +\bghdcheapstore\.com\b +\bsunglasses-hotsale\.com\b +\bsunglasses-hotsale\.net\b +\bpurpleghd-outlet\.com\b +\bbirkenstockshoes-outlet\.net\b +\bbirkenstockshoes-outlet\.com\b +\bghdfactoryshop1\.net\b +\boutlet-birkenstock\.com\b +\bp90xdvdshop-usa\.net\b +\bchihairstore-usa\.com\b +\bchionline-us\.com\b +\bdiscountbirkenstock\.net\b +\bbirkenstockshoesshop\.com\b +\boutletbirkenstock\.com\b +\bbirkenstockdiscount\.net\b +\bbestuggmall\.com\b +\bdeltasunglasses\.com\b +\boutlet-uggs\.com\b +\bus-luxuryhandbags\.com\b +\bmtbshoes-uk\.com\b +\buggsoutletuk\.com\b +\bworldwholesalepick\.com\b +\bghdstraighteners-au\.com\b +\bdiscountspyderjackets\.com\b +\bnfljerseyonly\.com\b +\bshoestrade24h\.com\b +\bukghd-central\.com\b +\bbeatsloop\.com\b +\bonlyuggoutlet\.com\b +\bhaveugg\.com\b +\bpretty-sunglasses\.net\b +\ballwholesalepick\.com\b +\bcl-pumps\.com\b +\bboots-shop-new\.com\b +\bsexydepots\.com\b +\bhiboots100\.com\b +\bsummerfocuses\.com\b +\badidasoutletonline\.com\b +\bugg-factoryoutlet\.com\b +\bwholesale-edhardyca\.com\b +\bedhardycawholesale\.com\b +\bpumaoutletonline\.com\b +\buggsoutlets-us\.com\b +\bpumashoesrunning\.com\b +\bairforceoneshoesnike\.com\b +\bguccishoes-guccibags\.com\b +\bsbdunksnike\.com\b +\badidastrainersshoes\.com\b +\boffergucci\.com\b +\bauggoutlet\.com\b +\bluxeshoppers\.com\b +\bchiiron\.biz\b +\blouboutin-shoes-sale\.com\b +\bthomassabo\.cm\b +\btiffany-mine\.com\b +\btiffanycosite\.com\b +\bgogowatch\.com\b +\btiffany2go\.com\b +\bsuperstarkicks\.com\b +\bweddingnova\.com\b +\bcheapjimmychoo\.net\b +\btiffanycoltd\.com\b +\bletsluxury\.com\b +\bghdhairstraighteners\.us\b +\btiffanysilverworld\.com\b +\buggbootssale\.us\b +\bcollierdechien\.com\b +\bbuyjimmychoo\.net\b +\btiffanycojewel\.com\b +\blvbagdiscount\.com\b +\bstorebop\.com\b +\blouisvuitton4sale\.com\b +\bclassicedhardy\.com\b +\bguccihandbagsale\.com\b +\buggdealing\.com\b +\blouisvuittonsbag\.com\b +\bnikedunkssb\.net\b +\bjeanybags\.com\b +\bmanoloblahnikonsale\.com\b +\buggwinner\.com\b +\blamoncler\.com\b +\blaherveleger\.com\b +\bmonclerjacketssite\.com\b +\bvipshoesale\.com\b +\begoodshoes\.com\b +\bshoesshopnow\.com\b +\btopshoessale\.com\b +\bwebwholesalejordans\.com\b +\bkisstimberland\.com\b +\bcheapsneakerc2c\.com\b +\bmbttraveler\.com\b +\bskechersshoesbuy\.com\b +\bchrishhere\.com\b +\btrades99\.com\b +\bsilkshopcn\.com\b +\bmbtflying\.com\b +\bfootballworldcupjerseys\.com\b +\b23flying\.com\b +\bconverseshoeshop\.com\b +\bcheapghdsite\.com\b +\bchristianlouboutinbay\.com\b +\bisgoodshop\.com\b +\bgroupshoes\.com\b +\bmonclerspace\.com\b +\bmymoncler\.com\b +\bmonclerssoutlets\.com\b +\bherveleger\.eu\b +\bdressherveleger\.us\b +\bgzfty\.com\b +\bherveleger2010\.com\b +\bonline-clothing-outlet\.com\b +\boff-off-shoes\.com\b +\bspecialshoes4you\.com\b +\bgrandefratello\.forumfree\.it\b +\btext-image\.ru\b +\bone-dollar-movies\.com\b +\bcozumelwatersports\.com\b +\bchristianlouboutinsmall\.com\b +\buggonlinestores\.com\b +\bblu\.cc\b +\bje\.pl\b +\blaptops-battery-online\.com\b +\bbatterystores\.ca\b +\bsuperbattery\.co\.uk\b +\bonlybattery\.co\.uk\b +\bitsbattery\.com\b +\bnfljerseyoutlet-store\.com\b +\b4unj\.com\b +\bjerseys-buy\.com\b +\bnfl2shop\.com\b +\bed-hardy\.cc\b +\bworldtoptrade\.com\b +\bugg2boots\.com\b +\bmonclerjackets-outlet\.com\b +\bjuicycouturebags-outlet\.com\b +\bnfljerseyspace\.com\b +\bcoachpurses-outlet\.com\b +\btimberlandshoes-discount\.com\b +\boncoachpurses\.com\b +\bonvibramfivefingersshoes\.com\b +\bonmbtshoes\.com\b +\bcheapjerseysshop\.com\b +\b21nflshop\.com\b +\bmlbjerseyswhole\.com\b +\bnfljerseyspaypal\.com\b +\b21jerseysshop\.com\b +\bnikeshoeswholesale\.com\b +\bnfljerseyschina\.com\b +\bebay-fashion\.com\b +\b21nfl\.com\b +\bfacecuk\.com\b +\bgoodjerseyshop\.com\b +\b21nfljersey\.com\b +\b21nfljerseys\.com\b +\becwebcom\.com\b +\bjerseyscom\.com\b +\bjerseysmvpshop\.com\b +\bjerseystime\.com\b +\b2010jerseyspick\.com\b +\bjerseysnews\.com\b +\bcheapjerseyssale\.com\b +\btoryburch-shoes\.com\b +\b19nfl\.cn\b +\b2010jerseys\.com\b +\bbeginingtrade\.com\b +\buniform-jersey\.com\b +\buspsnfl\.net\b +\bsafejerseys\.com\b +\bitsnfljerseys\.com\b +\bnfljersey\.us\b +\bgonnadeal\.com\b +\b678jerseys\.com\b +\bnfljerseyscheap\.net\b +\bjerseysusa\.com\b +\babbcee\.com\b +\bnfljerseysworld\.us\b +\bnfljerseys\.cc\b +\bjerseyshop\.us\b +\bbrandjerseytrade\.com\b +\bamoyhy\.com\b +\bwejerseys\.net\b +\bnfljerseywell\.com\b +\bwholenfl\.com\b +\bgooglejerseys\.com\b +\bprojerseysusa\.com\b +\bjerseysshops\.com\b +\bsalejerseys\.com\b +\bnfljerseytop\.com\b +\bjerseysoutlets\.com\b +\bnflclubjerseys\.com\b +\bgogo23\.com\b +\bjerseys911\.com\b +\bmlbjerseys\.us\b +\bjerseysgoods\.com\b +\bb2b-nike\.com\b +\bmlbjersey\.us\b +\bnflnbashop\.com\b +\bfancyjerseys\.com\b +\bpickthejersey\.com\b +\bchina-jerseys\.com\b +\b20jerseys\.com\b +\bsport-hats\.com\b +\bnfl007\.com\b +\breebokjerseys\.us\b +\b23corp\.com\b +\bnfljerseysshop\.us\b +\blqdzwz\.com\b +\bwholejerseys\.com\b +\bfeitogg\.com\b +\bnflshopcn\.com\b +\bnflshopjersey\.org\b +\bnflshopjerseys\.com\b +\bnfl-jerseys-whole\.com\b +\breebok-jerseys\.com\b +\broyaljerseys\.com\b +\bnflshop-jerseys\.org\b +\bjerseyssunday\.com\b +\bni-oki\.com\b +\bnfl-jerseysshop\.com\b +\bnfljerseys98\.info\b +\bregardfocus\.com\b +\bnfljerseyworld\.us\b +\bnfljerseyforsale\.com\b +\bbags-shoes\.com\b +\bjerseyscc\.com\b +\bwholesalenikeshoes\.com\b +\bmorejerseys\.us\b +\bnfljerseysplayer\.com\b +\bdiscountchristianlouboutin\.us\b +\bnfl-jerseyswhole\.net\b +\babusf\.com\b +\bbestsale511\.com\b +\bcheapjerseysforsale\.com\b +\btwojerseys\.com\b +\bcheapjerseysforsale\.us\b +\bfujiannfl\.com\b +\bonefansgearstop\.com\b +\bjerseysexport\.com\b +\bvarious-jersey-wholesale\.com\b +\buniformfootball\.com\b +\bwisejerseys\.com\b +\bcnjerseys\.net\b +\btiffanysaleonline\.com\b +\bchoosejerseys\.com\b +\busjerseyssale\.com\b +\bnflnewjerseysale\.com\b +\b2010nhljerseys\.com\b +\bcheapjerseys888\.com\b +\bjerseysab\.com\b +\bjerseysgoogle\.com\b +\bbestnfljerseysale\.com\b +\bstormjerseys\.com\b +\bnflljerseys\.com\b +\bcnntv\.org\b +\b168jerseys\.org\b +\bpeacejerseys\.com\b +\bjyshoes\.com\b +\bintjersey\.com\b +\baffordablejersey\.com\b +\bnike2sell\.com\b +\bpickinshop\.com\b +\bcollectteam\.com\b +\bjerseysbuyonline\.com\b +\brunescape-mall\.com\b +\b21nfl\.us\b +\bafcjerseys\.com\b +\bnfljerseyser\.com\b +\bnfl-mlb-jerseys\.com\b +\bnflluck\.com\b +\bnfljerseysusa\.com\b +\bnfljerseys123\.com\b +\bnfljerseys6\.com\b +\bfirstnfljerseys\.com\b +\bmlbjerseyshops\.com\b +\bjerseyswhole\.com\b +\bnfl-trade\.com\b +\b2009jerseys\.net\b +\bebaysource\.com\b +\bnfljerseyshoppe\.com\b +\bbrandjerseysale\.com\b +\bsportsjerseyswholesale\.com\b +\bnfljerseydiscount\.com\b +\bworld-jerseys\.com\b +\bcaps-jerseys\.com\b +\bjerseytopzone\.com\b +\bebuyjersey\.com\b +\bbulk--jerseys\.com\b +\bezpopo\.com\b +\bnike123\.com\b +\bnfljerseyscheaps\.com\b +\bjets-jerseys\.com\b +\beghd\.co\.uk\b +\bjerseyscheapsale\.com\b +\bworldtoptrade\.cc\b +\bnikestorevip\.com\b +\bdiscountbagonsale\.com\b +\bintshop88\.com\b +\bshoesgreatwall\.com\b +## sbhandler_end +## leave the above line as is +## end of [[Spam blacklist/Log]] section + #</pre> <!-- leave this line exactly as it is --> diff --git a/data/pages/wiki/dokuwiki.txt b/data/pages/wiki/dokuwiki.txt index a58575f05..e6fac5b65 100644 --- a/data/pages/wiki/dokuwiki.txt +++ b/data/pages/wiki/dokuwiki.txt @@ -57,7 +57,7 @@ All documentation and additional information besides the [[syntax|syntax descrip ===== Copyright ===== -2004-2009 (c) Andreas Gohr <andi@splitbrain.org>((Please do not contact me for help and support -- use the [[doku>mailinglist]] or [[http://forum.dokuwiki.org|forum]] instead)) +2004-2010 (c) Andreas Gohr <andi@splitbrain.org>((Please do not contact me for help and support -- use the [[doku>mailinglist]] or [[http://forum.dokuwiki.org|forum]] instead)) and the DokuWiki Community The DokuWiki engine is licensed under [[http://www.gnu.org/licenses/gpl.html|GNU General Public License]] Version 2. If you use DokuWiki in your company, consider [[doku>donate|donating]] a few bucks ;-). diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 8aeee703e..7b29b9ad5 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -74,7 +74,6 @@ DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis. For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]]. - ==== Windows Shares ==== Windows shares like [[\\server\share|this]] are recognized, too. Please note that these only make sense in a homogeneous user group like a corporate [[wp>Intranet]]. @@ -84,7 +83,7 @@ Windows shares like [[\\server\share|this]] are recognized, too. Please note tha Notes: * For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone"). - * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_don't_work|Mozilla Knowledge Base]]. + * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Firefox_:_Issues_:_Links_to_Local_Pages_Don't_Work|Mozilla Knowledge Base]]. ==== Image Links ==== @@ -382,7 +381,7 @@ class HelloWorldApp { } </code> -The following language strings are currently recognized: //abap, actionscript-french, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp, cpp-qt, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, glsl, gml, gnuplot, groovy, gettext, haskell, hq9plus, html, idl, ini, inno, intercal, io, java5, java, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle8, oracle11, pascal, perl, per, php-brief, php, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xml, xorg_conf, xpp, z80// +The following language strings are currently recognized: //4cs, abap, actionscript-french, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, ecmascript, eiffel, email, erlang, fo, fortran, freebasic, fsharp, gambas, genero, genie, gdb, glsl, gml, gnuplot, groovy, gettext, gwbasic, haskell, hicest, hq9plus, html, icon, idl, ini, inno, intercal, io, j, java5, java, javascript, jquery, kixtart, klonec, klonecpp, latex, lisp, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, modula2, modula3, mmix, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, perl, perl6, per, pf, php-brief, php, pike, pic16, pixelbender, plsql, postgresql, povray, powerbuilder, powershell, progress, prolog, properties, providex, purebasic, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, vala, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xbasic, xml, xorg_conf, xpp, z80// ==== Downloadable Code Blocks ==== @@ -6,13 +6,16 @@ * @author Andreas Gohr <andi@splitbrain.org> */ +// update message version +$updateVersion = 26; + // xdebug_start_profiling(); if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/'); if (isset($_SERVER['HTTP_X_DOKUWIKI_DO'])){ $ACT = trim(strtolower($_SERVER['HTTP_X_DOKUWIKI_DO'])); -} elseif (!empty($IDX)) { +} elseif (!empty($_REQUEST['idx'])) { $ACT = 'index'; } elseif (isset($_REQUEST['do'])) { $ACT = $_REQUEST['do']; @@ -20,13 +23,8 @@ if (isset($_SERVER['HTTP_X_DOKUWIKI_DO'])){ $ACT = 'show'; } +// load and initialize the core system require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/events.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/html.php'); -require_once(DOKU_INC.'inc/auth.php'); -require_once(DOKU_INC.'inc/actions.php'); //import variables $QUERY = trim($_REQUEST['id']); @@ -35,11 +33,13 @@ $NS = getNS($ID); $REV = $_REQUEST['rev']; $IDX = $_REQUEST['idx']; $DATE = $_REQUEST['date']; -$RANGE = $_REQUEST['lines']; +$RANGE = $_REQUEST['range']; $HIGH = $_REQUEST['s']; if(empty($HIGH)) $HIGH = getGoogleQuery(); -$TEXT = cleanText($_POST['wikitext']); +if (isset($_POST['wikitext'])) { + $TEXT = cleanText($_POST['wikitext']); +} $PRE = cleanText($_POST['prefix']); $SUF = cleanText($_POST['suffix']); $SUM = $_REQUEST['summary']; @@ -64,7 +64,7 @@ if($conf['allowdebug'] && $ACT == 'debug'){ //send 404 for missing pages if configured or ID has special meaning to bots if(!$INFO['exists'] && ($conf['send404'] || preg_match('/^(robots\.txt|sitemap\.xml(\.gz)?|favicon\.ico|crossdomain\.xml)$/',$ID)) && - ($ACT == 'show' || substr($ACT,0,7) == 'export_') ){ + ($ACT == 'show' || (!is_array($ACT) && substr($ACT,0,7) == 'export_')) ){ header('HTTP/1.0 404 Not Found'); } @@ -8,13 +8,6 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/'); require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/events.php'); -require_once(DOKU_INC.'inc/parserutils.php'); -require_once(DOKU_INC.'inc/feedcreator.class.php'); -require_once(DOKU_INC.'inc/auth.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/httputils.php'); //close session session_write_close(); @@ -25,7 +18,7 @@ $opt = rss_parseOptions(); // the feed is dynamic - we need a cache for each combo // (but most people just use the default feed so it's still effective) $cache = getCacheName(join('',array_values($opt)).$_SERVER['REMOTE_USER'],'.feed'); -$key = join('', array_values($opt)) . $_SERVER['REMOTE_USER']; +$key = join('', array_values($opt)) . $_SERVER['REMOTE_USER']; $cache = new cache($key, '.feed'); // prepare cache depends @@ -260,7 +253,18 @@ function rss_buildItems(&$rss,&$data,$opt){ $item->author = ''; if($user && $conf['useacl'] && $auth){ $userInfo = $auth->getUserData($user); - $item->author = $userInfo['name']; + if ($userInfo){ + switch ($conf['showuseras']){ + case 'username': + $item->author = $userInfo['name']; + break; + default: + $item->author = $user; + break; + } + } else { + $item->author = $user; + } if($userInfo && !$opt['guardmail']){ $item->authorEmail = $userInfo['mail']; }else{ diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index e28826c1f..7b14e4463 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -10,75 +10,75 @@ define('USE_ASSERTS', function_exists('assert')); class _DiffOp { - var $type; - var $orig; - var $closing; + var $type; + var $orig; + var $closing; - function reverse() { - trigger_error("pure virtual", E_USER_ERROR); - } + function reverse() { + trigger_error("pure virtual", E_USER_ERROR); + } - function norig() { - return $this->orig ? sizeof($this->orig) : 0; - } + function norig() { + return $this->orig ? count($this->orig) : 0; + } - function nclosing() { - return $this->closing ? sizeof($this->closing) : 0; - } + function nclosing() { + return $this->closing ? count($this->closing) : 0; + } } class _DiffOp_Copy extends _DiffOp { - var $type = 'copy'; - - function _DiffOp_Copy ($orig, $closing = false) { - if (!is_array($closing)) - $closing = $orig; - $this->orig = $orig; - $this->closing = $closing; - } - - function reverse() { - return new _DiffOp_Copy($this->closing, $this->orig); - } + var $type = 'copy'; + + function _DiffOp_Copy ($orig, $closing = false) { + if (!is_array($closing)) + $closing = $orig; + $this->orig = $orig; + $this->closing = $closing; + } + + function reverse() { + return new _DiffOp_Copy($this->closing, $this->orig); + } } class _DiffOp_Delete extends _DiffOp { - var $type = 'delete'; + var $type = 'delete'; - function _DiffOp_Delete ($lines) { - $this->orig = $lines; - $this->closing = false; - } + function _DiffOp_Delete ($lines) { + $this->orig = $lines; + $this->closing = false; + } - function reverse() { - return new _DiffOp_Add($this->orig); - } + function reverse() { + return new _DiffOp_Add($this->orig); + } } class _DiffOp_Add extends _DiffOp { - var $type = 'add'; + var $type = 'add'; - function _DiffOp_Add ($lines) { - $this->closing = $lines; - $this->orig = false; - } + function _DiffOp_Add ($lines) { + $this->closing = $lines; + $this->orig = false; + } - function reverse() { - return new _DiffOp_Delete($this->closing); - } + function reverse() { + return new _DiffOp_Delete($this->closing); + } } class _DiffOp_Change extends _DiffOp { - var $type = 'change'; + var $type = 'change'; - function _DiffOp_Change ($orig, $closing) { - $this->orig = $orig; - $this->closing = $closing; - } + function _DiffOp_Change ($orig, $closing) { + $this->orig = $orig; + $this->closing = $closing; + } - function reverse() { - return new _DiffOp_Change($this->closing, $this->orig); - } + function reverse() { + return new _DiffOp_Change($this->closing, $this->orig); + } } @@ -102,577 +102,577 @@ class _DiffOp_Change extends _DiffOp { * @author Geoffrey T. Dairiki * @access private */ -class _DiffEngine -{ - function diff ($from_lines, $to_lines) { - $n_from = sizeof($from_lines); - $n_to = sizeof($to_lines); - - $this->xchanged = $this->ychanged = array(); - $this->xv = $this->yv = array(); - $this->xind = $this->yind = array(); - unset($this->seq); - unset($this->in_seq); - unset($this->lcs); - - // Skip leading common lines. - for ($skip = 0; $skip < $n_from && $skip < $n_to; $skip++) { - if ($from_lines[$skip] != $to_lines[$skip]) - break; - $this->xchanged[$skip] = $this->ychanged[$skip] = false; - } - // Skip trailing common lines. - $xi = $n_from; $yi = $n_to; - for ($endskip = 0; --$xi > $skip && --$yi > $skip; $endskip++) { - if ($from_lines[$xi] != $to_lines[$yi]) - break; - $this->xchanged[$xi] = $this->ychanged[$yi] = false; - } +class _DiffEngine { + + function diff ($from_lines, $to_lines) { + $n_from = count($from_lines); + $n_to = count($to_lines); + + $this->xchanged = $this->ychanged = array(); + $this->xv = $this->yv = array(); + $this->xind = $this->yind = array(); + unset($this->seq); + unset($this->in_seq); + unset($this->lcs); + + // Skip leading common lines. + for ($skip = 0; $skip < $n_from && $skip < $n_to; $skip++) { + if ($from_lines[$skip] != $to_lines[$skip]) + break; + $this->xchanged[$skip] = $this->ychanged[$skip] = false; + } + // Skip trailing common lines. + $xi = $n_from; + $yi = $n_to; + for ($endskip = 0; --$xi > $skip && --$yi > $skip; $endskip++) { + if ($from_lines[$xi] != $to_lines[$yi]) + break; + $this->xchanged[$xi] = $this->ychanged[$yi] = false; + } - // Ignore lines which do not exist in both files. - for ($xi = $skip; $xi < $n_from - $endskip; $xi++) - $xhash[$from_lines[$xi]] = 1; - for ($yi = $skip; $yi < $n_to - $endskip; $yi++) { - $line = $to_lines[$yi]; - if ( ($this->ychanged[$yi] = empty($xhash[$line])) ) - continue; - $yhash[$line] = 1; - $this->yv[] = $line; - $this->yind[] = $yi; - } - for ($xi = $skip; $xi < $n_from - $endskip; $xi++) { - $line = $from_lines[$xi]; - if ( ($this->xchanged[$xi] = empty($yhash[$line])) ) - continue; - $this->xv[] = $line; - $this->xind[] = $xi; - } + // Ignore lines which do not exist in both files. + for ($xi = $skip; $xi < $n_from - $endskip; $xi++) + $xhash[$from_lines[$xi]] = 1; + for ($yi = $skip; $yi < $n_to - $endskip; $yi++) { + $line = $to_lines[$yi]; + if ( ($this->ychanged[$yi] = empty($xhash[$line])) ) + continue; + $yhash[$line] = 1; + $this->yv[] = $line; + $this->yind[] = $yi; + } + for ($xi = $skip; $xi < $n_from - $endskip; $xi++) { + $line = $from_lines[$xi]; + if ( ($this->xchanged[$xi] = empty($yhash[$line])) ) + continue; + $this->xv[] = $line; + $this->xind[] = $xi; + } - // Find the LCS. - $this->_compareseq(0, sizeof($this->xv), 0, sizeof($this->yv)); - - // Merge edits when possible - $this->_shift_boundaries($from_lines, $this->xchanged, $this->ychanged); - $this->_shift_boundaries($to_lines, $this->ychanged, $this->xchanged); - - // Compute the edit operations. - $edits = array(); - $xi = $yi = 0; - while ($xi < $n_from || $yi < $n_to) { - USE_ASSERTS && assert($yi < $n_to || $this->xchanged[$xi]); - USE_ASSERTS && assert($xi < $n_from || $this->ychanged[$yi]); - - // Skip matching "snake". - $copy = array(); - while ( $xi < $n_from && $yi < $n_to - && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { - $copy[] = $from_lines[$xi++]; - ++$yi; - } - if ($copy) - $edits[] = new _DiffOp_Copy($copy); - - // Find deletes & adds. - $delete = array(); - while ($xi < $n_from && $this->xchanged[$xi]) - $delete[] = $from_lines[$xi++]; - - $add = array(); - while ($yi < $n_to && $this->ychanged[$yi]) - $add[] = $to_lines[$yi++]; - - if ($delete && $add) - $edits[] = new _DiffOp_Change($delete, $add); - elseif ($delete) - $edits[] = new _DiffOp_Delete($delete); - elseif ($add) - $edits[] = new _DiffOp_Add($add); - } - return $edits; - } - - - /** - * Divide the Largest Common Subsequence (LCS) of the sequences - * [XOFF, XLIM) and [YOFF, YLIM) into NCHUNKS approximately equally - * sized segments. - * - * Returns (LCS, PTS). LCS is the length of the LCS. PTS is an - * array of NCHUNKS+1 (X, Y) indexes giving the diving points between - * sub sequences. The first sub-sequence is contained in [X0, X1), - * [Y0, Y1), the second in [X1, X2), [Y1, Y2) and so on. Note - * that (X0, Y0) == (XOFF, YOFF) and - * (X[NCHUNKS], Y[NCHUNKS]) == (XLIM, YLIM). - * - * This function assumes that the first lines of the specified portions - * of the two files do not match, and likewise that the last lines do not - * match. The caller must trim matching lines from the beginning and end - * of the portions it is going to specify. - */ - function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) { - $flip = false; - - if ($xlim - $xoff > $ylim - $yoff) { - // Things seems faster (I'm not sure I understand why) - // when the shortest sequence in X. - $flip = true; - list ($xoff, $xlim, $yoff, $ylim) - = array( $yoff, $ylim, $xoff, $xlim); + // Find the LCS. + $this->_compareseq(0, count($this->xv), 0, count($this->yv)); + + // Merge edits when possible + $this->_shift_boundaries($from_lines, $this->xchanged, $this->ychanged); + $this->_shift_boundaries($to_lines, $this->ychanged, $this->xchanged); + + // Compute the edit operations. + $edits = array(); + $xi = $yi = 0; + while ($xi < $n_from || $yi < $n_to) { + USE_ASSERTS && assert($yi < $n_to || $this->xchanged[$xi]); + USE_ASSERTS && assert($xi < $n_from || $this->ychanged[$yi]); + + // Skip matching "snake". + $copy = array(); + while ( $xi < $n_from && $yi < $n_to + && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { + $copy[] = $from_lines[$xi++]; + ++$yi; + } + if ($copy) + $edits[] = new _DiffOp_Copy($copy); + + // Find deletes & adds. + $delete = array(); + while ($xi < $n_from && $this->xchanged[$xi]) + $delete[] = $from_lines[$xi++]; + + $add = array(); + while ($yi < $n_to && $this->ychanged[$yi]) + $add[] = $to_lines[$yi++]; + + if ($delete && $add) + $edits[] = new _DiffOp_Change($delete, $add); + elseif ($delete) + $edits[] = new _DiffOp_Delete($delete); + elseif ($add) + $edits[] = new _DiffOp_Add($add); + } + return $edits; } - if ($flip) - for ($i = $ylim - 1; $i >= $yoff; $i--) - $ymatches[$this->xv[$i]][] = $i; - else - for ($i = $ylim - 1; $i >= $yoff; $i--) - $ymatches[$this->yv[$i]][] = $i; - - $this->lcs = 0; - $this->seq[0]= $yoff - 1; - $this->in_seq = array(); - $ymids[0] = array(); - - $numer = $xlim - $xoff + $nchunks - 1; - $x = $xoff; - for ($chunk = 0; $chunk < $nchunks; $chunk++) { - if ($chunk > 0) - for ($i = 0; $i <= $this->lcs; $i++) - $ymids[$i][$chunk-1] = $this->seq[$i]; - - $x1 = $xoff + (int)(($numer + ($xlim-$xoff)*$chunk) / $nchunks); - for ( ; $x < $x1; $x++) { - $line = $flip ? $this->yv[$x] : $this->xv[$x]; - if (empty($ymatches[$line])) - continue; - $matches = $ymatches[$line]; - reset($matches); - while (list ($junk, $y) = each($matches)) - if (empty($this->in_seq[$y])) { - $k = $this->_lcs_pos($y); - USE_ASSERTS && assert($k > 0); - $ymids[$k] = $ymids[$k-1]; - break; - } - while (list ($junk, $y) = each($matches)) { - if ($y > $this->seq[$k-1]) { - USE_ASSERTS && assert($y < $this->seq[$k]); - // Optimization: this is a common case: - // next match is just replacing previous match. - $this->in_seq[$this->seq[$k]] = false; - $this->seq[$k] = $y; - $this->in_seq[$y] = 1; - } - else if (empty($this->in_seq[$y])) { - $k = $this->_lcs_pos($y); - USE_ASSERTS && assert($k > 0); - $ymids[$k] = $ymids[$k-1]; - } + + /** + * Divide the Largest Common Subsequence (LCS) of the sequences + * [XOFF, XLIM) and [YOFF, YLIM) into NCHUNKS approximately equally + * sized segments. + * + * Returns (LCS, PTS). LCS is the length of the LCS. PTS is an + * array of NCHUNKS+1 (X, Y) indexes giving the diving points between + * sub sequences. The first sub-sequence is contained in [X0, X1), + * [Y0, Y1), the second in [X1, X2), [Y1, Y2) and so on. Note + * that (X0, Y0) == (XOFF, YOFF) and + * (X[NCHUNKS], Y[NCHUNKS]) == (XLIM, YLIM). + * + * This function assumes that the first lines of the specified portions + * of the two files do not match, and likewise that the last lines do not + * match. The caller must trim matching lines from the beginning and end + * of the portions it is going to specify. + */ + function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) { + $flip = false; + + if ($xlim - $xoff > $ylim - $yoff) { + // Things seems faster (I'm not sure I understand why) + // when the shortest sequence in X. + $flip = true; + list ($xoff, $xlim, $yoff, $ylim) + = array( $yoff, $ylim, $xoff, $xlim); } - } - } - $seps[] = $flip ? array($yoff, $xoff) : array($xoff, $yoff); - $ymid = $ymids[$this->lcs]; - for ($n = 0; $n < $nchunks - 1; $n++) { - $x1 = $xoff + (int)(($numer + ($xlim - $xoff) * $n) / $nchunks); - $y1 = $ymid[$n] + 1; - $seps[] = $flip ? array($y1, $x1) : array($x1, $y1); - } - $seps[] = $flip ? array($ylim, $xlim) : array($xlim, $ylim); + if ($flip) + for ($i = $ylim - 1; $i >= $yoff; $i--) + $ymatches[$this->xv[$i]][] = $i; + else + for ($i = $ylim - 1; $i >= $yoff; $i--) + $ymatches[$this->yv[$i]][] = $i; + + $this->lcs = 0; + $this->seq[0]= $yoff - 1; + $this->in_seq = array(); + $ymids[0] = array(); + + $numer = $xlim - $xoff + $nchunks - 1; + $x = $xoff; + for ($chunk = 0; $chunk < $nchunks; $chunk++) { + if ($chunk > 0) + for ($i = 0; $i <= $this->lcs; $i++) + $ymids[$i][$chunk-1] = $this->seq[$i]; + + $x1 = $xoff + (int)(($numer + ($xlim-$xoff)*$chunk) / $nchunks); + for ( ; $x < $x1; $x++) { + $line = $flip ? $this->yv[$x] : $this->xv[$x]; + if (empty($ymatches[$line])) + continue; + $matches = $ymatches[$line]; + reset($matches); + while (list ($junk, $y) = each($matches)) + if (empty($this->in_seq[$y])) { + $k = $this->_lcs_pos($y); + USE_ASSERTS && assert($k > 0); + $ymids[$k] = $ymids[$k-1]; + break; + } + while (list ($junk, $y) = each($matches)) { + if ($y > $this->seq[$k-1]) { + USE_ASSERTS && assert($y < $this->seq[$k]); + // Optimization: this is a common case: + // next match is just replacing previous match. + $this->in_seq[$this->seq[$k]] = false; + $this->seq[$k] = $y; + $this->in_seq[$y] = 1; + } + else if (empty($this->in_seq[$y])) { + $k = $this->_lcs_pos($y); + USE_ASSERTS && assert($k > 0); + $ymids[$k] = $ymids[$k-1]; + } + } + } + } - return array($this->lcs, $seps); - } + $seps[] = $flip ? array($yoff, $xoff) : array($xoff, $yoff); + $ymid = $ymids[$this->lcs]; + for ($n = 0; $n < $nchunks - 1; $n++) { + $x1 = $xoff + (int)(($numer + ($xlim - $xoff) * $n) / $nchunks); + $y1 = $ymid[$n] + 1; + $seps[] = $flip ? array($y1, $x1) : array($x1, $y1); + } + $seps[] = $flip ? array($ylim, $xlim) : array($xlim, $ylim); - function _lcs_pos ($ypos) { - $end = $this->lcs; - if ($end == 0 || $ypos > $this->seq[$end]) { - $this->seq[++$this->lcs] = $ypos; - $this->in_seq[$ypos] = 1; - return $this->lcs; + return array($this->lcs, $seps); } - $beg = 1; - while ($beg < $end) { - $mid = (int)(($beg + $end) / 2); - if ( $ypos > $this->seq[$mid] ) - $beg = $mid + 1; - else - $end = $mid; - } + function _lcs_pos ($ypos) { + $end = $this->lcs; + if ($end == 0 || $ypos > $this->seq[$end]) { + $this->seq[++$this->lcs] = $ypos; + $this->in_seq[$ypos] = 1; + return $this->lcs; + } - USE_ASSERTS && assert($ypos != $this->seq[$end]); - - $this->in_seq[$this->seq[$end]] = false; - $this->seq[$end] = $ypos; - $this->in_seq[$ypos] = 1; - return $end; - } - - /** - * Find LCS of two sequences. - * - * The results are recorded in the vectors $this->{x,y}changed[], by - * storing a 1 in the element for each line that is an insertion - * or deletion (ie. is not in the LCS). - * - * The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. - * - * Note that XLIM, YLIM are exclusive bounds. - * All line numbers are origin-0 and discarded lines are not counted. - */ - function _compareseq ($xoff, $xlim, $yoff, $ylim) { - // Slide down the bottom initial diagonal. - while ($xoff < $xlim && $yoff < $ylim - && $this->xv[$xoff] == $this->yv[$yoff]) { - ++$xoff; - ++$yoff; - } + $beg = 1; + while ($beg < $end) { + $mid = (int)(($beg + $end) / 2); + if ( $ypos > $this->seq[$mid] ) + $beg = $mid + 1; + else + $end = $mid; + } - // Slide up the top initial diagonal. - while ($xlim > $xoff && $ylim > $yoff - && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { - --$xlim; - --$ylim; - } + USE_ASSERTS && assert($ypos != $this->seq[$end]); - if ($xoff == $xlim || $yoff == $ylim) - $lcs = 0; - else { - // This is ad hoc but seems to work well. - //$nchunks = sqrt(min($xlim - $xoff, $ylim - $yoff) / 2.5); - //$nchunks = max(2,min(8,(int)$nchunks)); - $nchunks = min(7, $xlim - $xoff, $ylim - $yoff) + 1; - list ($lcs, $seps) - = $this->_diag($xoff,$xlim,$yoff, $ylim,$nchunks); + $this->in_seq[$this->seq[$end]] = false; + $this->seq[$end] = $ypos; + $this->in_seq[$ypos] = 1; + return $end; } - if ($lcs == 0) { - // X and Y sequences have no common subsequence: - // mark all changed. - while ($yoff < $ylim) - $this->ychanged[$this->yind[$yoff++]] = 1; - while ($xoff < $xlim) - $this->xchanged[$this->xind[$xoff++]] = 1; - } - else { - // Use the partitions to split this problem into subproblems. - reset($seps); - $pt1 = $seps[0]; - while ($pt2 = next($seps)) { - $this->_compareseq ($pt1[0], $pt2[0], $pt1[1], $pt2[1]); - $pt1 = $pt2; - } - } - } - - /** - * Adjust inserts/deletes of identical lines to join changes - * as much as possible. - * - * We do something when a run of changed lines include a - * line at one end and has an excluded, identical line at the other. - * We are free to choose which identical line is included. - * `compareseq' usually chooses the one at the beginning, - * but usually it is cleaner to consider the following identical line - * to be the "change". - * - * This is extracted verbatim from analyze.c (GNU diffutils-2.7). - */ - function _shift_boundaries ($lines, &$changed, $other_changed) { - $i = 0; - $j = 0; - - USE_ASSERTS && assert('sizeof($lines) == sizeof($changed)'); - $len = sizeof($lines); - $other_len = sizeof($other_changed); - - while (1) { - /* - * Scan forwards to find beginning of another run of changes. - * Also keep track of the corresponding point in the other file. + /** + * Find LCS of two sequences. * - * Throughout this code, $i and $j are adjusted together so that - * the first $i elements of $changed and the first $j elements - * of $other_changed both contain the same number of zeros - * (unchanged lines). - * Furthermore, $j is always kept so that $j == $other_len or - * $other_changed[$j] == false. + * The results are recorded in the vectors $this->{x,y}changed[], by + * storing a 1 in the element for each line that is an insertion + * or deletion (ie. is not in the LCS). + * + * The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. + * + * Note that XLIM, YLIM are exclusive bounds. + * All line numbers are origin-0 and discarded lines are not counted. */ - while ($j < $other_len && $other_changed[$j]) - $j++; - - while ($i < $len && ! $changed[$i]) { - USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); - $i++; $j++; - while ($j < $other_len && $other_changed[$j]) - $j++; - } - - if ($i == $len) - break; - - $start = $i; - - // Find the end of this run of changes. - while (++$i < $len && $changed[$i]) - continue; + function _compareseq ($xoff, $xlim, $yoff, $ylim) { + // Slide down the bottom initial diagonal. + while ($xoff < $xlim && $yoff < $ylim + && $this->xv[$xoff] == $this->yv[$yoff]) { + ++$xoff; + ++$yoff; + } - do { - /* - * Record the length of this run of changes, so that - * we can later determine whether the run has grown. - */ - $runlength = $i - $start; + // Slide up the top initial diagonal. + while ($xlim > $xoff && $ylim > $yoff + && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { + --$xlim; + --$ylim; + } - /* - * Move the changed region back, so long as the - * previous unchanged line matches the last changed one. - * This merges with previous changed regions. - */ - while ($start > 0 && $lines[$start - 1] == $lines[$i - 1]) { - $changed[--$start] = 1; - $changed[--$i] = false; - while ($start > 0 && $changed[$start - 1]) - $start--; - USE_ASSERTS && assert('$j > 0'); - while ($other_changed[--$j]) - continue; - USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + if ($xoff == $xlim || $yoff == $ylim) + $lcs = 0; + else { + // This is ad hoc but seems to work well. + //$nchunks = sqrt(min($xlim - $xoff, $ylim - $yoff) / 2.5); + //$nchunks = max(2,min(8,(int)$nchunks)); + $nchunks = min(7, $xlim - $xoff, $ylim - $yoff) + 1; + list ($lcs, $seps) + = $this->_diag($xoff,$xlim,$yoff, $ylim,$nchunks); } - /* - * Set CORRESPONDING to the end of the changed run, at the last - * point where it corresponds to a changed run in the other file. - * CORRESPONDING == LEN means no such point has been found. - */ - $corresponding = $j < $other_len ? $i : $len; - - /* - * Move the changed region forward, so long as the - * first changed line matches the following unchanged one. - * This merges with following changed regions. - * Do this second, so that if there are no merges, - * the changed region is moved forward as far as possible. - */ - while ($i < $len && $lines[$start] == $lines[$i]) { - $changed[$start++] = false; - $changed[$i++] = 1; - while ($i < $len && $changed[$i]) - $i++; - - USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); - $j++; - if ($j < $other_len && $other_changed[$j]) { - $corresponding = $i; - while ($j < $other_len && $other_changed[$j]) - $j++; - } + if ($lcs == 0) { + // X and Y sequences have no common subsequence: + // mark all changed. + while ($yoff < $ylim) + $this->ychanged[$this->yind[$yoff++]] = 1; + while ($xoff < $xlim) + $this->xchanged[$this->xind[$xoff++]] = 1; } - } while ($runlength != $i - $start); + else { + // Use the partitions to split this problem into subproblems. + reset($seps); + $pt1 = $seps[0]; + while ($pt2 = next($seps)) { + $this->_compareseq ($pt1[0], $pt2[0], $pt1[1], $pt2[1]); + $pt1 = $pt2; + } + } + } - /* - * If possible, move the fully-merged run of changes - * back to a corresponding run in the other file. + /** + * Adjust inserts/deletes of identical lines to join changes + * as much as possible. + * + * We do something when a run of changed lines include a + * line at one end and has an excluded, identical line at the other. + * We are free to choose which identical line is included. + * `compareseq' usually chooses the one at the beginning, + * but usually it is cleaner to consider the following identical line + * to be the "change". + * + * This is extracted verbatim from analyze.c (GNU diffutils-2.7). */ - while ($corresponding < $i) { - $changed[--$start] = 1; - $changed[--$i] = 0; - USE_ASSERTS && assert('$j > 0'); - while ($other_changed[--$j]) - continue; - USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); - } + function _shift_boundaries ($lines, &$changed, $other_changed) { + $i = 0; + $j = 0; + + USE_ASSERTS && assert('count($lines) == count($changed)'); + $len = count($lines); + $other_len = count($other_changed); + + while (1) { + /* + * Scan forwards to find beginning of another run of changes. + * Also keep track of the corresponding point in the other file. + * + * Throughout this code, $i and $j are adjusted together so that + * the first $i elements of $changed and the first $j elements + * of $other_changed both contain the same number of zeros + * (unchanged lines). + * Furthermore, $j is always kept so that $j == $other_len or + * $other_changed[$j] == false. + */ + while ($j < $other_len && $other_changed[$j]) + $j++; + + while ($i < $len && ! $changed[$i]) { + USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); + $i++; + $j++; + while ($j < $other_len && $other_changed[$j]) + $j++; + } + + if ($i == $len) + break; + + $start = $i; + + // Find the end of this run of changes. + while (++$i < $len && $changed[$i]) + continue; + + do { + /* + * Record the length of this run of changes, so that + * we can later determine whether the run has grown. + */ + $runlength = $i - $start; + + /* + * Move the changed region back, so long as the + * previous unchanged line matches the last changed one. + * This merges with previous changed regions. + */ + while ($start > 0 && $lines[$start - 1] == $lines[$i - 1]) { + $changed[--$start] = 1; + $changed[--$i] = false; + while ($start > 0 && $changed[$start - 1]) + $start--; + USE_ASSERTS && assert('$j > 0'); + while ($other_changed[--$j]) + continue; + USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + } + + /* + * Set CORRESPONDING to the end of the changed run, at the last + * point where it corresponds to a changed run in the other file. + * CORRESPONDING == LEN means no such point has been found. + */ + $corresponding = $j < $other_len ? $i : $len; + + /* + * Move the changed region forward, so long as the + * first changed line matches the following unchanged one. + * This merges with following changed regions. + * Do this second, so that if there are no merges, + * the changed region is moved forward as far as possible. + */ + while ($i < $len && $lines[$start] == $lines[$i]) { + $changed[$start++] = false; + $changed[$i++] = 1; + while ($i < $len && $changed[$i]) + $i++; + + USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); + $j++; + if ($j < $other_len && $other_changed[$j]) { + $corresponding = $i; + while ($j < $other_len && $other_changed[$j]) + $j++; + } + } + } while ($runlength != $i - $start); + + /* + * If possible, move the fully-merged run of changes + * back to a corresponding run in the other file. + */ + while ($corresponding < $i) { + $changed[--$start] = 1; + $changed[--$i] = 0; + USE_ASSERTS && assert('$j > 0'); + while ($other_changed[--$j]) + continue; + USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + } + } } - } } /** * Class representing a 'diff' between two sequences of strings. */ -class Diff -{ - var $edits; - - /** - * Constructor. - * Computes diff between sequences of strings. - * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) - * @param $to_lines array An array of strings. - */ - function Diff($from_lines, $to_lines) { - $eng = new _DiffEngine; - $this->edits = $eng->diff($from_lines, $to_lines); - //$this->_check($from_lines, $to_lines); - } - - /** - * Compute reversed Diff. - * - * SYNOPSIS: - * - * $diff = new Diff($lines1, $lines2); - * $rev = $diff->reverse(); - * @return object A Diff object representing the inverse of the - * original diff. - */ - function reverse () { - $rev = $this; - $rev->edits = array(); - foreach ($this->edits as $edit) { - $rev->edits[] = $edit->reverse(); +class Diff { + + var $edits; + + /** + * Constructor. + * Computes diff between sequences of strings. + * + * @param $from_lines array An array of strings. + * (Typically these are lines from a file.) + * @param $to_lines array An array of strings. + */ + function Diff($from_lines, $to_lines) { + $eng = new _DiffEngine; + $this->edits = $eng->diff($from_lines, $to_lines); + //$this->_check($from_lines, $to_lines); } - return $rev; - } - - /** - * Check for empty diff. - * - * @return bool True iff two sequences were identical. - */ - function isEmpty () { - foreach ($this->edits as $edit) { - if ($edit->type != 'copy') - return false; + + /** + * Compute reversed Diff. + * + * SYNOPSIS: + * + * $diff = new Diff($lines1, $lines2); + * $rev = $diff->reverse(); + * @return object A Diff object representing the inverse of the + * original diff. + */ + function reverse () { + $rev = $this; + $rev->edits = array(); + foreach ($this->edits as $edit) { + $rev->edits[] = $edit->reverse(); + } + return $rev; } - return true; - } - - /** - * Compute the length of the Longest Common Subsequence (LCS). - * - * This is mostly for diagnostic purposed. - * - * @return int The length of the LCS. - */ - function lcs () { - $lcs = 0; - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $lcs += sizeof($edit->orig); + + /** + * Check for empty diff. + * + * @return bool True iff two sequences were identical. + */ + function isEmpty () { + foreach ($this->edits as $edit) { + if ($edit->type != 'copy') + return false; + } + return true; } - return $lcs; - } - - /** - * Get the original set of lines. - * - * This reconstructs the $from_lines parameter passed to the - * constructor. - * - * @return array The original sequence of strings. - */ - function orig() { - $lines = array(); - - foreach ($this->edits as $edit) { - if ($edit->orig) - array_splice($lines, sizeof($lines), 0, $edit->orig); + + /** + * Compute the length of the Longest Common Subsequence (LCS). + * + * This is mostly for diagnostic purposed. + * + * @return int The length of the LCS. + */ + function lcs () { + $lcs = 0; + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $lcs += count($edit->orig); + } + return $lcs; } - return $lines; - } - - /** - * Get the closing set of lines. - * - * This reconstructs the $to_lines parameter passed to the - * constructor. - * - * @return array The sequence of strings. - */ - function closing() { - $lines = array(); - - foreach ($this->edits as $edit) { - if ($edit->closing) - array_splice($lines, sizeof($lines), 0, $edit->closing); + + /** + * Get the original set of lines. + * + * This reconstructs the $from_lines parameter passed to the + * constructor. + * + * @return array The original sequence of strings. + */ + function orig() { + $lines = array(); + + foreach ($this->edits as $edit) { + if ($edit->orig) + array_splice($lines, count($lines), 0, $edit->orig); + } + return $lines; } - return $lines; - } - - /** - * Check a Diff for validity. - * - * This is here only for debugging purposes. - */ - function _check ($from_lines, $to_lines) { - if (serialize($from_lines) != serialize($this->orig())) - trigger_error("Reconstructed original doesn't match", E_USER_ERROR); - if (serialize($to_lines) != serialize($this->closing())) - trigger_error("Reconstructed closing doesn't match", E_USER_ERROR); - - $rev = $this->reverse(); - if (serialize($to_lines) != serialize($rev->orig())) - trigger_error("Reversed original doesn't match", E_USER_ERROR); - if (serialize($from_lines) != serialize($rev->closing())) - trigger_error("Reversed closing doesn't match", E_USER_ERROR); - - - $prevtype = 'none'; - foreach ($this->edits as $edit) { - if ( $prevtype == $edit->type ) - trigger_error("Edit sequence is non-optimal", E_USER_ERROR); - $prevtype = $edit->type; + + /** + * Get the closing set of lines. + * + * This reconstructs the $to_lines parameter passed to the + * constructor. + * + * @return array The sequence of strings. + */ + function closing() { + $lines = array(); + + foreach ($this->edits as $edit) { + if ($edit->closing) + array_splice($lines, count($lines), 0, $edit->closing); + } + return $lines; } - $lcs = $this->lcs(); - trigger_error("Diff okay: LCS = $lcs", E_USER_NOTICE); - } + /** + * Check a Diff for validity. + * + * This is here only for debugging purposes. + */ + function _check ($from_lines, $to_lines) { + if (serialize($from_lines) != serialize($this->orig())) + trigger_error("Reconstructed original doesn't match", E_USER_ERROR); + if (serialize($to_lines) != serialize($this->closing())) + trigger_error("Reconstructed closing doesn't match", E_USER_ERROR); + + $rev = $this->reverse(); + if (serialize($to_lines) != serialize($rev->orig())) + trigger_error("Reversed original doesn't match", E_USER_ERROR); + if (serialize($from_lines) != serialize($rev->closing())) + trigger_error("Reversed closing doesn't match", E_USER_ERROR); + + $prevtype = 'none'; + foreach ($this->edits as $edit) { + if ( $prevtype == $edit->type ) + trigger_error("Edit sequence is non-optimal", E_USER_ERROR); + $prevtype = $edit->type; + } + + $lcs = $this->lcs(); + trigger_error("Diff okay: LCS = $lcs", E_USER_NOTICE); + } } /** * FIXME: bad name. */ -class MappedDiff -extends Diff -{ - /** - * Constructor. - * - * Computes diff between sequences of strings. - * - * This can be used to compute things like - * case-insensitve diffs, or diffs which ignore - * changes in white-space. - * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) - * - * @param $to_lines array An array of strings. - * - * @param $mapped_from_lines array This array should - * have the same size number of elements as $from_lines. - * The elements in $mapped_from_lines and - * $mapped_to_lines are what is actually compared - * when computing the diff. - * - * @param $mapped_to_lines array This array should - * have the same number of elements as $to_lines. - */ - function MappedDiff($from_lines, $to_lines, +class MappedDiff extends Diff { + /** + * Constructor. + * + * Computes diff between sequences of strings. + * + * This can be used to compute things like + * case-insensitve diffs, or diffs which ignore + * changes in white-space. + * + * @param $from_lines array An array of strings. + * (Typically these are lines from a file.) + * + * @param $to_lines array An array of strings. + * + * @param $mapped_from_lines array This array should + * have the same size number of elements as $from_lines. + * The elements in $mapped_from_lines and + * $mapped_to_lines are what is actually compared + * when computing the diff. + * + * @param $mapped_to_lines array This array should + * have the same number of elements as $to_lines. + */ + function MappedDiff($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) { - assert(sizeof($from_lines) == sizeof($mapped_from_lines)); - assert(sizeof($to_lines) == sizeof($mapped_to_lines)); + assert(count($from_lines) == count($mapped_from_lines)); + assert(count($to_lines) == count($mapped_to_lines)); - $this->Diff($mapped_from_lines, $mapped_to_lines); + $this->Diff($mapped_from_lines, $mapped_to_lines); - $xi = $yi = 0; - for ($i = 0; $i < sizeof($this->edits); $i++) { - $orig = &$this->edits[$i]->orig; - if (is_array($orig)) { - $orig = array_slice($from_lines, $xi, sizeof($orig)); - $xi += sizeof($orig); - } + $xi = $yi = 0; + $ecnt = count($this->edits); + for ($i = 0; $i < $ecnt; $i++) { + $orig = &$this->edits[$i]->orig; + if (is_array($orig)) { + $orig = array_slice($from_lines, $xi, count($orig)); + $xi += count($orig); + } - $closing = &$this->edits[$i]->closing; - if (is_array($closing)) { - $closing = array_slice($to_lines, $yi, sizeof($closing)); - $yi += sizeof($closing); - } + $closing = &$this->edits[$i]->closing; + if (is_array($closing)) { + $closing = array_slice($to_lines, $yi, count($closing)); + $yi += count($closing); + } + } } - } } /** @@ -682,150 +682,149 @@ extends Diff * It is intended that this class be customized via inheritance, * to obtain fancier outputs. */ -class DiffFormatter -{ - /** - * Number of leading context "lines" to preserve. - * - * This should be left at zero for this class, but subclasses - * may want to set this to other values. - */ - var $leading_context_lines = 0; - - /** - * Number of trailing context "lines" to preserve. - * - * This should be left at zero for this class, but subclasses - * may want to set this to other values. - */ - var $trailing_context_lines = 0; - - /** - * Format a diff. - * - * @param $diff object A Diff object. - * @return string The formatted output. - */ - function format($diff) { - - $xi = $yi = 1; - $block = false; - $context = array(); - - $nlead = $this->leading_context_lines; - $ntrail = $this->trailing_context_lines; - - $this->_start_diff(); - - foreach ($diff->edits as $edit) { - if ($edit->type == 'copy') { - if (is_array($block)) { - if (sizeof($edit->orig) <= $nlead + $ntrail) { - $block[] = $edit; - } - else{ - if ($ntrail) { - $context = array_slice($edit->orig, 0, $ntrail); - $block[] = new _DiffOp_Copy($context); +class DiffFormatter { + /** + * Number of leading context "lines" to preserve. + * + * This should be left at zero for this class, but subclasses + * may want to set this to other values. + */ + var $leading_context_lines = 0; + + /** + * Number of trailing context "lines" to preserve. + * + * This should be left at zero for this class, but subclasses + * may want to set this to other values. + */ + var $trailing_context_lines = 0; + + /** + * Format a diff. + * + * @param $diff object A Diff object. + * @return string The formatted output. + */ + function format($diff) { + + $xi = $yi = 1; + $block = false; + $context = array(); + + $nlead = $this->leading_context_lines; + $ntrail = $this->trailing_context_lines; + + $this->_start_diff(); + + foreach ($diff->edits as $edit) { + if ($edit->type == 'copy') { + if (is_array($block)) { + if (count($edit->orig) <= $nlead + $ntrail) { + $block[] = $edit; + } + else{ + if ($ntrail) { + $context = array_slice($edit->orig, 0, $ntrail); + $block[] = new _DiffOp_Copy($context); + } + $this->_block($x0, $ntrail + $xi - $x0, + $y0, $ntrail + $yi - $y0, + $block); + $block = false; + } + } + $context = $edit->orig; } - $this->_block($x0, $ntrail + $xi - $x0, - $y0, $ntrail + $yi - $y0, - $block); - $block = false; - } + else { + if (! is_array($block)) { + $context = array_slice($context, count($context) - $nlead); + $x0 = $xi - count($context); + $y0 = $yi - count($context); + $block = array(); + if ($context) + $block[] = new _DiffOp_Copy($context); + } + $block[] = $edit; + } + + if ($edit->orig) + $xi += count($edit->orig); + if ($edit->closing) + $yi += count($edit->closing); } - $context = $edit->orig; - } - else { - if (! is_array($block)) { - $context = array_slice($context, sizeof($context) - $nlead); - $x0 = $xi - sizeof($context); - $y0 = $yi - sizeof($context); - $block = array(); - if ($context) - $block[] = new _DiffOp_Copy($context); + + if (is_array($block)) + $this->_block($x0, $xi - $x0, + $y0, $yi - $y0, + $block); + + return $this->_end_diff(); + } + + function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) { + $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen)); + foreach ($edits as $edit) { + if ($edit->type == 'copy') + $this->_context($edit->orig); + elseif ($edit->type == 'add') + $this->_added($edit->closing); + elseif ($edit->type == 'delete') + $this->_deleted($edit->orig); + elseif ($edit->type == 'change') + $this->_changed($edit->orig, $edit->closing); + else + trigger_error("Unknown edit type", E_USER_ERROR); } - $block[] = $edit; - } + $this->_end_block(); + } + + function _start_diff() { + ob_start(); + } + + function _end_diff() { + $val = ob_get_contents(); + ob_end_clean(); + return $val; + } + + function _block_header($xbeg, $xlen, $ybeg, $ylen) { + if ($xlen > 1) + $xbeg .= "," . ($xbeg + $xlen - 1); + if ($ylen > 1) + $ybeg .= "," . ($ybeg + $ylen - 1); + + return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg; + } + + function _start_block($header) { + echo $header; + } - if ($edit->orig) - $xi += sizeof($edit->orig); - if ($edit->closing) - $yi += sizeof($edit->closing); + function _end_block() { } - if (is_array($block)) - $this->_block($x0, $xi - $x0, - $y0, $yi - $y0, - $block); - - return $this->_end_diff(); - } - - function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) { - $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen)); - foreach ($edits as $edit) { - if ($edit->type == 'copy') - $this->_context($edit->orig); - elseif ($edit->type == 'add') - $this->_added($edit->closing); - elseif ($edit->type == 'delete') - $this->_deleted($edit->orig); - elseif ($edit->type == 'change') - $this->_changed($edit->orig, $edit->closing); - else - trigger_error("Unknown edit type", E_USER_ERROR); + function _lines($lines, $prefix = ' ') { + foreach ($lines as $line) + echo "$prefix $line\n"; + } + + function _context($lines) { + $this->_lines($lines); + } + + function _added($lines) { + $this->_lines($lines, ">"); + } + function _deleted($lines) { + $this->_lines($lines, "<"); + } + + function _changed($orig, $closing) { + $this->_deleted($orig); + echo "---\n"; + $this->_added($closing); } - $this->_end_block(); - } - - function _start_diff() { - ob_start(); - } - - function _end_diff() { - $val = ob_get_contents(); - ob_end_clean(); - return $val; - } - - function _block_header($xbeg, $xlen, $ybeg, $ylen) { - if ($xlen > 1) - $xbeg .= "," . ($xbeg + $xlen - 1); - if ($ylen > 1) - $ybeg .= "," . ($ybeg + $ylen - 1); - - return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg; - } - - function _start_block($header) { - echo $header; - } - - function _end_block() { - } - - function _lines($lines, $prefix = ' ') { - foreach ($lines as $line) - echo "$prefix $line\n"; - } - - function _context($lines) { - $this->_lines($lines); - } - - function _added($lines) { - $this->_lines($lines, ">"); - } - function _deleted($lines) { - $this->_lines($lines, "<"); - } - - function _changed($orig, $closing) { - $this->_deleted($orig); - echo "---\n"; - $this->_added($closing); - } } @@ -837,100 +836,97 @@ class DiffFormatter define('NBSP', "\xC2\xA0"); // utf-8 non-breaking space. class _HWLDF_WordAccumulator { - function _HWLDF_WordAccumulator () { - $this->_lines = array(); - $this->_line = ''; - $this->_group = ''; - $this->_tag = ''; - } - - function _flushGroup ($new_tag) { - if ($this->_group !== '') { - if ($this->_tag == 'mark') - $this->_line .= '<strong>'.$this->_group.'</strong>'; - else - $this->_line .= $this->_group; - } - $this->_group = ''; - $this->_tag = $new_tag; - } - - function _flushLine ($new_tag) { - $this->_flushGroup($new_tag); - if ($this->_line != '') - $this->_lines[] = $this->_line; - $this->_line = ''; - } - - function addWords ($words, $tag = '') { - if ($tag != $this->_tag) - $this->_flushGroup($tag); - - foreach ($words as $word) { - // new-line should only come as first char of word. - if ($word == '') - continue; - if ($word[0] == "\n") { - $this->_group .= NBSP; - $this->_flushLine($tag); - $word = substr($word, 1); - } - assert(!strstr($word, "\n")); - $this->_group .= $word; + function _HWLDF_WordAccumulator () { + $this->_lines = array(); + $this->_line = ''; + $this->_group = ''; + $this->_tag = ''; } - } - - function getLines() { - $this->_flushLine('~done'); - return $this->_lines; - } -} -class WordLevelDiff extends MappedDiff -{ - function WordLevelDiff ($orig_lines, $closing_lines) { - list ($orig_words, $orig_stripped) = $this->_split($orig_lines); - list ($closing_words, $closing_stripped) = $this->_split($closing_lines); + function _flushGroup ($new_tag) { + if ($this->_group !== '') { + if ($this->_tag == 'mark') + $this->_line .= '<strong>'.$this->_group.'</strong>'; + else + $this->_line .= $this->_group; + } + $this->_group = ''; + $this->_tag = $new_tag; + } + function _flushLine ($new_tag) { + $this->_flushGroup($new_tag); + if ($this->_line != '') + $this->_lines[] = $this->_line; + $this->_line = ''; + } - $this->MappedDiff($orig_words, $closing_words, - $orig_stripped, $closing_stripped); - } + function addWords ($words, $tag = '') { + if ($tag != $this->_tag) + $this->_flushGroup($tag); + + foreach ($words as $word) { + // new-line should only come as first char of word. + if ($word == '') + continue; + if ($word[0] == "\n") { + $this->_group .= NBSP; + $this->_flushLine($tag); + $word = substr($word, 1); + } + assert(!strstr($word, "\n")); + $this->_group .= $word; + } + } - function _split($lines) { - // FIXME: fix POSIX char class. -# if (!preg_match_all('/ ( [^\S\n]+ | [[:alnum:]]+ | . ) (?: (?!< \n) [^\S\n])? /xs', - if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', - implode("\n", $lines), - $m)) { - return array(array(''), array('')); + function getLines() { + $this->_flushLine('~done'); + return $this->_lines; } - return array($m[0], $m[1]); - } +} + +class WordLevelDiff extends MappedDiff { - function orig () { - $orig = new _HWLDF_WordAccumulator; + function WordLevelDiff ($orig_lines, $closing_lines) { + list ($orig_words, $orig_stripped) = $this->_split($orig_lines); + list ($closing_words, $closing_stripped) = $this->_split($closing_lines); - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $orig->addWords($edit->orig); - elseif ($edit->orig) - $orig->addWords($edit->orig, 'mark'); + $this->MappedDiff($orig_words, $closing_words, + $orig_stripped, $closing_stripped); } - return $orig->getLines(); - } - function closing () { - $closing = new _HWLDF_WordAccumulator; + function _split($lines) { + if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', + implode("\n", $lines), + $m)) { + return array(array(''), array('')); + } + return array($m[0], $m[1]); + } + + function orig () { + $orig = new _HWLDF_WordAccumulator; - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $closing->addWords($edit->closing); - elseif ($edit->closing) - $closing->addWords($edit->closing, 'mark'); - } - return $closing->getLines(); - } + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $orig->addWords($edit->orig); + elseif ($edit->orig) + $orig->addWords($edit->orig, 'mark'); + } + return $orig->getLines(); + } + + function closing () { + $closing = new _HWLDF_WordAccumulator; + + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $closing->addWords($edit->closing); + elseif ($edit->closing) + $closing->addWords($edit->closing, 'mark'); + } + return $closing->getLines(); + } } /** @@ -938,8 +934,8 @@ class WordLevelDiff extends MappedDiff * * This class formats the diff in classic "unified diff" format. */ -class UnifiedDiffFormatter extends DiffFormatter -{ +class UnifiedDiffFormatter extends DiffFormatter { + function UnifiedDiffFormatter($context_lines = 4) { $this->leading_context_lines = $context_lines; $this->trailing_context_lines = $context_lines; @@ -969,98 +965,99 @@ class UnifiedDiffFormatter extends DiffFormatter * Wikipedia Table style diff formatter. * */ -class TableDiffFormatter extends DiffFormatter -{ - function TableDiffFormatter() { - $this->leading_context_lines = 2; - $this->trailing_context_lines = 2; - } - - function _pre($text){ - $text = htmlspecialchars($text); - $text = str_replace(' ',' ',$text); - if($text{0} == ' ') $text = ' '.substr($text,1); - return $text; - } - - function _block_header( $xbeg, $xlen, $ybeg, $ylen ) { - global $lang; - $l1 = $lang['line'].' '.$xbeg; - $l2 = $lang['line'].' '.$ybeg; - $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.":</td>\n" . - '<td class="diff-blockheader" colspan="2">'.$l2.":</td></tr>\n"; - return $r; - } - - function _start_block( $header ) { - print( $header ); - } - - function _end_block() { - } - - function _lines( $lines, $prefix=' ', $color="white" ) { - } - - function addedLine( $line ) { - $line = str_replace(' ',' ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); - return '<td>+</td><td class="diff-addedline">' . - $line.'</td>'; - } - - function deletedLine( $line ) { - $line = str_replace(' ',' ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); - return '<td>-</td><td class="diff-deletedline">' . - $line.'</td>'; - } - - function emptyLine() { - //$line = str_replace(' ',' ',$line); - return '<td colspan="2"> </td>'; - } - - function contextLine( $line ) { - $line = str_replace(' ',' ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); - return '<td> </td><td class="diff-context">'.$line.'</td>'; - } - - function _added($lines) { - foreach ($lines as $line) { - print( '<tr>' . $this->emptyLine() . - $this->addedLine( $line ) . "</tr>\n" ); +class TableDiffFormatter extends DiffFormatter { + + function TableDiffFormatter() { + $this->leading_context_lines = 2; + $this->trailing_context_lines = 2; + } + + function format($diff) { + // Preserve whitespaces by converting some to non-breaking spaces. + // Do not convert all of them to allow word-wrap. + $val = parent::format($diff); + $val = str_replace(' ',' ', $val); + $val = preg_replace('/ (?=<)|(?<=[ >]) /', ' ', $val); + return $val; + } + + function _pre($text){ + $text = htmlspecialchars($text); + return $text; + } + + function _block_header( $xbeg, $xlen, $ybeg, $ylen ) { + global $lang; + $l1 = $lang['line'].' '.$xbeg; + $l2 = $lang['line'].' '.$ybeg; + $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.":</td>\n" . + '<td class="diff-blockheader" colspan="2">'.$l2.":</td></tr>\n"; + return $r; + } + + function _start_block( $header ) { + print( $header ); + } + + function _end_block() { + } + + function _lines( $lines, $prefix=' ', $color="white" ) { + } + + function addedLine( $line ) { + return '<td>+</td><td class="diff-addedline">' . + $line.'</td>'; + + } + + function deletedLine( $line ) { + return '<td>-</td><td class="diff-deletedline">' . + $line.'</td>'; } - } - function _deleted($lines) { - foreach ($lines as $line) { - print( '<tr>' . $this->deletedLine( $line ) . - $this->emptyLine() . "</tr>\n" ); + function emptyLine() { + return '<td colspan="2"> </td>'; } - } - function _context( $lines ) { - foreach ($lines as $line) { - print( '<tr>' . $this->contextLine( $line ) . - $this->contextLine( $line ) . "</tr>\n" ); + function contextLine( $line ) { + return '<td> </td><td class="diff-context">'.$line.'</td>'; } - } - function _changed( $orig, $closing ) { - $diff = new WordLevelDiff( $orig, $closing ); - $del = $diff->orig(); - $add = $diff->closing(); + function _added($lines) { + foreach ($lines as $line) { + print( '<tr>' . $this->emptyLine() . + $this->addedLine( $line ) . "</tr>\n" ); + } + } + + function _deleted($lines) { + foreach ($lines as $line) { + print( '<tr>' . $this->deletedLine( $line ) . + $this->emptyLine() . "</tr>\n" ); + } + } + + function _context( $lines ) { + foreach ($lines as $line) { + print( '<tr>' . $this->contextLine( $line ) . + $this->contextLine( $line ) . "</tr>\n" ); + } + } + + function _changed( $orig, $closing ) { + $diff = new WordLevelDiff( $orig, $closing ); + $del = $diff->orig(); + $add = $diff->closing(); - while ( $line = array_shift( $del ) ) { - $aline = array_shift( $add ); - print( '<tr>' . $this->deletedLine( $line ) . - $this->addedLine( $aline ) . "</tr>\n" ); + while ( $line = array_shift( $del ) ) { + $aline = array_shift( $add ); + print( '<tr>' . $this->deletedLine( $line ) . + $this->addedLine( $aline ) . "</tr>\n" ); + } + $this->_added( $add ); # If any leftovers } - $this->_added( $add ); # If any leftovers - } } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/FeedParser.php b/inc/FeedParser.php index f37888f01..9d00e7abf 100644 --- a/inc/FeedParser.php +++ b/inc/FeedParser.php @@ -6,9 +6,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/HTTPClient.php'); -require_once(DOKU_INC.'inc/SimplePie.php'); - /** * We override some methods of the original SimplePie class here diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 578d7e7cd..b6feba35a 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -29,11 +29,12 @@ class DokuHTTPClient extends HTTPClient { $this->HTTPClient(); // set some values from the config - $this->proxy_host = $conf['proxy']['host']; - $this->proxy_port = $conf['proxy']['port']; - $this->proxy_user = $conf['proxy']['user']; - $this->proxy_pass = conf_decodeString($conf['proxy']['pass']); - $this->proxy_ssl = $conf['proxy']['ssl']; + $this->proxy_host = $conf['proxy']['host']; + $this->proxy_port = $conf['proxy']['port']; + $this->proxy_user = $conf['proxy']['user']; + $this->proxy_pass = conf_decodeString($conf['proxy']['pass']); + $this->proxy_ssl = $conf['proxy']['ssl']; + $this->proxy_except = $conf['proxy']['except']; } @@ -105,6 +106,7 @@ class HTTPClient { var $proxy_user; var $proxy_pass; var $proxy_ssl; //boolean set to true if your proxy needs SSL + var $proxy_except; // regexp of URLs to exclude from proxy // what we use as boundary on multipart/form-data posts var $boundary = '---DokuWikiHTTPClient--4523452351'; @@ -151,6 +153,29 @@ class HTTPClient { } /** + * Simple function to do a GET request with given parameters + * + * Returns the wanted page or false on an error. + * + * This is a convenience wrapper around get(). The given parameters + * will be correctly encoded and added to the given base URL. + * + * @param string $url The URL to fetch + * @param string $data Associative array of parameters + * @param bool $sloppy304 Return body on 304 not modified + * @author Andreas Gohr <andi@splitbrain.org> + */ + function dget($url,$data,$sloppy304=false){ + if(strpos($url,'?')){ + $url .= '&'; + }else{ + $url .= '?'; + } + $url .= $this->_postEncode($data); + return $this->get($url,$sloppy304); + } + + /** * Simple function to do a POST request * * Returns the resulting page or false on an error; @@ -202,7 +227,7 @@ class HTTPClient { if(isset($uri['pass'])) $this->pass = $uri['pass']; // proxy setup - if($this->proxy_host){ + if($this->proxy_host && (!$this->proxy_except || !preg_match('/'.$this->proxy_except.'/i',$url)) ){ $request_url = $url; $server = $this->proxy_host; $port = $this->proxy_port; @@ -279,7 +304,6 @@ class HTTPClient { $written += $ret; } - // read headers from socket $r_headers = ''; do{ diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 2752e31f2..c7f83a6d6 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -136,6 +136,7 @@ class IXR_Message { var $_value; var $_currentTag; var $_currentTagContents; + var $_lastseen; // The XML parser var $_parser; function IXR_Message ($message) { @@ -150,6 +151,7 @@ class IXR_Message { $this->message = str_replace('&', '&', $this->message); $this->message = str_replace(''', ''', $this->message); $this->message = str_replace('"', '"', $this->message); + $this->message = str_replace("\x0b", ' ', $this->message); //vertical tab if (trim($this->message) == '') { return false; } @@ -193,6 +195,7 @@ class IXR_Message { $this->_arraystructs[] = array(); break; } + $this->_lastseen = $tag; } function cdata($parser, $cdata) { $this->_currentTagContents .= $cdata; @@ -224,7 +227,7 @@ class IXR_Message { break; case 'value': // "If no type is indicated, the type is string." - if (trim($this->_currentTagContents) != '') { + if($this->_lastseen == 'value'){ $value = (string)$this->_currentTagContents; $this->_currentTagContents = ''; $valueFlag = true; @@ -279,6 +282,7 @@ class IXR_Message { $this->params[] = $value; } } + $this->_lastseen = $tag; } } @@ -300,7 +304,7 @@ class IXR_Server { if (!$data) { global $HTTP_RAW_POST_DATA; if (!$HTTP_RAW_POST_DATA) { - die('XML-RPC server accepts POST requests only.'); + die('XML-RPC server accepts POST requests only.'); } $data = $HTTP_RAW_POST_DATA; } @@ -342,14 +346,13 @@ EOD; $method = $this->callbacks[$methodname]; // Perform the callback and send the response -# Removed for DokuWiki to have a more consistent interface -# if (count($args) == 1) { -# // If only one paramater just send that instead of the whole array -# $args = $args[0]; -# } + # Removed for DokuWiki to have a more consistent interface + # if (count($args) == 1) { + # // If only one paramater just send that instead of the whole array + # $args = $args[0]; + # } - -# Adjusted for DokuWiki to use call_user_func_array + # Adjusted for DokuWiki to use call_user_func_array // args need to be an array $args = (array) $args; @@ -365,7 +368,6 @@ EOD; #$result = $this->$method($args); $result = call_user_func_array(array(&$this,$method),$args); } elseif (substr($method, 0, 7) == 'plugin:') { - require_once(DOKU_INC.'inc/pluginutils.php'); list($pluginname, $callback) = explode(':', substr($method, 7), 2); if(!plugin_isdisabled($pluginname)) { $plugin = plugin_load('action', $pluginname); @@ -618,15 +620,17 @@ class IXR_Date { $this->second = gmdate('s', $timestamp); } function parseIso($iso) { - $this->year = substr($iso, 0, 4); - $this->month = substr($iso, 5, 2); - $this->day = substr($iso, 8, 2); - $this->hour = substr($iso, 11, 2); - $this->minute = substr($iso, 14, 2); - $this->second = substr($iso, 17, 2); + if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/',$iso,$match)){ + $this->year = (int) $match[1]; + $this->month = (int) $match[2]; + $this->day = (int) $match[3]; + $this->hour = (int) $match[5]; + $this->minute = (int) $match[6]; + $this->second = (int) $match[8]; + } } function getIso() { - return $this->year.'-'.$this->month.'-'.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; + return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; } function getXml() { return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>'; diff --git a/inc/JSON.php b/inc/JSON.php index ea66c9c32..332827f4c 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -59,7 +59,6 @@ // for DokuWiki if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/utf8.php'); /** * Marker constant for JSON::decode(), used to flag stack state @@ -112,38 +111,35 @@ define('JSON_STRICT_TYPE', 11); * @since * @deprecated */ -class JSON -{ - /** - * constructs a new JSON instance - * - * @param int $use object behavior: when encoding or decoding, - * be loose or strict about object/array usage - * - * possible values: - * JSON_STRICT_TYPE - strict typing, default - * "{...}" syntax creates objects in decode. - * JSON_LOOSE_TYPE - loose typing - * "{...}" syntax creates associative arrays in decode. - */ - function JSON($use=JSON_STRICT_TYPE) - { +class JSON { + /** + * constructs a new JSON instance + * + * @param int $use object behavior: when encoding or decoding, + * be loose or strict about object/array usage + * + * possible values: + * JSON_STRICT_TYPE - strict typing, default + * "{...}" syntax creates objects in decode. + * JSON_LOOSE_TYPE - loose typing + * "{...}" syntax creates associative arrays in decode. + */ + function JSON($use=JSON_STRICT_TYPE) { $this->use = $use; } - /** - * encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return string JSON string representation of input var - * @access public - */ - function encode($var) - { + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return string JSON string representation of input var + * @access public + */ + function encode($var) { switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -163,20 +159,30 @@ class JSON $ascii = ''; $strlen_var = strlen($var); - /* - * Iterate over every character in the string, - * escaping with a slash or encoding to UTF-8 where necessary - */ + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ for ($c = 0; $c < $strlen_var; ++$c) { $ord_var_c = ord($var{$c}); switch ($ord_var_c) { - case 0x08: $ascii .= '\b'; break; - case 0x09: $ascii .= '\t'; break; - case 0x0A: $ascii .= '\n'; break; - case 0x0C: $ascii .= '\f'; break; - case 0x0D: $ascii .= '\r'; break; + case 0x08: + $ascii .= '\b'; + break; + case 0x09: + $ascii .= '\t'; + break; + case 0x0A: + $ascii .= '\n'; + break; + case 0x0C: + $ascii .= '\f'; + break; + case 0x0D: + $ascii .= '\r'; + break; case 0x22: case 0x2F: @@ -259,26 +265,26 @@ class JSON return '"'.$ascii.'"'; case 'array': - /* - * As per JSON spec if any array key is not an integer - * we must treat the the whole array as an object. We - * also try to catch a sparsely populated associative - * array with numeric keys here because some JS engines - * will create an array with empty indexes up to - * max_index which can cause memory issues and because - * the keys, which may be relevant, will be remapped - * otherwise. - * - * As per the ECMA and JSON specification an object may - * have any string as a property. Unfortunately due to - * a hole in the ECMA specification if the key is a - * ECMA reserved word or starts with a digit the - * parameter is only accessible using ECMAScript's - * bracket notation. - */ + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ // treat as a JSON object - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + if (is_array($var) && count($var) && (array_keys($var) !== range(0, count($var) - 1))) { return sprintf('{%s}', join(',', array_map(array($this, 'name_value'), array_keys($var), array_values($var)))); @@ -298,38 +304,35 @@ class JSON } } - /** - * encodes an arbitrary variable into JSON format, alias for encode() - */ - function enc($var) - { + /** + * encodes an arbitrary variable into JSON format, alias for encode() + */ + function enc($var) { return $this->encode($var); } - /** function name_value - * array-walking function for use in generating JSON-formatted name-value pairs - * - * @param string $name name of key to use - * @param mixed $value reference to an array element to be encoded - * - * @return string JSON-formatted name-value pair, like '"name":value' - * @access private - */ - function name_value($name, $value) - { + /** function name_value + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) { return (sprintf("%s:%s", $this->encode(strval($name)), $this->encode($value))); } - /** - * reduce a string by removing leading and trailing comments and whitespace - * - * @param $str string string value to strip of comments and whitespace - * - * @return string string value stripped of comments and whitespace - * @access private - */ - function reduce_string($str) - { + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) { $str = preg_replace(array( // eliminate single line comments in '// ...' form @@ -347,20 +350,19 @@ class JSON return trim($str); } - /** - * decodes a JSON string into appropriate variable - * - * @param string $str JSON-formatted string - * - * @return mixed number, boolean, string, array, or object - * corresponding to given JSON input string. - * See argument 1 to JSON() above for object-output behavior. - * Note that decode() always returns strings - * in ASCII or UTF-8 format! - * @access public - */ - function decode($str) - { + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) { $str = $this->reduce_string($str); switch (strtolower($str)) { @@ -399,11 +401,26 @@ class JSON $ord_chrs_c = ord($chrs{$c}); switch ($substr_chrs_c_2) { - case '\b': $utf8 .= chr(0x08); $c+=1; break; - case '\t': $utf8 .= chr(0x09); $c+=1; break; - case '\n': $utf8 .= chr(0x0A); $c+=1; break; - case '\f': $utf8 .= chr(0x0C); $c+=1; break; - case '\r': $utf8 .= chr(0x0D); $c+=1; break; + case '\b': + $utf8 .= chr(0x08); + $c+=1; + break; + case '\t': + $utf8 .= chr(0x09); + $c+=1; + break; + case '\n': + $utf8 .= chr(0x0A); + $c+=1; + break; + case '\f': + $utf8 .= chr(0x0C); + $c+=1; + break; + case '\r': + $utf8 .= chr(0x0D); + $c+=1; + break; case '\\"': case '\\\'': @@ -430,27 +447,32 @@ class JSON } elseif(($ord_chrs_c & 0xE0) == 0xC0) { // characters U-00000080 - U-000007FF, mask 110XXXXX //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); $c += 1; + $utf8 .= substr($chrs, $c, 2); + $c += 1; } elseif(($ord_chrs_c & 0xF0) == 0xE0) { // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); $c += 2; + $utf8 .= substr($chrs, $c, 3); + $c += 2; } elseif(($ord_chrs_c & 0xF8) == 0xF0) { // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); $c += 3; + $utf8 .= substr($chrs, $c, 4); + $c += 3; } elseif(($ord_chrs_c & 0xFC) == 0xF8) { // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); $c += 4; + $utf8 .= substr($chrs, $c, 5); + $c += 4; } elseif(($ord_chrs_c & 0xFE) == 0xFC) { // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); $c += 5; + $utf8 .= substr($chrs, $c, 6); + $c += 5; } break; @@ -612,13 +634,11 @@ class JSON } } - /** - * decodes a JSON string into appropriate variable; alias for decode() - */ - function dec($var) - { + /** + * decodes a JSON string into appropriate variable; alias for decode() + */ + function dec($var) { return $this->decode($var); } - } diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index cb1d7d694..98453131e 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -2,35 +2,44 @@ /** * JPEG metadata reader/writer * - * @license PHP license 2.0 (http://www.php.net/license/2_02.txt) - * @link http://www.zonageek.com/software/php/jpeg/index.php + * @license BSD <http://www.opensource.org/licenses/bsd-license.php> + * @link http://github.com/sd/jpeg-php * @author Sebastian Delmont <sdelmont@zonageek.com> * @author Andreas Gohr <andi@splitbrain.org> - * @author Hakan Sandell <hakan.sandell@mydata.se> + * @author Hakan Sandell <hakan.sandell@mydata.se> * @todo Add support for Maker Notes, Extend for GIF and PNG metadata */ -// This class is a modified and enhanced version of the JPEG class by -// Sebastian Delmont. Original Copyright notice follows: +// Original copyright notice: // -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Sebastian Delmont <sdelmont@zonageek.com> | -// +----------------------------------------------------------------------+ - -class JpegMeta -{ +// Copyright (c) 2003 Sebastian Delmont <sdelmont@zonageek.com> +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the author nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + +class JpegMeta { var $_fileName; var $_fp = null; var $_type = 'unknown'; @@ -44,8 +53,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function JpegMeta($fileName) - { + function JpegMeta($fileName) { $this->_fileName = $fileName; @@ -61,8 +69,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function & getRawInfo() - { + function & getRawInfo() { $this->_parseAll(); if ($this->_markers == null) { @@ -77,8 +84,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function & getBasicInfo() - { + function & getBasicInfo() { $this->_parseAll(); $info = array(); @@ -91,16 +97,14 @@ class JpegMeta if (isset($this->_info['file']['Url'])) { $info['Url'] = $this->_info['file']['Url']; $info['NiceSize'] = "???KB"; - } - else { + } else { $info['Size'] = $this->_info['file']['Size']; $info['NiceSize'] = $this->_info['file']['NiceSize']; } if (@isset($this->_info['sof']['Format'])) { $info['Format'] = $this->_info['sof']['Format'] . " JPEG"; - } - else { + } else { $info['Format'] = $this->_info['sof']['Format'] . " JPEG"; } @@ -129,8 +133,7 @@ class JpegMeta * * @author Andreas Gohr <andi@splitbrain.org> */ - function getField($fields) - { + function getField($fields) { if(!is_array($fields)) $fields = array($fields); $info = false; foreach($fields as $field){ @@ -175,8 +178,7 @@ class JpegMeta * * @author Andreas Gohr <andi@splitbrain.org> */ - function setField($field, $value) - { + function setField($field, $value) { if(strtolower(substr($field,0,5)) == 'iptc.'){ return $this->setIPTCField(substr($field,5),$value); }elseif(strtolower(substr($field,0,5)) == 'exif.'){ @@ -192,8 +194,7 @@ class JpegMeta * * @author Andreas Gohr <andi@splitbrain.org> */ - function deleteField($field) - { + function deleteField($field) { if(strtolower(substr($field,0,5)) == 'iptc.'){ return $this->deleteIPTCField(substr($field,5)); }elseif(strtolower(substr($field,0,5)) == 'exif.'){ @@ -208,8 +209,7 @@ class JpegMeta * * @author Andreas Gohr <andi@splitbrain.org> */ - function getDateField($field) - { + function getDateField($field) { if (!isset($this->_info['dates'])) { $this->_info['dates'] = $this->getDates(); } @@ -226,8 +226,7 @@ class JpegMeta * * @author Andreas Gohr <andi@splitbrain.org> */ - function getFileField($field) - { + function getFileField($field) { if (!isset($this->_info['file'])) { $this->_parseFileInfo(); } @@ -258,8 +257,7 @@ class JpegMeta * * @author Joe Lapp <joe.lapp@pobox.com> */ - function getShutterSpeed() - { + function getShutterSpeed() { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -277,8 +275,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getExifField($field) - { + function getExifField($field) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -299,8 +296,7 @@ class JpegMeta * * @author Hakan Sandell <hakan.sandell@mydata.se> */ - function getXmpField($field) - { + function getXmpField($field) { if (!isset($this->_info['xmp'])) { $this->_parseMarkerXmp(); } @@ -321,8 +317,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getAdobeField($field) - { + function getAdobeField($field) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -343,8 +338,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getIPTCField($field) - { + function getIPTCField($field) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -366,8 +360,7 @@ class JpegMeta * @author Sebastian Delmont <sdelmont@zonageek.com> * @author Joe Lapp <joe.lapp@pobox.com> */ - function setExifField($field, $value) - { + function setExifField($field, $value) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -397,8 +390,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function setAdobeField($field, $value) - { + function setAdobeField($field, $value) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -451,8 +443,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function setIPTCField($field, $value) - { + function setIPTCField($field, $value) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -475,8 +466,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function deleteExifField($field) - { + function deleteExifField($field) { if (!isset($this->_info['exif'])) { $this->_parseMarkerAdobe(); } @@ -497,8 +487,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function deleteAdobeField($field) - { + function deleteAdobeField($field) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -519,8 +508,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function deleteIPTCField($field) - { + function deleteIPTCField($field) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -547,12 +535,12 @@ class JpegMeta // try various fields $cap = $this->getField(array('Iptc.Headline', - 'Iptc.Caption', - 'Xmp.dc:title', - 'Exif.UserComment', - 'Exif.TIFFUserComment', - 'Exif.TIFFImageDescription', - 'File.Name')); + 'Iptc.Caption', + 'Xmp.dc:title', + 'Exif.UserComment', + 'Exif.TIFFUserComment', + 'Exif.TIFFImageDescription', + 'File.Name')); if (empty($cap)) return false; if(!$max) return $cap; @@ -568,8 +556,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getDates() - { + function getDates() { $this->_parseAll(); if ($this->_markers == null) { if (@isset($this->_info['file']['UnixTime'])) { @@ -704,8 +691,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getWidth() - { + function getWidth() { if (!isset($this->_info['sof'])) { $this->_parseMarkerSOF(); } @@ -734,8 +720,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getHeight() - { + function getHeight() { if (!isset($this->_info['sof'])) { $this->_parseMarkerSOF(); } @@ -764,8 +749,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function getDimStr() - { + function getDimStr() { if ($this->_markers == null) { return false; } @@ -781,8 +765,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function hasThumbnail($which = 'any') - { + function hasThumbnail($which = 'any') { if (($which == 'any') || ($which == 'exif')) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); @@ -823,8 +806,7 @@ class JpegMeta * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function sendThumbnail($which = 'any') - { + function sendThumbnail($which = 'any') { $data = null; if (($which == 'any') || ($which == 'exif')) { @@ -892,8 +874,7 @@ class JpegMeta /*************************************************************/ /*************************************************************/ - function _dispose() - { + function _dispose() { $this->_fileName = $fileName; $this->_fp = null; @@ -904,8 +885,7 @@ class JpegMeta } /*************************************************************/ - function _readJPEG() - { + function _readJPEG() { unset($this->_markers); //unset($this->_info); $this->_markers = array(); @@ -919,8 +899,7 @@ class JpegMeta else { $this->_type = 'url'; } - } - else { + } else { $this->_fp = null; return false; // ERROR: Can't open file } @@ -942,14 +921,14 @@ class JpegMeta while (!$done) { $capture = false; - // First, skip any non 0xFF bytes + // First, skip any non 0xFF bytes $discarded = 0; $c = ord(fgetc($this->_fp)); while (!feof($this->_fp) && ($c != 0xFF)) { $discarded++; $c = ord(fgetc($this->_fp)); } - // Then skip all 0xFF until the marker byte + // Then skip all 0xFF until the marker byte do { $marker = ord(fgetc($this->_fp)); } while (!feof($this->_fp) && ($marker == 0xFF)); @@ -971,23 +950,23 @@ class JpegMeta $length = $length - 2; // The length we got counts itself switch ($marker) { - case 0xC0: // SOF0 - case 0xC1: // SOF1 - case 0xC2: // SOF2 - case 0xC9: // SOF9 - case 0xE0: // APP0: JFIF data - case 0xE1: // APP1: EXIF or XMP data - case 0xED: // APP13: IPTC / Photoshop data - $capture = true; - break; - case 0xDA: // SOS: Start of scan... the image itself and the last block on the file - $capture = false; - $length = -1; // This field has no length... it includes all data until EOF - $done = true; - break; - default: - $capture = true;//false; - break; + case 0xC0: // SOF0 + case 0xC1: // SOF1 + case 0xC2: // SOF2 + case 0xC9: // SOF9 + case 0xE0: // APP0: JFIF data + case 0xE1: // APP1: EXIF or XMP data + case 0xED: // APP13: IPTC / Photoshop data + $capture = true; + break; + case 0xDA: // SOS: Start of scan... the image itself and the last block on the file + $capture = false; + $length = -1; // This field has no length... it includes all data until EOF + $done = true; + break; + default: + $capture = true;//false; + break; } $this->_markers[$count] = array(); @@ -1002,7 +981,7 @@ class JpegMeta } elseif (!$done) { $result = @fseek($this->_fp, $length, SEEK_CUR); - // fseek doesn't seem to like HTTP 'files', but fgetc has no problem + // fseek doesn't seem to like HTTP 'files', but fgetc has no problem if (!($result === 0)) { for ($i = 0; $i < $length; $i++) { fgetc($this->_fp); @@ -1021,8 +1000,7 @@ class JpegMeta } /*************************************************************/ - function _parseAll() - { + function _parseAll() { if (!isset($this->_info['file'])) { $this->_parseFileInfo(); } @@ -1052,8 +1030,7 @@ class JpegMeta } /*************************************************************/ - function _writeJPEG($outputName) - { + function _writeJPEG($outputName) { $this->_parseAll(); $wroteEXIF = false; @@ -1067,16 +1044,13 @@ class JpegMeta else { $this->_type = 'url'; } - } - else { + } else { $this->_fp = null; return false; // ERROR: Can't open file } $this->_fpout = fopen($outputName, 'wb'); - if ($this->_fpout) { - } - else { + if (!$this->_fpout) { $this->_fpout = null; fclose($this->_fp); $this->_fp = null; @@ -1100,14 +1074,14 @@ class JpegMeta $ok = true; while (!$done) { - // First, skip any non 0xFF bytes + // First, skip any non 0xFF bytes $discarded = 0; $c = ord(fgetc($this->_fp)); while (!feof($this->_fp) && ($c != 0xFF)) { $discarded++; $c = ord(fgetc($this->_fp)); } - // Then skip all 0xFF until the marker byte + // Then skip all 0xFF until the marker byte do { $marker = ord(fgetc($this->_fp)); } while (!feof($this->_fp) && ($marker == 0xFF)); @@ -1156,7 +1130,7 @@ class JpegMeta if (!$wroteAdobe && (($marker < 0xE0) || ($marker > 0xEF))) { if ((isset($this->_info['adobe']) && is_array($this->_info['adobe'])) - || (isset($this->_info['iptc']) && is_array($this->_info['iptc']))) { + || (isset($this->_info['iptc']) && is_array($this->_info['iptc']))) { $adobe =& $this->_createMarkerAdobe(); $this->_writeJPEGMarker(0xED, strlen($adobe), $adobe, 0); unset($adobe); @@ -1188,8 +1162,7 @@ class JpegMeta } /*************************************************************/ - function _writeJPEGMarker($marker, $length, &$data, $origLength) - { + function _writeJPEGMarker($marker, $length, &$data, $origLength) { if ($length <= 0) { return false; } @@ -1212,15 +1185,13 @@ class JpegMeta } } } - } - else { + } else { if ($marker == 0xDA) { // Copy until EOF while (!feof($this->_fp)) { $data = fread($this->_fp, 1024 * 16); fputs($this->_fpout, $data, strlen($data)); } - } - else { // Copy only $length bytes + } else { // Copy only $length bytes $data = @fread($this->_fp, $length); fputs($this->_fpout, $data, $length); } @@ -1235,8 +1206,7 @@ class JpegMeta * @author Sebastian Delmont <sdelmont@zonageek.com> * @author Andreas Gohr <andi@splitbrain.org> */ - function _parseFileInfo() - { + function _parseFileInfo() { if (file_exists($this->_fileName)) { $this->_info['file'] = array(); $this->_info['file']['Name'] = basename($this->_fileName); @@ -1244,14 +1214,11 @@ class JpegMeta $this->_info['file']['Size'] = filesize($this->_fileName); if ($this->_info['file']['Size'] < 1024) { $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B'; - } - elseif ($this->_info['file']['Size'] < (1024 * 1024)) { + } elseif ($this->_info['file']['Size'] < (1024 * 1024)) { $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / 1024) . 'KB'; - } - elseif ($this->_info['file']['Size'] < (1024 * 1024 * 1024)) { + } elseif ($this->_info['file']['Size'] < (1024 * 1024 * 1024)) { $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / (1024*1024)) . 'MB'; - } - else { + } else { $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B'; } $this->_info['file']['UnixTime'] = filemtime($this->_fileName); @@ -1331,8 +1298,7 @@ class JpegMeta default: $this->_info['file']['Mime'] = 'image/unknown'; } - } - else { + } else { $this->_info['file'] = array(); $this->_info['file']['Name'] = basename($this->_fileName); $this->_info['file']['Url'] = $this->_fileName; @@ -1342,8 +1308,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerJFIF() - { + function _parseMarkerJFIF() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1372,7 +1337,6 @@ class JpegMeta $pos = 0; $this->_info['jfif'] = array(); - $vmaj = $this->_getByte($data, 5); $vmin = $this->_getByte($data, 6); @@ -1380,18 +1344,18 @@ class JpegMeta $units = $this->_getByte($data, 7); switch ($units) { - case 0: - $this->_info['jfif']['Units'] = 'pixels'; - break; - case 1: - $this->_info['jfif']['Units'] = 'dpi'; - break; - case 2: - $this->_info['jfif']['Units'] = 'dpcm'; - break; - default: - $this->_info['jfif']['Units'] = 'unknown'; - break; + case 0: + $this->_info['jfif']['Units'] = 'pixels'; + break; + case 1: + $this->_info['jfif']['Units'] = 'dpi'; + break; + case 2: + $this->_info['jfif']['Units'] = 'dpcm'; + break; + default: + $this->_info['jfif']['Units'] = 'unknown'; + break; } $xdens = $this->_getShort($data, 8); @@ -1410,8 +1374,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerSOF() - { + function _parseMarkerSOF() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1424,13 +1387,13 @@ class JpegMeta $count = count($this->_markers); for ($i = 0; $i < $count; $i++) { switch ($this->_markers[$i]['marker']) { - case 0xC0: // SOF0 - case 0xC1: // SOF1 - case 0xC2: // SOF2 - case 0xC9: // SOF9 - $data =& $this->_markers[$i]['data']; - $marker = $this->_markers[$i]['marker']; - break; + case 0xC0: // SOF0 + case 0xC1: // SOF1 + case 0xC2: // SOF2 + case 0xC9: // SOF9 + $data =& $this->_markers[$i]['data']; + $marker = $this->_markers[$i]['marker']; + break; } } @@ -1442,32 +1405,29 @@ class JpegMeta $pos = 0; $this->_info['sof'] = array(); - switch ($marker) { - case 0xC0: // SOF0 - $format = 'Baseline'; - break; - case 0xC1: // SOF1 - $format = 'Progessive'; - break; - case 0xC2: // SOF2 - $format = 'Non-baseline'; - break; - case 0xC9: // SOF9 - $format = 'Arithmetic'; - break; - default: - return false; - break; + case 0xC0: // SOF0 + $format = 'Baseline'; + break; + case 0xC1: // SOF1 + $format = 'Progessive'; + break; + case 0xC2: // SOF2 + $format = 'Non-baseline'; + break; + case 0xC9: // SOF9 + $format = 'Arithmetic'; + break; + default: + return false; + break; } - - $this->_info['sof']['Format'] = $format; - + $this->_info['sof']['Format'] = $format; $this->_info['sof']['SamplePrecision'] = $this->_getByte($data, $pos + 0); - $this->_info['sof']['ImageHeight'] = $this->_getShort($data, $pos + 1); - $this->_info['sof']['ImageWidth'] = $this->_getShort($data, $pos + 3); - $this->_info['sof']['ColorChannels'] = $this->_getByte($data, $pos + 5); + $this->_info['sof']['ImageHeight'] = $this->_getShort($data, $pos + 1); + $this->_info['sof']['ImageWidth'] = $this->_getShort($data, $pos + 3); + $this->_info['sof']['ColorChannels'] = $this->_getByte($data, $pos + 5); return true; } @@ -1477,8 +1437,7 @@ class JpegMeta * * @author Hakan Sandell <hakan.sandell@mydata.se> */ - function _parseMarkerXmp() - { + function _parseMarkerXmp() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1513,10 +1472,10 @@ class JpegMeta $this->_info['xmp'] = array(); $count = count($values); for ($i = 0; $i < $count; $i++) { - if ($values[$i][tag] == 'rdf:Description' && $values[$i][type] == 'open') { + if ($values[$i]['tag'] == 'rdf:Description' && $values[$i]['type'] == 'open') { - while ($values[++$i][tag] != 'rdf:Description') { - $this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i][tag]]); + while ($values[++$i]['tag'] != 'rdf:Description') { + $this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i]['tag']]); } } } @@ -1528,43 +1487,41 @@ class JpegMeta * * @author Hakan Sandell <hakan.sandell@mydata.se> */ - function _parseXmpNode($values, &$i, &$meta) - { - if ($values[$i][type] == 'complete') { + function _parseXmpNode($values, &$i, &$meta) { + if ($values[$i]['type'] == 'complete') { // Simple Type property - $meta = $values[$i][value]; + $meta = $values[$i]['value']; return; } $i++; - if ($values[$i][tag] == 'rdf:Bag' || $values[$i][tag] == 'rdf:Seq') { + if ($values[$i]['tag'] == 'rdf:Bag' || $values[$i]['tag'] == 'rdf:Seq') { // Array property $meta = array(); - while ($values[++$i][tag] == 'rdf:li') { + while ($values[++$i]['tag'] == 'rdf:li') { $this->_parseXmpNode($values, $i, $meta[]); } $i++; // skip closing tag - } elseif ($values[$i][tag] == 'rdf:Alt') { + } elseif ($values[$i]['tag'] == 'rdf:Alt') { // Language Alternative property, only the first (default) value is used $i++; $this->_parseXmpNode($values, $i, $meta); - while ($values[++$i][tag] != 'rdf:Alt'); + while ($values[++$i]['tag'] != 'rdf:Alt'); $i++; // skip closing tag } else { // Structure property $meta = array(); - $startTag = $values[$i-1][tag]; + $startTag = $values[$i-1]['tag']; do { - $this->_parseXmpNode($values, $i, $meta[$values[$i][tag]]); - } while ($values[++$i][tag] != $startTag); + $this->_parseXmpNode($values, $i, $meta[$values[$i]['tag']]); + } while ($values[++$i]['tag'] != $startTag); } } /*************************************************************/ - function _parseMarkerExif() - { + function _parseMarkerExif() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1598,11 +1555,9 @@ class JpegMeta if ($byteAlign == 0x4949) { // "II" $isBigEndian = false; - } - elseif ($byteAlign == 0x4D4D) { // "MM" + } elseif ($byteAlign == 0x4D4D) { // "MM" $isBigEndian = true; - } - else { + } else { return false; // Unexpected data } @@ -1612,8 +1567,7 @@ class JpegMeta if ($isBigEndian) { $this->_info['exif']['ByteAlign'] = "Big Endian"; - } - else { + } else { $this->_info['exif']['ByteAlign'] = "Little Endian"; } @@ -1629,8 +1583,7 @@ class JpegMeta } /*************************************************************/ - function _readIFD($data, $base, $offset, $isBigEndian, $mode) - { + function _readIFD($data, $base, $offset, $isBigEndian, $mode) { $EXIFTags = $this->_exifTagNames($mode); $numEntries = $this->_getShort($data, $base + $offset, $isBigEndian); @@ -1658,161 +1611,146 @@ class JpegMeta if ($dataLength > 4) { $dataOffset = $this->_getLong($data, $base + $offset, $isBigEndian); $rawValue = $this->_getFixedString($data, $base + $dataOffset, $dataLength); - } - else { + } else { $rawValue = $this->_getFixedString($data, $base + $offset, $dataLength); } $offset += 4; switch ($type) { - case 1: // UBYTE - if ($count == 1) { - $value = $this->_getByte($rawValue, 0); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getByte($rawValue, $j); - } - break; - case 2: // ASCII - $value = $rawValue; - break; - case 3: // USHORT - if ($count == 1) { - $value = $this->_getShort($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); - } - break; - case 4: // ULONG - if ($count == 1) { - $value = $this->_getLong($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); - } - break; - case 5: // URATIONAL - if ($count == 1) { - $a = $this->_getLong($rawValue, 0, $isBigEndian); - $b = $this->_getLong($rawValue, 4, $isBigEndian); - $value = array(); - $value['val'] = 0; - $value['num'] = $a; - $value['den'] = $b; - if (($a != 0) && ($b != 0)) { - $value['val'] = $a / $b; + case 1: // UBYTE + if ($count == 1) { + $value = $this->_getByte($rawValue, 0); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getByte($rawValue, $j); } - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) { - $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); - $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + break; + case 2: // ASCII + $value = $rawValue; + break; + case 3: // USHORT + if ($count == 1) { + $value = $this->_getShort($rawValue, 0, $isBigEndian); + } else { $value = array(); - $value[$j]['val'] = 0; - $value[$j]['num'] = $a; - $value[$j]['den'] = $b; - if (($a != 0) && ($b != 0)) - $value[$j]['val'] = $a / $b; + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); } - } - break; - case 6: // SBYTE - if ($count == 1) { - $value = $this->_getByte($rawValue, 0); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getByte($rawValue, $j); - } - break; - case 7: // UNDEFINED - $value = $rawValue; - break; - case 8: // SSHORT - if ($count == 1) { - $value = $this->_getShort($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); - } - break; - case 9: // SLONG - if ($count == 1) { - $value = $this->_getLong($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); - } - break; - case 10: // SRATIONAL - if ($count == 1) { - $a = $this->_getLong($rawValue, 0, $isBigEndian); - $b = $this->_getLong($rawValue, 4, $isBigEndian); - $value = array(); - $value['val'] = 0; - $value['num'] = $a; - $value['den'] = $b; - if (($a != 0) && ($b != 0)) - $value['val'] = $a / $b; - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) { - $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); - $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + break; + case 4: // ULONG + if ($count == 1) { + $value = $this->_getLong($rawValue, 0, $isBigEndian); + } else { $value = array(); - $value[$j]['val'] = 0; - $value[$j]['num'] = $a; - $value[$j]['den'] = $b; + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); + } + break; + case 5: // URATIONAL + if ($count == 1) { + $a = $this->_getLong($rawValue, 0, $isBigEndian); + $b = $this->_getLong($rawValue, 4, $isBigEndian); + $value = array(); + $value['val'] = 0; + $value['num'] = $a; + $value['den'] = $b; + if (($a != 0) && ($b != 0)) { + $value['val'] = $a / $b; + } + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) { + $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); + $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + $value = array(); + $value[$j]['val'] = 0; + $value[$j]['num'] = $a; + $value[$j]['den'] = $b; + if (($a != 0) && ($b != 0)) + $value[$j]['val'] = $a / $b; + } + } + break; + case 6: // SBYTE + if ($count == 1) { + $value = $this->_getByte($rawValue, 0); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getByte($rawValue, $j); + } + break; + case 7: // UNDEFINED + $value = $rawValue; + break; + case 8: // SSHORT + if ($count == 1) { + $value = $this->_getShort($rawValue, 0, $isBigEndian); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); + } + break; + case 9: // SLONG + if ($count == 1) { + $value = $this->_getLong($rawValue, 0, $isBigEndian); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); + } + break; + case 10: // SRATIONAL + if ($count == 1) { + $a = $this->_getLong($rawValue, 0, $isBigEndian); + $b = $this->_getLong($rawValue, 4, $isBigEndian); + $value = array(); + $value['val'] = 0; + $value['num'] = $a; + $value['den'] = $b; if (($a != 0) && ($b != 0)) - $value[$j]['val'] = $a / $b; + $value['val'] = $a / $b; + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) { + $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); + $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + $value = array(); + $value[$j]['val'] = 0; + $value[$j]['num'] = $a; + $value[$j]['den'] = $b; + if (($a != 0) && ($b != 0)) + $value[$j]['val'] = $a / $b; + } } - } - break; - case 11: // FLOAT - $value = $rawValue; - break; + break; + case 11: // FLOAT + $value = $rawValue; + break; - case 12: // DFLOAT - $value = $rawValue; - break; - default: - return false; // Unexpected Type + case 12: // DFLOAT + $value = $rawValue; + break; + default: + return false; // Unexpected Type } $tagName = ''; if (($mode == 'ifd0') && ($tag == 0x8769)) { // ExifIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'exif'); - } - elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset + } elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'gps'); - } - elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets + } elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets $exifTIFFOffset = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts + } elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts $exifTIFFLength = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset + } elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset $exifThumbnailOffset = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength + } elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength $exifThumbnailLength = $value; - } - elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset + } elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'interop'); } // elseif (($mode == 'exif') && ($tag == 0x927C)) { // MakerNote @@ -1828,18 +1766,19 @@ class JpegMeta } $this->_info['exif'][$tagName][count($this->_info['exif'][$tagName])] = $value; - } - else { + } else { $this->_info['exif'][$tagName] = $value; } } - else { -#echo sprintf("<h1>Unknown tag %02x (t: %d l: %d) %s in %s</h1>", $tag, $type, $count, $mode, $this->_fileName); + /* + else { + echo sprintf("<h1>Unknown tag %02x (t: %d l: %d) %s in %s</h1>", $tag, $type, $count, $mode, $this->_fileName); // Unknown Tags will be ignored!!! // That's because the tag might be a pointer (like the Exif tag) // and saving it without saving the data it points to might // create an invalid file. } + */ } } @@ -1856,8 +1795,7 @@ class JpegMeta } /*************************************************************/ - function & _createMarkerExif() - { + function & _createMarkerExif() { $data = null; $count = count($this->_markers); for ($i = 0; $i < $count; $i++) { @@ -1882,8 +1820,7 @@ class JpegMeta $isBigEndian = true; $aux = "MM"; $pos = $this->_putString($data, $pos, $aux); - } - else { + } else { $isBigEndian = false; $aux = "II"; $pos = $this->_putString($data, $pos, $aux); @@ -1901,8 +1838,7 @@ class JpegMeta } /*************************************************************/ - function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) - { + function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) { $tiffData = null; $tiffDataOffsetPos = -1; @@ -1922,24 +1858,21 @@ class JpegMeta $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); $dataPos = $this->_writeIFD($data, $dataPos, $offsetBase, $entries[$i]['value'], $isBigEndian, false); - } - elseif ($type == -98) { // TIFF Data + } elseif ($type == -98) { // TIFF Data $pos = $this->_putShort($data, $pos, $tag, $isBigEndian); $pos = $this->_putShort($data, $pos, 0x04, $isBigEndian); // LONG $pos = $this->_putLong($data, $pos, 0x01, $isBigEndian); // Count = 1 $tiffDataOffsetPos = $pos; $pos = $this->_putLong($data, $pos, 0x00, $isBigEndian); // For Now $tiffData =& $entries[$i]['value'] ; - } - else { // Regular Entry + } else { // Regular Entry $pos = $this->_putShort($data, $pos, $tag, $isBigEndian); $pos = $this->_putShort($data, $pos, $type, $isBigEndian); $pos = $this->_putLong($data, $pos, $entries[$i]['count'], $isBigEndian); if (strlen($entries[$i]['value']) > 4) { $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); $dataPos = $this->_putString($data, $dataPos, $entries[$i]['value']); - } - else { + } else { $val = str_pad($entries[$i]['value'], 4, "\0"); $pos = $this->_putString($data, $pos, $val); } @@ -1953,8 +1886,7 @@ class JpegMeta if ($hasNext) { $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); - } - else { + } else { $pos = $this->_putLong($data, $pos, 0, $isBigEndian); } @@ -1962,8 +1894,7 @@ class JpegMeta } /*************************************************************/ - function & _getIFDEntries($isBigEndian, $mode) - { + function & _getIFDEntries($isBigEndian, $mode) { $EXIFNames = $this->_exifTagNames($mode); $EXIFTags = $this->_exifNameTags($mode); $EXIFTypeInfo = $this->_exifTagTypes($mode); @@ -1985,60 +1916,47 @@ class JpegMeta else { $value = null; } - } - elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset + } elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset if (isset($this->_info['exif']['GPSVersionID'])) { $value =& $this->_getIFDEntries($isBigEndian, "gps"); $type = -99; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets + } elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets if (isset($this->_info['exif']['TIFFStrips'])) { $value =& $this->_info['exif']['TIFFStrips']; $type = -98; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts + } elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts if (isset($this->_info['exif']['TIFFStrips'])) { $value = strlen($this->_info['exif']['TIFFStrips']); - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset + } elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset if (isset($this->_info['exif']['JFIFThumbnail'])) { $value =& $this->_info['exif']['JFIFThumbnail']; $type = -98; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength + } elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength if (isset($this->_info['exif']['JFIFThumbnail'])) { $value = strlen($this->_info['exif']['JFIFThumbnail']); - } - else { + } else { $value = null; } - } - elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset + } elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset if (isset($this->_info['exif']['InteroperabilityIndex'])) { $value =& $this->_getIFDEntries($isBigEndian, "interop"); $type = -99; - } - else { + } else { $value = null; } - } - elseif (isset($this->_info['exif'][$name])) { + } elseif (isset($this->_info['exif'][$name])) { $origValue =& $this->_info['exif'][$name]; // This makes it easier to process variable size elements @@ -2055,235 +1973,235 @@ class JpegMeta $value = " "; switch ($type) { - case 1: // UBYTE - if ($count == 0) { - $count = $origCount; - } + case 1: // UBYTE + if ($count == 0) { + $count = $origCount; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { + $j = 0; + while (($j < $count) && ($j < $origCount)) { - $this->_putByte($value, $j, $origValue[$j]); - $j++; - } - - while ($j < $count) { - $this->_putByte($value, $j, 0); - $j++; - } - break; - case 2: // ASCII - $v = strval($origValue[0]); - if (($count != 0) && (strlen($v) > $count)) { - $v = substr($v, 0, $count); - } - elseif (($count > 0) && (strlen($v) < $count)) { - $v = str_pad($v, $count, "\0"); - } + $this->_putByte($value, $j, $origValue[$j]); + $j++; + } - $count = strlen($v); + while ($j < $count) { + $this->_putByte($value, $j, 0); + $j++; + } + break; + case 2: // ASCII + $v = strval($origValue[0]); + if (($count != 0) && (strlen($v) > $count)) { + $v = substr($v, 0, $count); + } + elseif (($count > 0) && (strlen($v) < $count)) { + $v = str_pad($v, $count, "\0"); + } - $this->_putString($value, 0, $v); - break; - case 3: // USHORT - if ($count == 0) { - $count = $origCount; - } + $count = strlen($v); - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); - $j++; - } + $this->_putString($value, 0, $v); + break; + case 3: // USHORT + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putShort($value, $j * 2, 0, $isBigEndian); - $j++; - } - break; - case 4: // ULONG - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); - $j++; - } + while ($j < $count) { + $this->_putShort($value, $j * 2, 0, $isBigEndian); + $j++; + } + break; + case 4: // ULONG + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putLong($value, $j * 4, 0, $isBigEndian); - $j++; - } - break; - case 5: // URATIONAL - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = $origValue[$j]; - if (is_array($v)) { - $a = $v['num']; - $b = $v['den']; + while ($j < $count) { + $this->_putLong($value, $j * 4, 0, $isBigEndian); + $j++; } - else { - $a = 0; - $b = 0; - // TODO: Allow other types and convert them + break; + case 5: // URATIONAL + if ($count == 0) { + $count = $origCount; } - $this->_putLong($value, $j * 8, $a, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); - $j++; - } - while ($j < $count) { - $this->_putLong($value, $j * 8, 0, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); - $j++; - } - break; - case 6: // SBYTE - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = $origValue[$j]; + if (is_array($v)) { + $a = $v['num']; + $b = $v['den']; + } + else { + $a = 0; + $b = 0; + // TODO: Allow other types and convert them + } + $this->_putLong($value, $j * 8, $a, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putByte($value, $j, $origValue[$j]); - $j++; - } + while ($j < $count) { + $this->_putLong($value, $j * 8, 0, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); + $j++; + } + break; + case 6: // SBYTE + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putByte($value, $j, 0); - $j++; - } - break; - case 7: // UNDEFINED - $v = strval($origValue[0]); - if (($count != 0) && (strlen($v) > $count)) { - $v = substr($v, 0, $count); - } - elseif (($count > 0) && (strlen($v) < $count)) { - $v = str_pad($v, $count, "\0"); - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putByte($value, $j, $origValue[$j]); + $j++; + } - $count = strlen($v); + while ($j < $count) { + $this->_putByte($value, $j, 0); + $j++; + } + break; + case 7: // UNDEFINED + $v = strval($origValue[0]); + if (($count != 0) && (strlen($v) > $count)) { + $v = substr($v, 0, $count); + } + elseif (($count > 0) && (strlen($v) < $count)) { + $v = str_pad($v, $count, "\0"); + } - $this->_putString($value, 0, $v); - break; - case 8: // SSHORT - if ($count == 0) { - $count = $origCount; - } + $count = strlen($v); - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); - $j++; - } + $this->_putString($value, 0, $v); + break; + case 8: // SSHORT + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putShort($value, $j * 2, 0, $isBigEndian); - $j++; - } - break; - case 9: // SLONG - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); - $j++; - } + while ($j < $count) { + $this->_putShort($value, $j * 2, 0, $isBigEndian); + $j++; + } + break; + case 9: // SLONG + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putLong($value, $j * 4, 0, $isBigEndian); - $j++; - } - break; - case 10: // SRATIONAL - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = $origValue[$j]; - if (is_array($v)) { - $a = $v['num']; - $b = $v['den']; + while ($j < $count) { + $this->_putLong($value, $j * 4, 0, $isBigEndian); + $j++; } - else { - $a = 0; - $b = 0; - // TODO: Allow other types and convert them + break; + case 10: // SRATIONAL + if ($count == 0) { + $count = $origCount; } - $this->_putLong($value, $j * 8, $a, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); - $j++; - } - - while ($j < $count) { - $this->_putLong($value, $j * 8, 0, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); - $j++; - } - break; - case 11: // FLOAT - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = $origValue[$j]; + if (is_array($v)) { + $a = $v['num']; + $b = $v['den']; + } + else { + $a = 0; + $b = 0; + // TODO: Allow other types and convert them + } + + $this->_putLong($value, $j * 8, $a, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = strval($origValue[$j]); - if (strlen($v) > 4) { - $v = substr($v, 0, 4); + while ($j < $count) { + $this->_putLong($value, $j * 8, 0, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); + $j++; } - elseif (strlen($v) < 4) { - $v = str_pad($v, 4, "\0"); + break; + case 11: // FLOAT + if ($count == 0) { + $count = $origCount; } - $this->_putString($value, $j * 4, $v); - $j++; - } - while ($j < $count) { - $this->_putString($value, $j * 4, "\0\0\0\0"); - $j++; - } - break; - case 12: // DFLOAT - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = strval($origValue[$j]); + if (strlen($v) > 4) { + $v = substr($v, 0, 4); + } + elseif (strlen($v) < 4) { + $v = str_pad($v, 4, "\0"); + } + $this->_putString($value, $j * 4, $v); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = strval($origValue[$j]); - if (strlen($v) > 8) { - $v = substr($v, 0, 8); + while ($j < $count) { + $this->_putString($value, $j * 4, "\0\0\0\0"); + $j++; } - elseif (strlen($v) < 8) { - $v = str_pad($v, 8, "\0"); + break; + case 12: // DFLOAT + if ($count == 0) { + $count = $origCount; } - $this->_putString($value, $j * 8, $v); - $j++; - } - while ($j < $count) { - $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0"); - $j++; - } - break; - default: - $value = null; - break; + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = strval($origValue[$j]); + if (strlen($v) > 8) { + $v = substr($v, 0, 8); + } + elseif (strlen($v) < 8) { + $v = str_pad($v, 8, "\0"); + } + $this->_putString($value, $j * 8, $v); + $j++; + } + + while ($j < $count) { + $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0"); + $j++; + } + break; + default: + $value = null; + break; } } @@ -2302,8 +2220,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerAdobe() - { + function _parseMarkerAdobe() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -2359,36 +2276,36 @@ class JpegMeta $basePos = $pos; switch ($type) { - case 0x0404: // Caption (IPTC Data) - $pos = $this->_readIPTC($data, $pos); - if ($pos == false) - return false; - break; - case 0x040A: // CopyrightFlag - $this->_info['adobe']['CopyrightFlag'] = $this->_getByte($data, $pos); - $pos += $length; - break; - case 0x040B: // ImageURL - $this->_info['adobe']['ImageURL'] = $this->_getFixedString($data, $pos, $length); - $pos += $length; - break; - case 0x040C: // Thumbnail - $aux = $this->_getLong($data, $pos); - $pos += 4; - if ($aux == 1) { - $this->_info['adobe']['ThumbnailWidth'] = $this->_getLong($data, $pos); - $pos += 4; - $this->_info['adobe']['ThumbnailHeight'] = $this->_getLong($data, $pos); + case 0x0404: // Caption (IPTC Data) + $pos = $this->_readIPTC($data, $pos); + if ($pos == false) + return false; + break; + case 0x040A: // CopyrightFlag + $this->_info['adobe']['CopyrightFlag'] = $this->_getByte($data, $pos); + $pos += $length; + break; + case 0x040B: // ImageURL + $this->_info['adobe']['ImageURL'] = $this->_getFixedString($data, $pos, $length); + $pos += $length; + break; + case 0x040C: // Thumbnail + $aux = $this->_getLong($data, $pos); $pos += 4; + if ($aux == 1) { + $this->_info['adobe']['ThumbnailWidth'] = $this->_getLong($data, $pos); + $pos += 4; + $this->_info['adobe']['ThumbnailHeight'] = $this->_getLong($data, $pos); + $pos += 4; - $pos += 16; // Skip some data + $pos += 16; // Skip some data - $this->_info['adobe']['ThumbnailData'] = $this->_getFixedString($data, $pos, $length - 28); - $pos += $length - 28; - } - break; - default: - break; + $this->_info['adobe']['ThumbnailData'] = $this->_getFixedString($data, $pos, $length - 28); + $pos += $length - 28; + } + break; + default: + break; } // We save all blocks, even those we recognized @@ -2404,8 +2321,7 @@ class JpegMeta } /*************************************************************/ - function _readIPTC(&$data, $pos = 0) - { + function _readIPTC(&$data, $pos = 0) { $totalLength = strlen($data); $IPTCTags =& $this->_iptcTagNames(); @@ -2426,8 +2342,7 @@ class JpegMeta if (isset($IPTCTags[$type])) { $label = $IPTCTags[$type]; - } - else { + } else { $label = sprintf('IPTC_0x%02x', $type); } @@ -2439,8 +2354,7 @@ class JpegMeta $this->_info['iptc'][$label] = $aux; } $this->_info['iptc'][$label][ count($this->_info['iptc'][$label]) ] = $this->_getFixedString($data, $pos, $length); - } - else { + } else { $this->_info['iptc'][$label] = $this->_getFixedString($data, $pos, $length); } } @@ -2451,8 +2365,7 @@ class JpegMeta } /*************************************************************/ - function & _createMarkerAdobe() - { + function & _createMarkerAdobe() { if (isset($this->_info['iptc'])) { if (!isset($this->_info['adobe'])) { $this->_info['adobe'] = array(); @@ -2475,11 +2388,11 @@ class JpegMeta reset($this->_info['adobe']['raw']); while (list($key) = each($this->_info['adobe']['raw'])) { $pos = $this->_write8BIM( - $data, - $pos, - $this->_info['adobe']['raw'][$key]['type'], - $this->_info['adobe']['raw'][$key]['header'], - $this->_info['adobe']['raw'][$key]['data'] ); + $data, + $pos, + $this->_info['adobe']['raw'][$key]['type'], + $this->_info['adobe']['raw'][$key]['header'], + $this->_info['adobe']['raw'][$key]['data'] ); } } @@ -2487,8 +2400,7 @@ class JpegMeta } /*************************************************************/ - function _write8BIM(&$data, $pos, $type, $header, &$value) - { + function _write8BIM(&$data, $pos, $type, $header, &$value) { $signature = "8BIM"; $pos = $this->_putString($data, $pos, $signature); @@ -2512,8 +2424,7 @@ class JpegMeta } /*************************************************************/ - function & _writeIPTC() - { + function & _writeIPTC() { $data = " "; $pos = 0; @@ -2521,7 +2432,6 @@ class JpegMeta reset($this->_info['iptc']); - while (list($label) = each($this->_info['iptc'])) { $value =& $this->_info['iptc'][$label]; $type = -1; @@ -2535,7 +2445,8 @@ class JpegMeta if ($type != -1) { if (is_array($value)) { - for ($i = 0; $i < count($value); $i++) { + $vcnt = count($value); + for ($i = 0; $i < $vcnt; $i++) { $pos = $this->_writeIPTCEntry($data, $pos, $type, $value[$i]); } } @@ -2549,8 +2460,7 @@ class JpegMeta } /*************************************************************/ - function _writeIPTCEntry(&$data, $pos, $type, &$value) - { + function _writeIPTCEntry(&$data, $pos, $type, &$value) { $pos = $this->_putShort($data, $pos, 0x1C02); $pos = $this->_putByte($data, $pos, $type); $pos = $this->_putShort($data, $pos, strlen($value)); @@ -2560,8 +2470,7 @@ class JpegMeta } /*************************************************************/ - function _exifTagNames($mode) - { + function _exifTagNames($mode) { $tags = array(); if ($mode == 'ifd0') { @@ -2627,8 +2536,7 @@ class JpegMeta $tags[0x0214] = 'TIFFReferenceBlackWhite'; $tags[0x8298] = 'TIFFCopyright'; $tags[0x9286] = 'TIFFUserComment'; - } - elseif ($mode == 'exif') { + } elseif ($mode == 'exif') { $tags[0x829A] = 'ExposureTime'; $tags[0x829D] = 'FNumber'; $tags[0x8822] = 'ExposureProgram'; @@ -2672,15 +2580,13 @@ class JpegMeta $tags[0xA300] = 'FileSource'; $tags[0xA301] = 'SceneType'; $tags[0xA302] = 'CFAPattern'; - } - elseif ($mode == 'interop') { + } elseif ($mode == 'interop') { $tags[0x0001] = 'InteroperabilityIndex'; $tags[0x0002] = 'InteroperabilityVersion'; $tags[0x1000] = 'RelatedImageFileFormat'; $tags[0x1001] = 'RelatedImageWidth'; $tags[0x1002] = 'RelatedImageLength'; - } - elseif ($mode == 'gps') { + } elseif ($mode == 'gps') { $tags[0x0000] = 'GPSVersionID'; $tags[0x0001] = 'GPSLatitudeRef'; $tags[0x0002] = 'GPSLatitude'; @@ -2714,8 +2620,7 @@ class JpegMeta } /*************************************************************/ - function _exifTagTypes($mode) - { + function _exifTagTypes($mode) { $tags = array(); if ($mode == 'ifd0') { @@ -2781,8 +2686,7 @@ class JpegMeta $tags[0x0214] = array(5, 6); // TIFFReferenceBlackWhite -> RATIONAL, 6 $tags[0x8298] = array(2, 0); // TIFFCopyright -> ASCII, Any $tags[0x9286] = array(2, 0); // TIFFUserComment -> ASCII, Any - } - elseif ($mode == 'exif') { + } elseif ($mode == 'exif') { $tags[0x829A] = array(5, 1); // ExposureTime -> RATIONAL, 1 $tags[0x829D] = array(5, 1); // FNumber -> RATIONAL, 1 $tags[0x8822] = array(3, 1); // ExposureProgram -> SHORT, 1 @@ -2826,15 +2730,13 @@ class JpegMeta $tags[0xA300] = array(7, 1); // FileSource -> UNDEFINED, 1 $tags[0xA301] = array(7, 1); // SceneType -> UNDEFINED, 1 $tags[0xA302] = array(7, 0); // CFAPattern -> UNDEFINED, Any - } - elseif ($mode == 'interop') { + } elseif ($mode == 'interop') { $tags[0x0001] = array(2, 0); // InteroperabilityIndex -> ASCII, Any $tags[0x0002] = array(7, 4); // InteroperabilityVersion -> UNKNOWN, 4 $tags[0x1000] = array(2, 0); // RelatedImageFileFormat -> ASCII, Any $tags[0x1001] = array(4, 1); // RelatedImageWidth -> LONG (or SHORT), 1 $tags[0x1002] = array(4, 1); // RelatedImageLength -> LONG (or SHORT), 1 - } - elseif ($mode == 'gps') { + } elseif ($mode == 'gps') { $tags[0x0000] = array(1, 4); // GPSVersionID -> BYTE, 4 $tags[0x0001] = array(2, 2); // GPSLatitudeRef -> ASCII, 2 $tags[0x0002] = array(5, 3); // GPSLatitude -> RATIONAL, 3 @@ -2868,15 +2770,13 @@ class JpegMeta } /*************************************************************/ - function _exifNameTags($mode) - { + function _exifNameTags($mode) { $tags = $this->_exifTagNames($mode); return $this->_names2Tags($tags); } /*************************************************************/ - function _iptcTagNames() - { + function _iptcTagNames() { $tags = array(); $tags[0x14] = 'SuplementalCategories'; $tags[0x19] = 'Keywords'; @@ -2903,15 +2803,13 @@ class JpegMeta } /*************************************************************/ - function & _iptcNameTags() - { + function & _iptcNameTags() { $tags = $this->_iptcTagNames(); return $this->_names2Tags($tags); } /*************************************************************/ - function _names2Tags($tags2Names) - { + function _names2Tags($tags2Names) { $names2Tags = array(); reset($tags2Names); while (list($tag, $name) = each($tags2Names)) { @@ -2922,14 +2820,12 @@ class JpegMeta } /*************************************************************/ - function _getByte(&$data, $pos) - { + function _getByte(&$data, $pos) { return ord($data{$pos}); } /*************************************************************/ - function _putByte(&$data, $pos, $val) - { + function _putByte(&$data, $pos, $val) { $val = intval($val); $data{$pos} = chr($val); @@ -2938,28 +2834,24 @@ class JpegMeta } /*************************************************************/ - function _getShort(&$data, $pos, $bigEndian = true) - { + function _getShort(&$data, $pos, $bigEndian = true) { if ($bigEndian) { return (ord($data{$pos}) << 8) - + ord($data{$pos + 1}); - } - else { + + ord($data{$pos + 1}); + } else { return ord($data{$pos}) - + (ord($data{$pos + 1}) << 8); + + (ord($data{$pos + 1}) << 8); } } /*************************************************************/ - function _putShort(&$data, $pos = 0, $val, $bigEndian = true) - { + function _putShort(&$data, $pos = 0, $val = 0, $bigEndian = true) { $val = intval($val); if ($bigEndian) { $data{$pos + 0} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 1} = chr(($val & 0x000000FF) >> 0); - } - else { + } else { $data{$pos + 0} = chr(($val & 0x00FF) >> 0); $data{$pos + 1} = chr(($val & 0xFF00) >> 8); } @@ -2968,25 +2860,22 @@ class JpegMeta } /*************************************************************/ - function _getLong(&$data, $pos, $bigEndian = true) - { + function _getLong(&$data, $pos, $bigEndian = true) { if ($bigEndian) { return (ord($data{$pos}) << 24) - + (ord($data{$pos + 1}) << 16) - + (ord($data{$pos + 2}) << 8) - + ord($data{$pos + 3}); - } - else { + + (ord($data{$pos + 1}) << 16) + + (ord($data{$pos + 2}) << 8) + + ord($data{$pos + 3}); + } else { return ord($data{$pos}) - + (ord($data{$pos + 1}) << 8) - + (ord($data{$pos + 2}) << 16) - + (ord($data{$pos + 3}) << 24); + + (ord($data{$pos + 1}) << 8) + + (ord($data{$pos + 2}) << 16) + + (ord($data{$pos + 3}) << 24); } } /*************************************************************/ - function _putLong(&$data, $pos, $val, $bigEndian = true) - { + function _putLong(&$data, $pos, $val, $bigEndian = true) { $val = intval($val); if ($bigEndian) { @@ -2994,8 +2883,7 @@ class JpegMeta $data{$pos + 1} = chr(($val & 0x00FF0000) >> 16); $data{$pos + 2} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 3} = chr(($val & 0x000000FF) >> 0); - } - else { + } else { $data{$pos + 0} = chr(($val & 0x000000FF) >> 0); $data{$pos + 1} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 2} = chr(($val & 0x00FF0000) >> 16); @@ -3006,16 +2894,14 @@ class JpegMeta } /*************************************************************/ - function & _getNullString(&$data, $pos) - { + function & _getNullString(&$data, $pos) { $str = ''; $max = strlen($data); while ($pos < $max) { if (ord($data{$pos}) == 0) { return $str; - } - else { + } else { $str .= $data{$pos}; } $pos++; @@ -3025,8 +2911,7 @@ class JpegMeta } /*************************************************************/ - function & _getFixedString(&$data, $pos, $length = -1) - { + function & _getFixedString(&$data, $pos, $length = -1) { if ($length == -1) { $length = strlen($data) - $pos; } @@ -3035,23 +2920,20 @@ class JpegMeta } /*************************************************************/ - function _putString(&$data, $pos, &$str) - { + function _putString(&$data, $pos, &$str) { $len = strlen($str); for ($i = 0; $i < $len; $i++) { - $data{$pos + $i} = $str{$i}; + $data{$pos + $i} = $str{$i}; } return $pos + $len; } /*************************************************************/ - function _hexDump(&$data, $start = 0, $length = -1) - { + function _hexDump(&$data, $start = 0, $length = -1) { if (($length == -1) || (($length + $start) > strlen($data))) { $end = strlen($data); - } - else { + } else { $end = $start + $length; } @@ -3109,8 +2991,7 @@ class JpegMeta echo "</tt>\n"; } -/*****************************************************************/ + /*****************************************************************/ } /* vim: set expandtab tabstop=4 shiftwidth=4: */ - diff --git a/inc/SafeFN.class.php b/inc/SafeFN.class.php new file mode 100644 index 000000000..b6e477fab --- /dev/null +++ b/inc/SafeFN.class.php @@ -0,0 +1,156 @@ +<?php + +/** + * Class to safely store UTF-8 in a Filename + * + * Encodes a utf8 string using only the following characters 0-9a-z_.-% + * characters 0-9a-z in the original string are preserved, "plain". + * all other characters are represented in a substring that starts + * with '%' are "converted". + * The transition from converted substrings to plain characters is + * marked with a '.' + * + * @author Christopher Smith + * @date 2010-04-02 + */ +class SafeFN { + + // 'safe' characters are a superset of $plain, $pre_indicator and $post_indicator + private static $plain = '-/_0123456789abcdefghijklmnopqrstuvwxyz'; // these characters aren't converted + private static $pre_indicator = '%'; + private static $post_indicator = '.'; + + /** + * Convert an UTF-8 string to a safe ASCII String + * + * conversion process + * - if codepoint is a plain or post_indicator character, + * - if previous character was "converted", append post_indicator to output, clear "converted" flag + * - append ascii byte for character to output + * (continue to next character) + * + * - if codepoint is a pre_indicator character, + * - append ascii byte for character to output, set "converted" flag + * (continue to next character) + * + * (all remaining characters) + * - reduce codepoint value for non-printable ASCII characters (0x00 - 0x1f). Space becomes our zero. + * - convert reduced value to base36 (0-9a-z) + * - append $pre_indicator characater followed by base36 string to output, set converted flag + * continue to next character) + * + * @param string $filename a utf8 string, should only include printable characters - not 0x00-0x1f + * @return string an encoded representation of $filename using only 'safe' ASCII characters + * + * @author Christopher Smith <chris@jalakai.co.uk> + */ + public function encode($filename) { + return self::unicode_to_safe(utf8_to_unicode($filename)); + } + + /** + * decoding process + * - split the string into substrings at any occurrence of pre or post indicator characters + * - check the first character of the substring + * - if its not a pre_indicator character + * - if previous character was converted, skip over post_indicator character + * - copy codepoint values of remaining characters to the output array + * - clear any converted flag + * (continue to next substring) + * + * _ else (its a pre_indicator character) + * - if string length is 1, copy the post_indicator character to the output array + * (continue to next substring) + * + * - else (string length > 1) + * - skip the pre-indicator character and convert remaining string from base36 to base10 + * - increase codepoint value for non-printable ASCII characters (add 0x20) + * - append codepoint to output array + * (continue to next substring) + * + * @param string $filename a 'safe' encoded ASCII string, + * @return string decoded utf8 representation of $filename + * + * @author Christopher Smith <chris@jalakai.co.uk> + */ + public function decode($filename) { + return unicode_to_utf8(self::safe_to_unicode(strtolower($filename))); + } + + public function validate_printable_utf8($printable_utf8) { + return !preg_match('#[\x01-\x1f]#',$printable_utf8); + } + + public function validate_safe($safe) { + return !preg_match('#[^'.self::$plain.self::$post_indicator.self::$pre_indicator.']#',$safe); + } + + /** + * convert an array of unicode codepoints into 'safe_filename' format + * + * @param array int $unicode an array of unicode codepoints + * @return string the unicode represented in 'safe_filename' format + * + * @author Christopher Smith <chris@jalakai.co.uk> + */ + private function unicode_to_safe($unicode) { + + $safe = ''; + $converted = false; + + foreach ($unicode as $codepoint) { + if ($codepoint < 127 && (strpos(self::$plain.self::$post_indicator,chr($codepoint))!==false)) { + if ($converted) { + $safe .= self::$post_indicator; + $converted = false; + } + $safe .= chr($codepoint); + + } else if ($codepoint == ord(self::$pre_indicator)) { + $safe .= self::$pre_indicator; + $converted = true; + } else { + $safe .= self::$pre_indicator.base_convert((string)($codepoint-32),10,36); + $converted = true; + } + } + return $safe; + } + + /** + * convert a 'safe_filename' string into an array of unicode codepoints + * + * @param string $safe a filename in 'safe_filename' format + * @return array int an array of unicode codepoints + * + * @author Christopher Smith <chris@jalakai.co.uk> + */ + private function safe_to_unicode($safe) { + + $unicode = array(); + $split = preg_split('#(?=['.self::$post_indicator.self::$pre_indicator.'])#',$safe,-1,PREG_SPLIT_NO_EMPTY); + + $converted = false; + foreach ($split as $sub) { + if ($sub[0] != self::$pre_indicator) { + // plain (unconverted) characters, optionally starting with a post_indicator + // set initial value to skip any post_indicator + for ($i=($converted?1:0); $i < strlen($sub); $i++) { + $unicode[] = ord($sub[$i]); + } + $converted = false; + } else if (strlen($sub)==1) { + // a pre_indicator character in the real data + $unicode[] = ord($sub); + $converted = true; + } else { + // a single codepoint in base36, adjusted for initial 32 non-printable chars + $unicode[] = 32 + (int)base_convert(substr($sub,1),36,10); + $converted = true; + } + } + + return $unicode; + } + +} diff --git a/inc/SimplePie.php b/inc/SimplePie.php index 1c97e2384..276a654ee 100644 --- a/inc/SimplePie.php +++ b/inc/SimplePie.php @@ -648,7 +648,7 @@ class SimplePie function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) { // Other objects, instances created here so we can set options on them - $this->sanitize =& new SimplePie_Sanitize; + $this->sanitize = new SimplePie_Sanitize; // Set options if they're passed to the constructor if ($cache_location !== null) @@ -979,7 +979,7 @@ class SimplePie { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize')) { - $this->sanitize =& new $class; + $this->sanitize = new $class; return true; } return false; @@ -1383,7 +1383,7 @@ function embed_wmedia(width, height, link) { // Decide whether to enable caching if ($this->cache && $parsed_feed_url['scheme'] !== '') { - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); } // If it's enabled and we don't want an XML dump, use the cache if ($cache && !$this->xml_dump) @@ -1438,7 +1438,7 @@ function embed_wmedia(width, height, link) { { $headers['if-none-match'] = $this->data['headers']['etag']; } - $file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); if ($file->success) { if ($file->status_code == 304) @@ -1479,7 +1479,7 @@ function embed_wmedia(width, height, link) { } else { - $file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); } } // If the file connection has an error, set SimplePie::error to that and quit @@ -1497,7 +1497,7 @@ function embed_wmedia(width, height, link) { } // Check if the supplied URL is a feed, if it isn't, look for it. - $locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds); + $locate = new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds); if (!$locate->is_feed($file)) { // We need to unset this so that if SimplePie::set_file() has been called that object is untouched @@ -1510,7 +1510,7 @@ function embed_wmedia(width, height, link) { { trigger_error("$cache->name is not writeable", E_USER_WARNING); } - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); } $this->feed_url = $file->url; } @@ -1595,7 +1595,7 @@ function embed_wmedia(width, height, link) { // Strip illegal characters $data = SimplePie_Misc::utf8_bad_replace($data); - $parser =& new $this->parser_class(); + $parser = new $this->parser_class(); $parser->pre_process($data, 'UTF-8'); // If we want the XML, just output that and quit if ($this->xml_dump) @@ -1798,7 +1798,7 @@ function embed_wmedia(width, height, link) { if ($this->cache && $this->favicon_handler) { - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $favicon), 'spi'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $favicon), 'spi'); if ($cache->load()) { @@ -1806,7 +1806,7 @@ function embed_wmedia(width, height, link) { } else { - $file =& new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0) { @@ -2556,7 +2556,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry')) @@ -2564,7 +2564,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item')) @@ -2572,7 +2572,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item')) @@ -2580,7 +2580,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_channel_tags('', 'item')) @@ -2588,7 +2588,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } } @@ -2914,19 +2914,19 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $this->get_item_tags('', 'category') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($categories)) @@ -2977,7 +2977,7 @@ class SimplePie_Item } if ($name !== null || $email !== null || $uri !== null) { - $authors[] =& new $this->feed->author_class($name, $uri, $email); + $authors[] = new $this->feed->author_class($name, $uri, $email); } } if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) @@ -2999,24 +2999,24 @@ class SimplePie_Item } if ($name !== null || $email !== null || $uri !== null) { - $authors[] =& new $this->feed->author_class($name, $url, $email); + $authors[] = new $this->feed->author_class($name, $url, $email); } } if ($author = $this->get_item_tags('', 'author')) { - $authors[] =& new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + $authors[] = new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($authors)) @@ -3298,7 +3298,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) @@ -3330,7 +3330,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } if (is_array($captions_parent)) @@ -3360,7 +3360,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) { @@ -3383,7 +3383,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category) { @@ -3394,7 +3394,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'])) { @@ -3404,7 +3404,7 @@ class SimplePie_Item { $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } } } @@ -3426,7 +3426,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) { @@ -3440,7 +3440,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label); } // CREDITS @@ -3467,7 +3467,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) @@ -3493,7 +3493,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } if (is_array($credits_parent)) @@ -3682,7 +3682,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) @@ -3695,7 +3695,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) @@ -3716,7 +3716,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) @@ -3729,7 +3729,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } if (is_array($ratings_parent)) @@ -3757,7 +3757,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) @@ -3771,7 +3771,7 @@ class SimplePie_Item { $restriction_relationship = 'deny'; } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) @@ -3793,7 +3793,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) @@ -3807,7 +3807,7 @@ class SimplePie_Item { $restriction_relationship = 'deny'; } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } if (is_array($restrictions_parent)) @@ -3981,7 +3981,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4017,7 +4017,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4053,7 +4053,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) @@ -4079,7 +4079,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) @@ -4108,7 +4108,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) { @@ -4122,7 +4122,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } else { @@ -4153,7 +4153,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4183,7 +4183,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4336,7 +4336,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4361,7 +4361,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4393,7 +4393,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4419,7 +4419,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4473,7 +4473,7 @@ class SimplePie_Item $title = $title_parent; } - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } @@ -4602,7 +4602,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4638,7 +4638,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) @@ -4671,7 +4671,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } else { @@ -4702,7 +4702,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4806,7 +4806,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4838,7 +4838,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4877,7 +4877,7 @@ class SimplePie_Item $title = $title_parent; } - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } @@ -4913,7 +4913,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } @@ -4948,7 +4948,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } @@ -4983,7 +4983,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } $this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures'])); @@ -5306,7 +5306,7 @@ class SimplePie_Enclosure $this->width = $width; if (class_exists('idna_convert')) { - $idn =& new idna_convert; + $idn = new idna_convert; $parsed = SimplePie_Misc::parse_url($link); $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } @@ -6502,7 +6502,7 @@ class SimplePie_File { if (class_exists('idna_convert')) { - $idn =& new idna_convert; + $idn = new idna_convert; $parsed = SimplePie_Misc::parse_url($url); $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } @@ -6563,7 +6563,7 @@ class SimplePie_File curl_close($fp); $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1); $this->headers = array_pop($this->headers); - $parser =& new SimplePie_HTTP_Parser($this->headers); + $parser = new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; @@ -6672,7 +6672,7 @@ class SimplePie_File } if (!$info['timed_out']) { - $parser =& new SimplePie_HTTP_Parser($this->headers); + $parser = new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; @@ -7548,7 +7548,7 @@ class SimplePie_Misc */ function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5') { - $cache =& new $cache_class($cache_location, call_user_func($cache_name_function, $identifier_url), $cache_extension); + $cache = new $cache_class($cache_location, call_user_func($cache_name_function, $identifier_url), $cache_extension); if ($file = $cache->load()) { @@ -10116,7 +10116,7 @@ class SimplePie_Locator if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml')))) { $this->checked_feeds++; - $feed =& new $this->file_class($href, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($href, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10181,7 +10181,7 @@ class SimplePie_Locator if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml'))) { $this->checked_feeds++; - $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10206,7 +10206,7 @@ class SimplePie_Locator if (preg_match('/(rss|rdf|atom|xml)/i', $value)) { $this->checked_feeds++; - $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10744,7 +10744,7 @@ class SimplePie_Sanitize if (isset($img['attribs']['src']['data'])) { $image_url = $img['attribs']['src']['data']; - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $image_url), 'spi'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $image_url), 'spi'); if ($cache->load()) { @@ -10753,7 +10753,7 @@ class SimplePie_Sanitize } else { - $file =& new $this->file_class($image_url, $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($image_url, $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); $headers = $file->headers; if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300))) diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php index ab802163b..3e9e81234 100644 --- a/inc/TarLib.class.php +++ b/inc/TarLib.class.php @@ -49,870 +49,823 @@ * FULL_ARCHIVE is a -1 constant that means "the complete archive" when * extracting. This is explained in Extract() */ -define('COMPRESS_GZIP',1); -define('COMPRESS_BZIP',2); -define('COMPRESS_AUTO',3); -define('COMPRESS_NONE',0); -define('TARLIB_VERSION','1.2'); -define('FULL_ARCHIVE',-1); -define('ARCHIVE_DYNAMIC',0); -define('ARCHIVE_RENAMECOMP',5); -define('COMPRESS_DETECT',-1); - -class TarLib -{ - var $_comptype; - var $_compzlevel; - var $_fp; - var $_memdat; - var $_nomf; - var $_result; - var $_initerror; - - /** - * constructor, initialize the class - * - * The constructor initialize the variables and prepare the class for the - * archive, and return the object created. Note that you can use multiple - * instances of the MaxgTar class, if you call this function another time and - * store the object in an other variable. - * - * In fact, MaxgTar accepts the following arguments (all are optional) : - * - * filename can be either a file name (absolute or relative). In this - * case, it can be used both for reading and writing. You can also open - * remote archive if you add a protocole name at the beginning of the file - * (ie https://host.dom/archive.tar.gz), but for reading only and if the - * directive allow_url_fopen is enabled in PHP.INI (this can be checked with - * TarInfo()). If you pass a file that doesn't exist, the script - * will try to create it. If the archive already exists and contains files, - * you can use Add() to append files.But by default this parameter - * is ARCHIVE_DYNAMIC (write only) so the archive is created in memory and - * can be sent to a file [writeArchive()] or to the client - * [sendClient()] - * - * compression_type should be a constant that represents a type of - * compression, or its integer value. The different values are described in - * the constants. - * - * compression_level is an integer between 1 and 9 (by default) an - * represent the GZIP or BZIP compression level. 1 produce fast compression, - * and 9 produce smaller files. See the RFC 1952 for more infos. - */ - function tarlib($p_filen = ARCHIVE_DYNAMIC , $p_comptype = COMPRESS_AUTO, $p_complevel = 9) - { - $this->_initerror = 0; - $this->_nomf = $p_filen; $flag=0; - if($p_comptype && $p_comptype % 5 == 0){$p_comptype /= ARCHIVE_RENAMECOMP; $flag=1;} - - if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel; - else $p_complevel = 9; - - if($p_comptype == COMPRESS_DETECT) - { - if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = COMPRESS_GZIP; - elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = COMPRESS_BZIP; - else $p_comptype = COMPRESS_NONE; - } +#define('COMPRESS_GZIP',1); +#define('COMPRESS_BZIP',2); +#define('COMPRESS_AUTO',3); +#define('COMPRESS_NONE',0); +#define('TARLIB_VERSION','1.2'); +#define('FULL_ARCHIVE',-1); +#define('ARCHIVE_DYNAMIC',0); +#define('ARCHIVE_RENAMECOMP',5); +#define('COMPRESS_DETECT',-1); + +class TarLib { + var $_comptype; + var $_compzlevel; + var $_fp; + var $_memdat; + var $_nomf; + var $_result; + var $_initerror; + + const COMPRESS_GZIP = 1; + const COMPRESS_BZIP = 2; + const COMPRESS_AUTO = 3; + const COMPRESS_NONE = 0; + const TARLIB_VERSION = '1.2'; + const FULL_ARCHIVE = -1; + const ARCHIVE_DYNAMIC = 0; + const ARCHIVE_RENAMECOMP = 5; + const COMPRESS_DETECT = -1; + + /** + * constructor, initialize the class + * + * The constructor initialize the variables and prepare the class for the + * archive, and return the object created. Note that you can use multiple + * instances of the MaxgTar class, if you call this function another time and + * store the object in an other variable. + * + * In fact, MaxgTar accepts the following arguments (all are optional) : + * + * filename can be either a file name (absolute or relative). In this + * case, it can be used both for reading and writing. You can also open + * remote archive if you add a protocole name at the beginning of the file + * (ie https://host.dom/archive.tar.gz), but for reading only and if the + * directive allow_url_fopen is enabled in PHP.INI (this can be checked with + * TarInfo()). If you pass a file that doesn't exist, the script + * will try to create it. If the archive already exists and contains files, + * you can use Add() to append files.But by default this parameter + * is ARCHIVE_DYNAMIC (write only) so the archive is created in memory and + * can be sent to a file [writeArchive()] or to the client + * [sendClient()] + * + * compression_type should be a constant that represents a type of + * compression, or its integer value. The different values are described in + * the constants. + * + * compression_level is an integer between 1 and 9 (by default) an + * represent the GZIP or BZIP compression level. 1 produce fast compression, + * and 9 produce smaller files. See the RFC 1952 for more infos. + */ + function tarlib($p_filen = TarLib::ARCHIVE_DYNAMIC , $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) { + $this->_initerror = 0; + $this->_nomf = $p_filen; + $flag=0; + if($p_comptype && $p_comptype % 5 == 0){ + $p_comptype /= TarLib::ARCHIVE_RENAMECOMP; + $flag=1; + } - switch($p_comptype) - { - case COMPRESS_GZIP: - if(!extension_loaded('zlib')) $this->_initerror = -1; - $this->_comptype = COMPRESS_GZIP; - break; - - case COMPRESS_BZIP: - if(!extension_loaded('bz2')) $this->_inierror = -2; - $this->_comptype = COMPRESS_BZIP; - break; - - case COMPRESS_AUTO: - if(extension_loaded('zlib')) - $this->_comptype = COMPRESS_GZIP; - elseif(extension_loaded('bz2')) - $this->_comptype = COMPRESS_BZIP; - else - $this->_comptype = COMPRESS_NONE; - break; + if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel; + else $p_complevel = 9; - default: - $this->_comptype = COMPRESS_NONE; + if($p_comptype == TarLib::COMPRESS_DETECT) { + if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = TarLib::COMPRESS_GZIP; + elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = TarLib::COMPRESS_BZIP; + else $p_comptype = TarLib::COMPRESS_NONE; + } + + switch($p_comptype) { + case TarLib::COMPRESS_GZIP: + if(!extension_loaded('zlib')) $this->_initerror = -1; + $this->_comptype = TarLib::COMPRESS_GZIP; + break; + + case TarLib::COMPRESS_BZIP: + if(!extension_loaded('bz2')) $this->_initerror = -2; + $this->_comptype = TarLib::COMPRESS_BZIP; + break; + + case TarLib::COMPRESS_AUTO: + if(extension_loaded('zlib')) + $this->_comptype = TarLib::COMPRESS_GZIP; + elseif(extension_loaded('bz2')) + $this->_comptype = TarLib::COMPRESS_BZIP; + else + $this->_comptype = TarLib::COMPRESS_NONE; + break; + + default: + $this->_comptype = TarLib::COMPRESS_NONE; + } + + if($this->_initerror < 0) $this->_comptype = TarLib::COMPRESS_NONE; + + if($flag) $this->_nomf.= '.'.$this->getCompression(1); + $this->_result = true; } - if($this->_init_error < 0) $this->_comptype = COMPRESS_NONE; - - if($flag) $this->_nomf.= '.'.$this->getCompression(1); - $this->_result = true; - } - - /** - * Recycle a TAR object. - * - * This function does exactly the same as TarLib (constructor), except it - * returns a status code. - */ - function setArchive($p_name='', $p_comp = COMPRESS_AUTO, $p_level=9) - { - $this->_CompTar(); - $this->TarLib($p_name, $p_comp, $p_level); - return $this->_result; - } - - /** - * Get the compression used to generate the archive - * - * This is a very useful function when you're using dynamical archives. - * Besides, if you let the script chose which compression to use, you'll have - * a problem when you'll want to send it to the client if you don't know - * which compression was used. - * - * There are two ways to call this function : if you call it without argument - * or with FALSE, it will return the compression constants, explained on the - * MaxgTar Constants. If you call it with GetExtension on TRUE it will - * return the extension without starting dot (ie "tar" or "tar.bz2" or - * "tar.gz") - * - * NOTE: This can be done with the flag ARCHIVE_RENAMECOMP, see the - * MaxgTar Constants - */ - function getCompression($ext = false) - { - $exts = Array('tar','tar.gz','tar.bz2'); - if($ext) return $exts[$this->_comptype]; - return $this->_comptype; - } - - /** - * Change the compression mode. - * - * This function will change the compression methode to read or write - * the archive. See the MaxgTar Constants to see which constants you can use. - * It may look strange, but it returns the GZIP compression level. - */ - function setCompression($p_comp = COMPRESS_AUTO) - { - $this->setArchive($this->_nomf, $p_comp, $this->_compzlevel); - return $this->_compzlevel; - } - - /** - * Returns the compressed dynamic archive. - * - * When you're working with dynamic archives, use this function to grab - * the final compressed archive in a string ready to be put in a SQL table or - * in a file. - */ - function getDynamicArchive() - { - return $this->_encode($this->_memdat); - } - - /** - * Write a dynamical archive into a file - * - * This function attempts to write a dynamicaly-genrated archive into - * TargetFile on the webserver. It returns a TarErrorStr() status - * code. - * - * To know the extension to add to the file if you're using AUTO_DETECT - * compression, you can use getCompression(). - */ - function writeArchive($p_archive) { - if(!$this->_memdat) return -7; - $fp = @fopen($p_archive, 'wb'); - if(!$fp) return -6; - - fwrite($fp, $this->_memdat); - fclose($fp); - - return true; - } - - /** - * Send a TAR archive to the client browser. - * - * This function will send an archive to the client, and return a status - * code, but can behave differently depending on the arguments you give. All - * arguments are optional. - * - * ClientName is used to specify the archive name to give to the browser. If - * you don't give one, it will send the constructor filename or return an - * error code in case of dynamical archive. - * - * FileName is optional and used to send a specific archive. Leave it blank - * to send dynamical archives or the current working archive. - * - * If SendHeaders is enabled (by default), the library will send the HTTP - * headers itself before it sends the contents. This headers are : - * Content-Type, Content-Disposition, Content-Length and Accept-Range. - * - * Please note that this function DOES NOT stops the script so don't forget - * to exit() to avoid your script sending other data and corrupt the archive. - * Another note : for AUTO_DETECT dynamical archives you can know the - * extension to add to the name with getCompression() - */ - function sendClient($name = '', $archive = '', $headers = true) - { - if(!$name && !$this->_nomf) return -9; - if(!$archive && !$this->_memdat) return -10; - if(!$name) $name = basename($this->_nomf); - - if($archive){ if(!file_exists($archive)) return -11; } - else $decoded = $this->getDynamicArchive(); - - if($headers) - { - header('Content-Type: application/x-gtar'); - header('Content-Disposition: attachment; filename='.basename($name)); - header('Accept-Ranges: bytes'); - header('Content-Length: '.($archive ? filesize($archive) : strlen($decoded))); + /** + * Recycle a TAR object. + * + * This function does exactly the same as TarLib (constructor), except it + * returns a status code. + */ + function setArchive($p_name='', $p_comp = TarLib::COMPRESS_AUTO, $p_level=9) { + $this->_CompTar(); + $this->TarLib($p_name, $p_comp, $p_level); + return $this->_result; } - if($archive) - { - $fp = @fopen($archive,'rb'); - if(!$fp) return -4; + /** + * Get the compression used to generate the archive + * + * This is a very useful function when you're using dynamical archives. + * Besides, if you let the script chose which compression to use, you'll have + * a problem when you'll want to send it to the client if you don't know + * which compression was used. + * + * There are two ways to call this function : if you call it without argument + * or with FALSE, it will return the compression constants, explained on the + * MaxgTar Constants. If you call it with GetExtension on TRUE it will + * return the extension without starting dot (ie "tar" or "tar.bz2" or + * "tar.gz") + * + * NOTE: This can be done with the flag ARCHIVE_RENAMECOMP, see the + * MaxgTar Constants + */ + function getCompression($ext = false) { + $exts = Array('tar','tar.gz','tar.bz2'); + if($ext) return $exts[$this->_comptype]; + return $this->_comptype; + } - while(!feof($fp)) echo fread($fp,2048); + /** + * Change the compression mode. + * + * This function will change the compression methode to read or write + * the archive. See the MaxgTar Constants to see which constants you can use. + * It may look strange, but it returns the GZIP compression level. + */ + function setCompression($p_comp = TarLib::COMPRESS_AUTO) { + $this->setArchive($this->_nomf, $p_comp, $this->_compzlevel); + return $this->_compzlevel; } - else - { - echo $decoded; + + /** + * Returns the compressed dynamic archive. + * + * When you're working with dynamic archives, use this function to grab + * the final compressed archive in a string ready to be put in a SQL table or + * in a file. + */ + function getDynamicArchive() { + return $this->_encode($this->_memdat); } - return true; - } - - /** - * Extract part or totality of the archive. - * - * This function can extract files from an archive, and returns then a - * status codes that can be converted with TarErrorStr() into a - * human readable message. - * - * Only the first argument is required, What and it can be either the - * constant FULL_ARCHIVE or an indexed array containing each file you want to - * extract. - * - * To contains the target folder to extract the archive. It is optional and - * the default value is '.' which means the current folder. If the target - * folder doesn't exist, the script attempts to create it and give it - * permissions 0777 by default. - * - * RemovePath is very usefull when you want to extract files from a subfoler - * in the archive to a root folder. For instance, if you have a file in the - * archive called some/sub/folder/test.txt and you want to extract it to the - * script folder, you can call Extract with To = '.' and RemovePath = - * 'some/sub/folder/' - * - * FileMode is optional and its default value is 0755. It is in fact the UNIX - * permission in octal mode (prefixed with a 0) that will be given on each - * extracted file. - */ - function Extract($p_what = FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) - { - if(!$this->_OpenRead()) return -4; -// if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS - if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn) - - $ok = $this->_extractList($p_to, $p_what, $p_remdir, $p_mode); - $this->_CompTar(); - - return $ok; - } - - /** - * Create a new package with the given files - * - * This function will attempt to create a new archive with global headers - * then add the given files into. If the archive is a real file, the - * contents are written directly into the file, if it is a dynamic archive - * contents are only stored in memory. This function should not be used to - * add files to an existing archive, you should use Add() instead. - * - * The FileList actually supports three different modes : - * - * - You can pass a string containing filenames separated by pipes '|'. - * In this case the file are read from the webserver filesystem and the - * root folder is the folder where the script using the MaxgTar is called. - * - * - You can also give a unidimensional indexed array containing the - * filenames. The behaviour for the content reading is the same that a - * '|'ed string. - * - * - The more useful usage is to pass bidimensional arrays, where the - * first element contains the filename and the second contains the file - * contents. You can even add empty folders to the package if the filename - * has a leading '/'. Once again, have a look at the exemples to understand - * better. - * - * Note you can also give arrays with both dynamic contents and static files. - * - * The optional parameter RemovePath can be used to delete a part of the tree - * of the filename you're adding, for instance if you're adding in the root - * of a package a file that is stored somewhere in the server tree. - * - * On the contrary the parameter AddPath can be used to add a prefix folder - * to the file you store. Note also that the RemovePath is applied before the - * AddPath is added, so it HAS a sense to use both parameters together. - */ - function Create($p_filelist,$p_add='',$p_rem='') - { - if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; - if(!$this->_OpenWrite()) return -6; - - $ok = $this->_addFileList($fl,$p_add,$p_rem); - - if($ok) $this->_writeFooter(); - else{ $this->_CompTar(); @unlink($this->_nomf); } - - return $ok; - } - - /** - * Add files to an existing package. - * - * This function does exactly the same than Create() exept it - * will append the given files at the end of the archive. Please not the is - * safe to call Add() on a newly created archive whereas the - * contrary will fail ! - * - * This function returns a status code, you can use TarErrorStr() on - * it to get the human-readable description of the error. - */ - function Add($p_filelist, $p_add = '', $p_rem = '') { if (($this->_nomf -!= ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || ($this->_nomf == -ARCHIVE_DYNAMIC && !$this->_memdat)) return $this->Create($p_filelist, -$p_add, $p_rem); - - if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; - return $this->_append($fl, $p_add, $p_rem); - } - - /** - * Read the contents of a TAR archive - * - * This function attempts to get the list of the files stored in the - * archive, and return either an error code or an indexed array of - * associative array containing for each file the following informations : - * - * checksum Tar Checksum of the file - * filename The full name of the stored file (up to 100 c.) - * mode UNIX permissions in DECIMAL, not octal - * uid The Owner ID - * gid The Group ID - * size Uncompressed filesize - * mtime Timestamp of last modification - * typeflag Empty for files, set for folders - * link For the links, did you guess it ? - * uname Owner name - * gname Group name - */ - function ListContents() - { - if(!$this->_nomf) return -3; - if(!$this->_OpenRead()) return -4; - - $result = Array(); - - while ($dat = $this->_read(512)) - { - $dat = $this->_readHeader($dat); - if(!is_array($dat)) continue; - - $this->_seek(ceil($dat['size']/512)*512,1); - $result[] = $dat; + /** + * Write a dynamical archive into a file + * + * This function attempts to write a dynamicaly-genrated archive into + * TargetFile on the webserver. It returns a TarErrorStr() status + * code. + * + * To know the extension to add to the file if you're using AUTO_DETECT + * compression, you can use getCompression(). + */ + function writeArchive($p_archive) { + if(!$this->_memdat) return -7; + $fp = @fopen($p_archive, 'wb'); + if(!$fp) return -6; + + fwrite($fp, $this->_memdat); + fclose($fp); + + return true; } - return $result; - } - - /** - * Convert a status code into a human readable message - * - * Some MaxgTar functions like Create(), Add() ... return numerical - * status code. You can pass them to this function to grab their english - * equivalent. - */ - function TarErrorStr($i) - { - $ecodes = Array( - 1 => true, - 0 => "Undocumented error", - -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !", - -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !", - -3 => "You must set a archive file to read the contents !", - -4 => "Can't open the archive file for read !", - -5 => "Invalide file list !", - -6 => "Can't open the archive in write mode !", - -7 => "There is no ARCHIVE_DYNAMIC to write !", - -8 => "Can't create the directory to extract files !", - -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !", - -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !", - -11 => "Given archive doesn't exist !" - ); - - return isset($ecodes[$i]) ? $ecodes[$i] : $ecodes[0]; - } - - /** - * Display informations about the MaxgTar Class. - * - * This function will display vaious informations about the server - * MaxgTar is running on. - * - * The optional parameter DispHeaders is used to generate a full page with - * HTML headers (TRUE by default) or just the table with the informations - * (FALSE). Note that the HTML page generated is verified compatible XHTML - * 1.0, but not HTML 4.0 compatible. - */ - function TarInfo($headers = true) - { - if($headers) - { - ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html> - -<head> - <title>MaxgComp TAR</title> - <style type="text/css"> - body{margin: 20px;} - body,td{font-size:10pt;font-family: arial;} - </style> - <meta name="Author" content="The Maxg Network, http://maxg.info" /> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> -</head> - -<body bgcolor="#EFEFEF"> -<?php + /** + * Send a TAR archive to the client browser. + * + * This function will send an archive to the client, and return a status + * code, but can behave differently depending on the arguments you give. All + * arguments are optional. + * + * ClientName is used to specify the archive name to give to the browser. If + * you don't give one, it will send the constructor filename or return an + * error code in case of dynamical archive. + * + * FileName is optional and used to send a specific archive. Leave it blank + * to send dynamical archives or the current working archive. + * + * If SendHeaders is enabled (by default), the library will send the HTTP + * headers itself before it sends the contents. This headers are : + * Content-Type, Content-Disposition, Content-Length and Accept-Range. + * + * Please note that this function DOES NOT stops the script so don't forget + * to exit() to avoid your script sending other data and corrupt the archive. + * Another note : for AUTO_DETECT dynamical archives you can know the + * extension to add to the name with getCompression() + */ + function sendClient($name = '', $archive = '', $headers = true) { + if(!$name && !$this->_nomf) return -9; + if(!$archive && !$this->_memdat) return -10; + if(!$name) $name = basename($this->_nomf); + + if($archive){ if(!file_exists($archive)) return -11; } + else $decoded = $this->getDynamicArchive(); + + if($headers) { + header('Content-Type: application/x-gtar'); + header('Content-Disposition: attachment; filename='.basename($name)); + header('Accept-Ranges: bytes'); + header('Content-Length: '.($archive ? filesize($archive) : strlen($decoded))); + } + + if($archive) { + $fp = @fopen($archive,'rb'); + if(!$fp) return -4; + + while(!feof($fp)) echo fread($fp,2048); + } else { + echo $decoded; + } + + return true; } -?> -<table border="0" align="center" width="500" cellspacing="4" cellpadding="5" style="border:1px dotted black;"> -<tr> - <td align="center" bgcolor="#DFDFEF" colspan="3" style="font-size:15pt;font-color:#330000;border:1px solid black;">MaxgComp TAR</td> -</tr> -<tr> - <td colspan="2" bgcolor="#EFEFFE" style="border:1px solid black;">This software was created by the Maxg Network, <a href="http://maxg.info" target="_blank" style="text-decoration:none;color:#333366;">http://maxg.info</a> - <br />It is distributed under the GNU <a href="http://www.gnu.org/copyleft/lesser.html" target="_blank" style="text-decoration:none;color:#333366;">Lesser General Public License</a> - <br />You can find the documentation of this class <a href="http://docs.maxg.info" target="_blank" style="text-decoration:none;color:#333366;">here</a></td> - <td width="60" bgcolor="#EFEFFE" style="border:1px solid black;" align="center"><img src="http://img.maxg.info/menu/tar.gif" border="0" alt="MaxgComp TAR" /></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">MaxgComp TAR version</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=TARLIB_VERSION?></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">ZLIB extensions</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(extension_loaded('zlib') ? '<b>Yes</b>' : '<i>No</i>')?></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">BZ2 extensions</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(extension_loaded('bz2') ? '<b>Yes</b>' : '<i>No</i>')?></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">Allow URL fopen</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(ini_get('allow_url_fopen') ? '<b>Yes</b>' : '<i>No</i>')?></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">Time limit</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=ini_get('max_execution_time')?></td> -</tr> -<tr> - <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">PHP Version</td> - <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=phpversion()?></td> -</tr> -<tr> - <td colspan="3" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"> - <i>Special thanks to « Vincent Blavet » for his PEAR::Archive_Tar class</i> - </td> -</tr> -</table> -<?php - if($headers) echo '</body></html>'; - } - - function _seek($p_flen, $tell=0) - { - if($this->_nomf === ARCHIVE_DYNAMIC) - $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen); - elseif($this->_comptype == COMPRESS_GZIP) - @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen); - elseif($this->_comptype == COMPRESS_BZIP) - @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); - else - @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); - } - - function _OpenRead() - { - if($this->_comptype == COMPRESS_GZIP) - $this->_fp = @gzopen($this->_nomf, 'rb'); - elseif($this->_comptype == COMPRESS_BZIP) - $this->_fp = @bzopen($this->_nomf, 'rb'); - else - $this->_fp = @fopen($this->_nomf, 'rb'); - - return ($this->_fp ? true : false); - } - - function _OpenWrite($add = 'w') - { - if($this->_nomf === ARCHIVE_DYNAMIC) return true; - - if($this->_comptype == COMPRESS_GZIP) - $this->_fp = @gzopen($this->_nomf, $add.'b'.$this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) - $this->_fp = @bzopen($this->_nomf, $add.'b'); - else - $this->_fp = @fopen($this->_nomf, $add.'b'); - - return ($this->_fp ? true : false); - } - - function _CompTar() - { - if($this->_nomf === ARCHIVE_DYNAMIC || !$this->_fp) return; - - if($this->_comptype == COMPRESS_GZIP) @gzclose($this->_fp); - elseif($this->_comptype == COMPRESS_BZIP) @bzclose($this->_fp); - else @fclose($this->_fp); - } - - function _read($p_len) - { - if($this->_comptype == COMPRESS_GZIP) - return @gzread($this->_fp,$p_len); - elseif($this->_comptype == COMPRESS_BZIP) - return @bzread($this->_fp,$p_len); - else - return @fread($this->_fp,$p_len); - } - - function _write($p_data) - { - if($this->_nomf === ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; - elseif($this->_comptype == COMPRESS_GZIP) - return @gzwrite($this->_fp,$p_data); - - elseif($this->_comptype == COMPRESS_BZIP) - return @bzwrite($this->_fp,$p_data); - - else - return @fwrite($this->_fp,$p_data); - } - - function _encode($p_dat) - { - if($this->_comptype == COMPRESS_GZIP) - return gzencode($p_dat, $this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) - return bzcompress($p_dat, $this->_compzlevel); - else return $p_dat; - } - - function _readHeader($p_dat) - { - if (!$p_dat || strlen($p_dat) != 512) return false; - - for ($i=0, $chks=0; $i<148; $i++) - $chks += ord($p_dat[$i]); - - for ($i=156,$chks+=256; $i<512; $i++) - $chks += ord($p_dat[$i]); - - $headers = @unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $p_dat); - if(!$headers) return false; - - $return['checksum'] = OctDec(trim($headers['checksum'])); - if ($return['checksum'] != $chks) return false; - - $return['filename'] = trim($headers['filename']); - $return['mode'] = OctDec(trim($headers['mode'])); - $return['uid'] = OctDec(trim($headers['uid'])); - $return['gid'] = OctDec(trim($headers['gid'])); - $return['size'] = OctDec(trim($headers['size'])); - $return['mtime'] = OctDec(trim($headers['mtime'])); - $return['typeflag'] = $headers['typeflag']; - $return['link'] = trim($headers['link']); - $return['uname'] = trim($headers['uname']); - $return['gname'] = trim($headers['gname']); - - return $return; - } - - function _fetchFilelist($p_filelist) - { - if(!$p_filelist || (is_array($p_filelist) && !@count($p_filelist))) return false; - - if(is_string($p_filelist)) - { - $p_filelist = explode('|',$p_filelist); - if(!is_array($p_filelist)) $p_filelist = Array($p_filelist); + + /** + * Extract part or totality of the archive. + * + * This function can extract files from an archive, and returns then a + * status codes that can be converted with TarErrorStr() into a + * human readable message. + * + * Only the first argument is required, What and it can be either the + * constant FULL_ARCHIVE or an indexed array containing each file you want to + * extract. + * + * To contains the target folder to extract the archive. It is optional and + * the default value is '.' which means the current folder. If the target + * folder doesn't exist, the script attempts to create it and give it + * permissions 0777 by default. + * + * RemovePath is very usefull when you want to extract files from a subfoler + * in the archive to a root folder. For instance, if you have a file in the + * archive called some/sub/folder/test.txt and you want to extract it to the + * script folder, you can call Extract with To = '.' and RemovePath = + * 'some/sub/folder/' + * + * FileMode is optional and its default value is 0755. It is in fact the UNIX + * permission in octal mode (prefixed with a 0) that will be given on each + * extracted file. + */ + function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) { + if(!$this->_OpenRead()) return -4; + // if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS + if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn) + + $ok = $this->_extractList($p_to, $p_what, $p_remdir, $p_mode); + $this->_CompTar(); + + return $ok; } - return $p_filelist; - } + /** + * Create a new package with the given files + * + * This function will attempt to create a new archive with global headers + * then add the given files into. If the archive is a real file, the + * contents are written directly into the file, if it is a dynamic archive + * contents are only stored in memory. This function should not be used to + * add files to an existing archive, you should use Add() instead. + * + * The FileList actually supports three different modes : + * + * - You can pass a string containing filenames separated by pipes '|'. + * In this case the file are read from the webserver filesystem and the + * root folder is the folder where the script using the MaxgTar is called. + * + * - You can also give a unidimensional indexed array containing the + * filenames. The behaviour for the content reading is the same that a + * '|'ed string. + * + * - The more useful usage is to pass bidimensional arrays, where the + * first element contains the filename and the second contains the file + * contents. You can even add empty folders to the package if the filename + * has a leading '/'. Once again, have a look at the exemples to understand + * better. + * + * Note you can also give arrays with both dynamic contents and static files. + * + * The optional parameter RemovePath can be used to delete a part of the tree + * of the filename you're adding, for instance if you're adding in the root + * of a package a file that is stored somewhere in the server tree. + * + * On the contrary the parameter AddPath can be used to add a prefix folder + * to the file you store. Note also that the RemovePath is applied before the + * AddPath is added, so it HAS a sense to use both parameters together. + */ + function Create($p_filelist,$p_add='',$p_rem='') { + if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; + if(!$this->_OpenWrite()) return -6; + + $ok = $this->_addFileList($fl,$p_add,$p_rem); + + if($ok){ + $this->_writeFooter(); + }else{ + $this->_CompTar(); + @unlink($this->_nomf); + } - function _addFileList($p_fl, $p_addir, $p_remdir) - { - foreach($p_fl as $file) - { - if(($file == $this->_nomf && $this->_nomf != ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) - continue; + return $ok; + } - if (!$this->_addFile($file, $p_addir, $p_remdir)) - continue; + /** + * Add files to an existing package. + * + * This function does exactly the same than Create() exept it + * will append the given files at the end of the archive. Please not the is + * safe to call Add() on a newly created archive whereas the + * contrary will fail ! + * + * This function returns a status code, you can use TarErrorStr() on + * it to get the human-readable description of the error. + */ + function Add($p_filelist, $p_add = '', $p_rem = '') { + if (($this->_nomf != TarLib::ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || + ($this->_nomf == TarLib::ARCHIVE_DYNAMIC && !$this->_memdat)){ + return $this->Create($p_filelist, $p_add, $p_rem); + } - if (@is_dir($file)) - { - $d = @opendir($file); + if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; + return $this->_append($fl, $p_add, $p_rem); + } - if(!$d) continue; - readdir($d); readdir($d); + /** + * Read the contents of a TAR archive + * + * This function attempts to get the list of the files stored in the + * archive, and return either an error code or an indexed array of + * associative array containing for each file the following informations : + * + * checksum Tar Checksum of the file + * filename The full name of the stored file (up to 100 c.) + * mode UNIX permissions in DECIMAL, not octal + * uid The Owner ID + * gid The Group ID + * size Uncompressed filesize + * mtime Timestamp of last modification + * typeflag Empty for files, set for folders + * link For the links, did you guess it ? + * uname Owner name + * gname Group name + */ + function ListContents() { + if(!$this->_nomf) return -3; + if(!$this->_OpenRead()) return -4; + + $result = Array(); + + while ($dat = $this->_read(512)) { + $dat = $this->_readHeader($dat); + if(!is_array($dat)) continue; + + $this->_seek(ceil($dat['size']/512)*512,1); + $result[] = $dat; + } + + return $result; + } - while($f = readdir($d)) - { - if($file != ".") $tmplist[0] = "$file/$f"; - else $tmplist[0] = $d; + /** + * Convert a status code into a human readable message + * + * Some MaxgTar functions like Create(), Add() ... return numerical + * status code. You can pass them to this function to grab their english + * equivalent. + */ + function TarErrorStr($i) { + $ecodes = Array( + 1 => true, + 0 => "Undocumented error", + -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !", + -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !", + -3 => "You must set a archive file to read the contents !", + -4 => "Can't open the archive file for read !", + -5 => "Invalide file list !", + -6 => "Can't open the archive in write mode !", + -7 => "There is no ARCHIVE_DYNAMIC to write !", + -8 => "Can't create the directory to extract files !", + -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !", + -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !", + -11 => "Given archive doesn't exist !" + ); + + return isset($ecodes[$i]) ? $ecodes[$i] : $ecodes[0]; + } - $this->_addFileList($tmplist, $p_addir, $p_remdir); + /** + * Display informations about the MaxgTar Class. + * + * This function will display vaious informations about the server + * MaxgTar is running on. + * + * The optional parameter DispHeaders is used to generate a full page with + * HTML headers (TRUE by default) or just the table with the informations + * (FALSE). Note that the HTML page generated is verified compatible XHTML + * 1.0, but not HTML 4.0 compatible. + */ + function TarInfo($headers = true) { + if($headers) { + ?> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + <html> + + <head> + <title>MaxgComp TAR</title> + <style type="text/css"> + body{margin: 20px;} + body,td{font-size:10pt;font-family: arial;} + </style> + <meta name="Author" content="The Maxg Network, http://maxg.info" /> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + </head> + + <body bgcolor="#EFEFEF"> + <?php } + ?> + <table border="0" align="center" width="500" cellspacing="4" cellpadding="5" style="border:1px dotted black;"> + <tr> + <td align="center" bgcolor="#DFDFEF" colspan="3" style="font-size:15pt;font-color:#330000;border:1px solid black;">MaxgComp TAR</td> + </tr> + <tr> + <td colspan="2" bgcolor="#EFEFFE" style="border:1px solid black;">This software was created by the Maxg Network, <a href="http://maxg.info" target="_blank" style="text-decoration:none;color:#333366;">http://maxg.info</a> + <br />It is distributed under the GNU <a href="http://www.gnu.org/copyleft/lesser.html" target="_blank" style="text-decoration:none;color:#333366;">Lesser General Public License</a> + <br />You can find the documentation of this class <a href="http://docs.maxg.info" target="_blank" style="text-decoration:none;color:#333366;">here</a></td> + <td width="60" bgcolor="#EFEFFE" style="border:1px solid black;" align="center"><img src="http://img.maxg.info/menu/tar.gif" border="0" alt="MaxgComp TAR" /></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">MaxgComp TAR version</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=TARLIB_VERSION?></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">ZLIB extensions</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(extension_loaded('zlib') ? '<b>Yes</b>' : '<i>No</i>')?></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">BZ2 extensions</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(extension_loaded('bz2') ? '<b>Yes</b>' : '<i>No</i>')?></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">Allow URL fopen</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=(ini_get('allow_url_fopen') ? '<b>Yes</b>' : '<i>No</i>')?></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">Time limit</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=ini_get('max_execution_time')?></td> + </tr> + <tr> + <td width="50%" align="center" style="border:1px solid black;" bgcolor="#DFDFEF">PHP Version</td> + <td colspan="2" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"><?=phpversion()?></td> + </tr> + <tr> + <td colspan="3" align="center" bgcolor="#EFEFFE" style="border:1px solid black;"> + <i>Special thanks to « Vincent Blavet » for his PEAR::Archive_Tar class</i> + </td> + </tr> + </table> + <?php + if($headers) echo '</body></html>'; + } - closedir($d); unset($tmplist,$f); - } + function _seek($p_flen, $tell=0) { + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) + $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen); + elseif($this->_comptype == TarLib::COMPRESS_GZIP) + @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); + else + @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); } - return true; - } - function _addFile($p_fn, $p_addir = '', $p_remdir = '') - { - if(is_array($p_fn)) list($p_fn, $data) = $p_fn; - $sname = $p_fn; + function _OpenRead() { + if($this->_comptype == TarLib::COMPRESS_GZIP) + $this->_fp = @gzopen($this->_nomf, 'rb'); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + $this->_fp = @bzopen($this->_nomf, 'rb'); + else + $this->_fp = @fopen($this->_nomf, 'rb'); + + return ($this->_fp ? true : false); + } - if($p_remdir) - { - if(substr($p_remdir,-1) != '/') $p_remdir .= "/"; + function _OpenWrite($add = 'w') { + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) return true; + + if($this->_comptype == TarLib::COMPRESS_GZIP) + $this->_fp = @gzopen($this->_nomf, $add.'b'.$this->_compzlevel); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + $this->_fp = @bzopen($this->_nomf, $add.'b'); + else + $this->_fp = @fopen($this->_nomf, $add.'b'); - if(substr($sname, 0, strlen($p_remdir)) == $p_remdir) - $sname = substr($sname, strlen($p_remdir)); + return ($this->_fp ? true : false); } - if($p_addir) $sname = $p_addir.(substr($p_addir,-1) == '/' ? '' : "/").$sname; + function _CompTar() { + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC || !$this->_fp) return; - if(strlen($sname) > 99) return; + if($this->_comptype == TarLib::COMPRESS_GZIP) @gzclose($this->_fp); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) @bzclose($this->_fp); + else @fclose($this->_fp); + } + + function _read($p_len) { + if($this->_comptype == TarLib::COMPRESS_GZIP) + return @gzread($this->_fp,$p_len); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + return @bzread($this->_fp,$p_len); + else + return @fread($this->_fp,$p_len); + } + + function _write($p_data) { + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; + elseif($this->_comptype == TarLib::COMPRESS_GZIP) + return @gzwrite($this->_fp,$p_data); - if(@is_dir($p_fn)) - { - if(!$this->_writeFileHeader($p_fn, $sname)) return false; + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + return @bzwrite($this->_fp,$p_data); + + else + return @fwrite($this->_fp,$p_data); } - else - { - if(!$data) - { - $fp = fopen($p_fn, 'rb'); - if(!$fp) return false; - } - - if(!$this->_writeFileHeader($p_fn, $sname, ($data ? strlen($data) : false))) return false; - - if(!$data) - { - while(!feof($fp)) - { - $packed = pack("a512", fread($fp,512)); - $this->_write($packed); - } - fclose($fp); - } - else - { - for($s = 0; $s < strlen($data); $s += 512) - $this->_write(pack("a512",substr($data,$s,512))); - } + + function _encode($p_dat) { + if($this->_comptype == TarLib::COMPRESS_GZIP) + return gzencode($p_dat, $this->_compzlevel); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) + return bzcompress($p_dat, $this->_compzlevel); + else return $p_dat; } - return true; - } - - function _writeFileHeader($p_file, $p_sname, $p_data=false) - { - if(!$p_data) - { - if (!$p_sname) $p_sname = $p_file; - $p_sname = $this->_pathTrans($p_sname); - - $h_info = stat($p_file); - $h[0] = sprintf("%6s ", DecOct($h_info[4])); - $h[] = sprintf("%6s ", DecOct($h_info[5])); - $h[] = sprintf("%6s ", DecOct(fileperms($p_file))); - clearstatcache(); - $h[] = sprintf("%11s ", DecOct(filesize($p_file))); - $h[] = sprintf("%11s", DecOct(filemtime($p_file))); - - $dir = @is_dir($p_file) ? '5' : ''; - } - else - { - $dir = ''; - $p_data = sprintf("%11s ", DecOct($p_data)); - $time = sprintf("%11s ", DecOct(time())); - $h = Array(" 0 "," 0 "," 40777 ",$p_data,$time); - } - - $data_first = pack("a100a8a8a8a12A12", $p_sname, $h[2], $h[0], $h[1], $h[3], $h[4]); - $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', ""); - - for ($i=0,$chks=0; $i<148; $i++) - $chks += ord($data_first[$i]); - - for ($i=156, $chks+=256, $j=0; $i<512; $i++, $j++) - $chks += ord($data_last[$j]); - - $this->_write($data_first); - - $chks = pack("a8",sprintf("%6s ", DecOct($chks))); - $this->_write($chks.$data_last); - - return true; - } - - function _append($p_filelist, $p_addir="", $p_remdir="") - { - if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6; - - if($this->_nomf == ARCHIVE_DYNAMIC) - { - $s = strlen($this->_memdat); - $this->_memdat = substr($this->_memdat,0,-512); + function _readHeader($p_dat) { + if (!$p_dat || strlen($p_dat) != 512) return false; + + for ($i=0, $chks=0; $i<148; $i++) + $chks += ord($p_dat[$i]); + + for ($i=156,$chks+=256; $i<512; $i++) + $chks += ord($p_dat[$i]); + + $headers = @unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $p_dat); + if(!$headers) return false; + + $return['checksum'] = OctDec(trim($headers['checksum'])); + if ($return['checksum'] != $chks) return false; + + $return['filename'] = trim($headers['filename']); + $return['mode'] = OctDec(trim($headers['mode'])); + $return['uid'] = OctDec(trim($headers['uid'])); + $return['gid'] = OctDec(trim($headers['gid'])); + $return['size'] = OctDec(trim($headers['size'])); + $return['mtime'] = OctDec(trim($headers['mtime'])); + $return['typeflag'] = $headers['typeflag']; + $return['link'] = trim($headers['link']); + $return['uname'] = trim($headers['uname']); + $return['gname'] = trim($headers['gname']); + + return $return; } - else - { - $s = filesize($this->_nomf); - $this->_seek($s-512); + + function _fetchFilelist($p_filelist) { + if(!$p_filelist || (is_array($p_filelist) && !@count($p_filelist))) return false; + + if(is_string($p_filelist)) { + $p_filelist = explode('|',$p_filelist); + if(!is_array($p_filelist)) $p_filelist = Array($p_filelist); + } + + return $p_filelist; } - $ok = $this->_addFileList($p_filelist, $p_addir, $p_remdir); - $this->_writeFooter(); - - return $ok; - } - - function _pathTrans($p_dir) - { - if ($p_dir) - { - $subf = explode("/", $p_dir); $r=''; - - for ($i=count($subf)-1; $i>=0; $i--) - { - if ($subf[$i] == ".") {} - else if ($subf[$i] == "..") $i--; - else if (!$subf[$i] && $i!=count($subf)-1 && $i) {} - else $r = $subf[$i].($i!=(count($subf)-1) ? "/".$r : ""); - } + function _addFileList($p_fl, $p_addir, $p_remdir) { + foreach($p_fl as $file) { + if(($file == $this->_nomf && $this->_nomf != TarLib::ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) + continue; + + if (!$this->_addFile($file, $p_addir, $p_remdir)) + continue; + + if (@is_dir($file)) { + $d = @opendir($file); + + if(!$d) continue; + readdir($d); + readdir($d); + + while($f = readdir($d)) { + if($file != ".") $tmplist[0] = "$file/$f"; + else $tmplist[0] = $d; + + $this->_addFileList($tmplist, $p_addir, $p_remdir); + } + + closedir($d); + unset($tmplist,$f); + } + } + return true; } - return $r; - } - - function _writeFooter() - { - $this->_write(pack("a512", "")); - } - - function _extractList($p_to, $p_files, $p_remdir, $p_mode = 0755) - { - if (!$p_to || ($p_to[0]!="/"&&substr($p_to,0,3)!="../"&&substr($p_to,1,3)!=":\\"&&substr($p_to,1,2)!=":/")) /*" // <- PHP Coder bug */ - $p_to = "./$p_to"; - - if ($p_remdir && substr($p_remdir,-1)!='/') $p_remdir .= '/'; - $p_remdirs = strlen($p_remdir); - while($dat = $this->_read(512)) - { - $headers = $this->_readHeader($dat); - if(!$headers['filename']) continue; - - if($p_files == -1 || $p_files[0] == -1) $extract = true; - else - { - $extract = false; - - foreach($p_files as $f) - { - if(substr($f,-1) == "/") { - if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'],0,strlen($f))==$f)) { - $extract = true; break; + + function _addFile($p_fn, $p_addir = '', $p_remdir = '') { + if(is_array($p_fn)) list($p_fn, $data) = $p_fn; + $sname = $p_fn; + + if($p_remdir) { + if(substr($p_remdir,-1) != '/') $p_remdir .= "/"; + + if(substr($sname, 0, strlen($p_remdir)) == $p_remdir) + $sname = substr($sname, strlen($p_remdir)); + } + + if($p_addir) $sname = $p_addir.(substr($p_addir,-1) == '/' ? '' : "/").$sname; + + if(strlen($sname) > 99) return; + + if(@is_dir($p_fn)) { + if(!$this->_writeFileHeader($p_fn, $sname)) return false; + } else { + if(!$data) { + $fp = fopen($p_fn, 'rb'); + if(!$fp) return false; + } + + if(!$this->_writeFileHeader($p_fn, $sname, ($data ? strlen($data) : false))) return false; + + if(!$data) { + while(!feof($fp)) { + $packed = pack("a512", fread($fp,512)); + $this->_write($packed); + } + fclose($fp); + } else { + $len = strlen($data); + for($s = 0; $s < $len; $s += 512){ + $this->_write(pack("a512",substr($data,$s,512))); + } } - } - elseif($f == $headers['filename']) { - $extract = true; break; - } } - } - if ($extract) - { - $det[] = $headers; - if ($p_remdir && substr($headers['filename'],0,$p_remdirs)==$p_remdir) - $headers['filename'] = substr($headers['filename'],$p_remdirs); + return true; + } + + function _writeFileHeader($p_file, $p_sname, $p_data=false) { + if(!$p_data) { + if (!$p_sname) $p_sname = $p_file; + $p_sname = $this->_pathTrans($p_sname); + + $h_info = stat($p_file); + $h[0] = sprintf("%6s ", DecOct($h_info[4])); + $h[] = sprintf("%6s ", DecOct($h_info[5])); + $h[] = sprintf("%6s ", DecOct(fileperms($p_file))); + clearstatcache(); + $h[] = sprintf("%11s ", DecOct(filesize($p_file))); + $h[] = sprintf("%11s", DecOct(filemtime($p_file))); + + $dir = @is_dir($p_file) ? '5' : ''; + } else { + $dir = ''; + $p_data = sprintf("%11s ", DecOct($p_data)); + $time = sprintf("%11s ", DecOct(time())); + $h = Array(" 0 "," 0 "," 40777 ",$p_data,$time); + } - if($headers['filename'].'/' == $p_remdir && $headers['typeflag']=='5') continue; + $data_first = pack("a100a8a8a8a12A12", $p_sname, $h[2], $h[0], $h[1], $h[3], $h[4]); + $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', ""); - if ($p_to != "./" && $p_to != "/") - { - while($p_to{-1}=="/") $p_to = substr($p_to,0,-1); + for ($i=0,$chks=0; $i<148; $i++) + $chks += ord($data_first[$i]); + + for ($i=156, $chks+=256, $j=0; $i<512; $i++, $j++) + $chks += ord($data_last[$j]); + + $this->_write($data_first); + + $chks = pack("a8",sprintf("%6s ", DecOct($chks))); + $this->_write($chks.$data_last); + + return true; + } - if($headers['filename']{0} == "/") - $headers['filename'] = $p_to.$headers['filename']; - else - $headers['filename'] = $p_to."/".$headers['filename']; + function _append($p_filelist, $p_addir="", $p_remdir="") { + if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6; + + if($this->_nomf == TarLib::ARCHIVE_DYNAMIC) { + $s = strlen($this->_memdat); + $this->_memdat = substr($this->_memdat,0,-512); + } else { + $s = filesize($this->_nomf); + $this->_seek($s-512); } - $ok = $this->_dirApp($headers['typeflag']=="5" ? $headers['filename'] : dirname($headers['filename'])); - if($ok < 0) return $ok; + $ok = $this->_addFileList($p_filelist, $p_addir, $p_remdir); + $this->_writeFooter(); + + return $ok; + } + + function _pathTrans($p_dir) { + if ($p_dir) { + $subf = explode("/", $p_dir); + $r=''; + + for ($i=count($subf)-1; $i>=0; $i--) { + if ($subf[$i] == ".") { + # do nothing + } elseif ($subf[$i] == "..") { + $i--; + } elseif (!$subf[$i] && $i!=count($subf)-1 && $i) { + # do nothing + } else { + $r = $subf[$i].($i!=(count($subf)-1) ? "/".$r : ""); + } + } + } + return $r; + } - if (!$headers['typeflag']) - { - if (!$fp = @fopen($headers['filename'], "wb")) return -6; - $n = floor($headers['size']/512); + function _writeFooter() { + $this->_write(pack("a512", "")); + } - for ($i=0; $i<$n; $i++) fwrite($fp, $this->_read(512),512); - if (($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512); + function _extractList($p_to, $p_files, $p_remdir, $p_mode = 0755) { + if (!$p_to || ($p_to[0]!="/"&&substr($p_to,0,3)!="../"&&substr($p_to,1,3)!=":\\"&&substr($p_to,1,2)!=":/")) /*" // <- PHP Coder bug */ + $p_to = "./$p_to"; + + if ($p_remdir && substr($p_remdir,-1)!='/') $p_remdir .= '/'; + $p_remdirs = strlen($p_remdir); + while($dat = $this->_read(512)) { + $headers = $this->_readHeader($dat); + if(!$headers['filename']) continue; + + if($p_files == -1 || $p_files[0] == -1){ + $extract = true; + } else { + $extract = false; + + foreach($p_files as $f) { + if(substr($f,-1) == "/") { + if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'],0,strlen($f))==$f)) { + $extract = true; + break; + } + } elseif($f == $headers['filename']) { + $extract = true; + break; + } + } + } - fclose($fp); - touch($headers['filename'], $headers['mtime']); - chmod($headers['filename'], $p_mode); + if ($extract) { + $det[] = $headers; + if ($p_remdir && substr($headers['filename'],0,$p_remdirs)==$p_remdir) + $headers['filename'] = substr($headers['filename'],$p_remdirs); + + if($headers['filename'].'/' == $p_remdir && $headers['typeflag']=='5') continue; + + if ($p_to != "./" && $p_to != "/") { + while($p_to{-1}=="/") $p_to = substr($p_to,0,-1); + + if($headers['filename']{0} == "/") + $headers['filename'] = $p_to.$headers['filename']; + else + $headers['filename'] = $p_to."/".$headers['filename']; + } + + $ok = $this->_dirApp($headers['typeflag']=="5" ? $headers['filename'] : dirname($headers['filename'])); + if($ok < 0) return $ok; + + if (!$headers['typeflag']) { + if (!$fp = @fopen($headers['filename'], "wb")) return -6; + $n = floor($headers['size']/512); + + for ($i=0; $i<$n; $i++){ + fwrite($fp, $this->_read(512),512); + } + if (($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512); + + fclose($fp); + touch($headers['filename'], $headers['mtime']); + chmod($headers['filename'], $p_mode); + } else { + $this->_seek(ceil($headers['size']/512)*512,1); + } + }else $this->_seek(ceil($headers['size']/512)*512,1); } - else - { - $this->_seek(ceil($headers['size']/512)*512,1); - } - }else $this->_seek(ceil($headers['size']/512)*512,1); + return $det; } - return $det; - } - -function _dirApp($d) - { -// map to dokuwiki function (its more robust) - return io_mkdir_p($d); -/* - $d = explode('/', $d); - $base = ''; - - foreach($d as $f) - { - if(!is_dir($base.$f)) - { - $ok = @mkdir($base.$f, 0777); - if(!$ok) return false; - } - $base .= "$f/"; + + function _dirApp($d) { + // map to dokuwiki function (its more robust) + return io_mkdir_p($d); } -*/ - } } diff --git a/inc/ZipLib.class.php b/inc/ZipLib.class.php index 836e9d9e6..cf89a40a4 100644 --- a/inc/ZipLib.class.php +++ b/inc/ZipLib.class.php @@ -5,471 +5,500 @@ * @link http://dev.maxg.info * @link http://forum.maxg.info * - * Modified for Dokuwiki - * @author Christopher Smith <chris@jalakai.co.uk> + * Modified for Dokuwiki + * @author Christopher Smith <chris@jalakai.co.uk> */ -class ZipLib -{ - - var $datasec, $ctrl_dir = array(); - var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; - var $old_offset = 0; var $dirs = Array("."); - - function get_List($zip_name) - { - $zip = @fopen($zip_name, 'rb'); - if(!$zip) return(0); - $centd = $this->ReadCentralDir($zip,$zip_name); - - @rewind($zip); - @fseek($zip, $centd['offset']); - - for ($i=0; $i<$centd['entries']; $i++) - { - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i;$info['filename'] = $header['filename']; - $info['stored_filename'] = $header['stored_filename']; - $info['size'] = $header['size'];$info['compressed_size']=$header['compressed_size']; - $info['crc'] = strtoupper(dechex( $header['crc'] )); - $info['mtime'] = $header['mtime']; $info['comment'] = $header['comment']; - $info['folder'] = ($header['external']==0x41FF0010||$header['external']==16)?1:0; - $info['index'] = $header['index'];$info['status'] = $header['status']; - $ret[]=$info; unset($header); - } - return $ret; - } - - function Add($files,$compact) - { - if(!is_array($files[0])) $files=Array($files); - - for($i=0;$files[$i];$i++){ - $fn = $files[$i]; - if(!in_Array(dirname($fn[0]),$this->dirs)) - $this->add_Dir(dirname($fn[0])); - if(basename($fn[0])) - $ret[basename($fn[0])]=$this->add_File($fn[1],$fn[0],$compact); - } - return $ret; - } - - /** - * Zips recursively the $folder directory, from the $basedir directory - */ - function Compress($folder, $basedir=null, $parent=null) - { - $full_path = $basedir."/".$parent.$folder; - $zip_path = $parent.$folder; - if ($zip_path) { - $zip_path .= "/"; - $this->add_dir($zip_path); - } - $dir = new DirectoryIterator($full_path); - foreach($dir as $file) { - if(!$file->isDot()) { - $filename = $file->getFilename(); - if($file->isDir()) { - $this->Compress($filename, $basedir, $zip_path); - } else { - $content = join('', file($full_path.'/'.$filename)); - $this->add_File($content, $zip_path.$filename); +class ZipLib { + + var $datasec; + var $ctrl_dir = array(); + var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; + var $old_offset = 0; + var $dirs = Array("."); + + function get_List($zip_name) { + $zip = @fopen($zip_name, 'rb'); + if(!$zip) return(0); + $centd = $this->ReadCentralDir($zip,$zip_name); + + @rewind($zip); + @fseek($zip, $centd['offset']); + + for ($i=0; $i<$centd['entries']; $i++) { + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + + $info['filename'] = $header['filename']; + $info['stored_filename'] = $header['stored_filename']; + $info['size'] = $header['size']; + $info['compressed_size'] = $header['compressed_size']; + $info['crc'] = strtoupper(dechex( $header['crc'] )); + $info['mtime'] = $header['mtime']; + $info['comment'] = $header['comment']; + $info['folder'] = ($header['external']==0x41FF0010||$header['external']==16)?1:0; + $info['index'] = $header['index']; + $info['status'] = $header['status']; + $ret[]=$info; + + unset($header); + } + return $ret; } - } - } - } - - /** - * Returns the Zip file - */ - function get_file() - { - $data = implode('', $this -> datasec); - $ctrldir = implode('', $this -> ctrl_dir); - - return $data . $ctrldir . $this -> eof_ctrl_dir . - pack('v', sizeof($this -> ctrl_dir)).pack('v', sizeof($this -> ctrl_dir)). - pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; - } - - function add_dir($name) - { - $name = str_replace("\\", "/", $name); - $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; - - $fr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); - $fr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0); - $this -> datasec[] = $fr; - - $new_offset = strlen(implode("", $this->datasec)); - - $cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; - $cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); - $cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 ); - $ext = "\xff\xff\xff\xff"; - $cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name; - - $this -> ctrl_dir[] = $cdrec; - $this -> old_offset = $new_offset; - $this -> dirs[] = $name; - } - - /** - * Add a file named $name from a string $data - */ - function add_File($data, $name, $compact = 1) - { - $name = str_replace('\\', '/', $name); - $dtime = dechex($this->DosTime()); - - $hexdtime = '\x' . $dtime[6] . $dtime[7].'\x'.$dtime[4] . $dtime[5] - . '\x' . $dtime[2] . $dtime[3].'\x'.$dtime[0].$dtime[1]; - eval('$hexdtime = "' . $hexdtime . '";'); - - if($compact) - $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime; - else $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime; - $unc_len = strlen($data); $crc = crc32($data); - - if($compact){ - $zdata = gzcompress($data); $c_len = strlen($zdata); - $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); - }else{ - $zdata = $data; - } - $c_len=strlen($zdata); - $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - $fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata; - - $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - - $this -> datasec[] = $fr; - $new_offset = strlen(implode('', $this->datasec)); - if($compact) - $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; - else $cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; - $cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - $cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 ); - $cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 ); - $cdrec .= pack('V', $this -> old_offset ); - - $this -> old_offset = $new_offset; - $cdrec .= $name; - $this -> ctrl_dir[] = $cdrec; - return true; - } - - function DosTime() { - $timearray = getdate(); - if ($timearray['year'] < 1980) { - $timearray['year'] = 1980; $timearray['mon'] = 1; - $timearray['mday'] = 1; $timearray['hours'] = 0; - $timearray['minutes'] = 0; $timearray['seconds'] = 0; - } - return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | - ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); - } - - /** - * Extract a zip file $zn to the $to directory - */ - function Extract ( $zn, $to, $index = Array(-1) ) - { - if(!@is_dir($to)) $this->_mkdir($to); - $ok = 0; $zip = @fopen($zn,'rb'); - if(!$zip) return(-1); - $cdir = $this->ReadCentralDir($zip,$zn); - $pos_entry = $cdir['offset']; - - if(!is_array($index)){ $index = array($index); } - for($i=0; isset($index[$i]);$i++){ - if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries']) - return(-1); - } - - for ($i=0; $i<$cdir['entries']; $i++) - { - @fseek($zip, $pos_entry); - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i; $pos_entry = ftell($zip); - @rewind($zip); fseek($zip, $header['offset']); - if(in_array("-1",$index)||in_array($i,$index)) - $stat[$header['filename']]=$this->ExtractFile($header, $to, $zip); - - } - fclose($zip); - return $stat; - } - - function ReadFileHeader($zip, $header) - { - $binary_data = fread($zip, 30); - $data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data); - - $header['filename'] = fread($zip, $data['filename_len']); - if ($data['extra_len'] != 0) { - $header['extra'] = fread($zip, $data['extra_len']); - } else { $header['extra'] = ''; } - - $header['compression'] = $data['compression']; - foreach (array('size','compressed_size','crc') as $hd) { // On ODT files, these headers are 0. Keep the previous value. - if ($data[$hd] != 0) $header[$hd] = $data[$hd]; + + function Add($files,$compact) { + if(!is_array($files[0])) $files=Array($files); + + for($i=0;$files[$i];$i++){ + $fn = $files[$i]; + if(!in_Array(dirname($fn[0]),$this->dirs)) + $this->add_Dir(dirname($fn[0])); + if(basename($fn[0])) + $ret[basename($fn[0])]=$this->add_File($fn[1],$fn[0],$compact); + } + return $ret; + } + + /** + * Zips recursively the $folder directory, from the $basedir directory + */ + function Compress($folder, $basedir=null, $parent=null) { + $full_path = $basedir."/".$parent.$folder; + $zip_path = $parent.$folder; + if ($zip_path) { + $zip_path .= "/"; + $this->add_dir($zip_path); + } + $dir = new DirectoryIterator($full_path); + foreach($dir as $file) { + if(!$file->isDot()) { + $filename = $file->getFilename(); + if($file->isDir()) { + $this->Compress($filename, $basedir, $zip_path); + } else { + $content = join('', file($full_path.'/'.$filename)); + $this->add_File($content, $zip_path.$filename); + } + } + } + } + + /** + * Returns the Zip file + */ + function get_file() { + $data = implode('', $this -> datasec); + $ctrldir = implode('', $this -> ctrl_dir); + + return $data . $ctrldir . $this -> eof_ctrl_dir . + pack('v', count($this->ctrl_dir)).pack('v', count($this->ctrl_dir)). + pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; + } + + function add_dir($name) { + $name = str_replace("\\", "/", $name); + $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + + $fr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); + $fr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0); + $this -> datasec[] = $fr; + + $new_offset = strlen(implode("", $this->datasec)); + + $cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + $cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); + $cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 ); + $ext = "\xff\xff\xff\xff"; + $cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name; + + $this -> ctrl_dir[] = $cdrec; + $this -> old_offset = $new_offset; + $this -> dirs[] = $name; + } + + /** + * Add a file named $name from a string $data + */ + function add_File($data, $name, $compact = 1) { + $name = str_replace('\\', '/', $name); + $dtime = dechex($this->DosTime()); + + $hexdtime = pack('H*',$dtime[6].$dtime[7]. + $dtime[4].$dtime[5]. + $dtime[2].$dtime[3]. + $dtime[0].$dtime[1]); + + if($compact){ + $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime; + }else{ + $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime; + } + $unc_len = strlen($data); + $crc = crc32($data); + + if($compact){ + $zdata = gzcompress($data); + $c_len = strlen($zdata); + $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); + }else{ + $zdata = $data; + } + $c_len=strlen($zdata); + $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + $fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata; + + $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + + $this -> datasec[] = $fr; + $new_offset = strlen(implode('', $this->datasec)); + if($compact) { + $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; + } else { + $cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; + } + $cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + $cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 ); + $cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 ); + $cdrec .= pack('V', $this -> old_offset ); + + $this -> old_offset = $new_offset; + $cdrec .= $name; + $this -> ctrl_dir[] = $cdrec; + return true; + } + + function DosTime() { + $timearray = getdate(); + if ($timearray['year'] < 1980) { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } + return (($timearray['year'] - 1980) << 25) | + ($timearray['mon'] << 21) | + ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | + ($timearray['minutes'] << 5) | + ($timearray['seconds'] >> 1); } - $header['flag'] = $data['flag']; - $header['mdate'] = $data['mdate'];$header['mtime'] = $data['mtime']; - - if ($header['mdate'] && $header['mtime']){ - $hour=($header['mtime']&0xF800)>>11;$minute=($header['mtime']&0x07E0)>>5; - $seconde=($header['mtime']&0x001F)*2;$year=(($header['mdate']&0xFE00)>>9)+1980; - $month=($header['mdate']&0x01E0)>>5;$day=$header['mdate']&0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - }else{$header['mtime'] = time();} - - $header['stored_filename'] = $header['filename']; - $header['status'] = "ok"; - return $header; - } - - function ReadCentralFileHeaders($zip){ - $binary_data = fread($zip, 46); - $header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data); - - if ($header['filename_len'] != 0) - $header['filename'] = fread($zip,$header['filename_len']); - else $header['filename'] = ''; - - if ($header['extra_len'] != 0) - $header['extra'] = fread($zip, $header['extra_len']); - else $header['extra'] = ''; - - if ($header['comment_len'] != 0) - $header['comment'] = fread($zip, $header['comment_len']); - else $header['comment'] = ''; - - if ($header['mdate'] && $header['mtime']) - { - $hour = ($header['mtime'] & 0xF800) >> 11; - $minute = ($header['mtime'] & 0x07E0) >> 5; - $seconde = ($header['mtime'] & 0x001F)*2; - $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; - $month = ($header['mdate'] & 0x01E0) >> 5; - $day = $header['mdate'] & 0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - } else { - $header['mtime'] = time(); + + /** + * Extract a zip file $zn to the $to directory + */ + function Extract ( $zn, $to, $index = Array(-1) ) { + if(!@is_dir($to)) $this->_mkdir($to); + $ok = 0; + $zip = @fopen($zn,'rb'); + if(!$zip) return(-1); + $cdir = $this->ReadCentralDir($zip,$zn); + $pos_entry = $cdir['offset']; + + if(!is_array($index)){ + $index = array($index); + } + for($i=0; isset($index[$i]);$i++){ + if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries']) + return(-1); + } + + for ($i=0; $i<$cdir['entries']; $i++) { + @fseek($zip, $pos_entry); + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + $pos_entry = ftell($zip); + @rewind($zip); + fseek($zip, $header['offset']); + if(in_array("-1",$index)||in_array($i,$index)){ + $stat[$header['filename']]=$this->ExtractFile($header, $to, $zip); + } + } + fclose($zip); + return $stat; + } + + function ReadFileHeader($zip, $header) { + $binary_data = fread($zip, 30); + $data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data); + + $header['filename'] = fread($zip, $data['filename_len']); + if ($data['extra_len'] != 0) { + $header['extra'] = fread($zip, $data['extra_len']); + } else { + $header['extra'] = ''; + } + + $header['compression'] = $data['compression']; + foreach (array('size','compressed_size','crc') as $hd) { // On ODT files, these headers are 0. Keep the previous value. + if ($data[$hd] != 0) $header[$hd] = $data[$hd]; + } + $header['flag'] = $data['flag']; + $header['mdate'] = $data['mdate']; + $header['mtime'] = $data['mtime']; + + if ($header['mdate'] && $header['mtime']){ + $hour = ($header['mtime']&0xF800)>>11; + $minute = ($header['mtime']&0x07E0)>>5; + $seconde = ($header['mtime']&0x001F)*2; + $year = (($header['mdate']&0xFE00)>>9)+1980; + $month = ($header['mdate']&0x01E0)>>5; + $day = $header['mdate']&0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = "ok"; + return $header; + } + + function ReadCentralFileHeaders($zip){ + $binary_data = fread($zip, 46); + $header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data); + + if ($header['filename_len'] != 0){ + $header['filename'] = fread($zip,$header['filename_len']); + }else{ + $header['filename'] = ''; + } + + if ($header['extra_len'] != 0){ + $header['extra'] = fread($zip, $header['extra_len']); + }else{ + $header['extra'] = ''; + } + + if ($header['comment_len'] != 0){ + $header['comment'] = fread($zip, $header['comment_len']); + }else{ + $header['comment'] = ''; + } + + if ($header['mdate'] && $header['mtime']) { + $hour = ($header['mtime'] & 0xF800) >> 11; + $minute = ($header['mtime'] & 0x07E0) >> 5; + $seconde = ($header['mtime'] & 0x001F)*2; + $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; + $month = ($header['mdate'] & 0x01E0) >> 5; + $day = $header['mdate'] & 0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = 'ok'; + if (substr($header['filename'], -1) == '/') $header['external'] = 0x41FF0010; + + return $header; + } + + function ReadCentralDir($zip,$zip_name) { + $size = filesize($zip_name); + if ($size < 277){ + $maximum_size = $size; + } else { + $maximum_size=277; + } + + @fseek($zip, $size-$maximum_size); + $pos = ftell($zip); + $bytes = 0x00000000; + + while ($pos < $size) { + $byte = @fread($zip, 1); + $bytes=(($bytes << 8) & 0xFFFFFFFF) | Ord($byte); + if ($bytes == 0x504b0506){ + $pos++; + break; + } + $pos++; + } + + $data=unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', + fread($zip, 18)); + + if ($data['comment_size'] != 0){ + $centd['comment'] = fread($zip, $data['comment_size']); + } else { + $centd['comment'] = ''; + } + $centd['entries'] = $data['entries']; + $centd['disk_entries'] = $data['disk_entries']; + $centd['offset'] = $data['offset']; + $centd['disk_start'] = $data['disk_start']; + $centd['size'] = $data['size']; + $centd['disk'] = $data['disk']; + return $centd; + } + + function ExtractFile($header,$to,$zip) { + $header = $this->readfileheader($zip, $header); + + if(substr($to,-1)!="/") $to.="/"; + if(substr($header['filename'],-1)=="/") { + $this->_mkdir($to.$header['filename']); + return +2; + } + + if (!$this->_mkdir($to.dirname($header['filename']))) return (-1); + + if (!array_key_exists("external", $header) || (!($header['external']==0x41FF0010)&&!($header['external']==16))) { + if ($header['compression']==0) { + $fp = @fopen($to.$header['filename'], 'wb'); + if(!$fp) return(-1); + $size = $header['compressed_size']; + + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + fclose($fp); + touch($to.$header['filename'], $header['mtime']); + + }else{ + if (!is_dir(dirname($to.$header['filename']))) $this->_mkdir(dirname($to.$header['filename'])); + $fp = fopen($to.$header['filename'].'.gz','wb'); + if(!$fp) return(-1); + $binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']), + Chr(0x00), time(), Chr(0x00), Chr(3)); + + fwrite($fp, $binary_data, 10); + $size = $header['compressed_size']; + + while ($size != 0) { + $read_size = ($size < 1024 ? $size : 1024); + $buffer = fread($zip, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + + $binary_data = pack('VV', $header['crc'], $header['size']); + fwrite($fp, $binary_data,8); + fclose($fp); + + $gzp = @gzopen($to.$header['filename'].'.gz','rb'); + if(!$gzp){ + @gzclose($gzp); + @unlink($to.$header['filename']); + die("Archive is compressed whereas ZLIB is not enabled."); + } + $fp = @fopen($to.$header['filename'],'wb'); + if(!$fp) return(-1); + $size = $header['size']; + + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = gzread($gzp, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + fclose($fp); + gzclose($gzp); + + touch($to.$header['filename'], $header['mtime']); + @unlink($to.$header['filename'].'.gz'); + } + } + return true; + } + + /** + * centralize mkdir calls and use dokuwiki io functions + * + * @author Christopher Smith <chris@jalakai.co.uk> + */ + function _mkdir($d) { + return io_mkdir_p($d); + } + + + function ExtractStr($zn, $name) { + $ok = 0; + $zip = @fopen($zn,'rb'); + if(!$zip) return(null); + $cdir = $this->ReadCentralDir($zip,$zn); + $pos_entry = $cdir['offset']; + + for ($i=0; $i<$cdir['entries']; $i++) { + @fseek($zip, $pos_entry); + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + $pos_entry = ftell($zip); + @rewind($zip); + fseek($zip, $header['offset']); + if ($name == $header['stored_filename'] || $name == $header['filename']) { + $str = $this->ExtractStrFile($header, $zip); + fclose($zip); + return $str; + } + + } + fclose($zip); + return null; } - $header['stored_filename'] = $header['filename']; - $header['status'] = 'ok'; - if (substr($header['filename'], -1) == '/') - $header['external'] = 0x41FF0010; - return $header; - } - - function ReadCentralDir($zip,$zip_name) - { - $size = filesize($zip_name); - if ($size < 277) $maximum_size = $size; - else $maximum_size=277; - - @fseek($zip, $size-$maximum_size); - $pos = ftell($zip); $bytes = 0x00000000; - - while ($pos < $size) - { - $byte = @fread($zip, 1); - $bytes=(($bytes << 8) & 0xFFFFFFFF) | Ord($byte); - if ($bytes == 0x504b0506){ $pos++; break; } $pos++; - } - - $data=unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', - fread($zip, 18)); - - if ($data['comment_size'] != 0) - $centd['comment'] = fread($zip, $data['comment_size']); - else $centd['comment'] = ''; $centd['entries'] = $data['entries']; - $centd['disk_entries'] = $data['disk_entries']; - $centd['offset'] = $data['offset'];$centd['disk_start'] = $data['disk_start']; - $centd['size'] = $data['size']; $centd['disk'] = $data['disk']; - return $centd; - } - - function ExtractFile($header,$to,$zip) - { - $header = $this->readfileheader($zip, $header); - - if(substr($to,-1)!="/") $to.="/"; - if(substr($header['filename'],-1)=="/") - { -// @mkdir($to.$header['filename']); --CS - $this->_mkdir($to.$header['filename']); //-- CS - return +2; - } - -// $pth = explode("/",dirname($header['filename'])); -// for($i=0,$tmp="";isset($pth[$i]);$i++){ -// if(!$pth[$i]) continue; -// if(!is_dir($to.$tmp.$pth[$i])) @mkdir($to.$pth[$i],0777); -// $tmp.=$pth[$i]."/"; -// } - if (!$this->_mkdir($to.dirname($header['filename']))) return (-1); //--CS - - if (!array_key_exists("external", $header) || (!($header['external']==0x41FF0010)&&!($header['external']==16))) - { - if ($header['compression']==0) - { - $fp = @fopen($to.$header['filename'], 'wb'); - if(!$fp) return(-1); - $size = $header['compressed_size']; - - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; + + function ExtractStrFile($header,$zip) { + $hdr = $this->readfileheader($zip); + $binary_data = ''; + if (!($header['external']==0x41FF0010) && !($header['external']==16)) { + if ($header['compression']==0) { + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data .= pack('a'.$read_size, $buffer); + $size -= $read_size; + } + return $binary_data; + } else { + $size = $header['compressed_size']; + if ($size == 0) { + return ''; + } + //Just in case + if ($size > ($this->_ret_bytes(ini_get('memory_limit'))/2)) { + die("Compressed file is to huge to be uncompress in memory."); + } + while ($size != 0) + { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data .= pack('a'.$read_size, $buffer); + $size -= $read_size; + } + $str = gzinflate($binary_data, $header['size']); + if ($header['crc'] == crc32($str)) { + return $str; + } else { + die("Crc Error"); + } + } + } + return null; } - fclose($fp); - touch($to.$header['filename'], $header['mtime']); - - }else{ - if (!is_dir(dirname($to.$header['filename']))) $this->_mkdir(dirname($to.$header['filename'])); //-CS - $fp = fopen($to.$header['filename'].'.gz','wb'); - if(!$fp) return(-1); - $binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']), - Chr(0x00), time(), Chr(0x00), Chr(3)); - - fwrite($fp, $binary_data, 10); - $size = $header['compressed_size']; - - while ($size != 0) - { - $read_size = ($size < 1024 ? $size : 1024); - $buffer = fread($zip, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; - } - - $binary_data = pack('VV', $header['crc'], $header['size']); - fwrite($fp, $binary_data,8); fclose($fp); - - $gzp = @gzopen($to.$header['filename'].'.gz','rb'); - if(!$gzp){ - @gzclose($gzp); @unlink($to.$header['filename']); - die("Archive is compressed whereas ZLIB is not enabled."); + + function _ret_bytes($val) { + $val = trim($val); + $last = $val{strlen($val)-1}; + switch($last) { + case 'k': + case 'K': + return (int) $val * 1024; + break; + case 'm': + case 'M': + return (int) $val * 1048576; + break; + default: + return $val; + } } - $fp = @fopen($to.$header['filename'],'wb'); - if(!$fp) return(-1); - $size = $header['size']; - - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = gzread($gzp, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; - } - fclose($fp); gzclose($gzp); - - touch($to.$header['filename'], $header['mtime']); - @unlink($to.$header['filename'].'.gz'); - - }} - return true; - } - - //--CS start - // centralize mkdir calls and use dokuwiki io functions - function _mkdir($d) { - return io_mkdir_p($d); - } - //--CS end - - - function ExtractStr($zn, $name) { - $ok = 0; - $zip = @fopen($zn,'rb'); - if(!$zip) return(NULL); - $cdir = $this->ReadCentralDir($zip,$zn); - $pos_entry = $cdir['offset']; - - for ($i=0; $i<$cdir['entries']; $i++) - { - @fseek($zip, $pos_entry); - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i; - $pos_entry = ftell($zip); - @rewind($zip); - fseek($zip, $header['offset']); - if ($name == $header['stored_filename'] || $name == $header['filename']) { - $str = $this->ExtractStrFile($header, $zip); - fclose($zip); - return $str; - } - - } - fclose($zip); - return null; - } - - function ExtractStrFile($header,$zip) { - $hdr = $this->readfileheader($zip); - $binary_data = ''; - if (!($header['external']==0x41FF0010) && !($header['external']==16)) - { - if ($header['compression']==0) - { - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data .= pack('a'.$read_size, $buffer); - $size -= $read_size; - } - return $binary_data; - } else { - $size = $header['compressed_size']; - if ($size == 0) { - return ''; - } - //Just in case - if ($size > ($this->_ret_bytes(ini_get('memory_limit'))/2)) { - die("Compressed file is to huge to be uncompress in memory."); - } - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data .= pack('a'.$read_size, $buffer); - $size -= $read_size; - } - $str = gzinflate($binary_data, $header['size']); - if ($header['crc'] == crc32($str)) { - return $str; - } else { - die("Crc Error"); - } - } - } - return NULL; - } - - function _ret_bytes($val) { - $val = trim($val); - $last = $val{strlen($val)-1}; - switch($last) { - case 'k': - case 'K': - return (int) $val * 1024; - break; - case 'm': - case 'M': - return (int) $val * 1048576; - break; - default: - return $val; - } - } } diff --git a/inc/actions.php b/inc/actions.php index 27292e6f6..3e0cb1207 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/template.php'); - /** * Call the needed action handlers @@ -18,149 +16,150 @@ require_once(DOKU_INC.'inc/template.php'); * @triggers ACTION_HEADERS_SEND */ function act_dispatch(){ - global $INFO; - global $ACT; - global $ID; - global $QUERY; - global $lang; - global $conf; - global $license; - - $preact = $ACT; - - // give plugins an opportunity to process the action - $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); - if ($evt->advise_before()) { - - //sanitize $ACT - $ACT = act_clean($ACT); - - //check if searchword was given - else just show - $s = cleanID($QUERY); - if($ACT == 'search' && empty($s)){ - $ACT = 'show'; - } + global $INFO; + global $ACT; + global $ID; + global $QUERY; + global $lang; + global $conf; + global $license; - //login stuff - if(in_array($ACT,array('login','logout'))){ - $ACT = act_auth($ACT); - } + $preact = $ACT; - //check if user is asking to (un)subscribe a page - if($ACT == 'subscribe' || $ACT == 'unsubscribe') - $ACT = act_subscription($ACT); + // give plugins an opportunity to process the action + $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); + if ($evt->advise_before()) { - //check if user is asking to (un)subscribe a namespace - if($ACT == 'subscribens' || $ACT == 'unsubscribens') - $ACT = act_subscriptionns($ACT); + //sanitize $ACT + $ACT = act_clean($ACT); - //check permissions - $ACT = act_permcheck($ACT); + //check if searchword was given - else just show + $s = cleanID($QUERY); + if($ACT == 'search' && empty($s)){ + $ACT = 'show'; + } - //register - $nil = array(); - if($ACT == 'register' && $_POST['save'] && register()){ - $ACT = 'login'; - } + //login stuff + if(in_array($ACT,array('login','logout'))){ + $ACT = act_auth($ACT); + } - if ($ACT == 'resendpwd' && act_resendpwd()) { - $ACT = 'login'; - } + //check if user is asking to (un)subscribe a page + if($ACT == 'subscribe') { + try { + $ACT = act_subscription($ACT); + } catch (Exception $e) { + msg($e->getMessage(), -1); + } + } - //update user profile - if ($ACT == 'profile') { - if(!$_SERVER['REMOTE_USER']) { - $ACT = 'login'; - } else { - if(updateprofile()) { - msg($lang['profchanged'],1); - $ACT = 'show'; + //check permissions + $ACT = act_permcheck($ACT); + + //register + $nil = array(); + if($ACT == 'register' && $_POST['save'] && register()){ + $ACT = 'login'; } - } - } - //revert - if($ACT == 'revert'){ - if(checkSecurityToken()){ - $ACT = act_revert($ACT); - }else{ - $ACT = 'show'; - } - } + if ($ACT == 'resendpwd' && act_resendpwd()) { + $ACT = 'login'; + } - //save - if($ACT == 'save'){ - if(checkSecurityToken()){ - $ACT = act_save($ACT); - }else{ - $ACT = 'show'; - } - } + //update user profile + if ($ACT == 'profile') { + if(!$_SERVER['REMOTE_USER']) { + $ACT = 'login'; + } else { + if(updateprofile()) { + msg($lang['profchanged'],1); + $ACT = 'show'; + } + } + } - //cancel conflicting edit - if($ACT == 'cancel') - $ACT = 'show'; + //revert + if($ACT == 'revert'){ + if(checkSecurityToken()){ + $ACT = act_revert($ACT); + }else{ + $ACT = 'show'; + } + } - //draft deletion - if($ACT == 'draftdel') - $ACT = act_draftdel($ACT); + //save + if($ACT == 'save'){ + if(checkSecurityToken()){ + $ACT = act_save($ACT); + }else{ + $ACT = 'show'; + } + } - //draft saving on preview - if($ACT == 'preview') - $ACT = act_draftsave($ACT); + //cancel conflicting edit + if($ACT == 'cancel') + $ACT = 'show'; - //edit - if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ - $ACT = act_edit($ACT); - }else{ - unlock($ID); //try to unlock - } + //draft deletion + if($ACT == 'draftdel') + $ACT = act_draftdel($ACT); - //handle export - if(substr($ACT,0,7) == 'export_') - $ACT = act_export($ACT); + //draft saving on preview + if($ACT == 'preview') + $ACT = act_draftsave($ACT); - //display some infos - if($ACT == 'check'){ - check(); - $ACT = 'show'; - } + //edit + if(in_array($ACT, array('edit', 'preview', 'recover'))) { + $ACT = act_edit($ACT); + }else{ + unlock($ID); //try to unlock + } - //handle admin tasks - if($ACT == 'admin'){ - // retrieve admin plugin name from $_REQUEST['page'] - if (!empty($_REQUEST['page'])) { - $pluginlist = plugin_list('admin'); - if (in_array($_REQUEST['page'], $pluginlist)) { - // attempt to load the plugin - if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== NULL) - $plugin->handle(); - } - } - } + //handle export + if(substr($ACT,0,7) == 'export_') + $ACT = act_export($ACT); + + //display some infos + if($ACT == 'check'){ + check(); + $ACT = 'show'; + } + + //handle admin tasks + if($ACT == 'admin'){ + // retrieve admin plugin name from $_REQUEST['page'] + if (!empty($_REQUEST['page'])) { + $pluginlist = plugin_list('admin'); + if (in_array($_REQUEST['page'], $pluginlist)) { + // attempt to load the plugin + if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== null) + $plugin->handle(); + } + } + } - // check permissions again - the action may have changed - $ACT = act_permcheck($ACT); - } // end event ACTION_ACT_PREPROCESS default action - $evt->advise_after(); - unset($evt); + // check permissions again - the action may have changed + $ACT = act_permcheck($ACT); + } // end event ACTION_ACT_PREPROCESS default action + $evt->advise_after(); + unset($evt); - // when action 'show', the intial not 'show' and POST, do a redirect - if($ACT == 'show' && $preact != 'show' && strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ - act_redirect($ID,$preact); - } + // when action 'show', the intial not 'show' and POST, do a redirect + if($ACT == 'show' && $preact != 'show' && strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ + act_redirect($ID,$preact); + } - //call template FIXME: all needed vars available? - $headers[] = 'Content-Type: text/html; charset=utf-8'; - trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); + //call template FIXME: all needed vars available? + $headers[] = 'Content-Type: text/html; charset=utf-8'; + trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); - include(template('main.php')); - // output for the commands is now handled in inc/templates.php - // in function tpl_content() + include(template('main.php')); + // output for the commands is now handled in inc/templates.php + // in function tpl_content() } function act_sendheaders($headers) { - foreach ($headers as $hdr) header($hdr); + foreach ($headers as $hdr) header($hdr); } /** @@ -171,44 +170,46 @@ function act_sendheaders($headers) { * @author Andreas Gohr <andi@splitbrain.org> */ function act_clean($act){ - global $lang; - global $conf; + global $lang; + global $conf; - // check if the action was given as array key - if(is_array($act)){ - list($act) = array_keys($act); - } + // check if the action was given as array key + if(is_array($act)){ + list($act) = array_keys($act); + } - //remove all bad chars - $act = strtolower($act); - $act = preg_replace('/[^1-9a-z_]+/','',$act); + //remove all bad chars + $act = strtolower($act); + $act = preg_replace('/[^1-9a-z_]+/','',$act); - if($act == 'export_html') $act = 'export_xhtml'; - if($act == 'export_htmlbody') $act = 'export_xhtmlbody'; + if($act == 'export_html') $act = 'export_xhtml'; + if($act == 'export_htmlbody') $act = 'export_xhtmlbody'; - // check if action is disabled - if(!actionOK($act)){ - msg('Command disabled: '.htmlspecialchars($act),-1); - return 'show'; - } + if($act === '') $act = 'show'; - //disable all acl related commands if ACL is disabled - if(!$conf['useacl'] && in_array($act,array('login','logout','register','admin', - 'subscribe','unsubscribe','profile','revert', - 'resendpwd','subscribens','unsubscribens',))){ - msg('Command unavailable: '.htmlspecialchars($act),-1); - return 'show'; - } - - if(!in_array($act,array('login','logout','register','save','cancel','edit','draft', - 'preview','search','show','check','index','revisions', - 'diff','recent','backlink','admin','subscribe','revert', - 'unsubscribe','profile','resendpwd','recover','wordblock', - 'draftdel','subscribens','unsubscribens',)) && substr($act,0,7) != 'export_' ) { - msg('Command unknown: '.htmlspecialchars($act),-1); - return 'show'; - } - return $act; + // check if action is disabled + if(!actionOK($act)){ + msg('Command disabled: '.htmlspecialchars($act),-1); + return 'show'; + } + + //disable all acl related commands if ACL is disabled + if(!$conf['useacl'] && in_array($act,array('login','logout','register','admin', + 'subscribe','unsubscribe','profile','revert', + 'resendpwd','subscribens','unsubscribens',))){ + msg('Command unavailable: '.htmlspecialchars($act),-1); + return 'show'; + } + + if(!in_array($act,array('login','logout','register','save','cancel','edit','draft', + 'preview','search','show','check','index','revisions', + 'diff','recent','backlink','admin','subscribe','revert', + 'unsubscribe','profile','resendpwd','recover', + 'draftdel','subscribens','unsubscribens',)) && substr($act,0,7) != 'export_' ) { + msg('Command unknown: '.htmlspecialchars($act),-1); + return 'show'; + } + return $act; } /** @@ -217,44 +218,44 @@ function act_clean($act){ * @author Andreas Gohr <andi@splitbrain.org> */ function act_permcheck($act){ - global $INFO; - global $conf; - - if(in_array($act,array('save','preview','edit','recover'))){ - if($INFO['exists']){ - if($act == 'edit'){ - //the edit function will check again and do a source show - //when no AUTH_EDIT available - $permneed = AUTH_READ; - }else{ - $permneed = AUTH_EDIT; - } - }else{ - $permneed = AUTH_CREATE; - } - }elseif(in_array($act,array('login','search','recent','profile'))){ - $permneed = AUTH_NONE; - }elseif($act == 'revert'){ - $permneed = AUTH_ADMIN; - if($INFO['ismanager']) $permneed = AUTH_EDIT; - }elseif($act == 'register'){ - $permneed = AUTH_NONE; - }elseif($act == 'resendpwd'){ - $permneed = AUTH_NONE; - }elseif($act == 'admin'){ - if($INFO['ismanager']){ - // if the manager has the needed permissions for a certain admin - // action is checked later - $permneed = AUTH_READ; + global $INFO; + global $conf; + + if(in_array($act,array('save','preview','edit','recover'))){ + if($INFO['exists']){ + if($act == 'edit'){ + //the edit function will check again and do a source show + //when no AUTH_EDIT available + $permneed = AUTH_READ; + }else{ + $permneed = AUTH_EDIT; + } + }else{ + $permneed = AUTH_CREATE; + } + }elseif(in_array($act,array('login','search','recent','profile','index'))){ + $permneed = AUTH_NONE; + }elseif($act == 'revert'){ + $permneed = AUTH_ADMIN; + if($INFO['ismanager']) $permneed = AUTH_EDIT; + }elseif($act == 'register'){ + $permneed = AUTH_NONE; + }elseif($act == 'resendpwd'){ + $permneed = AUTH_NONE; + }elseif($act == 'admin'){ + if($INFO['ismanager']){ + // if the manager has the needed permissions for a certain admin + // action is checked later + $permneed = AUTH_READ; + }else{ + $permneed = AUTH_ADMIN; + } }else{ - $permneed = AUTH_ADMIN; + $permneed = AUTH_READ; } - }else{ - $permneed = AUTH_READ; - } - if($INFO['perm'] >= $permneed) return $act; + if($INFO['perm'] >= $permneed) return $act; - return 'denied'; + return 'denied'; } /** @@ -263,10 +264,10 @@ function act_permcheck($act){ * Deletes the draft for the current page and user */ function act_draftdel($act){ - global $INFO; - @unlink($INFO['draft']); - $INFO['draft'] = null; - return 'show'; + global $INFO; + @unlink($INFO['draft']); + $INFO['draft'] = null; + return 'show'; } /** @@ -275,23 +276,23 @@ function act_draftdel($act){ * @todo this currently duplicates code from ajax.php :-/ */ function act_draftsave($act){ - global $INFO; - global $ID; - global $conf; - if($conf['usedraft'] && $_POST['wikitext']){ - $draft = array('id' => $ID, - 'prefix' => $_POST['prefix'], - 'text' => $_POST['wikitext'], - 'suffix' => $_POST['suffix'], - 'date' => $_POST['date'], - 'client' => $INFO['client'], - ); - $cname = getCacheName($draft['client'].$ID,'.draft'); - if(io_saveFile($cname,serialize($draft))){ - $INFO['draft'] = $cname; + global $INFO; + global $ID; + global $conf; + if($conf['usedraft'] && $_POST['wikitext']){ + $draft = array('id' => $ID, + 'prefix' => $_POST['prefix'], + 'text' => $_POST['wikitext'], + 'suffix' => $_POST['suffix'], + 'date' => $_POST['date'], + 'client' => $INFO['client'], + ); + $cname = getCacheName($draft['client'].$ID,'.draft'); + if(io_saveFile($cname,serialize($draft))){ + $INFO['draft'] = $cname; + } } - } - return $act; + return $act; } /** @@ -304,31 +305,35 @@ function act_draftsave($act){ * @author Andreas Gohr <andi@splitbrain.org> */ function act_save($act){ - global $ID; - global $DATE; - global $PRE; - global $TEXT; - global $SUF; - global $SUM; - - //spam check - if(checkwordblock()) - return 'wordblock'; - //conflict check //FIXME use INFO - if($DATE != 0 && @filemtime(wikiFN($ID)) > $DATE ) - return 'conflict'; - - //save it - saveWikiText($ID,con($PRE,$TEXT,$SUF,1),$SUM,$_REQUEST['minor']); //use pretty mode for con - //unlock it - unlock($ID); - - //delete draft - act_draftdel($act); - session_write_close(); - - // when done, show page - return 'show'; + global $ID; + global $DATE; + global $PRE; + global $TEXT; + global $SUF; + global $SUM; + global $lang; + global $INFO; + + //spam check + if(checkwordblock()) { + msg($lang['wordblock'], -1); + return 'edit'; + } + //conflict check + if($DATE != 0 && $INFO['meta']['date']['modified'] > $DATE ) + return 'conflict'; + + //save it + saveWikiText($ID,con($PRE,$TEXT,$SUF,1),$SUM,$_REQUEST['minor']); //use pretty mode for con + //unlock it + unlock($ID); + + //delete draft + act_draftdel($act); + session_write_close(); + + // when done, show page + return 'show'; } /** @@ -340,6 +345,11 @@ function act_revert($act){ global $ID; global $REV; global $lang; + // FIXME $INFO['writable'] currently refers to the attic version + // global $INFO; + // if (!$INFO['writable']) { + // return 'show'; + // } // when no revision is given, delete current one // FIXME this feature is not exposed in the GUI currently @@ -352,8 +362,11 @@ function act_revert($act){ } // spam check - if(checkwordblock($Text)) - return 'wordblock'; + + if (checkwordblock($text)) { + msg($lang['wordblock'], -1); + return 'edit'; + } saveWikiText($ID,$text,$sum,false); msg($sum,1); @@ -374,38 +387,28 @@ function act_revert($act){ * Tries to add the section id as hash mark after section editing */ function act_redirect($id,$preact){ - global $PRE; - global $TEXT; - global $MSG; - - //are there any undisplayed messages? keep them in session for display - //on the next page - if(isset($MSG) && count($MSG)){ - //reopen session, store data and close session again - @session_start(); - $_SESSION[DOKU_COOKIE]['msg'] = $MSG; - session_write_close(); - } - - $opts = array( - 'id' => $id, - 'preact' => $preact - ); - //get section name when coming from section edit - if($PRE && preg_match('/^\s*==+([^=\n]+)/',$TEXT,$match)){ - $check = false; //Byref - $opts['fragment'] = sectionID($match[0], $check); - } - - trigger_event('ACTION_SHOW_REDIRECT',$opts,'act_redirect_execute'); + global $PRE; + global $TEXT; + + $opts = array( + 'id' => $id, + 'preact' => $preact + ); + //get section name when coming from section edit + if($PRE && preg_match('/^\s*==+([^=\n]+)/',$TEXT,$match)){ + $check = false; //Byref + $opts['fragment'] = sectionID($match[0], $check); + } + + trigger_event('ACTION_SHOW_REDIRECT',$opts,'act_redirect_execute'); } function act_redirect_execute($opts){ - $go = wl($opts['id'],'',true); - if(isset($opts['fragment'])) $go .= '#'.$opts['fragment']; + $go = wl($opts['id'],'',true); + if(isset($opts['fragment'])) $go .= '#'.$opts['fragment']; - //show it - send_redirect($go); + //show it + send_redirect($go); } /** @@ -414,47 +417,81 @@ function act_redirect_execute($opts){ * @author Andreas Gohr <andi@splitbrain.org> */ function act_auth($act){ - global $ID; - global $INFO; + global $ID; + global $INFO; - //already logged in? - if(isset($_SERVER['REMOTE_USER']) && $act=='login'){ - return 'show'; - } + //already logged in? + if(isset($_SERVER['REMOTE_USER']) && $act=='login'){ + return 'show'; + } - //handle logout - if($act=='logout'){ - $lockedby = checklock($ID); //page still locked? - if($lockedby == $_SERVER['REMOTE_USER']) - unlock($ID); //try to unlock + //handle logout + if($act=='logout'){ + $lockedby = checklock($ID); //page still locked? + if($lockedby == $_SERVER['REMOTE_USER']) + unlock($ID); //try to unlock - // do the logout stuff - auth_logoff(); + // do the logout stuff + auth_logoff(); - // rebuild info array - $INFO = pageinfo(); + // rebuild info array + $INFO = pageinfo(); - act_redirect($ID,'login'); - } + act_redirect($ID,'login'); + } - return $act; + return $act; } /** - * Handle 'edit', 'preview' + * Handle 'edit', 'preview', 'recover' * * @author Andreas Gohr <andi@splitbrain.org> */ function act_edit($act){ - global $ID; - global $INFO; + global $ID; + global $INFO; - //check if locked by anyone - if not lock for my self - $lockedby = checklock($ID); - if($lockedby) return 'locked'; + global $TEXT; + global $RANGE; + global $PRE; + global $SUF; + global $REV; + global $SUM; + global $lang; + global $DATE; + + if (!isset($TEXT)) { + if ($INFO['exists']) { + if ($RANGE) { + list($PRE,$TEXT,$SUF) = rawWikiSlices($RANGE,$ID,$REV); + } else { + $TEXT = rawWiki($ID,$REV); + } + } else { + $TEXT = pageTemplate($ID); + } + } - lock($ID); - return $act; + //set summary default + if(!$SUM){ + if($REV){ + $SUM = $lang['restored']; + }elseif(!$INFO['exists']){ + $SUM = $lang['created']; + } + } + + // Use the date of the newest revision, not of the revision we edit + // This is used for conflict detection + if(!$DATE) $DATE = $INFO['meta']['date']['modified']; + + //check if locked by anyone - if not lock for my self + $lockedby = checklock($ID); + if($lockedby) return 'locked'; + + lock($ID); + return $act; } /** @@ -472,159 +509,182 @@ function act_edit($act){ * @author Michael Klier <chi@chimeric.de> */ function act_export($act){ - global $ID; - global $REV; - global $conf; - global $lang; - - $pre = ''; - $post = ''; - $output = ''; - $headers = array(); - - // search engines: never cache exported docs! (Google only currently) - $headers['X-Robots-Tag'] = 'noindex'; - - $mode = substr($act,7); - switch($mode) { - case 'raw': - $headers['Content-Type'] = 'text/plain; charset=utf-8'; - $headers['Content-Disposition'] = 'attachment; filename='.noNS($ID).'.txt'; - $output = rawWiki($ID,$REV); - break; - case 'xhtml': - $pre .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' . DOKU_LF; - $pre .= ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . DOKU_LF; - $pre .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$conf['lang'].'"' . DOKU_LF; - $pre .= ' lang="'.$conf['lang'].'" dir="'.$lang['direction'].'">' . DOKU_LF; - $pre .= '<head>' . DOKU_LF; - $pre .= ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . DOKU_LF; - $pre .= ' <title>'.$ID.'</title>' . DOKU_LF; - - // get metaheaders - ob_start(); - tpl_metaheaders(); - $pre .= ob_get_clean(); - - $pre .= '</head>' . DOKU_LF; - $pre .= '<body>' . DOKU_LF; - $pre .= '<div class="dokuwiki export">' . DOKU_LF; - - // get toc - $pre .= tpl_toc(true); - - $headers['Content-Type'] = 'text/html; charset=utf-8'; - $output = p_wiki_xhtml($ID,$REV,false); - - $post .= '</div>' . DOKU_LF; - $post .= '</body>' . DOKU_LF; - $post .= '</html>' . DOKU_LF; - break; - case 'xhtmlbody': - $headers['Content-Type'] = 'text/html; charset=utf-8'; - $output = p_wiki_xhtml($ID,$REV,false); - break; - default: - $output = p_cached_output(wikiFN($ID,$REV), $mode); - $headers = p_get_metadata($ID,"format $mode"); - break; - } - - // prepare event data - $data = array(); - $data['id'] = $ID; - $data['mode'] = $mode; - $data['headers'] = $headers; - $data['output'] =& $output; - - trigger_event('ACTION_EXPORT_POSTPROCESS', $data); - - if(!empty($data['output'])){ - if(is_array($data['headers'])) foreach($data['headers'] as $key => $val){ - header("$key: $val"); + global $ID; + global $REV; + global $conf; + global $lang; + + $pre = ''; + $post = ''; + $output = ''; + $headers = array(); + + // search engines: never cache exported docs! (Google only currently) + $headers['X-Robots-Tag'] = 'noindex'; + + $mode = substr($act,7); + switch($mode) { + case 'raw': + $headers['Content-Type'] = 'text/plain; charset=utf-8'; + $headers['Content-Disposition'] = 'attachment; filename='.noNS($ID).'.txt'; + $output = rawWiki($ID,$REV); + break; + case 'xhtml': + $pre .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' . DOKU_LF; + $pre .= ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . DOKU_LF; + $pre .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$conf['lang'].'"' . DOKU_LF; + $pre .= ' lang="'.$conf['lang'].'" dir="'.$lang['direction'].'">' . DOKU_LF; + $pre .= '<head>' . DOKU_LF; + $pre .= ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . DOKU_LF; + $pre .= ' <title>'.$ID.'</title>' . DOKU_LF; + + // get metaheaders + ob_start(); + tpl_metaheaders(); + $pre .= ob_get_clean(); + + $pre .= '</head>' . DOKU_LF; + $pre .= '<body>' . DOKU_LF; + $pre .= '<div class="dokuwiki export">' . DOKU_LF; + + // get toc + $pre .= tpl_toc(true); + + $headers['Content-Type'] = 'text/html; charset=utf-8'; + $output = p_wiki_xhtml($ID,$REV,false); + + $post .= '</div>' . DOKU_LF; + $post .= '</body>' . DOKU_LF; + $post .= '</html>' . DOKU_LF; + break; + case 'xhtmlbody': + $headers['Content-Type'] = 'text/html; charset=utf-8'; + $output = p_wiki_xhtml($ID,$REV,false); + break; + default: + $output = p_cached_output(wikiFN($ID,$REV), $mode); + $headers = p_get_metadata($ID,"format $mode"); + break; + } + + // prepare event data + $data = array(); + $data['id'] = $ID; + $data['mode'] = $mode; + $data['headers'] = $headers; + $data['output'] =& $output; + + trigger_event('ACTION_EXPORT_POSTPROCESS', $data); + + if(!empty($data['output'])){ + if(is_array($data['headers'])) foreach($data['headers'] as $key => $val){ + header("$key: $val"); + } + print $pre.$data['output'].$post; + exit; } - print $pre.$data['output'].$post; - exit; - } - return 'show'; + return 'show'; } /** - * Handle page 'subscribe', 'unsubscribe' + * Handle page 'subscribe' + * + * Throws exception on error. * - * @author Steven Danz <steven-danz@kc.rr.com> - * @todo localize + * @author Adrian Lang <lang@cosmocode.de> */ function act_subscription($act){ - global $ID; - global $INFO; - global $lang; - - $file=metaFN($ID,'.mlist'); - if ($act=='subscribe' && !$INFO['subscribed']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribed'] = true; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); - } - } else { - msg($lang['subscribe_noaddress']); + global $lang; + global $INFO; + global $ID; + + // subcriptions work for logged in users only + if(!$_SERVER['REMOTE_USER']) return 'show'; + + // get and preprocess data. + $params = array(); + foreach(array('target', 'style', 'action') as $param) { + if (isset($_REQUEST["sub_$param"])) { + $params[$param] = $_REQUEST["sub_$param"]; + } } - } elseif ($act=='unsubscribe' && $INFO['subscribed']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribed'] = false; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); + + // any action given? if not just return and show the subscription page + if(!$params['action'] || !checkSecurityToken()) return $act; + + // Handle POST data, may throw exception. + trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, 'subscription_handle_post'); + + $target = $params['target']; + $style = $params['style']; + $data = $params['data']; + $action = $params['action']; + + // Perform action. + if (!subscription_set($_SERVER['REMOTE_USER'], $target, $style, $data)) { + throw new Exception(sprintf($lang["subscr_{$action}_error"], + hsc($INFO['userinfo']['name']), + prettyprint_id($target))); } - } + msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), + prettyprint_id($target)), 1); + act_redirect($ID, $act); - return 'show'; + // Assure that we have valid data if act_redirect somehow fails. + $INFO['subscribed'] = get_info_subscribed(); + return 'show'; } /** - * Handle namespace 'subscribe', 'unsubscribe' + * Validate POST data + * + * Validates POST data for a subscribe or unsubscribe request. This is the + * default action for the event ACTION_HANDLE_SUBSCRIBE. * + * @author Adrian Lang <lang@cosmocode.de> */ -function act_subscriptionns($act){ - global $ID; - global $INFO; - global $lang; - - if(!getNS($ID)) { - $file = metaFN(getNS($ID),'.mlist'); - $ns = "root"; - } else { - $file = metaFN(getNS($ID),'/.mlist'); - $ns = getNS($ID); - } - - // reuse strings used to display the status of the subscribe action - $act_msg = rtrim($act, 'ns'); - - if ($act=='subscribens' && !$INFO['subscribedns']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribedns'] = true; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); - } - } else { - msg($lang['subscribe_noaddress']); +function subscription_handle_post(&$params) { + global $INFO; + global $lang; + + // Get and validate parameters. + if (!isset($params['target'])) { + throw new Exception('no subscription target given'); + } + $target = $params['target']; + $valid_styles = array('every', 'digest'); + if (substr($target, -1, 1) === ':') { + // Allow “list” subscribe style since the target is a namespace. + $valid_styles[] = 'list'; } - } elseif ($act=='unsubscribens' && $INFO['subscribedns']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribedns'] = false; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + $style = valid_input_set('style', $valid_styles, $params, + 'invalid subscription style given'); + $action = valid_input_set('action', array('subscribe', 'unsubscribe'), + $params, 'invalid subscription action given'); + + // Check other conditions. + if ($action === 'subscribe') { + if ($INFO['userinfo']['mail'] === '') { + throw new Exception($lang['subscr_subscribe_noaddress']); + } + } elseif ($action === 'unsubscribe') { + $is = false; + foreach($INFO['subscribed'] as $subscr) { + if ($subscr['target'] === $target) { + $is = true; + } + } + if ($is === false) { + throw new Exception(sprintf($lang['subscr_not_subscribed'], + $_SERVER['REMOTE_USER'], + prettyprint_id($target))); + } + // subscription_set deletes a subscription if style = null. + $style = null; } - } - return 'show'; + $data = in_array($style, array('list', 'digest')) ? time() : null; + $params = compact('target', 'style', 'data', 'action'); } //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/auth.php b/inc/auth.php index 50c5f17ed..e1f689f96 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -10,8 +10,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/io.php'); // some ACL level defines define('AUTH_NONE',0); @@ -22,15 +20,27 @@ define('AUTH_UPLOAD',8); define('AUTH_DELETE',16); define('AUTH_ADMIN',255); -global $conf; - -if($conf['useacl']){ - require_once(DOKU_INC.'inc/blowfish.php'); - require_once(DOKU_INC.'inc/mail.php'); - +/** + * Initialize the auth system. + * + * This function is automatically called at the end of init.php + * + * This used to be the main() of the auth.php + * + * @todo backend loading maybe should be handled by the class autoloader + * @todo maybe split into multiple functions at the XXX marked positions + */ +function auth_setup(){ + global $conf; global $auth; + global $AUTH_ACL; + global $lang; + global $config_cascade; + $AUTH_ACL = array(); - // load the the backend auth functions and instantiate the auth object + if(!$conf['useacl']) return false; + + // load the the backend auth functions and instantiate the auth object XXX if (@file_exists(DOKU_INC.'inc/auth/'.$conf['authtype'].'.class.php')) { require_once(DOKU_INC.'inc/auth/basic.class.php'); require_once(DOKU_INC.'inc/auth/'.$conf['authtype'].'.class.php'); @@ -50,70 +60,65 @@ if($conf['useacl']){ } else { nice_die($lang['authmodfailed']); } -} -// do the login either by cookie or provided credentials -if($conf['useacl']){ - if($auth){ - if (!isset($_REQUEST['u'])) $_REQUEST['u'] = ''; - if (!isset($_REQUEST['p'])) $_REQUEST['p'] = ''; - if (!isset($_REQUEST['r'])) $_REQUEST['r'] = ''; - $_REQUEST['http_credentials'] = false; - if (!$conf['rememberme']) $_REQUEST['r'] = false; - - // streamline HTTP auth credentials (IIS/rewrite -> mod_php) - if(isset($_SERVER['HTTP_AUTHORIZATION'])){ - list($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']) = - explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); - } + if(!$auth) return; - // if no credentials were given try to use HTTP auth (for SSO) - if(empty($_REQUEST['u']) && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])){ - $_REQUEST['u'] = $_SERVER['PHP_AUTH_USER']; - $_REQUEST['p'] = $_SERVER['PHP_AUTH_PW']; - $_REQUEST['http_credentials'] = true; - } + // do the login either by cookie or provided credentials XXX + if (!isset($_REQUEST['u'])) $_REQUEST['u'] = ''; + if (!isset($_REQUEST['p'])) $_REQUEST['p'] = ''; + if (!isset($_REQUEST['r'])) $_REQUEST['r'] = ''; + $_REQUEST['http_credentials'] = false; + if (!$conf['rememberme']) $_REQUEST['r'] = false; - // apply cleaning - $_REQUEST['u'] = $auth->cleanUser($_REQUEST['u']); + // streamline HTTP auth credentials (IIS/rewrite -> mod_php) + if(isset($_SERVER['HTTP_AUTHORIZATION'])){ + list($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']) = + explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); + } - if(isset($_REQUEST['authtok'])){ - // when an authentication token is given, trust the session - auth_validateToken($_REQUEST['authtok']); - }elseif(!is_null($auth) && $auth->canDo('external')){ - // external trust mechanism in place - $auth->trustExternal($_REQUEST['u'],$_REQUEST['p'],$_REQUEST['r']); - }else{ - $evdata = array( - 'user' => $_REQUEST['u'], - 'password' => $_REQUEST['p'], - 'sticky' => $_REQUEST['r'], - 'silent' => $_REQUEST['http_credentials'], - ); - $evt = new Doku_Event('AUTH_LOGIN_CHECK',$evdata); - if($evt->advise_before()){ - auth_login($evdata['user'], - $evdata['password'], - $evdata['sticky'], - $evdata['silent']); - } - } + // if no credentials were given try to use HTTP auth (for SSO) + if(empty($_REQUEST['u']) && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])){ + $_REQUEST['u'] = $_SERVER['PHP_AUTH_USER']; + $_REQUEST['p'] = $_SERVER['PHP_AUTH_PW']; + $_REQUEST['http_credentials'] = true; } - //load ACL into a global array - global $AUTH_ACL; - if(is_readable(DOKU_CONF.'acl.auth.php')){ - $AUTH_ACL = file(DOKU_CONF.'acl.auth.php'); + // apply cleaning + $_REQUEST['u'] = $auth->cleanUser($_REQUEST['u']); + + if(isset($_REQUEST['authtok'])){ + // when an authentication token is given, trust the session + auth_validateToken($_REQUEST['authtok']); + }elseif(!is_null($auth) && $auth->canDo('external')){ + // external trust mechanism in place + $auth->trustExternal($_REQUEST['u'],$_REQUEST['p'],$_REQUEST['r']); + }else{ + $evdata = array( + 'user' => $_REQUEST['u'], + 'password' => $_REQUEST['p'], + 'sticky' => $_REQUEST['r'], + 'silent' => $_REQUEST['http_credentials'], + ); + trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper'); + } + + //load ACL into a global array XXX + if(is_readable($config_cascade['acl']['default'])){ + $AUTH_ACL = file($config_cascade['acl']['default']); //support user wildcard if(isset($_SERVER['REMOTE_USER'])){ $AUTH_ACL = str_replace('%USER%',$_SERVER['REMOTE_USER'],$AUTH_ACL); - $AUTH_ACL = str_replace('@USER@',$_SERVER['REMOTE_USER'],$AUTH_ACL); //legacy } - }else{ - $AUTH_ACL = array(); } } +function auth_login_wrapper($evdata) { + return auth_login($evdata['user'], + $evdata['password'], + $evdata['sticky'], + $evdata['silent']); +} + /** * This tries to login the user based on the sent auth credentials * @@ -315,9 +320,7 @@ function auth_logoff($keepbc=false){ setcookie(DOKU_COOKIE,'',time()-600000,DOKU_REL,'',($conf['securecookie'] && is_ssl())); } - if($auth && $auth->canDo('logoff')){ - $auth->logOff(); - } + if($auth) $auth->logOff(); } /** @@ -347,7 +350,8 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $user = $_SERVER['REMOTE_USER']; } } - $user = $auth->cleanUser($user); + $user = trim($auth->cleanUser($user)); + if($user === '') return false; if(is_null($groups)) $groups = (array) $USERINFO['grps']; $groups = array_map(array($auth,'cleanGroup'),$groups); $user = auth_nameencode($user); @@ -356,6 +360,7 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $superusers = explode(',', $conf['superuser']); $superusers = array_unique($superusers); $superusers = array_map('trim', $superusers); + $superusers = array_filter($superusers); // prepare an array containing only true values for array_map call $alltrue = array_fill(0, count($superusers), true); $superusers = array_map('auth_nameencode', $superusers, $alltrue); @@ -374,6 +379,7 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $managers = explode(',', $conf['manager']); $managers = array_unique($managers); $managers = array_map('trim', $managers); + $managers = array_filter($managers); // prepare an array containing only true values for array_map call $alltrue = array_fill(0, count($managers), true); $managers = array_map('auth_nameencode', $managers, $alltrue); @@ -566,6 +572,9 @@ function auth_nameencode($name,$skip_group=false){ $cache =& $cache_authname; $name = (string) $name; + // never encode wildcard FS#1955 + if($name == '%USER%') return $name; + if (!isset($cache[$name][$skip_group])) { if($skip_group && $name{0} =='@'){ $cache[$name][$skip_group] = '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e', @@ -926,7 +935,7 @@ function auth_cryptPassword($clear,$method='',$salt=null){ $magic = '1'; case 'apr1': //from http://de.php.net/manual/en/function.crypt.php#73619 comment by <mikey_nich at hotmail dot com> - if(!$magic) $magic = 'apr1'; + if(!isset($magic)) $magic = 'apr1'; $salt = substr($salt,0,8); $len = strlen($clear); $text = $clear.'$'.$magic.'$'.$salt; diff --git a/inc/auth/ad.class.php b/inc/auth/ad.class.php index 9915b9f11..9ae6dbbd1 100644 --- a/inc/auth/ad.class.php +++ b/inc/auth/ad.class.php @@ -26,6 +26,10 @@ * $conf['auth']['ad']['use_ssl'] = 1; * $conf['auth']['ad']['debug'] = 1; * + * // get additional informations to the userinfo array + * // add a list of comma separated ldap contact fields. + * $conf['auth']['ad']['additional'] = 'field1,field2'; + * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author James Van Lommel <jamesvl@gmail.com> * @link http://www.nosq.com/blog/2005/08/ldap-activedirectory-and-dokuwiki/ @@ -38,6 +42,7 @@ class auth_ad extends auth_basic { var $cnf = null; var $opts = null; var $adldap = null; + var $users = null; /** * Constructor @@ -46,6 +51,12 @@ class auth_ad extends auth_basic { global $conf; $this->cnf = $conf['auth']['ad']; + // additional information fields + if (isset($this->cnf['additional'])) { + $this->cnf['additional'] = str_replace(' ', '', $this->cnf['additional']); + $this->cnf['additional'] = explode(',', $this->cnf['additional']); + } else $this->cnf['additional'] = array(); + // ldap extension is needed if (!function_exists('ldap_connect')) { if ($this->cnf['debug']) @@ -130,15 +141,27 @@ class auth_ad extends auth_basic { global $conf; if(!$this->_init()) return false; - //get info for given user - $result = $this->adldap->user_info($user); + $fields = array('mail','displayname','samaccountname'); + // add additional fields to read + $fields = array_merge($fields, $this->cnf['additional']); + $fields = array_unique($fields); + + //get info for given user + $result = $this->adldap->user_info($user, $fields); //general user info $info['name'] = $result[0]['displayname'][0]; $info['mail'] = $result[0]['mail'][0]; $info['uid'] = $result[0]['samaccountname'][0]; $info['dn'] = $result[0]['dn']; + // additional informations + foreach ($this->cnf['additional'] as $field) { + if (isset($result[0][strtolower($field)])) { + $info[$field] = $result[0][strtolower($field)][0]; + } + } + // handle ActiveDirectory memberOf $info['grps'] = $this->adldap->user_groups($user,(bool) $this->opts['recursive_groups']); @@ -185,6 +208,45 @@ class auth_ad extends auth_basic { } /** + * Bulk retrieval of user data + * + * @author Dominik Eckelmann <dokuwiki@cosmocode.de> + * @param start index of first user to be returned + * @param limit max number of users to be returned + * @param filter array of field/pattern pairs, null for no filter + * @return array of userinfo (refer getUserData for internal userinfo details) + */ + function retrieveUsers($start=0,$limit=-1,$filter=array()) { + if(!$this->_init()) return false; + + if ($this->users === null) { + //get info for given user + $result = $this->adldap->all_users(); + if (!$result) return array(); + $this->users = array_fill_keys($result, false); + } + + $i = 0; + $count = 0; + $this->_constructPattern($filter); + $result = array(); + + foreach ($this->users as $user => &$info) { + if ($i++ < $start) { + continue; + } + if ($info === false) { + $info = $this->getUserData($user); + } + if ($this->_filter($user, $info)) { + $result[$user] = $info; + if (($limit >= 0) && (++$count >= $limit)) break; + } + } + return $result; + } + + /** * Initialize the AdLDAP library and connect to the server */ function _init(){ @@ -193,13 +255,45 @@ class auth_ad extends auth_basic { // connect try { $this->adldap = new adLDAP($this->opts); + if (isset($this->opts['ad_username']) && isset($this->opts['ad_password'])) { + $this->canDo['getUsers'] = true; + } return true; } catch (adLDAPException $e) { + if ($this->cnf['debug']) { + msg($e->getMessage(), -1); + } $this->success = false; $this->adldap = null; } return false; } + + /** + * return 1 if $user + $info match $filter criteria, 0 otherwise + * + * @author Chris Smith <chris@jalakai.co.uk> + */ + function _filter($user, $info) { + foreach ($this->_pattern as $item => $pattern) { + if ($item == 'user') { + if (!preg_match($pattern, $user)) return 0; + } else if ($item == 'grps') { + if (!count(preg_grep($pattern, $info['grps']))) return 0; + } else { + if (!preg_match($pattern, $info[$item])) return 0; + } + } + return 1; + } + + function _constructPattern($filter) { + $this->_pattern = array(); + foreach ($filter as $item => $pattern) { +// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters + $this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters + } + } } //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/auth/basic.class.php b/inc/auth/basic.class.php index c08422488..fa38970ae 100644 --- a/inc/auth/basic.class.php +++ b/inc/auth/basic.class.php @@ -30,7 +30,7 @@ class auth_basic { 'getUserCount'=> false, // can the number of users be retrieved? 'getGroups' => false, // can a list of available groups be retrieved? 'external' => false, // does the module do external auth checking? - 'logoff' => false, // has the module some special logoff method? + 'logout' => true, // can the user logout again? (eg. not possible with HTTP auth) ); diff --git a/inc/auth/ldap.class.php b/inc/auth/ldap.class.php index c51924135..5cc186ce2 100644 --- a/inc/auth/ldap.class.php +++ b/inc/auth/ldap.class.php @@ -27,7 +27,9 @@ class auth_ldap extends auth_basic { return; } - if(empty($this->cnf['groupkey'])) $this->cnf['groupkey'] = 'cn'; + if(empty($this->cnf['groupkey'])) $this->cnf['groupkey'] = 'cn'; + if(empty($this->cnf['userscope'])) $this->cnf['userscope'] = 'sub'; + if(empty($this->cnf['groupscope'])) $this->cnf['groupscope'] = 'sub'; // auth_ldap currently just handles authentication, so no // capabilities are set @@ -171,7 +173,7 @@ class auth_ldap extends auth_basic { $filter = "(ObjectClass=*)"; } - $sr = @ldap_search($this->con, $base, $filter); + $sr = $this->_ldapsearch($this->con, $base, $filter, $this->cnf['userscope']); $result = @ldap_get_entries($this->con, $sr); if($this->cnf['debug']){ msg('LDAP user search: '.htmlspecialchars(ldap_error($this->con)),0,__LINE__,__FILE__); @@ -216,10 +218,10 @@ class auth_ldap extends auth_basic { $user_result = array_merge($info,$user_result); //get groups for given user if grouptree is given - if ($this->cnf['grouptree'] && $this->cnf['groupfilter']) { + if ($this->cnf['grouptree'] || $this->cnf['groupfilter']) { $base = $this->_makeFilter($this->cnf['grouptree'], $user_result); $filter = $this->_makeFilter($this->cnf['groupfilter'], $user_result); - $sr = @ldap_search($this->con, $base, $filter, array($this->cnf['groupkey'])); + $sr = $this->_ldapsearch($this->con, $base, $filter, $this->cnf['groupscope'], array($this->cnf['groupkey'])); if(!$sr){ msg("LDAP: Reading group memberships failed",-1); if($this->cnf['debug']){ @@ -255,6 +257,58 @@ class auth_ldap extends auth_basic { } /** + * Bulk retrieval of user data + * + * @author Dominik Eckelmann <dokuwiki@cosmocode.de> + * @param start index of first user to be returned + * @param limit max number of users to be returned + * @param filter array of field/pattern pairs, null for no filter + * @return array of userinfo (refer getUserData for internal userinfo details) + */ + function retrieveUsers($start=0,$limit=-1,$filter=array()) { + if(!$this->_openLDAP()) return false; + + if (!isset($this->users)) { + // Perform the search and grab all their details + if(!empty($this->cnf['userfilter'])) { + $all_filter = str_replace('%{user}', '*', $this->cnf['userfilter']); + } else { + $all_filter = "(ObjectClass=*)"; + } + $sr=ldap_search($this->con,$this->cnf['usertree'],$all_filter); + $entries = ldap_get_entries($this->con, $sr); + $users_array = array(); + for ($i=0; $i<$entries["count"]; $i++){ + array_push($users_array, $entries[$i]["uid"][0]); + } + asort($users_array); + $result = $users_array; + if (!$result) return array(); + $this->users = array_fill_keys($result, false); + } + $i = 0; + $count = 0; + $this->_constructPattern($filter); + $result = array(); + + foreach ($this->users as $user => &$info) { + if ($i++ < $start) { + continue; + } + if ($info === false) { + $info = $this->getUserData($user); + } + if ($this->_filter($user, $info)) { + $result[$user] = $info; + if (($limit >= 0) && (++$count >= $limit)) break; + } + } + return $result; + + + } + + /** * Make LDAP filter strings. * * Used by auth_getUserData to make the filter @@ -283,6 +337,32 @@ class auth_ldap extends auth_basic { } /** + * return 1 if $user + $info match $filter criteria, 0 otherwise + * + * @author Chris Smith <chris@jalakai.co.uk> + */ + function _filter($user, $info) { + foreach ($this->_pattern as $item => $pattern) { + if ($item == 'user') { + if (!preg_match($pattern, $user)) return 0; + } else if ($item == 'grps') { + if (!count(preg_grep($pattern, $info['grps']))) return 0; + } else { + if (!preg_match($pattern, $info[$item])) return 0; + } + } + return 1; + } + + function _constructPattern($filter) { + $this->_pattern = array(); + foreach ($filter as $item => $pattern) { +// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters + $this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters + } + } + + /** * Escape a string to be used in a LDAP filter * * Ported from Perl's Net::LDAP::Util escape_filter_value @@ -350,8 +430,31 @@ class auth_ldap extends auth_basic { } } + $this->canDo['getUsers'] = true; return true; } + + /** + * Wraps around ldap_search, ldap_list or ldap_read depending on $scope + * + * @param $scope string - can be 'base', 'one' or 'sub' + * @author Andreas Gohr <andi@splitbrain.org> + */ + function _ldapsearch($link_identifier, $base_dn, $filter, $scope='sub', $attributes=null, + $attrsonly=0, $sizelimit=0, $timelimit=0, $deref=LDAP_DEREF_NEVER){ + if(is_null($attributes)) $attributes = array(); + + if($scope == 'base'){ + return @ldap_read($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + }elseif($scope == 'one'){ + return @ldap_list($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + }else{ + return @ldap_search($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + } + } } //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/auth/mysql.class.php b/inc/auth/mysql.class.php index b1c6a3a52..ca607ced5 100644 --- a/inc/auth/mysql.class.php +++ b/inc/auth/mysql.class.php @@ -8,9 +8,6 @@ * @author Matthias Grimm <matthias.grimmm@sourceforge.net> */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/basic.class.php'); - class auth_mysql extends auth_basic { var $dbcon = 0; diff --git a/inc/auth/pgsql.class.php b/inc/auth/pgsql.class.php index a6da56af5..8e68e865e 100644 --- a/inc/auth/pgsql.class.php +++ b/inc/auth/pgsql.class.php @@ -11,8 +11,7 @@ * @author Matthias Grimm <matthias.grimmm@sourceforge.net> */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/mysql.class.php'); +require_once(DOKU_INC.'inc/auth/mysql.class.php'); class auth_pgsql extends auth_mysql { diff --git a/inc/auth/plain.class.php b/inc/auth/plain.class.php index 96649e3c4..ec9e52beb 100644 --- a/inc/auth/plain.class.php +++ b/inc/auth/plain.class.php @@ -7,11 +7,6 @@ * @author Chris Smith <chris@jalakai.co.uk> */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/basic.class.php'); - -define('AUTH_USERFILE',DOKU_CONF.'users.auth.php'); - class auth_plain extends auth_basic { var $users = null; @@ -26,10 +21,12 @@ class auth_plain extends auth_basic { * @author Christopher Smith <chris@jalakai.co.uk> */ function auth_plain() { - if (!@is_readable(AUTH_USERFILE)){ + global $config_cascade; + + if (!@is_readable($config_cascade['plainauth.users']['default'])){ $this->success = false; }else{ - if(@is_writable(AUTH_USERFILE)){ + if(@is_writable($config_cascade['plainauth.users']['default'])){ $this->cando['addUser'] = true; $this->cando['delUser'] = true; $this->cando['modLogin'] = true; @@ -92,6 +89,7 @@ class auth_plain extends auth_basic { */ function createUser($user,$pwd,$name,$mail,$grps=null){ global $conf; + global $config_cascade; // user mustn't already exist if ($this->getUserData($user) !== false) return false; @@ -105,12 +103,13 @@ class auth_plain extends auth_basic { $groups = join(',',$grps); $userline = join(':',array($user,$pass,$name,$mail,$groups))."\n"; - if (io_saveFile(AUTH_USERFILE,$userline,true)) { + if (io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) { $this->users[$user] = compact('pass','name','mail','grps'); return $pwd; } - msg('The '.AUTH_USERFILE.' file is not writable. Please inform the Wiki-Admin',-1); + msg('The '.$config_cascade['plainauth.users']['default']. + ' file is not writable. Please inform the Wiki-Admin',-1); return null; } @@ -126,6 +125,7 @@ class auth_plain extends auth_basic { global $conf; global $ACT; global $INFO; + global $config_cascade; // sanity checks, user must already exist and there must be something to change if (($userinfo = $this->getUserData($user)) === false) return false; @@ -150,7 +150,7 @@ class auth_plain extends auth_basic { return false; } - if (!io_saveFile(AUTH_USERFILE,$userline,true)) { + if (!io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) { msg('There was an error modifying your user data. You should register again.',-1); // FIXME, user has been deleted but not recreated, should force a logout and redirect to login page $ACT == 'register'; @@ -169,6 +169,7 @@ class auth_plain extends auth_basic { * @return int the number of users deleted */ function deleteUsers($users) { + global $config_cascade; if (!is_array($users) || empty($users)) return 0; @@ -183,7 +184,7 @@ class auth_plain extends auth_basic { $pattern = '/^('.join('|',$deleted).'):/'; - if (io_deleteFromFile(AUTH_USERFILE,$pattern,true)) { + if (io_deleteFromFile($config_cascade['plainauth.users']['default'],$pattern,true)) { foreach ($deleted as $user) unset($this->users[$user]); return count($deleted); } @@ -274,11 +275,13 @@ class auth_plain extends auth_basic { * @author Andreas Gohr <andi@splitbrain.org> */ function _loadUserData(){ + global $config_cascade; + $this->users = array(); - if(!@file_exists(AUTH_USERFILE)) return; + if(!@file_exists($config_cascade['plainauth.users']['default'])) return; - $lines = file(AUTH_USERFILE); + $lines = file($config_cascade['plainauth.users']['default']); foreach($lines as $line){ $line = preg_replace('/#.*$/','',$line); //ignore comments $line = trim($line); diff --git a/inc/blowfish.php b/inc/blowfish.php index 42e3a589a..bcf5804a2 100644 --- a/inc/blowfish.php +++ b/inc/blowfish.php @@ -299,8 +299,7 @@ class Horde_Cipher_blowfish * * @param String $key The key to use */ - function setKey($key) - { + function setKey($key) { $key = $this->_formatKey($key); $keyPos = $keyXor = 0; @@ -318,37 +317,37 @@ class Horde_Cipher_blowfish $encZero = array('L' => 0, 'R' => 0); for ($i = 0; $i + 1 < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->p[$i] = $encZero['L']; - $this->p[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->p[$i] = $encZero['L']; + $this->p[$i + 1] = $encZero['R']; } $iMax = count($this->s1); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s1[$i] = $encZero['L']; - $this->s1[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s1[$i] = $encZero['L']; + $this->s1[$i + 1] = $encZero['R']; } $iMax = count($this->s2); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s2[$i] = $encZero['L']; - $this->s2[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s2[$i] = $encZero['L']; + $this->s2[$i + 1] = $encZero['R']; } $iMax = count($this->s3); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s3[$i] = $encZero['L']; - $this->s3[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s3[$i] = $encZero['L']; + $this->s3[$i + 1] = $encZero['R']; } $iMax = count($this->s4); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s4[$i] = $encZero['L']; - $this->s4[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s4[$i] = $encZero['L']; + $this->s4[$i + 1] = $encZero['R']; } } @@ -361,8 +360,7 @@ class Horde_Cipher_blowfish * * @return String the encrypted output */ - function encryptBlock($block, $key = null) - { + function encryptBlock($block, $key = null) { if (!is_null($key)) { $this->setKey($key); } @@ -380,8 +378,7 @@ class Horde_Cipher_blowfish * * @return String The encrypted output. */ - function _encryptBlock($L, $R) - { + function _encryptBlock($L, $R) { $L ^= $this->p[0]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2]; @@ -412,13 +409,12 @@ class Horde_Cipher_blowfish * * @return String the decrypted output */ - function decryptBlock($block, $key = null) - { + function decryptBlock($block, $key = null) { if (!is_null($key)) { $this->setKey($key); } -// change for phpMyAdmin + // change for phpMyAdmin $L = null; $R = null; @@ -429,7 +425,7 @@ class Horde_Cipher_blowfish if (isset($retarray[1])) { $R = $retarray[1]; } -// end change for phpMyAdmin + // end change for phpMyAdmin $L ^= $this->p[17]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[16]; @@ -458,8 +454,7 @@ class Horde_Cipher_blowfish * * @return array The key. */ - function _formatKey($key) - { + function _formatKey($key) { return array_values(unpack('C*', $key)); } @@ -478,8 +473,7 @@ class Horde_Cipher_blowfish * * @author lem9 */ -function PMA_blowfish_encrypt($data, $secret) -{ +function PMA_blowfish_encrypt($data, $secret) { $pma_cipher = new Horde_Cipher_blowfish; $encrypt = ''; @@ -508,8 +502,7 @@ function PMA_blowfish_encrypt($data, $secret) * * @author lem9 */ -function PMA_blowfish_decrypt($encdata, $secret) -{ +function PMA_blowfish_decrypt($encdata, $secret) { $pma_cipher = new Horde_Cipher_blowfish; $decrypt = ''; $data = base64_decode($encdata); diff --git a/inc/cache.php b/inc/cache.php index 8e8adfd6d..571b314cd 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -7,286 +7,283 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/parserutils.php'); class cache { - var $key = ''; // primary identifier for this item - var $ext = ''; // file ext for cache data, secondary identifier for this item - var $cache = ''; // cache file name - var $depends = array(); // array containing cache dependency information, - // used by _useCache to determine cache validity - - var $_event = ''; // event to be triggered during useCache - - function cache($key,$ext) { - $this->key = $key; - $this->ext = $ext; - $this->cache = getCacheName($key,$ext); - } - - /** - * public method to determine whether the cache can be used - * - * to assist in cetralisation of event triggering and calculation of cache statistics, - * don't override this function override _useCache() - * - * @param array $depends array of cache dependencies, support dependecies: - * 'age' => max age of the cache in seconds - * 'files' => cache must be younger than mtime of each file - * (nb. dependency passes if file doesn't exist) - * - * @return bool true if cache can be used, false otherwise - */ - function useCache($depends=array()) { - $this->depends = $depends; - $this->_addDependencies(); - - if ($this->_event) { - return $this->_stats(trigger_event($this->_event,$this,array($this,'_useCache'))); - } else { - return $this->_stats($this->_useCache()); + var $key = ''; // primary identifier for this item + var $ext = ''; // file ext for cache data, secondary identifier for this item + var $cache = ''; // cache file name + var $depends = array(); // array containing cache dependency information, + // used by _useCache to determine cache validity + + var $_event = ''; // event to be triggered during useCache + + function cache($key,$ext) { + $this->key = $key; + $this->ext = $ext; + $this->cache = getCacheName($key,$ext); } - } - - /** - * private method containing cache use decision logic - * - * this function processes the following keys in the depends array - * purge - force a purge on any non empty value - * age - expire cache if older than age (seconds) - * files - expire cache if any file in this array was updated more recently than the cache - * - * can be overridden - * - * @return bool see useCache() - */ - function _useCache() { - - if (!empty($this->depends['purge'])) return false; // purge requested? - if (!($this->_time = @filemtime($this->cache))) return false; // cache exists? - - // cache too old? - if (!empty($this->depends['age']) && ((time() - $this->_time) > $this->depends['age'])) return false; - - if (!empty($this->depends['files'])) { - foreach ($this->depends['files'] as $file) { - if ($this->_time < @filemtime($file)) return false; // cache older than files it depends on? - } + + /** + * public method to determine whether the cache can be used + * + * to assist in cetralisation of event triggering and calculation of cache statistics, + * don't override this function override _useCache() + * + * @param array $depends array of cache dependencies, support dependecies: + * 'age' => max age of the cache in seconds + * 'files' => cache must be younger than mtime of each file + * (nb. dependency passes if file doesn't exist) + * + * @return bool true if cache can be used, false otherwise + */ + function useCache($depends=array()) { + $this->depends = $depends; + $this->_addDependencies(); + + if ($this->_event) { + return $this->_stats(trigger_event($this->_event,$this,array($this,'_useCache'))); + } else { + return $this->_stats($this->_useCache()); + } + } + + /** + * private method containing cache use decision logic + * + * this function processes the following keys in the depends array + * purge - force a purge on any non empty value + * age - expire cache if older than age (seconds) + * files - expire cache if any file in this array was updated more recently than the cache + * + * can be overridden + * + * @return bool see useCache() + */ + function _useCache() { + + if (!empty($this->depends['purge'])) return false; // purge requested? + if (!($this->_time = @filemtime($this->cache))) return false; // cache exists? + + // cache too old? + if (!empty($this->depends['age']) && ((time() - $this->_time) > $this->depends['age'])) return false; + + if (!empty($this->depends['files'])) { + foreach ($this->depends['files'] as $file) { + if ($this->_time < @filemtime($file)) return false; // cache older than files it depends on? + } + } + + return true; + } + + /** + * add dependencies to the depends array + * + * this method should only add dependencies, + * it should not remove any existing dependencies and + * it should only overwrite a dependency when the new value is more stringent than the old + */ + function _addDependencies() { + if (isset($_REQUEST['purge'])) $this->depends['purge'] = true; // purge requested } - return true; - } - - /** - * add dependencies to the depends array - * - * this method should only add dependencies, - * it should not remove any existing dependencies and - * it should only overwrite a dependency when the new value is more stringent than the old - */ - function _addDependencies() { - if (isset($_REQUEST['purge'])) $this->depends['purge'] = true; // purge requested - } - - /** - * retrieve the cached data - * - * @param bool $clean true to clean line endings, false to leave line endings alone - * @return string cache contents - */ - function retrieveCache($clean=true) { - return io_readFile($this->cache, $clean); - } - - /** - * cache $data - * - * @param string $data the data to be cached - * @return bool true on success, false otherwise - */ - function storeCache($data) { - return io_savefile($this->cache, $data); - } - - /** - * remove any cached data associated with this cache instance - */ - function removeCache() { - @unlink($this->cache); - } - - /** - * Record cache hits statistics. - * (Only when debugging allowed, to reduce overhead.) - * - * @param bool $success result of this cache use attempt - * @return bool pass-thru $success value - */ - function _stats($success) { - global $conf; - static $stats = NULL; - static $file; - - if (!$conf['allowdebug']) { return $success; } - - if (is_null($stats)) { - $file = $conf['cachedir'].'/cache_stats.txt'; - $lines = explode("\n",io_readFile($file)); - - foreach ($lines as $line) { - $i = strpos($line,','); - $stats[substr($line,0,$i)] = $line; - } + /** + * retrieve the cached data + * + * @param bool $clean true to clean line endings, false to leave line endings alone + * @return string cache contents + */ + function retrieveCache($clean=true) { + return io_readFile($this->cache, $clean); } - if (isset($stats[$this->ext])) { - list($ext,$count,$hits) = explode(',',$stats[$this->ext]); - } else { - $ext = $this->ext; - $count = 0; - $hits = 0; + /** + * cache $data + * + * @param string $data the data to be cached + * @return bool true on success, false otherwise + */ + function storeCache($data) { + return io_savefile($this->cache, $data); } - $count++; - if ($success) $hits++; - $stats[$this->ext] = "$ext,$count,$hits"; + /** + * remove any cached data associated with this cache instance + */ + function removeCache() { + @unlink($this->cache); + } + + /** + * Record cache hits statistics. + * (Only when debugging allowed, to reduce overhead.) + * + * @param bool $success result of this cache use attempt + * @return bool pass-thru $success value + */ + function _stats($success) { + global $conf; + static $stats = null; + static $file; + + if (!$conf['allowdebug']) { return $success; } + + if (is_null($stats)) { + $file = $conf['cachedir'].'/cache_stats.txt'; + $lines = explode("\n",io_readFile($file)); + + foreach ($lines as $line) { + $i = strpos($line,','); + $stats[substr($line,0,$i)] = $line; + } + } + + if (isset($stats[$this->ext])) { + list($ext,$count,$hits) = explode(',',$stats[$this->ext]); + } else { + $ext = $this->ext; + $count = 0; + $hits = 0; + } + + $count++; + if ($success) $hits++; + $stats[$this->ext] = "$ext,$count,$hits"; - io_saveFile($file,join("\n",$stats)); + io_saveFile($file,join("\n",$stats)); - return $success; - } + return $success; + } } class cache_parser extends cache { - var $file = ''; // source file for cache - var $mode = ''; // input mode (represents the processing the input file will undergo) + var $file = ''; // source file for cache + var $mode = ''; // input mode (represents the processing the input file will undergo) - var $_event = 'PARSER_CACHE_USE'; + var $_event = 'PARSER_CACHE_USE'; - function cache_parser($id, $file, $mode) { - if ($id) $this->page = $id; - $this->file = $file; - $this->mode = $mode; + function cache_parser($id, $file, $mode) { + if ($id) $this->page = $id; + $this->file = $file; + $this->mode = $mode; - parent::cache($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); - } + parent::cache($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); + } - function _useCache() { + function _useCache() { - if (!@file_exists($this->file)) return false; // source exists? - return parent::_useCache(); - } + if (!@file_exists($this->file)) return false; // source exists? + return parent::_useCache(); + } - function _addDependencies() { - global $conf, $config_cascade; + function _addDependencies() { + global $conf, $config_cascade; - $this->depends['age'] = isset($this->depends['age']) ? - min($this->depends['age'],$conf['cachetime']) : $conf['cachetime']; + $this->depends['age'] = isset($this->depends['age']) ? + min($this->depends['age'],$conf['cachetime']) : $conf['cachetime']; - // parser cache file dependencies ... - $files = array($this->file, // ... source - DOKU_INC.'inc/parser/parser.php', // ... parser - DOKU_INC.'inc/parser/handler.php', // ... handler - ); - $files = array_merge($files, getConfigFiles('main')); // ... wiki settings + // parser cache file dependencies ... + $files = array($this->file, // ... source + DOKU_INC.'inc/parser/parser.php', // ... parser + DOKU_INC.'inc/parser/handler.php', // ... handler + ); + $files = array_merge($files, getConfigFiles('main')); // ... wiki settings - $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; - parent::_addDependencies(); - } + $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; + parent::_addDependencies(); + } } class cache_renderer extends cache_parser { - function useCache($depends=array()) { - $use = parent::useCache($depends); + function useCache($depends=array()) { + $use = parent::useCache($depends); + + // meta data needs to be kept in step with the cache + if (!$use && isset($this->page)) { + p_set_metadata($this->page,array(),true); + } - // meta data needs to be kept in step with the cache - if (!$use && isset($this->page)) { - p_set_metadata($this->page,array(),true); + return $use; } - return $use; - } + function _useCache() { + global $conf; - function _useCache() { - global $conf; + if (!parent::_useCache()) return false; - if (!parent::_useCache()) return false; + if (!isset($this->page)) { + return true; + } - if (!isset($this->page)) { - return true; - } + // check current link existence is consistent with cache version + // first check the purgefile + // - if the cache is more recent than the purgefile we know no links can have been updated + if ($this->_time >= @filemtime($conf['cachedir'].'/purgefile')) { + return true; + } - // check current link existence is consistent with cache version - // first check the purgefile - // - if the cache is more recent than the purgefile we know no links can have been updated - if ($this->_time >= @filemtime($conf['cachedir'].'/purgefile')) { - return true; - } + // for wiki pages, check metadata dependencies + $metadata = p_get_metadata($this->page); - // for wiki pages, check metadata dependencies - $metadata = p_get_metadata($this->page); + if (!isset($metadata['relation']['references']) || + empty($metadata['relation']['references'])) { + return true; + } - if (!isset($metadata['relation']['references']) || - empty($metadata['relation']['references'])) { - return true; - } + foreach ($metadata['relation']['references'] as $id => $exists) { + if ($exists != page_exists($id,'',false)) return false; + } - foreach ($metadata['relation']['references'] as $id => $exists) { - if ($exists != page_exists($id,'',false)) return false; + return true; } - return true; - } + function _addDependencies() { - function _addDependencies() { + // renderer cache file dependencies ... + $files = array( + DOKU_INC.'inc/parser/'.$this->mode.'.php', // ... the renderer + ); - // renderer cache file dependencies ... - $files = array( - DOKU_INC.'inc/parser/'.$this->mode.'.php', // ... the renderer - ); + // page implies metadata and possibly some other dependencies + if (isset($this->page)) { - // page implies metadata and possibly some other dependencies - if (isset($this->page)) { + $metafile = metaFN($this->page,'.meta'); + if (@file_exists($metafile)) { + $files[] = $metafile; // ... the page's own metadata + $files[] = DOKU_INC.'inc/parser/metadata.php'; // ... the metadata renderer - $metafile = metaFN($this->page,'.meta'); - if (@file_exists($metafile)) { - $files[] = $metafile; // ... the page's own metadata - $files[] = DOKU_INC.'inc/parser/metadata.php'; // ... the metadata renderer + $valid = p_get_metadata($this->page, 'date valid'); + if (!empty($valid['age'])) { + $this->depends['age'] = isset($this->depends['age']) ? + min($this->depends['age'],$valid['age']) : $valid['age']; + } - $valid = p_get_metadata($this->page, 'date valid'); - if (!empty($valid['age'])) { - $this->depends['age'] = isset($this->depends['age']) ? - min($this->depends['age'],$valid['age']) : $valid['age']; + } else { + $this->depends['purge'] = true; // ... purging cache will generate metadata + return; + } } - } else { - $this->depends['purge'] = true; // ... purging cache will generate metadata - return; - } + $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; + parent::_addDependencies(); } - - $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; - parent::_addDependencies(); - } } class cache_instructions extends cache_parser { - function cache_instructions($id, $file) { - parent::cache_parser($id, $file, 'i'); - } + function cache_instructions($id, $file) { + parent::cache_parser($id, $file, 'i'); + } - function retrieveCache($clean=true) { - $contents = io_readFile($this->cache, false); - return !empty($contents) ? unserialize($contents) : array(); - } + function retrieveCache($clean=true) { + $contents = io_readFile($this->cache, false); + return !empty($contents) ? unserialize($contents) : array(); + } - function storeCache($instructions) { - return io_savefile($this->cache,serialize($instructions)); - } + function storeCache($instructions) { + return io_savefile($this->cache,serialize($instructions)); + } } diff --git a/inc/changelog.php b/inc/changelog.php index bc2af2de3..d5cd8308c 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -20,18 +20,18 @@ define('DOKU_CHANGE_TYPE_REVERT', 'R'); * @author Ben Coburn <btcoburn@silicodon.net> */ function parseChangelogLine($line) { - $tmp = explode("\t", $line); + $tmp = explode("\t", $line); if ($tmp!==false && count($tmp)>1) { - $info = array(); - $info['date'] = (int)$tmp[0]; // unix timestamp - $info['ip'] = $tmp[1]; // IPv4 address (127.0.0.1) - $info['type'] = $tmp[2]; // log line type - $info['id'] = $tmp[3]; // page id - $info['user'] = $tmp[4]; // user name - $info['sum'] = $tmp[5]; // edit summary (or action reason) - $info['extra'] = rtrim($tmp[6], "\n"); // extra data (varies by line type) - return $info; - } else { return false; } + $info = array(); + $info['date'] = (int)$tmp[0]; // unix timestamp + $info['ip'] = $tmp[1]; // IPv4 address (127.0.0.1) + $info['type'] = $tmp[2]; // log line type + $info['id'] = $tmp[3]; // page id + $info['user'] = $tmp[4]; // user name + $info['sum'] = $tmp[5]; // edit summary (or action reason) + $info['extra'] = rtrim($tmp[6], "\n"); // extra data (varies by line type) + return $info; + } else { return false; } } /** @@ -42,57 +42,57 @@ function parseChangelogLine($line) { * @author Ben Coburn <btcoburn@silicodon.net> */ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ - global $conf, $INFO; - - // check for special flags as keys - if (!is_array($flags)) { $flags = array(); } - $flagExternalEdit = isset($flags['ExternalEdit']); - - $id = cleanid($id); - $file = wikiFN($id); - $created = @filectime($file); - $minor = ($type===DOKU_CHANGE_TYPE_MINOR_EDIT); - $wasRemoved = ($type===DOKU_CHANGE_TYPE_DELETE); - - if(!$date) $date = time(); //use current time if none supplied - $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; - $user = (!$flagExternalEdit)?$_SERVER['REMOTE_USER']:''; - - $strip = array("\t", "\n"); - $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => str_replace($strip, '', $summary), - 'extra' => str_replace($strip, '', $extra) - ); - - // update metadata - if (!$wasRemoved) { - $oldmeta = p_read_metadata($id); - $meta = array(); - if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created - $meta['date']['created'] = $created; - if ($user) $meta['creator'] = $INFO['userinfo']['name']; - } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored - $meta['date']['created'] = $oldmeta['persistent']['date']['created']; - $meta['date']['modified'] = $created; // use the files ctime here - $meta['creator'] = $oldmeta['persistent']['creator']; - if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; - } elseif (!$minor) { // non-minor modification - $meta['date']['modified'] = $date; - if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + global $conf, $INFO; + + // check for special flags as keys + if (!is_array($flags)) { $flags = array(); } + $flagExternalEdit = isset($flags['ExternalEdit']); + + $id = cleanid($id); + $file = wikiFN($id); + $created = @filectime($file); + $minor = ($type===DOKU_CHANGE_TYPE_MINOR_EDIT); + $wasRemoved = ($type===DOKU_CHANGE_TYPE_DELETE); + + if(!$date) $date = time(); //use current time if none supplied + $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; + $user = (!$flagExternalEdit)?$_SERVER['REMOTE_USER']:''; + + $strip = array("\t", "\n"); + $logline = array( + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => str_replace($strip, '', $summary), + 'extra' => str_replace($strip, '', $extra) + ); + + // update metadata + if (!$wasRemoved) { + $oldmeta = p_read_metadata($id); + $meta = array(); + if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created + $meta['date']['created'] = $created; + if ($user) $meta['creator'] = $INFO['userinfo']['name']; + } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored + $meta['date']['created'] = $oldmeta['persistent']['date']['created']; + $meta['date']['modified'] = $created; // use the files ctime here + $meta['creator'] = $oldmeta['persistent']['creator']; + if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + } elseif (!$minor) { // non-minor modification + $meta['date']['modified'] = $date; + if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + } + $meta['last_change'] = $logline; + p_set_metadata($id, $meta); } - $meta['last_change'] = $logline; - p_set_metadata($id, $meta, true); - } - - // add changelog lines - $logline = implode("\t", $logline)."\n"; - io_saveFile(metaFN($id,'.changes'),$logline,true); //page changelog - io_saveFile($conf['changelog'],$logline,true); //global changelog cache + + // add changelog lines + $logline = implode("\t", $logline)."\n"; + io_saveFile(metaFN($id,'.changes'),$logline,true); //page changelog + io_saveFile($conf['changelog'],$logline,true); //global changelog cache } /** @@ -104,28 +104,28 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr * @author Ben Coburn <btcoburn@silicodon.net> */ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ - global $conf, $INFO; - - $id = cleanid($id); - - if(!$date) $date = time(); //use current time if none supplied - $remote = clientIP(true); - $user = $_SERVER['REMOTE_USER']; - - $strip = array("\t", "\n"); - $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => str_replace($strip, '', $summary), - 'extra' => str_replace($strip, '', $extra) - ); - - // add changelog lines - $logline = implode("\t", $logline)."\n"; - io_saveFile($conf['media_changelog'],$logline,true); //global media changelog cache + global $conf, $INFO; + + $id = cleanid($id); + + if(!$date) $date = time(); //use current time if none supplied + $remote = clientIP(true); + $user = $_SERVER['REMOTE_USER']; + + $strip = array("\t", "\n"); + $logline = array( + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => str_replace($strip, '', $summary), + 'extra' => str_replace($strip, '', $extra) + ); + + // add changelog lines + $logline = implode("\t", $logline)."\n"; + io_saveFile($conf['media_changelog'],$logline,true); //global media changelog cache } /** @@ -148,35 +148,34 @@ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', * @author Ben Coburn <btcoburn@silicodon.net> */ function getRecents($first,$num,$ns='',$flags=0){ - global $conf; - $recent = array(); - $count = 0; - - if(!$num) - return $recent; + global $conf; + $recent = array(); + $count = 0; + + if(!$num) + return $recent; + + // read all recent changes. (kept short) + if ($flags & RECENTS_MEDIA_CHANGES) { + $lines = @file($conf['media_changelog']); + } else { + $lines = @file($conf['changelog']); + } - // read all recent changes. (kept short) - if ($flags & RECENTS_MEDIA_CHANGES) { - $lines = @file($conf['media_changelog']); - } else { - $lines = @file($conf['changelog']); - } - - - // handle lines - $seen = array(); // caches seen lines, _handleRecent() skips them - for($i = count($lines)-1; $i >= 0; $i--){ - $rec = _handleRecent($lines[$i], $ns, $flags, $seen); - if($rec !== false) { - if(--$first >= 0) continue; // skip first entries - $recent[] = $rec; - $count++; - // break when we have enough entries - if($count >= $num){ break; } + // handle lines + $seen = array(); // caches seen lines, _handleRecent() skips them + for($i = count($lines)-1; $i >= 0; $i--){ + $rec = _handleRecent($lines[$i], $ns, $flags, $seen); + if($rec !== false) { + if(--$first >= 0) continue; // skip first entries + $recent[] = $rec; + $count++; + // break when we have enough entries + if($count >= $num){ break; } + } } - } - return $recent; + return $recent; } /** @@ -200,39 +199,39 @@ function getRecents($first,$num,$ns='',$flags=0){ * @author Ben Coburn <btcoburn@silicodon.net> */ function getRecentsSince($from,$to=null,$ns='',$flags=0){ - global $conf; - $recent = array(); + global $conf; + $recent = array(); - if($to && $to < $from) - return $recent; + if($to && $to < $from) + return $recent; + + // read all recent changes. (kept short) + if ($flags & RECENTS_MEDIA_CHANGES) { + $lines = @file($conf['media_changelog']); + } else { + $lines = @file($conf['changelog']); + } - // read all recent changes. (kept short) - if ($flags & RECENTS_MEDIA_CHANGES) { - $lines = @file($conf['media_changelog']); - } else { - $lines = @file($conf['changelog']); - } - - // we start searching at the end of the list - $lines = array_reverse($lines); - - // handle lines - $seen = array(); // caches seen lines, _handleRecent() skips them - - foreach($lines as $line){ - $rec = _handleRecent($line, $ns, $flags, $seen); - if($rec !== false) { - if ($rec['date'] >= $from) { - if (!$to || $rec['date'] <= $to) { - $recent[] = $rec; + // we start searching at the end of the list + $lines = array_reverse($lines); + + // handle lines + $seen = array(); // caches seen lines, _handleRecent() skips them + + foreach($lines as $line){ + $rec = _handleRecent($line, $ns, $flags, $seen); + if($rec !== false) { + if ($rec['date'] >= $from) { + if (!$to || $rec['date'] <= $to) { + $recent[] = $rec; + } + } else { + break; + } } - } else { - break; - } } - } - return array_reverse($recent); + return array_reverse($recent); } /** @@ -245,39 +244,39 @@ function getRecentsSince($from,$to=null,$ns='',$flags=0){ * @author Ben Coburn <btcoburn@silicodon.net> */ function _handleRecent($line,$ns,$flags,&$seen){ - if(empty($line)) return false; //skip empty lines + if(empty($line)) return false; //skip empty lines - // split the line into parts - $recent = parseChangelogLine($line); - if ($recent===false) { return false; } + // split the line into parts + $recent = parseChangelogLine($line); + if ($recent===false) { return false; } - // skip seen ones - if(isset($seen[$recent['id']])) return false; + // skip seen ones + if(isset($seen[$recent['id']])) return false; - // skip minors - if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false; + // skip minors + if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false; - // remember in seen to skip additional sights - $seen[$recent['id']] = 1; + // remember in seen to skip additional sights + $seen[$recent['id']] = 1; - // check if it's a hidden page - if(isHiddenPage($recent['id'])) return false; + // check if it's a hidden page + if(isHiddenPage($recent['id'])) return false; - // filter namespace - if (($ns) && (strpos($recent['id'],$ns.':') !== 0)) return false; + // filter namespace + if (($ns) && (strpos($recent['id'],$ns.':') !== 0)) return false; - // exclude subnamespaces - if (($flags & RECENTS_SKIP_SUBSPACES) && (getNS($recent['id']) != $ns)) return false; + // exclude subnamespaces + if (($flags & RECENTS_SKIP_SUBSPACES) && (getNS($recent['id']) != $ns)) return false; - // check ACL - $recent['perms'] = auth_quickaclcheck($recent['id']); - if ($recent['perms'] < AUTH_READ) return false; + // check ACL + $recent['perms'] = auth_quickaclcheck($recent['id']); + if ($recent['perms'] < AUTH_READ) return false; - // check existance - $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id'])); - if((!@file_exists($fn)) && ($flags & RECENTS_SKIP_DELETED)) return false; + // check existance + $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id'])); + if((!@file_exists($fn)) && ($flags & RECENTS_SKIP_DELETED)) return false; - return $recent; + return $recent; } /** @@ -291,80 +290,80 @@ function _handleRecent($line,$ns,$flags,&$seen){ * @author Ben Coburn <btcoburn@silicodon.net> */ function getRevisionInfo($id, $rev, $chunk_size=8192) { - global $cache_revinfo; - $cache =& $cache_revinfo; - if (!isset($cache[$id])) { $cache[$id] = array(); } - $rev = max($rev, 0); - - // check if it's already in the memory cache - if (isset($cache[$id]) && isset($cache[$id][$rev])) { - return $cache[$id][$rev]; - } - - $file = metaFN($id, '.changes'); - if (!@file_exists($file)) { return false; } - if (filesize($file)<$chunk_size || $chunk_size==0) { - // read whole file - $lines = file($file); - if ($lines===false) { return false; } - } else { - // read by chunk - $fp = fopen($file, 'rb'); // "file pointer" - if ($fp===false) { return false; } - $head = 0; - fseek($fp, 0, SEEK_END); - $tail = ftell($fp); - $finger = 0; - $finger_rev = 0; - - // find chunk - while ($tail-$head>$chunk_size) { - $finger = $head+floor(($tail-$head)/2.0); - fseek($fp, $finger); - fgets($fp); // slip the finger forward to a new line - $finger = ftell($fp); - $tmp = fgets($fp); // then read at that location - $tmp = parseChangelogLine($tmp); - $finger_rev = $tmp['date']; - if ($finger==$head || $finger==$tail) { break; } - if ($finger_rev>$rev) { - $tail = $finger; - } else { - $head = $finger; - } + global $cache_revinfo; + $cache =& $cache_revinfo; + if (!isset($cache[$id])) { $cache[$id] = array(); } + $rev = max($rev, 0); + + // check if it's already in the memory cache + if (isset($cache[$id]) && isset($cache[$id][$rev])) { + return $cache[$id][$rev]; } - if ($tail-$head<1) { - // cound not find chunk, assume requested rev is missing - fclose($fp); - return false; - } + $file = metaFN($id, '.changes'); + if (!@file_exists($file)) { return false; } + if (filesize($file)<$chunk_size || $chunk_size==0) { + // read whole file + $lines = file($file); + if ($lines===false) { return false; } + } else { + // read by chunk + $fp = fopen($file, 'rb'); // "file pointer" + if ($fp===false) { return false; } + $head = 0; + fseek($fp, 0, SEEK_END); + $tail = ftell($fp); + $finger = 0; + $finger_rev = 0; + + // find chunk + while ($tail-$head>$chunk_size) { + $finger = $head+floor(($tail-$head)/2.0); + fseek($fp, $finger); + fgets($fp); // slip the finger forward to a new line + $finger = ftell($fp); + $tmp = fgets($fp); // then read at that location + $tmp = parseChangelogLine($tmp); + $finger_rev = $tmp['date']; + if ($finger==$head || $finger==$tail) { break; } + if ($finger_rev>$rev) { + $tail = $finger; + } else { + $head = $finger; + } + } + + if ($tail-$head<1) { + // cound not find chunk, assume requested rev is missing + fclose($fp); + return false; + } - // read chunk - $chunk = ''; - $chunk_size = max($tail-$head, 0); // found chunk size - $got = 0; - fseek($fp, $head); - while ($got<$chunk_size && !feof($fp)) { - $tmp = @fread($fp, max($chunk_size-$got, 0)); - if ($tmp===false) { break; } //error state - $got += strlen($tmp); - $chunk .= $tmp; + // read chunk + $chunk = ''; + $chunk_size = max($tail-$head, 0); // found chunk size + $got = 0; + fseek($fp, $head); + while ($got<$chunk_size && !feof($fp)) { + $tmp = @fread($fp, max($chunk_size-$got, 0)); + if ($tmp===false) { break; } //error state + $got += strlen($tmp); + $chunk .= $tmp; + } + $lines = explode("\n", $chunk); + array_pop($lines); // remove trailing newline + fclose($fp); } - $lines = explode("\n", $chunk); - array_pop($lines); // remove trailing newline - fclose($fp); - } - - // parse and cache changelog lines - foreach ($lines as $value) { - $tmp = parseChangelogLine($value); - if ($tmp!==false) { - $cache[$id][$tmp['date']] = $tmp; + + // parse and cache changelog lines + foreach ($lines as $value) { + $tmp = parseChangelogLine($value); + if ($tmp!==false) { + $cache[$id][$tmp['date']] = $tmp; + } } - } - if (!isset($cache[$id][$rev])) { return false; } - return $cache[$id][$rev]; + if (!isset($cache[$id][$rev])) { return false; } + return $cache[$id][$rev]; } /** @@ -388,87 +387,87 @@ function getRevisionInfo($id, $rev, $chunk_size=8192) { * @author Ben Coburn <btcoburn@silicodon.net> */ function getRevisions($id, $first, $num, $chunk_size=8192) { - global $cache_revinfo; - $cache =& $cache_revinfo; - if (!isset($cache[$id])) { $cache[$id] = array(); } - - $revs = array(); - $lines = array(); - $count = 0; - $file = metaFN($id, '.changes'); - $num = max($num, 0); - $chunk_size = max($chunk_size, 0); - if ($first<0) { $first = 0; } - else if (@file_exists(wikiFN($id))) { - // skip current revision if the page exists - $first = max($first+1, 0); - } - - if (!@file_exists($file)) { return $revs; } - if (filesize($file)<$chunk_size || $chunk_size==0) { - // read whole file - $lines = file($file); - if ($lines===false) { return $revs; } - } else { - // read chunks backwards - $fp = fopen($file, 'rb'); // "file pointer" - if ($fp===false) { return $revs; } - fseek($fp, 0, SEEK_END); - $tail = ftell($fp); - - // chunk backwards - $finger = max($tail-$chunk_size, 0); - while ($count<$num+$first) { - fseek($fp, $finger); - if ($finger>0) { - fgets($fp); // slip the finger forward to a new line - $finger = ftell($fp); - } - - // read chunk - if ($tail<=$finger) { break; } - $chunk = ''; - $read_size = max($tail-$finger, 0); // found chunk size - $got = 0; - while ($got<$read_size && !feof($fp)) { - $tmp = @fread($fp, max($read_size-$got, 0)); - if ($tmp===false) { break; } //error state - $got += strlen($tmp); - $chunk .= $tmp; - } - $tmp = explode("\n", $chunk); - array_pop($tmp); // remove trailing newline - - // combine with previous chunk - $count += count($tmp); - $lines = array_merge($tmp, $lines); - - // next chunk - if ($finger==0) { break; } // already read all the lines - else { - $tail = $finger; + global $cache_revinfo; + $cache =& $cache_revinfo; + if (!isset($cache[$id])) { $cache[$id] = array(); } + + $revs = array(); + $lines = array(); + $count = 0; + $file = metaFN($id, '.changes'); + $num = max($num, 0); + $chunk_size = max($chunk_size, 0); + if ($first<0) { $first = 0; } + else if (@file_exists(wikiFN($id))) { + // skip current revision if the page exists + $first = max($first+1, 0); + } + + if (!@file_exists($file)) { return $revs; } + if (filesize($file)<$chunk_size || $chunk_size==0) { + // read whole file + $lines = file($file); + if ($lines===false) { return $revs; } + } else { + // read chunks backwards + $fp = fopen($file, 'rb'); // "file pointer" + if ($fp===false) { return $revs; } + fseek($fp, 0, SEEK_END); + $tail = ftell($fp); + + // chunk backwards $finger = max($tail-$chunk_size, 0); - } + while ($count<$num+$first) { + fseek($fp, $finger); + if ($finger>0) { + fgets($fp); // slip the finger forward to a new line + $finger = ftell($fp); + } + + // read chunk + if ($tail<=$finger) { break; } + $chunk = ''; + $read_size = max($tail-$finger, 0); // found chunk size + $got = 0; + while ($got<$read_size && !feof($fp)) { + $tmp = @fread($fp, max($read_size-$got, 0)); + if ($tmp===false) { break; } //error state + $got += strlen($tmp); + $chunk .= $tmp; + } + $tmp = explode("\n", $chunk); + array_pop($tmp); // remove trailing newline + + // combine with previous chunk + $count += count($tmp); + $lines = array_merge($tmp, $lines); + + // next chunk + if ($finger==0) { break; } // already read all the lines + else { + $tail = $finger; + $finger = max($tail-$chunk_size, 0); + } + } + fclose($fp); } - fclose($fp); - } - - // skip parsing extra lines - $num = max(min(count($lines)-$first, $num), 0); - if ($first>0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$first-$num, 0), $num); } - else if ($first>0 && $num==0) { $lines = array_slice($lines, 0, max(count($lines)-$first, 0)); } - else if ($first==0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$num, 0)); } - - // handle lines in reverse order - for ($i = count($lines)-1; $i >= 0; $i--) { - $tmp = parseChangelogLine($lines[$i]); - if ($tmp!==false) { - $cache[$id][$tmp['date']] = $tmp; - $revs[] = $tmp['date']; + + // skip parsing extra lines + $num = max(min(count($lines)-$first, $num), 0); + if ($first>0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$first-$num, 0), $num); } + else if ($first>0 && $num==0) { $lines = array_slice($lines, 0, max(count($lines)-$first, 0)); } + else if ($first==0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$num, 0)); } + + // handle lines in reverse order + for ($i = count($lines)-1; $i >= 0; $i--) { + $tmp = parseChangelogLine($lines[$i]); + if ($tmp!==false) { + $cache[$id][$tmp['date']] = $tmp; + $revs[] = $tmp['date']; + } } - } - return $revs; + return $revs; } diff --git a/inc/cliopts.php b/inc/cliopts.php index a3698ab24..588f0bc6d 100644 --- a/inc/cliopts.php +++ b/inc/cliopts.php @@ -1,32 +1,34 @@ <?php /** -* Brutally chopped and modified from http://pear.php.net/package/Console_Getopts -*/ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 3.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available through the world-wide-web at the following url: | -// | http://www.php.net/license/3_0.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Andrei Zmievski <andrei@php.net> | -// | Modified: Harry Fuecks hfuecks gmail.com | -// +----------------------------------------------------------------------+ -// - + * Brutally chopped and modified from http://pear.php.net/package/Console_Getopts + * + * PHP Version 5 + * + * Copyright (c) 1997-2004 The PHP Group + * + * LICENSE: This source file is subject to the New BSD license that is + * available through the world-wide-web at the following URI: + * http://www.opensource.org/licenses/bsd-license.php. If you did not receive + * a copy of the New BSD License and are unable to obtain it through the web, + * please send a note to license@php.net so we can mail you a copy immediately. + * + * @category Console + * @package Console_Getopt + * @author Andrei Zmievski <andrei@php.net> + * @modified Harry Fuecks hfuecks gmail.com + * @modified Tanguy Ortolo <tanguy+dokuwiki@ortolo.eu> + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version CVS: $Id$ + * @link http://pear.php.net/package/Console_Getopt + * + */ //------------------------------------------------------------------------------ /** -* Sets up CLI environment based on SAPI and PHP version -* Helps resolve some issues between the CGI and CLI SAPIs -* as well is inconsistencies between PHP 4.3+ and older versions -*/ + * Sets up CLI environment based on SAPI and PHP version + * Helps resolve some issues between the CGI and CLI SAPIs + * as well is inconsistencies between PHP 4.3+ and older versions + */ if (version_compare(phpversion(), '4.3.0', '<') || php_sapi_name() == 'cgi') { // Handle output buffering @ob_end_flush(); @@ -67,16 +69,16 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv * @author Andrei Zmievski <andrei@php.net> * */ - class Doku_Cli_Opts { +class Doku_Cli_Opts { /** - * <?php ?> - * @see http://www.sitepoint.com/article/php-command-line-1/3 - * @param string executing file name - this MUST be passed the __FILE__ constant - * @param string short options - * @param array (optional) long options - * @return Doku_Cli_Opts_Container or Doku_Cli_Opts_Error - */ + * <?php ?> + * @see http://www.sitepoint.com/article/php-command-line-1/3 + * @param string executing file name - this MUST be passed the __FILE__ constant + * @param string short options + * @param array (optional) long options + * @return Doku_Cli_Opts_Container or Doku_Cli_Opts_Error + */ function & getOptions($bin_file, $short_options, $long_options = null) { $args = Doku_Cli_Opts::readPHPArgv(); @@ -99,18 +101,74 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv return $container; } + /** + * Parses the command-line options. + * + * The first parameter to this function should be the list of command-line + * arguments without the leading reference to the running program. + * + * The second parameter is a string of allowed short options. Each of the + * option letters can be followed by a colon ':' to specify that the option + * requires an argument, or a double colon '::' to specify that the option + * takes an optional argument. + * + * The third argument is an optional array of allowed long options. The + * leading '--' should not be included in the option name. Options that + * require an argument should be followed by '=', and options that take an + * option argument should be followed by '=='. + * + * The return value is an array of two elements: the list of parsed + * options and the list of non-option command-line arguments. Each entry in + * the list of parsed options is a pair of elements - the first one + * specifies the option, and the second one specifies the option argument, + * if there was one. + * + * Long and short options can be mixed. + * + * Most of the semantics of this function are based on GNU getopt_long(). + * + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @return array two-element array containing the list of parsed options and + * the non-option arguments + * @access public + */ function getopt2($args, $short_options, $long_options = null) { return Doku_Cli_Opts::doGetopt( 2, $args, $short_options, $long_options ); } + /** + * This function expects $args to start with the script name (POSIX-style). + * Preserved for backwards compatibility. + * + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @see getopt2() + * @return array two-element array containing the list of parsed options and + * the non-option arguments + */ function getopt($args, $short_options, $long_options = null) { return Doku_Cli_Opts::doGetopt( 1, $args, $short_options, $long_options ); } + /** + * The actual implementation of the argument parsing code. + * + * @param int $version Version to use + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @return array + */ function doGetopt($version, $args, $short_options, $long_options = null) { // in case you pass directly readPHPArgv() as the first arg @@ -157,6 +215,10 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv $error = Doku_Cli_Opts::_parseLongOption(substr($arg, 2), $long_options, $opts, $args); if (Doku_Cli_Opts::isError($error)) return $error; + } elseif ($arg == '-') { + // - is stdin + $non_opts = array_merge($non_opts, array_slice($args, $i)); + break; } else { $error = Doku_Cli_Opts::_parseShortOption(substr($arg, 1), $short_options, $opts, $args); if (Doku_Cli_Opts::isError($error)) @@ -167,8 +229,20 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv return array($opts, $non_opts); } + /** + * Parse short option + * + * @param string $arg Argument + * @param string[] $short_options Available short options + * @param string[][] &$opts + * @param string[] &$args + * + * @access private + * @return void + */ function _parseShortOption($arg, $short_options, &$opts, &$args) { - for ($i = 0; $i < strlen($arg); $i++) { + $len = strlen($arg); + for ($i = 0; $i < $len; $i++) { $opt = $arg{$i}; $opt_arg = null; @@ -195,8 +269,14 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv if ($i + 1 < strlen($arg)) { $opts[] = array($opt, substr($arg, $i + 1)); break; - } else if (list(, $opt_arg) = each($args)) + } else if (list(, $opt_arg) = each($args)) { /* Else use the next argument. */; + if (Doku_Cli_Opts::_isShortOpt($opt_arg) || Doku_Cli_Opts::_isLongOpt($opt_arg)) + return Doku_Cli_Opts::raiseError( + DOKU_CLI_OPTS_OPT_ARG_REQUIRED, + "option requires an argument --$opt" + ); + } else return Doku_Cli_Opts::raiseError( DOKU_CLI_OPTS_OPT_ARG_REQUIRED, @@ -209,25 +289,75 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv } } + /** + * Checks if an argument is a short option + * + * @param string $arg Argument to check + * + * @access private + * @return bool + */ + function _isShortOpt($arg) + { + return strlen($arg) == 2 && $arg[0] == '-' + && preg_match('/[a-zA-Z]/', $arg[1]); + } + + /** + * Checks if an argument is a long option + * + * @param string $arg Argument to check + * + * @access private + * @return bool + */ + function _isLongOpt($arg) + { + return strlen($arg) > 2 && $arg[0] == '-' && $arg[1] == '-' && + preg_match('/[a-zA-Z]+$/', substr($arg, 2)); + } + + /** + * Parse long option + * + * @param string $arg Argument + * @param string[] $long_options Available long options + * @param string[][] &$opts + * @param string[] &$args + * + * @access private + * @return void|PEAR_Error + */ function _parseLongOption($arg, $long_options, &$opts, &$args) { - @list($opt, $opt_arg) = explode('=', $arg); + @list($opt, $opt_arg) = explode('=', $arg, 2); $opt_len = strlen($opt); + $opt_cnt = count($long_options); - for ($i = 0; $i < count($long_options); $i++) { + for ($i = 0; $i < $opt_cnt; $i++) { $long_opt = $long_options[$i]; $opt_start = substr($long_opt, 0, $opt_len); + $long_opt_name = str_replace('=', '', $long_opt); + /* Option doesn't match. Go on to the next one. */ if ($opt_start != $opt) continue; - $opt_rest = substr($long_opt, $opt_len); + $opt_rest = substr($long_opt, $opt_len); /* Check that the options uniquely matches one of the allowed options. */ + if ($i + 1 < count($long_options)) { + $next_option_rest = substr($long_options[$i + 1], $opt_len); + } else { + $next_option_rest = ''; + } + if ($opt_rest != '' && $opt{0} != '=' && - $i + 1 < count($long_options) && - $opt == substr($long_options[$i+1], 0, $opt_len)) { + $i + 1 < $opt_cnt && + $opt == substr($long_options[$i+1], 0, $opt_len) && + $next_option_rest != '' && + $next_option_rest{0} != '=') { return Doku_Cli_Opts::raiseError( DOKU_CLI_OPTS_OPT_ABIGUOUS, "Option --$opt is ambiguous" @@ -244,6 +374,13 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv "Option --$opt requires an argument" ); } + + if (Doku_Cli_Opts::_isShortOpt($opt_arg) + || Doku_Cli_Opts::_isLongOpt($opt_arg)) + return Doku_Cli_Opts::raiseError( + DOKU_CLI_OPTS_OPT_ARG_REQUIRED, + "Option --$opt requires an argument" + ); } } else if ($opt_arg) { return Doku_Cli_Opts::raiseError( @@ -262,6 +399,13 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv ); } + /** + * Safely read the $argv PHP array across different PHP configurations. + * Will take care on register_globals and register_argc_argv ini directives + * + * @access public + * @return mixed the $argv PHP array or PEAR error if not registered + */ function readPHPArgv() { global $argv; if (!is_array($argv)) { @@ -326,7 +470,6 @@ class Doku_Cli_Opts_Container { $this->options[$opt_name] = $option[1]; } - $this->args = $options[1]; } diff --git a/inc/common.php b/inc/common.php index 321148c7a..bf5987c28 100644 --- a/inc/common.php +++ b/inc/common.php @@ -7,12 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/changelog.php'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/mail.php'); -require_once(DOKU_INC.'inc/parserutils.php'); -require_once(DOKU_INC.'inc/infoutils.php'); /** * These constants are used with the recents function @@ -29,7 +23,7 @@ define('RECENTS_MEDIA_CHANGES',16); * @see htmlspecialchars() */ function hsc($string){ - return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); + return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } /** @@ -40,7 +34,7 @@ function hsc($string){ * @author Andreas Gohr <andi@splitbrain.org> */ function ptln($string,$indent=0){ - echo str_repeat(' ', $indent)."$string\n"; + echo str_repeat(' ', $indent)."$string\n"; } /** @@ -49,7 +43,7 @@ function ptln($string,$indent=0){ * @author Andreas Gohr <andi@splitbrain.org> */ function stripctl($string){ - return preg_replace('/[\x00-\x1F]+/s','',$string); + return preg_replace('/[\x00-\x1F]+/s','',$string); } /** @@ -61,21 +55,21 @@ function stripctl($string){ * @return string */ function getSecurityToken(){ - return md5(auth_cookiesalt().session_id()); + return md5(auth_cookiesalt().session_id()); } /** * Check the secret CSRF token */ function checkSecurityToken($token=null){ - if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check + if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check - if(is_null($token)) $token = $_REQUEST['sectok']; - if(getSecurityToken() != $token){ - msg('Security Token did not match. Possible CSRF attack.',-1); - return false; - } - return true; + if(is_null($token)) $token = $_REQUEST['sectok']; + if(getSecurityToken() != $token){ + msg('Security Token did not match. Possible CSRF attack.',-1); + return false; + } + return true; } /** @@ -84,12 +78,12 @@ function checkSecurityToken($token=null){ * @author Andreas Gohr <andi@splitbrain.org> */ function formSecurityToken($print=true){ - $ret = '<div class="no"><input type="hidden" name="sectok" value="'.getSecurityToken().'" /></div>'."\n"; - if($print){ - echo $ret; - }else{ - return $ret; - } + $ret = '<div class="no"><input type="hidden" name="sectok" value="'.getSecurityToken().'" /></div>'."\n"; + if($print){ + echo $ret; + }else{ + return $ret; + } } /** @@ -99,128 +93,127 @@ function formSecurityToken($print=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function pageinfo(){ - global $ID; - global $REV; - global $RANGE; - global $USERINFO; - global $conf; - global $lang; - - // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml - // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary - $info['id'] = $ID; - $info['rev'] = $REV; + global $ID; + global $REV; + global $RANGE; + global $USERINFO; + global $conf; + global $lang; + + // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml + // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary + $info['id'] = $ID; + $info['rev'] = $REV; // set info about manager/admin status. $info['isadmin'] = false; $info['ismanager'] = false; - if(isset($_SERVER['REMOTE_USER'])){ - $info['userinfo'] = $USERINFO; - $info['perm'] = auth_quickaclcheck($ID); - $info['subscribed'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],false); - $info['subscribedns'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],true); - $info['client'] = $_SERVER['REMOTE_USER']; - - if($info['perm'] == AUTH_ADMIN){ - $info['isadmin'] = true; - $info['ismanager'] = true; - }elseif(auth_ismanager()){ - $info['ismanager'] = true; - } - - // if some outside auth were used only REMOTE_USER is set - if(!$info['userinfo']['name']){ - $info['userinfo']['name'] = $_SERVER['REMOTE_USER']; - } - - }else{ - $info['perm'] = auth_aclcheck($ID,'',null); - $info['subscribed'] = false; - $info['client'] = clientIP(true); - } - - $info['namespace'] = getNS($ID); - $info['locked'] = checklock($ID); - $info['filepath'] = fullpath(wikiFN($ID)); - $info['exists'] = @file_exists($info['filepath']); - if($REV){ - //check if current revision was meant - if($info['exists'] && (@filemtime($info['filepath'])==$REV)){ - $REV = ''; - }elseif($RANGE){ - //section editing does not work with old revisions! - $REV = ''; - $RANGE = ''; - msg($lang['nosecedit'],0); + if(isset($_SERVER['REMOTE_USER'])){ + $info['userinfo'] = $USERINFO; + $info['perm'] = auth_quickaclcheck($ID); + $info['subscribed'] = get_info_subscribed(); + $info['client'] = $_SERVER['REMOTE_USER']; + + if($info['perm'] == AUTH_ADMIN){ + $info['isadmin'] = true; + $info['ismanager'] = true; + }elseif(auth_ismanager()){ + $info['ismanager'] = true; + } + + // if some outside auth were used only REMOTE_USER is set + if(!$info['userinfo']['name']){ + $info['userinfo']['name'] = $_SERVER['REMOTE_USER']; + } + }else{ - //really use old revision - $info['filepath'] = fullpath(wikiFN($ID,$REV)); - $info['exists'] = @file_exists($info['filepath']); - } - } - $info['rev'] = $REV; - if($info['exists']){ - $info['writable'] = (is_writable($info['filepath']) && - ($info['perm'] >= AUTH_EDIT)); - }else{ - $info['writable'] = ($info['perm'] >= AUTH_CREATE); - } - $info['editable'] = ($info['writable'] && empty($info['lock'])); - $info['lastmod'] = @filemtime($info['filepath']); - - //load page meta data - $info['meta'] = p_get_metadata($ID); - - //who's the editor - if($REV){ - $revinfo = getRevisionInfo($ID, $REV, 1024); - }else{ - if (is_array($info['meta']['last_change'])) { - $revinfo = $info['meta']['last_change']; - } else { - $revinfo = getRevisionInfo($ID, $info['lastmod'], 1024); - // cache most recent changelog line in metadata if missing and still valid - if ($revinfo!==false) { + $info['perm'] = auth_aclcheck($ID,'',null); + $info['subscribed'] = false; + $info['client'] = clientIP(true); + } + + $info['namespace'] = getNS($ID); + $info['locked'] = checklock($ID); + $info['filepath'] = fullpath(wikiFN($ID)); + $info['exists'] = @file_exists($info['filepath']); + if($REV){ + //check if current revision was meant + if($info['exists'] && (@filemtime($info['filepath'])==$REV)){ + $REV = ''; + }elseif($RANGE){ + //section editing does not work with old revisions! + $REV = ''; + $RANGE = ''; + msg($lang['nosecedit'],0); + }else{ + //really use old revision + $info['filepath'] = fullpath(wikiFN($ID,$REV)); + $info['exists'] = @file_exists($info['filepath']); + } + } + $info['rev'] = $REV; + if($info['exists']){ + $info['writable'] = (is_writable($info['filepath']) && + ($info['perm'] >= AUTH_EDIT)); + }else{ + $info['writable'] = ($info['perm'] >= AUTH_CREATE); + } + $info['editable'] = ($info['writable'] && empty($info['locked'])); + $info['lastmod'] = @filemtime($info['filepath']); + + //load page meta data + $info['meta'] = p_get_metadata($ID); + + //who's the editor + if($REV){ + $revinfo = getRevisionInfo($ID, $REV, 1024); + }else{ + if (is_array($info['meta']['last_change'])) { + $revinfo = $info['meta']['last_change']; + } else { + $revinfo = getRevisionInfo($ID, $info['lastmod'], 1024); + // cache most recent changelog line in metadata if missing and still valid + if ($revinfo!==false) { + $info['meta']['last_change'] = $revinfo; + p_set_metadata($ID, array('last_change' => $revinfo)); + } + } + } + //and check for an external edit + if($revinfo!==false && $revinfo['date']!=$info['lastmod']){ + // cached changelog line no longer valid + $revinfo = false; $info['meta']['last_change'] = $revinfo; p_set_metadata($ID, array('last_change' => $revinfo)); - } - } - } - //and check for an external edit - if($revinfo!==false && $revinfo['date']!=$info['lastmod']){ - // cached changelog line no longer valid - $revinfo = false; - $info['meta']['last_change'] = $revinfo; - p_set_metadata($ID, array('last_change' => $revinfo)); - } - - $info['ip'] = $revinfo['ip']; - $info['user'] = $revinfo['user']; - $info['sum'] = $revinfo['sum']; - // See also $INFO['meta']['last_change'] which is the most recent log line for page $ID. - // Use $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT in place of $info['minor']. - - if($revinfo['user']){ - $info['editor'] = $revinfo['user']; - }else{ - $info['editor'] = $revinfo['ip']; - } - - // draft - $draft = getCacheName($info['client'].$ID,'.draft'); - if(@file_exists($draft)){ - if(@filemtime($draft) < @filemtime(wikiFN($ID))){ - // remove stale draft - @unlink($draft); + } + + $info['ip'] = $revinfo['ip']; + $info['user'] = $revinfo['user']; + $info['sum'] = $revinfo['sum']; + // See also $INFO['meta']['last_change'] which is the most recent log line for page $ID. + // Use $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT in place of $info['minor']. + + if($revinfo['user']){ + $info['editor'] = $revinfo['user']; }else{ - $info['draft'] = $draft; + $info['editor'] = $revinfo['ip']; + } + + // draft + $draft = getCacheName($info['client'].$ID,'.draft'); + if(@file_exists($draft)){ + if(@filemtime($draft) < @filemtime(wikiFN($ID))){ + // remove stale draft + @unlink($draft); + }else{ + $info['draft'] = $draft; + } } - } - // mobile detection - $info['ismobile'] = clientismobile(); + // mobile detection + $info['ismobile'] = clientismobile(); - return $info; + return $info; } /** @@ -229,16 +222,16 @@ function pageinfo(){ * @author Andreas Gohr */ function buildURLparams($params, $sep='&'){ - $url = ''; - $amp = false; - foreach($params as $key => $val){ - if($amp) $url .= $sep; - - $url .= $key.'='; - $url .= rawurlencode((string)$val); - $amp = true; - } - return $url; + $url = ''; + $amp = false; + foreach($params as $key => $val){ + if($amp) $url .= $sep; + + $url .= rawurlencode($key).'='; + $url .= rawurlencode((string)$val); + $amp = true; + } + return $url; } /** @@ -249,16 +242,16 @@ function buildURLparams($params, $sep='&'){ * @author Andreas Gohr */ function buildAttributes($params,$skipempty=false){ - $url = ''; - foreach($params as $key => $val){ - if($key{0} == '_') continue; - if($val === '' && $skipempty) continue; - - $url .= $key.'="'; - $url .= htmlspecialchars ($val); - $url .= '" '; - } - return $url; + $url = ''; + foreach($params as $key => $val){ + if($key{0} == '_') continue; + if($val === '' && $skipempty) continue; + + $url .= $key.'="'; + $url .= htmlspecialchars ($val); + $url .= '" '; + } + return $url; } @@ -268,47 +261,47 @@ function buildAttributes($params,$skipempty=false){ * @author Andreas Gohr <andi@splitbrain.org> */ function breadcrumbs(){ - // we prepare the breadcrumbs early for quick session closing - static $crumbs = null; - if($crumbs != null) return $crumbs; - - global $ID; - global $ACT; - global $conf; - - //first visit? - $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array(); - //we only save on show and existing wiki documents - $file = wikiFN($ID); - if($ACT != 'show' || !@file_exists($file)){ + // we prepare the breadcrumbs early for quick session closing + static $crumbs = null; + if($crumbs != null) return $crumbs; + + global $ID; + global $ACT; + global $conf; + + //first visit? + $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array(); + //we only save on show and existing wiki documents + $file = wikiFN($ID); + if($ACT != 'show' || !@file_exists($file)){ + $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; + return $crumbs; + } + + // page names + $name = noNSorNS($ID); + if (useHeading('navigation')) { + // get page title + $title = p_get_first_heading($ID,true); + if ($title) { + $name = $title; + } + } + + //remove ID from array + if (isset($crumbs[$ID])) { + unset($crumbs[$ID]); + } + + //add to array + $crumbs[$ID] = $name; + //reduce size + while(count($crumbs) > $conf['breadcrumbs']){ + array_shift($crumbs); + } + //save to session $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; return $crumbs; - } - - // page names - $name = noNSorNS($ID); - if (useHeading('navigation')) { - // get page title - $title = p_get_first_heading($ID,true); - if ($title) { - $name = $title; - } - } - - //remove ID from array - if (isset($crumbs[$ID])) { - unset($crumbs[$ID]); - } - - //add to array - $crumbs[$ID] = $name; - //reduce size - while(count($crumbs) > $conf['breadcrumbs']){ - array_shift($crumbs); - } - //save to session - $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; - return $crumbs; } /** @@ -323,19 +316,19 @@ function breadcrumbs(){ * @author Andreas Gohr <andi@splitbrain.org> */ function idfilter($id,$ue=true){ - global $conf; - if ($conf['useslash'] && $conf['userewrite']){ - $id = strtr($id,':','/'); - }elseif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && - $conf['userewrite']) { - $id = strtr($id,':',';'); - } - if($ue){ - $id = rawurlencode($id); - $id = str_replace('%3A',':',$id); //keep as colon - $id = str_replace('%2F','/',$id); //keep as slash - } - return $id; + global $conf; + if ($conf['useslash'] && $conf['userewrite']){ + $id = strtr($id,':','/'); + }elseif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && + $conf['userewrite']) { + $id = strtr($id,':',';'); + } + if($ue){ + $id = rawurlencode($id); + $id = str_replace('%3A',':',$id); //keep as colon + $id = str_replace('%2F','/',$id); //keep as slash + } + return $id; } /** @@ -347,35 +340,35 @@ function idfilter($id,$ue=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function wl($id='',$more='',$abs=false,$sep='&'){ - global $conf; - if(is_array($more)){ - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace(',',$sep,$more); - } - - $id = idfilter($id); - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - if($conf['userewrite'] == 2){ - $xlink .= DOKU_SCRIPT.'/'.$id; - if($more) $xlink .= '?'.$more; - }elseif($conf['userewrite']){ - $xlink .= $id; - if($more) $xlink .= '?'.$more; - }elseif($id){ - $xlink .= DOKU_SCRIPT.'?id='.$id; - if($more) $xlink .= $sep.$more; - }else{ - $xlink .= DOKU_SCRIPT; - if($more) $xlink .= '?'.$more; - } - - return $xlink; + global $conf; + if(is_array($more)){ + $more = buildURLparams($more,$sep); + }else{ + $more = str_replace(',',$sep,$more); + } + + $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + if($conf['userewrite'] == 2){ + $xlink .= DOKU_SCRIPT.'/'.$id; + if($more) $xlink .= '?'.$more; + }elseif($conf['userewrite']){ + $xlink .= $id; + if($more) $xlink .= '?'.$more; + }elseif($id){ + $xlink .= DOKU_SCRIPT.'?id='.$id; + if($more) $xlink .= $sep.$more; + }else{ + $xlink .= DOKU_SCRIPT; + if($more) $xlink .= '?'.$more; + } + + return $xlink; } /** @@ -386,33 +379,33 @@ function wl($id='',$more='',$abs=false,$sep='&'){ * @author Ben Coburn <btcoburn@silicodon.net> */ function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&'){ - global $conf; - if(is_array($more)){ - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace(',',$sep,$more); - } - - $format = rawurlencode($format); - $id = idfilter($id); - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - if($conf['userewrite'] == 2){ - $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format; - if($more) $xlink .= $sep.$more; - }elseif($conf['userewrite'] == 1){ - $xlink .= '_export/'.$format.'/'.$id; - if($more) $xlink .= '?'.$more; - }else{ - $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id; - if($more) $xlink .= $sep.$more; - } - - return $xlink; + global $conf; + if(is_array($more)){ + $more = buildURLparams($more,$sep); + }else{ + $more = str_replace(',',$sep,$more); + } + + $format = rawurlencode($format); + $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + if($conf['userewrite'] == 2){ + $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format; + if($more) $xlink .= $sep.$more; + }elseif($conf['userewrite'] == 1){ + $xlink .= '_export/'.$format.'/'.$id; + if($more) $xlink .= '?'.$more; + }else{ + $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id; + if($more) $xlink .= $sep.$more; + } + + return $xlink; } /** @@ -430,71 +423,71 @@ function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&'){ * @param boolean $abs - Create an absolute URL */ function ml($id='',$more='',$direct=true,$sep='&',$abs=false){ - global $conf; - if(is_array($more)){ - // strip defaults for shorter URLs - if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']); - if(!$more['w']) unset($more['w']); - if(!$more['h']) unset($more['h']); - if(isset($more['id']) && $direct) unset($more['id']); - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace('cache=cache','',$more); //skip default - $more = str_replace(',,',',',$more); - $more = str_replace(',',$sep,$more); - } - - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - // external URLs are always direct without rewriting - if(preg_match('#^(https?|ftp)://#i',$id)){ - $xlink .= 'lib/exe/fetch.php'; - // add hash: - $xlink .= '?hash='.substr(md5(auth_cookiesalt().$id),0,6); - if($more){ - $xlink .= $sep.$more; - $xlink .= $sep.'media='.rawurlencode($id); + global $conf; + if(is_array($more)){ + // strip defaults for shorter URLs + if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']); + if(!$more['w']) unset($more['w']); + if(!$more['h']) unset($more['h']); + if(isset($more['id']) && $direct) unset($more['id']); + $more = buildURLparams($more,$sep); }else{ - $xlink .= $sep.'media='.rawurlencode($id); + $more = str_replace('cache=cache','',$more); //skip default + $more = str_replace(',,',',',$more); + $more = str_replace(',',$sep,$more); + } + + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + // external URLs are always direct without rewriting + if(preg_match('#^(https?|ftp)://#i',$id)){ + $xlink .= 'lib/exe/fetch.php'; + // add hash: + $xlink .= '?hash='.substr(md5(auth_cookiesalt().$id),0,6); + if($more){ + $xlink .= $sep.$more; + $xlink .= $sep.'media='.rawurlencode($id); + }else{ + $xlink .= $sep.'media='.rawurlencode($id); + } + return $xlink; } - return $xlink; - } - $id = idfilter($id); + $id = idfilter($id); - // decide on scriptname - if($direct){ - if($conf['userewrite'] == 1){ - $script = '_media'; + // decide on scriptname + if($direct){ + if($conf['userewrite'] == 1){ + $script = '_media'; + }else{ + $script = 'lib/exe/fetch.php'; + } }else{ - $script = 'lib/exe/fetch.php'; + if($conf['userewrite'] == 1){ + $script = '_detail'; + }else{ + $script = 'lib/exe/detail.php'; + } } - }else{ - if($conf['userewrite'] == 1){ - $script = '_detail'; + + // build URL based on rewrite mode + if($conf['userewrite']){ + $xlink .= $script.'/'.$id; + if($more) $xlink .= '?'.$more; }else{ - $script = 'lib/exe/detail.php'; - } - } - - // build URL based on rewrite mode - if($conf['userewrite']){ - $xlink .= $script.'/'.$id; - if($more) $xlink .= '?'.$more; - }else{ - if($more){ - $xlink .= $script.'?'.$more; - $xlink .= $sep.'media='.$id; - }else{ - $xlink .= $script.'?media='.$id; - } - } - - return $xlink; + if($more){ + $xlink .= $script.'?'.$more; + $xlink .= $sep.'media='.$id; + }else{ + $xlink .= $script.'?media='.$id; + } + } + + return $xlink; } @@ -506,10 +499,7 @@ function ml($id='',$more='',$direct=true,$sep='&',$abs=false){ * @author Andreas Gohr <andi@splitbrain.org> */ function script($script='doku.php'){ -# $link = getBaseURL(); -# $link .= $script; -# return $link; - return DOKU_BASE.DOKU_SCRIPT; + return DOKU_BASE.DOKU_SCRIPT; } /** @@ -537,54 +527,54 @@ function script($script='doku.php'){ * @return bool - true if a spam word was found */ function checkwordblock($text=''){ - global $TEXT; - global $PRE; - global $SUF; - global $conf; - global $INFO; - - if(!$conf['usewordblock']) return false; - - if(!$text) $text = "$PRE $TEXT $SUF"; - - // we prepare the text a tiny bit to prevent spammers circumventing URL checks - $text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i','\1http://\2 \2\3',$text); - - $wordblocks = getWordblocks(); - //how many lines to read at once (to work around some PCRE limits) - if(version_compare(phpversion(),'4.3.0','<')){ - //old versions of PCRE define a maximum of parenthesises even if no - //backreferences are used - the maximum is 99 - //this is very bad performancewise and may even be too high still - $chunksize = 40; - }else{ - //read file in chunks of 200 - this should work around the - //MAX_PATTERN_SIZE in modern PCRE - $chunksize = 200; - } - while($blocks = array_splice($wordblocks,0,$chunksize)){ - $re = array(); - #build regexp from blocks - foreach($blocks as $block){ - $block = preg_replace('/#.*$/','',$block); - $block = trim($block); - if(empty($block)) continue; - $re[] = $block; - } - if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) { - //prepare event data - $data['matches'] = $matches; - $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR']; - if($_SERVER['REMOTE_USER']) { - $data['userinfo']['user'] = $_SERVER['REMOTE_USER']; - $data['userinfo']['name'] = $INFO['userinfo']['name']; - $data['userinfo']['mail'] = $INFO['userinfo']['mail']; - } - $callback = create_function('', 'return true;'); - return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true); - } - } - return false; + global $TEXT; + global $PRE; + global $SUF; + global $conf; + global $INFO; + + if(!$conf['usewordblock']) return false; + + if(!$text) $text = "$PRE $TEXT $SUF"; + + // we prepare the text a tiny bit to prevent spammers circumventing URL checks + $text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i','\1http://\2 \2\3',$text); + + $wordblocks = getWordblocks(); + // how many lines to read at once (to work around some PCRE limits) + if(version_compare(phpversion(),'4.3.0','<')){ + // old versions of PCRE define a maximum of parenthesises even if no + // backreferences are used - the maximum is 99 + // this is very bad performancewise and may even be too high still + $chunksize = 40; + }else{ + // read file in chunks of 200 - this should work around the + // MAX_PATTERN_SIZE in modern PCRE + $chunksize = 200; + } + while($blocks = array_splice($wordblocks,0,$chunksize)){ + $re = array(); + // build regexp from blocks + foreach($blocks as $block){ + $block = preg_replace('/#.*$/','',$block); + $block = trim($block); + if(empty($block)) continue; + $re[] = $block; + } + if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) { + // prepare event data + $data['matches'] = $matches; + $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR']; + if($_SERVER['REMOTE_USER']) { + $data['userinfo']['user'] = $_SERVER['REMOTE_USER']; + $data['userinfo']['name'] = $INFO['userinfo']['name']; + $data['userinfo']['mail'] = $INFO['userinfo']['mail']; + } + $callback = create_function('', 'return true;'); + return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true); + } + } + return false; } /** @@ -601,60 +591,60 @@ function checkwordblock($text=''){ * @author Andreas Gohr <andi@splitbrain.org> */ function clientIP($single=false){ - $ip = array(); - $ip[] = $_SERVER['REMOTE_ADDR']; - if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_FORWARDED_FOR'])); - if(!empty($_SERVER['HTTP_X_REAL_IP'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_REAL_IP'])); - - // some IPv4/v6 regexps borrowed from Feyd - // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479 - $dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])'; - $hex_digit = '[A-Fa-f0-9]'; - $h16 = "{$hex_digit}{1,4}"; - $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet"; - $ls32 = "(?:$h16:$h16|$IPv4Address)"; - $IPv6Address = - "(?:(?:{$IPv4Address})|(?:". - "(?:$h16:){6}$ls32" . - "|::(?:$h16:){5}$ls32" . - "|(?:$h16)?::(?:$h16:){4}$ls32" . - "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" . - "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" . - "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" . - "|(?:(?:$h16:){0,4}$h16)?::$ls32" . - "|(?:(?:$h16:){0,5}$h16)?::$h16" . - "|(?:(?:$h16:){0,6}$h16)?::" . - ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)"; - - // remove any non-IP stuff - $cnt = count($ip); - $match = array(); - for($i=0; $i<$cnt; $i++){ - if(preg_match("/^$IPv4Address$/",$ip[$i],$match) || preg_match("/^$IPv6Address$/",$ip[$i],$match)) { - $ip[$i] = $match[0]; - } else { - $ip[$i] = ''; + $ip = array(); + $ip[] = $_SERVER['REMOTE_ADDR']; + if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + $ip = array_merge($ip,explode(',',str_replace(' ','',$_SERVER['HTTP_X_FORWARDED_FOR']))); + if(!empty($_SERVER['HTTP_X_REAL_IP'])) + $ip = array_merge($ip,explode(',',str_replace(' ','',$_SERVER['HTTP_X_REAL_IP']))); + + // some IPv4/v6 regexps borrowed from Feyd + // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479 + $dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])'; + $hex_digit = '[A-Fa-f0-9]'; + $h16 = "{$hex_digit}{1,4}"; + $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet"; + $ls32 = "(?:$h16:$h16|$IPv4Address)"; + $IPv6Address = + "(?:(?:{$IPv4Address})|(?:". + "(?:$h16:){6}$ls32" . + "|::(?:$h16:){5}$ls32" . + "|(?:$h16)?::(?:$h16:){4}$ls32" . + "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" . + "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" . + "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" . + "|(?:(?:$h16:){0,4}$h16)?::$ls32" . + "|(?:(?:$h16:){0,5}$h16)?::$h16" . + "|(?:(?:$h16:){0,6}$h16)?::" . + ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)"; + + // remove any non-IP stuff + $cnt = count($ip); + $match = array(); + for($i=0; $i<$cnt; $i++){ + if(preg_match("/^$IPv4Address$/",$ip[$i],$match) || preg_match("/^$IPv6Address$/",$ip[$i],$match)) { + $ip[$i] = $match[0]; + } else { + $ip[$i] = ''; + } + if(empty($ip[$i])) unset($ip[$i]); } - if(empty($ip[$i])) unset($ip[$i]); - } - $ip = array_values(array_unique($ip)); - if(!$ip[0]) $ip[0] = '0.0.0.0'; // for some strange reason we don't have a IP - - if(!$single) return join(',',$ip); - - // decide which IP to use, trying to avoid local addresses - $ip = array_reverse($ip); - foreach($ip as $i){ - if(preg_match('/^(127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){ - continue; - }else{ - return $i; + $ip = array_values(array_unique($ip)); + if(!$ip[0]) $ip[0] = '0.0.0.0'; // for some strange reason we don't have a IP + + if(!$single) return join(',',$ip); + + // decide which IP to use, trying to avoid local addresses + $ip = array_reverse($ip); + foreach($ip as $i){ + if(preg_match('/^(127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){ + continue; + }else{ + return $i; + } } - } - // still here? just use the first (last) address - return $ip[0]; + // still here? just use the first (last) address + return $ip[0]; } /** @@ -687,17 +677,17 @@ function clientismobile(){ * @returns a comma separated list of hostnames */ function gethostsbyaddrs($ips){ - $hosts = array(); - $ips = explode(',',$ips); + $hosts = array(); + $ips = explode(',',$ips); - if(is_array($ips)) { - foreach($ips as $ip){ - $hosts[] = gethostbyaddr(trim($ip)); + if(is_array($ips)) { + foreach($ips as $ip){ + $hosts[] = gethostbyaddr(trim($ip)); + } + return join(',',$hosts); + } else { + return gethostbyaddr(trim($ips)); } - return join(',',$hosts); - } else { - return gethostbyaddr(trim($ips)); - } } /** @@ -708,25 +698,25 @@ function gethostsbyaddrs($ips){ * @author Andreas Gohr <andi@splitbrain.org> */ function checklock($id){ - global $conf; - $lock = wikiLockFN($id); + global $conf; + $lock = wikiLockFN($id); - //no lockfile - if(!@file_exists($lock)) return false; + //no lockfile + if(!@file_exists($lock)) return false; - //lockfile expired - if((time() - filemtime($lock)) > $conf['locktime']){ - @unlink($lock); - return false; - } + //lockfile expired + if((time() - filemtime($lock)) > $conf['locktime']){ + @unlink($lock); + return false; + } - //my own lock - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ - return false; - } + //my own lock + $ip = io_readFile($lock); + if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + return false; + } - return $ip; + return $ip; } /** @@ -735,12 +725,18 @@ function checklock($id){ * @author Andreas Gohr <andi@splitbrain.org> */ function lock($id){ - $lock = wikiLockFN($id); - if($_SERVER['REMOTE_USER']){ - io_saveFile($lock,$_SERVER['REMOTE_USER']); - }else{ - io_saveFile($lock,clientIP()); - } + global $conf; + + if($conf['locktime'] == 0){ + return; + } + + $lock = wikiLockFN($id); + if($_SERVER['REMOTE_USER']){ + io_saveFile($lock,$_SERVER['REMOTE_USER']); + }else{ + io_saveFile($lock,clientIP()); + } } /** @@ -750,15 +746,15 @@ function lock($id){ * @return bool true if a lock was removed */ function unlock($id){ - $lock = wikiLockFN($id); - if(@file_exists($lock)){ - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ - @unlink($lock); - return true; + $lock = wikiLockFN($id); + if(@file_exists($lock)){ + $ip = io_readFile($lock); + if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + @unlink($lock); + return true; + } } - } - return false; + return false; } /** @@ -768,8 +764,8 @@ function unlock($id){ * @author Andreas Gohr <andi@splitbrain.org> */ function cleanText($text){ - $text = preg_replace("/(\015\012)|(\015)/","\012",$text); - return $text; + $text = preg_replace("/(\015\012)|(\015)/","\012",$text); + return $text; } /** @@ -781,8 +777,8 @@ function cleanText($text){ * @author Andreas Gohr <andi@splitbrain.org> */ function formText($text){ - $text = str_replace("\012","\015\012",$text); - return htmlspecialchars($text); + $text = str_replace("\012","\015\012",$text); + return htmlspecialchars($text); } /** @@ -791,7 +787,7 @@ function formText($text){ * @author Andreas Gohr <andi@splitbrain.org> */ function rawLocale($id){ - return io_readFile(localeFN($id)); + return io_readFile(localeFN($id)); } /** @@ -800,77 +796,92 @@ function rawLocale($id){ * @author Andreas Gohr <andi@splitbrain.org> */ function rawWiki($id,$rev=''){ - return io_readWikiPage(wikiFN($id, $rev), $id, $rev); + return io_readWikiPage(wikiFN($id, $rev), $id, $rev); } /** * Returns the pagetemplate contents for the ID's namespace * + * @triggers COMMON_PAGE_FROMTEMPLATE * @author Andreas Gohr <andi@splitbrain.org> */ -function pageTemplate($data){ - $id = $data[0]; - global $conf; - global $INFO; - - $path = dirname(wikiFN($id)); - - if(@file_exists($path.'/_template.txt')){ - $tpl = io_readFile($path.'/_template.txt'); - }else{ - // search upper namespaces for templates - $len = strlen(rtrim($conf['datadir'],'/')); - while (strlen($path) >= $len){ - if(@file_exists($path.'/__template.txt')){ - $tpl = io_readFile($path.'/__template.txt'); - break; - } - $path = substr($path, 0, strrpos($path, '/')); - } - } - if(!$tpl) return ''; - - // replace placeholders - $file = noNS($id); - $page = strtr($file,'_',' '); - - $tpl = str_replace(array( - '@ID@', - '@NS@', - '@FILE@', - '@!FILE@', - '@!FILE!@', - '@PAGE@', - '@!PAGE@', - '@!!PAGE@', - '@!PAGE!@', - '@USER@', - '@NAME@', - '@MAIL@', - '@DATE@', - ), - array( - $id, - getNS($id), - $file, - utf8_ucfirst($file), - utf8_strtoupper($file), - $page, - utf8_ucfirst($page), - utf8_ucwords($page), - utf8_strtoupper($page), - $_SERVER['REMOTE_USER'], - $INFO['userinfo']['name'], - $INFO['userinfo']['mail'], - $conf['dformat'], - ), $tpl); - - // we need the callback to work around strftime's char limit - $tpl = preg_replace_callback('/%./',create_function('$m','return strftime($m[0]);'),$tpl); - - return $tpl; +function pageTemplate($id){ + global $conf; + + if (is_array($id)) $id = $id[0]; + + $path = dirname(wikiFN($id)); + $tpl = ''; + if(@file_exists($path.'/_template.txt')){ + $tpl = io_readFile($path.'/_template.txt'); + }else{ + // search upper namespaces for templates + $len = strlen(rtrim($conf['datadir'],'/')); + while (strlen($path) >= $len){ + if(@file_exists($path.'/__template.txt')){ + $tpl = io_readFile($path.'/__template.txt'); + break; + } + $path = substr($path, 0, strrpos($path, '/')); + } + } + $data = compact('tpl', 'id'); + trigger_event('COMMON_PAGE_FROMTEMPLATE', $data, 'parsePageTemplate', true); + return $data['tpl']; } +/** + * Performs common page template replacements + * This is the default action for COMMON_PAGE_FROMTEMPLATE + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function parsePageTemplate(&$data) { + extract($data); + + global $USERINFO; + global $conf; + + // replace placeholders + $file = noNS($id); + $page = strtr($file,'_',' '); + + $tpl = str_replace(array( + '@ID@', + '@NS@', + '@FILE@', + '@!FILE@', + '@!FILE!@', + '@PAGE@', + '@!PAGE@', + '@!!PAGE@', + '@!PAGE!@', + '@USER@', + '@NAME@', + '@MAIL@', + '@DATE@', + ), + array( + $id, + getNS($id), + $file, + utf8_ucfirst($file), + utf8_strtoupper($file), + $page, + utf8_ucfirst($page), + utf8_ucwords($page), + utf8_strtoupper($page), + $_SERVER['REMOTE_USER'], + $USERINFO['name'], + $USERINFO['mail'], + $conf['dformat'], + ), $tpl); + + // we need the callback to work around strftime's char limit + $tpl = preg_replace_callback('/%./',create_function('$m','return strftime($m[0]);'),$tpl); + $data['tpl'] = $tpl; + return $tpl; +} /** * Returns the raw Wiki Text in three slices. @@ -883,38 +894,42 @@ function pageTemplate($data){ * @author Andreas Gohr <andi@splitbrain.org> */ function rawWikiSlices($range,$id,$rev=''){ - list($from,$to) = explode('-',$range,2); - $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); - if(!$from) $from = 0; - if(!$to) $to = strlen($text)+1; - - $slices[0] = substr($text,0,$from-1); - $slices[1] = substr($text,$from-1,$to-$from); - $slices[2] = substr($text,$to); - - return $slices; + $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); + + // Parse range + list($from,$to) = explode('-',$range,2); + // Make range zero-based, use defaults if marker is missing + $from = !$from ? 0 : ($from - 1); + $to = !$to ? strlen($text) : ($to - 1); + + $slices[0] = substr($text, 0, $from); + $slices[1] = substr($text, $from, $to-$from); + $slices[2] = substr($text, $to); + return $slices; } /** * Joins wiki text slices * - * function to join the text slices with correct lineendings again. + * function to join the text slices. * When the pretty parameter is set to true it adds additional empty * lines between sections if needed (used on saving). * * @author Andreas Gohr <andi@splitbrain.org> */ function con($pre,$text,$suf,$pretty=false){ + if($pretty){ + if ($pre !== '' && substr($pre, -1) !== "\n" && + substr($text, 0, 1) !== "\n") { + $pre .= "\n"; + } + if ($suf !== '' && substr($text, -1) !== "\n" && + substr($suf, 0, 1) !== "\n") { + $text .= "\n"; + } + } - if($pretty){ - if($pre && substr($pre,-1) != "\n") $pre .= "\n"; - if($suf && substr($text,-1) != "\n") $text .= "\n"; - } - - // Avoid double newline above section when saving section edit - //if($pre) $pre .= "\n"; - if($suf) $text .= "\n"; - return $pre.$text.$suf; + return $pre.$text.$suf; } /** @@ -925,102 +940,101 @@ function con($pre,$text,$suf,$pretty=false){ * @author Ben Coburn <btcoburn@silicodon.net> */ function saveWikiText($id,$text,$summary,$minor=false){ - /* Note to developers: - This code is subtle and delicate. Test the behavior of - the attic and changelog with dokuwiki and external edits - after any changes. External edits change the wiki page - directly without using php or dokuwiki. - */ - global $conf; - global $lang; - global $REV; - // ignore if no changes were made - if($text == rawWiki($id,'')){ - return; - } - - $file = wikiFN($id); - $old = @filemtime($file); // from page - $wasRemoved = empty($text); - $wasCreated = !@file_exists($file); - $wasReverted = ($REV==true); - $newRev = false; - $oldRev = getRevisions($id, -1, 1, 1024); // from changelog - $oldRev = (int)(empty($oldRev)?0:$oldRev[0]); - if(!@file_exists(wikiFN($id, $old)) && @file_exists($file) && $old>=$oldRev) { - // add old revision to the attic if missing - saveOldRevision($id); - // add a changelog entry if this edit came from outside dokuwiki - if ($old>$oldRev) { - addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=>true)); - // remove soon to be stale instructions - $cache = new cache_instructions($id, $file); - $cache->removeCache(); - } - } - - if ($wasRemoved){ - // Send "update" event with empty data, so plugins can react to page deletion - $data = array(array($file, '', false), getNS($id), noNS($id), false); - trigger_event('IO_WIKIPAGE_WRITE', $data); - // pre-save deleted revision - @touch($file); - clearstatcache(); - $newRev = saveOldRevision($id); - // remove empty file - @unlink($file); - // remove old meta info... - $mfiles = metaFiles($id); - $changelog = metaFN($id, '.changes'); - $metadata = metaFN($id, '.meta'); - foreach ($mfiles as $mfile) { - // but keep per-page changelog to preserve page history and keep meta data - if (@file_exists($mfile) && $mfile!==$changelog && $mfile!==$metadata) { @unlink($mfile); } - } - // purge meta data - p_purge_metadata($id); - $del = true; - // autoset summary on deletion - if(empty($summary)) $summary = $lang['deleted']; - // remove empty namespaces - io_sweepNS($id, 'datadir'); - io_sweepNS($id, 'mediadir'); - }else{ - // save file (namespace dir is created in io_writeWikiPage) - io_writeWikiPage($file, $text, $id); - // pre-save the revision, to keep the attic in sync - $newRev = saveOldRevision($id); - $del = false; - } - - // select changelog line type - $extra = ''; - $type = DOKU_CHANGE_TYPE_EDIT; - if ($wasReverted) { - $type = DOKU_CHANGE_TYPE_REVERT; - $extra = $REV; - } - else if ($wasCreated) { $type = DOKU_CHANGE_TYPE_CREATE; } - else if ($wasRemoved) { $type = DOKU_CHANGE_TYPE_DELETE; } - else if ($minor && $conf['useacl'] && $_SERVER['REMOTE_USER']) { $type = DOKU_CHANGE_TYPE_MINOR_EDIT; } //minor edits only for logged in users - - addLogEntry($newRev, $id, $type, $summary, $extra); - // send notify mails - notify($id,'admin',$old,$summary,$minor); - notify($id,'subscribers',$old,$summary,$minor); - - // update the purgefile (timestamp of the last time anything within the wiki was changed) - io_saveFile($conf['cachedir'].'/purgefile',time()); - - // if useheading is enabled, purge the cache of all linking pages - if(useHeading('content')){ - require_once(DOKU_INC.'inc/fulltext.php'); - $pages = ft_backlinks($id); - foreach ($pages as $page) { - $cache = new cache_renderer($page, wikiFN($page), 'xhtml'); - $cache->removeCache(); - } - } + /* Note to developers: + This code is subtle and delicate. Test the behavior of + the attic and changelog with dokuwiki and external edits + after any changes. External edits change the wiki page + directly without using php or dokuwiki. + */ + global $conf; + global $lang; + global $REV; + // ignore if no changes were made + if($text == rawWiki($id,'')){ + return; + } + + $file = wikiFN($id); + $old = @filemtime($file); // from page + $wasRemoved = empty($text); + $wasCreated = !@file_exists($file); + $wasReverted = ($REV==true); + $newRev = false; + $oldRev = getRevisions($id, -1, 1, 1024); // from changelog + $oldRev = (int)(empty($oldRev)?0:$oldRev[0]); + if(!@file_exists(wikiFN($id, $old)) && @file_exists($file) && $old>=$oldRev) { + // add old revision to the attic if missing + saveOldRevision($id); + // add a changelog entry if this edit came from outside dokuwiki + if ($old>$oldRev) { + addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=>true)); + // remove soon to be stale instructions + $cache = new cache_instructions($id, $file); + $cache->removeCache(); + } + } + + if ($wasRemoved){ + // Send "update" event with empty data, so plugins can react to page deletion + $data = array(array($file, '', false), getNS($id), noNS($id), false); + trigger_event('IO_WIKIPAGE_WRITE', $data); + // pre-save deleted revision + @touch($file); + clearstatcache(); + $newRev = saveOldRevision($id); + // remove empty file + @unlink($file); + // remove old meta info... + $mfiles = metaFiles($id); + $changelog = metaFN($id, '.changes'); + $metadata = metaFN($id, '.meta'); + foreach ($mfiles as $mfile) { + // but keep per-page changelog to preserve page history and keep meta data + if (@file_exists($mfile) && $mfile!==$changelog && $mfile!==$metadata) { @unlink($mfile); } + } + // purge meta data + p_purge_metadata($id); + $del = true; + // autoset summary on deletion + if(empty($summary)) $summary = $lang['deleted']; + // remove empty namespaces + io_sweepNS($id, 'datadir'); + io_sweepNS($id, 'mediadir'); + }else{ + // save file (namespace dir is created in io_writeWikiPage) + io_writeWikiPage($file, $text, $id); + // pre-save the revision, to keep the attic in sync + $newRev = saveOldRevision($id); + $del = false; + } + + // select changelog line type + $extra = ''; + $type = DOKU_CHANGE_TYPE_EDIT; + if ($wasReverted) { + $type = DOKU_CHANGE_TYPE_REVERT; + $extra = $REV; + } + else if ($wasCreated) { $type = DOKU_CHANGE_TYPE_CREATE; } + else if ($wasRemoved) { $type = DOKU_CHANGE_TYPE_DELETE; } + else if ($minor && $conf['useacl'] && $_SERVER['REMOTE_USER']) { $type = DOKU_CHANGE_TYPE_MINOR_EDIT; } //minor edits only for logged in users + + addLogEntry($newRev, $id, $type, $summary, $extra); + // send notify mails + notify($id,'admin',$old,$summary,$minor); + notify($id,'subscribers',$old,$summary,$minor); + + // update the purgefile (timestamp of the last time anything within the wiki was changed) + io_saveFile($conf['cachedir'].'/purgefile',time()); + + // if useheading is enabled, purge the cache of all linking pages + if(useHeading('content')){ + $pages = ft_backlinks($id); + foreach ($pages as $page) { + $cache = new cache_renderer($page, wikiFN($page), 'xhtml'); + $cache->removeCache(); + } + } } /** @@ -1030,13 +1044,13 @@ function saveWikiText($id,$text,$summary,$minor=false){ * @author Andreas Gohr <andi@splitbrain.org> */ function saveOldRevision($id){ - global $conf; - $oldf = wikiFN($id); - if(!@file_exists($oldf)) return ''; - $date = filemtime($oldf); - $newf = wikiFN($id,$date); - io_writeWikiPage($newf, rawWiki($id), $id, $date); - return $date; + global $conf; + $oldf = wikiFN($id); + if(!@file_exists($oldf)) return ''; + $date = filemtime($oldf); + $newf = wikiFN($id,$date); + io_writeWikiPage($newf, rawWiki($id), $id, $date); + return $date; } /** @@ -1052,72 +1066,76 @@ function saveOldRevision($id){ * @author Andreas Gohr <andi@splitbrain.org> */ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ - global $lang; - global $conf; - global $INFO; - - // decide if there is something to do - if($who == 'admin'){ - if(empty($conf['notify'])) return; //notify enabled? - $text = rawLocale('mailtext'); - $to = $conf['notify']; - $bcc = ''; - }elseif($who == 'subscribers'){ - if(!$conf['subscribers']) return; //subscribers enabled? - if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors - $bcc = subscriber_addresslist($id,false); - if(empty($bcc)) return; - $to = ''; - $text = rawLocale('subscribermail'); - }elseif($who == 'register'){ - if(empty($conf['registernotify'])) return; - $text = rawLocale('registermail'); - $to = $conf['registernotify']; - $bcc = ''; - }else{ - return; //just to be safe - } - - $ip = clientIP(); - $text = str_replace('@DATE@',dformat(),$text); - $text = str_replace('@BROWSER@',$_SERVER['HTTP_USER_AGENT'],$text); - $text = str_replace('@IPADDRESS@',$ip,$text); - $text = str_replace('@HOSTNAME@',gethostsbyaddrs($ip),$text); - $text = str_replace('@NEWPAGE@',wl($id,'',true,'&'),$text); - $text = str_replace('@PAGE@',$id,$text); - $text = str_replace('@TITLE@',$conf['title'],$text); - $text = str_replace('@DOKUWIKIURL@',DOKU_URL,$text); - $text = str_replace('@SUMMARY@',$summary,$text); - $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); - - foreach ($replace as $key => $substitution) { - $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); - } - - if($who == 'register'){ - $subject = $lang['mail_new_user'].' '.$summary; - }elseif($rev){ - $subject = $lang['mail_changed'].' '.$id; - $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); - require_once(DOKU_INC.'inc/DifferenceEngine.php'); - $df = new Diff(explode("\n",rawWiki($id,$rev)), - explode("\n",rawWiki($id))); - $dformat = new UnifiedDiffFormatter(); - $diff = $dformat->format($df); - }else{ - $subject=$lang['mail_newpage'].' '.$id; - $text = str_replace('@OLDPAGE@','none',$text); - $diff = rawWiki($id); - } - $text = str_replace('@DIFF@',$diff,$text); - $subject = '['.$conf['title'].'] '.$subject; - - $from = $conf['mailfrom']; - $from = str_replace('@USER@',$_SERVER['REMOTE_USER'],$from); - $from = str_replace('@NAME@',$INFO['userinfo']['name'],$from); - $from = str_replace('@MAIL@',$INFO['userinfo']['mail'],$from); - - mail_send($to,$subject,$text,$from,'',$bcc); + global $lang; + global $conf; + global $INFO; + + // decide if there is something to do + if($who == 'admin'){ + if(empty($conf['notify'])) return; //notify enabled? + $text = rawLocale('mailtext'); + $to = $conf['notify']; + $bcc = ''; + }elseif($who == 'subscribers'){ + if(!$conf['subscribers']) return; //subscribers enabled? + if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors + $data = array('id' => $id, 'addresslist' => '', 'self' => false); + trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, + 'subscription_addresslist'); + $bcc = $data['addresslist']; + if(empty($bcc)) return; + $to = ''; + $text = rawLocale('subscr_single'); + }elseif($who == 'register'){ + if(empty($conf['registernotify'])) return; + $text = rawLocale('registermail'); + $to = $conf['registernotify']; + $bcc = ''; + }else{ + return; //just to be safe + } + + $ip = clientIP(); + $text = str_replace('@DATE@',dformat(),$text); + $text = str_replace('@BROWSER@',$_SERVER['HTTP_USER_AGENT'],$text); + $text = str_replace('@IPADDRESS@',$ip,$text); + $text = str_replace('@HOSTNAME@',gethostsbyaddrs($ip),$text); + $text = str_replace('@NEWPAGE@',wl($id,'',true,'&'),$text); + $text = str_replace('@PAGE@',$id,$text); + $text = str_replace('@TITLE@',$conf['title'],$text); + $text = str_replace('@DOKUWIKIURL@',DOKU_URL,$text); + $text = str_replace('@SUMMARY@',$summary,$text); + $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); + $text = str_replace('@NAME@',$INFO['userinfo']['name'],$text); + $text = str_replace('@MAIL@',$INFO['userinfo']['mail'],$text); + + foreach ($replace as $key => $substitution) { + $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); + } + + if($who == 'register'){ + $subject = $lang['mail_new_user'].' '.$summary; + }elseif($rev){ + $subject = $lang['mail_changed'].' '.$id; + $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); + $df = new Diff(explode("\n",rawWiki($id,$rev)), + explode("\n",rawWiki($id))); + $dformat = new UnifiedDiffFormatter(); + $diff = $dformat->format($df); + }else{ + $subject=$lang['mail_newpage'].' '.$id; + $text = str_replace('@OLDPAGE@','none',$text); + $diff = rawWiki($id); + } + $text = str_replace('@DIFF@',$diff,$text); + $subject = '['.$conf['title'].'] '.$subject; + + $from = $conf['mailfrom']; + $from = str_replace('@USER@',$_SERVER['REMOTE_USER'],$from); + $from = str_replace('@NAME@',$INFO['userinfo']['name'],$from); + $from = str_replace('@MAIL@',$INFO['userinfo']['mail'],$from); + + mail_send($to,$subject,$text,$from,'',$bcc); } /** @@ -1127,32 +1145,32 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ * @author Todd Augsburger <todd@rollerorgans.com> */ function getGoogleQuery(){ - if (!isset($_SERVER['HTTP_REFERER'])) { - return ''; - } - $url = parse_url($_SERVER['HTTP_REFERER']); - - $query = array(); - - // temporary workaround against PHP bug #49733 - // see http://bugs.php.net/bug.php?id=49733 - if(UTF8_MBSTRING) $enc = mb_internal_encoding(); - parse_str($url['query'],$query); - if(UTF8_MBSTRING) mb_internal_encoding($enc); - - $q = ''; - if(isset($query['q'])) - $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast - elseif(isset($query['p'])) - $q = $query['p']; // yahoo - elseif(isset($query['query'])) - $q = $query['query']; // lycos, netscape, clusty, hotbot - elseif(preg_match("#a9\.com#i",$url['host'])) // a9 - $q = urldecode(ltrim($url['path'],'/')); - - if($q === '') return ''; - $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/',$q,-1,PREG_SPLIT_NO_EMPTY); - return $q; + if (!isset($_SERVER['HTTP_REFERER'])) { + return ''; + } + $url = parse_url($_SERVER['HTTP_REFERER']); + + $query = array(); + + // temporary workaround against PHP bug #49733 + // see http://bugs.php.net/bug.php?id=49733 + if(UTF8_MBSTRING) $enc = mb_internal_encoding(); + parse_str($url['query'],$query); + if(UTF8_MBSTRING) mb_internal_encoding($enc); + + $q = ''; + if(isset($query['q'])) + $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast + elseif(isset($query['p'])) + $q = $query['p']; // yahoo + elseif(isset($query['query'])) + $q = $query['query']; // lycos, netscape, clusty, hotbot + elseif(preg_match("#a9\.com#i",$url['host'])) // a9 + $q = urldecode(ltrim($url['path'],'/')); + + if($q === '') return ''; + $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/',$q,-1,PREG_SPLIT_NO_EMPTY); + return $q; } /** @@ -1162,18 +1180,18 @@ function getGoogleQuery(){ * @author Andreas Gohr <andi@splitbrain.org> */ function setCorrectLocale(){ - global $conf; - global $lang; - - $enc = strtoupper($lang['encoding']); - foreach ($lang['locales'] as $loc){ - //try locale - if(@setlocale(LC_ALL,$loc)) return; - //try loceale with encoding - if(@setlocale(LC_ALL,"$loc.$enc")) return; - } - //still here? try to set from environment - @setlocale(LC_ALL,""); + global $conf; + global $lang; + + $enc = strtoupper($lang['encoding']); + foreach ($lang['locales'] as $loc){ + //try locale + if(@setlocale(LC_ALL,$loc)) return; + //try loceale with encoding + if(@setlocale(LC_ALL,"$loc.$enc")) return; + } + //still here? try to set from environment + @setlocale(LC_ALL,""); } /** @@ -1186,16 +1204,16 @@ function setCorrectLocale(){ * @version 1.0.0 */ function filesize_h($size, $dec = 1){ - $sizes = array('B', 'KB', 'MB', 'GB'); - $count = count($sizes); - $i = 0; + $sizes = array('B', 'KB', 'MB', 'GB'); + $count = count($sizes); + $i = 0; - while ($size >= 1024 && ($i < $count - 1)) { - $size /= 1024; - $i++; - } + while ($size >= 1024 && ($i < $count - 1)) { + $size /= 1024; + $i++; + } - return round($size, $dec) . ' ' . $sizes[$i]; + return round($size, $dec) . ' ' . $sizes[$i]; } /** @@ -1204,29 +1222,28 @@ function filesize_h($size, $dec = 1){ * @author Andreas Gohr <gohr@cosmocode.de> */ function datetime_h($dt){ - global $lang; - - $ago = time() - $dt; - if($ago > 24*60*60*30*12*2){ - return sprintf($lang['years'], round($ago/(24*60*60*30*12))); - } - if($ago > 24*60*60*30*2){ - return sprintf($lang['months'], round($ago/(24*60*60*30))); - } - if($ago > 24*60*60*7*2){ - return sprintf($lang['weeks'], round($ago/(24*60*60*7))); - } - if($ago > 24*60*60*2){ - return sprintf($lang['days'], round($ago/(24*60*60))); - } - if($ago > 60*60*2){ - return sprintf($lang['hours'], round($ago/(60*60))); - } - if($ago > 60*2){ - return sprintf($lang['minutes'], round($ago/(60))); - } - return sprintf($lang['seconds'], $ago); + global $lang; + $ago = time() - $dt; + if($ago > 24*60*60*30*12*2){ + return sprintf($lang['years'], round($ago/(24*60*60*30*12))); + } + if($ago > 24*60*60*30*2){ + return sprintf($lang['months'], round($ago/(24*60*60*30))); + } + if($ago > 24*60*60*7*2){ + return sprintf($lang['weeks'], round($ago/(24*60*60*7))); + } + if($ago > 24*60*60*2){ + return sprintf($lang['days'], round($ago/(24*60*60))); + } + if($ago > 60*60*2){ + return sprintf($lang['hours'], round($ago/(60*60))); + } + if($ago > 60*2){ + return sprintf($lang['minutes'], round($ago/(60))); + } + return sprintf($lang['seconds'], $ago); } /** @@ -1239,14 +1256,14 @@ function datetime_h($dt){ * @author Andreas Gohr <gohr@cosmocode.de> */ function dformat($dt=null,$format=''){ - global $conf; + global $conf; - if(is_null($dt)) $dt = time(); - $dt = (int) $dt; - if(!$format) $format = $conf['dformat']; + if(is_null($dt)) $dt = time(); + $dt = (int) $dt; + if(!$format) $format = $conf['dformat']; - $format = str_replace('%f',datetime_h($dt),$format); - return strftime($format,$dt); + $format = str_replace('%f',datetime_h($dt),$format); + return strftime($format,$dt); } /** @@ -1256,113 +1273,25 @@ function dformat($dt=null,$format=''){ * @author Christopher Smith <chris@jalakai.co.uk> */ function obfuscate($email) { - global $conf; - - switch ($conf['mailguard']) { - case 'visible' : - $obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] '); - return strtr($email, $obfuscate); - - case 'hex' : - $encode = ''; - for ($x=0; $x < strlen($email); $x++) $encode .= '&#x' . bin2hex($email{$x}).';'; - return $encode; - - case 'none' : - default : - return $email; - } -} + global $conf; -/** - * Let us know if a user is tracking a page or a namespace - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function is_subscribed($id,$uid,$ns=false){ - if(!$ns) { - $file=metaFN($id,'.mlist'); - } else { - if(!getNS($id)) { - $file = metaFN(getNS($id),'.mlist'); - } else { - $file = metaFN(getNS($id),'/.mlist'); + switch ($conf['mailguard']) { + case 'visible' : + $obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] '); + return strtr($email, $obfuscate); + + case 'hex' : + $encode = ''; + $len = strlen($email); + for ($x=0; $x < $len; $x++){ + $encode .= '&#x' . bin2hex($email{$x}).';'; + } + return $encode; + + case 'none' : + default : + return $email; } - } - if (@file_exists($file)) { - $mlist = file($file); - $pos = array_search($uid."\n",$mlist); - return is_int($pos); - } - - return false; -} - -/** - * Return a string with the email addresses of all the - * users subscribed to a page - * - * @author Steven Danz <steven-danz@kc.rr.com> - */ -function subscriber_addresslist($id,$self=true){ - global $conf; - global $auth; - - if (!$conf['subscribers']) return ''; - - $users = array(); - $emails = array(); - - // load the page mlist file content - $mlist = array(); - $file=metaFN($id,'.mlist'); - if (@file_exists($file)) { - $mlist = file($file); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - - // load also the namespace mlist file content - $ns = getNS($id); - while ($ns) { - $nsfile = metaFN($ns,'/.mlist'); - if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - $ns = getNS($ns); - } - // root namespace - $nsfile = metaFN('','.mlist'); - if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - if(!empty($users)) { - foreach (array_keys($users) as $who) { - $info = $auth->getUserData($who); - if($info === false) continue; - $level = auth_aclcheck($id,$who,$info['grps']); - if ($level >= AUTH_READ) { - if (strcasecmp($info['mail'],$conf['notify']) != 0) { - $emails[] = $info['mail']; - } - } - } - } - - return implode(',',$emails); } /** @@ -1371,7 +1300,7 @@ function subscriber_addresslist($id,$self=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function unslash($string,$char="'"){ - return str_replace('\\'.$char,$char,$string); + return str_replace('\\'.$char,$char,$string); } /** @@ -1395,6 +1324,9 @@ function php_to_byte($v){ case 'K': $ret *= 1024; break; + default; + $ret *= 10; + break; } return $ret; } @@ -1422,7 +1354,7 @@ function preg_quote_cb($string){ */ function shorten($keep,$short,$max,$min=9,$char='…'){ $max = $max - utf8_strlen($keep); - if($max < $min) return $keep; + if($max < $min) return $keep; $len = utf8_strlen($short); if($len <= $max) return $keep.$short; $half = floor($max/2); @@ -1440,26 +1372,26 @@ function editorinfo($username){ global $auth; switch($conf['showuseras']){ - case 'username': - case 'email': - case 'email_link': - if($auth) $info = $auth->getUserData($username); - break; - default: - return hsc($username); + case 'username': + case 'email': + case 'email_link': + if($auth) $info = $auth->getUserData($username); + break; + default: + return hsc($username); } if(isset($info) && $info) { switch($conf['showuseras']){ - case 'username': - return hsc($info['name']); - case 'email': - return obfuscate($info['mail']); - case 'email_link': - $mail=obfuscate($info['mail']); - return '<a href="mailto:'.$mail.'">'.$mail.'</a>'; - default: - return hsc($username); + case 'username': + return hsc($info['name']); + case 'email': + return obfuscate($info['mail']); + case 'email_link': + $mail=obfuscate($info['mail']); + return '<a href="mailto:'.$mail.'">'.$mail.'</a>'; + default: + return hsc($username); } } else { return hsc($username); @@ -1503,22 +1435,24 @@ function license_img($type){ * @author Andreas Gohr <andi@splitbrain.org> */ function is_mem_available($mem,$bytes=1048576){ - $limit = trim(ini_get('memory_limit')); - if(empty($limit)) return true; // no limit set! + $limit = trim(ini_get('memory_limit')); + if(empty($limit)) return true; // no limit set! - // parse limit to bytes - $limit = php_to_byte($limit); + // parse limit to bytes + $limit = php_to_byte($limit); - // get used memory if possible - if(function_exists('memory_get_usage')){ - $used = memory_get_usage(); - } + // get used memory if possible + if(function_exists('memory_get_usage')){ + $used = memory_get_usage(); + }else{ + $used = $bytes; + } - if($used+$mem > $limit){ - return false; - } + if($used+$mem > $limit){ + return false; + } - return true; + return true; } /** @@ -1530,9 +1464,28 @@ function is_mem_available($mem,$bytes=1048576){ * @author Andreas Gohr <andi@splitbrain.org> */ function send_redirect($url){ + //are there any undisplayed messages? keep them in session for display + global $MSG; + if (isset($MSG) && count($MSG) && !defined('NOSESSION')){ + //reopen session, store data and close session again + @session_start(); + $_SESSION[DOKU_COOKIE]['msg'] = $MSG; + } + // always close the session session_write_close(); + // work around IE bug + // http://www.ianhoar.com/2008/11/16/internet-explorer-6-and-redirected-anchor-links/ + list($url,$hash) = explode('#',$url); + if($hash){ + if(strpos($url,'?')){ + $url = $url.'&#'.$hash; + }else{ + $url = $url.'?&#'.$hash; + } + } + // check if running on IIS < 6 with CGI-PHP if( isset($_SERVER['SERVER_SOFTWARE']) && isset($_SERVER['GATEWAY_INTERFACE']) && (strpos($_SERVER['GATEWAY_INTERFACE'],'CGI') !== false) && @@ -1545,4 +1498,30 @@ function send_redirect($url){ exit; } +/** + * Validate a value using a set of valid values + * + * This function checks whether a specified value is set and in the array + * $valid_values. If not, the function returns a default value or, if no + * default is specified, throws an exception. + * + * @param string $param The name of the parameter + * @param array $valid_values A set of valid values; Optionally a default may + * be marked by the key “default”. + * @param array $array The array containing the value (typically $_POST + * or $_GET) + * @param string $exc The text of the raised exception + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function valid_input_set($param, $valid_values, $array, $exc = '') { + if (isset($array[$param]) && in_array($array[$param], $valid_values)) { + return $array[$param]; + } elseif (isset($valid_values['default'])) { + return $valid_values['default']; + } else { + throw new Exception($exc); + } +} + //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/config_cascade.php b/inc/config_cascade.php new file mode 100644 index 000000000..3ae68a000 --- /dev/null +++ b/inc/config_cascade.php @@ -0,0 +1,66 @@ +<?php +/** + * The default config cascade + * + * This array configures the default locations of various files in the + * DokuWiki directory hierarchy. It can be overriden in inc/preload.php + */ +$config_cascade = array( + 'main' => array( + 'default' => array(DOKU_CONF.'dokuwiki.php'), + 'local' => array(DOKU_CONF.'local.php'), + 'protected' => array(DOKU_CONF.'local.protected.php'), + ), + 'acronyms' => array( + 'default' => array(DOKU_CONF.'acronyms.conf'), + 'local' => array(DOKU_CONF.'acronyms.local.conf'), + ), + 'entities' => array( + 'default' => array(DOKU_CONF.'entities.conf'), + 'local' => array(DOKU_CONF.'entities.local.conf'), + ), + 'interwiki' => array( + 'default' => array(DOKU_CONF.'interwiki.conf'), + 'local' => array(DOKU_CONF.'interwiki.local.conf'), + ), + 'license' => array( + 'default' => array(DOKU_CONF.'license.php'), + 'local' => array(DOKU_CONF.'license.local.php'), + ), + 'mediameta' => array( + 'default' => array(DOKU_CONF.'mediameta.php'), + 'local' => array(DOKU_CONF.'mediameta.local.php'), + ), + 'mime' => array( + 'default' => array(DOKU_CONF.'mime.conf'), + 'local' => array(DOKU_CONF.'mime.local.conf'), + ), + 'scheme' => array( + 'default' => array(DOKU_CONF.'scheme.conf'), + 'local' => array(DOKU_CONF.'scheme.local.conf'), + ), + 'smileys' => array( + 'default' => array(DOKU_CONF.'smileys.conf'), + 'local' => array(DOKU_CONF.'smileys.local.conf'), + ), + 'wordblock' => array( + 'default' => array(DOKU_CONF.'wordblock.conf'), + 'local' => array(DOKU_CONF.'wordblock.local.conf'), + ), + 'userstyle' => array( + 'default' => DOKU_CONF.'userstyle.css', + 'print' => DOKU_CONF.'printstyle.css', + 'feed' => DOKU_CONF.'feedstyle.css', + 'all' => DOKU_CONF.'allstyle.css', + ), + 'userscript' => array( + 'default' => DOKU_CONF.'userscript.js' + ), + 'acl' => array( + 'default' => DOKU_CONF.'acl.auth.php', + ), + 'plainauth.users' => array( + 'default' => DOKU_CONF.'users.auth.php', + ), +); + diff --git a/inc/confutils.php b/inc/confutils.php index 9ec7a551e..4306dab8f 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -16,29 +16,24 @@ * @author Andreas Gohr <andi@splitbrain.org> */ function mimetype($file, $knownonly=true){ - $ret = array(false,false,false); // return array - $mtypes = getMimeTypes(); // known mimetypes - $exts = join('|',array_keys($mtypes)); // known extensions (regexp) - if(!$knownonly){ - $exts = $exts.'|[_\-A-Za-z0-9]+'; // any extension - } - if(preg_match('#\.('.$exts.')$#i',$file,$matches)){ - $ext = strtolower($matches[1]); - } - - if($ext){ - if (isset($mtypes[$ext])){ - if($mtypes[$ext][0] == '!'){ - $ret = array($ext, substr($mtypes[$ext],1), true); - }else{ - $ret = array($ext, $mtypes[$ext], false); - } - }elseif(!$knownonly){ - $ret = array($ext, 'application/octet-stream', true); + $mtypes = getMimeTypes(); // known mimetypes + $ext = strrpos($file, '.'); + if ($ext === false) { + return array(false, false, false); + } + $ext = strtolower(substr($file, $ext + 1)); + if (!isset($mtypes[$ext])){ + if ($knownonly) { + return array(false, false, false); + } else { + return array($ext, 'application/octet-stream', true); + } + } + if($mtypes[$ext][0] == '!'){ + return array($ext, substr($mtypes[$ext],1), true); + }else{ + return array($ext, $mtypes[$ext], false); } - } - - return $ret; } /** @@ -47,11 +42,11 @@ function mimetype($file, $knownonly=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function getMimeTypes() { - static $mime = NULL; - if ( !$mime ) { - $mime = retrieveConfig('mime','confToHash'); - } - return $mime; + static $mime = null; + if ( !$mime ) { + $mime = retrieveConfig('mime','confToHash'); + } + return $mime; } /** @@ -60,11 +55,11 @@ function getMimeTypes() { * @author Harry Fuecks <hfuecks@gmail.com> */ function getAcronyms() { - static $acronyms = NULL; - if ( !$acronyms ) { - $acronyms = retrieveConfig('acronyms','confToHash'); - } - return $acronyms; + static $acronyms = null; + if ( !$acronyms ) { + $acronyms = retrieveConfig('acronyms','confToHash'); + } + return $acronyms; } /** @@ -73,11 +68,11 @@ function getAcronyms() { * @author Harry Fuecks <hfuecks@gmail.com> */ function getSmileys() { - static $smileys = NULL; - if ( !$smileys ) { - $smileys = retrieveConfig('smileys','confToHash'); - } - return $smileys; + static $smileys = null; + if ( !$smileys ) { + $smileys = retrieveConfig('smileys','confToHash'); + } + return $smileys; } /** @@ -86,11 +81,11 @@ function getSmileys() { * @author Harry Fuecks <hfuecks@gmail.com> */ function getEntities() { - static $entities = NULL; - if ( !$entities ) { - $entities = retrieveConfig('entities','confToHash'); - } - return $entities; + static $entities = null; + if ( !$entities ) { + $entities = retrieveConfig('entities','confToHash'); + } + return $entities; } /** @@ -99,13 +94,13 @@ function getEntities() { * @author Harry Fuecks <hfuecks@gmail.com> */ function getInterwiki() { - static $wikis = NULL; - if ( !$wikis ) { - $wikis = retrieveConfig('interwiki','confToHash',array(true)); - } - //add sepecial case 'this' - $wikis['this'] = DOKU_URL.'{NAME}'; - return $wikis; + static $wikis = null; + if ( !$wikis ) { + $wikis = retrieveConfig('interwiki','confToHash',array(true)); + } + //add sepecial case 'this' + $wikis['this'] = DOKU_URL.'{NAME}'; + return $wikis; } /** @@ -113,23 +108,23 @@ function getInterwiki() { * */ function getWordblocks() { - static $wordblocks = NULL; - if ( !$wordblocks ) { - $wordblocks = retrieveConfig('wordblock','file'); - } - return $wordblocks; + static $wordblocks = null; + if ( !$wordblocks ) { + $wordblocks = retrieveConfig('wordblock','file'); + } + return $wordblocks; } function getSchemes() { - static $schemes = NULL; - if ( !$schemes ) { - $schemes = retrieveConfig('scheme','file'); - } - $schemes = array_map('trim', $schemes); - $schemes = preg_replace('/^#.*/', '', $schemes); - $schemes = array_filter($schemes); - return $schemes; + static $schemes = null; + if ( !$schemes ) { + $schemes = retrieveConfig('scheme','file'); + } + $schemes = array_map('trim', $schemes); + $schemes = preg_replace('/^#.*/', '', $schemes); + $schemes = array_filter($schemes); + return $schemes; } /** @@ -143,22 +138,23 @@ function getSchemes() { * @author Gina Haeussge <gina@foosel.net> */ function linesToHash($lines, $lower=false) { - foreach ( $lines as $line ) { - //ignore comments (except escaped ones) - $line = preg_replace('/(?<![&\\\\])#.*$/','',$line); - $line = str_replace('\\#','#',$line); - $line = trim($line); - if(empty($line)) continue; - $line = preg_split('/\s+/',$line,2); - // Build the associative array - if($lower){ - $conf[strtolower($line[0])] = $line[1]; - }else{ - $conf[$line[0]] = $line[1]; + $conf = array(); + foreach ( $lines as $line ) { + //ignore comments (except escaped ones) + $line = preg_replace('/(?<![&\\\\])#.*$/','',$line); + $line = str_replace('\\#','#',$line); + $line = trim($line); + if(empty($line)) continue; + $line = preg_split('/\s+/',$line,2); + // Build the associative array + if($lower){ + $conf[strtolower($line[0])] = $line[1]; + }else{ + $conf[$line[0]] = $line[1]; + } } - } - return $conf; + return $conf; } /** @@ -172,11 +168,11 @@ function linesToHash($lines, $lower=false) { * @author Gina Haeussge <gina@foosel.net> */ function confToHash($file,$lower=false) { - $conf = array(); - $lines = @file( $file ); - if ( !$lines ) return $conf; + $conf = array(); + $lines = @file( $file ); + if ( !$lines ) return $conf; - return linesToHash($lines, $lower); + return linesToHash($lines, $lower); } /** @@ -190,23 +186,23 @@ function confToHash($file,$lower=false) { * @return array configuration values */ function retrieveConfig($type,$fn,$params=null) { - global $config_cascade; + global $config_cascade; - if(!is_array($params)) $params = array(); + if(!is_array($params)) $params = array(); - $combined = array(); - if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); - foreach (array('default','local','protected') as $config_group) { - if (empty($config_cascade[$type][$config_group])) continue; - foreach ($config_cascade[$type][$config_group] as $file) { - if (@file_exists($file)) { - $config = call_user_func_array($fn,array_merge(array($file),$params)); - $combined = array_merge($combined, $config); - } + $combined = array(); + if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); + foreach (array('default','local','protected') as $config_group) { + if (empty($config_cascade[$type][$config_group])) continue; + foreach ($config_cascade[$type][$config_group] as $file) { + if (@file_exists($file)) { + $config = call_user_func_array($fn,array_merge(array($file),$params)); + $combined = array_merge($combined, $config); + } + } } - } - return $combined; + return $combined; } /** @@ -218,16 +214,16 @@ function retrieveConfig($type,$fn,$params=null) { * @return array list of files, default before local before protected */ function getConfigFiles($type) { - global $config_cascade; - $files = array(); + global $config_cascade; + $files = array(); - if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); - foreach (array('default','local','protected') as $config_group) { - if (empty($config_cascade[$type][$config_group])) continue; - $files = array_merge($files, $config_cascade[$type][$config_group]); - } + if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); + foreach (array('default','local','protected') as $config_group) { + if (empty($config_cascade[$type][$config_group])) continue; + $files = array_merge($files, $config_cascade[$type][$config_group]); + } - return $files; + return $files; } /** @@ -237,23 +233,29 @@ function getConfigFiles($type) { * @returns boolean true if enabled, false if disabled */ function actionOK($action){ - static $disabled = null; - if(is_null($disabled)){ - global $conf; + static $disabled = null; + if(is_null($disabled)){ + global $conf; + global $auth; - // prepare disabled actions array and handle legacy options - $disabled = explode(',',$conf['disableactions']); - $disabled = array_map('trim',$disabled); - if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register'; - if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; - if(isset($conf['subscribers']) && !$conf['subscribers']) { - $disabled[] = 'subscribe'; - $disabled[] = 'subscribens'; + // prepare disabled actions array and handle legacy options + $disabled = explode(',',$conf['disableactions']); + $disabled = array_map('trim',$disabled); + if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register'; + if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; + if(isset($conf['subscribers']) && !$conf['subscribers']) { + $disabled[] = 'subscribe'; + } + if (is_null($auth) || !$auth->canDo('addUser')) { + $disabled[] = 'register'; + } + if (is_null($auth) || !$auth->canDo('modPass')) { + $disabled[] = 'resendpwd'; + } + $disabled = array_unique($disabled); } - $disabled = array_unique($disabled); - } - return !in_array($action,$disabled); + return !in_array($action,$disabled); } /** @@ -266,25 +268,30 @@ function actionOK($action){ * @returns boolean true if headings should be used for $linktype, false otherwise */ function useHeading($linktype) { - static $useHeading = null; + static $useHeading = null; - if (is_null($useHeading)) { - global $conf; + if (is_null($useHeading)) { + global $conf; - if (!empty($conf['useheading'])) { - switch ($conf['useheading']) { - case 'content' : $useHeading['content'] = true; break; - case 'navigation' : $useHeading['navigation'] = true; break; - default: - $useHeading['content'] = true; - $useHeading['navigation'] = true; - } - } else { - $useHeading = array(); + if (!empty($conf['useheading'])) { + switch ($conf['useheading']) { + case 'content': + $useHeading['content'] = true; + break; + + case 'navigation': + $useHeading['navigation'] = true; + break; + default: + $useHeading['content'] = true; + $useHeading['navigation'] = true; + } + } else { + $useHeading = array(); + } } - } - return (!empty($useHeading[$linktype])); + return (!empty($useHeading[$linktype])); } /** @@ -295,13 +302,13 @@ function useHeading($linktype) { * @return string the encoded value */ function conf_encodeString($str,$code) { - switch ($code) { - case 'base64' : return '<b>'.base64_encode($str); - case 'uuencode' : return '<u>'.convert_uuencode($str); - case 'plain': - default: - return $str; - } + switch ($code) { + case 'base64' : return '<b>'.base64_encode($str); + case 'uuencode' : return '<u>'.convert_uuencode($str); + case 'plain': + default: + return $str; + } } /** * return obscured data as plain text @@ -310,11 +317,11 @@ function conf_encodeString($str,$code) { * @return string plain text */ function conf_decodeString($str) { - switch (substr($str,0,3)) { - case '<b>' : return base64_decode(substr($str,3)); - case '<u>' : return convert_uudecode(substr($str,3)); - default: // not encode (or unknown) - return $str; - } + switch (substr($str,0,3)) { + case '<b>' : return base64_decode(substr($str,3)); + case '<u>' : return convert_uudecode(substr($str,3)); + default: // not encode (or unknown) + return $str; + } } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/events.php b/inc/events.php index 1604c73c6..621cb64c1 100644 --- a/inc/events.php +++ b/inc/events.php @@ -7,196 +7,191 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/pluginutils.php'); class Doku_Event { - // public properties - var $name = ''; // READONLY event name, objects must register against this name to see the event - var $data = NULL; // READWRITE data relevant to the event, no standardised format (YET!) - var $result = NULL; // READWRITE the results of the event action, only relevant in "_AFTER" advise - // event handlers may modify this if they are preventing the default action - // to provide the after event handlers with event results - var $canPreventDefault = true; // READONLY if true, event handlers can prevent the events default action - - // private properties, event handlers can effect these through the provided methods - var $_default = true; // whether or not to carry out the default action associated with the event - var $_continue = true; // whether or not to continue propagating the event to other handlers - - /** - * event constructor - */ - function Doku_Event($name, &$data) { - - $this->name = $name; - $this->data =& $data; - - } - - /** - * advise functions - * - * advise all registered handlers of this event - * - * if these methods are used by functions outside of this object, they must - * properly handle correct processing of any default action and issue an - * advise_after() signal. e.g. - * $evt = new Doku_Event(name, data); - * if ($evt->advise_before(canPreventDefault) { - * // default action code block - * } - * $evt->advise_after(); - * unset($evt); - * - * @return results of processing the event, usually $this->_default - */ - function advise_before($enablePreventDefault=true) { - global $EVENT_HANDLER; - - $this->canPreventDefault = $enablePreventDefault; - $EVENT_HANDLER->process_event($this,'BEFORE'); - - return (!$enablePreventDefault || $this->_default); - } - - function advise_after() { - global $EVENT_HANDLER; - - $this->_continue = true; - $EVENT_HANDLER->process_event($this,'AFTER'); - } - - /** - * trigger - * - * - advise all registered (<event>_BEFORE) handlers that this event is about to take place - * - carry out the default action using $this->data based on $enablePrevent and - * $this->_default, all of which may have been modified by the event handlers. - * - advise all registered (<event>_AFTER) handlers that the event has taken place - * - * @return $event->results - * the value set by any <event>_before or <event> handlers if the default action is prevented - * or the results of the default action (as modified by <event>_after handlers) - * or NULL no action took place and no handler modified the value - */ - function trigger($action=NULL, $enablePrevent=true) { - - if (!is_callable($action)) $enablePrevent = false; - - if ($this->advise_before($enablePrevent) && is_callable($action)) { - if (is_array($action)) { - list($obj,$method) = $action; - $this->result = $obj->$method($this->data); - } else { - $this->result = $action($this->data); - } + // public properties + var $name = ''; // READONLY event name, objects must register against this name to see the event + var $data = null; // READWRITE data relevant to the event, no standardised format (YET!) + var $result = null; // READWRITE the results of the event action, only relevant in "_AFTER" advise + // event handlers may modify this if they are preventing the default action + // to provide the after event handlers with event results + var $canPreventDefault = true; // READONLY if true, event handlers can prevent the events default action + + // private properties, event handlers can effect these through the provided methods + var $_default = true; // whether or not to carry out the default action associated with the event + var $_continue = true; // whether or not to continue propagating the event to other handlers + + /** + * event constructor + */ + function Doku_Event($name, &$data) { + + $this->name = $name; + $this->data =& $data; + + } + + /** + * advise functions + * + * advise all registered handlers of this event + * + * if these methods are used by functions outside of this object, they must + * properly handle correct processing of any default action and issue an + * advise_after() signal. e.g. + * $evt = new Doku_Event(name, data); + * if ($evt->advise_before(canPreventDefault) { + * // default action code block + * } + * $evt->advise_after(); + * unset($evt); + * + * @return results of processing the event, usually $this->_default + */ + function advise_before($enablePreventDefault=true) { + global $EVENT_HANDLER; + + $this->canPreventDefault = $enablePreventDefault; + $EVENT_HANDLER->process_event($this,'BEFORE'); + + return (!$enablePreventDefault || $this->_default); + } + + function advise_after() { + global $EVENT_HANDLER; + + $this->_continue = true; + $EVENT_HANDLER->process_event($this,'AFTER'); + } + + /** + * trigger + * + * - advise all registered (<event>_BEFORE) handlers that this event is about to take place + * - carry out the default action using $this->data based on $enablePrevent and + * $this->_default, all of which may have been modified by the event handlers. + * - advise all registered (<event>_AFTER) handlers that the event has taken place + * + * @return $event->results + * the value set by any <event>_before or <event> handlers if the default action is prevented + * or the results of the default action (as modified by <event>_after handlers) + * or NULL no action took place and no handler modified the value + */ + function trigger($action=null, $enablePrevent=true) { + + if (!is_callable($action)) $enablePrevent = false; + + if ($this->advise_before($enablePrevent) && is_callable($action)) { + if (is_array($action)) { + list($obj,$method) = $action; + $this->result = $obj->$method($this->data); + } else { + $this->result = $action($this->data); + } + } + + $this->advise_after(); + + return $this->result; } - $this->advise_after(); - - return $this->result; - } - - /** - * stopPropagation - * - * stop any further processing of the event by event handlers - * this function does not prevent the default action taking place - */ - function stopPropagation() { $this->_continue = false; } - - /** - * preventDefault - * - * prevent the default action taking place - */ - function preventDefault() { $this->_default = false; } + /** + * stopPropagation + * + * stop any further processing of the event by event handlers + * this function does not prevent the default action taking place + */ + function stopPropagation() { $this->_continue = false; } + + /** + * preventDefault + * + * prevent the default action taking place + */ + function preventDefault() { $this->_default = false; } } class Doku_Event_Handler { - // public properties: none + // public properties: none - // private properties - var $_hooks = array(); // array of events and their registered handlers + // private properties + var $_hooks = array(); // array of events and their registered handlers - /** - * event_handler - * - * constructor, loads all action plugins and calls their register() method giving them - * an opportunity to register any hooks they require - */ - function Doku_Event_Handler() { + /** + * event_handler + * + * constructor, loads all action plugins and calls their register() method giving them + * an opportunity to register any hooks they require + */ + function Doku_Event_Handler() { - // load action plugins - $plugin = NULL; - $pluginlist = plugin_list('action'); + // load action plugins + $plugin = null; + $pluginlist = plugin_list('action'); - foreach ($pluginlist as $plugin_name) { - $plugin =& plugin_load('action',$plugin_name); + foreach ($pluginlist as $plugin_name) { + $plugin =& plugin_load('action',$plugin_name); - if ($plugin !== NULL) $plugin->register($this); - } - } - - /** - * register_hook - * - * register a hook for an event - * - * @PARAM $event (string) name used by the event, (incl '_before' or '_after' for triggers) - * @PARAM $obj (obj) object in whose scope method is to be executed, - * if NULL, method is assumed to be a globally available function - * @PARAM $method (function) event handler function - * @PARAM $param (mixed) data passed to the event handler - */ - function register_hook($event, $advise, &$obj, $method, $param=NULL) { - $this->_hooks[$event.'_'.$advise][] = array(&$obj, $method, $param); - } - - function process_event(&$event,$advise='') { - - $evt_name = $event->name . ($advise ? '_'.$advise : '_BEFORE'); - - if (!empty($this->_hooks[$evt_name])) { - $hook = reset($this->_hooks[$evt_name]); - do { -// list($obj, $method, $param) = $hook; - $obj =& $hook[0]; - $method = $hook[1]; - $param = $hook[2]; - - if (is_null($obj)) { - $method($event, $param); - } else { - $obj->$method($event, $param); + if ($plugin !== null) $plugin->register($this); } + } + + /** + * register_hook + * + * register a hook for an event + * + * @param $event (string) name used by the event, (incl '_before' or '_after' for triggers) + * @param $obj (obj) object in whose scope method is to be executed, + * if NULL, method is assumed to be a globally available function + * @param $method (function) event handler function + * @param $param (mixed) data passed to the event handler + */ + function register_hook($event, $advise, &$obj, $method, $param=null) { + $this->_hooks[$event.'_'.$advise][] = array(&$obj, $method, $param); + } - } while ($event->_continue && $hook = next($this->_hooks[$evt_name])); + function process_event(&$event,$advise='') { + + $evt_name = $event->name . ($advise ? '_'.$advise : '_BEFORE'); + + if (!empty($this->_hooks[$evt_name])) { + $hook = reset($this->_hooks[$evt_name]); + do { + // list($obj, $method, $param) = $hook; + $obj =& $hook[0]; + $method = $hook[1]; + $param = $hook[2]; + + if (is_null($obj)) { + $method($event, $param); + } else { + $obj->$method($event, $param); + } + + } while ($event->_continue && $hook = next($this->_hooks[$evt_name])); + } } - } } /** - * trigger_event + * trigger_event * - * function wrapper to process (create, trigger and destroy) an event + * function wrapper to process (create, trigger and destroy) an event * - * @PARAM $name (string) name for the event - * @PARAM $data (mixed) event data - * @PARAM $action (callback) (optional, default=NULL) default action, a php callback function - * @PARAM $canPreventDefault (bool) (optional, default=true) can hooks prevent the default action + * @param $name (string) name for the event + * @param $data (mixed) event data + * @param $action (callback) (optional, default=NULL) default action, a php callback function + * @param $canPreventDefault (bool) (optional, default=true) can hooks prevent the default action * - * @RETURN (mixed) the event results value after all event processing is complete + * @return (mixed) the event results value after all event processing is complete * by default this is the return value of the default action however * it can be set or modified by event handler hooks */ -function trigger_event($name, &$data, $action=NULL, $canPreventDefault=true) { +function trigger_event($name, &$data, $action=null, $canPreventDefault=true) { - $evt = new Doku_Event($name, $data); - return $evt->trigger($action, $canPreventDefault); + $evt = new Doku_Event($name, $data); + return $evt->trigger($action, $canPreventDefault); } - -// create the event handler -global $EVENT_HANDLER; -$EVENT_HANDLER = new Doku_Event_Handler(); diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php index 86113e8c3..e7b8d7afc 100644 --- a/inc/feedcreator.class.php +++ b/inc/feedcreator.class.php @@ -336,7 +336,7 @@ class UniversalFeedCreator extends FeedCreator { } } - function _sendMIME($format) { + function _sendMIME() { header('Content-Type: '.$this->contentType.'; charset='.$this->encoding, true); } @@ -369,35 +369,35 @@ class UniversalFeedCreator extends FeedCreator { } - /** - * Turns on caching and checks if there is a recent version of this feed in the cache. - * If there is, an HTTP redirect header is sent. - * To effectively use caching, you should create the FeedCreator object and call this method - * before anything else, especially before you do the time consuming task to build the feed - * (web fetching, for example). - * - * @param string format format the feed should comply to. Valid values are: - * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". - * @param filename string optional the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()). - * @param timeout int optional the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour) - */ - function useCached($format="RSS0.91", $filename="", $timeout=3600) { - $this->_setFormat($format); - $this->_feed->useCached($filename, $timeout); - } + /** + * Turns on caching and checks if there is a recent version of this feed in the cache. + * If there is, an HTTP redirect header is sent. + * To effectively use caching, you should create the FeedCreator object and call this method + * before anything else, especially before you do the time consuming task to build the feed + * (web fetching, for example). + * + * @param string format format the feed should comply to. Valid values are: + * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". + * @param filename string optional the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()). + * @param timeout int optional the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour) + */ + function useCached($format="RSS0.91", $filename="", $timeout=3600) { + $this->_setFormat($format); + $this->_feed->useCached($filename, $timeout); + } - /** - * Outputs feed to the browser - needed for on-the-fly feed generation (like it is done in WordPress, etc.) - * - * @param format string format the feed should comply to. Valid values are: - * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". - */ - function outputFeed($format='RSS0.91') { + /** + * Outputs feed to the browser - needed for on-the-fly feed generation (like it is done in WordPress, etc.) + * + * @param format string format the feed should comply to. Valid values are: + * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". + */ + function outputFeed($format='RSS0.91') { $this->_setFormat($format); - $this->_sendMIME($format); + $this->_sendMIME(); $this->_feed->outputFeed(); - } + } } @@ -794,7 +794,8 @@ class RSSCreator10 extends FeedCreator { $feed.= " <dc:date>".htmlspecialchars($now->iso8601())."</dc:date>\n"; $feed.= " <items>\n"; $feed.= " <rdf:Seq>\n"; - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <rdf:li rdf:resource=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n"; } $feed.= " </rdf:Seq>\n"; @@ -809,7 +810,8 @@ class RSSCreator10 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <item rdf:about=\"".htmlspecialchars($this->items[$i]->link)."\">\n"; //$feed.= " <dc:type>Posting</dc:type>\n"; $feed.= " <dc:format>text/html</dc:format>\n"; @@ -940,7 +942,8 @@ class RSSCreator091 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <item>\n"; $feed.= " <title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."</title>\n"; $feed.= " <link>".htmlspecialchars($this->items[$i]->link)."</link>\n"; @@ -968,7 +971,7 @@ class RSSCreator091 extends FeedCreator { $feed.= " <comments>".htmlspecialchars($this->items[$i]->comments)."</comments>\n"; } if ($this->items[$i]->date!="") { - $itemDate = new FeedDate($this->items[$i]->date); + $itemDate = new FeedDate($this->items[$i]->date); $feed.= " <pubDate>".htmlspecialchars($itemDate->rfc822())."</pubDate>\n"; } if ($this->items[$i]->guid!="") { @@ -976,18 +979,15 @@ class RSSCreator091 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " "); - if ($this->RSSVersion == "2.0" && $this->items[$i]->enclosure != NULL) - { - $feed.= " <enclosure url=\""; - $feed.= $this->items[$i]->enclosure->url; - $feed.= "\" length=\""; - $feed.= $this->items[$i]->enclosure->length; - $feed.= "\" type=\""; - $feed.= $this->items[$i]->enclosure->type; - $feed.= "\"/>\n"; - } - - + if ($this->RSSVersion == "2.0" && $this->items[$i]->enclosure != null) { + $feed.= " <enclosure url=\""; + $feed.= $this->items[$i]->enclosure->url; + $feed.= "\" length=\""; + $feed.= $this->items[$i]->enclosure->length; + $feed.= "\" type=\""; + $feed.= $this->items[$i]->enclosure->type; + $feed.= "\"/>\n"; + } $feed.= " </item>\n"; } @@ -1038,7 +1038,8 @@ class PIECreator01 extends FeedCreator { $this->truncSize = 500; $feed.= " <subtitle>".$this->getDescription()."</subtitle>\n"; $feed.= " <link>".$this->link."</link>\n"; - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <entry>\n"; $feed.= " <title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."</title>\n"; $feed.= " <link>".htmlspecialchars($this->items[$i]->link)."</link>\n"; @@ -1081,7 +1082,7 @@ class PIECreator01 extends FeedCreator { * @since 1.7.2-mod (modified) * @author Mohammad Hafiz Ismail (mypapit@gmail.com) */ - class AtomCreator10 extends FeedCreator { +class AtomCreator10 extends FeedCreator { function AtomCreator10() { $this->contentType = "application/atom+xml"; @@ -1114,7 +1115,8 @@ class PIECreator01 extends FeedCreator { $feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n"; $feed.= "<link rel=\"self\" type=\"application/atom+xml\" href=\"". $this->syndicationURL . "\" />\n"; $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <entry>\n"; $feed.= " <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n"; $feed.= " <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n"; @@ -1134,8 +1136,8 @@ class PIECreator01 extends FeedCreator { if ($this->items[$i]->description!="") { $feed.= " <summary>".htmlspecialchars($this->items[$i]->description)."</summary>\n"; } - if ($this->items[$i]->enclosure != NULL) { - $feed.=" <link rel=\"enclosure\" href=\"". $this->items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\" length=\"". $this->items[$i]->enclosure->length . "\" />\n"; + if ($this->items[$i]->enclosure != null) { + $feed.=" <link rel=\"enclosure\" href=\"". $this->items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\" length=\"". $this->items[$i]->enclosure->length . "\" />\n"; } $feed.= " </entry>\n"; } @@ -1195,7 +1197,8 @@ class AtomCreator03 extends FeedCreator { } $feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n"; $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " <entry>\n"; $feed.= " <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n"; $feed.= " <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n"; @@ -1254,7 +1257,8 @@ class MBOXCreator extends FeedCreator { if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only $c = "=20"; } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); $h1 = floor($dec%16); + $h2 = floor($dec/16); + $h1 = floor($dec%16); $c = $escape.$hex["$h2"].$hex["$h1"]; } if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted @@ -1274,7 +1278,8 @@ class MBOXCreator extends FeedCreator { * @return string the feed's complete text */ function createFeed() { - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { if ($this->items[$i]->author!="") { $from = $this->items[$i]->author; } else { @@ -1347,7 +1352,8 @@ class OPMLCreator extends FeedCreator { } $feed.= " </head>\n"; $feed.= " <body>\n"; - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0;$i<$icnt; $i++) { $feed.= " <outline type=\"rss\" "; $title = htmlspecialchars(strip_tags(strtr($this->items[$i]->title,"\n\r"," "))); $feed.= " title=\"".$title."\""; @@ -1468,7 +1474,8 @@ class HTMLCreator extends FeedCreator { $feedArray[] = "<div class='".$this->stylePrefix."header'>".$this->header."</div>"; } - for ($i=0;$i<count($this->items);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { if ($this->separator and $i > 0) { $feedArray[] = "<div class='".$this->stylePrefix."separator'>".$this->separator."</div>"; } @@ -1528,8 +1535,7 @@ class JSCreator extends HTMLCreator { * writes the javascript * @return string the scripts's complete text */ - function createFeed() - { + function createFeed() { $feed = parent::createFeed(); $feedArray = explode("\n",$feed); diff --git a/inc/form.php b/inc/form.php index a514526b7..70190d2b4 100644 --- a/inc/form.php +++ b/inc/form.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/html.php'); /** * Class for creating simple HTML forms. @@ -283,6 +282,27 @@ class Doku_Form { echo $this->getForm(); } + /** + * Add a radio set + * + * This function adds a set of radio buttons to the form. If $_POST[$name] + * is set, this radio is preselected, else the first radio button. + * + * @param string $name The HTML field name + * @param array $entries An array of entries $value => $caption + * + * @author Adrian Lang <lang@cosmocode.de> + */ + + function addRadioSet($name, $entries) { + $value = (isset($_POST[$name]) && isset($entries[$_POST[$name]])) ? + $_POST[$name] : key($entries); + foreach($entries as $val => $cap) { + $data = ($value === $val) ? array('checked' => 'checked') : array(); + $this->addElement(form_makeRadioField($name, $val, $cap, '', '', $data)); + } + } + } /** @@ -464,6 +484,8 @@ function form_makeFileField($name, $label=null, $id='', $class='', $attrs=array( * form_makeCheckboxField * * Create a form element for a checkbox input element with label. + * If $value is an array, a hidden field with the same name and the value + * $value[1] is constructed as well. * * @see form_makeFieldRight * @author Tom N Harris <tnharris@whoopdedo.org> @@ -798,6 +820,8 @@ function form_filefield($attrs) { * _class : class attribute used on the label tag * _text : Text to display after the input. Not escaped. * Other attributes are passed to buildAttributes() for the input tag. + * If value is an array, a hidden field with the same name and the value + * $attrs['value'][1] is constructed as well. * * @author Tom N Harris <tnharris@whoopdedo.org> */ @@ -807,7 +831,13 @@ function form_checkboxfield($attrs) { $s = '<label'; if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"'; if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"'; - $s .= '><input type="checkbox" '.buildAttributes($attrs,true).'/>'; + $s .= '>'; + if (is_array($attrs['value'])) { + echo '<input type="hidden" name="' . hsc($attrs['name']) .'"' + . ' value="' . hsc($attrs['value'][1]) . '" />'; + $attrs['value'] = $attrs['value'][0]; + } + $s .= '<input type="checkbox" '.buildAttributes($attrs,true).'/>'; $s .= ' <span>'.$attrs['_text'].'</span></label>'; if (preg_match('/(^| )block($| )/', $attrs['_class'])) $s .= '<br />'; @@ -859,7 +889,9 @@ function form_menufield($attrs) { $s .= ' <select '.buildAttributes($attrs,true).'>'.DOKU_LF; if (!empty($attrs['_options'])) { $selected = false; - for($n=0;$n<count($attrs['_options']);$n++){ + + $cnt = count($attrs['_options']); + for($n=0; $n < $cnt; $n++){ @list($value,$text,$select) = $attrs['_options'][$n]; $p = ''; if (!is_null($text)) diff --git a/inc/fulltext.php b/inc/fulltext.php index c8236e1d4..e90205e9c 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -7,8 +7,11 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/indexer.php'); +/** + * create snippets for the first few results only + */ +if(!defined('FT_SNIPPET_NUMBER')) define('FT_SNIPPET_NUMBER',15); /** * The fulltext search @@ -20,10 +23,10 @@ require_once(DOKU_INC.'inc/indexer.php'); */ function ft_pageSearch($query,&$highlight){ - $data['query'] = $query; - $data['highlight'] =& $highlight; + $data['query'] = $query; + $data['highlight'] =& $highlight; - return trigger_event('SEARCH_QUERY_FULLPAGE', $data, '_ft_pageSearch'); + return trigger_event('SEARCH_QUERY_FULLPAGE', $data, '_ft_pageSearch'); } /** @@ -135,7 +138,6 @@ function ft_backlinks($id){ $docs = array_keys(ft_resultCombine(array_values($matches))); $docs = array_filter($docs,'isVisiblePage'); // discard hidden pages if(!count($docs)) return $result; - require_once(DOKU_INC.'inc/parserutils.php'); // check metadata for matching links foreach($docs as $match){ @@ -189,7 +191,7 @@ function ft_mediause($id,$max){ foreach($matches[1] as $img){ $img = trim($img); if(preg_match('/^https?:\/\//i',$img)) continue; // skip external images - list($img) = explode('?',$img); // remove any parameters + list($img) = explode('?',$img); // remove any parameters resolve_mediaid($ns,$img,$exists); // resolve the possibly relative img if($img == $id){ // we have a match @@ -211,53 +213,64 @@ function ft_mediause($id,$max){ * Quicksearch for pagenames * * By default it only matches the pagename and ignores the - * namespace. This can be changed with the second parameter + * namespace. This can be changed with the second parameter. + * The third parameter allows to search in titles as well. * - * refactored into ft_pageLookup(), _ft_pageLookup() and trigger_event() + * The function always returns titles as well * + * @triggers SEARCH_QUERY_PAGELOOKUP * @author Andreas Gohr <andi@splitbrain.org> + * @author Adrian Lang <lang@cosmocode.de> */ -function ft_pageLookup($id,$pageonly=true){ - $data = array('id' => $id, 'pageonly' => $pageonly); - return trigger_event('SEARCH_QUERY_PAGELOOKUP',$data,'_ft_pageLookup'); +function ft_pageLookup($id, $in_ns=false, $in_title=false){ + $data = compact('id', 'in_ns', 'in_title'); + $data['has_titles'] = true; // for plugin backward compatibility check + return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } function _ft_pageLookup(&$data){ - // split out original parameterrs + // split out original parameters $id = $data['id']; - $pageonly = $data['pageonly']; + if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) { + $ns = cleanID($matches[1]) . ':'; + $id = str_replace($matches[0], '', $id); + } - global $conf; - $id = preg_quote($id,'/'); - $pages = file($conf['indexdir'].'/page.idx'); - if($id) $pages = array_values(preg_grep('/'.$id.'/',$pages)); - - $cnt = count($pages); - for($i=0; $i<$cnt; $i++){ - if($pageonly){ - if(!preg_match('/'.$id.'/',noNS($pages[$i]))){ - unset($pages[$i]); - continue; + $in_ns = $data['in_ns']; + $in_title = $data['in_title']; + + $pages = array_map('rtrim', idx_getIndex('page', '')); + $titles = array_map('rtrim', idx_getIndex('title', '')); + $pages = array_combine($pages, $titles); + + $cleaned = cleanID($id); + if ($id !== '' && $cleaned !== '') { + foreach ($pages as $p_id => $p_title) { + if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) === false) && + (!$in_title || (stripos($p_title, $id) === false)) ) { + unset($pages[$p_id]); } } - if(!page_exists($pages[$i])){ - unset($pages[$i]); - continue; + } + if (isset($ns)) { + foreach (array_keys($pages) as $p_id) { + if (strpos($p_id, $ns) !== 0) { + unset($pages[$p_id]); + } } } - $pages = array_filter($pages,'isVisiblePage'); // discard hidden pages - if(!count($pages)) return array(); - + // discard hidden pages + // discard nonexistent pages // check ACL permissions foreach(array_keys($pages) as $idx){ - if(auth_quickaclcheck(trim($pages[$idx])) < AUTH_READ){ + if(!isVisiblePage($idx) || !page_exists($idx) || + auth_quickaclcheck($idx) < AUTH_READ) { unset($pages[$idx]); } } - $pages = array_map('trim',$pages); - usort($pages,'ft_pagesorter'); + uasort($pages,'ft_pagesorter'); return $pages; } @@ -286,11 +299,11 @@ function ft_pagesorter($a, $b){ function ft_snippet($id,$highlight){ $text = rawWiki($id); $evdata = array( - 'id' => $id, - 'text' => &$text, - 'highlight' => &$highlight, - 'snippet' => '', - ); + 'id' => $id, + 'text' => &$text, + 'highlight' => &$highlight, + 'snippet' => '', + ); $evt = new Doku_Event('FULLTEXT_SNIPPET_CREATE',$evdata); if ($evt->advise_before()) { @@ -305,60 +318,60 @@ function ft_snippet($id,$highlight){ $re3 = "$re1.{0,45}(?!\\1)$re1.{0,45}(?!\\1)(?!\\2)$re1"; for ($cnt=4; $cnt--;) { - if (0) { - } else if (preg_match('/'.$re3.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { - } else if (preg_match('/'.$re2.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { - } else if (preg_match('/'.$re1.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { - } else { - break; - } - - list($str,$idx) = $match[0]; - - // convert $idx (a byte offset) into a utf8 character offset - $utf8_idx = utf8_strlen(substr($text,0,$idx)); - $utf8_len = utf8_strlen($str); - - // establish context, 100 bytes surrounding the match string - // first look to see if we can go 100 either side, - // then drop to 50 adding any excess if the other side can't go to 50, - $pre = min($utf8_idx-$utf8_offset,100); - $post = min($len-$utf8_idx-$utf8_len,100); - - if ($pre>50 && $post>50) { - $pre = $post = 50; - } else if ($pre>50) { - $pre = min($pre,100-$post); - } else if ($post>50) { - $post = min($post, 100-$pre); - } else { - // both are less than 50, means the context is the whole string - // make it so and break out of this loop - there is no need for the - // complex snippet calculations - $snippets = array($text); - break; - } - - // establish context start and end points, try to append to previous - // context if possible - $start = $utf8_idx - $pre; - $append = ($start < $end) ? $end : false; // still the end of the previous context snippet - $end = $utf8_idx + $utf8_len + $post; // now set it to the end of this context - - if ($append) { - $snippets[count($snippets)-1] .= utf8_substr($text,$append,$end-$append); - } else { - $snippets[] = utf8_substr($text,$start,$end-$start); - } - - // set $offset for next match attempt - // substract strlen to avoid splitting a potential search success, - // this is an approximation as the search pattern may match strings - // of varying length and it will fail if the context snippet - // boundary breaks a matching string longer than the current match - $utf8_offset = $utf8_idx + $post; - $offset = $idx + strlen(utf8_substr($text,$utf8_idx,$post)); - $offset = utf8_correctIdx($text,$offset); + if (0) { + } else if (preg_match('/'.$re3.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { + } else if (preg_match('/'.$re2.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { + } else if (preg_match('/'.$re1.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) { + } else { + break; + } + + list($str,$idx) = $match[0]; + + // convert $idx (a byte offset) into a utf8 character offset + $utf8_idx = utf8_strlen(substr($text,0,$idx)); + $utf8_len = utf8_strlen($str); + + // establish context, 100 bytes surrounding the match string + // first look to see if we can go 100 either side, + // then drop to 50 adding any excess if the other side can't go to 50, + $pre = min($utf8_idx-$utf8_offset,100); + $post = min($len-$utf8_idx-$utf8_len,100); + + if ($pre>50 && $post>50) { + $pre = $post = 50; + } else if ($pre>50) { + $pre = min($pre,100-$post); + } else if ($post>50) { + $post = min($post, 100-$pre); + } else { + // both are less than 50, means the context is the whole string + // make it so and break out of this loop - there is no need for the + // complex snippet calculations + $snippets = array($text); + break; + } + + // establish context start and end points, try to append to previous + // context if possible + $start = $utf8_idx - $pre; + $append = ($start < $end) ? $end : false; // still the end of the previous context snippet + $end = $utf8_idx + $utf8_len + $post; // now set it to the end of this context + + if ($append) { + $snippets[count($snippets)-1] .= utf8_substr($text,$append,$end-$append); + } else { + $snippets[] = utf8_substr($text,$start,$end-$start); + } + + // set $offset for next match attempt + // substract strlen to avoid splitting a potential search success, + // this is an approximation as the search pattern may match strings + // of varying length and it will fail if the context snippet + // boundary breaks a matching string longer than the current match + $utf8_offset = $utf8_idx + $post; + $offset = $idx + strlen(utf8_substr($text,$utf8_idx,$post)); + $offset = utf8_correctIdx($text,$offset); } $m = "\1"; @@ -391,16 +404,16 @@ function ft_resultCombine($args){ $result = array(); if ($array_count > 1) { - foreach ($args[0] as $key => $value) { - $result[$key] = $value; - for ($i = 1; $i !== $array_count; $i++) { - if (!isset($args[$i][$key])) { - unset($result[$key]); - break; + foreach ($args[0] as $key => $value) { + $result[$key] = $value; + for ($i = 1; $i !== $array_count; $i++) { + if (!isset($args[$i][$key])) { + unset($result[$key]); + break; + } + $result[$key] += $args[$i][$key]; } - $result[$key] += $args[$i][$key]; } - } } return $result; } @@ -651,30 +664,30 @@ function ft_queryParser($query){ switch (substr($token, 0, 3)) { case 'N+:': - $q['ns'][] = $body; // for backward compatibility - break; + $q['ns'][] = $body; // for backward compatibility + break; case 'N-:': - $q['notns'][] = $body; // for backward compatibility - break; + $q['notns'][] = $body; // for backward compatibility + break; case 'W_:': - $q['words'][] = $body; - break; + $q['words'][] = $body; + break; case 'W-:': - $q['words'][] = $body; - $q['not'][] = $body; // for backward compatibility - break; + $q['words'][] = $body; + $q['not'][] = $body; // for backward compatibility + break; case 'W+:': - $q['words'][] = $body; - $q['highlight'][] = str_replace('*', '', $body); - $q['and'][] = $body; // for backward compatibility - break; + $q['words'][] = $body; + $q['highlight'][] = str_replace('*', '', $body); + $q['and'][] = $body; // for backward compatibility + break; case 'P-:': - $q['phrases'][] = $body; - break; + $q['phrases'][] = $body; + break; case 'P+:': - $q['phrases'][] = $body; - $q['highlight'][] = str_replace('*', '', $body); - break; + $q['phrases'][] = $body; + $q['highlight'][] = str_replace('*', '', $body); + break; } } foreach (array('words', 'phrases', 'highlight', 'ns', 'notns', 'and', 'not') as $key) { diff --git a/inc/geshi.php b/inc/geshi.php index abe69a2bd..31d2da49f 100644 --- a/inc/geshi.php +++ b/inc/geshi.php @@ -41,7 +41,7 @@ // /** The version of this GeSHi file */ -define('GESHI_VERSION', '1.0.8.4'); +define('GESHI_VERSION', '1.0.8.8'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { @@ -207,8 +207,10 @@ define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32); //%[01]+ define('GESHI_NUMBER_BIN_PREFIX_0B', 64); //0b[01]+ /** Number format to highlight octal numbers with a leading zero */ define('GESHI_NUMBER_OCT_PREFIX', 256); //0[0-7]+ +/** Number format to highlight octal numbers with a prefix 0o (logtalk) */ +define('GESHI_NUMBER_OCT_PREFIX_0O', 512); //0[0-7]+ /** Number format to highlight octal numbers with a suffix of o */ -define('GESHI_NUMBER_OCT_SUFFIX', 512); //[0-7]+[oO] +define('GESHI_NUMBER_OCT_SUFFIX', 1024); //[0-7]+[oO] /** Number format to highlight hex numbers with a prefix 0x */ define('GESHI_NUMBER_HEX_PREFIX', 4096); //0x[0-9a-fA-F]+ /** Number format to highlight hex numbers with a suffix of h */ @@ -1084,13 +1086,14 @@ class GeSHi { * @param string The style to make the escape characters * @param boolean Whether to merge the new styles with the old or just * to overwrite them + * @param int Tells the group of strings for which style should be set. * @since 1.0.0 */ - function set_strings_style($style, $preserve_defaults = false) { + function set_strings_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { - $this->language_data['STYLES']['STRINGS'][0] = $style; + $this->language_data['STYLES']['STRINGS'][$group] = $style; } else { - $this->language_data['STYLES']['STRINGS'][0] .= $style; + $this->language_data['STYLES']['STRINGS'][$group] .= $style; } } @@ -1132,13 +1135,14 @@ class GeSHi { * @param string The style to make the numbers * @param boolean Whether to merge the new styles with the old or just * to overwrite them + * @param int Tells the group of numbers for which style should be set. * @since 1.0.0 */ - function set_numbers_style($style, $preserve_defaults = false) { + function set_numbers_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { - $this->language_data['STYLES']['NUMBERS'][0] = $style; + $this->language_data['STYLES']['NUMBERS'][$group] = $style; } else { - $this->language_data['STYLES']['NUMBERS'][0] .= $style; + $this->language_data['STYLES']['NUMBERS'][$group] .= $style; } } @@ -1370,6 +1374,7 @@ class GeSHi { 'delphi' => array('dpk', 'dpr', 'pp', 'pas'), 'diff' => array('diff', 'patch'), 'dos' => array('bat', 'cmd'), + 'gdb' => array('kcrash', 'crash', 'bt'), 'gettext' => array('po', 'pot'), 'gml' => array('gml'), 'gnuplot' => array('plt'), @@ -1966,31 +1971,33 @@ class GeSHi { //All this formats are matched case-insensitively! static $numbers_format = array( GESHI_NUMBER_INT_BASIC => - '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?!(?m:$)))', + '(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_INT_CSTYLE => - '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z\.])', + '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_BIN_SUFFIX => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?b(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?[bB](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_BIN_PREFIX_PERCENT => - '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z\.])', + '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_BIN_PREFIX_0B => - '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z\.])', + '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_OCT_PREFIX => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', + GESHI_NUMBER_OCT_PREFIX_0O => + '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0o[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_OCT_SUFFIX => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_HEX_PREFIX => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-f]+?(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_HEX_SUFFIX => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-f]*?h(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-fA-F]*?[hH](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_FLT_NONSCI => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_FLT_NONSCI_F => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_FLT_SCI_SHORT => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z\.])', + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)', GESHI_NUMBER_FLT_SCI_ZERO => - '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z\.])' + '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)' ); //At this step we have an associative array with flag groups for a @@ -2012,7 +2019,7 @@ class GeSHi { } $this->language_data['NUMBERS_RXCACHE'][$key] = - "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!\|>)(?![^\"\|\>\<]+<)/i"; + "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // } } @@ -2033,6 +2040,10 @@ class GeSHi { // Start the timer $start_time = microtime(); + // Replace all newlines to a common form. + $code = str_replace("\r\n", "\n", $this->source); + $code = str_replace("\r", "\n", $code); + // Firstly, if there is an error, we won't highlight if ($this->error) { //Escape the source for output @@ -2053,13 +2064,6 @@ class GeSHi { $this->build_parse_cache(); } - // Replace all newlines to a common form. - $code = str_replace("\r\n", "\n", $this->source); - $code = str_replace("\r", "\n", $code); - - // Add spaces for regular expression matching and line numbers -// $code = "\n" . $code . "\n"; - // Initialise various stuff $length = strlen($code); $COMMENT_MATCHED = false; @@ -2647,7 +2651,8 @@ class GeSHi { $start = $i + $hq_strlen; while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) { $start = $close_pos + 1; - if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR']) { + if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] && + (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape // make sure this quote is not escaped foreach ($this->language_data['HARDESCAPE'] as $hardescape) { if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) { @@ -3087,7 +3092,7 @@ class GeSHi { $result = preg_replace('/^ /m', ' ', $result); $result = str_replace(' ', ' ', $result); - if ($this->line_numbers == GESHI_NO_LINE_NUMBERS) { + if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { if ($this->line_ending === null) { $result = nl2br($result); } else { @@ -3430,7 +3435,7 @@ class GeSHi { //FIX for symbol highlighting ... if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp) - $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); + $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); $global_offset = 0; for ($s_id = 0; $s_id < $n_symbols; ++$s_id) { $symbol_match = $pot_symbols[$s_id][0][0]; @@ -3969,16 +3974,16 @@ class GeSHi { * @todo Document behaviour change - class is outputted regardless of whether * we're using classes or not. Same with style */ - $attributes = ' class="' . $this->language; + $attributes = ' class="' . $this->_genCSSName($this->language); if ($this->overall_class != '') { - $attributes .= " ".$this->overall_class; + $attributes .= " ".$this->_genCSSName($this->overall_class); } $attributes .= '"'; if ($this->overall_id != '') { $attributes .= " id=\"{$this->overall_id}\""; } - if ($this->overall_style != '') { + if ($this->overall_style != '' && !$this->use_classes) { $attributes .= ' style="' . $this->overall_style . '"'; } @@ -4215,6 +4220,10 @@ class GeSHi { return strtr($string, $aTransSpecchar); } + function _genCSSName($name){ + return (is_numeric($name[0]) ? '_' : '') . $name; + } + /** * Returns a stylesheet for the highlighted code. If $economy mode * is true, we only return the stylesheet declarations that matter for @@ -4242,11 +4251,11 @@ class GeSHi { // that should be used, the same for a class. Otherwise, a selector // of '' means that these styles will be applied anywhere if ($this->overall_id) { - $selector = '#' . $this->overall_id; + $selector = '#' . $this->_genCSSName($this->overall_id); } else { - $selector = '.' . $this->language; + $selector = '.' . $this->_genCSSName($this->language); if ($this->overall_class) { - $selector .= '.' . $this->overall_class; + $selector .= '.' . $this->_genCSSName($this->overall_class); } } $selector .= ' '; @@ -4555,7 +4564,10 @@ class GeSHi { // make sure the last tokens get converted as well $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) { - $regexp_list[++$list_key] = $new_entry; + if ( !empty($regexp_list[$list_key]) ) { + ++$list_key; + } + $regexp_list[$list_key] = $new_entry; } else { if (!empty($regexp_list[$list_key])) { $new_entry = '|' . $new_entry; diff --git a/inc/geshi/4cs.php b/inc/geshi/4cs.php new file mode 100644 index 000000000..48b671f4a --- /dev/null +++ b/inc/geshi/4cs.php @@ -0,0 +1,139 @@ +<?php +/************************************************************************************* + * 4cs.php + * ------ + * Author: Jason Curl (jason.curl@continental-corporation.com) + * Copyright: (c) 2009 Jason Curl + * Release Version: 1.0.8.8 + * Date Started: 2009/09/05 + * + * 4CS language file for GeSHi. + * + * CHANGES + * ------- + * 2009/09/05 + * - First Release + * + * TODO (updated 2009/09/01) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'GADV 4CS', + 'COMMENT_SINGLE' => array(1 => "//"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'All', 'AllMatches', 'And', 'And_Filters', 'As', 'Asc', 'BasedOn', + 'BestMatch', 'Block', 'Buffer', 'ByRef', 'ByVal', 'Call', 'Channel', + 'Chr', 'Clear', 'Close', 'Confirm', 'Const', 'Continue', 'Cos', + 'Critical', 'Declare', 'Default', 'DefaultChannel', 'DefaultDelayTime', + 'DefaultReceiveMode', 'DefaultResponseTime', '#Define', 'DelayTime', + 'Delete', 'Div', 'Else', '#Else', 'ElseIf', '#ElseIf', 'End', 'EndCritical', + 'EndInlineC', 'EndFunction', 'EndIf', '#EndIf', 'EndInputList', + 'EndLocalChannel', 'EndScenario', 'EndSub', 'EndWhile', 'Error', + 'ErrorLevelOff', 'ErrorLevelOn', 'ErrorLevelSet', 'ErrorLevelSetRaw', + 'Event', 'EventMode', 'EventOff', 'EventOn', 'EventSet', 'EventSetRaw', + 'Execute', 'Exit', 'Exp', 'FileClose', 'FilterClear', 'FileEOF', 'FileOpen', + 'FileRead', 'FileSize', 'FileWrite', 'FilterAdd', 'FilterMode', + 'FilterOff', 'FilterOn', 'For', 'Format', 'Function', 'GoOnline', 'GoTo', + 'Handle', 'Hide', 'If', '#If', '#IfDef', '#IfNDef', 'Ignore', '#Include', + 'InlineC', 'Input', 'InputItem', 'InputList', 'Kill', 'LBound', 'LocalChannel', + 'Local', 'Log', 'Log10', 'LogOff', 'LogOn', 'Loop', 'Message', 'Mod', + 'MonitorChannel', 'MostFormat', 'MostMessage', 'Named', 'Never', 'Next', + 'NoOrder', 'Not', 'Nothing', 'NoWait', 'Numeric', 'OnError', 'OnEvent', + 'Or', 'Or_Filters', 'Order', 'Pass', 'Pow', 'Prototype', 'Quit', 'Raise', + 'Random', 'Receive', 'ReceiveMode', 'ReceiveRaw', 'Redim', 'Remote', 'Repeat', + 'Repeated', 'ResponseTime', 'Resume', 'ResumeCritical', 'RT_Common', + 'RT_Dll_Call', 'RT_FILEIO', 'RT_General', 'RT_HardwareAccess', + 'RT_MessageVariableAccess', 'RT_Scenario', 'RT_VariableAccess', 'Runtime', + 'Scenario', 'ScenarioEnd', 'ScenarioStart', 'ScenarioStatus', 'ScenarioTerminate', + 'Send', 'SendRaw', 'Set', 'SetError', 'Sin', 'Single', 'Show', 'Start', + 'StartCritical', 'Starts', 'Static', 'Step', 'Stop', 'String', 'Sub', + 'System_Error', 'TerminateAllChilds', 'Terminates', 'Then', 'Throw', 'TimeOut', + 'To', 'TooLate', 'Trunc', 'UBound', 'Unexpected', 'Until', 'User_Error', + 'View', 'Wait', 'Warning', 'While', 'XOr' + ), + 2 => array( + 'alias', 'winapi', 'long', 'char', 'double', 'float', 'int', 'short', 'lib' + ) + ), + 'SYMBOLS' => array( + '=', ':=', '<', '>', '<>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000C0; font-weight: bold;', + 2 => 'color: #808080;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000080;' + ), + 'STRINGS' => array( + 0 => 'color: #800080;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #66cc66;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php index 229de9891..942d2397e 100644 --- a/inc/geshi/abap.php +++ b/inc/geshi/abap.php @@ -7,7 +7,7 @@ * - Sandra Rossi (sandra.rossi@gmail.com) * - Jacob Laursen (jlu@kmd.dk) * Copyright: (c) 2007 Andres Picazo - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * ABAP language file for GeSHi. diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php index 016dc8e90..41d66edd2 100644 --- a/inc/geshi/actionscript.php +++ b/inc/geshi/actionscript.php @@ -4,7 +4,7 @@ * ---------------- * Author: Steffen Krause (Steffen.krause@muse.de) * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * Actionscript language file for GeSHi. diff --git a/inc/geshi/actionscript3.php b/inc/geshi/actionscript3.php index a54e9d4df..4aab929dc 100644 --- a/inc/geshi/actionscript3.php +++ b/inc/geshi/actionscript3.php @@ -4,7 +4,7 @@ * ---------------- * Author: Jordi Boggiano (j.boggiano@seld.be) * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/11/26 * * ActionScript3 language file for GeSHi. diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php index 530ed5e4c..c6b0597bb 100644 --- a/inc/geshi/ada.php +++ b/inc/geshi/ada.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/29 * * Ada language file for GeSHi. @@ -57,14 +57,16 @@ $language_data = array ( 'goto', 'return' ), 2 => array( - 'abs', 'and', 'mod', 'not', 'or', 'rem', 'xor' + 'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor' ), 3 => array( - 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', 'at', 'body', - 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', - 'function', 'generic', 'in', 'limited', 'new', 'null', 'of', 'others', 'out', 'package', 'pragma', - 'private', 'procedure', 'protected', 'raise', 'range', 'record', 'renames', 'requeue', 'reverse', - 'separate', 'subtype', 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' + 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', + 'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', + 'function', 'generic', 'in', 'interface', 'limited', 'new', 'null', + 'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private', + 'procedure', 'protected', 'raise', 'range', 'record', 'renames', + 'requeue', 'reverse', 'separate', 'subtype', 'synchronized', + 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' ) ), 'SYMBOLS' => array( @@ -130,4 +132,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php index f319e3e3c..34704eb22 100644 --- a/inc/geshi/apache.php +++ b/inc/geshi/apache.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/29/07 * * Apache language file for GeSHi. diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php index 85e3d6d0d..9e214f2e1 100644 --- a/inc/geshi/applescript.php +++ b/inc/geshi/applescript.php @@ -4,7 +4,7 @@ * -------- * Author: Stephan Klimek (http://www.initware.org) * Copyright: Stephan Klimek (http://www.initware.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/07/20 * * AppleScript language file for GeSHi. diff --git a/inc/geshi/apt_sources.php b/inc/geshi/apt_sources.php index 891c10e5e..f4cf9ae3f 100644 --- a/inc/geshi/apt_sources.php +++ b/inc/geshi/apt_sources.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/06/17 * * Apt sources.list language file for GeSHi. diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php index 2efeac9dc..d54e24023 100644 --- a/inc/geshi/asm.php +++ b/inc/geshi/asm.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/27 * * x86 Assembler language file for GeSHi. diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php index 7bfec11e1..4a9d6c8e2 100644 --- a/inc/geshi/asp.php +++ b/inc/geshi/asp.php @@ -4,7 +4,7 @@ * -------- * Author: Amit Gupta (http://blog.igeek.info/) * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/13 * * ASP language file for GeSHi. @@ -151,7 +151,7 @@ $language_data = array ( 2 => array( '<script language="javascript" runat="server">' => '</script>' ), - 3 => "/(?<start><%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?<end>%>|\Z)/sm" + 3 => "/(?P<start><%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P<end>%>|\Z)/sm" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/autoconf.php b/inc/geshi/autoconf.php new file mode 100644 index 000000000..0883f9f54 --- /dev/null +++ b/inc/geshi/autoconf.php @@ -0,0 +1,512 @@ +<?php +/************************************************************************************* + * autoconf.php + * ----- + * Author: Mihai Vasilian (grayasm@gmail.com) + * Copyright: (c) 2010 Mihai Vasilian + * Release Version: 1.0.8.8 + * Date Started: 2010/01/25 + * + * autoconf language file for GeSHi. + * + *********************************************************************************** + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Autoconf', + 'COMMENT_SINGLE' => array(2 => '#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Single Line comment started by dnl + 3 => '/(?<!\$)\bdnl\b.*$/m', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array(), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'AC_ACT_IFELSE', + 'AC_AIX', + 'AC_ALLOCA', + 'AC_ARG_ARRAY', + 'AC_ARG_ENABLE', + 'AC_ARG_PROGRAM', + 'AC_ARG_VAR', + 'AC_ARG_WITH', + 'AC_AUTOCONF_VERSION', + 'AC_BEFORE', + 'AC_C_BACKSLASH_A', + 'AC_C_BIGENDIAN', + 'AC_C_CHAR_UNSIGNED', + 'AC_C_CONST', + 'AC_C_CROSS', + 'AC_C_FLEXIBLE_ARRAY_MEMBER', + 'AC_C_INLINE', + 'AC_C_LONG_DOUBLE', + 'AC_C_PROTOTYPES', + 'AC_C_RESTRICT', + 'AC_C_STRINGIZE', + 'AC_C_TYPEOF', + 'AC_C_VARARRAYS', + 'AC_C_VOLATILE', + 'AC_CACHE_CHECK', + 'AC_CACHE_LOAD', + 'AC_CACHE_SAVE', + 'AC_CACHE_VAL', + 'AC_CANONICAL_BUILD', + 'AC_CANONICAL_HOST', + 'AC_CANONICAL_SYSTEM', + 'AC_CANONICAL_TARGET', + 'AC_CHAR_UNSIGNED', + 'AC_CHECK_ALIGNOF', + 'AC_CHECK_DECL', + 'AC_CHECK_DECLS', + 'AC_CHECK_DECLS_ONCE', + 'AC_CHECK_FILE', + 'AC_CHECK_FILES', + 'AC_CHECK_FUNC', + 'AC_CHECK_FUNCS', + 'AC_CHECK_FUNCS_ONCE', + 'AC_CHECK_HEADER', + 'AC_CHECK_HEADERS', + 'AC_CHECK_HEADERS_ONCE', + 'AC_CHECK_LIB', + 'AC_CHECK_MEMBER', + 'AC_CHECK_MEMBERS', + 'AC_CHECK_PROG', + 'AC_CHECK_PROGS', + 'AC_CHECK_SIZEOF', + 'AC_CHECK_TARGET_TOOL', + 'AC_CHECK_TARGET_TOOLS', + 'AC_CHECK_TOOL', + 'AC_CHECK_TOOLS', + 'AC_CHECK_TYPE', + 'AC_CHECK_TYPES', + 'AC_CHECKING', + 'AC_COMPILE_CHECK', + 'AC_COMPILE_IFELSE', + 'AC_COMPUTE_INT', + 'AC_CONFIG_AUX_DIR', + 'AC_CONFIG_COMMANDS', + 'AC_CONFIG_COMMANDS_POST', + 'AC_CONFIG_COMMANDS_PRE', + 'AC_CONFIG_FILES', + 'AC_CONFIG_HEADERS', + 'AC_CONFIG_ITEMS', + 'AC_CONFIG_LIBOBJ_DIR', + 'AC_CONFIG_LINKS', + 'AC_CONFIG_MACRO_DIR', + 'AC_CONFIG_SRCDIR', + 'AC_CONFIG_SUBDIRS', + 'AC_CONFIG_TESTDIR', + 'AC_CONST', + 'AC_COPYRIGHT', + 'AC_CROSS_CHECK', + 'AC_CYGWIN', + 'AC_DATAROOTDIR_CHECKED', + 'AC_DECL_SYS_SIGLIST', + 'AC_DECL_YYTEXT', + 'AC_DEFINE', + 'AC_DEFINE_UNQUOTED', + 'AC_DEFUN', + 'AC_DEFUN_ONCE', + 'AC_DIAGNOSE', + 'AC_DIR_HEADER', + 'AC_DISABLE_OPTION_CHECKING', + 'AC_DYNIX_SEQ', + 'AC_EGREP_CPP', + 'AC_EGREP_HEADER', + 'AC_EMXOS2', + 'AC_ENABLE', + 'AC_ERLANG_CHECK_LIB', + 'AC_ERLANG_NEED_ERL', + 'AC_ERLANG_NEED_ERLC', + 'AC_ERLANG_PATH_ERL', + 'AC_ERLANG_PATH_ERLC', + 'AC_ERLANG_SUBST_ERTS_VER', + 'AC_ERLANG_SUBST_INSTALL_LIB_DIR', + 'AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR', + 'AC_ERLANG_SUBST_LIB_DIR', + 'AC_ERLANG_SUBST_ROOT_DIR', + 'AC_ERROR', + 'AC_EXEEXT', + 'AC_F77_DUMMY_MAIN', + 'AC_F77_FUNC', + 'AC_F77_LIBRARY_LDFLAGS', + 'AC_F77_MAIN', + 'AC_F77_WRAPPERS', + 'AC_FATAL', + 'AC_FC_FREEFORM', + 'AC_FC_FUNC', + 'AC_FC_LIBRARY_LDFLAGS', + 'AC_FC_MAIN', + 'AC_FC_SRCEXT', + 'AC_FC_WRAPPERS', + 'AC_FIND_X', + 'AC_FIND_XTRA', + 'AC_FOREACH', + 'AC_FUNC_ALLOCA', + 'AC_FUNC_CHECK', + 'AC_FUNC_CHOWN', + 'AC_FUNC_CLOSEDIR_VOID', + 'AC_FUNC_ERROR_AT_LINE', + 'AC_FUNC_FNMATCH', + 'AC_FUNC_FNMATCH_GNU', + 'AC_FUNC_FORK', + 'AC_FUNC_FSEEKO', + 'AC_FUNC_GETGROUPS', + 'AC_FUNC_GETLOADAVG', + 'AC_FUNC_GETMNTENT', + 'AC_FUNC_GETPGRP', + 'AC_FUNC_LSTAT', + 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK', + 'AC_FUNC_MALLOC', + 'AC_FUNC_MBRTOWC', + 'AC_FUNC_MEMCMP', + 'AC_FUNC_MKTIME', + 'AC_FUNC_MMAP', + 'AC_FUNC_OBSTACK', + 'AC_FUNC_REALLOC', + 'AC_FUNC_SELECT_ARGTYPES', + 'AC_FUNC_SETPGRP', + 'AC_FUNC_SETVBUF_REVERSED', + 'AC_FUNC_STAT', + 'AC_FUNC_STRCOLL', + 'AC_FUNC_STRERROR_R', + 'AC_FUNC_STRFTIME', + 'AC_FUNC_STRNLEN', + 'AC_FUNC_STRTOD', + 'AC_FUNC_STRTOLD', + 'AC_FUNC_UTIME_NULL', + 'AC_FUNC_VPRINTF', + 'AC_FUNC_WAIT3', + 'AC_GCC_TRADITIONAL', + 'AC_GETGROUPS_T', + 'AC_GETLOADAVG', + 'AC_GNU_SOURCE', + 'AC_HAVE_FUNCS', + 'AC_HAVE_HEADERS', + 'AC_HAVE_LIBRARY', + 'AC_HAVE_POUNDBANG', + 'AC_HEADER_ASSERT', + 'AC_HEADER_CHECK', + 'AC_HEADER_DIRENT', + 'AC_HEADER_EGREP', + 'AC_HEADER_MAJOR', + 'AC_HEADER_RESOLV', + 'AC_HEADER_STAT', + 'AC_HEADER_STDBOOL', + 'AC_HEADER_STDC', + 'AC_HEADER_SYS_WAIT', + 'AC_HEADER_TIME', + 'AC_HEADER_TIOCGWINSZ', + 'AC_HELP_STRING', + 'AC_INCLUDES_DEFAULT', + 'AC_INIT', + 'AC_INLINE', + 'AC_INT_16_BITS', + 'AC_IRIX_SUN', + 'AC_ISC_POSIX', + 'AC_LANG_ASSERT', + 'AC_LANG_C', + 'AC_LANG_CALL', + 'AC_LANG_CONFTEST', + 'AC_LANG_CPLUSPLUS', + 'AC_LANG_FORTRAN77', + 'AC_LANG_FUNC_LINK_TRY', + 'AC_LANG_POP', + 'AC_LANG_PROGRAM', + 'AC_LANG_PUSH', + 'AC_LANG_RESTORE', + 'AC_LANG_SAVE', + 'AC_LANG_SOURCE', + 'AC_LANG_WERROR', + 'AC_LIBOBJ', + 'AC_LIBSOURCE', + 'AC_LIBSOURCES', + 'AC_LINK_FILES', + 'AC_LINK_IFELSE', + 'AC_LN_S', + 'AC_LONG_64_BITS', + 'AC_LONG_DOUBLE', + 'AC_LONG_FILE_NAMES', + 'AC_MAJOR_HEADER', + 'AC_MEMORY_H', + 'AC_MINGW32', + 'AC_MINIX', + 'AC_MINUS_C_MINUS_O', + 'AC_MMAP', + 'AC_MODE_T', + 'AC_MSG_CHECKING', + 'AC_MSG_ERROR', + 'AC_MSG_FAILURE', + 'AC_MSG_NOTICE', + 'AC_MSG_RESULT', + 'AC_MSG_WARN', + 'AC_OBJEXT', + 'AC_OBSOLETE', + 'AC_OFF_T', + 'AC_OPENMP', + 'AC_OUTPUT', + 'AC_OUTPUT_COMMANDS', + 'AC_PACKAGE_BUGREPORT', + 'AC_PACKAGE_NAME', + 'AC_PACKAGE_STRING', + 'AC_PACKAGE_TARNAME', + 'AC_PACKAGE_URL', + 'AC_PACKAGE_VERSION', + 'AC_PATH_PROG', + 'AC_PATH_PROGS', + 'AC_PATH_PROGS_FEATURE_CHECK', + 'AC_PATH_TARGET_TOOL', + 'AC_PATH_TOOL', + 'AC_PATH_X', + 'AC_PATH_XTRA', + 'AC_PID_T', + 'AC_PREFIX', + 'AC_PREFIX_DEFAULT', + 'AC_PREFIX_PROGRAM', + 'AC_PREPROC_IFELSE', + 'AC_PREREQ', + 'AC_PRESERVE_HELP_ORDER', + 'AC_PROG_AWK', + 'AC_PROG_CC', + 'AC_PROG_CC_C89', + 'AC_PROG_CC_C99', + 'AC_PROG_CC_C_O', + 'AC_PROG_CC_STDC', + 'AC_PROG_CPP', + 'AC_PROG_CPP_WERROR', + 'AC_PROG_CXX', + 'AC_PROG_CXX_C_O', + 'AC_PROG_CXXCPP', + 'AC_PROG_EGREP', + 'AC_PROG_F77', + 'AC_PROG_F77_C_O', + 'AC_PROG_FC', + 'AC_PROG_FC_C_O', + 'AC_PROG_FGREP', + 'AC_PROG_GCC_TRADITIONAL', + 'AC_PROG_GREP', + 'AC_PROG_INSTALL', + 'AC_PROG_LEX', + 'AC_PROG_LN_S', + 'AC_PROG_MAKE_SET', + 'AC_PROG_MKDIR_P', + 'AC_PROG_OBJC', + 'AC_PROG_OBJCPP', + 'AC_PROG_OBJCXX', + 'AC_PROG_OBJCXXCPP', + 'AC_PROG_RANLIB', + 'AC_PROG_SED', + 'AC_PROG_YACC', + 'AC_PROGRAM_CHECK', + 'AC_PROGRAM_EGREP', + 'AC_PROGRAM_PATH', + 'AC_PROGRAMS_CHECK', + 'AC_PROGRAMS_PATH', + 'AC_REMOTE_TAPE', + 'AC_REPLACE_FNMATCH', + 'AC_REPLACE_FUNCS', + 'AC_REQUIRE', + 'AC_REQUIRE_AUX_FILE', + 'AC_REQUIRE_CPP', + 'AC_RESTARTABLE_SYSCALLS', + 'AC_RETSIGTYPE', + 'AC_REVISION', + 'AC_RSH', + 'AC_RUN_IFELSE', + 'AC_SCO_INTL', + 'AC_SEARCH_LIBS', + 'AC_SET_MAKE', + 'AC_SETVBUF_REVERSED', + 'AC_SIZE_T', + 'AC_SIZEOF_TYPE', + 'AC_ST_BLKSIZE', + 'AC_ST_BLOCKS', + 'AC_ST_RDEV', + 'AC_STAT_MACROS_BROKEN', + 'AC_STDC_HEADERS', + 'AC_STRCOLL', + 'AC_STRUCT_DIRENT_D_INO', + 'AC_STRUCT_DIRENT_D_TYPE', + 'AC_STRUCT_ST_BLKSIZE', + 'AC_STRUCT_ST_BLOCKS', + 'AC_STRUCT_ST_RDEV', + 'AC_STRUCT_TIMEZONE', + 'AC_STRUCT_TM', + 'AC_SUBST', + 'AC_SUBST_FILE', + 'AC_SYS_INTERPRETER', + 'AC_SYS_LARGEFILE', + 'AC_SYS_LONG_FILE_NAMES', + 'AC_SYS_POSIX_TERMIOS', + 'AC_SYS_RESTARTABLE_SYSCALLS', + 'AC_SYS_SIGLIST_DECLARED', + 'AC_TEST_CPP', + 'AC_TEST_PROGRAM', + 'AC_TIME_WITH_SYS_TIME', + 'AC_TIMEZONE', + 'AC_TRY_ACT', + 'AC_TRY_COMPILE', + 'AC_TRY_CPP', + 'AC_TRY_LINK', + 'AC_TRY_LINK_FUNC', + 'AC_TRY_RUN', + 'AC_TYPE_GETGROUPS', + 'AC_TYPE_INT16_T', + 'AC_TYPE_INT32_T', + 'AC_TYPE_INT64_T', + 'AC_TYPE_INT8_T', + 'AC_TYPE_INTMAX_T', + 'AC_TYPE_INTPTR_T', + 'AC_TYPE_LONG_DOUBLE', + 'AC_TYPE_LONG_DOUBLE_WIDER', + 'AC_TYPE_LONG_LONG_INT', + 'AC_TYPE_MBSTATE_T', + 'AC_TYPE_MODE_T', + 'AC_TYPE_OFF_T', + 'AC_TYPE_PID_T', + 'AC_TYPE_SIGNAL', + 'AC_TYPE_SIZE_T', + 'AC_TYPE_SSIZE_T', + 'AC_TYPE_UID_T', + 'AC_TYPE_UINT16_T', + 'AC_TYPE_UINT32_T', + 'AC_TYPE_UINT64_T', + 'AC_TYPE_UINT8_T', + 'AC_TYPE_UINTMAX_T', + 'AC_TYPE_UINTPTR_T', + 'AC_TYPE_UNSIGNED_LONG_LONG_INT', + 'AC_UID_T', + 'AC_UNISTD_H', + 'AC_USE_SYSTEM_EXTENSIONS', + 'AC_USG', + 'AC_UTIME_NULL', + 'AC_VALIDATE_CACHED_SYSTEM_TUPLE', + 'AC_VERBOSE', + 'AC_VFORK', + 'AC_VPRINTF', + 'AC_WAIT3', + 'AC_WARN', + 'AC_WARNING', + 'AC_WITH', + 'AC_WORDS_BIGENDIAN', + 'AC_XENIX_DIR', + 'AC_YYTEXT_POINTER', + 'AH_BOTTOM', + 'AH_HEADER', + 'AH_TEMPLATE', + 'AH_TOP', + 'AH_VERBATIM', + 'AU_ALIAS', + 'AU_DEFUN'), + ), + 'SYMBOLS' => array('(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00ffff;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 3 => 'color: #666666;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;', + 1 => 'color: #000099;', + 2 => 'color: #660099;', + 3 => 'color: #660099;', + 4 => 'color: #660099;', + 5 => 'color: #006699;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #996600;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])", + 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%\\/])" + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/autohotkey.php b/inc/geshi/autohotkey.php new file mode 100644 index 000000000..6a3528334 --- /dev/null +++ b/inc/geshi/autohotkey.php @@ -0,0 +1,373 @@ +<?php +/************************************************************************************* + * autohotkey.php + * -------- + * Author: Naveen Garg (naveen.garg@gmail.com) + * Copyright: (c) 2009 Naveen Garg and GeSHi + * Release Version: 1.0.8.8 + * Date Started: 2009/06/11 + * + * Autohotkey language file for GeSHi. + * + * CHANGES + * ------- + * Release 1.0.8.5 (2009/06/11) + * - First Release + * + * TODO + * ---- + * Reference: http://www.autohotkey.com/docs/ + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Autohotkey', + 'COMMENT_SINGLE' => array( + 1 => ';' + ), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'while','if','and','or','else','return' + ), + 2 => array( + // built in variables + 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', + 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', + 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', + 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', + 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', + 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', + 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', + 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', + 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', + 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', + 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', + 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', + 'A_Language','A_LastError','A_LineFile','A_LineNumber', + 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', + 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', + 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', + 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', + 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', + 'A_LoopRegType','A_MDAY','A_Min','A_MM', + 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', + 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', + 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', + 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', + 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', + 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', + 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', + 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', + 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', + 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', + 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', + 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', + 'A_YEAR','A_YWeek','A_YYYY','Clipboard', + 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles', + ), + 3 => array( + 'AutoTrim', + 'BlockInput','Break','Click', + 'ClipWait','Continue','Control', + 'ControlClick','ControlFocus','ControlGet', + 'ControlGetFocus','ControlGetPos','ControlGetText', + 'ControlMove','ControlSend','ControlSendRaw', + 'ControlSetText','CoordMode','Critical', + 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', + 'DriveGet','DriveSpaceFree', + 'Else','EnvAdd','EnvDiv', + 'EnvGet','EnvMult','EnvSet', + 'EnvSub','EnvUpdate','Exit', + 'ExitApp','FileAppend','FileCopy', + 'FileCopyDir','FileCreateDir','FileCreateShortcut', + 'FileDelete','FileGetAttrib','FileGetShortcut', + 'FileGetSize','FileGetTime','FileGetVersion', + 'FileInstall','FileMove','FileMoveDir', + 'FileRead','FileReadLine','FileRecycle', + 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', + 'FileSelectFolder','FileSetAttrib','FileSetTime', + 'FormatTime','Gosub', + 'Goto','GroupActivate','GroupAdd', + 'GroupClose','GroupDeactivate','Gui', + 'GuiControl','GuiControlGet','Hotkey', + 'IfExist','IfGreater','IfGreaterOrEqual', + 'IfInString','IfLess','IfLessOrEqual', + 'IfMsgBox','IfNotEqual','IfNotExist', + 'IfNotInString','IfWinActive','IfWinExist', + 'IfWinNotActive','IfWinNotExist','ImageSearch', + 'IniDelete','IniRead','IniWrite', + 'Input','InputBox','KeyHistory', + 'KeyWait','ListHotkeys','ListLines', + 'ListVars','Loop', + 'Menu','MouseClick','MouseClickDrag', + 'MouseGetPos','MouseMove','MsgBox', + 'OnMessage','OnExit','OutputDebug', + 'PixelGetColor','PixelSearch','PostMessage', + 'Process','Progress','Random', + 'RegExMatch','RegExReplace','RegisterCallback', + 'RegDelete','RegRead','RegWrite', + 'Reload','Repeat','Return', + 'Run','RunAs','RunWait', + 'Send','SendEvent','SendInput', + 'SendMessage','SendMode','SendPlay', + 'SendRaw','SetBatchLines','SetCapslockState', + 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', + 'SetFormat','SetKeyDelay','SetMouseDelay', + 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', + 'SetTimer','SetTitleMatchMode','SetWinDelay', + 'SetWorkingDir','Shutdown','Sleep', + 'Sort','SoundBeep','SoundGet', + 'SoundGetWaveVolume','SoundPlay','SoundSet', + 'SoundSetWaveVolume','SplashImage','SplashTextOff', + 'SplashTextOn','SplitPath','StatusBarGetText', + 'StatusBarWait','StringCaseSense','StringGetPos', + 'StringLeft','StringLen','StringLower', + 'StringMid','StringReplace','StringRight', + 'StringSplit','StringTrimLeft','StringTrimRight', + 'StringUpper','Suspend','SysGet', + 'Thread','ToolTip','Transform', + 'TrayTip','URLDownloadToFile','While', + 'VarSetCapacity', + 'WinActivate','WinActivateBottom','WinClose', + 'WinGet','WinGetActiveStats','WinGetActiveTitle', + 'WinGetClass','WinGetPos','WinGetText', + 'WinGetTitle','WinHide','WinKill', + 'WinMaximize','WinMenuSelectItem','WinMinimize', + 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', + 'WinRestore','WinSet','WinSetTitle', + 'WinShow','WinWait','WinWaitActive', + 'WinWaitClose','WinWaitNotActive' + ), + 4 => array( + 'Abs','ACos','Asc','ASin', + 'ATan','Ceil','Chr','Cos', + 'Exp','FileExist','Floor', + 'GetKeyState','IL_Add','IL_Create','IL_Destroy', + 'InStr','IsFunc','IsLabel','Ln', + 'Log','LV_Add','LV_Delete','LV_DeleteCol', + 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', + 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList', + 'Mod','NumGet','NumPut', + 'Round', + 'SB_SetIcon','SB_SetParts','SB_SetText','Sin', + 'Sqrt','StrLen','SubStr','Tan', + 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', + 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev', + 'TV_GetSelection','TV_GetText','TV_Modify', + 'WinActive','WinExist' + ), + 5 => array( + // #Directives + 'AllowSameLineComments','ClipboardTimeout','CommentFlag', + 'ErrorStdOut','EscapeChar','HotkeyInterval', + 'HotkeyModifierTimeout','Hotstring','IfWinActive', + 'IfWinExist','IfWinNotActive','IfWinNotExist', + 'Include','IncludeAgain','InstallKeybdHook', + 'InstallMouseHook','KeyHistory','LTrim', + 'MaxHotkeysPerInterval','MaxMem','MaxThreads', + 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', + 'NoTrayIcon','Persistent','SingleInstance', + 'UseHook','WinActivateForce' + ), + 6 => array( + 'Shift','LShift','RShift', + 'Alt','LAlt','RAlt', + 'LControl','RControl', + 'Ctrl','LCtrl','RCtrl', + 'LWin','RWin','AppsKey', + 'AltDown','AltUp','ShiftDown', + 'ShiftUp','CtrlDown','CtrlUp', + 'LWinDown','LWinUp','RWinDown', + 'RWinUp','LButton','RButton', + 'MButton','WheelUp','WheelDown', + 'WheelLeft','WheelRight','XButton1', + 'XButton2','Joy1','Joy2', + 'Joy3','Joy4','Joy5', + 'Joy6','Joy7','Joy8', + 'Joy9','Joy10','Joy11', + 'Joy12','Joy13','Joy14', + 'Joy15','Joy16','Joy17', + 'Joy18','Joy19','Joy20', + 'Joy21','Joy22','Joy23', + 'Joy24','Joy25','Joy26', + 'Joy27','Joy28','Joy29', + 'Joy30','Joy31','Joy32', + 'JoyX','JoyY','JoyZ', + 'JoyR','JoyU','JoyV', + 'JoyPOV','JoyName','JoyButtons', + 'JoyAxes','JoyInfo','Space', + 'Tab','Enter', + 'Escape','Esc','BackSpace', + 'BS','Delete','Del', + 'Insert','Ins','PGUP', + 'PGDN','Home','End', + 'Up','Down','Left', + 'Right','PrintScreen','CtrlBreak', + 'Pause','ScrollLock','CapsLock', + 'NumLock','Numpad0','Numpad1', + 'Numpad2','Numpad3','Numpad4', + 'Numpad5','Numpad6','Numpad7', + 'Numpad8','Numpad9','NumpadMult', + 'NumpadAdd','NumpadSub','NumpadDiv', + 'NumpadDot','NumpadDel','NumpadIns', + 'NumpadClear','NumpadUp','NumpadDown', + 'NumpadLeft','NumpadRight','NumpadHome', + 'NumpadEnd','NumpadPgup','NumpadPgdn', + 'NumpadEnter','F1','F2', + 'F3','F4','F5', + 'F6','F7','F8', + 'F9','F10','F11', + 'F12','F13','F14', + 'F15','F16','F17', + 'F18','F19','F20', + 'F21','F22','F23', + 'F24','Browser_Back','Browser_Forward', + 'Browser_Refresh','Browser_Stop','Browser_Search', + 'Browser_Favorites','Browser_Home','Volume_Mute', + 'Volume_Down','Volume_Up','Media_Next', + 'Media_Prev','Media_Stop','Media_Play_Pause', + 'Launch_Mail','Launch_Media','Launch_App1', + 'Launch_App2' + ), + 7 => array( + // Gui commands + 'Add', + 'Show', 'Submit', 'Cancel', 'Destroy', + 'Font', 'Color', 'Margin', 'Flash', 'Default', + 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop', + ), + 8 => array( + // Gui Controls + 'Button', + 'Checkbox','Radio','DropDownList','DDL', + 'ComboBox','ListBox','ListView', + 'Text', 'Edit', 'UpDown', 'Picture', + 'TreeView','DateTime', 'MonthCal', + 'Slider' + ) + ), + 'SYMBOLS' => array( + '(',')','[',']', + '+','-','*','/','&','^', + '=','+=','-=','*=','/=','&=', + '==','<','<=','>','>=',':=', + ',','.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue + 2 => 'color: #88FF88;', // BIV yellow + 3 => 'color: #FF00FF; font-style: italic;', // commands purple + 4 => 'color: #888844; font-weight: bold;', // functions #0080FF + 5 => 'color: #000000; font-style: italic;', // directives #black + 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red + 7 => 'color: #000000; font-style: italic;', // gui commands #black + 8 => 'color: #000000; font-style: italic;' // gui controls + ), + 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', + 1 => 'font-style: italic; color: #009933;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #00FF00; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'font-weight: bold; color: #008080;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: italic;' + ), + 'REGEXPS' => array( + 0 => 'font-weight: italic; color: #A00A0;', + 1 => 'color: #CC0000; font-style: italic;', + 2 => 'color: #DD0000; font-style: italic;', + 3 => 'color: #88FF88;' + ), + 'SCRIPT' => array( + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '_' + ), + 'REGEXPS' => array( + //Variables + 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', + //hotstrings + 1 => '::[\w\d]+::', + //labels + 2 => '\w[\w\d]+:\s', + //Built-in Variables + 3 => '\bA_\w+\b(?![^<]*>)' + ), + 'URLS' => array( + 1 => '', + 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', + 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', + 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn', + 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', + 6 => '', + 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', + 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 5 => array( + 'DISALLOWED_BEFORE' => '(?<!\w)\#' + ) + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php index 526fe5d99..c8ef4404b 100644 --- a/inc/geshi/autoit.php +++ b/inc/geshi/autoit.php @@ -4,7 +4,7 @@ * -------- * Author: big_daddy (robert.i.anthony@gmail.com) * Copyright: (c) 2006 and to GESHi ;) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/01/26 * * AutoIT language file for GeSHi. @@ -60,7 +60,10 @@ $language_data = array ( 'COMMENT_MULTI' => array( '#comments-start' => '#comments-end', '#cs' => '#ce'), - 'COMMENT_REGEXP' => array(0 => '/(?<!#)#(\s.*)?$/m'), + 'COMMENT_REGEXP' => array( + 0 => '/(?<!#)#(\s.*)?$/m', + 1 => '/(?<=include)\s+<.*?>/' + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', @@ -1101,8 +1104,9 @@ $language_data = array ( 6 => 'color: #A00FF0; font-style: italic;' ), 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', 0 => 'font-style: italic; color: #009933;', - 'MULTI' => 'font-style: italic; color: #669900;' + 1 => 'font-style: italic; color: #9977BB;', ), 'ESCAPE_CHAR' => array( 0 => '' @@ -1111,7 +1115,7 @@ $language_data = array ( 0 => 'color: #FF0000; font-weight: bold;' ), 'STRINGS' => array( - 0 => 'font-weight: bold; color: #008080;' + 0 => 'font-weight: bold; color: #9977BB;' ), 'NUMBERS' => array( 0 => 'color: #AC00A9; font-style: italic; font-weight: bold;' diff --git a/inc/geshi/avisynth.php b/inc/geshi/avisynth.php index c0526e956..f74f50c3a 100644 --- a/inc/geshi/avisynth.php +++ b/inc/geshi/avisynth.php @@ -4,7 +4,7 @@ * -------- * Author: Ryan Jones (sciguyryan@gmail.com) * Copyright: (c) 2008 Ryan Jones - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/10/08 * * AviSynth language file for GeSHi. diff --git a/inc/geshi/awk.php b/inc/geshi/awk.php new file mode 100644 index 000000000..5d540315c --- /dev/null +++ b/inc/geshi/awk.php @@ -0,0 +1,158 @@ +<?php +/************************************************ + * awk.php + * ------- + * Author: George Pollard (porges@porg.es) + * Copyright: (c) 2009 George Pollard + * Release Version: 1.0.8.8 + * Date Started: 2009/01/28 + * + * Awk language file for GeSHi. + * + * CHANGES + * ------- + * 2009/01/28 (1.0.8.5) + * - First Release + * + * TODO (updated 2009/01/28) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'awk', + 'COMMENT_SINGLE' => array( + 1 => '#' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array ( + 1 => array( + 'for', 'in', 'if', 'else', 'while', 'do', 'continue', 'break' + ), + 2 => array( + 'BEGIN', 'END' + ), + 3 => array( + 'ARGC', 'ARGV', 'CONVFMT', 'ENVIRON', + 'FILENAME', 'FNR', 'FS', 'NF', 'NR', 'OFMT', + 'OFS','ORS','RLENGTH','RS','RSTART','SUBSEP' + ), + 4 => array( + 'gsub','index','length','match','split', + 'sprintf','sub','substr','tolower','toupper', + 'atan2','cos','exp','int','log','rand', + 'sin','sqrt','srand' + ), + 5 => array( + 'print','printf','getline','close','fflush','system' + ), + 6 => array( + 'function', 'return' + ) + ), + 'SYMBOLS' => array ( + 0 => array( + '(',')','[',']','{','}' + ), + 1 => array( + '!','||','&&' + ), + 2 => array( + '<','>','<=','>=','==','!=' + ), + 3 => array( + '+','-','*','/','%','^','++','--' + ), + 4 => array( + '~','!~' + ), + 5 => array( + '?',':' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #C20CB9; font-weight: bold;', + 3 => 'color: #4107D5; font-weight: bold;', + 4 => 'color: #07D589; font-weight: bold;', + 5 => 'color: #0BD507; font-weight: bold;', + 6 => 'color: #078CD5; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color:#808080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'SYMBOLS' => array( + 0 => 'color:black;', + 1 => 'color:black;', + 2 => 'color:black;', + 3 => 'color:black;', + 4 => 'color:#C4C364;', + 5 => 'color:black;font-weight:bold;'), + 'SCRIPT' => array(), + 'REGEXPS' => array( + 0 => 'color:#000088;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'METHODS' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array (), + 'REGEXPS' => array( + 0 => "\\$[a-zA-Z0-9_]+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array (), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php index bb0a571ba..dad391c8a 100644 --- a/inc/geshi/bash.php +++ b/inc/geshi/bash.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org) * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/20 * * BASH language file for GeSHi. @@ -91,7 +91,7 @@ $language_data = array ( ), 2 => array( 'aclocal', 'aconnect', 'aplay', 'apm', 'apmsleep', 'apropos', - 'apt-cache', 'apt-get', 'apt-key', 'aptitude', + 'apt-cache', 'apt-file', 'apt-get', 'apt-key', 'apt-src', 'aptitude', 'ar', 'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf', 'autoheader', 'automake', 'awk', @@ -104,10 +104,11 @@ $language_data = array ( 'chown', 'chroot', 'chsh', 'chvt', 'clear', 'cmp', 'comm', 'co', 'col', 'cp', 'cpio', 'cpp', 'csh', 'cut', 'cvs', 'cvs-pserver', - 'dash', 'date', 'dd', 'dc', 'dcop', 'deallocvt', 'df', 'dialog', - 'diff', 'diff3', 'dir', 'dircolors', 'directomatic', 'dirname', - 'dmesg', 'dnsdomainname', 'domainname', 'dpkg', 'dselect', 'du', - 'dumpkeys', + 'dash', 'date', 'dc', 'dch', 'dcop', 'dd', 'ddate', 'ddd', + 'deallocvt', 'debconf', 'defoma', 'depmod', 'df', 'dh', + 'dialog', 'diff', 'diff3', 'dig', 'dir', 'dircolors', 'directomatic', + 'dirname', 'dmesg', 'dnsdomainname', 'domainname', 'dpkg', + 'dselect', 'du', 'dumpkeys', 'ed', 'egrep', 'env', 'expr', @@ -119,9 +120,51 @@ $language_data = array ( 'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip', 'gzexe', 'gzip', + 'git', 'gitaction', 'git-add', 'git-add--interactive', 'git-am', + 'git-annotate', 'git-apply', 'git-archive', 'git-bisect', + 'git-bisect--helper', 'git-blame', 'git-branch', 'git-bundle', + 'git-cat-file', 'git-check-attr', 'git-checkout', + 'git-checkout-index', 'git-check-ref-format', 'git-cherry', + 'git-cherry-pick', 'git-clean', 'git-clone', 'git-commit', + 'git-commit-tree', 'git-config', 'git-count-objects', 'git-daemon', + 'git-describe', 'git-diff', 'git-diff-files', 'git-diff-index', + 'git-difftool', 'git-difftool--helper', 'git-diff-tree', + 'gitdpkgname', 'git-fast-export', 'git-fast-import', 'git-fetch', + 'git-fetch-pack', 'git-fetch--tool', 'git-filter-branch', 'gitfm', + 'git-fmt-merge-msg', 'git-for-each-ref', 'git-format-patch', + 'git-fsck', 'git-fsck-objects', 'git-gc', 'git-get-tar-commit-id', + 'git-grep', 'git-hash-object', 'git-help', 'git-http-fetch', + 'git-http-push', 'git-imap-send', 'git-index-pack', 'git-init', + 'git-init-db', 'git-instaweb', 'gitkeys', 'git-log', + 'git-lost-found', 'git-ls-files', 'git-ls-remote', 'git-ls-tree', + 'git-mailinfo', 'git-mailsplit', 'git-merge', 'git-merge-base', + 'git-merge-file', 'git-merge-index', 'git-merge-octopus', + 'git-merge-one-file', 'git-merge-ours', 'git-merge-recursive', + 'git-merge-resolve', 'git-merge-subtree', 'git-mergetool', + 'git-mergetool--lib', 'git-merge-tree', 'gitmkdirs', 'git-mktag', + 'git-mktree', 'gitmount', 'git-mv', 'git-name-rev', + 'git-pack-objects', 'git-pack-redundant', 'git-pack-refs', + 'git-parse-remote', 'git-patch-id', 'git-peek-remote', 'git-prune', + 'git-prune-packed', 'gitps', 'git-pull', 'git-push', + 'git-quiltimport', 'git-read-tree', 'git-rebase', + 'git-rebase--interactive', 'git-receive-pack', 'git-reflog', + 'gitregrep', 'git-relink', 'git-remote', 'git-repack', + 'git-repo-config', 'git-request-pull', 'git-rerere', 'git-reset', + 'git-revert', 'git-rev-list', 'git-rev-parse', 'gitrfgrep', + 'gitrgrep', 'git-rm', 'git-send-pack', 'git-shell', 'git-shortlog', + 'git-show', 'git-show-branch', 'git-show-index', 'git-show-ref', + 'git-sh-setup', 'git-stage', 'git-stash', 'git-status', + 'git-stripspace', 'git-submodule', 'git-svn', 'git-symbolic-ref', + 'git-tag', 'git-tar-tree', 'gitunpack', 'git-unpack-file', + 'git-unpack-objects', 'git-update-index', 'git-update-ref', + 'git-update-server-info', 'git-upload-archive', 'git-upload-pack', + 'git-var', 'git-verify-pack', 'git-verify-tag', 'gitview', + 'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe', + 'git-write-tree', 'gitxgrep', + 'head', 'hexdump', 'hostname', - 'id', 'ifconfig', 'igawk', 'install', + 'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install', 'join', @@ -166,8 +209,10 @@ $language_data = array ( 'valgrind', 'vdir', 'vi', 'vim', 'vmstat', - 'w', 'wall', 'wc', 'wget', 'whatis', 'whereis', 'which', 'whiptail', - 'who', 'whoami', 'write', + 'w', 'wall', 'watch', 'wc', 'wget', 'whatis', 'whereis', + 'which', 'whiptail', 'who', 'whoami', 'whois', 'wine', 'wineboot', + 'winebuild', 'winecfg', 'wineconsole', 'winedbg', 'winedump', + 'winefile', 'wodim', 'write', 'xargs', 'xhost', 'xmodmap', 'xset', @@ -258,9 +303,9 @@ $language_data = array ( //Variable assignment 2 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)", //Shorthand shell variables - 4 => "\\$[*#\$\\-\\?!]", + 4 => "\\$[*#\$\\-\\?!\d]", //Parameters of commands - 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)" + 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|<(?:SEMI|PIPE)>|$)" ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -274,7 +319,7 @@ $language_data = array ( ), 'KEYWORDS' => array( 'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])", - 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%\\/])" + 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%=\\/])" ) ) ); diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php index 5e3330930..7ac869304 100644 --- a/inc/geshi/basic4gl.php +++ b/inc/geshi/basic4gl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Matthew Webb (bmatthew1@blueyonder.co.uk) * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/09/15 * * Basic4GL language file for GeSHi. diff --git a/inc/geshi/bf.php b/inc/geshi/bf.php index c4be922e0..ba44e6caf 100644 --- a/inc/geshi/bf.php +++ b/inc/geshi/bf.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * Brainfuck language file for GeSHi. diff --git a/inc/geshi/bibtex.php b/inc/geshi/bibtex.php new file mode 100644 index 000000000..e47e0665c --- /dev/null +++ b/inc/geshi/bibtex.php @@ -0,0 +1,183 @@ +<?php +/******************************************************************************** + * bibtex.php + * ----- + * Author: Quinn Taylor (quinntaylor@mac.com) + * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2009/04/29 + * + * BibTeX language file for GeSHi. + * + * CHANGES + * ------- + * 2009/04/29 (1.0.8.4) + * - First Release + * + * TODO + * ------------------------- + * - Add regex for matching and replacing URLs with corresponding hyperlinks + * - Add regex for matching more LaTeX commands that may be embedded in BibTeX + * (Someone who understands regex better than I should borrow from latex.php) + ******************************************************************************** + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * +*******************************************************************************/ + +// http://en.wikipedia.org/wiki/BibTeX +// http://www.fb10.uni-bremen.de/anglistik/langpro/bibliographies/jacobsen-bibtex.html + +$language_data = array ( + 'LANG_NAME' => 'BibTeX', + 'OOLANG' => false, + 'COMMENT_SINGLE' => array( + 1 => '%%' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 0 => array( + '@comment','@preamble','@string' + ), + // Standard entry types + 1 => array( + '@article','@book','@booklet','@conference','@inbook', + '@incollection','@inproceedings','@manual','@mastersthesis', + '@misc','@phdthesis','@proceedings','@techreport','@unpublished' + ), + // Custom entry types + 2 => array( + '@collection','@patent','@webpage' + ), + // Standard entry field names + 3 => array( + 'address','annote','author','booktitle','chapter','crossref', + 'edition','editor','howpublished','institution','journal','key', + 'month','note','number','organization','pages','publisher','school', + 'series','title','type','volume','year' + ), + // Custom entry field names + 4 => array( + 'abstract','affiliation','chaptername','cited-by','cites', + 'contents','copyright','date-added','date-modified','doi','eprint', + 'isbn','issn','keywords','language','lccn','lib-congress', + 'location','price','rating','read','size','source','url' + ) + ), + 'URLS' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'SYMBOLS' => array( + '{', '}', '#', '=', ',' + ), + 'CASE_SENSITIVE' => array( + 1 => false, + 2 => false, + 3 => false, + 4 => false, + GESHI_COMMENTS => false, + ), + // Define the colors for the groups listed above + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #C02020;', // Standard entry types + 2 => 'color: #C02020;', // Custom entry types + 3 => 'color: #C08020;', // Standard entry field names + 4 => 'color: #C08020;' // Custom entry field names + ), + 'COMMENTS' => array( + 1 => 'color: #2C922C; font-style: italic;' + ), + 'STRINGS' => array( + 0 => 'color: #2020C0;' + ), + 'SYMBOLS' => array( + 0 => 'color: #E02020;' + ), + 'REGEXPS' => array( + 1 => 'color: #2020C0;', // {...} + 2 => 'color: #C08020;', // BibDesk fields + 3 => 'color: #800000;' // LaTeX commands + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #E02020;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + // {parameters} + 1 => array( + GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 's', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => "\bBdsk-(File|Url)-\d+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => "\\\\[A-Za-z0-9]*+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'OBJECT_SPLITTERS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'NUMBERS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + 4 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php index 3ad5eabf0..e43ec4635 100644 --- a/inc/geshi/blitzbasic.php +++ b/inc/geshi/blitzbasic.php @@ -4,7 +4,7 @@ * -------------- * Author: P�draig O`Connel (info@moonsword.info) * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 16.10.2005 * * BlitzBasic language file for GeSHi. diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php index 0032acf48..f52df9cb8 100644 --- a/inc/geshi/bnf.php +++ b/inc/geshi/bnf.php @@ -4,7 +4,7 @@ * -------- * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us) * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/09/28 * * BNF (Backus-Naur form) language file for GeSHi. @@ -45,21 +45,26 @@ $language_data = array ( 'LANG_NAME' => 'bnf', - 'COMMENT_SINGLE' => array(), + 'COMMENT_SINGLE' => array(';'), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', "'"), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array(), 'SYMBOLS' => array( - '(', ')', '<', '>', '::=', '|' + 0 => array('(', ')'), + 1 => array('<', '>'), + 2 => array('[', ']'), + 3 => array('{', '}'), + 4 => array('=', '*', '/', '|', ':'), ), 'CASE_SENSITIVE' => array( - //GESHI_COMMENTS => false + GESHI_COMMENTS => false ), 'STYLES' => array( 'KEYWORDS' => array(), 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', // Single Line comments ), 'ESCAPE_CHAR' => array( 0 => '' @@ -78,8 +83,12 @@ $language_data = array ( 0 => '' ), 'SYMBOLS' => array( - 0 => 'color: #000066; font-weight: bold;', // Unused - ), + 0 => 'color: #000066; font-weight: bold;', // Round brackets + 1 => 'color: #000066; font-weight: bold;', // Angel Brackets + 2 => 'color: #000066; font-weight: bold;', // Square Brackets + 3 => 'color: #000066; font-weight: bold;', // BRaces + 4 => 'color: #006600; font-weight: bold;', // Other operator symbols + ), 'REGEXPS' => array( 0 => 'color: #007;', ), @@ -107,4 +116,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/boo.php b/inc/geshi/boo.php index d555dd4a2..09d4ee40e 100644 --- a/inc/geshi/boo.php +++ b/inc/geshi/boo.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/09/10 * * Boo language file for GeSHi. diff --git a/inc/geshi/c.php b/inc/geshi/c.php index 86f576ef6..b0e2987d7 100644 --- a/inc/geshi/c.php +++ b/inc/geshi/c.php @@ -7,7 +7,7 @@ * - Jack Lloyd (lloyd@randombit.net) * - Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C language file for GeSHi. @@ -96,8 +96,22 @@ $language_data = array ( ), 4 => array( 'auto', 'char', 'const', 'double', 'float', 'int', 'long', - 'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct', - 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t' + 'register', 'short', 'signed', 'sizeof', 'static', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), ), 'SYMBOLS' => array( diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php index 46a3600fe..1a034ae08 100644 --- a/inc/geshi/c_mac.php +++ b/inc/geshi/c_mac.php @@ -4,7 +4,7 @@ * --------- * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C for Macs language file for GeSHi. @@ -112,10 +112,25 @@ $language_data = array ( ), 4 => array( 'auto', 'char', 'const', 'double', 'float', 'int', 'long', - 'register', 'short', 'signed', 'static', 'string', 'struct', + 'register', 'short', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t', + // Mac-specific types: 'CFArrayRef', 'CFDictionaryRef', 'CFMutableDictionaryRef', 'CFBundleRef', 'CFSetRef', 'CFStringRef', 'CFURLRef', 'CFLocaleRef', 'CFDateFormatterRef', 'CFNumberFormatterRef', 'CFPropertyListRef', diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php index 12e1d3b75..74310d6d9 100644 --- a/inc/geshi/caddcl.php +++ b/inc/geshi/caddcl.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * CAD DCL (Dialog Control Language) language file for GeSHi. diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php index c537370d5..9277e5192 100644 --- a/inc/geshi/cadlisp.php +++ b/inc/geshi/cadlisp.php @@ -4,7 +4,7 @@ * ----------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * AutoCAD/IntelliCAD Lisp language file for GeSHi. diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php index 5091ffa4c..ee17fdf53 100644 --- a/inc/geshi/cfdg.php +++ b/inc/geshi/cfdg.php @@ -4,7 +4,7 @@ * -------- * Author: John Horigan <john@glyphic.com> * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/ - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/03/11 * * CFDG language file for GeSHi. diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php index ac81695ab..dd508eec7 100644 --- a/inc/geshi/cfm.php +++ b/inc/geshi/cfm.php @@ -4,7 +4,7 @@ * ------- * Author: Diego * Copyright: (c) 2006 Diego - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/02/25 * * ColdFusion language file for GeSHi. diff --git a/inc/geshi/chaiscript.php b/inc/geshi/chaiscript.php new file mode 100644 index 000000000..e1baad4db --- /dev/null +++ b/inc/geshi/chaiscript.php @@ -0,0 +1,140 @@ +<?php +/************************************************************************************* + * chaiscript.php + * -------------- + * Author: Jason Turner & Jonathan Turner + * Copyright: (c) 2010 Jason Turner (lefticus@gmail.com), + * (c) 2009 Jonathan Turner, + * (c) 2004 Ben Keen (ben.keen@gmail.com), Benny Baumann (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2009/07/03 + * + * ChaiScript language file for GeSHi. + * + * Based on JavaScript by Ben Keen (ben.keen@gmail.com) + * + * CHANGES + * ------- + * 2010/03/30 (1.0.8.8) + * - Updated to include more language features + * - Removed left over pieces from JavaScript + * 2009/07/03 (1.0.0) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'ChaiScript', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + //Regular Expressions + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'else', 'else if', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally', + ), + 2 => array( + 'def', 'false', 'fun', 'true', 'var', 'attr', + ), + 3 => array( + // built in functions + 'throw', + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '@', '&', '|', '^', + '<', '>', '=', + ',', ';', '?', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #003366; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #3366CC;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + ), + 1 => array( + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/cil.php b/inc/geshi/cil.php index 994f86316..142c7743a 100644 --- a/inc/geshi/cil.php +++ b/inc/geshi/cil.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/10/24 * * CIL (Common Intermediate Language) language file for GeSHi. diff --git a/inc/geshi/clojure.php b/inc/geshi/clojure.php new file mode 100644 index 000000000..4bcb9a3ae --- /dev/null +++ b/inc/geshi/clojure.php @@ -0,0 +1,134 @@ +<?php +/************************************************************************************* + * clojure.php + * -------- + * Author: Jess Johnson (jess@grok-code.com) + * Copyright: (c) 2009 Jess Johnson (http://grok-code.com) + * Release Version: 1.0.8.8 + * Date Started: 2009/09/20 + * + * Clojure language file for GeSHi. + * + * This file borrows significantly from the lisp language file for GeSHi + * + * CHANGES + * ------- + * 2009/09/20 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/09/20) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Clojure', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(';|' => '|;'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'defn', 'defn-', 'defmulti', 'defmethod', 'defmacro', 'deftest', + 'defstruct', 'def', 'defonce', 'let', 'letfn', 'do', 'cond', 'condp', + 'for', 'loop', 'recur', 'when', 'when-not', 'when-let', 'when-first', + 'if', 'if-let', 'if-not', 'doto', 'and', 'or','not','aget','aset', + 'dosync', 'doseq', 'dotimes', 'dorun', 'doall', + 'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', 'print', + 'try', 'catch', 'finally', 'throw', 'fn', 'update-in', + 'with-open', 'with-local-vars', 'binding', + 'gen-class', 'gen-and-load-class', 'gen-and-save-class', + 'implement', 'proxy', 'lazy-cons', 'with-meta', + 'struct', 'struct-map', 'delay', 'locking', 'sync', 'time', 'apply', + 'remove', 'merge', 'interleave', 'interpose', 'distinct', + 'cons', 'concat', 'lazy-cat', 'cycle', 'rest', 'frest', 'drop', + 'drop-while', 'nthrest', 'take', 'take-while', 'take-nth', 'butlast', + 'reverse', 'sort', 'sort-by', 'split-at', 'partition', 'split-with', + 'first', 'ffirst', 'rfirst', 'zipmap', 'into', 'set', 'vec', + 'to-array-2d', 'not-empty', 'seq?', 'not-every?', 'every?', 'not-any?', + 'map', 'mapcat', 'vector?', 'list?', 'hash-map', 'reduce', 'filter', + 'vals', 'keys', 'rseq', 'subseq', 'rsubseq', 'count', 'empty?', + 'fnseq', 'repeatedly', 'iterate', 'drop-last', + 'repeat', 'replicate', 'range', 'into-array', + 'line-seq', 'resultset-seq', 're-seq', 're-find', 'tree-seq', 'file-seq', + 'iterator-seq', 'enumeration-seq', 'declare', 'xml-seq', + 'symbol?', 'string?', 'vector', 'conj', 'str', + 'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'dec', 'format', + 'alter', 'commute', 'ref-set', 'floor', 'assoc', 'send', 'send-off' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|', '.', '..', '->', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #555;', + 1 => 'color: #555;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + '::', ':' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/cmake.php b/inc/geshi/cmake.php new file mode 100644 index 000000000..ccd855b0b --- /dev/null +++ b/inc/geshi/cmake.php @@ -0,0 +1,181 @@ +<?php +/************************************************************************************* + * cmake.php + * ------- + * Author: Daniel Nelson (danieln@eng.utah.edu) + * Copyright: (c) 2009 Daniel Nelson + * Release Version: 1.0.8.8 + * Date Started: 2009/04/06 + * + * CMake language file for GeSHi. + * + * Keyword list generated using CMake 2.6.3. + * + * CHANGES + * ------- + * <date-of-release> (<GeSHi release>) + * - First Release + * + * TODO (updated <date-of-release>) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'CMake', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'ESCAPE_REGEXP' => array( + // Quoted variables ${...} + 1 => "/\\$(ENV)?\\{[^\\n\\}]*?\\}/i", + // Quoted registry keys [...] + 2 => "/\\[HKEY[^\n\\]]*?]/i" + ), + 'KEYWORDS' => array( + 1 => array( + 'add_custom_command', 'add_custom_target', 'add_definitions', + 'add_dependencies', 'add_executable', 'add_library', + 'add_subdirectory', 'add_test', 'aux_source_directory', 'break', + 'build_command', 'cmake_minimum_required', 'cmake_policy', + 'configure_file', 'create_test_sourcelist', 'define_property', + 'else', 'elseif', 'enable_language', 'enable_testing', + 'endforeach', 'endfunction', 'endif', 'endmacro', + 'endwhile', 'execute_process', 'export', 'file', 'find_file', + 'find_library', 'find_package', 'find_path', 'find_program', + 'fltk_wrap_ui', 'foreach', 'function', 'get_cmake_property', + 'get_directory_property', 'get_filename_component', 'get_property', + 'get_source_file_property', 'get_target_property', + 'get_test_property', 'if', 'include', 'include_directories', + 'include_external_msproject', 'include_regular_expression', + 'install', 'link_directories', 'list', 'load_cache', + 'load_command', 'macro', 'mark_as_advanced', 'math', 'message', + 'option', 'output_required_files', 'project', 'qt_wrap_cpp', + 'qt_wrap_ui', 'remove_definitions', 'return', 'separate_arguments', + 'set', 'set_directory_properties', 'set_property', + 'set_source_files_properties', 'set_target_properties', + 'set_tests_properties', 'site_name', 'source_group', 'string', + 'target_link_libraries', 'try_compile', 'try_run', 'unset', + 'variable_watch', 'while' + ), + 2 => array( + // Deprecated commands + 'build_name', 'exec_program', 'export_library_dependencies', + 'install_files', 'install_programs', 'install_targets', + 'link_libraries', 'make_directory', 'remove', 'subdir_depends', + 'subdirs', 'use_mangled_mesa', 'utility_source', + 'variable_requires', 'write_file' + ), + 3 => array( + // Special command arguments, this list is not comprehesive. + 'AND', 'APPEND', 'ASCII', 'BOOL', 'CACHE', 'COMMAND', 'COMMENT', + 'COMPARE', 'CONFIGURE', 'DEFINED', 'DEPENDS', 'DIRECTORY', + 'EQUAL', 'EXCLUDE_FROM_ALL', 'EXISTS', 'FALSE', 'FATAL_ERROR', + 'FILEPATH', 'FIND', 'FORCE', 'GET', 'GLOBAL', 'GREATER', + 'IMPLICIT_DEPENDS', 'INSERT', 'INTERNAL', 'IS_ABSOLUTE', + 'IS_DIRECTORY', 'IS_NEWER_THAN', 'LENGTH', 'LESS', + 'MAIN_DEPENDENCY', 'MATCH', 'MATCHALL', 'MATCHES', 'MODULE', 'NOT', + 'NOTFOUND', 'OFF', 'ON', 'OR', 'OUTPUT', 'PARENT_SCOPE', 'PATH', + 'POLICY', 'POST_BUILD', 'PRE_BUILD', 'PRE_LINK', 'PROPERTY', + 'RANDOM', 'REGEX', 'REMOVE_AT', 'REMOVE_DUPLICATES', 'REMOVE_ITEM', + 'REPLACE', 'REVERSE', 'SEND_ERROR', 'SHARED', 'SORT', 'SOURCE', + 'STATIC', 'STATUS', 'STREQUAL', 'STRGREATER', 'STRING', 'STRIP', + 'STRLESS', 'SUBSTRING', 'TARGET', 'TEST', 'TOLOWER', 'TOUPPER', + 'TRUE', 'VERBATIM', 'VERSION', 'VERSION_EQUAL', 'VERSION_GREATOR', + 'VERSION_LESS', 'WORKING_DIRECTORY', + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => true + ), + 'SYMBOLS' => array( + 0 => array('(', ')') + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #1f3f81; font-style: bold;', + 2 => 'color: #1f3f81;', + 3 => 'color: #077807; font-sytle: italic;' + ), + 'BRACKETS' => array(), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #b08000;', + 2 => 'color: #0000cd;' + ), + 'STRINGS' => array( + 0 => 'color: #912f11;', + ), + 'SYMBOLS' => array( + 0 => 'color: #197d8b;' + ), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'REGEXPS' => array( + 0 => 'color: #b08000;', + 1 => 'color: #0000cd;' + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}', + 2 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}', + 3 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // Unquoted variables + 0 => "\\$(ENV)?\\{[^\\n}]*?\\}", + // Unquoted registry keys + 1 => "\\[HKEY[^\n\\]]*?]" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + // These keywords cannot come after a open paren + 1 => array( + 'DISALLOWED_AFTER' => '(?= *\()' + ), + 2 => array( + 'DISALLOWED_AFTER' => '(?= *\()' + ) + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'METHODS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php index 9adae16e3..c1220a06f 100644 --- a/inc/geshi/cobol.php +++ b/inc/geshi/cobol.php @@ -4,7 +4,7 @@ * ---------- * Author: BenBE (BenBE@omorphia.org) * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/07/02 * * COBOL language file for GeSHi. diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php index 43105de3d..8523d16b7 100644 --- a/inc/geshi/cpp-qt.php +++ b/inc/geshi/cpp-qt.php @@ -4,13 +4,16 @@ * ------- * Author: Iulian M * Copyright: (c) 2006 Iulian M - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/09/27 * * C++ (with QT extensions) language file for GeSHi. * * CHANGES * ------- + * 2009/06/28 (1.0.8.4) + * - Updated list of Keywords from Qt 4.5 + * * 2008/05/23 (1.0.7.22) * - Added description of extra language features (SF#1970248) * @@ -86,8 +89,9 @@ $language_data = array ( 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC', 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', - 'static_cast', 'explicit', 'friend', 'wchar_t', 'typename', 'typeid', 'class' , - 'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals' + 'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' , + 'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS', + 'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK' ), 3 => array( 'cin', 'cerr', 'clog', 'cout', @@ -116,106 +120,351 @@ $language_data = array ( 'register', 'short', 'shortint', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), 5 => array( - 'QAbstractButton','QDir','QIntValidator','QRegExpValidator','QTabWidget','QAbstractEventDispatcher', - 'QDirectPainter','QIODevice','QRegion','QTcpServer','QAbstractExtensionFactory','QDirModel', - 'QItemDelegate','QResizeEvent','QTcpSocket','QAbstractExtensionManager','QDockWidget', - 'QItemEditorCreatorBase','QResource','QTemporaryFile','QAbstractFileEngine','QDomAttr', - 'QItemEditorFactory','QRubberBand','QTestEventList','QAbstractFileEngineHandler','QDomCDATASection', - 'QItemSelection','QScreen','QTextBlock','QAbstractFormBuilder','QDomCharacterData','QItemSelectionModel', - 'QScreenCursor','QTextBlockFormat','QAbstractGraphicsShapeItem','QDomComment','QItemSelectionRange', - 'QScreenDriverFactory','QTextBlockGroup','QAbstractItemDelegate','QDomDocument','QKbdDriverFactory', - 'QScreenDriverPlugin','QTextBlockUserData','QAbstractItemModel','QDomDocumentFragment','QKbdDriverPlugin', - 'QScrollArea','QTextBrowser','QAbstractItemView','QDomDocumentType','QKeyEvent','QScrollBar', - 'QTextCharFormat','QAbstractListModel','QDomElement','QKeySequence','QSemaphore','QTextCodec', - 'QAbstractPrintDialog','QDomEntity','QLabel','QSessionManager','QTextCodecPlugin','QAbstractProxyModel', - 'QDomEntityReference','QLatin1Char','QSet','QTextCursor','QAbstractScrollArea','QDomImplementation', - 'QLatin1String','QSetIterator','QTextDecoder','QAbstractSlider','QDomNamedNodeMap','QLayout','QSettings', - 'QTextDocument','QAbstractSocket','QDomNode','QLayoutItem','QSharedData','QTextDocumentFragment', - 'QAbstractSpinBox','QDomNodeList','QLCDNumber','QSharedDataPointer','QTextEdit','QAbstractTableModel', - 'QDomNotation','QLibrary','QShortcut','QTextEncoder','QAbstractTextDocumentLayout', - 'QDomProcessingInstruction','QLibraryInfo','QShortcutEvent','QTextFormat','QAccessible','QDomText', - 'QLine','QShowEvent','QTextFragment','QAccessibleBridge','QDoubleSpinBox','QLinearGradient', - 'QSignalMapper','QTextFrame','QAccessibleBridgePlugin','QDoubleValidator','QLineEdit','QSignalSpy', - 'QTextFrameFormat','QAccessibleEvent','QDrag','QLineF','QSize','QTextImageFormat','QAccessibleInterface', - 'QDragEnterEvent','QLinkedList','QSizeF','QTextInlineObject','QAccessibleObject','QDragLeaveEvent', - 'QLinkedListIterator','QSizeGrip','QTextLayout','QAccessiblePlugin','QDragMoveEvent','QLinuxFbScreen', - 'QSizePolicy','QTextLength','QAccessibleWidget','QDropEvent','QList','QSlider','QTextLine','QAction', - 'QDynamicPropertyChangeEvent','QListIterator','QSocketNotifier','QTextList','QActionEvent','QErrorMessage', - 'QListView','QSortFilterProxyModel','QTextListFormat','QActionGroup','QEvent','QListWidget','QSound', - 'QTextObject','QApplication','QEventLoop','QListWidgetItem','QSpacerItem','QTextOption','QAssistantClient', - 'QExtensionFactory','QLocale','QSpinBox','QTextStream','QAxAggregated','QExtensionManager', - 'QMacPasteboardMime','QSplashScreen','QTextTable','QAxBase','QFile','QMacStyle','QSplitter', - 'QTextTableCell','QAxBindable','QFileDialog','QMainWindow','QSplitterHandle','QTextTableFormat', - 'QAxFactory','QFileIconProvider','QMap','QSqlDatabase','QThread','QAxObject','QFileInfo','QMapIterator', - 'QSqlDriver','QThreadStorage','QAxScript','QFileOpenEvent','QMatrix','QSqlDriverCreator','QTime', - 'QAxScriptEngine','QFileSystemWatcher','QMenu','QSqlDriverCreatorBase','QTimeEdit','QAxScriptManager', - 'QFlag','QMenuBar','QSqlDriverPlugin','QTimeLine','QAxWidget','QFlags','QMessageBox','QSqlError','QTimer', - 'QBasicTimer','QFocusEvent','QMetaClassInfo','QSqlField','QTimerEvent','QBitArray','QFocusFrame', - 'QMetaEnum','QSqlIndex','QToolBar','QBitmap','QFont','QMetaMethod','QSqlQuery','QToolBox','QBoxLayout', - 'QFontComboBox','QMetaObject','QSqlQueryModel','QToolButton','QBrush','QFontDatabase','QMetaProperty', - 'QSqlRecord','QToolTip','QBuffer','QFontDialog','QMetaType','QSqlRelation','QTransformedScreen', - 'QButtonGroup','QFontInfo','QMimeData','QSqlRelationalDelegate','QTranslator','QByteArray','QFontMetrics', - 'QMimeSource','QSqlRelationalTableModel','QTreeView','QByteArrayMatcher','QFontMetricsF','QModelIndex', - 'QSqlResult','QTreeWidget','QCache','QFormBuilder','QMotifStyle','QSqlTableModel','QTreeWidgetItem', - 'QCalendarWidget','QFrame','QMouseDriverFactory','QStack','QTreeWidgetItemIterator','QCDEStyle', - 'QFSFileEngine','QMouseDriverPlugin','QStackedLayout','QUdpSocket','QChar','QFtp','QMouseEvent', - 'QStackedWidget','QUiLoader','QCheckBox','QGenericArgument','QMoveEvent','QStandardItem','QUndoCommand', - 'QChildEvent','QGenericReturnArgument','QMovie','QStandardItemEditorCreator','QUndoGroup', - 'QCleanlooksStyle','QGLColormap','QMultiHash','QStandardItemModel','QUndoStack','QClipboard', - 'QGLContext','QMultiMap','QStatusBar','QUndoView','QCloseEvent','QGLFormat','QMutableHashIterator', - 'QStatusTipEvent','QUrl','QColor','QGLFramebufferObject','QMutableLinkedListIterator','QString', - 'QUrlInfo','QColorDialog','QGLPixelBuffer','QMutableListIterator','QStringList','QUuid','QColormap', - 'QGLWidget','QMutableMapIterator','QStringListModel','QValidator','QComboBox','QGradient', - 'QMutableSetIterator','QStringMatcher','QVariant','QCommonStyle','QGraphicsEllipseItem', - 'QMutableVectorIterator','QStyle','QVarLengthArray','QCompleter','QGraphicsItem','QMutex', - 'QStyleFactory','QVBoxLayout','QConicalGradient','QGraphicsItemAnimation','QMutexLocker', - 'QStyleHintReturn','QVector','QContextMenuEvent','QGraphicsItemGroup','QNetworkAddressEntry', - 'QStyleHintReturnMask','QVectorIterator','QCopChannel','QGraphicsLineItem','QNetworkInterface', - 'QStyleOption','QVFbScreen','QCoreApplication','QGraphicsPathItem','QNetworkProxy','QStyleOptionButton', - 'QVNCScreen','QCursor','QGraphicsPixmapItem','QObject','QStyleOptionComboBox','QWaitCondition', - 'QCustomRasterPaintDevice','QGraphicsPolygonItem','QObjectCleanupHandler','QStyleOptionComplex', - 'QWhatsThis','QDataStream','QGraphicsRectItem','QPageSetupDialog','QStyleOptionDockWidget', - 'QWhatsThisClickedEvent','QDataWidgetMapper','QGraphicsScene','QPaintDevice','QStyleOptionFocusRect', - 'QWheelEvent','QDate','QGraphicsSceneContextMenuEvent','QPaintEngine','QStyleOptionFrame','QWidget', - 'QDateEdit','QGraphicsSceneEvent','QPaintEngineState','QStyleOptionFrameV2','QWidgetAction','QDateTime', - 'QGraphicsSceneHoverEvent','QPainter','QStyleOptionGraphicsItem','QWidgetItem','QDateTimeEdit', - 'QGraphicsSceneMouseEvent','QPainterPath','QStyleOptionGroupBox','QWindowsMime','QDBusAbstractAdaptor', - 'QGraphicsSceneWheelEvent','QPainterPathStroker','QStyleOptionHeader','QWindowsStyle', - 'QDBusAbstractInterface','QGraphicsSimpleTextItem','QPaintEvent','QStyleOptionMenuItem', - 'QWindowStateChangeEvent','QDBusArgument','QGraphicsSvgItem','QPair','QStyleOptionProgressBar', - 'QWindowsXPStyle','QDBusConnection','QGraphicsTextItem','QPalette','QStyleOptionProgressBarV2', - 'QWorkspace','QDBusConnectionInterface','QGraphicsView','QPen','QStyleOptionQ3DockWindow','QWriteLocker', - 'QDBusError','QGridLayout','QPersistentModelIndex','QStyleOptionQ3ListView','QWSCalibratedMouseHandler', - 'QDBusInterface','QGroupBox','QPicture','QStyleOptionQ3ListViewItem','QWSClient','QDBusMessage','QHash', - 'QPictureFormatPlugin','QStyleOptionRubberBand','QWSEmbedWidget','QDBusObjectPath','QHashIterator', - 'QPictureIO','QStyleOptionSizeGrip','QWSEvent','QDBusReply','QHBoxLayout','QPixmap','QStyleOptionSlider', - 'QWSInputMethod','QDBusServer','QHeaderView','QPixmapCache','QStyleOptionSpinBox','QWSKeyboardHandler', - 'QDBusSignature','QHelpEvent','QPlastiqueStyle','QStyleOptionTab','QWSMouseHandler','QDBusVariant', - 'QHideEvent','QPluginLoader','QStyleOptionTabBarBase','QWSPointerCalibrationData','QDecoration', - 'QHostAddress','QPoint','QStyleOptionTabV2','QWSScreenSaver','QDecorationFactory','QHostInfo','QPointer', - 'QStyleOptionTabWidgetFrame','QWSServer','QDecorationPlugin','QHoverEvent','QPointF','QStyleOptionTitleBar', - 'QWSTslibMouseHandler','QDesignerActionEditorInterface','QHttp','QPolygon','QStyleOptionToolBar','QWSWindow', - 'QDesignerContainerExtension','QHttpHeader','QPolygonF','QStyleOptionToolBox','QWSWindowSurface', - 'QDesignerCustomWidgetCollectionInterface','QHttpRequestHeader','QPrintDialog','QStyleOptionToolButton', - 'QX11EmbedContainer','QDesignerCustomWidgetInterface','QHttpResponseHeader','QPrintEngine', - 'QStyleOptionViewItem','QX11EmbedWidget','QDesignerFormEditorInterface','QIcon','QPrinter', - 'QStyleOptionViewItemV2','QX11Info','QDesignerFormWindowCursorInterface','QIconDragEvent','QProcess', - 'QStylePainter','QXmlAttributes','QDesignerFormWindowInterface','QIconEngine','QProgressBar', - 'QStylePlugin','QXmlContentHandler','QDesignerFormWindowManagerInterface','QIconEnginePlugin', - 'QProgressDialog','QSvgRenderer','QXmlDeclHandler','QDesignerMemberSheetExtension','QImage', - 'QProxyModel','QSvgWidget','QXmlDefaultHandler','QDesignerObjectInspectorInterface','QImageIOHandler', - 'QPushButton','QSyntaxHighlighter','QXmlDTDHandler','QDesignerPropertyEditorInterface','QImageIOPlugin', - 'QQueue','QSysInfo','QXmlEntityResolver','QDesignerPropertySheetExtension','QImageReader','QRadialGradient', - 'QSystemLocale','QXmlErrorHandler','QDesignerTaskMenuExtension','QImageWriter','QRadioButton', - 'QSystemTrayIcon','QXmlInputSource','QDesignerWidgetBoxInterface','QInputContext','QRasterPaintEngine', - 'QTabBar','QXmlLexicalHandler','QDesktopServices','QInputContextFactory','QReadLocker','QTabletEvent', - 'QXmlLocator','QDesktopWidget','QInputContextPlugin','QReadWriteLock','QTableView','QXmlNamespaceSupport', - 'QDial','QInputDialog','QRect','QTableWidget','QXmlParseException','QDialog','QInputEvent','QRectF', - 'QTableWidgetItem','QXmlReader','QDialogButtonBox','QInputMethodEvent','QRegExp', - 'QTableWidgetSelectionRange','QXmlSimpleReader' + "Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG", + "Q_ULONG", "Q3Accel", "Q3Action", "Q3ActionGroup", "Q3AsciiBucket", + "Q3AsciiCache", "Q3AsciiCacheIterator", "Q3AsciiDict", + "Q3AsciiDictIterator", "Q3BaseBucket", "Q3BoxLayout", "Q3Button", + "Q3ButtonGroup", "Q3Cache", "Q3CacheIterator", "Q3Canvas", + "Q3CanvasEllipse", "Q3CanvasItem", "Q3CanvasItemList", + "Q3CanvasLine", "Q3CanvasPixmap", "Q3CanvasPixmapArray", + "Q3CanvasPolygon", "Q3CanvasPolygonalItem", "Q3CanvasRectangle", + "Q3CanvasSpline", "Q3CanvasSprite", "Q3CanvasText", "Q3CanvasView", + "Q3CheckListItem", "Q3CheckTableItem", "Q3CleanupHandler", + "Q3ColorDrag", "Q3ComboBox", "Q3ComboTableItem", "Q3CString", + "Q3DataBrowser", "Q3DataTable", "Q3DataView", "Q3DateEdit", + "Q3DateTimeEdit", "Q3DateTimeEditBase", "Q3DeepCopy", "Q3Dict", + "Q3DictIterator", "Q3Dns", "Q3DnsSocket", "Q3DockArea", + "Q3DockAreaLayout", "Q3DockWindow", "Q3DragObject", "Q3DropSite", + "Q3EditorFactory", "Q3FileDialog", "Q3FileIconProvider", + "Q3FilePreview", "Q3Frame", "Q3Ftp", "Q3GArray", "Q3GCache", + "Q3GCacheIterator", "Q3GDict", "Q3GDictIterator", "Q3GList", + "Q3GListIterator", "Q3GListStdIterator", "Q3Grid", "Q3GridLayout", + "Q3GridView", "Q3GroupBox", "Q3GVector", "Q3HBox", "Q3HBoxLayout", + "Q3HButtonGroup", "Q3Header", "Q3HGroupBox", "Q3Http", + "Q3HttpHeader", "Q3HttpRequestHeader", "Q3HttpResponseHeader", + "Q3IconDrag", "Q3IconDragItem", "Q3IconView", "Q3IconViewItem", + "Q3ImageDrag", "Q3IntBucket", "Q3IntCache", "Q3IntCacheIterator", + "Q3IntDict", "Q3IntDictIterator", "Q3ListBox", "Q3ListBoxItem", + "Q3ListBoxPixmap", "Q3ListBoxText", "Q3ListView", "Q3ListViewItem", + "Q3ListViewItemIterator", "Q3LNode", "Q3LocalFs", "Q3MainWindow", + "Q3MemArray", "Q3MimeSourceFactory", "Q3MultiLineEdit", + "Q3NetworkOperation", "Q3NetworkProtocol", "Q3NetworkProtocolDict", + "Q3NetworkProtocolFactory", "Q3NetworkProtocolFactoryBase", + "Q3ObjectDictionary", "Q3PaintDeviceMetrics", "Q3Painter", + "Q3Picture", "Q3PointArray", "Q3PolygonScanner", "Q3PopupMenu", + "Q3Process", "Q3ProgressBar", "Q3ProgressDialog", "Q3PtrBucket", + "Q3PtrCollection", "Q3PtrDict", "Q3PtrDictIterator", "Q3PtrList", + "Q3PtrListIterator", "Q3PtrListStdIterator", "Q3PtrQueue", + "Q3PtrStack", "Q3PtrVector", "Q3RangeControl", "Q3ScrollView", + "Q3Semaphore", "Q3ServerSocket", "Q3Shared", "Q3Signal", + "Q3SimpleRichText", "Q3SingleCleanupHandler", "Q3Socket", + "Q3SocketDevice", "Q3SortedList", "Q3SpinWidget", "Q3SqlCursor", + "Q3SqlEditorFactory", "Q3SqlFieldInfo", "Q3SqlFieldInfoList", + "Q3SqlForm", "Q3SqlPropertyMap", "Q3SqlRecordInfo", + "Q3SqlSelectCursor", "Q3StoredDrag", "Q3StrIList", "Q3StringBucket", + "Q3StrIVec", "Q3StrList", "Q3StrListIterator", "Q3StrVec", + "Q3StyleSheet", "Q3StyleSheetItem", "Q3SyntaxHighlighter", + "Q3TabDialog", "Q3Table", "Q3TableItem", "Q3TableSelection", + "Q3TextBrowser", "Q3TextDrag", "Q3TextEdit", + "Q3TextEditOptimPrivate", "Q3TextStream", "Q3TextView", + "Q3TimeEdit", "Q3ToolBar", "Q3TSFUNC", "Q3UriDrag", "Q3Url", + "Q3UrlOperator", "Q3ValueList", "Q3ValueListConstIterator", + "Q3ValueListIterator", "Q3ValueStack", "Q3ValueVector", "Q3VBox", + "Q3VBoxLayout", "Q3VButtonGroup", "Q3VGroupBox", "Q3WhatsThis", + "Q3WidgetStack", "Q3Wizard", "QAbstractButton", + "QAbstractEventDispatcher", "QAbstractExtensionFactory", + "QAbstractExtensionManager", "QAbstractFileEngine", + "QAbstractFileEngineHandler", "QAbstractFileEngineIterator", + "QAbstractFormBuilder", "QAbstractGraphicsShapeItem", + "QAbstractItemDelegate", "QAbstractItemModel", "QAbstractItemView", + "QAbstractListModel", "QAbstractMessageHandler", + "QAbstractNetworkCache", "QAbstractPageSetupDialog", + "QAbstractPrintDialog", "QAbstractProxyModel", + "QAbstractScrollArea", "QAbstractSlider", "QAbstractSocket", + "QAbstractSpinBox", "QAbstractTableModel", + "QAbstractTextDocumentLayout", "QAbstractUndoItem", + "QAbstractUriResolver", "QAbstractXmlNodeModel", + "QAbstractXmlReceiver", "QAccessible", "QAccessible2Interface", + "QAccessibleApplication", "QAccessibleBridge", + "QAccessibleBridgeFactoryInterface", "QAccessibleBridgePlugin", + "QAccessibleEditableTextInterface", "QAccessibleEvent", + "QAccessibleFactoryInterface", "QAccessibleInterface", + "QAccessibleInterfaceEx", "QAccessibleObject", + "QAccessibleObjectEx", "QAccessiblePlugin", + "QAccessibleSimpleEditableTextInterface", + "QAccessibleTableInterface", "QAccessibleTextInterface", + "QAccessibleValueInterface", "QAccessibleWidget", + "QAccessibleWidgetEx", "QAction", "QActionEvent", "QActionGroup", + "QApplication", "QArgument", "QAssistantClient", "QAtomicInt", + "QAtomicPointer", "QAuthenticator", "QBasicAtomicInt", + "QBasicAtomicPointer", "QBasicTimer", "QBitArray", "QBitmap", + "QBitRef", "QBool", "QBoxLayout", "QBrush", "QBrushData", "QBuffer", + "QButtonGroup", "QByteArray", "QByteArrayMatcher", "QByteRef", + "QCache", "QCalendarWidget", "QCDEStyle", "QChar", "QCharRef", + "QCheckBox", "QChildEvent", "QCleanlooksStyle", "QClipboard", + "QClipboardEvent", "QCloseEvent", "QColor", "QColorDialog", + "QColorGroup", "QColormap", "QColumnView", "QComboBox", + "QCommandLinkButton", "QCommonStyle", "QCompleter", + "QConicalGradient", "QConstString", "QContextMenuEvent", "QCOORD", + "QCoreApplication", "QCryptographicHash", "QCursor", "QCursorShape", + "QCustomEvent", "QDataStream", "QDataWidgetMapper", "QDate", + "QDateEdit", "QDateTime", "QDateTimeEdit", "QDB2Driver", + "QDB2Result", "QDBusAbstractAdaptor", "QDBusAbstractInterface", + "QDBusArgument", "QDBusConnection", "QDBusConnectionInterface", + "QDBusContext", "QDBusError", "QDBusInterface", "QDBusMessage", + "QDBusMetaType", "QDBusObjectPath", "QDBusPendingCall", + "QDBusPendingCallWatcher", "QDBusPendingReply", + "QDBusPendingReplyData", "QDBusReply", "QDBusServer", + "QDBusSignature", "QDBusVariant", "QDebug", + "QDesignerActionEditorInterface", "QDesignerBrushManagerInterface", + "QDesignerComponents", "QDesignerContainerExtension", + "QDesignerCustomWidgetCollectionInterface", + "QDesignerCustomWidgetInterface", "QDesignerDnDItemInterface", + "QDesignerDynamicPropertySheetExtension", "QDesignerExportWidget", + "QDesignerExtraInfoExtension", "QDesignerFormEditorInterface", + "QDesignerFormEditorPluginInterface", "QDesignerFormWindowCursorInterface", + "QDesignerFormWindowInterface", "QDesignerFormWindowManagerInterface", + "QDesignerFormWindowToolInterface", + "QDesignerIconCacheInterface", "QDesignerIntegrationInterface", + "QDesignerLanguageExtension", "QDesignerLayoutDecorationExtension", + "QDesignerMemberSheetExtension", "QDesignerMetaDataBaseInterface", + "QDesignerMetaDataBaseItemInterface", + "QDesignerObjectInspectorInterface", "QDesignerPromotionInterface", + "QDesignerPropertyEditorInterface", + "QDesignerPropertySheetExtension", "QDesignerResourceBrowserInterface", + "QDesignerTaskMenuExtension", "QDesignerWidgetBoxInterface", + "QDesignerWidgetDataBaseInterface", "QDesignerWidgetDataBaseItemInterface", + "QDesignerWidgetFactoryInterface", "QDesktopServices", + "QDesktopWidget", "QDial", "QDialog", "QDialogButtonBox", "QDir", + "QDirIterator", "QDirModel", "QDockWidget", "QDomAttr", + "QDomCDATASection", "QDomCharacterData", "QDomComment", + "QDomDocument", "QDomDocumentFragment", "QDomDocumentType", + "QDomElement", "QDomEntity", "QDomEntityReference", + "QDomImplementation", "QDomNamedNodeMap", "QDomNode", + "QDomNodeList", "QDomNotation", "QDomProcessingInstruction", + "QDomText", "QDoubleSpinBox", "QDoubleValidator", "QDrag", + "QDragEnterEvent", "QDragLeaveEvent", "QDragMoveEvent", + "QDragResponseEvent", "QDropEvent", "QDynamicPropertyChangeEvent", + "QErrorMessage", "QEvent", "QEventLoop", "QEventSizeOfChecker", + "QExplicitlySharedDataPointer", "QExtensionFactory", + "QExtensionManager", "QFactoryInterface", "QFile", "QFileDialog", + "QFileIconProvider", "QFileInfo", "QFileInfoList", + "QFileInfoListIterator", "QFileOpenEvent", "QFileSystemModel", + "QFileSystemWatcher", "QFlag", "QFlags", "QFocusEvent", + "QFocusFrame", "QFont", "QFontComboBox", "QFontDatabase", + "QFontDialog", "QFontInfo", "QFontMetrics", "QFontMetricsF", + "QForeachContainer", "QForeachContainerBase", "QFormBuilder", + "QFormLayout", "QFrame", "QFSFileEngine", "QFtp", "QFuture", + "QFutureInterface", "QFutureInterfaceBase", "QFutureIterator", + "QFutureSynchronizer", "QFutureWatcher", "QFutureWatcherBase", + "QGenericArgument", "QGenericReturnArgument", "QGLColormap", + "QGLContext", "QGLFormat", "QGLFramebufferObject", "QGlobalStatic", + "QGlobalStaticDeleter", "QGLPixelBuffer", "QGLWidget", "QGradient", + "QGradientStop", "QGradientStops", "QGraphicsEllipseItem", + "QGraphicsGridLayout", "QGraphicsItem", "QGraphicsItemAnimation", + "QGraphicsItemGroup", "QGraphicsLayout", "QGraphicsLayoutItem", + "QGraphicsLinearLayout", "QGraphicsLineItem", "QGraphicsPathItem", + "QGraphicsPixmapItem", "QGraphicsPolygonItem", + "QGraphicsProxyWidget", "QGraphicsRectItem", "QGraphicsScene", + "QGraphicsSceneContextMenuEvent", "QGraphicsSceneDragDropEvent", + "QGraphicsSceneEvent", "QGraphicsSceneHelpEvent", + "QGraphicsSceneHoverEvent", "QGraphicsSceneMouseEvent", + "QGraphicsSceneMoveEvent", "QGraphicsSceneResizeEvent", + "QGraphicsSceneWheelEvent", "QGraphicsSimpleTextItem", + "QGraphicsSvgItem", "QGraphicsTextItem", "QGraphicsView", + "QGraphicsWidget", "QGridLayout", "QGroupBox", "QGtkStyle", "QHash", + "QHashData", "QHashDummyNode", "QHashDummyValue", "QHashIterator", + "QHashNode", "QHBoxLayout", "QHeaderView", "QHelpContentItem", + "QHelpContentModel", "QHelpContentWidget", "QHelpEngine", + "QHelpEngineCore", "QHelpEvent", "QHelpGlobal", "QHelpIndexModel", + "QHelpIndexWidget", "QHelpSearchEngine", "QHelpSearchQuery", + "QHelpSearchQueryWidget", "QHelpSearchResultWidget", "QHideEvent", + "QHostAddress", "QHostInfo", "QHoverEvent", "QHttp", "QHttpHeader", + "QHttpRequestHeader", "QHttpResponseHeader", "QIBaseDriver", + "QIBaseResult", "QIcon", "QIconDragEvent", "QIconEngine", + "QIconEngineFactoryInterface", "QIconEngineFactoryInterfaceV2", + "QIconEnginePlugin", "QIconEnginePluginV2", "QIconEngineV2", + "QIconSet", "QImage", "QImageIOHandler", + "QImageIOHandlerFactoryInterface", "QImageIOPlugin", "QImageReader", + "QImageTextKeyLang", "QImageWriter", "QIncompatibleFlag", + "QInputContext", "QInputContextFactory", + "QInputContextFactoryInterface", "QInputContextPlugin", + "QInputDialog", "QInputEvent", "QInputMethodEvent", "Q_INT16", + "Q_INT32", "Q_INT64", "Q_INT8", "QInternal", "QIntForSize", + "QIntForType", "QIntValidator", "QIODevice", "Q_IPV6ADDR", + "QIPv6Address", "QItemDelegate", "QItemEditorCreator", + "QItemEditorCreatorBase", "QItemEditorFactory", "QItemSelection", + "QItemSelectionModel", "QItemSelectionRange", "QKeyEvent", + "QKeySequence", "QLabel", "QLatin1Char", "QLatin1String", "QLayout", + "QLayoutItem", "QLayoutIterator", "QLCDNumber", "QLibrary", + "QLibraryInfo", "QLine", "QLinearGradient", "QLineEdit", "QLineF", + "QLinkedList", "QLinkedListData", "QLinkedListIterator", + "QLinkedListNode", "QList", "QListData", "QListIterator", + "QListView", "QListWidget", "QListWidgetItem", "Q_LLONG", "QLocale", + "QLocalServer", "QLocalSocket", "Q_LONG", "QMacCompatGLenum", + "QMacCompatGLint", "QMacCompatGLuint", "QMacGLCompatTypes", + "QMacMime", "QMacPasteboardMime", "QMainWindow", "QMap", "QMapData", + "QMapIterator", "QMapNode", "QMapPayloadNode", "QMatrix", + "QMdiArea", "QMdiSubWindow", "QMenu", "QMenuBar", + "QMenubarUpdatedEvent", "QMenuItem", "QMessageBox", + "QMetaClassInfo", "QMetaEnum", "QMetaMethod", "QMetaObject", + "QMetaObjectExtraData", "QMetaProperty", "QMetaType", "QMetaTypeId", + "QMetaTypeId2", "QMimeData", "QMimeSource", "QModelIndex", + "QModelIndexList", "QMotifStyle", "QMouseEvent", "QMoveEvent", + "QMovie", "QMultiHash", "QMultiMap", "QMutableFutureIterator", + "QMutableHashIterator", "QMutableLinkedListIterator", + "QMutableListIterator", "QMutableMapIterator", + "QMutableSetIterator", "QMutableStringListIterator", + "QMutableVectorIterator", "QMutex", "QMutexLocker", "QMYSQLDriver", + "QMYSQLResult", "QNetworkAccessManager", "QNetworkAddressEntry", + "QNetworkCacheMetaData", "QNetworkCookie", "QNetworkCookieJar", + "QNetworkDiskCache", "QNetworkInterface", "QNetworkProxy", + "QNetworkProxyFactory", "QNetworkProxyQuery", "QNetworkReply", + "QNetworkRequest", "QNoDebug", "QNoImplicitBoolCast", "QObject", + "QObjectCleanupHandler", "QObjectData", "QObjectList", + "QObjectUserData", "QOCIDriver", "QOCIResult", "QODBCDriver", + "QODBCResult", "QPageSetupDialog", "QPaintDevice", "QPaintEngine", + "QPaintEngineState", "QPainter", "QPainterPath", + "QPainterPathPrivate", "QPainterPathStroker", "QPaintEvent", + "QPair", "QPalette", "QPen", "QPersistentModelIndex", "QPicture", + "QPictureFormatInterface", "QPictureFormatPlugin", "QPictureIO", + "Q_PID", "QPixmap", "QPixmapCache", "QPlainTextDocumentLayout", + "QPlainTextEdit", "QPlastiqueStyle", "QPluginLoader", "QPoint", + "QPointer", "QPointF", "QPolygon", "QPolygonF", "QPrintDialog", + "QPrintEngine", "QPrinter", "QPrinterInfo", "QPrintPreviewDialog", + "QPrintPreviewWidget", "QProcess", "QProgressBar", + "QProgressDialog", "QProxyModel", "QPSQLDriver", "QPSQLResult", + "QPushButton", "QQueue", "QRadialGradient", "QRadioButton", + "QReadLocker", "QReadWriteLock", "QRect", "QRectF", "QRegExp", + "QRegExpValidator", "QRegion", "QResizeEvent", "QResource", + "QReturnArgument", "QRgb", "QRubberBand", "QRunnable", + "QScriptable", "QScriptClass", "QScriptClassPropertyIterator", + "QScriptContext", "QScriptContextInfo", "QScriptContextInfoList", + "QScriptEngine", "QScriptEngineAgent", "QScriptEngineDebugger", + "QScriptExtensionInterface", "QScriptExtensionPlugin", + "QScriptString", "QScriptSyntaxCheckResult", "QScriptValue", + "QScriptValueIterator", "QScriptValueList", "QScrollArea", + "QScrollBar", "QSemaphore", "QSessionManager", "QSet", + "QSetIterator", "QSettings", "QSharedData", "QSharedDataPointer", + "QSharedMemory", "QSharedPointer", "QShortcut", "QShortcutEvent", + "QShowEvent", "QSignalMapper", "QSignalSpy", "QSimpleXmlNodeModel", + "QSize", "QSizeF", "QSizeGrip", "QSizePolicy", "QSlider", + "QSocketNotifier", "QSortFilterProxyModel", "QSound", + "QSourceLocation", "QSpacerItem", "QSpinBox", "QSplashScreen", + "QSplitter", "QSplitterHandle", "QSpontaneKeyEvent", "QSqlDatabase", + "QSqlDriver", "QSqlDriverCreator", "QSqlDriverCreatorBase", + "QSqlDriverFactoryInterface", "QSqlDriverPlugin", "QSqlError", + "QSqlField", "QSqlIndex", "QSQLite2Driver", "QSQLite2Result", + "QSQLiteDriver", "QSQLiteResult", "QSqlQuery", "QSqlQueryModel", + "QSqlRecord", "QSqlRelation", "QSqlRelationalDelegate", + "QSqlRelationalTableModel", "QSqlResult", "QSqlTableModel", "QSsl", + "QSslCertificate", "QSslCipher", "QSslConfiguration", "QSslError", + "QSslKey", "QSslSocket", "QStack", "QStackedLayout", + "QStackedWidget", "QStandardItem", "QStandardItemEditorCreator", + "QStandardItemModel", "QStatusBar", "QStatusTipEvent", + "QStdWString", "QString", "QStringList", "QStringListIterator", + "QStringListModel", "QStringMatcher", "QStringRef", "QStyle", + "QStyledItemDelegate", "QStyleFactory", "QStyleFactoryInterface", + "QStyleHintReturn", "QStyleHintReturnMask", + "QStyleHintReturnVariant", "QStyleOption", "QStyleOptionButton", + "QStyleOptionComboBox", "QStyleOptionComplex", + "QStyleOptionDockWidget", "QStyleOptionDockWidgetV2", + "QStyleOptionFocusRect", "QStyleOptionFrame", "QStyleOptionFrameV2", + "QStyleOptionFrameV3", "QStyleOptionGraphicsItem", + "QStyleOptionGroupBox", "QStyleOptionHeader", + "QStyleOptionMenuItem", "QStyleOptionProgressBar", + "QStyleOptionProgressBarV2", "QStyleOptionQ3DockWindow", + "QStyleOptionQ3ListView", "QStyleOptionQ3ListViewItem", + "QStyleOptionRubberBand", "QStyleOptionSizeGrip", + "QStyleOptionSlider", "QStyleOptionSpinBox", "QStyleOptionTab", + "QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2", + "QStyleOptionTabV2", "QStyleOptionTabV3", + "QStyleOptionTabWidgetFrame", "QStyleOptionTitleBar", + "QStyleOptionToolBar", "QStyleOptionToolBox", + "QStyleOptionToolBoxV2", "QStyleOptionToolButton", + "QStyleOptionViewItem", "QStyleOptionViewItemV2", + "QStyleOptionViewItemV3", "QStyleOptionViewItemV4", "QStylePainter", + "QStylePlugin", "QSvgGenerator", "QSvgRenderer", "QSvgWidget", + "QSyntaxHighlighter", "QSysInfo", "QSystemLocale", + "QSystemSemaphore", "QSystemTrayIcon", "Qt", "Qt3Support", + "QTabBar", "QTabletEvent", "QTableView", "QTableWidget", + "QTableWidgetItem", "QTableWidgetSelectionRange", "QTabWidget", + "QtAlgorithms", "QtAssistant", "QtCleanUpFunction", + "QtConcurrentFilter", "QtConcurrentMap", "QtConcurrentRun", + "QtContainerFwd", "QtCore", "QTcpServer", "QTcpSocket", "QtDBus", + "QtDebug", "QtDesigner", "QTDSDriver", "QTDSResult", + "QTemporaryFile", "QtEndian", "QTest", "QTestAccessibility", + "QTestAccessibilityEvent", "QTestData", "QTestDelayEvent", + "QTestEvent", "QTestEventList", "QTestEventLoop", + "QTestKeyClicksEvent", "QTestKeyEvent", "QTestMouseEvent", + "QtEvents", "QTextBlock", "QTextBlockFormat", "QTextBlockGroup", + "QTextBlockUserData", "QTextBoundaryFinder", "QTextBrowser", + "QTextCharFormat", "QTextCodec", "QTextCodecFactoryInterface", + "QTextCodecPlugin", "QTextCursor", "QTextDecoder", "QTextDocument", + "QTextDocumentFragment", "QTextDocumentWriter", "QTextEdit", + "QTextEncoder", "QTextFormat", "QTextFragment", "QTextFrame", + "QTextFrameFormat", "QTextFrameLayoutData", "QTextImageFormat", + "QTextInlineObject", "QTextIStream", "QTextItem", "QTextLayout", + "QTextLength", "QTextLine", "QTextList", "QTextListFormat", + "QTextObject", "QTextObjectInterface", "QTextOption", + "QTextOStream", "QTextStream", "QTextStreamFunction", + "QTextStreamManipulator", "QTextTable", "QTextTableCell", + "QTextTableCellFormat", "QTextTableFormat", "QtGlobal", "QtGui", + "QtHelp", "QThread", "QThreadPool", "QThreadStorage", + "QThreadStorageData", "QTime", "QTimeEdit", "QTimeLine", "QTimer", + "QTimerEvent", "QtMsgHandler", "QtNetwork", "QToolBar", + "QToolBarChangeEvent", "QToolBox", "QToolButton", "QToolTip", + "QtOpenGL", "QtPlugin", "QtPluginInstanceFunction", "QTransform", + "QTranslator", "QTreeView", "QTreeWidget", "QTreeWidgetItem", + "QTreeWidgetItemIterator", "QTS", "QtScript", "QtScriptTools", + "QtSql", "QtSvg", "QtTest", "QtUiTools", "QtWebKit", "QtXml", + "QtXmlPatterns", "QTypeInfo", "QUdpSocket", "QUiLoader", + "QUintForSize", "QUintForType", "QUndoCommand", "QUndoGroup", + "QUndoStack", "QUndoView", "QUnixPrintWidget", "QUpdateLaterEvent", + "QUrl", "QUrlInfo", "QUuid", "QValidator", "QVariant", + "QVariantComparisonHelper", "QVariantHash", "QVariantList", + "QVariantMap", "QVarLengthArray", "QVBoxLayout", "QVector", + "QVectorData", "QVectorIterator", "QVectorTypedData", + "QWaitCondition", "QWeakPointer", "QWebDatabase", "QWebFrame", + "QWebHistory", "QWebHistoryInterface", "QWebHistoryItem", + "QWebHitTestResult", "QWebPage", "QWebPluginFactory", + "QWebSecurityOrigin", "QWebSettings", "QWebView", "QWhatsThis", + "QWhatsThisClickedEvent", "QWheelEvent", "QWidget", "QWidgetAction", + "QWidgetData", "QWidgetItem", "QWidgetItemV2", "QWidgetList", + "QWidgetMapper", "QWidgetSet", "QWindowsCEStyle", "QWindowsMime", + "QWindowsMobileStyle", "QWindowsStyle", "QWindowStateChangeEvent", + "QWindowsVistaStyle", "QWindowsXPStyle", "QWizard", "QWizardPage", + "QWMatrix", "QWorkspace", "QWriteLocker", "QX11EmbedContainer", + "QX11EmbedWidget", "QX11Info", "QXmlAttributes", + "QXmlContentHandler", "QXmlDeclHandler", "QXmlDefaultHandler", + "QXmlDTDHandler", "QXmlEntityResolver", "QXmlErrorHandler", + "QXmlFormatter", "QXmlInputSource", "QXmlItem", + "QXmlLexicalHandler", "QXmlLocator", "QXmlName", "QXmlNamePool", + "QXmlNamespaceSupport", "QXmlNodeModelIndex", "QXmlParseException", + "QXmlQuery", "QXmlReader", "QXmlResultItems", "QXmlSerializer", + "QXmlSimpleReader", "QXmlStreamAttribute", "QXmlStreamAttributes", + "QXmlStreamEntityDeclaration", "QXmlStreamEntityDeclarations", + "QXmlStreamEntityResolver", "QXmlStreamNamespaceDeclaration", + "QXmlStreamNamespaceDeclarations", "QXmlStreamNotationDeclaration", + "QXmlStreamNotationDeclarations", "QXmlStreamReader", + "QXmlStreamStringRef", "QXmlStreamWriter" ) ), 'SYMBOLS' => array( diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php index 264ef638d..30f5a93f2 100644 --- a/inc/geshi/cpp.php +++ b/inc/geshi/cpp.php @@ -7,7 +7,7 @@ * - M. Uli Kusterer (witness.of.teachtext@gmx.net) * - Jack Lloyd (lloyd@randombit.net) * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/09/27 * * C++ language file for GeSHi. @@ -97,7 +97,7 @@ $language_data = array ( 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC', 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', - 'static_cast', 'explicit', 'friend', 'wchar_t', 'typename', 'typeid', 'class' + 'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ), 3 => array( 'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', @@ -126,7 +126,21 @@ $language_data = array ( 'register', 'short', 'shortint', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), ), 'SYMBOLS' => array( diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php index 0f8a5e2a3..6a9c3c2bd 100644 --- a/inc/geshi/csharp.php +++ b/inc/geshi/csharp.php @@ -3,16 +3,19 @@ * csharp.php * ---------- * Author: Alan Juden (alan@judenware.org) + * Revised by: Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C# language file for GeSHi. * * CHANGES * ------- + * 2009/04/03 (1.0.8.6) + * - Added missing keywords identified by Rosetta Code users. * 2008/05/25 (1.0.7.22) - * - Added highlighting of using and namespace directives as non-OOP + * - Added highlighting of using and namespace directives as non-OOP * 2005/01/05 (1.0.1) * - Used hardquote support for @"..." strings (Cliff Stanford) * 2004/11/27 (1.0.0) @@ -59,12 +62,12 @@ $language_data = array ( 1 => array( 'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue', 'default', 'do', 'else', 'event', 'explicit', 'extern', 'false', - 'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit', - 'in', 'internal', 'lock', 'namespace', 'null', 'operator', 'out', - 'override', 'params', 'partial', 'private', 'protected', 'public', - 'readonly', 'ref', 'return', 'sealed', 'stackalloc', 'static', - 'switch', 'this', 'throw', 'true', 'try', 'unsafe', 'using', - 'virtual', 'void', 'while' + 'finally', 'fixed', 'for', 'foreach', 'from', 'goto', 'if', + 'implicit', 'in', 'internal', 'lock', 'namespace', 'null', + 'operator', 'out', 'override', 'params', 'partial', 'private', + 'protected', 'public', 'readonly', 'ref', 'return', 'sealed', + 'select', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true', + 'try', 'unsafe', 'using', 'virtual', 'where', 'while', 'yield' ), 2 => array( '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if', @@ -76,7 +79,7 @@ $language_data = array ( 4 => array( 'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte', - 'short', 'string', 'struct', 'uint', 'ulong', 'ushort' + 'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void' ), 5 => array( 'Microsoft.Win32', @@ -169,7 +172,7 @@ $language_data = array ( ), 'SYMBOLS' => array( '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', - '(', ')', '{', '}', '[', ']', '|' + '(', ')', '{', '}', '[', ']', '|', '.' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -181,10 +184,10 @@ $language_data = array ( ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #0600FF;', + 1 => 'color: #0600FF; font-weight: bold;', 2 => 'color: #FF8000; font-weight: bold;', 3 => 'color: #008000;', - 4 => 'color: #FF0000;', + 4 => 'color: #6666cc; font-weight: bold;', 5 => 'color: #000000;' ), 'COMMENTS' => array( @@ -198,7 +201,7 @@ $language_data = array ( 'HARD' => 'color: #008080; font-weight: bold;' ), 'BRACKETS' => array( - 0 => 'color: #000000;' + 0 => 'color: #008000;' ), 'STRINGS' => array( 0 => 'color: #666666;', @@ -242,7 +245,7 @@ $language_data = array ( 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])", - 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_%\\-])" ) ) ); diff --git a/inc/geshi/css.php b/inc/geshi/css.php index f6386bdc0..51f261486 100644 --- a/inc/geshi/css.php +++ b/inc/geshi/css.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/18 * * CSS language file for GeSHi. diff --git a/inc/geshi/cuesheet.php b/inc/geshi/cuesheet.php new file mode 100644 index 000000000..81c607c10 --- /dev/null +++ b/inc/geshi/cuesheet.php @@ -0,0 +1,138 @@ +<?php +/************************************************************************************* + * cuesheet.php + * ---------- + * Author: Benny Baumann (benbe@geshi.org) + * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2009/12/21 + * + * Cuesheet language file for GeSHi. + * + * CHANGES + * ------- + * 2009/12/21 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/12/21) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Cuesheet', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Single-Line Comments using REM command + 1 => "/(?<=\bREM\b).*?$/im", + ), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'CATALOG','CDTEXTFILE','FILE','FLAGS','INDEX','ISRC','PERFORMER', + 'POSTGAP','PREGAP','REM','SONGWRITER','TITLE','TRACK' + ), + 2 => array( + 'AIFF', 'BINARY', 'MOTOROLA', 'MP3', 'WAVE' + ), + 3 => array( + '4CH', 'DCP', 'PRE', 'SCMS' + ), + 4 => array( + 'AUDIO', 'CDG', 'MODE1/2048', 'MODE1/2336', 'MODE2/2336', + 'MODE2/2352', 'CDI/2336', 'CDI/2352' + ) + ), + 'SYMBOLS' => array( + ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000066; font-weight: bold;', + 3 => 'color: #000066; font-weight: bold;', + 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + ), + 'BRACKETS' => array( + 0 => 'color: #0000ff;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #006600;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 1 => 'color: #000099;', + 2 => 'color: #009900;', + ) + ), + 'URLS' => array( + 1 => 'http://digitalx.org/cuesheetsyntax.php#{FNAMEL}', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 2 => '\b[A-Za-z0-9]{5}\d{7}\b', + 1 => '(?<=[\s:]|^)\d+(?=[\s:]|$)', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<![\w\.])', + 'DISALLOWED_AFTER' => '(?![\w\.])', + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/d.php b/inc/geshi/d.php index 691091809..5ef349d52 100644 --- a/inc/geshi/d.php +++ b/inc/geshi/d.php @@ -4,7 +4,7 @@ * ----- * Author: Thomas Kuehne (thomas@kuehne.cn) * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/04/22 * * D language file for GeSHi. diff --git a/inc/geshi/dcs.php b/inc/geshi/dcs.php index 0f6bad372..4762ed906 100644 --- a/inc/geshi/dcs.php +++ b/inc/geshi/dcs.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Stelio Passaris (GeSHi@stelio.net) * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/01/20 * * DCS language file for GeSHi. @@ -59,9 +59,6 @@ $language_data = array ( ), 'COMMENT_MULTI' => array( ), - 'HARDQUOTE' => array( - ), - 'HARDESCAPE' => '', 'COMMENT_REGEXP' => array( // Highlight embedded C code in a separate color: 2 => '/\bINSERT_C_CODE\b.*?\bEND_C_CODE\b/ims' diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php index 9d7ad7e7d..ff54af8f9 100644 --- a/inc/geshi/delphi.php +++ b/inc/geshi/delphi.php @@ -4,7 +4,7 @@ * ---------- * Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/26 * * Delphi (Object Pascal) language file for GeSHi. @@ -68,7 +68,7 @@ $language_data = array ( 'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var', 'Virtual', 'While', 'With', 'Xor', 'assembler', 'far', - 'near', 'pascal', 'register', 'cdecl', 'safecall', 'stdcall', 'varargs' + 'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs' ), 2 => array( 'nil', 'false', 'self', 'true', 'var', 'type', 'const' diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php index b4703c1d2..5570406da 100644 --- a/inc/geshi/diff.php +++ b/inc/geshi/diff.php @@ -4,7 +4,7 @@ * -------- * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu) * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/12/29 * * Diff-output language file for GeSHi. @@ -115,7 +115,7 @@ $language_data = array ( 0 => "[0-9,]+[acd][0-9,]+", //Removed lines 1 => array( - GESHI_SEARCH => '^\\<.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\<.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -123,7 +123,7 @@ $language_data = array ( ), //Inserted lines 2 => array( - GESHI_SEARCH => '^\\>.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\>.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -131,7 +131,7 @@ $language_data = array ( ), //Location line 3 => array( - GESHI_SEARCH => '^[\\-]{3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))-{3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -139,7 +139,7 @@ $language_data = array ( ), //Inserted line 4 => array( - GESHI_SEARCH => '^(\\+){3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))(\\+){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -147,7 +147,7 @@ $language_data = array ( ), //Modified line 5 => array( - GESHI_SEARCH => '^\\!.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\!.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -155,7 +155,7 @@ $language_data = array ( ), //File specification 6 => array( - GESHI_SEARCH => '^[\\@]{2}.*$', + GESHI_SEARCH => '(^|(?<=\A\s))[\\@]{2}.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -163,7 +163,7 @@ $language_data = array ( ), //Removed line 7 => array( - GESHI_SEARCH => '^\\-.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\-.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -171,7 +171,7 @@ $language_data = array ( ), //Inserted line 8 => array( - GESHI_SEARCH => '^\\+.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\+.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -179,7 +179,7 @@ $language_data = array ( ), //File specification 9 => array( - GESHI_SEARCH => '^(\\*){3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))(\\*){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -193,4 +193,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/div.php b/inc/geshi/div.php index 0e249740c..276e9e882 100644 --- a/inc/geshi/div.php +++ b/inc/geshi/div.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Gabriel Lorenzo (ermakina@gmail.com) * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/06/19 * * DIV language file for GeSHi. diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php index bec3de129..9484d3766 100644 --- a/inc/geshi/dos.php +++ b/inc/geshi/dos.php @@ -4,7 +4,7 @@ * ------- * Author: Alessandro Staltari (staltari@geocities.com) * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/07/05 * * DOS language file for GeSHi. @@ -64,7 +64,10 @@ $language_data = array ( 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), //DOS comment lines - 'COMMENT_REGEXP' => array(1 => "/^\s*@?REM.*$/mi"), + 'COMMENT_REGEXP' => array( + 1 => "/^\s*@?REM\b.*$/mi", + 2 => "/^\s*::.*$/m" + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array(), 'ESCAPE_CHAR' => '', @@ -114,7 +117,8 @@ $language_data = array ( 4 => 'color: #0000ff; font-weight: bold;' ), 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;' + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #b100b1; font-style: italic;', ), 'ESCAPE_CHAR' => array( 0 => 'color: #ff0000; font-weight: bold;' @@ -195,4 +199,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php index c45a74af7..04b6792d7 100644 --- a/inc/geshi/dot.php +++ b/inc/geshi/dot.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Adrien Friggeri (adrien@friggeri.net) * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/05/30 * * dot language file for GeSHi. @@ -63,14 +63,14 @@ $language_data = array ( 'node', 'graph', 'digraph', 'strict', 'edge', 'subgraph' ), 3 => array( - 'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'TRUE', 'auto', 'back', - 'bold', 'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot', - 'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf', 'false', - 'fill', 'filled', 'forward', 'global', 'hexagon', 'house', 'inv', 'invdot', - 'invhouse', 'invis', 'invodot', 'invtrapezium', 'invtriangle', 'local', 'max', - 'min', 'none', 'normal', 'octagon', 'odot', 'out', 'parallelogram', 'plaintext', - 'polygon', 'record', 'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', - 'true' + 'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'auto', 'back', 'bold', + 'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot', + 'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf', + 'false', 'fill', 'filled', 'forward', 'global', 'hexagon', 'house', + 'inv', 'invdot', 'invhouse', 'invis', 'invodot', 'invtrapezium', + 'invtriangle', 'local', 'max', 'min', 'none', 'normal', 'octagon', + 'odot', 'out', 'parallelogram', 'plaintext', 'polygon', 'record', + 'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', 'true' ), 4 => array( 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'black', @@ -161,4 +161,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/ecmascript.php b/inc/geshi/ecmascript.php new file mode 100644 index 000000000..3e61b57cb --- /dev/null +++ b/inc/geshi/ecmascript.php @@ -0,0 +1,210 @@ +<?php +/************************************************************************************* + * ecmascript.php + * -------------- + * Author: Michel Mariani (http://www.tonton-pixel.com/site/) + * Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/) + * Release Version: 1.0.8.8 + * Date Started: 2010/01/08 + * + * ECMAScript language file for GeSHi. + * + * CHANGES + * ------- + * 2010/01/08 (1.0.8.6) + * - First Release + * - Adapted from javascript.php to support plain ECMAScript/JavaScript (no HTML, no DOM) + * - Fixed regular expression for 'COMMENT_REGEXP' to exclude 'COMMENT_MULTI' syntax + * - Added '~' and removed '@' from 'SYMBOLS' + * - Cleaned up and expanded the list of 'KEYWORDS' + * - Added support for 'ESCAPE_REGEXP' and 'NUMBERS' (from c.php) + * - Selected colors to match my web site color chart + * - Added full number highlighting in all C language style formats + * - Added highlighting of escape sequences in strings, in all C language style formats including Unicode (\uXXXX). + * + * TODO (updated 2010/01/08) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'ECMAScript', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + // Regular Expression Literals + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( // Reserved literals + 'false', 'true', + 'null' + ), + 2 => array( // Main keywords + 'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else', + 'finally', 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return', + 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while', + 'with' + ), + 3 => array( // Extra keywords or keywords reserved for future use + 'abstract', 'as', 'boolean', 'byte', 'char', 'class', 'const', 'debugger', + 'double', 'enum', 'export', 'extends', 'final', 'float', 'goto', 'implements', + 'import', 'int', 'interface', 'is', 'long', 'native', 'namespace', 'package', + 'private', 'protected', 'public', 'short', 'static', 'super', 'synchronized', 'throws', + 'transient', 'use', 'volatile' + ), + 4 => array( // Operators + 'get', 'set' + ), + 5 => array( // Built-in object classes + 'Array', 'Boolean', 'Date', 'EvalError', 'Error', 'Function', 'Math', 'Number', + 'Object', 'RangeError', 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError' + ), + 6 => array( // Global properties + 'Infinity', 'NaN', 'undefined' + ), + 7 => array( // Global methods + 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', + 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', + // The escape and unescape functions do not work properly for non-ASCII characters and have been deprecated. + // In JavaScript 1.5 and later, use encodeURI, decodeURI, encodeURIComponent, and decodeURIComponent. + 'escape', 'unescape' + ), + 8 => array( // Function's arguments + 'arguments' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '.', '&', '|', '^', + '<', '>', '=', '~', + ',', ';', '?', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #009999;', + 2 => 'color: #1500C8;', + 3 => 'color: #1500C8;', + 4 => 'color: #1500C8;', + 5 => 'color: #1500C8;', + 6 => 'color: #1500C8;', + 7 => 'color: #1500C8;', + 8 => 'color: #1500C8;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #CC0000;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #3366CC;', + 1 => 'color: #3366CC;', + 2 => 'color: #3366CC;', + 3 => 'color: #3366CC;', + 4 => 'color: #3366CC;', + 5 => 'color: #3366CC;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008800;' + ), + 'STRINGS' => array( + 0 => 'color: #9900FF;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF00FF;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #FF00FF;', + GESHI_NUMBER_OCT_PREFIX => 'color: #FF00FF;', + GESHI_NUMBER_HEX_PREFIX => 'color: #FF00FF;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color: #FF00FF;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color: #FF00FF;', + GESHI_NUMBER_FLT_NONSCI_F => 'color: #FF00FF;', + GESHI_NUMBER_FLT_NONSCI => 'color: #FF00FF;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?>
\ No newline at end of file diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php index ab7abf974..89cef7965 100644 --- a/inc/geshi/eiffel.php +++ b/inc/geshi/eiffel.php @@ -4,7 +4,7 @@ * ---------- * Author: Zoran Simic (zsimic@axarosenberg.com) * Copyright: (c) 2005 Zoran Simic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/06/30 * * Eiffel language file for GeSHi. diff --git a/inc/geshi/email.php b/inc/geshi/email.php index a0a744c6d..91a104840 100644 --- a/inc/geshi/email.php +++ b/inc/geshi/email.php @@ -4,7 +4,7 @@ * --------------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/10/19 * * Email (mbox \ eml \ RFC format) language file for GeSHi. @@ -51,10 +51,11 @@ $language_data = array ( 'HTTP', 'SMTP', 'ASMTP', 'ESMTP' ), 2 => array( - 'Content-Type','Content-Transfer-Encoding','Content-Disposition', - 'Delivered-To','Dkim-Signature','Domainkey-Signature','In-Reply-To', - 'Message-Id','MIME-Version','Received','Received-SPF','References', - 'Resend-From','Resend-To','Return-Path' + 'Authentication-Results','Content-Description','Content-Type', + 'Content-Disposition','Content-Transfer-Encoding','Delivered-To', + 'Dkim-Signature','Domainkey-Signature','In-Reply-To','Message-Id', + 'MIME-Version','OpenPGP','Received','Received-SPF','References', + 'Resend-From','Resend-To','Return-Path','User-Agent' ), 3 => array( 'Date','From','Subject','To', @@ -131,7 +132,7 @@ $language_data = array ( ), //Email-Adresses or Mail-IDs 2 => array( - GESHI_SEARCH => "\b[\w\.]+@\w+(?:(?:\.\w+)*\.\w{2,4})?", + GESHI_SEARCH => "\b[\w\.\-]+@\w+(?:(?:\.\w+)*\.\w{2,4})?", GESHI_REPLACE => "\\0", GESHI_MODIFIERS => "mi", GESHI_BEFORE => "", @@ -159,7 +160,7 @@ $language_data = array ( ), //Field-Assignments 5 => array( - GESHI_SEARCH => "(?<=\s)[A-Z0-9\-]+(?==(?!\s|$))", + GESHI_SEARCH => "(?<=\s)[A-Z0-9\-\.]+(?==(?:$|\s$|[^\s=]))", GESHI_REPLACE => "\\0", GESHI_MODIFIERS => "mi", GESHI_BEFORE => "", @@ -177,7 +178,7 @@ $language_data = array ( ), 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 'SCRIPT_DELIMITERS' => array( - 0 => "/(?<start>^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?<end>$)/m" + 0 => "/(?P<start>^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P<end>$)/m" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/erlang.php b/inc/geshi/erlang.php new file mode 100644 index 000000000..d98de2f37 --- /dev/null +++ b/inc/geshi/erlang.php @@ -0,0 +1,441 @@ +<?php +/************************************************************************************* + * erlang.php + * -------- + * Author: Benny Baumann (BenBE@geshi.org) + * Contributions: + * - Uwe Dauernheim (uwe@dauernheim.net) + * - Dan Forest-Barbier (dan@twisted.in) + * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/) + * Release Version: 1.0.8.8 + * Date Started: 2008-09-27 + * + * Erlang language file for GeSHi. + * + * CHANGES + * ------- + * 2009/05/02 (1.0.8.3) + * - Now using 'PARSER_CONTROL' instead of huge rexgexps, better and cleaner + * + * 2009/04/26 (1.0.8.3) + * - Only link to existing docs / Fixes + * + * 2008-09-28 (1.0.0.1) + * [!] Bug fixed with keyword module. + * [+] Added more function names + * + * 2008-09-27 (1.0.0) + * [ ] First Release + * + * TODO (updated 2008-09-27) + * ------------------------- + * [!] Stop ';' from being transformed to '<SEMI>' + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Erlang', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'", "\\"), + 'HARDCHAR' => "\\", + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + //Control flow keywrods + 1 => array( + 'after', 'andalso', 'begin', 'case', 'catch', 'end', 'fun', 'if', + 'of', 'orelse', 'receive', 'try', 'when', 'query' + ), + //Binary operators + 2 => array( + 'and', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', 'div', 'not', + 'or', 'rem', 'xor' + ), + 3 => array( + 'abs', 'alive', 'apply', 'atom_to_list', 'binary_to_list', + 'binary_to_term', 'concat_binary', 'date', 'disconnect_node', + 'element', 'erase', 'exit', 'float', 'float_to_list', 'get', + 'get_keys', 'group_leader', 'halt', 'hd', 'integer_to_list', + 'is_alive', 'length', 'link', 'list_to_atom', 'list_to_binary', + 'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple', + 'load_module', 'make_ref', 'monitor_node', 'node', 'nodes', 'now', + 'open_port', 'pid_to_list', 'process_flag', 'process_info', + 'process', 'put', 'register', 'registered', 'round', 'self', + 'setelement', 'size', 'spawn', 'spawn_link', 'split_binary', + 'statistics', 'term_to_binary', 'throw', 'time', 'tl', 'trunc', + 'tuple_to_list', 'unlink', 'unregister', 'whereis' + ), + // Built-In Functions + 4 => array( + 'atom', 'binary', 'constant', 'function', 'integer', 'is_atom', + 'is_binary', 'is_constant', 'is_function', 'is_integer', 'is_list', + 'is_number', 'is_pid', 'is_reference', 'is_record', 'list', + 'number', 'pid', 'ports', 'port_close', 'port_info', 'reference' + ), + // Erlang/OTP internal modules (scary one) + 5 => array( + 'alarm_handler', 'any', 'app', 'application', 'appmon', 'appup', + 'array', 'asn1ct', 'asn1rt', 'auth', 'base64', 'beam_lib', 'c', + 'calendar', 'code', 'common_test_app', 'compile', 'config', + 'corba', 'corba_object', 'cosEventApp', 'CosEventChannelAdmin', + 'CosEventChannelAdmin_ConsumerAdmin', + 'CosEventChannelAdmin_EventChannel', + 'CosEventChannelAdmin_ProxyPullConsumer', + 'CosEventChannelAdmin_ProxyPullSupplier', + 'CosEventChannelAdmin_ProxyPushConsumer', + 'CosEventChannelAdmin_ProxyPushSupplier', + 'CosEventChannelAdmin_SupplierAdmin', 'CosEventDomainAdmin', + 'CosEventDomainAdmin_EventDomain', + 'CosEventDomainAdmin_EventDomainFactory', + 'cosEventDomainApp', 'CosFileTransfer_Directory', + 'CosFileTransfer_File', 'CosFileTransfer_FileIterator', + 'CosFileTransfer_FileTransferSession', + 'CosFileTransfer_VirtualFileSystem', + 'cosFileTransferApp', 'CosNaming', 'CosNaming_BindingIterator', + 'CosNaming_NamingContext', 'CosNaming_NamingContextExt', + 'CosNotification', 'CosNotification_AdminPropertiesAdmin', + 'CosNotification_QoSAdmin', 'cosNotificationApp', + 'CosNotifyChannelAdmin_ConsumerAdmin', + 'CosNotifyChannelAdmin_EventChannel', + 'CosNotifyChannelAdmin_EventChannelFactory', + 'CosNotifyChannelAdmin_ProxyConsumer', + 'CosNotifyChannelAdmin_ProxyPullConsumer', + 'CosNotifyChannelAdmin_ProxyPullSupplier', + 'CosNotifyChannelAdmin_ProxyPushConsumer', + 'CosNotifyChannelAdmin_ProxyPushSupplier', + 'CosNotifyChannelAdmin_ProxySupplier', + 'CosNotifyChannelAdmin_SequenceProxyPullConsumer', + 'CosNotifyChannelAdmin_SequenceProxyPullSupplier', + 'CosNotifyChannelAdmin_SequenceProxyPushConsumer', + 'CosNotifyChannelAdmin_SequenceProxyPushSupplier', + 'CosNotifyChannelAdmin_StructuredProxyPullConsumer', + 'CosNotifyChannelAdmin_StructuredProxyPullSupplier', + 'CosNotifyChannelAdmin_StructuredProxyPushConsumer', + 'CosNotifyChannelAdmin_StructuredProxyPushSupplier', + 'CosNotifyChannelAdmin_SupplierAdmin', + 'CosNotifyComm_NotifyPublish', 'CosNotifyComm_NotifySubscribe', + 'CosNotifyFilter_Filter', 'CosNotifyFilter_FilterAdmin', + 'CosNotifyFilter_FilterFactory', 'CosNotifyFilter_MappingFilter', + 'cosProperty', 'CosPropertyService_PropertiesIterator', + 'CosPropertyService_PropertyNamesIterator', + 'CosPropertyService_PropertySet', + 'CosPropertyService_PropertySetDef', + 'CosPropertyService_PropertySetDefFactory', + 'CosPropertyService_PropertySetFactory', 'cosTime', + 'CosTime_TimeService', 'CosTime_TIO', 'CosTime_UTO', + 'CosTimerEvent_TimerEventHandler', + 'CosTimerEvent_TimerEventService', 'cosTransactions', + 'CosTransactions_Control', 'CosTransactions_Coordinator', + 'CosTransactions_RecoveryCoordinator', 'CosTransactions_Resource', + 'CosTransactions_SubtransactionAwareResource', + 'CosTransactions_Terminator', 'CosTransactions_TransactionFactory', + 'cover', 'cprof', 'cpu_sup', 'crashdump', 'crypto', 'crypto_app', + 'ct', 'ct_cover', 'ct_ftp', 'ct_master', 'ct_rpc', 'ct_snmp', + 'ct_ssh', 'ct_telnet', 'dbg', 'debugger', 'dets', 'dialyzer', + 'dict', 'digraph', 'digraph_utils', 'disk_log', 'disksup', + 'docb_gen', 'docb_transform', 'docb_xml_check', 'docbuilder_app', + 'driver_entry', 'edoc', 'edoc_doclet', 'edoc_extract', + 'edoc_layout', 'edoc_lib', 'edoc_run', 'egd', 'ei', 'ei_connect', + 'epmd', 'epp', 'epp_dodger', 'eprof', 'erl', 'erl_boot_server', + 'erl_call', 'erl_comment_scan', 'erl_connect', 'erl_ddll', + 'erl_driver', 'erl_error', 'erl_eterm', 'erl_eval', + 'erl_expand_records', 'erl_format', 'erl_global', 'erl_id_trans', + 'erl_internal', 'erl_lint', 'erl_malloc', 'erl_marshal', + 'erl_parse', 'erl_pp', 'erl_prettypr', 'erl_prim_loader', + 'erl_prim_loader_stub', 'erl_recomment', 'erl_scan', + 'erl_set_memory_block', 'erl_syntax', 'erl_syntax_lib', 'erl_tar', + 'erl_tidy', 'erlang', 'erlang_mode', 'erlang_stub', 'erlc', + 'erlsrv', 'error_handler', 'error_logger', 'erts_alloc', + 'erts_alloc_config', 'escript', 'et', 'et_collector', + 'et_selector', 'et_viewer', 'etop', 'ets', 'eunit', 'file', + 'file_sorter', 'filelib', 'filename', 'fixed', 'fprof', 'ftp', + 'gb_sets', 'gb_trees', 'gen_event', 'gen_fsm', 'gen_sctp', + 'gen_server', 'gen_tcp', 'gen_udp', 'gl', 'global', 'global_group', + 'glu', 'gs', 'heart', 'http', 'httpd', 'httpd_conf', + 'httpd_socket', 'httpd_util', 'i', 'ic', 'ic_c_protocol', + 'ic_clib', 'igor', 'inet', 'inets', 'init', 'init_stub', + 'instrument', 'int', 'interceptors', 'inviso', 'inviso_as_lib', + 'inviso_lfm', 'inviso_lfm_tpfreader', 'inviso_rt', + 'inviso_rt_meta', 'io', 'io_lib', 'kernel_app', 'lib', 'lists', + 'lname', 'lname_component', 'log_mf_h', 'make', 'math', 'megaco', + 'megaco_codec_meas', 'megaco_codec_transform', + 'megaco_edist_compress', 'megaco_encoder', 'megaco_flex_scanner', + 'megaco_tcp', 'megaco_transport', 'megaco_udp', 'megaco_user', + 'memsup', 'mnesia', 'mnesia_frag_hash', 'mnesia_registry', + 'mod_alias', 'mod_auth', 'mod_esi', 'mod_security', + 'Module_Interface', 'ms_transform', 'net_adm', 'net_kernel', + 'new_ssl', 'nteventlog', 'observer_app', 'odbc', 'orber', + 'orber_acl', 'orber_diagnostics', 'orber_ifr', 'orber_tc', + 'orddict', 'ordsets', 'os', 'os_mon', 'os_mon_mib', 'os_sup', + 'otp_mib', 'overload', 'packages', 'percept', 'percept_profile', + 'pg', 'pg2', 'pman', 'pool', 'prettypr', 'proc_lib', 'proplists', + 'public_key', 'qlc', 'queue', 'random', 'rb', 're', 'regexp', + 'registry', 'rel', 'release_handler', 'reltool', 'relup', 'rpc', + 'run_erl', 'run_test', 'runtime_tools_app', 'sasl_app', 'script', + 'seq_trace', 'sets', 'shell', 'shell_default', 'slave', 'snmp', + 'snmp_app', 'snmp_community_mib', 'snmp_framework_mib', + 'snmp_generic', 'snmp_index', 'snmp_notification_mib', 'snmp_pdus', + 'snmp_standard_mib', 'snmp_target_mib', 'snmp_user_based_sm_mib', + 'snmp_view_based_acm_mib', 'snmpa', 'snmpa_conf', 'snmpa_error', + 'snmpa_error_io', 'snmpa_error_logger', 'snmpa_error_report', + 'snmpa_local_db', 'snmpa_mpd', 'snmpa_network_interface', + 'snmpa_network_interface_filter', + 'snmpa_notification_delivery_info_receiver', + 'snmpa_notification_filter', 'snmpa_supervisor', 'snmpc', 'snmpm', + 'snmpm_conf', 'snmpm_mpd', 'snmpm_network_interface', 'snmpm_user', + 'sofs', 'ssh', 'ssh_channel', 'ssh_connection', 'ssh_sftp', + 'ssh_sftpd', 'ssl', 'ssl_app', 'ssl_pkix', 'start', 'start_erl', + 'start_webtool', 'stdlib_app', 'string', 'supervisor', + 'supervisor_bridge', 'sys', 'systools', 'tags', 'test_server', + 'test_server_app', 'test_server_ctrl', 'tftp', 'timer', 'toolbar', + 'ttb', 'tv', 'unicode', 'unix_telnet', 'user', 'webtool', 'werl', + 'win32reg', 'wrap_log_reader', 'wx', 'wx_misc', 'wx_object', + 'wxAcceleratorEntry', 'wxAcceleratorTable', 'wxArtProvider', + 'wxAuiDockArt', 'wxAuiManager', 'wxAuiNotebook', 'wxAuiPaneInfo', + 'wxAuiTabArt', 'wxBitmap', 'wxBitmapButton', 'wxBitmapDataObject', + 'wxBoxSizer', 'wxBrush', 'wxBufferedDC', 'wxBufferedPaintDC', + 'wxButton', 'wxCalendarCtrl', 'wxCalendarDateAttr', + 'wxCalendarEvent', 'wxCaret', 'wxCheckBox', 'wxCheckListBox', + 'wxChildFocusEvent', 'wxChoice', 'wxClientDC', 'wxClipboard', + 'wxCloseEvent', 'wxColourData', 'wxColourDialog', + 'wxColourPickerCtrl', 'wxColourPickerEvent', 'wxComboBox', + 'wxCommandEvent', 'wxContextMenuEvent', 'wxControl', + 'wxControlWithItems', 'wxCursor', 'wxDataObject', 'wxDateEvent', + 'wxDatePickerCtrl', 'wxDC', 'wxDialog', 'wxDirDialog', + 'wxDirPickerCtrl', 'wxDisplayChangedEvent', 'wxEraseEvent', + 'wxEvent', 'wxEvtHandler', 'wxFileDataObject', 'wxFileDialog', + 'wxFileDirPickerEvent', 'wxFilePickerCtrl', 'wxFindReplaceData', + 'wxFindReplaceDialog', 'wxFlexGridSizer', 'wxFocusEvent', 'wxFont', + 'wxFontData', 'wxFontDialog', 'wxFontPickerCtrl', + 'wxFontPickerEvent', 'wxFrame', 'wxGauge', 'wxGBSizerItem', + 'wxGenericDirCtrl', 'wxGLCanvas', 'wxGraphicsBrush', + 'wxGraphicsContext', 'wxGraphicsFont', 'wxGraphicsMatrix', + 'wxGraphicsObject', 'wxGraphicsPath', 'wxGraphicsPen', + 'wxGraphicsRenderer', 'wxGrid', 'wxGridBagSizer', 'wxGridCellAttr', + 'wxGridCellEditor', 'wxGridCellRenderer', 'wxGridEvent', + 'wxGridSizer', 'wxHelpEvent', 'wxHtmlEasyPrinting', 'wxIcon', + 'wxIconBundle', 'wxIconizeEvent', 'wxIdleEvent', 'wxImage', + 'wxImageList', 'wxJoystickEvent', 'wxKeyEvent', + 'wxLayoutAlgorithm', 'wxListBox', 'wxListCtrl', 'wxListEvent', + 'wxListItem', 'wxListView', 'wxMask', 'wxMaximizeEvent', + 'wxMDIChildFrame', 'wxMDIClientWindow', 'wxMDIParentFrame', + 'wxMemoryDC', 'wxMenu', 'wxMenuBar', 'wxMenuEvent', 'wxMenuItem', + 'wxMessageDialog', 'wxMiniFrame', 'wxMirrorDC', + 'wxMouseCaptureChangedEvent', 'wxMouseEvent', 'wxMoveEvent', + 'wxMultiChoiceDialog', 'wxNavigationKeyEvent', 'wxNcPaintEvent', + 'wxNotebook', 'wxNotebookEvent', 'wxNotifyEvent', + 'wxPageSetupDialog', 'wxPageSetupDialogData', 'wxPaintDC', + 'wxPaintEvent', 'wxPalette', 'wxPaletteChangedEvent', 'wxPanel', + 'wxPasswordEntryDialog', 'wxPen', 'wxPickerBase', 'wxPostScriptDC', + 'wxPreviewCanvas', 'wxPreviewControlBar', 'wxPreviewFrame', + 'wxPrintData', 'wxPrintDialog', 'wxPrintDialogData', 'wxPrinter', + 'wxPrintout', 'wxPrintPreview', 'wxProgressDialog', + 'wxQueryNewPaletteEvent', 'wxRadioBox', 'wxRadioButton', + 'wxRegion', 'wxSashEvent', 'wxSashLayoutWindow', 'wxSashWindow', + 'wxScreenDC', 'wxScrollBar', 'wxScrolledWindow', 'wxScrollEvent', + 'wxScrollWinEvent', 'wxSetCursorEvent', 'wxShowEvent', + 'wxSingleChoiceDialog', 'wxSizeEvent', 'wxSizer', 'wxSizerFlags', + 'wxSizerItem', 'wxSlider', 'wxSpinButton', 'wxSpinCtrl', + 'wxSpinEvent', 'wxSplashScreen', 'wxSplitterEvent', + 'wxSplitterWindow', 'wxStaticBitmap', 'wxStaticBox', + 'wxStaticBoxSizer', 'wxStaticLine', 'wxStaticText', 'wxStatusBar', + 'wxStdDialogButtonSizer', 'wxStyledTextCtrl', 'wxStyledTextEvent', + 'wxSysColourChangedEvent', 'wxTextAttr', 'wxTextCtrl', + 'wxTextDataObject', 'wxTextEntryDialog', 'wxToggleButton', + 'wxToolBar', 'wxToolTip', 'wxTopLevelWindow', 'wxTreeCtrl', + 'wxTreeEvent', 'wxUpdateUIEvent', 'wxWindow', 'wxWindowCreateEvent', + 'wxWindowDC', 'wxWindowDestroyEvent', 'wxXmlResource', 'xmerl', + 'xmerl_eventp', 'xmerl_scan', 'xmerl_xpath', 'xmerl_xs', + 'xmerl_xsd', 'xref', 'yecc', 'zip', 'zlib', 'zlib_stub' + ), + // Binary modifiers + 6 => array( + 'big', 'binary', 'float', 'integer', 'little', 'signed', 'unit', 'unsigned' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}'), + 1 => array('->', ',', ';', '.'), + 2 => array('<<', '>>'), + 3 => array('=', '||', '-', '+', '*', '/', '++', '--', '!', '<', '>', '>=', + '=<', '==', '/=', '=:=', '=/=') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #186895;', + 2 => 'color: #014ea4;', + 3 => 'color: #fa6fff;', + 4 => 'color: #fa6fff;', + 5 => 'color: #ff4e18;', + 6 => 'color: #9d4f37;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #109ab8;' + ), + 'STRINGS' => array( + 0 => 'color: #ff7800;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff9600;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #004866;', + 1 => 'color: #6bb810;', + 2 => 'color: #ee3800;', + 3 => 'color: #014ea4;' + ), + 'REGEXPS' => array( + 0 => 'color: #6941fd;', + 1 => 'color: #d400ed;', + 2 => 'color: #5400b3;', + 3 => 'color: #ff3c00;', + 4 => 'color: #6941fd;', + 5 => 'color: #45b3e6;', + 6 => 'color: #ff9600;', + 7 => 'color: #d400ed;', + 8 => 'color: #ff9600;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://erlang.org/doc/man/{FNAME}.html', + 6 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '->', + 2 => ':' + ), + 'REGEXPS' => array( + //Macro definitions + 0 => array( + GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Record definitions + 1 => array( + GESHI_SEARCH => '(-record\s*\()([a-zA-Z0-9_]+)(,)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Precompiler directives + 2 => array( + GESHI_SEARCH => '(-)([a-z][a-zA-Z0-9_]*)(\()', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Functions + 3 => array( + GESHI_SEARCH => '([a-z]\w*|\'\w*\')(\s*\()', + GESHI_REPLACE => '\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '\2' + ), + // Macros + 4 => array( + GESHI_SEARCH => '(\?)([a-zA-Z0-9_]+)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '' + ), + // Variables - With hack to avoid interfering wish GeSHi internals + 5 => array( + GESHI_SEARCH => '([([{,<+*-\/=\s!]|<)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)\W)([A-Z_]\w*)(?!\w)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '' + ), + // ASCIIcodes + 6 => '(\$[a-zA-Z0-9_])', + // Records + 7 => array( + GESHI_SEARCH => '(#)([a-z][a-zA-Z0-9_]*)(\.|\{)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Numbers with a different radix + 8 => '(?<=>)(#[a-zA-Z0-9]*)' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '', + 'DISALLOWED_AFTER' => '(?=\s*\()' + ), + 5 => array( + 'DISALLOWED_BEFORE' => '(?<=\'|)', + 'DISALLOWED_AFTER' => '(?=(\'|):)' + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\/|-)', + 'DISALLOWED_AFTER' => '' + ) + ) + ), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/fo.php b/inc/geshi/fo.php new file mode 100644 index 000000000..3a1d24021 --- /dev/null +++ b/inc/geshi/fo.php @@ -0,0 +1,327 @@ +<?php +/************************************************************************************* + * fo.php + * -------- + * Author: Tan-Vinh Nguyen (tvnguyen@web.de) + * Copyright: (c) 2009 Tan-Vinh Nguyen + * Release Version: 1.0.8.8 + * Date Started: 2009/03/23 + * + * fo language file for GeSHi. + * + * FO stands for "Flexible Oberflaechen" (Flexible Surfaces) and + * is part of the abas-ERP. + * + * CHANGES + * ------- + * 2009/03/23 (1.0.0) + * - First Release + * Basic commands in German and English + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'FO (abas-ERP)', + 'COMMENT_SINGLE' => array(1 => '..'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + //Control Flow + 1 => array( + /* see http://www.abas.de/sub_de/kunden/help/hd/html/9.html */ + + /* fo keywords, part 1: control flow */ + '.weiter', '.continue' + + /* this language works with goto's only*/ + ), + + //FO Keywords + 2 => array( + /* fo keywords, part 2 */ + '.fo', '.formel', '.formula', + '.zuweisen', '.assign', + '.fehler', '.error', + '.ende', '.end' + ), + + //Java Keywords + 3 => array( + /* Java keywords, part 3: primitive data types */ + '.art', '.type', + 'integer', 'real', 'bool', 'text', 'datum', 'woche', 'termin', 'zeit', + 'mehr', 'MEHR' + ), + + //Reserved words in fo literals + 4 => array( + /* other reserved words in fo literals */ + /* should be styled to look similar to numbers and Strings */ + 'false', 'null', 'true', + 'OBJEKT', + 'VORGANG', 'PROCESS', + 'OFFEN', 'OPEN', + 'ABORT', + 'AN', 'ADDEDTO', + 'AUF', 'NEW', + 'BILDSCHIRM', 'TERMINAL', + 'PC', + 'MASKE', 'SCREEN', + 'ZEILE', 'LINE' + ), + + // interpreter settings + 5 => array ( + '..!INTERPRETER', 'DEBUG' + ), + + // database commands + 6 => array ( + '.hole', '.hol', '.select', + '.lade', '.load', + '.aktion', '.action', + '.belegen', '.occupy', + '.bringe', '.rewrite', + '.dazu', '.add', + '.löschen', '.delete', + '.mache', '.make', + '.merke', '.reserve', + '.setze', '.set', + 'SPERREN', 'LOCK', + 'TEIL', 'PART', + 'KEINESPERRE', + 'AMASKE', 'ASCREEN', + 'BETRIEB', 'WORK-ORDER', + 'NUMERISCH', 'NUMERICAL', + 'VORSCHLAG', 'SUGGESTION', + 'OBLIGO', 'OUTSTANDING', + 'LISTE', 'LIST', + 'DRUCK', 'PRINT', + 'ÜBERNAHME', 'TAGEOVER', + 'ABLAGE', 'FILINGSYSTEM', + 'BDE', 'PDC', + 'BINDUNG', 'ALLOCATION', + 'BUCHUNG', 'ENTRY', + 'COLLI', 'SERIAL', + 'DATEI', 'FILE', + 'VERKAUF', 'SALES', + 'EINKAUF', 'PURCHASING', + 'EXEMPLAR', 'EXAMPLE', + 'FERTIGUNG', 'PRODUCTION', + 'FIFO', + 'GRUPPE', 'GROUP', + 'JAHR', 'YEAR', + 'JOURNAL', + 'KOPF', 'HEADER', + 'KOSTEN', + 'LIFO', + 'LMENGE', 'SQUANTITY', + 'LOHNFERTIGUNG', 'SUBCONTRACTING', + 'LPLATZ', 'LOCATION', + 'MBELEGUNG', 'MACHLOADING', + 'MONAT', 'MONTH', 'MZ', + 'NACHRICHT', 'MESSAGE', + 'PLAN', 'TARGET', + 'REGIONEN', 'REGIONS', + 'SERVICEANFRAGE', 'SERVICEREQUEST', + 'VERWENDUNG', 'APPLICATION', + 'WEITER', 'CONTINUE', + 'ABBRUCH', 'CANCEL', + 'ABLAGEKENNZEICHEN', 'FILLINGCODE', + 'ALLEIN', 'SINGLEUSER', + 'AUFZAEHLTYP', 'ENUMERATION-TYPE', + 'AUSGABE', 'OUTPUT', + 'DEZPUNKT', 'DECPOINT' + ), + + // output settings + 7 => array ( + '.absatz', '.para', + '.blocksatz', '.justified', + '.flattersatz', '.unjustified', + '.format', + '.box', + '.drucken', '.print', + '.gedruckt', '.printed', + '.länge', '.length', + '.links', '.left', + '.rechts', '.right', + '.oben', '.up', + '.unten', '.down', + '.seite', '.page', + '.tabellensatz', '.tablerecord', + '.trenner', '.separator', + 'ARCHIV' + ), + + // text commands + 8 => array ( + '.text', + '.atext', + '.println', + '.uebersetzen', '.translate' + ), + + // I/O commands + 9 => array ( + '.aus', '.ausgabe', '.output', + '.ein', '.eingabe', '.input', + '.datei', '.file', + '.lesen', '.read', + '.sortiere', '.sort', + '-ÖFFNEN', '-OPEN', + '-TEST', + '-LESEN', '-READ', + 'VON', 'FROM' + ), + + //system + 10 => array ( + '.browser', + '.kommando', '.command', + '.system', '.dde', + '.editiere', '.edit', + '.hilfe', '.help', + '.kopieren', '.copy', + '.pc.clip', + '.pc.copy', + '.pc.dll', + '.pc.exec', + '.pc.open', + 'DIAGNOSE', 'ERRORREPORT', + 'DOPPELPUNKT', 'COLON', + 'ERSETZUNG', 'REPLACEMENT', + 'WARTEN', 'PARALLEL' + ), + + //fibu/accounting specific commands + 11 => array ( + '.budget', + '.chart', + 'VKZ', + 'KONTO', 'ACCOUNT', + 'AUSZUG', 'STATEMENT', + 'WAEHRUNG', 'CURRENCY', + 'WAEHRUNGSKURS', 'EXCHANGERATE', + 'AUSWAEHR', 'FORCURR', + 'BUCHUNGSKREIS', 'SET OF BOOKS' + ), + + // efop - extended flexible surface + 12 => array ( + '.cursor', + '.farbe', '.colour', + '.fenster', '.window', + '.hinweis', '.note', + '.menue', '.menu', + '.schutz', '.protection', + '.zeigen', '.view', + '.zeile', '.line', + 'VORDERGRUND', 'FOREGROUND', + 'HINTERGRUND', 'BACKGROUND', + 'SOFORT', 'IMMEDIATELY', + 'AKTUALISIEREN', 'UPDATE', + 'FENSTERSCHLIESSEN', 'CLOSEWINDOWS' + ), + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}', '*', '&', '%', ';', '<', '>'), + 1 => array('?', '!') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + /* all fo keywords are case sensitive, don't have to but I like this type of coding */ + 1 => true, 2 => true, 3 => true, 4 => true, + 5 => true, 6 => true, 7 => true, 8 => true, 9 => true, + 10 => true, 11 => true, 12 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #006600; font-weight: bold;', + 4 => 'color: #006600; font-weight: bold;', + 5 => 'color: #003399; font-weight: bold;', + 6 => 'color: #003399; font-weight: bold;', + 7 => 'color: #003399; font-weight: bold;', + 8 => 'color: #003399; font-weight: bold;', + 9 => 'color: #003399; font-weight: bold;', + 10 => 'color: #003399; font-weight: bold;', + 11 => 'color: #003399; font-weight: bold;', + 12 => 'color: #003399; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + //2 => 'color: #006699;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006633;', + 2 => 'color: #006633;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); +?>
\ No newline at end of file diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php index 26dc9b19d..6eac52ae0 100644 --- a/inc/geshi/fortran.php +++ b/inc/geshi/fortran.php @@ -4,7 +4,7 @@ * ----------- * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr) * Copyright: (C) 2006 Cetric Arrabie - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/04/22 * * Fortran language file for GeSHi. diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php index 780305ba3..35fc8ca6f 100644 --- a/inc/geshi/freebasic.php +++ b/inc/geshi/freebasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/08/19 * * FreeBasic (http://www.freebasic.net/) language file for GeSHi. diff --git a/inc/geshi/fsharp.php b/inc/geshi/fsharp.php new file mode 100644 index 000000000..56146958c --- /dev/null +++ b/inc/geshi/fsharp.php @@ -0,0 +1,211 @@ +<?php +/************************************************************************************* + * fsharp.php + * ---------- + * Author: julien ortin (jo_spam-divers@yahoo.fr) + * Copyright: (c) 2009 julien ortin + * Release Version: 1.0.8.8 + * Date Started: 2009/09/20 + * + * F# language file for GeSHi. + * + * CHANGES + * ------- + * 2009/09/22 (1.0.1) + * - added rules for single char handling (generics ['a] vs char ['x']) + * - added symbols and keywords + * 2009/09/20 (1.0.0) + * - Initial release + * + * TODO + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'F#', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('(*' => '*)', '/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('@"', '"'), + 'HARDESCAPE' => array('"'), + 'HARDCHAR' => '"', + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + /* main F# keywords */ + /* section 3.4 */ + 1 => array( + 'abstract', 'and', 'as', 'assert', 'base', 'begin', 'class', 'default', 'delegate', 'do', 'done', + 'downcast', 'downto', 'elif', 'else', 'end', 'exception', 'extern', 'false', 'finally', 'for', + 'fun', 'function', 'if', 'in', 'inherit', 'inline', 'interface', 'internal', 'lazy', 'let', + 'match', 'member', 'module', 'mutable', 'namespace', 'new', 'not', 'null', 'of', 'open', 'or', + 'override', 'private', 'public', 'rec', 'return', 'sig', 'static', 'struct', 'then', 'to', + 'true', 'try', 'type', 'upcast', 'use', 'val', 'void', 'when', 'while', 'with', 'yield', + 'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod', + /* identifiers are reserved for future use by F# */ + 'atomic', 'break', 'checked', 'component', 'const', 'constraint', 'constructor', + 'continue', 'eager', 'fixed', 'fori', 'functor', 'global', 'include', 'method', 'mixin', + 'object', 'parallel', 'params', 'process', 'protected', 'pure', 'sealed', 'tailcall', + 'trait', 'virtual', 'volatile', + /* take monads into account */ + 'let!', 'yield!' + ), + /* define names of main libraries in F# Core, so we can link to it + * http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html + */ + 2 => array( + 'Array', 'Array2D', 'Array3D', 'Array4D', 'ComparisonIdentity', 'HashIdentity', 'List', + 'Map', 'Seq', 'SequenceExpressionHelpers', 'Set', 'CommonExtensions', 'Event', + 'ExtraTopLevelOperators', 'LanguagePrimitives', 'NumericLiterals', 'Operators', + 'OptimizedClosures', 'Option', 'String', 'NativePtr', 'Printf' + ), + /* 17.2 & 17.3 */ + 3 => array( + 'abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp', + 'floor', 'log', 'log10', 'pown', 'round', 'sign', 'sin', 'sinh', 'sqrt', + 'tan', 'tanh', + 'ignore', + 'fst', 'snd', + 'stdin', 'stdout', 'stderr', + 'KeyValue', + 'max', 'min' + ), + /* Pervasives Types & Overloaded Conversion Functions */ + 4 => array( + 'bool', 'byref', 'byte', 'char', 'decimal', 'double', 'exn', 'float', 'float32', + 'FuncConvert', 'ilsigptr', 'int', 'int16', 'int32', 'int64', 'int8', + 'nativeint', 'nativeptr', 'obj', 'option', 'ref', 'sbyte', 'single', 'string', 'uint16', + 'uint32', 'uint64', 'uint8', 'unativeint', 'unit', + 'enum', + 'async', 'seq', 'dict' + ), + /* 17.2 Exceptions */ + 5 => array ( + 'failwith', 'invalidArg', 'raise', 'rethrow' + ), + /* 3.3 Conditional compilation & 13.3 Compiler Directives + light / light off */ + 6 => array( + '(*IF-FSHARP', 'ENDIF-FSHARP*)', '(*F#', 'F#*)', '(*IF-OCAML', 'ENDIF-OCAML*)', + '#light', + '#if', '#else', '#endif', '#indent', '#nowarn', '#r', '#reference', + '#I', '#Include', '#load', '#time', '#help', '#q', '#quit', + ), + /* 3.11 Pre-processor Declarations / Identifier Replacements */ + 7 => array( + '__SOURCE_DIRECTORY__', '__SOURCE_FILE__', '__LINE__' + ), + /* 17.2 Object Transformation Operators */ + 8 => array( + 'box', 'hash', 'sizeof', 'typeof', 'typedefof', 'unbox' + ) + ), + /* 17.2 basic operators + the yield and yield! arrows */ + 'SYMBOLS' => array( + 1 => array('+', '-', '/', '*', '**', '%', '~-'), + 2 => array('<', '<=', '>', '<=', '=', '<>'), + 3 => array('<<<', '>>>', '^^^', '&&&', '|||', '~~~'), + 4 => array('|>', '>>', '<|', '<<'), + 5 => array('!', '->', '->>'), + 6 => array('[',']','(',')','{','}', '[|', '|]', '(|', '|)'), + 7 => array(':=', ';', ';;') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, /* keywords */ + 2 => true, /* modules */ + 3 => true, /* pervasives functions */ + 4 => true, /* types and overloaded conversion operators */ + 5 => true, /* exceptions */ + 6 => true, /* conditional compilation & compiler Directives */ + 7 => true, /* pre-processor declarations / identifier replacements */ + 8 => true /* object transformation operators */ + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #06c; font-weight: bold;', /* nice blue */ + 2 => 'color: #06c; font-weight: bold;', /* nice blue */ + 3 => 'color: #06c; font-weight: bold;', /* nice blue */ + 4 => 'color: #06c; font-weight: bold;', /* nice blue */ + 5 => 'color: #06c; font-weight: bold;', /* nice blue */ + 6 => 'color: #06c; font-weight: bold;', /* nice blue */ + 7 => 'color: #06c; font-weight: bold;', /* nice blue */ + 8 => 'color: #06c; font-weight: bold;' /* nice blue */ + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */ + 1 => 'color: #5d478b; font-style: italic;', + 2 => 'color: #5d478b; font-style: italic;' /* light purple */ + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #6c6;' + ), + 'STRINGS' => array( + 0 => 'color: #3cb371;' /* nice green */ + ), + 'NUMBERS' => array( + 0 => 'color: #c6c;' /* pink */ + ), + 'METHODS' => array( + 1 => 'color: #060;' /* dark green */ + ), + 'REGEXPS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #a52a2a;' /* maroon */ + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + /* some of keywords are Pervasives functions (land, lxor, asr, ...) */ + 1 => '', + 2 => 'http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/gambas.php b/inc/geshi/gambas.php new file mode 100644 index 000000000..0fc89bb59 --- /dev/null +++ b/inc/geshi/gambas.php @@ -0,0 +1,214 @@ +<?php +/************************************************************************************* + * gambas.php + * --------- + * Author: Jesus Guardon (jguardon@telefonica.net) + * Copyright: (c) 2009 Jesus Guardon (http://gambas-es.org), + * Benny Baumann (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2004/08/20 + * + * GAMBAS language file for GeSHi. + * GAMBAS Official Site: http://gambas.sourceforge.net + * + * CHANGES + * ------- + * 2009/09/26 (1.0.1) + * - Splitted dollar-ended keywords in another group to match with or without '$' + * - Modified URL for object/components keywords search through Google "I'm feeling lucky" + * 2009/09/23 (1.0.0) + * - Initial release + * + * TODO (updated 2009/09/26) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'GAMBAS', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + //keywords + 1 => array( + 'APPEND', 'AS', 'BREAK', 'BYREF', 'CASE', 'CATCH', 'CLASS', 'CLOSE', 'CONST', 'CONTINUE', 'COPY', + 'CREATE', 'DEBUG', 'DEC', 'DEFAULT', 'DIM', 'DO', 'EACH', 'ELSE', 'END', 'ENDIF', 'ERROR', 'EVENT', 'EXEC', + 'EXPORT', 'EXTERN', 'FALSE', 'FINALLY', 'FLUSH', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IN', 'INC', 'INHERITS', + 'INPUT', 'FROM', 'IS', 'KILL', 'LAST', 'LIBRARY', 'LIKE', 'LINE INPUT', 'LINK', 'LOCK', 'LOOP', 'ME', + 'MKDIR', 'MOVE', 'NEW', 'NEXT', 'NULL', 'OPEN', 'OPTIONAL', 'OUTPUT', 'PIPE', 'PRINT', 'PRIVATE', + 'PROCEDURE', 'PROPERTY', 'PUBLIC', 'QUIT', 'RAISE', 'RANDOMIZE', 'READ', 'REPEAT', 'RETURN', 'RMDIR', + 'SEEK', 'SELECT', 'SHELL', 'SLEEP', 'STATIC', 'STEP', 'STOP', 'SUB', 'SUPER', 'SWAP', 'THEN', 'TO', + 'TRUE', 'TRY', 'UNLOCK', 'UNTIL', 'WAIT', 'WATCH', 'WEND', 'WHILE', 'WITH', 'WRITE' + ), + //functions + 2 => array( + 'Abs', 'Access', 'Acos', 'Acosh', 'Alloc', 'Ang', 'Asc', 'ASin', 'ASinh', 'Asl', 'Asr', 'Assign', 'Atan', + 'ATan2', 'ATanh', + 'BChg', 'BClr', 'Bin', 'BSet', 'BTst', + 'CBool', 'Cbr', 'CByte', 'CDate', 'CFloat', 'Choose', 'Chr', 'CInt', 'CLong', 'Comp', 'Conv', 'Cos', + 'Cosh', 'CShort', 'CSng', 'CStr', + 'DateAdd', 'DateDiff', 'Day', 'DConv', 'Deg', 'DFree', 'Dir', + 'Eof', 'Eval', 'Exist', 'Exp', 'Exp10', 'Exp2', 'Expm', + 'Fix', 'Format', 'Frac', 'Free', + 'Hex', 'Hour', 'Hyp', + 'Iif', 'InStr', 'Int', 'IsAscii', 'IsBlank', 'IsBoolean', 'IsByte', 'IsDate', 'IsDigit', 'IsDir', + 'IsFloat', 'IsHexa', 'IsInteger', 'IsLCase', 'IsLetter', 'IsLong', 'IsNull', 'IsNumber', 'IsObject', + 'IsPunct', 'IsShort', 'IsSingle', 'IsSpace', 'IsString', 'IsUCase', 'IsVariant', + 'LCase', 'Left', 'Len', 'Lof', 'Log', 'Log10', 'Log2', 'Logp', 'Lsl', 'Lsr', 'LTrim', + 'Mag', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'Now', 'Quote', + 'Rad', 'RDir', 'Realloc', 'Replace', 'Right', 'RInStr', 'Rnd', 'Rol', 'Ror', 'Round', 'RTrim', + 'Scan', 'SConv', 'Second', 'Seek', 'Sgn', 'Shl', 'Shr', 'Sin', 'Sinh', 'Space', 'Split', 'Sqr', + 'Stat', 'Str', 'StrPtr', 'Subst', + 'Tan', 'Tanh', 'Temp$', 'Time', 'Timer', 'Tr', 'Trim', 'TypeOf', + 'UCase', 'Unquote', 'Val', 'VarPtr', 'Week', 'WeekDay', 'Year' + ), + //string functions + 3 => array( + 'Bin$', 'Chr$', 'Conv$', 'DConv$', 'Format$', 'Hex$', 'LCase$', 'Left$', 'LTrim$', 'Mid$', 'Quote$', + 'Replace$', 'Right$', 'SConv$', 'Space$', 'Str$', 'String$', 'Subst$', 'Tr$', 'Trim$', 'UCase$', + 'Unquote$' + ), + //datatypes + 4 => array( + 'Boolean', 'Byte', 'Short', 'Integer', 'Long', 'Single', 'Float', 'Date', 'String', 'Variant', 'Object', + 'Pointer', 'File' + ), + //operators + 5 => array( + 'AND', 'DIV', 'MOD', 'NOT', 'OR', 'XOR' + ), + //objects/classes + 6 => array( + 'Application', 'Array', 'Byte[]', 'Collection', 'Component', 'Enum', 'Observer', 'Param', 'Process', + 'Stream', 'System', 'User', 'Chart', 'Compress', 'Crypt', 'Blob', 'Connection', 'DB', 'Database', + 'DatabaseUser', 'Field', 'Index', 'Result', 'ResultField', 'Table', 'DataBrowser', 'DataCombo', + 'DataControl', 'DataSource', 'DataView', 'Desktop', 'DesktopFile', 'Balloon', 'ColorButton', + 'ColorChooser', 'DateChooser', 'DirChooser', 'DirView', 'Expander', 'FileChooser', 'FileView', + 'FontChooser', 'InputBox', 'ListContainer', 'SidePanel', 'Stock', 'TableView', 'ToolPanel', 'ValueBox', + 'Wizard', 'Dialog', 'ToolBar', 'WorkSpace', 'DnsClient', 'SerialPort', 'ServerSocket', 'Socket', + 'UdpSocket', 'FtpClient', 'HttpClient', 'SmtpClient', 'Regexp', 'Action', 'Button', 'CheckBox', + 'ColumnView', 'ComboBox', 'Draw', 'Container', 'Control', 'Cursor', 'DrawingArea', 'Embedder', + 'Font', 'Form', 'Frame', 'GridView', 'HBox', 'HPanel', 'HSplit', 'IconView', 'Image', 'Key', 'Label', + 'Line', 'ListBox', 'ListView', 'Menu', 'Message', 'Mouse', 'MovieBox', 'Panel', 'Picture', 'PictureBox', + 'ProgressBar', 'RadioButton', 'ScrollBar', 'ScrollView', 'Separator', 'Slider', 'SpinBox', 'TabStrip', + 'TextArea', 'TextBox', 'TextLabel', 'ToggleButton', 'TrayIcon', 'TreeView', 'VBox', 'VPanel', 'VSplit', + 'Watcher', 'Window', 'Dial', 'Editor', 'LCDNumber', 'Printer', 'TextEdit', 'WebBrowser', 'GLarea', + 'Report', 'ReportCloner', 'ReportContainer', 'ReportControl', 'ReportDrawing', 'ReportField', 'ReportHBox', + 'ReportImage', 'ReportLabel', 'ReportSection', 'ReportSpecialField', 'ReportTextLabel', 'ReportVBox', + 'CDRom', 'Channel', 'Music', 'Sound', 'Settings', 'VideoDevice', 'Vb', 'CGI', 'HTML', 'Request', 'Response', + 'Session', 'XmlDocument', 'XmlNode', 'XmlReader', 'XmlReaderNodeType', 'XmlWriter', 'RpcArray', 'RpcClient', + 'RpcFunction', 'RpcServer', 'RpcStruct', 'RpcType', 'XmlRpc', 'Xslt' + ), + //constants + 7 => array( + 'Pi' + ), + ), + 'SYMBOLS' => array( + '&', '&=', '&/', '*', '*=', '+', '+=', '-', '-=', '//', '/', '/=', '=', '==', '\\', '\\=', + '^', '^=', '[', ']', '{', '}', '<', '>', '<>', '<=', '>=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF; font-weight: bold;', // Keywords + 2 => 'color: #8B1433;', // Functions + 3 => 'color: #8B1433;', // String Functions + 4 => 'color: #0600FF;', // Data Types + 5 => 'color: #1E90FF;', // Operators + 6 => 'color: #0600FF;', // Objects/Components + 7 => 'color: #0600FF;' // Constants + ), + 'COMMENTS' => array( + 1 => 'color: #1A5B1A; font-style: italic;', + 'MULTI' => 'color: #1A5B1A; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080;' + ), + 'BRACKETS' => array( + 0 => 'color: #612188;' + ), + 'STRINGS' => array( + 0 => 'color: #7E4B05;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;', + GESHI_NUMBER_INT_BASIC => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #6132B2;' + ), + 'REGEXPS' => array( + //3 => 'color: #8B1433;' //fakes '$' colour matched by REGEXP + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 2 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 3 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/help/lang/&btnI=I%27m%20Feeling%20Lucky', + 4 => 'http://gambasdoc.org/help/lang/type/{FNAMEL}', + 5 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 6 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/&btnI=I%27m%20Feeling%20Lucky', + 7 => 'http://gambasdoc.org/help/lang/{FNAMEL}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 =>'.' + ), + 'REGEXPS' => array( + //3 => "\\$(?!\\w)" //matches '$' at the end of Keyword + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 2 => array( + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\$])" + ) + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/gdb.php b/inc/geshi/gdb.php new file mode 100644 index 000000000..ed7ee2ffa --- /dev/null +++ b/inc/geshi/gdb.php @@ -0,0 +1,175 @@ +<?php +/************************************************************************************* + * gdb.php + * -------- + * Author: Milian Wolff (mail@milianw.de) + * Copyright: (c) 2009 Milian Wolff + * Release Version: 1.0.8.8 + * Date Started: 2009/06/24 + * + * GDB language file for GeSHi. + * + * CHANGES + * ------- + * 2009/06/24 (1.0.0) + * - First Release + * + * TODO (updated 2009/06/24) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'GDB', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 0 => array( + 'Application', + 'signal', + ), + 1 => array( + 'Segmentation fault', + '[KCrash Handler]', + ), + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC, + 'SYMBOLS' => array( + ), + 'CASE_SENSITIVE' => array( + 0 => true, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 0 => 'font-weight:bold;', + 1 => 'font-weight:bold; color: #ff0000;' + ), + 'COMMENTS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'font-weight:bold;' + ), + 'STRINGS' => array( + 0 => 'color: #933;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #000066; font-weight:bold;', + 1 => 'color: #006600;', + 2 => 'color: #000066;', + 3 => 'color: #0066FF; text-style:italic;', + 4 => 'color: #80B5FF; text-style:italic;', + 5 => 'color: #A3007D;', + 6 => 'color: #FF00BF;', + 7 => 'font-weight: bold;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 0 => '', + 1 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //[Current Thread...], [KCrash Handler] etc. + 0 => array( + GESHI_SEARCH => '^\[.+\]', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //stack number + 1 => array( + GESHI_SEARCH => '^#\d+', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //Thread X (Thread...) + 2 => array( + GESHI_SEARCH => '^Thread \d.+$', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //Files with linenumbers + 3 => array( + GESHI_SEARCH => '(at )(.+)(:\d+\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Libs without linenumbers + 4 => array( + GESHI_SEARCH => '(from )(.+)(\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Hex mem address + 5 => '0x[a-f0-9]+', + //Line numbers + 6 => array( + GESHI_SEARCH => '(:)(\d+)(\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Location + 7 => array( + GESHI_SEARCH => '( in )([^ \(\)]+)( \()', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php index 1e3d7efb6..a7ccf5fee 100644 --- a/inc/geshi/genero.php +++ b/inc/geshi/genero.php @@ -4,7 +4,7 @@ * ---------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/07/01 * * Genero (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/genie.php b/inc/geshi/genie.php new file mode 100644 index 000000000..66bea6dc7 --- /dev/null +++ b/inc/geshi/genie.php @@ -0,0 +1,157 @@ +<?php +/************************************************************************************* + * genie.php + * ---------- + * Author: Nicolas Joseph (nicolas.joseph@valaide.org) + * Copyright: (c) 2009 Nicolas Joseph + * Release Version: 1.0.8.8 + * Date Started: 2009/04/29 + * + * Genie language file for GeSHi. + * + * CHANGES + * ------- + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Genie', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Using and Namespace directives (basic support) + //Please note that the alias syntax for using is not supported + 3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('@"', '"'), + 'HARDESCAPE' => array('""'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'and', 'as', 'abstract', 'break', 'case', 'cast', 'catch', 'const', + 'construct', 'continue', 'default', 'def', 'delete', 'div', + 'dynamic', 'do', 'downto', 'else', 'ensures', 'except', 'extern', + 'false', 'final', 'finally', 'for', 'foreach', 'get', 'if', 'in', + 'init', 'inline', 'internal', 'implements', 'lock', 'not', 'null', + 'of', 'or', 'otherwise', 'out', 'override', 'pass', 'raise', + 'raises', 'readonly', 'ref', 'requires', 'self', 'set', 'static', + 'super', 'switch', 'to', 'true', 'try', 'unless', 'uses', 'var', 'virtual', + 'volatile', 'void', 'when', 'while' + ), +// 2 => array( +// ), + 3 => array( + 'is', 'isa', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', + 'unowned', 'weak' + ), + 4 => array( + 'bool', 'byte', 'class', 'char', 'date', 'datetime', 'decimal', 'delegate', + 'double', 'enum', 'event', 'exception', 'float', 'int', 'interface', + 'long', 'object', 'prop', 'sbyte', 'short', 'single', 'string', + 'struct', 'ulong', 'ushort' + ), +// 5 => array( +// ), + ), + 'SYMBOLS' => array( + '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', + '(', ')', '{', '}', '[', ']', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, +// 2 => false, + 3 => false, + 4 => false, +// 5 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', +// 2 => 'color: #FF8000; font-weight: bold;', + 3 => 'color: #008000;', + 4 => 'color: #FF0000;', +// 5 => 'color: #000000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008080; font-style: italic;', +// 2 => 'color: #008080;', + 3 => 'color: #008080;', + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080; font-weight: bold;', + 'HARD' => 'color: #008080; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #666666;', + 'HARD' => 'color: #666666;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', +// 2 => '', + 3 => '', + 4 => '', +// 5 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?> diff --git a/inc/geshi/gettext.php b/inc/geshi/gettext.php index a1dcd8c8a..e1c88e185 100644 --- a/inc/geshi/gettext.php +++ b/inc/geshi/gettext.php @@ -4,7 +4,7 @@ * -------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/05/25 * * GNU Gettext .po/.pot language file for GeSHi. diff --git a/inc/geshi/glsl.php b/inc/geshi/glsl.php index 9b31fa482..f9a37ed07 100644 --- a/inc/geshi/glsl.php +++ b/inc/geshi/glsl.php @@ -4,7 +4,7 @@ * ----- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/03/20 * * glSlang language file for GeSHi. diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php index da3d3a8e8..3f8a06c4f 100644 --- a/inc/geshi/gml.php +++ b/inc/geshi/gml.php @@ -4,7 +4,7 @@ * -------- * Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net) * Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/06/21 * * GML language file for GeSHi. diff --git a/inc/geshi/gnuplot.php b/inc/geshi/gnuplot.php index 863d0dbd6..980561d35 100644 --- a/inc/geshi/gnuplot.php +++ b/inc/geshi/gnuplot.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/07/07 * * Gnuplot script language file for GeSHi. diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php index 7db153c75..f2a2e9ab5 100644 --- a/inc/geshi/groovy.php +++ b/inc/geshi/groovy.php @@ -4,7 +4,7 @@ * ---------- * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com) * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/04/29 * * Groovy language file for GeSHi. @@ -985,7 +985,7 @@ $language_data = array ( 'URLS' => array( 1 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}', 2 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}', - 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1.5.0%2Fdocs%2Fapi%2F', + 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F', 4 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', 5 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', 6 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', @@ -1008,4 +1008,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/gwbasic.php b/inc/geshi/gwbasic.php new file mode 100644 index 000000000..7b2385de7 --- /dev/null +++ b/inc/geshi/gwbasic.php @@ -0,0 +1,153 @@ +<?php +/************************************************************************************* + * gwbasic.php + * ---------- + * Author: José Gabriel Moya Yangüela (josemoya@gmail.com) + * Copyright: (c) 2010 José Gabriel Moya Yangüela (http://doc.apagada.com) + * Release Version: 1.0.8.8 + * Date Started: 2010/01/30 + * + * GwBasic language file for GeSHi. + * + * CHANGES + * ------- + * REM was not classified as comment. + * APPEND and RANDOM missing. + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'GwBasic', + 'COMMENT_SINGLE' => array(1 => "'", 2=> "REM"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Statements */ + 1 => array('END','FOR','NEXT','DATA','INPUT','DIM','READ','LET', + 'GOTO','RUN','IF','RESTORE','GOSUB','RETURN','REM', + 'STOP','PRINT','CLEAR','LIST','NEW','ON','WAIT','DEF', + 'POKE','CONT','OUT','LPRINT','LLIST','WIDTH','ELSE', + 'TRON','TROFF','SWAP','ERASE','EDIT','ERROR','RESUME', + 'DELETE','AUTO','RENUM','DEFSTR','DEFINT','DEFSNG', + 'DEFDBL','LINE','WHILE','WEND','CALL','WRITE','OPTION', + 'RANDOMIZE','OPEN','CLOSE','LOAD','MERGE','SAVE', + 'COLOR','CLS','MOTOR','BSAVE','BLOAD','SOUND','BEEP', + 'PSET','PRESET','SCREEN','KEY','LOCATE','TO','THEN', + 'STEP','USR','FN','SPC','NOT','ERL','ERR','STRING', + 'USING','INSTR','VARPTR','CSRLIN','POINT','OFF', + 'FILES','FIELD','SYSTEM','NAME','LSET','RSET','KILL', + 'PUT','GET','RESET','COMMON','CHAIN','PAINT','COM', + 'CIRCLE','DRAW','PLAY','TIMER','IOCTL','CHDIR','MKDIR', + 'RMDIR','SHELL','VIEW','WINDOW','PMAP','PALETTE','LCOPY', + 'CALLS','PCOPY','LOCK','UNLOCK','RANDOM','APPEND', + ), + 2 => array( + /* Functions */ + 'CVI','CVS','CVD','MKI','MKS','MKD','ENVIRON', + 'LEFT','RIGHT','MID','SGN','INT','ABS', + 'SQR','SIN','LOG','EXP','COS','TAN','ATN', + 'FRE','INP','POS','LEN','STR','VAL','ASC', + 'CHR','PEEK','SPACE','OCT','HEX','LPOS', + 'CINT','CSNG','CDBL','FIX','PEN','STICK', + 'STRIG','EOF','LOC','LOF' + ), + 3 => array( + /* alpha Operators */ + 'AND','OR','XOR','EQV','IMP','MOD' + ), + 4 => array( + /* parameterless functions */ + 'INKEY','DATE','TIME','ERDEV','RND' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '>','=','<','+','-','*','/','^','\\' + ), + 1 => array( + '?' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00a1a1;font-weight: bold', + 2 => 'color: #000066;font-weight: bold', + 3 => 'color: #00a166;font-weight: bold', + 4 => 'color: #0066a1;font-weight: bold' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + 2 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + /* Same as KEYWORDS[3] (and, or, not...) */ + 0 => 'color: #00a166;font-weight: bold', + 1 => 'color: #00a1a1;font-weight: bold', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 1 => 'color: #708090' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 1 => '^[0-9]+ ' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php index f0e570f1c..4997a26c3 100644 --- a/inc/geshi/haskell.php +++ b/inc/geshi/haskell.php @@ -4,7 +4,7 @@ * ---------- * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * Haskell language file for GeSHi. @@ -41,7 +41,10 @@ $language_data = array ( 'LANG_NAME' => 'Haskell', 'COMMENT_SINGLE' => array( 1 => '--'), 'COMMENT_MULTI' => array('{-' => '-}'), - 'COMMENT_REGEXP' => array(2 => "/-->/"), + 'COMMENT_REGEXP' => array( + 2 => "/-->/", + 3 => "/{-(?:(?R)|.)-}/s", //Nested Comments + ), 'CASE_KEYWORDS' => 0, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => "\\", @@ -146,7 +149,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #5d478b; font-style: italic;', 2 => 'color: #339933; font-weight: bold;', - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purpHle */ + 3 => 'color: #5d478b; font-style: italic;', /* light purple */ + 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ ), 'ESCAPE_CHAR' => array( 0 => 'background-color: #3cb371; font-weight: bold;' @@ -195,4 +199,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/hicest.php b/inc/geshi/hicest.php new file mode 100644 index 000000000..6cb61f87c --- /dev/null +++ b/inc/geshi/hicest.php @@ -0,0 +1,108 @@ +<?php +/************************************************************************************* + * hicest.php + * -------- + * Author: Georg Petrich (spt@hicest.com) + * Copyright: (c) 2010 Georg Petrich (http://www.HicEst.com) + * Release Version: 1.0.8.8 + * Date Started: 2010/03/15 + * + * HicEst language file for GeSHi. + * + * CHANGES + * ------- + * yyyy/mm/dd (v.v.v.v) + * - First Release + * + * TODO (updated yyyy/mm/dd) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'HicEst', + 'COMMENT_SINGLE' => array(1 => '!'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + '$cmd_line', 'abs', 'acos', 'alarm', 'alias', 'allocate', 'appendix', 'asin', 'atan', 'axis', 'beep', + 'call', 'ceiling', 'char', 'character', 'com', 'continue', 'cos', 'cosh', 'data', 'diffeq', 'dimension', 'dlg', 'dll', + 'do', 'edit', 'else', 'elseif', 'end', 'enddo', 'endif', 'exp', 'floor', 'function', 'fuz', 'goto', 'iand', 'ichar', + 'ieor', 'if', 'index', 'init', 'int', 'intpol', 'ior', 'key', 'len', 'len_trim', 'line', 'lock', 'log', 'max', 'maxloc', + 'min', 'minloc', 'mod', 'nint', 'not', 'open', 'pop', 'ran', 'read', 'real', 'return', 'rgb', 'roots', 'sign', 'sin', + 'sinh', 'solve', 'sort', 'subroutine', 'sum', 'system', 'tan', 'tanh', 'then', 'time', 'use', 'window', 'write', 'xeq' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '+', '-', '*', '/', '=', '<', '>', '!', '^', ':', ',' + ), + 2 => array( + '$', '$$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #ff0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;', + 2 => 'color: #ff0000;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array(1 => ''), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?>
\ No newline at end of file diff --git a/inc/geshi/hq9plus.php b/inc/geshi/hq9plus.php index 2a5c429ca..50a0f80c6 100644 --- a/inc/geshi/hq9plus.php +++ b/inc/geshi/hq9plus.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * HQ9+ language file for GeSHi. diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php index 314351523..301513e4e 100644 --- a/inc/geshi/html4strict.php +++ b/inc/geshi/html4strict.php @@ -4,7 +4,7 @@ * --------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * HTML 4.01 strict language file for GeSHi. diff --git a/inc/geshi/icon.php b/inc/geshi/icon.php new file mode 100644 index 000000000..0712c21c3 --- /dev/null +++ b/inc/geshi/icon.php @@ -0,0 +1,212 @@ +<?php +/************************************************************************************* + * icon.php + * -------- + * Author: Matt Oates (mattoates@gmail.com) + * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk) + * Release Version: 1.0.8.8 + * Date Started: 2010/04/24 + * + * Icon language file for GeSHi. + * + * CHANGES + * ------- + * 2010/04/24 (0.0.0.2) + * - Validated with Geshi langcheck.php FAILED due to preprocessor keywords looking like symbols + * - Hard wrapped to improve readability + * 2010/04/20 (0.0.0.1) + * - First Release + * + * TODO (updated 2010/04/20) + * ------------------------- + * - Do the & need replacing with &? + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Icon', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'continue', 'create', 'default', 'do', 'else', + 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', + 'initially', 'invocable', 'link', 'next', 'not', 'of', 'package', + 'procedure', 'record', 'repeat', 'return', 'switch', 'suspend', + 'then', 'to', 'until', 'while' + ), + 2 => array( + 'global', 'local', 'static' + ), + 3 => array( + 'allocated', 'ascii', 'clock', 'collections', + 'column', 'cset', 'current', 'date', 'dateline', 'digits', + 'dump', 'e', 'error', 'errornumber', 'errortext', + 'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue', + 'fail', 'features', 'file', 'host', 'input', 'lcase', + 'letters', 'level', 'line', 'main', 'now', 'null', + 'output', 'phi', 'pi', 'pos', 'progname', 'random', + 'regions', 'source', 'storage', 'subject', 'syserr', 'time', + 'trace', 'ucase', 'version', 'col', 'control', 'interval', + 'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress', + 'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease', + 'shift', 'window', 'x', 'y' + ), + 4 => array( + 'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char', + 'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'delay', 'delete', + 'detab', 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', + 'exp', 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', + 'getche', 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', + 'insert', 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc', + 'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric', + 'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull', + 'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse', + 'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set', + 'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'stop', 'string', 'system', 'tab', + 'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where', + 'write', 'writes' + ), + 5 => array( + 'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue', + 'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk', + 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment', + 'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc', + 'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY', + 'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor', + 'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate', + 'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate', + 'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib', + 'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync' + ), + 6 => array( + 'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error', + 'line', 'undef' + ), + 7 => array( + '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386', + '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM', + '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING', + '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS', + '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS', + '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS', + '_DOS_FUNCTIONS' + ), + 8 => array( + 'line' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^', + '&', '|', '?', ':', ';', ',', '.', '~', '@' + ), + 2 => array( + '$(', '$)', '$<', '$>', '$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #b1b100;', + 3 => 'color: #b1b100;', + 4 => 'color: #b1b100;', + 5 => 'color: #b1b100;', + 6 => 'color: #b1b100;', + 7 => 'color: #b1b100;', + 8 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;', + 2 => 'color: #b1b100;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '(?<=&)' + ), + 4 => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9_\"\'])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\"\'])" + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\$)' + ), + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=#)' + ) + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php index 9160fd150..d2d9a92fa 100644 --- a/inc/geshi/idl.php +++ b/inc/geshi/idl.php @@ -4,7 +4,7 @@ * ------- * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org) * Copyright: (c) 2006 Cedric Bosdonnat - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/08/20 * * Unoidl language file for GeSHi. diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php index 365b4d6f8..e48cc045c 100644 --- a/inc/geshi/ini.php +++ b/inc/geshi/ini.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br) * Copyright: (c) 2005 deguix - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/03/27 * * INI language file for GeSHi. diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php index 99563514d..9ec8cdfd9 100644 --- a/inc/geshi/inno.php +++ b/inc/geshi/inno.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu) * Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/07/29 * * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi. diff --git a/inc/geshi/intercal.php b/inc/geshi/intercal.php index a58960089..cd800a8eb 100644 --- a/inc/geshi/intercal.php +++ b/inc/geshi/intercal.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * INTERCAL language file for GeSHi. diff --git a/inc/geshi/io.php b/inc/geshi/io.php index 7ec53a881..94c278f03 100644 --- a/inc/geshi/io.php +++ b/inc/geshi/io.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/09/23 * * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help diff --git a/inc/geshi/j.php b/inc/geshi/j.php new file mode 100644 index 000000000..61154c7ef --- /dev/null +++ b/inc/geshi/j.php @@ -0,0 +1,227 @@ +<?php +/************************************************************************************* + * j.php + * -------- + * Author: Ric Sherlock (tikkanz@gmail.com) + * Copyright: (c) 2009 Ric Sherlock + * Release Version: 1.0.8.8 + * Date Started: 2009/11/10 + * + * J language file for GeSHi. + * + * CHANGES + * ------- + * 2010/03/01 (1.0.8.8) + * - Add support for label_xyz. and goto_xyz. + * - Fix highlighting of for_i. + * - Use alternative method for highlighting for_xyz. construct + * 2010/02/14 (1.0.8.7) + * - Add support for primitives + * 2010/01/12 (1.0.2) + * - Use HARDQUOTE for strings + * - Highlight open quotes/incomplete strings + * - Highlight multi-line comments that use Note + * - Refinements for NUMBERS and Argument keywords + * - Highlight infinity and neg. infinity using REGEXPS + * - Highlight "for_myvar." style Control keyword using REGEXPS + * 2009/12/14 (1.0.1) + * - Regex for NUMBERS, SYMBOLS for () and turn off BRACKETS + * 2009/11/12 (1.0.0) + * - First Release + * + * + * TODO (updated 2010/01/27) + * ------------------------- + * * combine keyword categories by using conditional regex statement in PARSER CONTROL? + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'J', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => '/(?<!\w)NB\..*?$/m', //singleline comments NB. + 2 => '/(?<=\bNote\b).*?$\s+\)(?:(?!\n)\s)*$/sm', //multiline comments in Note + 3 => "/'[^']*?$/m" //incomplete strings/open quotes + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'"), + 'HARDCHAR' => "'", + 'NUMBERS' => array( + //Some instances of infinity are not correctly handled by GeSHi NUMBERS currently + //There are two solutions labelled "infinity Method A" and "infinity Method B" + //infinity Method B - requires following adjustment to line 3349 of geshi.php + // preg_match('#\d#' becomes preg_match('#[\d_]#' + 0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?)(?![\w\.\:])', //infinity Method A + //0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])', //infinity Method B + ), + 'KEYWORDS' => array( + //Control words + 1 => array( + 'assert.', 'break.', 'case.', 'catch.', 'catcht.', 'continue.', 'do.', + 'else.', 'elseif.', 'end.', 'fcase.', 'for.', 'goto.', 'if.', 'label.', + 'return.', 'select.', 'throw.', 'trap.', 'try.', 'while.', 'whilst.' + ), + //Arguments + 2 => array( + 'm', 'n', 'u', 'v', 'x', 'y' + ), +/* +Commented out for now due to conflicts with Lang Check + //Primitives beginning with a symbol (except . or :) + 6 => array( + '=', '<', '<.', '<:', //verbs + '_:','>', '>.', '>:', + '+', '+.', '+:', '*', '*.', '*:', '-', '-.', '-:', '%', '%.', '%:', + '^', '^.', '$', '$.', '$:', '~.', '~:', '\|', '|.', '|:', + ',', ',.', ',:', ';', ';:', '#', '#.', '#:', '!', '/:', '\:', + '[', '[:', ']', '{', '{.', '{:', '{::', '}.', '}:', + '".', '":', '?', '?.', + '~', '\/;', '\\', '/.', '\\.', '}', //adverbs + '^:', ';.', '!.', '!:', //conj + '"', '`', '`:', '@', '@.', '@:', + '&', '&.', '&:', '&.:', + '_.', //nouns + '=.', '=:', //other + ), + //Primitives beginning with a letter or number + 7 => array( + 'A.', 'c.', 'C.', 'e.', 'E.', //verbs + 'i.', 'i:', 'I.', 'j.', 'L.', 'o.', + 'p.', 'p..', 'p:', 'q:', 'r.', 's:', 'u:', 'x:', + '_9:', '_8:', '_7:', '_6:', '_5:', '_4:', '_3:', '_2:', '_1:', + '0:', '1:', '2:', '3:', '4:', '5:', '6:', '7:', '8:', '9:', + 'b.', 'f.', 'M.', 't.', 't:', //adverbs + 'd.', 'D.', 'D:', 'H.', 'L:', 'S:', 'T.', //conj + 'a.', 'a:', //nouns + ), + //Primitives beginning with symbol . or : + 8 => array( + '..', '.:', '.', ':.', '::', ':', //conj + ), +*/ + ), + 'SYMBOLS' => array( + //Punctuation + 0 => array( + '(', ')' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, +// 6 => true, +// 7 => true, +// 8 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff; font-weight: bold;', + 2 => 'color: #0000cc; font-weight: bold;', +// 6 => 'color: #000000; font-weight: bold;', +// 7 => 'color: #000000; font-weight: bold;', +// 8 => 'color: #000000; font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic; font-weight: bold;', + 3 => 'color: #ff00ff; ', //open quote + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 'HARD' => 'font-weight: bold;', + 0 => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 'HARD' => 'color: #ff0000;', + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #009999; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff; font-weight: bold;', //for_xyz. - same as kw1 + 1 => 'color: #009999; font-weight: bold;' //infinity - same as nu0 + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm', + 2 => '', +// 6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', +// 7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', +// 8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '\b(for|goto|label)_[a-zA-Z]\w*\.', //for_xyz. - should be kw1 + 1 => '\b__?(?![\w\.\:])' //infinity - should be nu0 + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + ), + 'KEYWORDS' => array( + //Control words + 2 => array( + 'DISALLOWED_BEFORE' => '(?<!\w)', + 'DISALLOWED_AFTER' => '(?![\w\.\:])', + ), + //Primtives starting with a symbol (except . or :) + 6 => array( + 'DISALLOWED_BEFORE' => '(?!K)', // effect should be to allow anything + 'DISALLOWED_AFTER' => '(?=.*)', + ), + //Primtives starting with a letter + 7 => array( + 'DISALLOWED_BEFORE' => '(?<!\w)', + 'DISALLOWED_AFTER' => '(?=.*)', + ), + //Primtives starting with symbol . or : + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=\s)', + 'DISALLOWED_AFTER' => '(?=.*)', + ), + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/java.php b/inc/geshi/java.php index d8a2d5e4d..3269dffe2 100644 --- a/inc/geshi/java.php +++ b/inc/geshi/java.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Java language file for GeSHi. diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php index 34696d760..bc9af739a 100644 --- a/inc/geshi/java5.php +++ b/inc/geshi/java5.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Java language file for GeSHi. @@ -56,7 +56,7 @@ $language_data = array ( 'COMMENT_MULTI' => array('/*' => '*/'), 'COMMENT_REGEXP' => array( //Import and Package directives (Basic Support only) - 2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i', + 2 => '/(?:(?<=import[\\n\\s](?!static))|(?<=import[\\n\\s]static[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i', // javadoc comments 3 => '#/\*\*(?![\*\/]).*\*/#sU' ), @@ -850,167 +850,167 @@ $language_data = array ( 2 => '', 3 => '', 4 => '', - 5 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/applet/{FNAME}.html', - 6 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/{FNAME}.html', - 7 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/color/{FNAME}.html', - 8 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/datatransfer/{FNAME}.html', - 9 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/dnd/{FNAME}.html', - 10 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/{FNAME}.html', - 11 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/font/{FNAME}.html', - 12 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/{FNAME}.html', - 13 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/{FNAME}.html', - 14 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/spi/{FNAME}.html', - 15 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/{FNAME}.html', - 16 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/renderable/{FNAME}.html', - 17 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/{FNAME}.html', - 18 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/{FNAME}.html', - 19 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/beancontext/{FNAME}.html', - 20 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/io/{FNAME}.html', - 21 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/{FNAME}.html', - 22 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/{FNAME}.html', - 23 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/{FNAME}.html', - 24 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/{FNAME}.html', - 25 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/{FNAME}.html', - 26 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/{FNAME}.html', - 27 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/math/{FNAME}.html', - 28 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/net/{FNAME}.html', - 29 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/{FNAME}.html', - 30 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/{FNAME}.html', - 31 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/spi/{FNAME}.html', - 32 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/{FNAME}.html', - 33 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/spi/{FNAME}.html', - 34 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/{FNAME}.html', - 35 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/activation/{FNAME}.html', - 36 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/dgc/{FNAME}.html', - 37 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/registry/{FNAME}.html', - 38 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/server/{FNAME}.html', - 39 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/{FNAME}.html', - 40 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/acl/{FNAME}.html', - 41 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/cert/{FNAME}.html', - 42 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/interfaces/{FNAME}.html', - 43 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/spec/{FNAME}.html', - 44 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/sql/{FNAME}.html', - 45 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/text/{FNAME}.html', - 46 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/{FNAME}.html', - 47 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/{FNAME}.html', - 48 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/{FNAME}.html', - 49 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/{FNAME}.html', - 50 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/{FNAME}.html', - 51 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/{FNAME}.html', - 52 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/{FNAME}.html', - 53 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/{FNAME}.html', - 54 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/zip/{FNAME}.html', - 55 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/accessibility/{FNAME}.html', - 56 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/activity/{FNAME}.html', - 57 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/{FNAME}.html', - 58 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/interfaces/{FNAME}.html', - 59 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/spec/{FNAME}.html', - 60 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/{FNAME}.html', - 61 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/event/{FNAME}.html', - 62 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/metadata/{FNAME}.html', - 63 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', - 64 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', - 65 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/spi/{FNAME}.html', - 66 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/stream/{FNAME}.html', - 67 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/{FNAME}.html', - 68 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/loading/{FNAME}.html', - 69 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/modelmbean/{FNAME}.html', - 70 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/monitor/{FNAME}.html', - 71 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/{FNAME}.html', - 72 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/relation/{FNAME}.html', - 73 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/{FNAME}.html', - 74 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/rmi/{FNAME}.html', - 75 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/timer/{FNAME}.html', - 76 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/{FNAME}.html', - 77 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/directory/{FNAME}.html', - 78 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/event/{FNAME}.html', - 79 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/ldap/{FNAME}.html', - 80 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/{FNAME}.html', - 81 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/{FNAME}.html', - 82 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/{FNAME}.html', - 83 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/{FNAME}.html', - 84 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/{FNAME}.html', - 85 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/standard/{FNAME}.html', - 86 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/event/{FNAME}.html', - 87 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/{FNAME}.html', - 88 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/CORBA/{FNAME}.html', - 89 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/ssl/{FNAME}.html', - 90 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/{FNAME}.html', - 91 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/callback/{FNAME}.html', - 92 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/kerberos/{FNAME}.html', - 93 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/login/{FNAME}.html', - 94 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/spi/{FNAME}.html', - 95 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/x500/{FNAME}.html', - 96 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/sasl/{FNAME}.html', - 97 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/{FNAME}.html', - 98 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/spi/{FNAME}.html', - 99 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/{FNAME}.html', - 100 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/spi/{FNAME}.html', - 101 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/{FNAME}.html', - 102 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/{FNAME}.html', - 103 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/serial/{FNAME}.html', - 104 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/spi/{FNAME}.html', - 105 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/{FNAME}.html', - 106 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/border/{FNAME}.html', - 107 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/colorchooser/{FNAME}.html', - 108 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/event/{FNAME}.html', - 109 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/filechooser/{FNAME}.html', - 110 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/{FNAME}.html', - 111 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/basic/{FNAME}.html', - 112 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/metal/{FNAME}.html', - 113 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/multi/{FNAME}.html', - 114 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/synth/{FNAME}.html', - 115 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/{FNAME}.html', - 116 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/{FNAME}.html', - 117 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/{FNAME}.html', - 118 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/parser/{FNAME}.html', - 119 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/{FNAME}.html', - 120 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/tree/{FNAME}.html', - 121 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/undo/{FNAME}.html', - 122 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/{FNAME}.html', - 123 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/{FNAME}.html', - 124 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/{FNAME}.html', - 125 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/datatype/{FNAME}.html', - 126 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/namespace/{FNAME}.html', - 127 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/{FNAME}.html', - 128 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/{FNAME}.html', - 129 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/dom/{FNAME}.html', - 130 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/sax/{FNAME}.html', - 131 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/stream/{FNAME}.html', - 132 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/{FNAME}.html', - 133 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/xpath/{FNAME}.html', - 134 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/ietf/jgss/{FNAME}.html', - 135 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/{FNAME}.html', - 136 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', - 137 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', - 138 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/portable/{FNAME}.html', - 139 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/{FNAME}.html', - 140 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', - 141 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', - 142 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Dynamic/{FNAME}.html', - 143 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/{FNAME}.html', - 144 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', - 145 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', - 146 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/{FNAME}.html', - 147 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', - 148 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', - 149 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Messaging/{FNAME}.html', - 150 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', - 151 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', - 152 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/{FNAME}.html', - 153 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', - 154 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', - 155 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', - 156 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', - 157 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/SendingContext/{FNAME}.html', - 158 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', - 159 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/{FNAME}.html', - 160 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', - 161 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/events/{FNAME}.html', - 162 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/ls/{FNAME}.html', - 163 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/{FNAME}.html', - 164 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/ext/{FNAME}.html', - 165 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/helpers/{FNAME}.html', + 5 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/applet/{FNAME}.html', + 6 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/{FNAME}.html', + 7 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/color/{FNAME}.html', + 8 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/datatransfer/{FNAME}.html', + 9 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/dnd/{FNAME}.html', + 10 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/event/{FNAME}.html', + 11 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/font/{FNAME}.html', + 12 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/geom/{FNAME}.html', + 13 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/{FNAME}.html', + 14 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/spi/{FNAME}.html', + 15 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/{FNAME}.html', + 16 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/renderable/{FNAME}.html', + 17 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/print/{FNAME}.html', + 18 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/{FNAME}.html', + 19 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/beancontext/{FNAME}.html', + 20 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/io/{FNAME}.html', + 21 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/{FNAME}.html', + 22 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/annotation/{FNAME}.html', + 23 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/instrument/{FNAME}.html', + 24 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/management/{FNAME}.html', + 25 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/ref/{FNAME}.html', + 26 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/reflect/{FNAME}.html', + 27 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/math/{FNAME}.html', + 28 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/net/{FNAME}.html', + 29 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/{FNAME}.html', + 30 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/{FNAME}.html', + 31 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/spi/{FNAME}.html', + 32 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/{FNAME}.html', + 33 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/spi/{FNAME}.html', + 34 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/{FNAME}.html', + 35 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/activation/{FNAME}.html', + 36 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/dgc/{FNAME}.html', + 37 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/registry/{FNAME}.html', + 38 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/server/{FNAME}.html', + 39 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/{FNAME}.html', + 40 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/acl/{FNAME}.html', + 41 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/cert/{FNAME}.html', + 42 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/interfaces/{FNAME}.html', + 43 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/spec/{FNAME}.html', + 44 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/sql/{FNAME}.html', + 45 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/text/{FNAME}.html', + 46 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/{FNAME}.html', + 47 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/{FNAME}.html', + 48 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/atomic/{FNAME}.html', + 49 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/locks/{FNAME}.html', + 50 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/jar/{FNAME}.html', + 51 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/logging/{FNAME}.html', + 52 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/prefs/{FNAME}.html', + 53 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/regex/{FNAME}.html', + 54 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/zip/{FNAME}.html', + 55 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/accessibility/{FNAME}.html', + 56 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/activity/{FNAME}.html', + 57 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/{FNAME}.html', + 58 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/interfaces/{FNAME}.html', + 59 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/spec/{FNAME}.html', + 60 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/{FNAME}.html', + 61 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/event/{FNAME}.html', + 62 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/metadata/{FNAME}.html', + 63 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', + 64 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', + 65 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/spi/{FNAME}.html', + 66 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/stream/{FNAME}.html', + 67 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/{FNAME}.html', + 68 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/loading/{FNAME}.html', + 69 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/modelmbean/{FNAME}.html', + 70 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/monitor/{FNAME}.html', + 71 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/openmbean/{FNAME}.html', + 72 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/relation/{FNAME}.html', + 73 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/{FNAME}.html', + 74 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/rmi/{FNAME}.html', + 75 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/timer/{FNAME}.html', + 76 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/{FNAME}.html', + 77 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/directory/{FNAME}.html', + 78 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/event/{FNAME}.html', + 79 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/ldap/{FNAME}.html', + 80 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/spi/{FNAME}.html', + 81 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/{FNAME}.html', + 82 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/ssl/{FNAME}.html', + 83 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/{FNAME}.html', + 84 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/{FNAME}.html', + 85 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/standard/{FNAME}.html', + 86 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/event/{FNAME}.html', + 87 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/{FNAME}.html', + 88 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/CORBA/{FNAME}.html', + 89 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/ssl/{FNAME}.html', + 90 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/{FNAME}.html', + 91 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/callback/{FNAME}.html', + 92 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/kerberos/{FNAME}.html', + 93 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/login/{FNAME}.html', + 94 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/spi/{FNAME}.html', + 95 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/x500/{FNAME}.html', + 96 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/sasl/{FNAME}.html', + 97 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/{FNAME}.html', + 98 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/spi/{FNAME}.html', + 99 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/{FNAME}.html', + 100 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/spi/{FNAME}.html', + 101 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/{FNAME}.html', + 102 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/{FNAME}.html', + 103 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/serial/{FNAME}.html', + 104 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/spi/{FNAME}.html', + 105 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/{FNAME}.html', + 106 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/border/{FNAME}.html', + 107 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/colorchooser/{FNAME}.html', + 108 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/event/{FNAME}.html', + 109 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/filechooser/{FNAME}.html', + 110 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/{FNAME}.html', + 111 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/basic/{FNAME}.html', + 112 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/metal/{FNAME}.html', + 113 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/multi/{FNAME}.html', + 114 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/synth/{FNAME}.html', + 115 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/table/{FNAME}.html', + 116 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/{FNAME}.html', + 117 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/{FNAME}.html', + 118 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/parser/{FNAME}.html', + 119 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/rtf/{FNAME}.html', + 120 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/tree/{FNAME}.html', + 121 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/undo/{FNAME}.html', + 122 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/{FNAME}.html', + 123 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/xa/{FNAME}.html', + 124 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/{FNAME}.html', + 125 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/datatype/{FNAME}.html', + 126 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/namespace/{FNAME}.html', + 127 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/parsers/{FNAME}.html', + 128 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/{FNAME}.html', + 129 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/dom/{FNAME}.html', + 130 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/sax/{FNAME}.html', + 131 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/stream/{FNAME}.html', + 132 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/validation/{FNAME}.html', + 133 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/xpath/{FNAME}.html', + 134 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/ietf/jgss/{FNAME}.html', + 135 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/{FNAME}.html', + 136 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', + 137 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', + 138 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/portable/{FNAME}.html', + 139 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/{FNAME}.html', + 140 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', + 141 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', + 142 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Dynamic/{FNAME}.html', + 143 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/{FNAME}.html', + 144 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', + 145 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', + 146 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/{FNAME}.html', + 147 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', + 148 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', + 149 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Messaging/{FNAME}.html', + 150 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', + 151 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', + 152 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/{FNAME}.html', + 153 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', + 154 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', + 155 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', + 156 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', + 157 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/SendingContext/{FNAME}.html', + 158 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', + 159 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/{FNAME}.html', + 160 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', + 161 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/events/{FNAME}.html', + 162 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/ls/{FNAME}.html', + 163 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/{FNAME}.html', + 164 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/ext/{FNAME}.html', + 165 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/helpers/{FNAME}.html', /* ambiguous class names (appear in more than one package) */ 166 => 'http://www.google.com/search?sitesearch=java.sun.com&q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}' ), @@ -1025,7 +1025,13 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&"\'])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-;"\'])' + ) ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php index 4ffef2b2e..429cdd653 100644 --- a/inc/geshi/javascript.php +++ b/inc/geshi/javascript.php @@ -4,7 +4,7 @@ * -------------- * Author: Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * JavaScript language file for GeSHi. diff --git a/inc/geshi/jquery.php b/inc/geshi/jquery.php new file mode 100644 index 000000000..54e653ed1 --- /dev/null +++ b/inc/geshi/jquery.php @@ -0,0 +1,238 @@ +<?php +/************************************************************************************* + * jquery.php + * -------------- + * Author: Rob Loach (http://www.robloach.net) + * Copyright: (c) 2009 Rob Loach (http://www.robloach.net) + * Release Version: 1.0.8.8 + * Date Started: 2009/07/20 + * + * jQuery 1.3 language file for GeSHi. + * + * CHANGES + * ------- + * 2009/07/20 (1.0.8.5) + * - First Release + * + * TODO (updated 2009/07/20) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'jQuery', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + //Regular Expressions + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do', + 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item', + 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void', + 'while', 'write', 'with' + ), + 2 => array( + 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false', + 'function', 'import', 'namespace', 'new', 'null', 'package', 'private', + 'protected', 'public', 'super', 'true', 'use', 'var' + ), + 3 => array( + // common functions for Window object + 'alert', 'back', 'close', 'confirm', 'forward', 'home', + 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove', + 'onresize', 'onunload', 'open', 'print', 'prompt', 'status', + //'blur', 'focus', 'scroll', // Duplicate with kw9 + //'stop', //Duplicate with kw10 + ), + 4 => array( + // jQuery Core Functions + 'jQuery', 'each', 'size', 'length', 'selector', 'context', 'eq', + 'index', 'data', 'removeData', 'queue', 'dequeue', 'noConflict' + //'get', //Duplicate with kw11 + ), + 5 => array( + // jQuery Attribute Functions + 'attr', 'removeAttr', 'addClass', 'hasClass', 'removeClass', 'toggleClass', + 'html', 'text', 'val', + ), + 6 => array( + // jQuery Traversing Functions + 'filter', 'not', 'slice', 'add', 'children', 'closest', + 'contents', 'find', 'next', 'nextAll', 'parent', 'parents', + 'prev', 'prevAll', 'siblings', 'andSelf', 'end', + //'is', //Dup with kw1 + //'offsetParent', //Duplicate with kw8 + //'map', //Duplicate with kw12 + ), + 7 => array( + // jQuery Manipulation Functions + 'append', 'appendTo', 'prepend', 'prependTo', 'after', 'before', 'insertAfter', + 'insertBefore', 'wrap', 'wrapAll', 'wrapInner', 'replaceWith', 'replaceAll', + 'empty', 'remove', 'clone', + ), + 8 => array( + // jQuery CSS Functions + 'css', 'offset', 'offsetParent', 'position', 'scrollTop', 'scrollLeft', + 'height', 'width', 'innerHeight', 'innerWidth', 'outerHeight', 'outerWidth', + ), + 9 => array( + // jQuery Events Functions + 'ready', 'bind', 'one', 'trigger', 'triggerHandler', 'unbind', 'live', + 'die', 'hover', 'blur', 'change', 'click', 'dblclick', 'error', + 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mouseenter', + 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', + 'scroll', 'select', 'submit', 'unload', + //'toggle', //Duplicate with kw10 + //'load', //Duplicate with kw11 + ), + 10 => array( + // jQuery Effects Functions + 'show', 'hide', 'toggle', 'slideDown', 'slideUp', 'slideToggle', 'fadeIn', + 'fadeOut', 'fadeTo', 'animate', 'stop', + ), + 11 => array( + // jQuery Ajax Functions + 'ajax', 'load', 'get', 'getJSON', 'getScript', 'post', 'ajaxComplete', + 'ajaxError', 'ajaxSend', 'ajaxStart', 'ajaxStop', 'ajaxSuccess', 'ajaxSetup', + 'serialize', 'serializeArray', + ), + 12 => array( + // jQuery Utility Functions + 'support', 'browser', 'version', 'boxModal', 'extend', 'grep', 'makeArray', + 'map', 'inArray', 'merge', 'unique', 'isArray', 'isFunction', 'trim', + 'param', + ), + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '@', '&', '|', '^', + '<', '>', '=', + ',', ';', '?', ':' + ), + 1 => array( + '$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #003366; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #000066;', + 5 => 'color: #000066;', + 6 => 'color: #000066;', + 7 => 'color: #000066;', + 8 => 'color: #000066;', + 9 => 'color: #000066;', + 10 => 'color: #000066;', + 11 => 'color: #000066;', + 12 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #3366CC;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => 'http://docs.jquery.com/Core/{FNAME}', + 5 => 'http://docs.jquery.com/Attributes/{FNAME}', + 6 => 'http://docs.jquery.com/Traversing/{FNAME}', + 7 => 'http://docs.jquery.com/Manipulation/{FNAME}', + 8 => 'http://docs.jquery.com/CSS/{FNAME}', + 9 => 'http://docs.jquery.com/Events/{FNAME}', + 10 => 'http://docs.jquery.com/Effects/{FNAME}', + 11 => 'http://docs.jquery.com/Ajax/{FNAME}', + 12 => 'http://docs.jquery.com/Utilities/{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '<script type="text/javascript">' => '</script>' + ), + 1 => array( + '<script language="javascript">' => '</script>' + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/kixtart.php b/inc/geshi/kixtart.php index bdffd5875..62cb54652 100644 --- a/inc/geshi/kixtart.php +++ b/inc/geshi/kixtart.php @@ -4,7 +4,7 @@ * -------- * Author: Riley McArdle (riley@glyff.net) * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/08/31 * * PHP language file for GeSHi. diff --git a/inc/geshi/klonec.php b/inc/geshi/klonec.php index 03d64a166..e47e597ef 100644 --- a/inc/geshi/klonec.php +++ b/inc/geshi/klonec.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/04/16 * * KLone with C language file for GeSHi. diff --git a/inc/geshi/klonecpp.php b/inc/geshi/klonecpp.php index fd2d53864..1a2d2082b 100644 --- a/inc/geshi/klonecpp.php +++ b/inc/geshi/klonecpp.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/04/16 * * KLone with C++ language file for GeSHi. diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php index bad2c1861..1ba3d409e 100644 --- a/inc/geshi/latex.php +++ b/inc/geshi/latex.php @@ -4,7 +4,7 @@ * ----- * Author: efi, Matthias Pospiech (matthias@pospiech.eu) * Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/09/23 * * LaTeX language file for GeSHi. @@ -61,21 +61,26 @@ $language_data = array ( 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'addlinespace','address','appendix','author','backmatter', + 'addlinespace','and','address','appendix','author','backmatter', 'bfseries','bibitem','bigskip','blindtext','caption','captionabove', - 'captionbelow','cdot','centering','cite','color','colorbox','date', - 'def','definecolor','documentclass','edef','eqref','else','email','emph','fbox', - 'fi','flushleft','flushright','footnote','frac','frontmatter','graphicspath','hfill', - 'hline','hspace','huge','include','includegraphics','infty','input','int','ifx', - 'item','label','LaTeX','left','let','limits','listfiles','listoffigures', - 'listoftables','mainmatter','makeatletter','makeatother','makebox', - 'makeindex','maketitle','mbox','mediumskip','newcommand', - 'newenvironment','newpage','nocite','nonumber','pagestyle','par','paragraph','parbox', - 'parident','parskip','partial','raggedleft','raggedright','raisebox','ref', - 'renewcommand','renewenvironment','right','rule','section','setlength', - 'sffamily','subparagraph','subsection','subsubsection','sum','table', - 'tableofcontents','textbf','textcolor','textit','textnormal', - 'textsuperscript','texttt','title','today','ttfamily','urlstyle', + 'captionbelow','cdot','centering','chapter','cite','color', + 'colorbox','date','dedication','def','definecolor','documentclass', + 'edef','else','email','emph','eqref','extratitle','fbox','fi', + 'flushleft','flushright','footnote','frac','frontmatter', + 'graphicspath','hfill','hline','hspace','huge','ifx','include', + 'includegraphics','infty','input','int','item','itemsep', + 'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits', + 'listfiles','listoffigures','listoftables','lowertitleback', + 'mainmatter','makeatletter','makeatother','makebox','makeindex', + 'maketitle','mbox','mediumskip','newcommand','newenvironment', + 'newpage','nocite','nonumber','pagestyle','par','paragraph', + 'parbox','parident','parskip','partial','publishers','raggedleft', + 'raggedright','raisebox','ref','renewcommand','renewenvironment', + 'right','rule','section','setlength','sffamily','subject', + 'subparagraph','subsection','subsubsection','subtitle','sum', + 'table','tableofcontents','textbf','textcolor','textit', + 'textnormal','textsuperscript','texttt','textwidth','thanks','title', + 'titlehead','today','ttfamily','uppertitleback','urlstyle', 'usepackage','vspace' ) ), @@ -142,7 +147,7 @@ $language_data = array ( ), // [options] 2 => array( - GESHI_SEARCH => "(?<=\[).+(?=\])", + GESHI_SEARCH => "(?<=\[).*(?=\])", GESHI_REPLACE => '\0', GESHI_MODIFIERS => 'Us', GESHI_BEFORE => '', diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php index aa492058b..a8f50691e 100644 --- a/inc/geshi/lisp.php +++ b/inc/geshi/lisp.php @@ -4,7 +4,7 @@ * -------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Generic Lisp language file for GeSHi. @@ -73,7 +73,7 @@ $language_data = array ( 'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt', 'random','logand','logior','logxor','lognot','bignums','logeqv', 'lognand','lognor','logorc2','logtest','logbitp','logcount', - 'integer','nil','parse-integer' + 'integer','nil','parse-integer','make-list','print','write' ) ), 'SYMBOLS' => array( @@ -141,4 +141,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/locobasic.php b/inc/geshi/locobasic.php index a799d6900..a3e22a7be 100644 --- a/inc/geshi/locobasic.php +++ b/inc/geshi/locobasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Nacho Cabanes * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/03/22 * * Locomotive Basic (Amstrad CPC series) language file for GeSHi. @@ -80,8 +80,8 @@ $language_data = array ( ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #0000ff; font-weight: bold;', - 2 => 'color: #008888; font-weight: bold;' + 1 => 'color: #000088; font-weight: bold;', + 2 => 'color: #AA00AA; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #808080;', @@ -91,7 +91,7 @@ $language_data = array ( 0 => 'color: #ff0000;' ), 'STRINGS' => array( - 0 => 'color: #ff0000;' + 0 => 'color: #008800;' ), 'NUMBERS' => array( 0 => 'color: #0044ff;' diff --git a/inc/geshi/logtalk.php b/inc/geshi/logtalk.php new file mode 100644 index 000000000..fb77bd6d3 --- /dev/null +++ b/inc/geshi/logtalk.php @@ -0,0 +1,330 @@ +<?php +/************************************************************************************* + * logtalk.php + * ----------- + * + * Author: Paulo Moura (pmoura@logtalk.org) + * Copyright: (c) 2009 Paulo Moura (http://logtalk.org/) + * Release Version: 1.0.8.8 + * Date Started: 2009/10/24 + * + * Logtalk language file for GeSHi. + * + * CHANGES + * ------- + * 2009/10/28 (1.0.0) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Logtalk', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(2 => "/0'./sim"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'"), + 'HARDQUOTE' => array('"', '"'), + 'HARDESCAPE' => array(), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]+\\\\#", + //Octal Char Specs + 3 => "#\\\\[0-7]+\\\\#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX_0O | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // Directives (with arguments) + 1 => array( + // file directives + 'encoding', 'ensure_loaded', + // flag directives + 'set_logtalk_flag', 'set_prolog_flag', + // entity opening directives + 'category', 'object', 'protocol', + // predicate scope directives + 'private', 'protected', 'public', + // conditional compilation directives + 'elif', 'if', + // entity directives + 'calls', 'initialization', 'op', 'uses', + // predicate directives + 'alias', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized', + // module directives + 'export', 'module', 'reexport', 'use_module' + ), + // Directives (no arguments) + 2 => array( + // entity directives + 'dynamic', + // multi-threading directives + 'synchronized', 'threaded', + // entity closing directives + 'end_category', 'end_object', 'end_protocol', + // conditional compilation directives + 'else', 'endif' + ), + // Entity relations + 3 => array( + 'complements', 'extends', 'imports', 'implements','instantiates', 'specializes' + ), + // Built-in predicates (with arguments) + 4 => array( + // event handlers + 'after', 'before', + // execution-context methods + 'parameter', 'self', 'sender', 'this', + // predicate reflection + 'current_predicate', 'predicate_property', + // DCGs and term expansion + 'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion', + // entity + 'abolish_category', 'abolish_object', 'abolish_protocol', + 'create_category', 'create_object', 'create_protocol', + 'current_category', 'current_object', 'current_protocol', + 'category_property', 'object_property', 'protocol_property', + // entity relations + 'complements_object', + 'extends_category', 'extends_object', 'extends_protocol', + 'implements_protocol', 'imports_category', + 'instantiates_class', 'specializes_class', + // events + 'abolish_events', 'current_event', 'define_events', + // flags + 'current_logtalk_flag', 'set_logtalk_flag', + 'current_prolog_flag', 'set_prolog_flag', + // compiling, loading, and library path + 'logtalk_compile', 'logtalk_library_path', 'logtalk_load', + // database + 'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall', + // control + 'call', 'catch', 'once', 'throw', + // all solutions predicates + 'bagof', 'findall', 'forall', 'setof', + // multi-threading meta-predicates + 'threaded', + 'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek', + 'threaded_wait', 'threaded_notify', + // term unification + 'unify_with_occurs_check', + // atomic term processing + 'atom_chars', 'atom_codes', 'atom_concat', 'atom_length', + 'number_chars', 'number_codes', + 'char_code', + // term creation and decomposition + 'arg', 'copy_term', 'functor', + // term testing + 'atom', 'atomic', 'compound', 'float', 'integer', 'nonvar', 'number', 'sub_atom', 'var', + // stream selection and control + 'current_input', 'current_output', 'set_input', 'set_output', + 'open', 'close', 'flush_output', 'stream_property', + 'at_end_of_stream', 'set_stream_position', + // character and byte input/output predicates + 'get_byte', 'get_char', 'get_code', + 'peek_byte', 'peek_char', 'peek_code', + 'put_byte', 'put_char', 'put_code', + 'nl', + // term input/output predicates + 'current_op', 'op', + 'write', 'writeq', 'write_canonical', 'write_term', + 'read', 'read_term', + 'char_conversion', 'current_char_conversion', + // + 'halt' + ), + // Built-in predicates (no arguments) + 5 => array( + // control + 'fail', 'repeat', 'true', + // character and byte input/output predicates + 'nl', + // implementation defined hooks functions + 'halt', + // arithemtic evaluation + 'is', + // stream selection and control + 'at_end_of_stream', 'flush_output' + ), + // Evaluable functors (with arguments) + 6 => array( + 'float_integer_part', 'float_fractional_part', + 'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling', + 'cos', 'atan', 'exp', 'log', 'sin', 'sqrt' + ), + // Evaluable functors (no arguments) + 7 => array( + 'mod', 'rem' + ), + ), + 'SYMBOLS' => array( + 0 => array( + // external call + '{', '}' + ), + 1 => array( + // arithemtic comparison + '=:=', '=\=', '<', '=<', '>=', '>', + // term comparison + '<<', '>>', '/\\', '\\/', '\\', + // bitwise functors + '==', '\==', '@<', '@=<', '@>=', '@>', + // evaluable functors + '+', '-', '*', '/', '**', + // logic and control + '!', '\\+', ';', + // message sending operators + '::', '^^', ':', + // grammar rule and conditional functors + '-->', '->', + // mode operators + '@', '?', + // term to list predicate + '=..', + // unification + '=', '\\=' + ), + 2 => array( + // clause and directive functors + ':-' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #2e4dc9;', + 2 => 'color: #2e4dc9;', + 3 => 'color: #2e4dc9;', + 4 => 'color: #9d4f37;', + 5 => 'color: #9d4f37;', + 6 => 'color: #9d4f37;', + 7 => 'color: #9d4f37;' + ), + 'NUMBERS' => array( + 0 => 'color: #430000;' + ), + 'COMMENTS' => array( + 1 => 'color: #60a0b0; font-style: italic;', + 2 => 'color: #430000;', + 'MULTI' => 'color: #60a0b0; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #9f0000; font-weight: bold;', + 1 => 'color: #9f0000; font-weight: bold;', + 2 => 'color: #9f0000; font-weight: bold;', + 3 => 'color: #9f0000; font-weight: bold;', + 'HARD' => '', + ), + 'SYMBOLS' => array( + 0 => 'color: #666666;font-weight: bold;', + 1 => 'color: #666666;font-weight: bold;', + 2 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #9f0000;', + 'HARD' => 'color: #9f0000;' + ), + 'METHODS' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #848484;' + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + // variables + 0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=:-\s)', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 2 => array( + 'DISALLOWED_BEFORE' => '(?<=:-\s)', + 'DISALLOWED_AFTER' => '(?=\.)' + ), + 3 => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 4 => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 5 => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])' + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 7 => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])' + ) + ) + ), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/lolcode.php b/inc/geshi/lolcode.php index fc60e3e9f..a804913cc 100644 --- a/inc/geshi/lolcode.php +++ b/inc/geshi/lolcode.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * LOLcode language file for GeSHi. diff --git a/inc/geshi/lotusformulas.php b/inc/geshi/lotusformulas.php index e82d6bf3d..862adbc82 100644 --- a/inc/geshi/lotusformulas.php +++ b/inc/geshi/lotusformulas.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/04/12 * * @Formula/@Command language file for GeSHi. diff --git a/inc/geshi/lotusscript.php b/inc/geshi/lotusscript.php index 5272377b1..1ef2f3eee 100644 --- a/inc/geshi/lotusscript.php +++ b/inc/geshi/lotusscript.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/04/12 * * LotusScript language file for GeSHi. diff --git a/inc/geshi/lscript.php b/inc/geshi/lscript.php index 1a5b0726e..b7e313212 100644 --- a/inc/geshi/lscript.php +++ b/inc/geshi/lscript.php @@ -4,7 +4,7 @@ * --------- * Author: Arendedwinter (admin@arendedwinter.com) * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 15/11/2008 * * Lightwave Script language file for GeSHi. diff --git a/inc/geshi/lsl2.php b/inc/geshi/lsl2.php index 0b62ee8b7..e5f40969b 100644 --- a/inc/geshi/lsl2.php +++ b/inc/geshi/lsl2.php @@ -4,7 +4,7 @@ * -------- * Author: William Fry (william.fry@nyu.edu) * Copyright: (c) 2009 William Fry - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/02/04 * * Linden Scripting Language (LSL2) language file for GeSHi. diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php index f85086bb2..abeaa54ea 100644 --- a/inc/geshi/lua.php +++ b/inc/geshi/lua.php @@ -4,7 +4,7 @@ * ------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * LUA language file for GeSHi. diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php index cc5807c6f..543b73c8b 100644 --- a/inc/geshi/m68k.php +++ b/inc/geshi/m68k.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/02/06 * * Motorola 68000 Assembler language file for GeSHi. diff --git a/inc/geshi/magiksf.php b/inc/geshi/magiksf.php new file mode 100644 index 000000000..f3da7fcf2 --- /dev/null +++ b/inc/geshi/magiksf.php @@ -0,0 +1,193 @@ +<?php +/************************************************************************************* + * magiksf.php + * -------- + * Author: Sjoerd van Leent (svanleent@gmail.com) + * Copyright: (c) 2010 Sjoerd van Leent + * Release Version: 1.0.8.8 + * Date Started: 2010/02/15 + * + * MagikSF language file for GeSHi. + * + * CHANGES + * ------- + * 2010/02/22 (1.0.0.2) + * - Symbols also accept the ! and ? characters properly + * - Labels (identifiers starting with !) are also coloured + * 2010/02/17 (1.0.0.1) + * - Parsing out symbols better + * - Add package identifiers + * 2010/02/15 (1.0.0) + * - First Release + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'ESCAPE_CHAR' => null, + 'LANG_NAME' => 'MagikSF', + 'COMMENT_SINGLE' => array(1 => '##', 2 => '#%', 3 => '#'), + 'COMMENT_MULTI' => array("_pragma(" => ")"), + //Multiline-continued single-line comments + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop', + '_method', '_endmethod', + '_protect', '_endprotect', '_protection', '_locking', + '_continue', + ), + 2 => array( + '_self', '_thisthread', '_pragma', '_private', '_abstract', + '_local', '_global', '_dynamic', '_package', '_constant', + '_import', '_iter', '_lock', '_optional', '_recursive', '_super' + ), + 3 => array( + '_if', '_endif', '_then', '_else', '_elif', '_orif', '_andif', '_for', '_over', + '_try', '_endtry', '_when', '_throw', '_catch', '_endcatch', '_handling', + '_finally', '_loopbody', '_return', '_leave', '_with' + ), + 4 => array( + '_false', '_true', '_maybe', '_unset', '_no_way' + ), + 5 => array( + '_mod', '_div', '_or', '_and', '_cf', '_is', '_isnt', '_not', '_gather', '_scatter', + '_allresults', '_clone', '_xor' + ), + 6 => array( + 'def_slotted_exemplar', 'write_string', 'write', 'condition', + 'record_transaction', 'gis_program_manager', 'perform', 'define_shared_constant', + 'property_list', 'rope', 'def_property', 'def_mixin' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '**', + '=', '<', '>', '<<', '>>', + ',', '$', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #ff3f3f;', + 3 => 'color: #3f7f3f; font-weight: bold;', + 4 => 'color: #cc66cc;', + 5 => 'color: #ff3fff; font-weight: bold;', + 6 => 'font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #339933; font-weight: bold;', + 2 => 'color: #993333;', + 3 => 'color: #339933;', + 'MULTI' => 'color: #7f7f7f; font-style: italic', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #ff3f3f;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #ff3f3f;' + ), + 'REGEXPS' => array( + 1 => 'color: #3f3fff;', + 2 => 'color: #3f3fff;', + 3 => 'color: #cc66cc;', + 4 => 'color: #7f3f7f; font-style: italic;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + 1 => array( + GESHI_SEARCH => '\b[a-zA-Z0-9_]+:', // package identifiers + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => ':(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => '%space|%tab|%newline|%.', //characters + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 4 => array( + GESHI_SEARCH => '@(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?>
\ No newline at end of file diff --git a/inc/geshi/make.php b/inc/geshi/make.php index f01209ebf..689552312 100644 --- a/inc/geshi/make.php +++ b/inc/geshi/make.php @@ -4,7 +4,7 @@ * -------- * Author: Neil Bird <phoenix@fnxweb.com> * Copyright: (c) 2008 Neil Bird - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/08/26 * * make language file for GeSHi. diff --git a/inc/geshi/mapbasic.php b/inc/geshi/mapbasic.php new file mode 100644 index 000000000..0025d4e22 --- /dev/null +++ b/inc/geshi/mapbasic.php @@ -0,0 +1,908 @@ +<?php +/************************************************************************************* + * mapbasic.php + * ------ + * Author: Tomasz Berus (t.berus@gisodkuchni.pl) + * Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/) + * Release Version: 1.0.8.8 + * Date Started: 2008/11/25 + * + * MapBasic language file for GeSHi. + * + * CHANGES + * ------- + * 2009/09/17 (1.0.1) + * - Replaced all tabs with spaces + * - Fixed 'URLS' array + * 2008/11/25 (1.0.0) + * - First Release (MapBasic v9.5) + * + * TODO (updated 2008/11/25) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'MapBasic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( +/* + 1 - Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL + 2 - Special Procedures + 3 - Functions + 4 - Constants + 5 - Extended keywords (case sensitive) +*/ + 1 => array( + 'Add', 'Alias', 'All', 'Alter', 'And', 'Any', 'Application', 'Arc', + 'Area', 'As', 'AutoLabel', 'Bar', 'Beep', 'Begin', 'Bind', + 'Browse', 'Brush', 'BrushPicker', 'Button', 'ButtonPad', + 'ButtonPads', 'BY', 'Call', 'CancelButton', 'Cartographic', 'Case', + 'CharSet', 'Check', 'CheckBox', 'Clean', 'Close', 'Collection', + 'Column', 'Combine', 'Command', 'Commit', 'Connection', + 'ConnectionNumber', 'Contains', 'Continue', 'Control', 'CoordSys', + 'Create', 'Cutter', 'Date', 'Datum', 'DDEExecute', 'DDEPoke', + 'DDETerminate', 'DDETerminateAll', 'Declare', 'Default', 'Define', + 'Delete', 'Dialog', 'Digitizer', 'Dim', 'Disaggregate', + 'Disconnect', 'Distance', 'Do', 'Document', 'DocumentWindow', + 'Drag', 'Drop', 'EditText', 'Ellipse', 'Enclose', 'End', 'Entire', + 'Entirely', 'Erase', 'Error', 'Event', 'Exit', 'Export', + 'Farthest', 'Fetch', 'File', 'Find', 'Float', 'FME', 'Font', + 'FontPicker', 'For', 'Format', 'Frame', 'From', 'Function', + 'Geocode', 'Get', 'Global', 'Goto', 'Graph', 'Grid', 'GROUP', + 'GroupBox', 'Handler', 'If', 'Import', 'In', 'Include', 'Index', + 'Info', 'Input', 'Insert', 'Integer', 'Intersect', 'Intersects', + 'INTO', 'Isogram', 'Item', 'Kill', 'Layout', 'Legend', 'Line', + 'Link', 'ListBox', 'Logical', 'Loop', 'Map', 'Map3D', 'MapInfo', + 'MapInfoDialog', 'Menu', 'Merge', 'Metadata', 'Method', 'Mod', + 'Move', 'MultiListBox', 'MultiPoint', 'MWS', 'Nearest', 'Next', + 'NOSELECT', 'Not', 'Note', 'Object', 'Objects', 'Offset', + 'OKButton', 'OnError', 'Open', 'Or', 'ORDER', 'Overlay', 'Pack', + 'Paper', 'Part', 'Partly', 'Pen', 'PenPicker', 'Pline', 'Point', + 'PopupMenu', 'Preserve', 'Print', 'PrintWin', 'PrismMap', + 'Processing', 'Program', 'ProgressBar', 'ProgressBars', 'Put', + 'RadioGroup', 'Randomize', 'Ranges', 'Rect', 'ReDim', + 'Redistricter', 'Refresh', 'Region', 'Register', 'Relief', + 'Reload', 'Remove', 'Rename', 'Report', 'Reproject', 'Resolution', + 'Resume', 'Rollback', 'RoundRect', 'RowID', 'Run', 'Save', 'Seek', + 'Select', 'Selection', 'Server', 'Set', 'Shade', 'SmallInt', + 'Snap', 'Split', 'StaticText', 'StatusBar', 'Stop', 'String', + 'Style', 'Styles', 'Sub', 'Symbol', 'SymbolPicker', 'Symbols', + 'Table', 'Target', 'Terminate', 'Text', 'Then', 'Threshold', + 'Timeout', 'To', 'Transaction', 'Transform', 'Type', 'UnDim', + 'Units', 'Unlink', 'Update', 'Using', 'VALUES', 'Version', + 'Versioning', 'Wend', 'WFS', 'WHERE', 'While', 'Window', 'Within', + 'Workspace', 'Write' + ), + 2 => array( + 'EndHandler', 'ForegroundTaskSwitchHandler', 'Main', + 'RemoteMapGenHandler', 'RemoteMsgHandler', 'SelChangedHandler', + 'ToolHandler', 'WinChangedHandler', 'WinClosedHandler', + 'WinFocusChangedHandler' + ), + 3 => array( + 'Abs', 'Acos', 'ApplicationDirectory$', 'AreaOverlap', 'Asc', + 'Asin', 'Ask', 'Atn', 'Avg', 'Buffer', 'ButtonPadInfo', + 'CartesianArea', 'CartesianBuffer', 'CartesianConnectObjects', + 'CartesianDistance', 'CartesianObjectDistance', + 'CartesianObjectLen', 'CartesianOffset', 'CartesianOffsetXY', + 'CartesianPerimeter', 'Centroid', 'CentroidX', 'CentroidY', + 'ChooseProjection$', 'Chr$', 'ColumnInfo', 'CommandInfo', + 'ConnectObjects', 'ControlPointInfo', 'ConvertToPline', + 'ConvertToRegion', 'ConvexHull', 'CoordSysName$', 'Cos', 'Count', + 'CreateCircle', 'CreateLine', 'CreatePoint', 'CreateText', + 'CurDate', 'CurrentBorderPen', 'CurrentBrush', 'CurrentFont', + 'CurrentLinePen', 'CurrentPen', 'CurrentSymbol', 'DateWindow', + 'Day', 'DDEInitiate', 'DDERequest$', 'DeformatNumber$', 'EOF', + 'EOT', 'EPSGToCoordSysString$', 'Err', 'Error$', 'Exp', + 'ExtractNodes', 'FileAttr', 'FileExists', 'FileOpenDlg', + 'FileSaveAsDlg', 'Fix', 'Format$', 'FormatDate$', 'FormatNumber$', + 'FrontWindow', 'GeocodeInfo', 'GetFolderPath$', 'GetGridCellValue', + 'GetMetadata$', 'GetSeamlessSheet', 'GridTableInfo', + 'HomeDirectory$', 'InStr', 'Int', 'IntersectNodes', + 'IsGridCellNull', 'IsogramInfo', 'IsPenWidthPixels', + 'LabelFindByID', 'LabelFindFirst', 'LabelFindNext', 'LabelInfo', + 'LayerInfo', 'LCase$', 'Left$', 'LegendFrameInfo', 'LegendInfo', + 'LegendStyleInfo', 'Len', 'Like', 'LocateFile$', 'LOF', 'Log', + 'LTrim$', 'MakeBrush', 'MakeCustomSymbol', 'MakeFont', + 'MakeFontSymbol', 'MakePen', 'MakeSymbol', 'Map3DInfo', + 'MapperInfo', 'Max', 'Maximum', 'MBR', 'MenuItemInfoByHandler', + 'MenuItemInfoByID', 'MGRSToPoint', 'MICloseContent', + 'MICloseFtpConnection', 'MICloseFtpFileFind', + 'MICloseHttpConnection', 'MICloseHttpFile', 'MICloseSession', + 'MICreateSession', 'MICreateSessionFull', 'Mid$', 'MidByte$', + 'MIErrorDlg', 'MIFindFtpFile', 'MIFindNextFtpFile', 'MIGetContent', + 'MIGetContentBuffer', 'MIGetContentLen', 'MIGetContentString', + 'MIGetContentToFile', 'MIGetContentType', + 'MIGetCurrentFtpDirectory', 'MIGetErrorCode', 'MIGetErrorMessage', + 'MIGetFileURL', 'MIGetFtpConnection', 'MIGetFtpFile', + 'MIGetFtpFileFind', 'MIGetFtpFileName', 'MIGetHttpConnection', + 'MIIsFtpDirectory', 'MIIsFtpDots', 'Min', 'Minimum', + 'MIOpenRequest', 'MIOpenRequestFull', 'MIParseURL', 'MIPutFtpFile', + 'MIQueryInfo', 'MIQueryInfoStatusCode', 'MISaveContent', + 'MISendRequest', 'MISendSimpleRequest', 'MISetCurrentFtpDirectory', + 'MISetSessionTimeout', 'MIXmlAttributeListDestroy', + 'MIXmlDocumentCreate', 'MIXmlDocumentDestroy', + 'MIXmlDocumentGetNamespaces', 'MIXmlDocumentGetRootNode', + 'MIXmlDocumentLoad', 'MIXmlDocumentLoadXML', + 'MIXmlDocumentLoadXMLString', 'MIXmlDocumentSetProperty', + 'MIXmlGetAttributeList', 'MIXmlGetChildList', + 'MIXmlGetNextAttribute', 'MIXmlGetNextNode', 'MIXmlNodeDestroy', + 'MIXmlNodeGetAttributeValue', 'MIXmlNodeGetFirstChild', + 'MIXmlNodeGetName', 'MIXmlNodeGetParent', 'MIXmlNodeGetText', + 'MIXmlNodeGetValue', 'MIXmlNodeListDestroy', 'MIXmlSCDestroy', + 'MIXmlSCGetLength', 'MIXmlSCGetNamespace', 'MIXmlSelectNodes', + 'MIXmlSelectSingleNode', 'Month', 'NumAllWindows', 'NumberToDate', + 'NumCols', 'NumTables', 'NumWindows', 'ObjectDistance', + 'ObjectGeography', 'ObjectInfo', 'ObjectLen', 'ObjectNodeHasM', + 'ObjectNodeHasZ', 'ObjectNodeM', 'ObjectNodeX', 'ObjectNodeY', + 'ObjectNodeZ', 'OffsetXY', 'Overlap', 'OverlayNodes', + 'PathToDirectory$', 'PathToFileName$', 'PathToTableName$', + 'PenWidthToPoints', 'Perimeter', 'PointsToPenWidth', + 'PointToMGRS$', 'PrismMapInfo', 'ProgramDirectory$', 'Proper$', + 'ProportionOverlap', 'RasterTableInfo', 'ReadControlValue', + 'RegionInfo', 'RemoteQueryHandler', 'RGB', 'Right$', 'Rnd', + 'Rotate', 'RotateAtPoint', 'Round', 'RTrim$', 'SearchInfo', + 'SearchPoint', 'SearchRect', 'SelectionInfo', 'Server_ColumnInfo', + 'Server_Connect', 'Server_ConnectInfo', 'Server_DriverInfo', + 'Server_EOT', 'Server_Execute', 'Server_GetODBCHConn', + 'Server_GetODBCHStmt', 'Server_NumCols', 'Server_NumDrivers', + 'SessionInfo', 'Sgn', 'Sin', 'Space$', 'SphericalArea', + 'SphericalConnectObjects', 'SphericalDistance', + 'SphericalObjectDistance', 'SphericalObjectLen', 'SphericalOffset', + 'SphericalOffsetXY', 'SphericalPerimeter', 'Sqr', 'Str$', + 'String$', 'StringCompare', 'StringCompareIntl', 'StringToDate', + 'StyleAttr', 'Sum', 'SystemInfo', 'TableInfo', 'Tan', + 'TempFileName$', 'TextSize', 'Time', 'Timer', 'TriggerControl', + 'TrueFileName$', 'UBound', 'UCase$', 'UnitAbbr$', 'UnitName$', + 'Val', 'Weekday', 'WindowID', 'WindowInfo', 'WtAvg', 'Year' + ), + 4 => array( + 'BLACK', 'BLUE', 'BRUSH_BACKCOLOR', 'BRUSH_FORECOLOR', + 'BRUSH_PATTERN', 'BTNPAD_INFO_FLOATING', 'BTNPAD_INFO_NBTNS', + 'BTNPAD_INFO_WIDTH', 'BTNPAD_INFO_WINID', 'BTNPAD_INFO_X', + 'BTNPAD_INFO_Y', 'CLS', 'CMD_INFO_CTRL', 'CMD_INFO_CUSTOM_OBJ', + 'CMD_INFO_DLG_DBL', 'CMD_INFO_DLG_OK', 'CMD_INFO_EDIT_ASK', + 'CMD_INFO_EDIT_DISCARD', 'CMD_INFO_EDIT_SAVE', + 'CMD_INFO_EDIT_STATUS', 'CMD_INFO_EDIT_TABLE', 'CMD_INFO_FIND_RC', + 'CMD_INFO_FIND_ROWID', 'CMD_INFO_HL_FILE_NAME', + 'CMD_INFO_HL_LAYER_ID', 'CMD_INFO_HL_ROWID', + 'CMD_INFO_HL_TABLE_NAME', 'CMD_INFO_HL_WINDOW_ID', + 'CMD_INFO_INTERRUPT', 'CMD_INFO_MENUITEM', 'CMD_INFO_MSG', + 'CMD_INFO_ROWID', 'CMD_INFO_SELTYPE', 'CMD_INFO_SHIFT', + 'CMD_INFO_STATUS', 'CMD_INFO_TASK_SWITCH', 'CMD_INFO_TOOLBTN', + 'CMD_INFO_WIN', 'CMD_INFO_X', 'CMD_INFO_X2', 'CMD_INFO_XCMD', + 'CMD_INFO_Y', 'CMD_INFO_Y2', 'COL_INFO_DECPLACES', + 'COL_INFO_EDITABLE', 'COL_INFO_INDEXED', 'COL_INFO_NAME', + 'COL_INFO_NUM', 'COL_INFO_TYPE', 'COL_INFO_WIDTH', 'COL_TYPE_CHAR', + 'COL_TYPE_DATE', 'COL_TYPE_DATETIME', 'COL_TYPE_DECIMAL', + 'COL_TYPE_FLOAT', 'COL_TYPE_GRAPHIC', 'COL_TYPE_INTEGER', + 'COL_TYPE_LOGICAL', 'COL_TYPE_SMALLINT', 'COL_TYPE_TIME', 'CYAN', + 'DATE_WIN_CURPROG', 'DATE_WIN_SESSION', 'DEG_2_RAD', + 'DICTIONARY_ADDRESS_ONLY', 'DICTIONARY_ALL', + 'DICTIONARY_PREFER_ADDRESS', 'DICTIONARY_PREFER_USER', + 'DICTIONARY_USER_ONLY', 'DM_CUSTOM_CIRCLE', 'DM_CUSTOM_ELLIPSE', + 'DM_CUSTOM_LINE', 'DM_CUSTOM_POINT', 'DM_CUSTOM_POLYGON', + 'DM_CUSTOM_POLYLINE', 'DM_CUSTOM_RECT', 'DMPAPER_10X11', + 'DMPAPER_10X14', 'DMPAPER_11X17', 'DMPAPER_12X11', 'DMPAPER_15X11', + 'DMPAPER_9X11', 'DMPAPER_A_PLUS', 'DMPAPER_A2', 'DMPAPER_A3', + 'DMPAPER_A3_EXTRA', 'DMPAPER_A3_EXTRA_TRANSVERSE', + 'DMPAPER_A3_ROTATED', 'DMPAPER_A3_TRANSVERSE', 'DMPAPER_A4', + 'DMPAPER_A4_EXTRA', 'DMPAPER_A4_PLUS', 'DMPAPER_A4_ROTATED', + 'DMPAPER_A4_TRANSVERSE', 'DMPAPER_A4SMALL', 'DMPAPER_A5', + 'DMPAPER_A5_EXTRA', 'DMPAPER_A5_ROTATED', 'DMPAPER_A5_TRANSVERSE', + 'DMPAPER_A6', 'DMPAPER_A6_ROTATED', 'DMPAPER_B_PLUS', 'DMPAPER_B4', + 'DMPAPER_B4_JIS_ROTATED', 'DMPAPER_B5', 'DMPAPER_B5_EXTRA', + 'DMPAPER_B5_JIS_ROTATED', 'DMPAPER_B5_TRANSVERSE', + 'DMPAPER_B6_JIS', 'DMPAPER_B6_JIS_ROTATED', 'DMPAPER_CSHEET', + 'DMPAPER_DBL_JAPANESE_POSTCARD', + 'DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_DSHEET', + 'DMPAPER_ENV_10', 'DMPAPER_ENV_11', 'DMPAPER_ENV_12', + 'DMPAPER_ENV_14', 'DMPAPER_ENV_9', 'DMPAPER_ENV_B4', + 'DMPAPER_ENV_B5', 'DMPAPER_ENV_B6', 'DMPAPER_ENV_C3', + 'DMPAPER_ENV_C4', 'DMPAPER_ENV_C5', 'DMPAPER_ENV_C6', + 'DMPAPER_ENV_C65', 'DMPAPER_ENV_DL', 'DMPAPER_ENV_INVITE', + 'DMPAPER_ENV_ITALY', 'DMPAPER_ENV_MONARCH', 'DMPAPER_ENV_PERSONAL', + 'DMPAPER_ESHEET', 'DMPAPER_EXECUTIVE', + 'DMPAPER_FANFOLD_LGL_GERMAN', 'DMPAPER_FANFOLD_STD_GERMAN', + 'DMPAPER_FANFOLD_US', 'DMPAPER_FIRST', 'DMPAPER_FOLIO', + 'DMPAPER_ISO_B4', 'DMPAPER_JAPANESE_POSTCARD', + 'DMPAPER_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_JENV_CHOU3', + 'DMPAPER_JENV_CHOU3_ROTATED', 'DMPAPER_JENV_CHOU4', + 'DMPAPER_JENV_CHOU4_ROTATED', 'DMPAPER_JENV_KAKU2', + 'DMPAPER_JENV_KAKU2_ROTATED', 'DMPAPER_JENV_KAKU3', + 'DMPAPER_JENV_KAKU3_ROTATED', 'DMPAPER_JENV_YOU4', + 'DMPAPER_JENV_YOU4_ROTATED', 'DMPAPER_LEDGER', 'DMPAPER_LEGAL', + 'DMPAPER_LEGAL_EXTRA', 'DMPAPER_LETTER', 'DMPAPER_LETTER_EXTRA', + 'DMPAPER_LETTER_EXTRA_TRANSVERSE', 'DMPAPER_LETTER_PLUS', + 'DMPAPER_LETTER_ROTATED', 'DMPAPER_LETTER_TRANSVERSE', + 'DMPAPER_LETTERSMALL', 'DMPAPER_NOTE', 'DMPAPER_P16K', + 'DMPAPER_P16K_ROTATED', 'DMPAPER_P32K', 'DMPAPER_P32K_ROTATED', + 'DMPAPER_P32KBIG', 'DMPAPER_P32KBIG_ROTATED', 'DMPAPER_PENV_1', + 'DMPAPER_PENV_1_ROTATED', 'DMPAPER_PENV_10', + 'DMPAPER_PENV_10_ROTATED', 'DMPAPER_PENV_2', + 'DMPAPER_PENV_2_ROTATED', 'DMPAPER_PENV_3', + 'DMPAPER_PENV_3_ROTATED', 'DMPAPER_PENV_4', + 'DMPAPER_PENV_4_ROTATED', 'DMPAPER_PENV_5', + 'DMPAPER_PENV_5_ROTATED', 'DMPAPER_PENV_6', + 'DMPAPER_PENV_6_ROTATED', 'DMPAPER_PENV_7', + 'DMPAPER_PENV_7_ROTATED', 'DMPAPER_PENV_8', + 'DMPAPER_PENV_8_ROTATED', 'DMPAPER_PENV_9', + 'DMPAPER_PENV_9_ROTATED', 'DMPAPER_QUARTO', 'DMPAPER_RESERVED_48', + 'DMPAPER_RESERVED_49', 'DMPAPER_STATEMENT', 'DMPAPER_TABLOID', + 'DMPAPER_TABLOID_EXTRA', 'DMPAPER_USER', 'ERR_BAD_WINDOW', + 'ERR_BAD_WINDOW_NUM', 'ERR_CANT_ACCESS_FILE', + 'ERR_CANT_INITIATE_LINK', 'ERR_CMD_NOT_SUPPORTED', + 'ERR_FCN_ARG_RANGE', 'ERR_FCN_INVALID_FMT', + 'ERR_FCN_OBJ_FETCH_FAILED', 'ERR_FILEMGR_NOTOPEN', + 'ERR_FP_MATH_LIB_DOMAIN', 'ERR_FP_MATH_LIB_RANGE', + 'ERR_INVALID_CHANNEL', 'ERR_INVALID_READ_CONTROL', + 'ERR_INVALID_TRIG_CONTROL', 'ERR_NO_FIELD', + 'ERR_NO_RESPONSE_FROM_APP', 'ERR_NULL_SELECTION', + 'ERR_PROCESS_FAILED_IN_APP', 'ERR_TABLE_NOT_FOUND', + 'ERR_WANT_MAPPER_WIN', 'FALSE', 'FILE_ATTR_FILESIZE', + 'FILE_ATTR_MODE', 'FILTER_ALL_DIRECTIONS_1', + 'FILTER_ALL_DIRECTIONS_2', 'FILTER_DIAGONALLY', + 'FILTER_HORIZONTALLY', 'FILTER_VERTICALLY', + 'FILTER_VERTICALLY_AND_HORIZONTALLY', 'FOLDER_APPDATA', + 'FOLDER_COMMON_APPDATA', 'FOLDER_COMMON_DOCS', + 'FOLDER_LOCAL_APPDATA', 'FOLDER_MI_APPDATA', + 'FOLDER_MI_COMMON_APPDATA', 'FOLDER_MI_LOCAL_APPDATA', + 'FOLDER_MI_PREFERENCE', 'FOLDER_MYDOCS', 'FOLDER_MYPICS', + 'FONT_BACKCOLOR', 'FONT_FORECOLOR', 'FONT_NAME', 'FONT_POINTSIZE', + 'FONT_STYLE', 'FRAME_INFO_BORDER_PEN', 'FRAME_INFO_COLUMN', + 'FRAME_INFO_HEIGHT', 'FRAME_INFO_LABEL', 'FRAME_INFO_MAP_LAYER_ID', + 'FRAME_INFO_NUM_STYLES', 'FRAME_INFO_POS_X', 'FRAME_INFO_POS_Y', + 'FRAME_INFO_REFRESHABLE', 'FRAME_INFO_SUBTITLE', + 'FRAME_INFO_SUBTITLE_FONT', 'FRAME_INFO_TITLE', + 'FRAME_INFO_TITLE_FONT', 'FRAME_INFO_TYPE', 'FRAME_INFO_VISIBLE', + 'FRAME_INFO_WIDTH', 'FRAME_TYPE_STYLE', 'FRAME_TYPE_THEME', + 'GEO_CONTROL_POINT_X', 'GEO_CONTROL_POINT_Y', 'GEOCODE_BATCH_SIZE', + 'GEOCODE_COUNT_GEOCODED', 'GEOCODE_COUNT_NOTGEOCODED', + 'GEOCODE_COUNTRY_SUBDIVISION', 'GEOCODE_COUNTRY_SUBDIVISION2', + 'GEOCODE_DICTIONARY', 'GEOCODE_FALLBACK_GEOGRAPHIC', + 'GEOCODE_FALLBACK_POSTAL', 'GEOCODE_MAX_BATCH_SIZE', + 'GEOCODE_MIXED_CASE', 'GEOCODE_MUNICIPALITY', + 'GEOCODE_MUNICIPALITY2', 'GEOCODE_OFFSET_CENTER', + 'GEOCODE_OFFSET_CENTER_UNITS', 'GEOCODE_OFFSET_END', + 'GEOCODE_OFFSET_END_UNITS', 'GEOCODE_PASSTHROUGH', + 'GEOCODE_POSTAL_CODE', 'GEOCODE_RESULT_MARK_MULTIPLE', + 'GEOCODE_STREET_NAME', 'GEOCODE_STREET_NUMBER', + 'GEOCODE_UNABLE_TO_CONVERT_DATA', 'GREEN', + 'GRID_TAB_INFO_HAS_HILLSHADE', 'GRID_TAB_INFO_MAX_VALUE', + 'GRID_TAB_INFO_MIN_VALUE', 'HOTLINK_INFO_ENABLED', + 'HOTLINK_INFO_EXPR', 'HOTLINK_INFO_MODE', 'HOTLINK_INFO_RELATIVE', + 'HOTLINK_MODE_BOTH', 'HOTLINK_MODE_LABEL', 'HOTLINK_MODE_OBJ', + 'IMAGE_CLASS_BILEVEL', 'IMAGE_CLASS_GREYSCALE', + 'IMAGE_CLASS_PALETTE', 'IMAGE_CLASS_RGB', 'IMAGE_TYPE_GRID', + 'IMAGE_TYPE_RASTER', 'INCL_ALL', 'INCL_COMMON', 'INCL_CROSSINGS', + 'ISOGRAM_AMBIENT_SPEED_DIST_UNIT', + 'ISOGRAM_AMBIENT_SPEED_TIME_UNIT', 'ISOGRAM_BANDING', + 'ISOGRAM_BATCH_SIZE', 'ISOGRAM_DEFAULT_AMBIENT_SPEED', + 'ISOGRAM_MAJOR_POLYGON_ONLY', 'ISOGRAM_MAJOR_ROADS_ONLY', + 'ISOGRAM_MAX_BANDS', 'ISOGRAM_MAX_BATCH_SIZE', + 'ISOGRAM_MAX_DISTANCE', 'ISOGRAM_MAX_DISTANCE_UNITS', + 'ISOGRAM_MAX_OFFROAD_DIST', 'ISOGRAM_MAX_OFFROAD_DIST_UNITS', + 'ISOGRAM_MAX_TIME', 'ISOGRAM_MAX_TIME_UNITS', + 'ISOGRAM_POINTS_ONLY', 'ISOGRAM_PROPAGATION_FACTOR', + 'ISOGRAM_RECORDS_INSERTED', 'ISOGRAM_RECORDS_NOTINSERTED', + 'ISOGRAM_RETURN_HOLES', 'ISOGRAM_SIMPLIFICATION_FACTOR', + 'LABEL_INFO_ANCHORX', 'LABEL_INFO_ANCHORY', 'LABEL_INFO_DRAWN', + 'LABEL_INFO_EDIT', 'LABEL_INFO_EDIT_ANCHOR', + 'LABEL_INFO_EDIT_ANGLE', 'LABEL_INFO_EDIT_FONT', + 'LABEL_INFO_EDIT_OFFSET', 'LABEL_INFO_EDIT_PEN', + 'LABEL_INFO_EDIT_POSITION', 'LABEL_INFO_EDIT_TEXT', + 'LABEL_INFO_EDIT_TEXTARROW', 'LABEL_INFO_EDIT_TEXTLINE', + 'LABEL_INFO_EDIT_VISIBILITY', 'LABEL_INFO_OBJECT', + 'LABEL_INFO_OFFSET', 'LABEL_INFO_ORIENTATION', + 'LABEL_INFO_POSITION', 'LABEL_INFO_ROWID', 'LABEL_INFO_SELECT', + 'LABEL_INFO_TABLE', 'LAYER_INFO_ARROWS', 'LAYER_INFO_CENTROIDS', + 'LAYER_INFO_COSMETIC', 'LAYER_INFO_DISPLAY', + 'LAYER_INFO_DISPLAY_GLOBAL', 'LAYER_INFO_DISPLAY_GRAPHIC', + 'LAYER_INFO_DISPLAY_OFF', 'LAYER_INFO_DISPLAY_VALUE', + 'LAYER_INFO_EDITABLE', 'LAYER_INFO_HOTLINK_COUNT', + 'LAYER_INFO_HOTLINK_EXPR', 'LAYER_INFO_HOTLINK_MODE', + 'LAYER_INFO_HOTLINK_RELATIVE', 'LAYER_INFO_LABEL_ALPHA', + 'LAYER_INFO_LABEL_ORIENT_CURVED', + 'LAYER_INFO_LABEL_ORIENT_HORIZONTAL', + 'LAYER_INFO_LABEL_ORIENT_PARALLEL', 'LAYER_INFO_LAYER_ALPHA', + 'LAYER_INFO_LAYER_TRANSLUCENCY', 'LAYER_INFO_LBL_AUTODISPLAY', + 'LAYER_INFO_LBL_CURFONT', 'LAYER_INFO_LBL_DUPLICATES', + 'LAYER_INFO_LBL_EXPR', 'LAYER_INFO_LBL_FONT', 'LAYER_INFO_LBL_LT', + 'LAYER_INFO_LBL_LT_ARROW', 'LAYER_INFO_LBL_LT_NONE', + 'LAYER_INFO_LBL_LT_SIMPLE', 'LAYER_INFO_LBL_MAX', + 'LAYER_INFO_LBL_OFFSET', 'LAYER_INFO_LBL_ORIENTATION', + 'LAYER_INFO_LBL_OVERLAP', 'LAYER_INFO_LBL_PARALLEL', + 'LAYER_INFO_LBL_PARTIALSEGS', 'LAYER_INFO_LBL_POS', + 'LAYER_INFO_LBL_POS_BC', 'LAYER_INFO_LBL_POS_BL', + 'LAYER_INFO_LBL_POS_BR', 'LAYER_INFO_LBL_POS_CC', + 'LAYER_INFO_LBL_POS_CL', 'LAYER_INFO_LBL_POS_CR', + 'LAYER_INFO_LBL_POS_TC', 'LAYER_INFO_LBL_POS_TL', + 'LAYER_INFO_LBL_POS_TR', 'LAYER_INFO_LBL_VIS_OFF', + 'LAYER_INFO_LBL_VIS_ON', 'LAYER_INFO_LBL_VIS_ZOOM', + 'LAYER_INFO_LBL_VISIBILITY', 'LAYER_INFO_LBL_ZOOM_MAX', + 'LAYER_INFO_LBL_ZOOM_MIN', 'LAYER_INFO_NAME', 'LAYER_INFO_NODES', + 'LAYER_INFO_OVR_BRUSH', 'LAYER_INFO_OVR_FONT', + 'LAYER_INFO_OVR_LINE', 'LAYER_INFO_OVR_PEN', + 'LAYER_INFO_OVR_SYMBOL', 'LAYER_INFO_PATH', + 'LAYER_INFO_SELECTABLE', 'LAYER_INFO_TYPE', + 'LAYER_INFO_TYPE_COSMETIC', 'LAYER_INFO_TYPE_GRID', + 'LAYER_INFO_TYPE_IMAGE', 'LAYER_INFO_TYPE_NORMAL', + 'LAYER_INFO_TYPE_THEMATIC', 'LAYER_INFO_TYPE_WMS', + 'LAYER_INFO_ZOOM_LAYERED', 'LAYER_INFO_ZOOM_MAX', + 'LAYER_INFO_ZOOM_MIN', 'LEGEND_INFO_MAP_ID', + 'LEGEND_INFO_NUM_FRAMES', 'LEGEND_INFO_ORIENTATION', + 'LEGEND_INFO_STYLE_SAMPLE_SIZE', 'LEGEND_STYLE_INFO_FONT', + 'LEGEND_STYLE_INFO_OBJ', 'LEGEND_STYLE_INFO_TEXT', + 'LOCATE_ABB_FILE', 'LOCATE_CLR_FILE', 'LOCATE_CUSTSYMB_DIR', + 'LOCATE_DEF_WOR', 'LOCATE_FNT_FILE', 'LOCATE_GEOCODE_SERVERLIST', + 'LOCATE_GRAPH_DIR', 'LOCATE_LAYOUT_TEMPLATE_DIR', + 'LOCATE_MNU_FILE', 'LOCATE_PEN_FILE', 'LOCATE_PREF_FILE', + 'LOCATE_PRJ_FILE', 'LOCATE_ROUTING_SERVERLIST', + 'LOCATE_THMTMPLT_DIR', 'LOCATE_WFS_SERVERLIST', + 'LOCATE_WMS_SERVERLIST', 'M_3DMAP_CLONE_VIEW', + 'M_3DMAP_PREVIOUS_VIEW', 'M_3DMAP_PROPERTIES', + 'M_3DMAP_REFRESH_GRID_TEXTURE', 'M_3DMAP_VIEW_ENTIRE_GRID', + 'M_3DMAP_VIEWPOINT_CONTROL', 'M_3DMAP_WIREFRAME', + 'M_ANALYZE_CALC_STATISTICS', 'M_ANALYZE_CUSTOMIZE_LEGEND', + 'M_ANALYZE_FIND', 'M_ANALYZE_FIND_SELECTION', + 'M_ANALYZE_INVERTSELECT', 'M_ANALYZE_SELECT', + 'M_ANALYZE_SELECTALL', 'M_ANALYZE_SHADE', 'M_ANALYZE_SQLQUERY', + 'M_ANALYZE_UNSELECT', 'M_BROWSE_EDIT', 'M_BROWSE_GRID', + 'M_BROWSE_NEW_RECORD', 'M_BROWSE_OPTIONS', 'M_BROWSE_PICK_FIELDS', + 'M_DBMS_OPEN_ODBC', 'M_EDIT_CLEAR', 'M_EDIT_CLEAROBJ', + 'M_EDIT_COPY', 'M_EDIT_CUT', 'M_EDIT_GETINFO', 'M_EDIT_NEW_ROW', + 'M_EDIT_PASTE', 'M_EDIT_PREFERENCES', 'M_EDIT_PREFERENCES_COUNTRY', + 'M_EDIT_PREFERENCES_FILE', 'M_EDIT_PREFERENCES_IMAGE_PROC', + 'M_EDIT_PREFERENCES_LAYOUT', 'M_EDIT_PREFERENCES_LEGEND', + 'M_EDIT_PREFERENCES_MAP', 'M_EDIT_PREFERENCES_OUTPUT', + 'M_EDIT_PREFERENCES_PATH', 'M_EDIT_PREFERENCES_PRINTER', + 'M_EDIT_PREFERENCES_STYLES', 'M_EDIT_PREFERENCES_SYSTEM', + 'M_EDIT_PREFERENCES_WEBSERVICES', 'M_EDIT_RESHAPE', 'M_EDIT_UNDO', + 'M_FILE_ABOUT', 'M_FILE_ADD_WORKSPACE', 'M_FILE_CLOSE', + 'M_FILE_CLOSE_ALL', 'M_FILE_CLOSE_ODBC', 'M_FILE_EXIT', + 'M_FILE_HELP', 'M_FILE_NEW', 'M_FILE_OPEN', 'M_FILE_OPEN_ODBC', + 'M_FILE_OPEN_ODBC_CONN', 'M_FILE_OPEN_UNIVERSAL_DATA', + 'M_FILE_OPEN_WFS', 'M_FILE_OPEN_WMS', 'M_FILE_PAGE_SETUP', + 'M_FILE_PRINT', 'M_FILE_PRINT_SETUP', 'M_FILE_REVERT', + 'M_FILE_RUN', 'M_FILE_SAVE', 'M_FILE_SAVE_COPY_AS', + 'M_FILE_SAVE_QUERY', 'M_FILE_SAVE_WINDOW_AS', + 'M_FILE_SAVE_WORKSPACE', 'M_FORMAT_CUSTOM_COLORS', + 'M_FORMAT_PICK_FILL', 'M_FORMAT_PICK_FONT', 'M_FORMAT_PICK_LINE', + 'M_FORMAT_PICK_SYMBOL', 'M_GRAPH_3D_VIEWING_ANGLE', + 'M_GRAPH_FORMATING', 'M_GRAPH_GENERAL_OPTIONS', + 'M_GRAPH_GRID_SCALES', 'M_GRAPH_LABEL_AXIS', + 'M_GRAPH_SAVE_AS_TEMPLATE', 'M_GRAPH_SERIES', + 'M_GRAPH_SERIES_OPTIONS', 'M_GRAPH_TITLES', 'M_GRAPH_TYPE', + 'M_GRAPH_VALUE_AXIS', 'M_HELP_ABOUT', 'M_HELP_CHECK_FOR_UPDATE', + 'M_HELP_CONNECT_MIFORUM', 'M_HELP_CONTENTS', + 'M_HELP_CONTEXTSENSITIVE', 'M_HELP_HELPMODE', + 'M_HELP_MAPINFO_3DGRAPH_HELP', 'M_HELP_MAPINFO_CONNECT_SERVICES', + 'M_HELP_MAPINFO_WWW', 'M_HELP_MAPINFO_WWW_STORE', + 'M_HELP_MAPINFO_WWW_TUTORIAL', 'M_HELP_SEARCH', + 'M_HELP_TECHSUPPORT', 'M_HELP_USE_HELP', 'M_LAYOUT_ACTUAL', + 'M_LAYOUT_ALIGN', 'M_LAYOUT_AUTOSCROLL_ONOFF', + 'M_LAYOUT_BRING2FRONT', 'M_LAYOUT_CHANGE_VIEW', + 'M_LAYOUT_DISPLAYOPTIONS', 'M_LAYOUT_DROPSHADOWS', + 'M_LAYOUT_ENTIRE', 'M_LAYOUT_LAYOUT_SIZE', 'M_LAYOUT_PREVIOUS', + 'M_LAYOUT_SEND2BACK', 'M_LEGEND_ADD_FRAMES', 'M_LEGEND_DELETE', + 'M_LEGEND_PROPERTIES', 'M_LEGEND_REFRESH', 'M_MAP_AUTOLABEL', + 'M_MAP_AUTOSCROLL_ONOFF', 'M_MAP_CHANGE_VIEW', + 'M_MAP_CLEAR_COSMETIC', 'M_MAP_CLEAR_CUSTOM_LABELS', + 'M_MAP_CLIP_REGION_ONOFF', 'M_MAP_CLONE_MAPPER', + 'M_MAP_CREATE_3DMAP', 'M_MAP_CREATE_LEGEND', + 'M_MAP_CREATE_PRISMMAP', 'M_MAP_ENTIRE_LAYER', + 'M_MAP_LAYER_CONTROL', 'M_MAP_MODIFY_THEMATIC', 'M_MAP_OPTIONS', + 'M_MAP_PREVIOUS', 'M_MAP_PROJECTION', 'M_MAP_SAVE_COSMETIC', + 'M_MAP_SET_CLIP_REGION', 'M_MAP_SETUNITS', 'M_MAP_SETUPDIGITIZER', + 'M_MAP_THEMATIC', 'M_MAPBASIC_CLEAR', 'M_MAPBASIC_SAVECONTENTS', + 'M_OBJECTS_BREAKPOLY', 'M_OBJECTS_BUFFER', + 'M_OBJECTS_CHECK_REGIONS', 'M_OBJECTS_CLEAN', + 'M_OBJECTS_CLEAR_TARGET', 'M_OBJECTS_COMBINE', + 'M_OBJECTS_CONVEX_HULL', 'M_OBJECTS_CVT_PGON', + 'M_OBJECTS_CVT_PLINE', 'M_OBJECTS_DISAGG', + 'M_OBJECTS_DRIVE_REGION', 'M_OBJECTS_ENCLOSE', 'M_OBJECTS_ERASE', + 'M_OBJECTS_ERASE_OUT', 'M_OBJECTS_MERGE', 'M_OBJECTS_OFFSET', + 'M_OBJECTS_OVERLAY', 'M_OBJECTS_POLYLINE_SPLIT', + 'M_OBJECTS_POLYLINE_SPLIT_AT_NODE', 'M_OBJECTS_RESHAPE', + 'M_OBJECTS_ROTATE', 'M_OBJECTS_SET_TARGET', 'M_OBJECTS_SMOOTH', + 'M_OBJECTS_SNAP', 'M_OBJECTS_SPLIT', 'M_OBJECTS_UNSMOOTH', + 'M_OBJECTS_VORONOI', 'M_ORACLE_CREATE_WORKSPACE', + 'M_ORACLE_DELETE_WORKSPACE', 'M_ORACLE_MERGE_PARENT', + 'M_ORACLE_REFRESH_FROM_PARENT', 'M_ORACLE_VERSION_ENABLE_OFF', + 'M_ORACLE_VERSION_ENABLE_ON', 'M_QUERY_CALC_STATISTICS', + 'M_QUERY_FIND', 'M_QUERY_FIND_ADDRESS', 'M_QUERY_FIND_SELECTION', + 'M_QUERY_FIND_SELECTION_CURRENT_MAP', 'M_QUERY_INVERTSELECT', + 'M_QUERY_SELECT', 'M_QUERY_SELECTALL', 'M_QUERY_SQLQUERY', + 'M_QUERY_UNSELECT', 'M_REDISTRICT_ADD', 'M_REDISTRICT_ASSIGN', + 'M_REDISTRICT_DELETE', 'M_REDISTRICT_OPTIONS', + 'M_REDISTRICT_TARGET', 'M_SENDMAIL_CURRENTWINDOW', + 'M_SENDMAIL_WORKSPACE', 'M_TABLE_APPEND', 'M_TABLE_BUFFER', + 'M_TABLE_CHANGESYMBOL', 'M_TABLE_CREATE_POINTS', 'M_TABLE_DELETE', + 'M_TABLE_DRIVE_REGION', 'M_TABLE_EXPORT', 'M_TABLE_GEOCODE', + 'M_TABLE_IMPORT', 'M_TABLE_MAKEMAPPABLE', + 'M_TABLE_MERGE_USING_COLUMN', 'M_TABLE_MODIFY_STRUCTURE', + 'M_TABLE_PACK', 'M_TABLE_RASTER_REG', 'M_TABLE_RASTER_STYLE', + 'M_TABLE_REFRESH', 'M_TABLE_RENAME', + 'M_TABLE_UNIVERSAL_DATA_REFRESH', 'M_TABLE_UNLINK', + 'M_TABLE_UPDATE_COLUMN', 'M_TABLE_VORONOI', 'M_TABLE_WEB_GEOCODE', + 'M_TABLE_WFS_PROPS', 'M_TABLE_WFS_REFRESH', 'M_TABLE_WMS_PROPS', + 'M_TOOLS_ADD_NODE', 'M_TOOLS_ARC', 'M_TOOLS_CRYSTAL_REPORTS_NEW', + 'M_TOOLS_CRYSTAL_REPORTS_OPEN', 'M_TOOLS_DRAGWINDOW', + 'M_TOOLS_ELLIPSE', 'M_TOOLS_EXPAND', 'M_TOOLS_FRAME', + 'M_TOOLS_HOTLINK', 'M_TOOLS_LABELER', 'M_TOOLS_LINE', + 'M_TOOLS_MAPBASIC', 'M_TOOLS_PNT_QUERY', 'M_TOOLS_POINT', + 'M_TOOLS_POLYGON', 'M_TOOLS_POLYLINE', 'M_TOOLS_RASTER_REG', + 'M_TOOLS_RECENTER', 'M_TOOLS_RECTANGLE', 'M_TOOLS_ROUNDEDRECT', + 'M_TOOLS_RULER', 'M_TOOLS_RUN', 'M_TOOLS_SEARCH_BOUNDARY', + 'M_TOOLS_SEARCH_POLYGON', 'M_TOOLS_SEARCH_RADIUS', + 'M_TOOLS_SEARCH_RECT', 'M_TOOLS_SELECTOR', 'M_TOOLS_SHRINK', + 'M_TOOLS_TEXT', 'M_TOOLS_TOOL_MANAGER', 'M_WINDOW_ARRANGEICONS', + 'M_WINDOW_BROWSE', 'M_WINDOW_BUTTONPAD', 'M_WINDOW_CASCADE', + 'M_WINDOW_EXPORT_WINDOW', 'M_WINDOW_FIRST', 'M_WINDOW_GRAPH', + 'M_WINDOW_LAYOUT', 'M_WINDOW_LEGEND', 'M_WINDOW_MAP', + 'M_WINDOW_MAPBASIC', 'M_WINDOW_MORE', 'M_WINDOW_REDISTRICT', + 'M_WINDOW_REDRAW', 'M_WINDOW_STATISTICS', 'M_WINDOW_STATUSBAR', + 'M_WINDOW_TILE', 'M_WINDOW_TOOL_PALETTE', 'MAGENTA', + 'MAP3D_INFO_BACKGROUND', 'MAP3D_INFO_CAMERA_CLIP_FAR', + 'MAP3D_INFO_CAMERA_CLIP_NEAR', 'MAP3D_INFO_CAMERA_FOCAL_X', + 'MAP3D_INFO_CAMERA_FOCAL_Y', 'MAP3D_INFO_CAMERA_FOCAL_Z', + 'MAP3D_INFO_CAMERA_VPN_1', 'MAP3D_INFO_CAMERA_VPN_2', + 'MAP3D_INFO_CAMERA_VPN_3', 'MAP3D_INFO_CAMERA_VU_1', + 'MAP3D_INFO_CAMERA_VU_2', 'MAP3D_INFO_CAMERA_VU_3', + 'MAP3D_INFO_CAMERA_X', 'MAP3D_INFO_CAMERA_Y', + 'MAP3D_INFO_CAMERA_Z', 'MAP3D_INFO_LIGHT_COLOR', + 'MAP3D_INFO_LIGHT_X', 'MAP3D_INFO_LIGHT_Y', 'MAP3D_INFO_LIGHT_Z', + 'MAP3D_INFO_RESOLUTION_X', 'MAP3D_INFO_RESOLUTION_Y', + 'MAP3D_INFO_SCALE', 'MAP3D_INFO_UNITS', 'MAPPER_INFO_AREAUNITS', + 'MAPPER_INFO_CENTERX', 'MAPPER_INFO_CENTERY', + 'MAPPER_INFO_CLIP_DISPLAY_ALL', 'MAPPER_INFO_CLIP_DISPLAY_POLYOBJ', + 'MAPPER_INFO_CLIP_OVERLAY', 'MAPPER_INFO_CLIP_REGION', + 'MAPPER_INFO_CLIP_TYPE', 'MAPPER_INFO_COORDSYS_CLAUSE', + 'MAPPER_INFO_COORDSYS_CLAUSE_WITH_BOUNDS', + 'MAPPER_INFO_COORDSYS_NAME', 'MAPPER_INFO_DISPLAY', + 'MAPPER_INFO_DISPLAY_DECIMAL', 'MAPPER_INFO_DISPLAY_DEGMINSEC', + 'MAPPER_INFO_DISPLAY_DMS', 'MAPPER_INFO_DISPLAY_MGRS', + 'MAPPER_INFO_DISPLAY_POSITION', 'MAPPER_INFO_DISPLAY_SCALE', + 'MAPPER_INFO_DISPLAY_ZOOM', 'MAPPER_INFO_DIST_CALC_TYPE', + 'MAPPER_INFO_DIST_CARTESIAN', 'MAPPER_INFO_DIST_SPHERICAL', + 'MAPPER_INFO_DISTUNITS', 'MAPPER_INFO_EDIT_LAYER', + 'MAPPER_INFO_LAYERS', 'MAPPER_INFO_MAXX', 'MAPPER_INFO_MAXY', + 'MAPPER_INFO_MERGE_MAP', 'MAPPER_INFO_MINX', 'MAPPER_INFO_MINY', + 'MAPPER_INFO_MOVE_DUPLICATE_NODES', 'MAPPER_INFO_NUM_THEMATIC', + 'MAPPER_INFO_REPROJECTION', 'MAPPER_INFO_RESAMPLING', + 'MAPPER_INFO_SCALE', 'MAPPER_INFO_SCROLLBARS', + 'MAPPER_INFO_XYUNITS', 'MAPPER_INFO_ZOOM', 'MAX_STRING_LENGTH', + 'MENUITEM_INFO_ACCELERATOR', 'MENUITEM_INFO_CHECKABLE', + 'MENUITEM_INFO_CHECKED', 'MENUITEM_INFO_ENABLED', + 'MENUITEM_INFO_HANDLER', 'MENUITEM_INFO_HELPMSG', + 'MENUITEM_INFO_ID', 'MENUITEM_INFO_SHOWHIDEABLE', + 'MENUITEM_INFO_TEXT', 'MI_CURSOR_ARROW', 'MI_CURSOR_CHANGE_WIDTH', + 'MI_CURSOR_CROSSHAIR', 'MI_CURSOR_DRAG_OBJ', + 'MI_CURSOR_FINGER_LEFT', 'MI_CURSOR_FINGER_UP', + 'MI_CURSOR_GRABBER', 'MI_CURSOR_IBEAM', 'MI_CURSOR_IBEAM_CROSS', + 'MI_CURSOR_ZOOM_IN', 'MI_CURSOR_ZOOM_OUT', 'MI_ICON_ADD_NODE', + 'MI_ICON_ARC', 'MI_ICON_ARROW', 'MI_ICON_ARROW_1', + 'MI_ICON_ARROW_10', 'MI_ICON_ARROW_11', 'MI_ICON_ARROW_12', + 'MI_ICON_ARROW_13', 'MI_ICON_ARROW_14', 'MI_ICON_ARROW_15', + 'MI_ICON_ARROW_16', 'MI_ICON_ARROW_17', 'MI_ICON_ARROW_18', + 'MI_ICON_ARROW_19', 'MI_ICON_ARROW_2', 'MI_ICON_ARROW_20', + 'MI_ICON_ARROW_21', 'MI_ICON_ARROW_3', 'MI_ICON_ARROW_4', + 'MI_ICON_ARROW_5', 'MI_ICON_ARROW_6', 'MI_ICON_ARROW_7', + 'MI_ICON_ARROW_8', 'MI_ICON_ARROW_9', 'MI_ICON_CLIP_MODE', + 'MI_ICON_CLIP_REGION', 'MI_ICON_CLOSE_ALL', + 'MI_ICON_COMMUNICATION_1', 'MI_ICON_COMMUNICATION_10', + 'MI_ICON_COMMUNICATION_11', 'MI_ICON_COMMUNICATION_12', + 'MI_ICON_COMMUNICATION_2', 'MI_ICON_COMMUNICATION_3', + 'MI_ICON_COMMUNICATION_4', 'MI_ICON_COMMUNICATION_5', + 'MI_ICON_COMMUNICATION_6', 'MI_ICON_COMMUNICATION_7', + 'MI_ICON_COMMUNICATION_8', 'MI_ICON_COMMUNICATION_9', + 'MI_ICON_COMPASS_CIRCLE_TA', 'MI_ICON_COMPASS_CONTRACT', + 'MI_ICON_COMPASS_EXPAND', 'MI_ICON_COMPASS_POLY_TA', + 'MI_ICON_COMPASS_TAG', 'MI_ICON_COMPASS_UNTAG', 'MI_ICON_COPY', + 'MI_ICON_CROSSHAIR', 'MI_ICON_CUT', 'MI_ICON_DISTRICT_MANY', + 'MI_ICON_DISTRICT_SAME', 'MI_ICON_DRAG_HANDLE', 'MI_ICON_ELLIPSE', + 'MI_ICON_EMERGENCY_1', 'MI_ICON_EMERGENCY_10', + 'MI_ICON_EMERGENCY_11', 'MI_ICON_EMERGENCY_12', + 'MI_ICON_EMERGENCY_13', 'MI_ICON_EMERGENCY_14', + 'MI_ICON_EMERGENCY_15', 'MI_ICON_EMERGENCY_16', + 'MI_ICON_EMERGENCY_17', 'MI_ICON_EMERGENCY_18', + 'MI_ICON_EMERGENCY_2', 'MI_ICON_EMERGENCY_3', + 'MI_ICON_EMERGENCY_4', 'MI_ICON_EMERGENCY_5', + 'MI_ICON_EMERGENCY_6', 'MI_ICON_EMERGENCY_7', + 'MI_ICON_EMERGENCY_8', 'MI_ICON_EMERGENCY_9', 'MI_ICON_GRABBER', + 'MI_ICON_GRAPH_SELECT', 'MI_ICON_HELP', 'MI_ICON_HOT_LINK', + 'MI_ICON_INFO', 'MI_ICON_INVERTSELECT', 'MI_ICON_LABEL', + 'MI_ICON_LAYERS', 'MI_ICON_LEGEND', 'MI_ICON_LETTERS_A', + 'MI_ICON_LETTERS_B', 'MI_ICON_LETTERS_C', 'MI_ICON_LETTERS_D', + 'MI_ICON_LETTERS_E', 'MI_ICON_LETTERS_F', 'MI_ICON_LETTERS_G', + 'MI_ICON_LETTERS_H', 'MI_ICON_LETTERS_I', 'MI_ICON_LETTERS_J', + 'MI_ICON_LETTERS_K', 'MI_ICON_LETTERS_L', 'MI_ICON_LETTERS_M', + 'MI_ICON_LETTERS_N', 'MI_ICON_LETTERS_O', 'MI_ICON_LETTERS_P', + 'MI_ICON_LETTERS_Q', 'MI_ICON_LETTERS_R', 'MI_ICON_LETTERS_S', + 'MI_ICON_LETTERS_T', 'MI_ICON_LETTERS_U', 'MI_ICON_LETTERS_V', + 'MI_ICON_LETTERS_W', 'MI_ICON_LETTERS_X', 'MI_ICON_LETTERS_Y', + 'MI_ICON_LETTERS_Z', 'MI_ICON_LINE', 'MI_ICON_LINE_STYLE', + 'MI_ICON_MAPSYMB_1', 'MI_ICON_MAPSYMB_10', 'MI_ICON_MAPSYMB_11', + 'MI_ICON_MAPSYMB_12', 'MI_ICON_MAPSYMB_13', 'MI_ICON_MAPSYMB_14', + 'MI_ICON_MAPSYMB_15', 'MI_ICON_MAPSYMB_16', 'MI_ICON_MAPSYMB_17', + 'MI_ICON_MAPSYMB_18', 'MI_ICON_MAPSYMB_19', 'MI_ICON_MAPSYMB_2', + 'MI_ICON_MAPSYMB_20', 'MI_ICON_MAPSYMB_21', 'MI_ICON_MAPSYMB_22', + 'MI_ICON_MAPSYMB_23', 'MI_ICON_MAPSYMB_24', 'MI_ICON_MAPSYMB_25', + 'MI_ICON_MAPSYMB_26', 'MI_ICON_MAPSYMB_3', 'MI_ICON_MAPSYMB_4', + 'MI_ICON_MAPSYMB_5', 'MI_ICON_MAPSYMB_6', 'MI_ICON_MAPSYMB_7', + 'MI_ICON_MAPSYMB_8', 'MI_ICON_MAPSYMB_9', 'MI_ICON_MARITIME_1', + 'MI_ICON_MARITIME_10', 'MI_ICON_MARITIME_2', 'MI_ICON_MARITIME_3', + 'MI_ICON_MARITIME_4', 'MI_ICON_MARITIME_5', 'MI_ICON_MARITIME_6', + 'MI_ICON_MARITIME_7', 'MI_ICON_MARITIME_8', 'MI_ICON_MARITIME_9', + 'MI_ICON_MB_1', 'MI_ICON_MB_10', 'MI_ICON_MB_11', 'MI_ICON_MB_12', + 'MI_ICON_MB_13', 'MI_ICON_MB_14', 'MI_ICON_MB_2', 'MI_ICON_MB_3', + 'MI_ICON_MB_4', 'MI_ICON_MB_5', 'MI_ICON_MB_6', 'MI_ICON_MB_7', + 'MI_ICON_MB_8', 'MI_ICON_MB_9', 'MI_ICON_MISC_1', + 'MI_ICON_MISC_10', 'MI_ICON_MISC_11', 'MI_ICON_MISC_12', + 'MI_ICON_MISC_13', 'MI_ICON_MISC_14', 'MI_ICON_MISC_15', + 'MI_ICON_MISC_16', 'MI_ICON_MISC_17', 'MI_ICON_MISC_18', + 'MI_ICON_MISC_19', 'MI_ICON_MISC_2', 'MI_ICON_MISC_20', + 'MI_ICON_MISC_21', 'MI_ICON_MISC_22', 'MI_ICON_MISC_23', + 'MI_ICON_MISC_24', 'MI_ICON_MISC_25', 'MI_ICON_MISC_26', + 'MI_ICON_MISC_27', 'MI_ICON_MISC_28', 'MI_ICON_MISC_29', + 'MI_ICON_MISC_3', 'MI_ICON_MISC_30', 'MI_ICON_MISC_31', + 'MI_ICON_MISC_4', 'MI_ICON_MISC_5', 'MI_ICON_MISC_6', + 'MI_ICON_MISC_7', 'MI_ICON_MISC_8', 'MI_ICON_MISC_9', + 'MI_ICON_NEW_DOC', 'MI_ICON_NUMBERS_1', 'MI_ICON_NUMBERS_10', + 'MI_ICON_NUMBERS_11', 'MI_ICON_NUMBERS_12', 'MI_ICON_NUMBERS_13', + 'MI_ICON_NUMBERS_14', 'MI_ICON_NUMBERS_15', 'MI_ICON_NUMBERS_16', + 'MI_ICON_NUMBERS_17', 'MI_ICON_NUMBERS_18', 'MI_ICON_NUMBERS_19', + 'MI_ICON_NUMBERS_2', 'MI_ICON_NUMBERS_20', 'MI_ICON_NUMBERS_21', + 'MI_ICON_NUMBERS_22', 'MI_ICON_NUMBERS_23', 'MI_ICON_NUMBERS_24', + 'MI_ICON_NUMBERS_25', 'MI_ICON_NUMBERS_26', 'MI_ICON_NUMBERS_27', + 'MI_ICON_NUMBERS_28', 'MI_ICON_NUMBERS_29', 'MI_ICON_NUMBERS_3', + 'MI_ICON_NUMBERS_30', 'MI_ICON_NUMBERS_31', 'MI_ICON_NUMBERS_32', + 'MI_ICON_NUMBERS_4', 'MI_ICON_NUMBERS_5', 'MI_ICON_NUMBERS_6', + 'MI_ICON_NUMBERS_7', 'MI_ICON_NUMBERS_8', 'MI_ICON_NUMBERS_9', + 'MI_ICON_ODBC_DISCONNECT', 'MI_ICON_ODBC_MAPPABLE', + 'MI_ICON_ODBC_OPEN', 'MI_ICON_ODBC_REFRESH', 'MI_ICON_ODBC_SYMBOL', + 'MI_ICON_ODBC_UNLINK', 'MI_ICON_OPEN_FILE', 'MI_ICON_OPEN_WOR', + 'MI_ICON_OPENWFS', 'MI_ICON_OPENWMS', 'MI_ICON_PASTE', + 'MI_ICON_POLYGON', 'MI_ICON_POLYLINE', 'MI_ICON_PRINT', + 'MI_ICON_REALESTATE_1', 'MI_ICON_REALESTATE_10', + 'MI_ICON_REALESTATE_11', 'MI_ICON_REALESTATE_12', + 'MI_ICON_REALESTATE_13', 'MI_ICON_REALESTATE_14', + 'MI_ICON_REALESTATE_15', 'MI_ICON_REALESTATE_16', + 'MI_ICON_REALESTATE_17', 'MI_ICON_REALESTATE_18', + 'MI_ICON_REALESTATE_19', 'MI_ICON_REALESTATE_2', + 'MI_ICON_REALESTATE_20', 'MI_ICON_REALESTATE_21', + 'MI_ICON_REALESTATE_22', 'MI_ICON_REALESTATE_23', + 'MI_ICON_REALESTATE_3', 'MI_ICON_REALESTATE_4', + 'MI_ICON_REALESTATE_5', 'MI_ICON_REALESTATE_6', + 'MI_ICON_REALESTATE_7', 'MI_ICON_REALESTATE_8', + 'MI_ICON_REALESTATE_9', 'MI_ICON_RECT', 'MI_ICON_REGION_STYLE', + 'MI_ICON_RESHAPE', 'MI_ICON_ROUND_RECT', 'MI_ICON_RULER', + 'MI_ICON_RUN', 'MI_ICON_SAVE_FILE', 'MI_ICON_SAVE_WIN', + 'MI_ICON_SAVE_WOR', 'MI_ICON_SEARCH_BDY', 'MI_ICON_SEARCH_POLYGON', + 'MI_ICON_SEARCH_RADIUS', 'MI_ICON_SEARCH_RECT', 'MI_ICON_SIGNS_1', + 'MI_ICON_SIGNS_10', 'MI_ICON_SIGNS_11', 'MI_ICON_SIGNS_12', + 'MI_ICON_SIGNS_13', 'MI_ICON_SIGNS_14', 'MI_ICON_SIGNS_15', + 'MI_ICON_SIGNS_16', 'MI_ICON_SIGNS_17', 'MI_ICON_SIGNS_18', + 'MI_ICON_SIGNS_19', 'MI_ICON_SIGNS_2', 'MI_ICON_SIGNS_3', + 'MI_ICON_SIGNS_4', 'MI_ICON_SIGNS_5', 'MI_ICON_SIGNS_6', + 'MI_ICON_SIGNS_7', 'MI_ICON_SIGNS_8', 'MI_ICON_SIGNS_9', + 'MI_ICON_STATISTICS', 'MI_ICON_SYMBOL', 'MI_ICON_SYMBOL_STYLE', + 'MI_ICON_TEXT', 'MI_ICON_TEXT_STYLE', 'MI_ICON_TRANSPORT_1', + 'MI_ICON_TRANSPORT_10', 'MI_ICON_TRANSPORT_11', + 'MI_ICON_TRANSPORT_12', 'MI_ICON_TRANSPORT_13', + 'MI_ICON_TRANSPORT_14', 'MI_ICON_TRANSPORT_15', + 'MI_ICON_TRANSPORT_16', 'MI_ICON_TRANSPORT_17', + 'MI_ICON_TRANSPORT_18', 'MI_ICON_TRANSPORT_19', + 'MI_ICON_TRANSPORT_2', 'MI_ICON_TRANSPORT_20', + 'MI_ICON_TRANSPORT_21', 'MI_ICON_TRANSPORT_22', + 'MI_ICON_TRANSPORT_23', 'MI_ICON_TRANSPORT_24', + 'MI_ICON_TRANSPORT_25', 'MI_ICON_TRANSPORT_26', + 'MI_ICON_TRANSPORT_27', 'MI_ICON_TRANSPORT_3', + 'MI_ICON_TRANSPORT_4', 'MI_ICON_TRANSPORT_5', + 'MI_ICON_TRANSPORT_6', 'MI_ICON_TRANSPORT_7', + 'MI_ICON_TRANSPORT_8', 'MI_ICON_TRANSPORT_9', 'MI_ICON_UNDO', + 'MI_ICON_UNSELECT_ALL', 'MI_ICON_WINDOW_FRAME', 'MI_ICON_WRENCH', + 'MI_ICON_ZOOM_IN', 'MI_ICON_ZOOM_OUT', 'MI_ICON_ZOOM_QUESTION', + 'MI_ICONS_MAPS_1', 'MI_ICONS_MAPS_10', 'MI_ICONS_MAPS_11', + 'MI_ICONS_MAPS_12', 'MI_ICONS_MAPS_13', 'MI_ICONS_MAPS_14', + 'MI_ICONS_MAPS_15', 'MI_ICONS_MAPS_2', 'MI_ICONS_MAPS_3', + 'MI_ICONS_MAPS_4', 'MI_ICONS_MAPS_5', 'MI_ICONS_MAPS_6', + 'MI_ICONS_MAPS_7', 'MI_ICONS_MAPS_8', 'MI_ICONS_MAPS_9', + 'MIPLATFORM_HP', 'MIPLATFORM_MAC68K', 'MIPLATFORM_POWERMAC', + 'MIPLATFORM_SPECIAL', 'MIPLATFORM_SUN', 'MIPLATFORM_WIN16', + 'MIPLATFORM_WIN32', 'MODE_APPEND', 'MODE_BINARY', 'MODE_INPUT', + 'MODE_OUTPUT', 'MODE_RANDOM', 'OBJ_ARC', 'OBJ_ELLIPSE', + 'OBJ_FRAME', 'OBJ_GEO_ARCBEGANGLE', 'OBJ_GEO_ARCENDANGLE', + 'OBJ_GEO_CENTROID', 'OBJ_GEO_LINEBEGX', 'OBJ_GEO_LINEBEGY', + 'OBJ_GEO_LINEENDX', 'OBJ_GEO_LINEENDY', 'OBJ_GEO_MAXX', + 'OBJ_GEO_MAXY', 'OBJ_GEO_MINX', 'OBJ_GEO_MINY', 'OBJ_GEO_POINTM', + 'OBJ_GEO_POINTX', 'OBJ_GEO_POINTY', 'OBJ_GEO_POINTZ', + 'OBJ_GEO_ROUNDRADIUS', 'OBJ_GEO_TEXTANGLE', 'OBJ_GEO_TEXTLINEX', + 'OBJ_GEO_TEXTLINEY', 'OBJ_INFO_BRUSH', 'OBJ_INFO_FILLFRAME', + 'OBJ_INFO_FRAMETITLE', 'OBJ_INFO_FRAMEWIN', 'OBJ_INFO_HAS_M', + 'OBJ_INFO_HAS_Z', 'OBJ_INFO_MPOINT', 'OBJ_INFO_NONEMPTY', + 'OBJ_INFO_NPNTS', 'OBJ_INFO_NPOLYGONS', 'OBJ_INFO_PEN', + 'OBJ_INFO_PLINE', 'OBJ_INFO_REGION', 'OBJ_INFO_SMOOTH', + 'OBJ_INFO_SYMBOL', 'OBJ_INFO_TEXTARROW', 'OBJ_INFO_TEXTFONT', + 'OBJ_INFO_TEXTJUSTIFY', 'OBJ_INFO_TEXTSPACING', + 'OBJ_INFO_TEXTSTRING', 'OBJ_INFO_TYPE', 'OBJ_INFO_Z_UNIT', + 'OBJ_INFO_Z_UNIT_SET', 'OBJ_LINE', 'OBJ_PLINE', 'OBJ_POINT', + 'OBJ_RECT', 'OBJ_REGION', 'OBJ_ROUNDRECT', 'OBJ_TEXT', + 'OBJ_TYPE_ARC', 'OBJ_TYPE_COLLECTION', 'OBJ_TYPE_ELLIPSE', + 'OBJ_TYPE_FRAME', 'OBJ_TYPE_LINE', 'OBJ_TYPE_MPOINT', + 'OBJ_TYPE_PLINE', 'OBJ_TYPE_POINT', 'OBJ_TYPE_RECT', + 'OBJ_TYPE_REGION', 'OBJ_TYPE_ROUNDRECT', 'OBJ_TYPE_TEXT', + 'ORIENTATION_CUSTOM', 'ORIENTATION_LANDSCAPE', + 'ORIENTATION_PORTRAIT', 'PEN_COLOR', 'PEN_INDEX', + 'PEN_INTERLEAVED', 'PEN_PATTERN', 'PEN_WIDTH', 'PLATFORM_MAC', + 'PLATFORM_MOTIF', 'PLATFORM_SPECIAL', 'PLATFORM_WIN', + 'PLATFORM_X11', 'PLATFORM_XOL', 'PRISMMAP_INFO_BACKGROUND', + 'PRISMMAP_INFO_CAMERA_CLIP_FAR', 'PRISMMAP_INFO_CAMERA_CLIP_NEAR', + 'PRISMMAP_INFO_CAMERA_FOCAL_X', 'PRISMMAP_INFO_CAMERA_FOCAL_Y', + 'PRISMMAP_INFO_CAMERA_FOCAL_Z', 'PRISMMAP_INFO_CAMERA_VPN_1', + 'PRISMMAP_INFO_CAMERA_VPN_2', 'PRISMMAP_INFO_CAMERA_VPN_3', + 'PRISMMAP_INFO_CAMERA_VU_1', 'PRISMMAP_INFO_CAMERA_VU_2', + 'PRISMMAP_INFO_CAMERA_VU_3', 'PRISMMAP_INFO_CAMERA_X', + 'PRISMMAP_INFO_CAMERA_Y', 'PRISMMAP_INFO_CAMERA_Z', + 'PRISMMAP_INFO_INFOTIP_EXPR', 'PRISMMAP_INFO_LIGHT_COLOR', + 'PRISMMAP_INFO_LIGHT_X', 'PRISMMAP_INFO_LIGHT_Y', + 'PRISMMAP_INFO_LIGHT_Z', 'PRISMMAP_INFO_SCALE', 'RAD_2_DEG', + 'RASTER_CONTROL_POINT_X', 'RASTER_CONTROL_POINT_Y', + 'RASTER_TAB_INFO_ALPHA', 'RASTER_TAB_INFO_BITS_PER_PIXEL', + 'RASTER_TAB_INFO_BRIGHTNESS', 'RASTER_TAB_INFO_CONTRAST', + 'RASTER_TAB_INFO_DISPLAY_TRANSPARENT', 'RASTER_TAB_INFO_GREYSCALE', + 'RASTER_TAB_INFO_HEIGHT', 'RASTER_TAB_INFO_IMAGE_CLASS', + 'RASTER_TAB_INFO_IMAGE_NAME', 'RASTER_TAB_INFO_IMAGE_TYPE', + 'RASTER_TAB_INFO_NUM_CONTROL_POINTS', + 'RASTER_TAB_INFO_TRANSPARENT_COLOR', 'RASTER_TAB_INFO_WIDTH', + 'RED', 'REGION_INFO_IS_CLOCKWISE', 'SEARCH_INFO_ROW', + 'SEARCH_INFO_TABLE', 'SECONDS_PER_DAY', 'SEL_INFO_NROWS', + 'SEL_INFO_SELNAME', 'SEL_INFO_TABLENAME', + 'SESSION_INFO_AREA_UNITS', 'SESSION_INFO_COORDSYS_CLAUSE', + 'SESSION_INFO_DISTANCE_UNITS', 'SESSION_INFO_PAPER_UNITS', + 'SRV_COL_INFO_ALIAS', 'SRV_COL_INFO_NAME', + 'SRV_COL_INFO_PRECISION', 'SRV_COL_INFO_SCALE', + 'SRV_COL_INFO_STATUS', 'SRV_COL_INFO_TYPE', 'SRV_COL_INFO_VALUE', + 'SRV_COL_INFO_WIDTH', 'SRV_COL_TYPE_BIN_STRING', + 'SRV_COL_TYPE_CHAR', 'SRV_COL_TYPE_DATE', 'SRV_COL_TYPE_DECIMAL', + 'SRV_COL_TYPE_FIXED_LEN_STRING', 'SRV_COL_TYPE_FLOAT', + 'SRV_COL_TYPE_INTEGER', 'SRV_COL_TYPE_LOGICAL', + 'SRV_COL_TYPE_NONE', 'SRV_COL_TYPE_SMALLINT', + 'SRV_CONNECT_INFO_DB_NAME', 'SRV_CONNECT_INFO_DRIVER_NAME', + 'SRV_CONNECT_INFO_DS_NAME', 'SRV_CONNECT_INFO_QUOTE_CHAR', + 'SRV_CONNECT_INFO_SQL_USER_ID', 'SRV_DRV_DATA_SOURCE', + 'SRV_DRV_INFO_NAME', 'SRV_DRV_INFO_NAME_LIST', 'SRV_ERROR', + 'SRV_FETCH_FIRST', 'SRV_FETCH_LAST', 'SRV_FETCH_NEXT', + 'SRV_FETCH_PREV', 'SRV_INVALID_HANDLE', 'SRV_NEED_DATA', + 'SRV_NO_MORE_DATA', 'SRV_NULL_DATA', 'SRV_SUCCESS', + 'SRV_SUCCESS_WITH_INFO', 'SRV_TRUNCATED_DATA', + 'SRV_WM_HIST_NO_OVERWRITE', 'SRV_WM_HIST_NONE', + 'SRV_WM_HIST_OVERWRITE', 'STR_EQ', 'STR_GT', 'STR_LT', + 'STYLE_SAMPLE_SIZE_LARGE', 'STYLE_SAMPLE_SIZE_SMALL', + 'SWITCHING_INTO_MAPINFO', 'SWITCHING_OUT_OF_MAPINFO', + 'SYMBOL_ANGLE', 'SYMBOL_CODE', 'SYMBOL_COLOR', + 'SYMBOL_CUSTOM_NAME', 'SYMBOL_CUSTOM_STYLE', 'SYMBOL_FONT_NAME', + 'SYMBOL_FONT_STYLE', 'SYMBOL_KIND', 'SYMBOL_KIND_CUSTOM', + 'SYMBOL_KIND_FONT', 'SYMBOL_KIND_VECTOR', 'SYMBOL_POINTSIZE', + 'SYS_INFO_APPIDISPATCH', 'SYS_INFO_APPLICATIONWND', + 'SYS_INFO_APPVERSION', 'SYS_INFO_CHARSET', + 'SYS_INFO_COPYPROTECTED', 'SYS_INFO_DATE_FORMAT', + 'SYS_INFO_DDESTATUS', 'SYS_INFO_DIG_INSTALLED', + 'SYS_INFO_DIG_MODE', 'SYS_INFO_MAPINFOWND', + 'SYS_INFO_MDICLIENTWND', 'SYS_INFO_MIBUILD_NUMBER', + 'SYS_INFO_MIPLATFORM', 'SYS_INFO_MIVERSION', + 'SYS_INFO_NUMBER_FORMAT', 'SYS_INFO_PLATFORM', + 'SYS_INFO_PRODUCTLEVEL', 'SYS_INFO_RUNTIME', + 'TAB_GEO_CONTROL_POINT_X', 'TAB_GEO_CONTROL_POINT_Y', + 'TAB_INFO_BROWSER_LIST', 'TAB_INFO_COORDSYS_CLAUSE', + 'TAB_INFO_COORDSYS_CLAUSE_WITHOUT_BOUNDS', + 'TAB_INFO_COORDSYS_MAXX', 'TAB_INFO_COORDSYS_MAXY', + 'TAB_INFO_COORDSYS_MINX', 'TAB_INFO_COORDSYS_MINY', + 'TAB_INFO_COORDSYS_NAME', 'TAB_INFO_EDITED', 'TAB_INFO_FASTEDIT', + 'TAB_INFO_MAPPABLE', 'TAB_INFO_MAPPABLE_TABLE', 'TAB_INFO_MAXX', + 'TAB_INFO_MAXY', 'TAB_INFO_MINX', 'TAB_INFO_MINY', 'TAB_INFO_NAME', + 'TAB_INFO_NCOLS', 'TAB_INFO_NREFS', 'TAB_INFO_NROWS', + 'TAB_INFO_NUM', 'TAB_INFO_READONLY', 'TAB_INFO_SEAMLESS', + 'TAB_INFO_SUPPORT_MZ', 'TAB_INFO_TABFILE', 'TAB_INFO_TEMP', + 'TAB_INFO_THEME_METADATA', 'TAB_INFO_TYPE', 'TAB_INFO_UNDO', + 'TAB_INFO_USERBROWSE', 'TAB_INFO_USERCLOSE', + 'TAB_INFO_USERDISPLAYMAP', 'TAB_INFO_USEREDITABLE', + 'TAB_INFO_USERMAP', 'TAB_INFO_USERREMOVEMAP', 'TAB_INFO_Z_UNIT', + 'TAB_INFO_Z_UNIT_SET', 'TAB_TYPE_BASE', 'TAB_TYPE_FME', + 'TAB_TYPE_IMAGE', 'TAB_TYPE_LINKED', 'TAB_TYPE_RESULT', + 'TAB_TYPE_VIEW', 'TAB_TYPE_WFS', 'TAB_TYPE_WMS', 'TRUE', 'WHITE', + 'WIN_3DMAP', 'WIN_BROWSER', 'WIN_BUTTONPAD', 'WIN_CART_LEGEND', + 'WIN_GRAPH', 'WIN_HELP', 'WIN_INFO', 'WIN_INFO_AUTOSCROLL', + 'WIN_INFO_CLONEWINDOW', 'WIN_INFO_ENHANCED_RENDERING', + 'WIN_INFO_EXPORT_ANTIALIASING', 'WIN_INFO_EXPORT_BORDER', + 'WIN_INFO_EXPORT_DITHER', 'WIN_INFO_EXPORT_FILTER', + 'WIN_INFO_EXPORT_MASKSIZE', 'WIN_INFO_EXPORT_THRESHOLD', + 'WIN_INFO_EXPORT_TRANSPRASTER', 'WIN_INFO_EXPORT_TRANSPVECTOR', + 'WIN_INFO_EXPORT_TRUECOLOR', 'WIN_INFO_HEIGHT', + 'WIN_INFO_LEGENDS_MAP', 'WIN_INFO_NAME', 'WIN_INFO_OPEN', + 'WIN_INFO_PRINTER_BORDER', 'WIN_INFO_PRINTER_BOTTOMMARGIN', + 'WIN_INFO_PRINTER_COPIES', 'WIN_INFO_PRINTER_DITHER', + 'WIN_INFO_PRINTER_LEFTMARGIN', 'WIN_INFO_PRINTER_METHOD', + 'WIN_INFO_PRINTER_NAME', 'WIN_INFO_PRINTER_ORIENT', + 'WIN_INFO_PRINTER_PAPERSIZE', 'WIN_INFO_PRINTER_RIGHTMARGIN', + 'WIN_INFO_PRINTER_SCALE_PATTERNS', 'WIN_INFO_PRINTER_TOPMARGIN', + 'WIN_INFO_PRINTER_TRANSPRASTER', 'WIN_INFO_PRINTER_TRANSPVECTOR', + 'WIN_INFO_PRINTER_TRUECOLOR', 'WIN_INFO_SMARTPAN', + 'WIN_INFO_SMOOTH_IMAGE', 'WIN_INFO_SMOOTH_TEXT', + 'WIN_INFO_SMOOTH_VECTOR', 'WIN_INFO_SNAPMODE', + 'WIN_INFO_SNAPTHRESHOLD', 'WIN_INFO_STATE', + 'WIN_INFO_SYSMENUCLOSE', 'WIN_INFO_TABLE', 'WIN_INFO_TOPMOST', + 'WIN_INFO_TYPE', 'WIN_INFO_WIDTH', 'WIN_INFO_WINDOWID', + 'WIN_INFO_WND', 'WIN_INFO_WORKSPACE', 'WIN_INFO_X', 'WIN_INFO_Y', + 'WIN_LAYOUT', 'WIN_LEGEND', 'WIN_MAPBASIC', 'WIN_MAPINFO', + 'WIN_MAPPER', 'WIN_MESSAGE', 'WIN_PENPICKER', + 'WIN_PRINTER_LANDSCAPE', 'WIN_PRINTER_PORTRAIT', 'WIN_RULER', + 'WIN_STATE_MAXIMIZED', 'WIN_STATE_MINIMIZED', 'WIN_STATE_NORMAL', + 'WIN_STATISTICS', 'WIN_STYLE_CHILD', 'WIN_STYLE_POPUP', + 'WIN_STYLE_POPUP_FULLCAPTION', 'WIN_STYLE_STANDARD', + 'WIN_SYMBOLPICKER', 'WIN_TOOLBAR', 'WIN_TOOLPICKER', 'YELLOW' + ), + 5 => array( + 'Abbrs', 'Above', 'Access', 'Active', 'Address', 'Advanced', + 'Affine', 'Align', 'Alpha', 'alpha_value', 'Always', 'Angle', + 'Animate', 'Antialiasing', 'Append', 'Apply', 'ApplyUpdates', + 'Arrow', 'Ascending', 'ASCII', 'At', 'AttributeData', 'Auto', + 'Autoflip', 'Autokey', 'Automatic', 'Autoscroll', 'Axis', + 'Background', 'Banding', 'Batch', 'Behind', 'Below', 'Bend', + 'Binary', 'Blocks', 'Border', 'BorderPen', 'Bottom', 'Bounds', + 'ByteOrder', 'ByVal', 'Calling', 'Camera', 'Candidates', + 'Cartesian', 'Cell', 'Center', 'Change', 'Char', 'Circle', + 'Clipping', 'CloseMatchesOnly', 'ClosestAddr', 'Color', 'Columns', + 'Contents', 'ControlPoints', 'Copies', 'Copyright', 'Counter', + 'Country', 'CountrySecondarySubdivision', 'CountrySubdivision', + 'Cross', 'CubicConvolution', 'Cull', 'Cursor', 'Custom', 'Data', + 'DBF', 'DDE', 'Decimal', 'DecimalPlaces', 'DefaultAmbientSpeed', + 'DefaultPropagationFactor', 'DeformatNumber', 'Delimiter', + 'Density', 'DenyWrite', 'Descending', 'Destroy', 'Device', + 'Dictionary', 'DInfo', 'Disable', 'DiscardUpdates', 'Display', + 'Dither', 'DrawMode', 'DropKey', 'Droplines', 'Duplicates', + 'Dynamic', 'Earth', 'East', 'EditLayerPopup', 'Elevation', 'Else', + 'ElseIf', 'Emf', 'Enable', 'Envinsa', 'ErrorDiffusion', 'Extents', + 'Fallback', 'FastEdit', 'FillFrame', 'Filter', 'First', 'Fit', + 'Fixed', 'FocalPoint', 'Footnote', 'Force', 'FromMapCatalog', + 'Front', 'Gap', 'Geographic', 'Geography', 'Graduated', 'Graphic', + 'Gutter', 'Half', 'Halftone', 'Handles', 'Height', 'Help', + 'HelpMsg', 'Hide', 'Hierarchical', 'HIGHLOW', 'History', 'Icon', + 'ID', 'Ignore', 'Image', 'Inflect', 'Inset', 'Inside', + 'Interactive', 'Internal', 'Interpolate', 'IntersectingStreet', + 'Justify', 'Key', 'Label', 'Labels', 'Landscape', 'Large', 'Last', + 'Layer', 'Left', 'Lib', 'Light', 'LinePen', 'Lines', 'Linestyle', + 'Longitude', 'LOWHIGH', 'Major', 'MajorPolygonOnly', + 'MajorRoadsOnly', 'MapBounds', 'MapMarker', 'MapString', 'Margins', + 'MarkMultiple', 'MaskSize', 'Match', 'MaxOffRoadDistance', + 'Message', 'MICODE', 'Minor', 'MixedCase', 'Mode', 'ModifierKeys', + 'Modify', 'Multiple', 'MultiPolygonRgns', 'Municipality', + 'MunicipalitySubdivision', 'Name', 'NATIVE', 'NearestNeighbor', + 'NoCollision', 'Node', 'Nodes', 'NoIndex', 'None', 'Nonearth', + 'NoRefresh', 'Normalized', 'North', 'Number', 'ObjectType', 'ODBC', + 'Off', 'OK', 'OLE', 'On', 'Options', 'Orientation', 'OtherBdy', + 'Output', 'Outside', 'Overlapped', 'Overwrite', 'Pagebreaks', + 'Pan', 'Papersize', 'Parent', 'PassThrough', 'Password', + 'Patterns', 'Per', 'Percent', 'Percentage', 'Permanent', + 'PersistentCache', 'Pie', 'Pitch', 'Placename', 'PointsOnly', + 'PolyObj', 'Portrait', 'Position', 'PostalCode', 'Prefer', + 'Preferences', 'Prev', 'Printer', 'Projection', 'PushButton', + 'Quantile', 'Query', 'Random', 'Range', 'Raster', 'Read', + 'ReadOnly', 'Rec', 'Redraw', 'Refine', 'Regionstyle', 'RemoveData', + 'Replace', 'Reprojection', 'Resampling', 'Restore', 'ResultCode', + 'ReturnHoles', 'Right', 'Roll', 'ROP', 'Rotated', 'Row', 'Ruler', + 'Scale', 'ScrollBars', 'Seamless', 'SecondaryPostalCode', + 'SelfInt', 'Separator', 'Series', 'Service', 'SetKey', + 'SetTraverse', 'Shades', 'Show', 'Simple', 'SimplificationFactor', + 'Size', 'Small', 'Smart', 'Smooth', 'South', 'Spacing', + 'SPATIALWARE', 'Spherical', 'Square', 'Stacked', 'Step', 'Store', + 'Street', 'StreetName', 'StreetNumber', 'StyleType', 'Subtitle', + 'SysMenuClose', 'Thin', 'Tick', 'Title', 'TitleAxisY', + 'TitleGroup', 'Titles', 'TitleSeries', 'ToggleButton', 'Tolerance', + 'ToolbarPosition', 'ToolButton', 'Toolkit', 'Top', 'Translucency', + 'translucency_percent', 'Transparency', 'Transparent', 'Traverse', + 'TrueColor', 'Uncheck', 'Undo', 'Union', 'Unit', 'Until', 'URL', + 'Use', 'User', 'UserBrowse', 'UserClose', 'UserDisplayMap', + 'UserEdit', 'UserMap', 'UserRemoveMap', 'Value', 'Variable', + 'Vary', 'Vector', 'Versioned', 'View', 'ViewDisplayPopup', + 'VisibleOnly', 'VMDefault', 'VMGrid', 'VMRaster', 'Voronoi', + 'Warnings', 'Wedge', 'West', 'Width', 'With', 'XY', 'XYINDEX', + 'Yaw', 'Zoom' + ) + ), + 'SYMBOLS' => array( + //Numeric/String Operators + Comparison Operators + '(', ')', '[', ']', '+', '-', '*', '/', '\\', '^', '&', + '=', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', //Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL + 2 => 'color: #2391af;', //Special Procedures + 3 => 'color: #2391af;', //Functions + 4 => 'color: #c635cb;', //Constants + 5 => 'color: #0000ff;' //Extended keywords (case sensitive) + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 'MULTI' => 'color: #008000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #a31515;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'ESCAPE_CHAR' => array( + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #12198b;', //Table Attributes + 1 => 'color: #2391af;' //Data Types + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Table Attribute + 0 => "[\\.]{1}[a-zA-Z0-9_]+", + //Data Type + 1 => "(?xi) \\s+ as \\s+ (Alias|Brush|Date|Float|Font|Integer|Logical|Object|Pen|SmallInt|String|Symbol)" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php index f7b649573..1f9c12b78 100644 --- a/inc/geshi/matlab.php +++ b/inc/geshi/matlab.php @@ -4,7 +4,7 @@ * ----------- * Author: Florian Knorn (floz@gmx.de) * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/02/09 * * Matlab M-file language file for GeSHi. @@ -215,7 +215,7 @@ $language_data = array ( ), 'REGEXPS' => array( //Complex numbers - 0 => '(?<![\\w])[+-]?[\\d]*([\\d]\\.|\\.[\\d])?[\\d]*[ij](?![\\w])' + 0 => '(?<![\\w\\/])[+-]?[\\d]*([\\d]\\.|\\.[\\d])?[\\d]*[ij](?![\\w]|\<DOT>html)' ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -224,4 +224,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php index bc773458c..1b7df83aa 100644 --- a/inc/geshi/mirc.php +++ b/inc/geshi/mirc.php @@ -4,7 +4,7 @@ * ----- * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com) * Copyright: (c) 2006 Alberto de Areba - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/05/29 * * mIRC Scripting language file for GeSHi. diff --git a/inc/geshi/mmix.php b/inc/geshi/mmix.php new file mode 100644 index 000000000..3e90dce29 --- /dev/null +++ b/inc/geshi/mmix.php @@ -0,0 +1,173 @@ +<?php +/************************************************************************************* + * mmix.php + * ------- + * Author: Benny Baumann (BenBE@geshi.org) + * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2009/10/16 + * + * MMIX Assembler language file for GeSHi. + * + * This is an implementation of the MMIX language as designed by Donald E. Knuth + * + * CHANGES + * ------- + * 2004/08/05 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/10/16) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'MMIX', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + //Line address prefix suppression + 'COMMENT_REGEXP' => array(2 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /*CPU*/ + 1 => array( + '16ADDU','2ADDU','4ADDU','8ADDU','ADD','ADDU','AND','ANDN','ANDNH', + 'ANDNL','ANDNMH','ANDNML','BDIF','BEV','BN','BNN','BNP','BNZ','BOD', + 'BP','BZ','CMP','CMPU','CSEV','CSN','CSNN','CSNP','CSNZ','CSOD', + 'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV', + 'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM', + 'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH', + 'INCML','JMP','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT','LDTU', + 'LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR','NAND', + 'NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH','ORML', + 'ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ','POP', + 'PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD', + 'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU', + 'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT', + 'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD', + 'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN', + 'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ' + ), + /*registers*/ + 3 => array( + 'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM', + 'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ', + 'rBB','rTT','rWW','rXX','rYY','rZZ' + ), + /*Directive*/ + 4 => array( + ), + /*Operands*/ + 5 => array( + ) + ), + 'SYMBOLS' => array( + '[', ']', '(', ')', + '+', '-', '*', '/', '%', + '.', ',', ';', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => false, + 3 => true, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f; font-weight: bold;', + 2 => 'color: #0000ff; font-weight: bold;', + 3 => 'color: #00007f;', + 4 => 'color: #000000; font-weight: bold;', + 5 => 'color: #000000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000ff;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( +// 0 => 'color: #0000ff;', +// 1 => 'color: #0000ff;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'NUMBERS' => + GESHI_NUMBER_BIN_PREFIX_PERCENT | + GESHI_NUMBER_BIN_SUFFIX | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_HEX_SUFFIX | + GESHI_NUMBER_OCT_SUFFIX | + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_ZERO, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Hex numbers +// 0 => /* */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))", + //Binary numbers +// 1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])" + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/modula2.php b/inc/geshi/modula2.php new file mode 100644 index 000000000..042e7404a --- /dev/null +++ b/inc/geshi/modula2.php @@ -0,0 +1,136 @@ +<?php +/**************************************************************************** + * modula2.php + * ----------- + * Author: Benjamin Kowarsch (benjamin@modula2.net) + * Copyright: (c) 2009 Benjamin Kowarsch (benjamin@modula2.net) + * Release Version: 1.0.8.8 + * Date Started: 2009/11/05 + * + * Modula-2 language file for GeSHi. + * + * CHANGES + * ------- + * 2010/05/22 (1.0.8.8) + * - First Release + * + * TODO (updated 2010/05/22) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Modula-2', + 'COMMENT_MULTI' => array('(*' => '*)'), + 'COMMENT_SINGLE' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("''"), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( /* reserved words */ + 'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', + 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'EXPORT', 'FOR', + 'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD', + 'MODULE', 'NOT', 'OF', 'OR', 'POINTER', 'PROCEDURE', 'QUALIFIED', + 'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE', + 'UNTIL', 'VAR', 'WHILE', 'WITH' + ), + 2 => array( /* pervasive constants */ + 'NIL', 'FALSE', 'TRUE', + ), + 3 => array( /* pervasive types */ + 'BITSET', 'CAP', 'CHR', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT', + 'HALT', 'HIGH', 'INC', 'INCL', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD', + 'SIZE', 'TRUNC', 'VAL' + ), + 4 => array( /* pervasive functions and macros */ + 'ABS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER', + 'LONGCARD', 'LONGINT', 'LONGREAL', 'PROC', 'REAL' + ), + ), + 'SYMBOLS' => array( + ',', ':', '=', '+', '-', '*', '/', '#', '~' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + 'HARD' => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #0066ee;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?>
\ No newline at end of file diff --git a/inc/geshi/modula3.php b/inc/geshi/modula3.php index a1f04ca59..ad827a3e6 100644 --- a/inc/geshi/modula3.php +++ b/inc/geshi/modula3.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/01/21 * * Modula-3 language file for GeSHi. diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php index 53aa9e7a1..59247ff69 100644 --- a/inc/geshi/mpasm.php +++ b/inc/geshi/mpasm.php @@ -4,7 +4,7 @@ * --------- * Author: Bakalex (bakalex@gmail.com) * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/12/6 * * Microchip Assembler language file for GeSHi. diff --git a/inc/geshi/mxml.php b/inc/geshi/mxml.php index d34a92531..df4c9d50e 100644 --- a/inc/geshi/mxml.php +++ b/inc/geshi/mxml.php @@ -4,7 +4,7 @@ * ------- * Author: David Spurr * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/10/04 * * MXML language file for GeSHi. Based on the XML file by Nigel McNie diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php index f41092c16..ca171733f 100644 --- a/inc/geshi/mysql.php +++ b/inc/geshi/mysql.php @@ -4,7 +4,7 @@ * --------- * Author: Marjolein Katsma (marjolein.is.back@gmail.com) * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008-12-12 * * MySQL language file for GeSHi. @@ -391,35 +391,35 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 2 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 3 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 4 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 5 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 6 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 7 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 8 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 9 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 1 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 2 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 3 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 4 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 5 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 6 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 7 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 8 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 9 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', - 10 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', - 11 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', + 10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', + 11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', - 12 => 'http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html', - 13 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', - 14 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', - 15 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', - 16 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', - 17 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', - 18 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', - 19 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', - 20 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', - 21 => 'http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html', - 22 => 'http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html', - 23 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', - 24 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', - 25 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', - 26 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', - 27 => 'http://dev.mysql.com/doc/refman/5.1/en/analysing-spatial-information.html', + 12 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html', + 13 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', + 14 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', + 15 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', + 16 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', + 17 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', + 18 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', + 19 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', + 20 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', + 21 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html', + 22 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/group-by-functions-and-modifiers.html', + 23 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', + 24 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', + 25 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', + 26 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', + 27 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/analysing-spatial-information.html', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( @@ -472,4 +472,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/newlisp.php b/inc/geshi/newlisp.php new file mode 100644 index 000000000..027e86588 --- /dev/null +++ b/inc/geshi/newlisp.php @@ -0,0 +1,191 @@ +<?php +/************************************************************************************* + * newlisp.php + * ---------- + * Author: cormullion (cormullion@mac.com) Sept 2009 + * Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/) + * Release Version: 1.0.8.8 + * Date Started: 2009/09/30 + * + * newLISP language file for GeSHi. + * + * based on work by Lutz Mueller and Jeff Ober + * + * CHANGES + * ------- + * 2009/09/30 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/09/30) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'newlisp', + 'COMMENT_SINGLE' => array(1 => ';', 2 => '#'), + 'COMMENT_MULTI' => array('[text]' => '[/text]', '{' => '}'), // also used for strings + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO, + 'TAB_WIDTH' => 2, + 'KEYWORDS' => array( + 1 => array( + 'NaN?','abort','abs','acos','acosh','add','address','amb','and', + 'append','append-file','apply','args','array','array-list','array?', + 'asin','asinh','assoc','atan','atan2','atanh','atom?','base64-dec', + 'base64-enc','bayes-query','bayes-train','begin','beta','betai', + 'bind','binomial','bits','callback','case','catch','ceil', + 'change-dir','char','chop','clean','close','command-event','cond', + 'cons','constant','context','context?','copy','copy-file','cos', + 'cosh','count','cpymem','crc32','crit-chi2','crit-z','current-line', + 'curry','date','date-value','debug','dec','def-new','default', + 'define','define-macro','delete','delete-file','delete-url', + 'destroy','det','device','difference','directory','directory?', + 'div','do-until','do-while','doargs','dolist','dostring','dotimes', + 'dotree','dump','dup','empty?','encrypt','ends-with','env','erf', + 'error-event','estack','eval','eval-string','exec','exists','exit', + 'exp','expand','explode','factor','fft','file-info','file?', + 'filter','find','find-all','first','flat','float','float?','floor', + 'flt','for','for-all','fork','format','fv','gammai','gammaln','gcd', + 'get-char','get-float','get-int','get-long','get-string','get-url', + 'global','global?','if','if-not','ifft','import','inc','index', + 'inf?','int','integer','integer?','intersect','invert','irr','join', + 'lambda','lambda?','last','last-error','legal?','length','let', + 'letex','letn','list','list?','load','local','log','lookup', + 'lower-case','macro?','main-args','make-dir','map','mat','match', + 'max','member','min','mod','mul','multiply','name','net-accept', + 'net-close','net-connect','net-error','net-eval','net-interface', + 'net-listen','net-local','net-lookup','net-peek','net-peer', + 'net-ping','net-receive','net-receive-from','net-receive-udp', + 'net-select','net-send','net-send-to','net-send-udp','net-service', + 'net-sessions','new','nil','nil?','normal','not','now','nper','npv', + 'nth','null?','number?','open','or','pack','parse','parse-date', + 'peek','pipe','pmt','pop','pop-assoc','post-url','pow', + 'pretty-print','primitive?','print','println','prob-chi2','prob-z', + 'process','prompt-event','protected?','push','put-url','pv','quote', + 'quote?','rand','random','randomize','read-buffer','read-char', + 'read-expr','read-file','read-key','read-line','read-utf8', + 'real-path','receive','ref','ref-all','regex','regex-comp', + 'remove-dir','rename-file','replace','reset','rest','reverse', + 'rotate','round','save','search','seed','seek','select','semaphore', + 'send','sequence','series','set','set-locale','set-ref', + 'set-ref-all','setf','setq','sgn','share','signal','silent','sin', + 'sinh','sleep','slice','sort','source','spawn','sqrt','starts-with', + 'string','string?','sub','swap','sym','symbol?','symbols','sync', + 'sys-error','sys-info','tan','tanh','throw','throw-error','time', + 'time-of-day','timer','title-case','trace','trace-highlight', + 'transpose','trim','true','true?','unicode','unify','unique', + 'unless','unpack','until','upper-case','utf8','utf8len','uuid', + 'wait-pid','when','while','write-buffer','write-char','write-file', + 'write-line','xfer-event','xml-error','xml-parse','xml-type-tags', + 'zero?' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')','\'' + ), + 1 => array( + '!','!=','$','%','&','*','+','-','/',':', + '<','<<','<=','=','>','>=','>>','^','|' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000AA;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #00aa00; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009900;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #777700;' + ), + 'METHODS' => array( + 0 => 'color: #000099;' + ), + 'SYMBOLS' => array( + 0 => 'color: #AA0000;', + 1 => 'color: #0000AA;' + ), + 'REGEXPS' => array( + 0 => 'color: #00aa00;', + 1 => 'color: #00aa00;', + 2 => 'color: #00aa00;', + 3 => 'color: #00aa00;', + 4 => 'color: #00aa00;', + 5 => 'color: #AA0000;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://www.newlisp.org/downloads/newlisp_manual.html#{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(':'), + 'REGEXPS' => array( + // tags in newlispdoc + 0 => "\s+@\S*?\s+", + // dollar sign symbols + 1 => "[\\$]\w*", + // curly-braced string literals + 2 => "{[^{}]*?}", + // [text] multi-line strings + 3 => "(?s)\[text\].*\[\/text\](?-s)", + // [code] multi-line blocks + 4 => "(?s)\[code\].*\[\/code\](?-s)", + // variable references + 5 => "'[\w\-]+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'OOLANG' => array( + 'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<=[^\w\-])', + ) + ), + +); + +?>
\ No newline at end of file diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php index 63767b025..5631a8389 100644 --- a/inc/geshi/nsis.php +++ b/inc/geshi/nsis.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/) * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/12/03 * * Nullsoft Scriptable Install System language file for GeSHi. diff --git a/inc/geshi/oberon2.php b/inc/geshi/oberon2.php index 4e4223f4f..8339f3fb8 100644 --- a/inc/geshi/oberon2.php +++ b/inc/geshi/oberon2.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/02/10 * * Oberon-2 language file for GeSHi. diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php index ec8d18e72..5a5c5940f 100644 --- a/inc/geshi/objc.php +++ b/inc/geshi/objc.php @@ -5,7 +5,7 @@ * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Contributors: Quinn Taylor (quinntaylor@mac.com) * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Objective-C language file for GeSHi. diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php index f3d01a0a1..2e2a82fb2 100644 --- a/inc/geshi/ocaml-brief.php +++ b/inc/geshi/ocaml-brief.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php index 505149c31..46e6a22aa 100644 --- a/inc/geshi/ocaml.php +++ b/inc/geshi/ocaml.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. @@ -43,6 +43,7 @@ $language_data = array ( 'LANG_NAME' => 'OCaml', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array('(*' => '*)'), + 'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'), 'CASE_KEYWORDS' => 0, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => "", @@ -58,13 +59,17 @@ $language_data = array ( ), /* define names of main librarys, so we can link to it */ 2 => array( - 'Arg', 'Arith_status', 'Array', 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', - 'CamlinternalOO', 'Char', 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', - 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', 'Hashtbl', 'Int32', 'Int64', - 'Lazy', 'Lexing', 'List', 'ListLabels', 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', - 'Num', 'Obj', 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', 'Random', 'Scanf', - 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', - 'ThreadUnix', 'Tk' + 'Arg', 'Arith_status', 'Array', //'Array1', 'Array2', 'Array3', + 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', + 'CamlinternalLazy', 'CamlinternalMod', 'CamlinternalOO', 'Char', + 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', + 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', + 'Hashtbl', 'Int32', 'Int64', 'Lazy', 'Lexing', 'List', 'ListLabels', + 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', 'Num', 'Obj', + 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', + 'Random', 'Scanf', 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', + 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', 'ThreadUnix', + 'Tk', 'Unix', 'UnixLabels', 'Weak' ), /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */ 3 => array( @@ -93,7 +98,9 @@ $language_data = array ( ), /* here Pervasives Types */ 4 => array ( - 'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'format' + 'array','bool','char','exn','file_descr','format','fpclass', + 'in_channel','int','int32','int64','list','nativeint','open_flag', + 'out_channel','string','Sys_error','unit' ), /* finally Pervasives Exceptions */ 5 => array ( @@ -102,8 +109,9 @@ $language_data = array ( ), /* highlighting symbols is really important in OCaml */ 'SYMBOLS' => array( + '+.', '-.', '*.', '/.', '[<', '>]', ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', - '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" + '>', '<', '(', ')', '[', ']', '&', '|', '#', "'", ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -122,12 +130,13 @@ $language_data = array ( 5 => 'color: #06c; font-weight: bold;' /* nice blue */ ), 'COMMENTS' => array( - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ + 'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */ + 1 => 'color: #5d478b; font-style: italic;' /* light purple */ ), 'ESCAPE_CHAR' => array( ), 'BRACKETS' => array( - 0 => 'color: #6c6;' + 0 => 'color: #a52a2a;' ), 'STRINGS' => array( 0 => 'color: #3cb371;' /* nice green */ @@ -139,6 +148,8 @@ $language_data = array ( 1 => 'color: #060;' /* dark green */ ), 'REGEXPS' => array( + 1 => 'font-weight:bold; color:#339933;', + 2 => 'font-weight:bold; color:#993399;' ), 'SYMBOLS' => array( 0 => 'color: #a52a2a;' /* maroon */ @@ -158,11 +169,13 @@ $language_data = array ( /* link to Pervasives exceptions */ 5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}' ), - 'OOLANG' => true, + 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( 1 => '.' ), 'REGEXPS' => array( + 1 => '~\w+', + 2 => '`(?=(?-i:[a-z]))\w*', ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -171,4 +184,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php index b4f95512a..6f6e13fc2 100644 --- a/inc/geshi/oobas.php +++ b/inc/geshi/oobas.php @@ -4,7 +4,7 @@ * --------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * OpenOffice.org Basic language file for GeSHi. diff --git a/inc/geshi/oracle11.php b/inc/geshi/oracle11.php index e5417d7d0..f57c3f044 100644 --- a/inc/geshi/oracle11.php +++ b/inc/geshi/oracle11.php @@ -6,7 +6,7 @@ * Contributions: * - Updated for 11i by Simon Redhead * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Oracle 11i language file for GeSHi. diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php index d216db0a1..e470e0dd4 100644 --- a/inc/geshi/oracle8.php +++ b/inc/geshi/oracle8.php @@ -4,7 +4,7 @@ * ----------- * Author: Guy Wicks (Guy.Wicks@rbs.co.uk) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Oracle 8 language file for GeSHi. diff --git a/inc/geshi/oxygene.php b/inc/geshi/oxygene.php new file mode 100644 index 000000000..3af03bfc2 --- /dev/null +++ b/inc/geshi/oxygene.php @@ -0,0 +1,152 @@ +<?php +/************************************************************************************* + * oxygene.php + * ---------- + * Author: Carlo Kok (ck@remobjects.com), J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de) + * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2010/01/11 + * + * Delphi Prism (Oxygene) language file for GeSHi. + * Based on the original Delphi language file. + * + * CHANGES + * ------- + * 2010/01/11 (1.0.0) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Oxygene (Delphi Prism)', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'), + //Compiler directives + 'COMMENT_REGEXP' => array(2 => '/{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'and', 'begin', 'case', 'const', 'div', 'do', 'downto', 'else', + 'end', 'for', 'function', 'if', 'in', 'mod', 'not', 'of', 'or', + 'procedure', 'repeat', 'record', 'set', 'shl', 'shr', 'then', 'to', + 'type', 'until', 'uses', 'var','while', 'with', 'xor', 'exit', 'break', + 'class', 'constructor', 'inherited', 'private', 'public', 'protected', + 'property', 'As', 'Is', 'Unit', 'Continue', 'Try', 'Except', 'Forward', + 'Interface','Implementation', 'nil', 'out', 'loop', 'namespace', 'true', + 'false', 'new', 'ensure', 'require', 'on', 'event', 'delegate', 'method', + 'raise', 'assembly', 'module', 'using','locking', 'old', 'invariants', 'operator', + 'self', 'async', 'finalizer', 'where', 'yield', 'nullable', 'Future', + 'From', 'Finally', 'dynamic' + ), + 2 => array( + 'override', 'virtual', 'External', 'read', 'add', 'remove','final', 'abstract', + 'empty', 'global', 'locked', 'sealed', 'reintroduce', 'implements', 'each', + 'default', 'partial', 'finalize', 'enum', 'flags', 'result', 'readonly', 'unsafe', + 'pinned', 'matching', 'static', 'has', 'step', 'iterator', 'inline', 'nested', + 'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take', + 'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params', + 'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect', + 'volatile' + ), + 3 => array( + 'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote' + ), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, +// 4 => false, + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']'), + 1 => array('.', ',', ':', ';'), + 2 => array('@', '^'), + 3 => array('=', '+', '-', '*', '/') + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', +// 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #008000; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #ff0000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000066;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000ff;' + ), + 'METHODS' => array( + 1 => 'color: #000000;' + ), + 'REGEXPS' => array( + 0 => 'color: #9ac;', + 1 => 'color: #ff0000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;', + 1 => 'color: #000066;', + 2 => 'color: #000066;', + 3 => 'color: #000066;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', +// 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + //Hex numbers + 0 => '\$[0-9a-fA-F]+', + //Characters + 1 => '\#\$?[0-9]{1,3}' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2 +); + +?>
\ No newline at end of file diff --git a/inc/geshi/oz.php b/inc/geshi/oz.php new file mode 100644 index 000000000..cd594d4ca --- /dev/null +++ b/inc/geshi/oz.php @@ -0,0 +1,144 @@ +<?php +/************************************************************************************* + * oz.php + * -------- + * Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net) + * Copyright: (c) 2010 Wolfgang Meyer + * Release Version: 1.0.8.8 + * Date Started: 2010/01/03 + * + * Oz language file for GeSHi. + * + * CHANGES + * ------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'OZ', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"','\''), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => array(), + 'KEYWORDS' => array( + 1 => array( + 'declare','local','in','end','proc','fun','functor','require','prepare', + 'import','export','define','at','case','then','else','of','elseof', + 'elsecase','if','elseif','class','from','prop','attr','feat','meth', + 'self','true','false','unit','div','mod','andthen','orelse','cond','or', + 'dis','choice','not','thread','try','catch','finally','raise','lock', + 'skip','fail','for','do' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'SYMBOLS' => array( + '@', '!', '|', '<-', ':=', '<', '>', '=<', '>=', '<=', '#', '~', '.', + '*', '-', '+', '/', '<:', '>:', '=:', '=<:', '>=:', '\\=', '\\=:', ',', + '!!', '...', '==', '::', ':::' + ), + 'STYLES' => array( + 'REGEXPS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #00a030;', + 3 => 'color: #bc8f8f;', + 4 => 'color: #0000ff;', + 5 => 'color: #a020f0;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #bc8f8f;' + ), + 'KEYWORDS' => array( + 1 => 'color: #a020f0;' + ), + 'COMMENTS' => array( + 1 => 'color: #B22222;', + 'MULTI' => 'color: #B22222;' + ), + 'STRINGS' => array( + 0 => 'color: #bc8f8f;' + ), + 'SYMBOLS' => array( + 0 => 'color: #a020f0;' + ), + 'BRACKETS' => array(), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'SCRIPT' => array() + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'URLS' => array( + 1 => '' + ), + 'REGEXPS' => array( + // function and procedure definition + 1 => array( + GESHI_SEARCH => "(proc|fun)([^{}\n\)]*)(\\{)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)", + GESHI_REPLACE => '\4', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2\3', + GESHI_AFTER => '' + ), + // class definition + 2 => array( + GESHI_SEARCH => "(class)([^A-Z\$]*)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)", + GESHI_REPLACE => '\3\4', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2', + GESHI_AFTER => '' + ), + // single character + 3 => array( + GESHI_SEARCH => "&.", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + // method definition + 4 => array( + GESHI_SEARCH => "(meth)([^a-zA-Z]+)([a-zA-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9]*)", + GESHI_REPLACE => '\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2', + GESHI_AFTER => '' + ), + // highlight "[]" + // ([] is actually a keyword, but that causes problems in validation; putting it into symbols doesn't work.) + 5 => array( + GESHI_SEARCH => "\[\]", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php index 01a66bfa0..7ee5729a6 100644 --- a/inc/geshi/pascal.php +++ b/inc/geshi/pascal.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inamil.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/26 * * Pascal language file for GeSHi. diff --git a/inc/geshi/pcre.php b/inc/geshi/pcre.php new file mode 100644 index 000000000..a67cf2858 --- /dev/null +++ b/inc/geshi/pcre.php @@ -0,0 +1,188 @@ +<?php +/************************************************************************************* + * pcre.php + * -------- + * Author: Benny Baumann (BenBE@geshi.org) + * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2010/05/22 + * + * PCRE language file for GeSHi. + * + * NOTE: This language file handles plain PCRE expressions without delimiters. + * If you want to highlight PCRE with delimiters you should use the + * Perl language file instead. + * + * CHANGES + * ------- + * 2010/05/22 (1.0.8.8) + * - First Release + * + * TODO (updated 2010/05/22) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PCRE', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array( + ), + 'COMMENT_REGEXP' => array( + // Non-matching groups + 1 => "/(?<=\()\?(?::|(?=\())/", + + // Modifier groups + 2 => "/(?<=\()\?[cdegimopsuxUX\-]+(?::|(?=\)))/", + + // Look-Aheads + 3 => "/(?<=\()\?[!=]/", + + // Look-Behinds + 4 => "/(?<=\()\?<[!=]/", + + // Forward Matching + 5 => "/(?<=\()\?>/", + + // Recursive Matching + 6 => "/(?<=\()\?R(?=\))/", + + // Named Subpattern + 7 => "/(?<=\()\?(?:P?<\w+>|\d+(?=\))|P[=>]\w+(?=\)))/", + + // Back Reference + 8 => "/\\\\(?:[1-9]\d?|g\d+|g\{(?:-?\d+|\w+)\}|k<\w+>|k'\w+'|k\{\w+\})/", + + // Byte sequence: Octal + 9 => "/\\\\[0-7]{2,3}/", + + // Byte sequence: Hex + 10 => "/\\\\x[0-9a-fA-F]{2}/", + + // Byte sequence: Hex + 11 => "/\\\\u[0-9a-fA-F]{4}/", + + // Byte sequence: Hex + 12 => "/\\\\U[0-9a-fA-F]{8}/", + + // Byte sequence: Unicode + 13 => "/\\\\[pP]\{[^}\n]+\}/", + + // One-Char Escapes + 14 => "/\\\\[abdefnrstvwzABCDGSWXZ\\\\\\.\[\]\(\)\{\}\^\\\$\?\+\*]/", + + // Byte sequence: Control-X sequence + 15 => "/\\\\c./", + + // Quantifier + 16 => "/\{(?:\d+,?|\d*,\d+)\}/", + + // Comment Subpattern + 17 => "/(?<=\()\?#[^\)]*/", + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + ), + 'SYMBOLS' => array( + 0 => array('.'), + 1 => array('(', ')'), + 2 => array('[', ']', '|'), + 3 => array('^', '$'), + 4 => array('?', '+', '*'), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #993333; font-weight: bold;', + 2 => 'color: #cc3300; font-weight: bold;', + 3 => 'color: #cc0066; font-weight: bold;', + 4 => 'color: #cc0066; font-weight: bold;', + 5 => 'color: #cc6600; font-weight: bold;', + 6 => 'color: #cc00cc; font-weight: bold;', + 7 => 'color: #cc9900; font-weight: bold; font-style: italic;', + 8 => 'color: #cc9900; font-style: italic;', + 9 => 'color: #669933; font-style: italic;', + 10 => 'color: #339933; font-style: italic;', + 11 => 'color: #339966; font-style: italic;', + 12 => 'color: #339999; font-style: italic;', + 13 => 'color: #663399; font-style: italic;', + 14 => 'color: #999933; font-style: italic;', + 15 => 'color: #993399; font-style: italic;', + 16 => 'color: #333399; font-style: italic;', + 17 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #333399; font-weight: bold;', + 1 => 'color: #993333; font-weight: bold;', + 2 => 'color: #339933; font-weight: bold;', + 3 => 'color: #333399; font-weight: bold;', + 4 => 'color: #333399; font-style: italic;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/per.php b/inc/geshi/per.php index ea9c75f8e..b656c105e 100644 --- a/inc/geshi/per.php +++ b/inc/geshi/per.php @@ -4,7 +4,7 @@ * -------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/06/03 * * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php index 7c212515e..5d1c4320b 100644 --- a/inc/geshi/perl.php +++ b/inc/geshi/perl.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/20 * * Perl language file for GeSHi. diff --git a/inc/geshi/perl6.php b/inc/geshi/perl6.php new file mode 100644 index 000000000..9ea20fc78 --- /dev/null +++ b/inc/geshi/perl6.php @@ -0,0 +1,197 @@ +<?php +/************************************************************************************* + * perl6.php + * --------- + * Author: Kodi Arfer (kodiarfer {at} warpmail {period} net); forked from perl.php 1.0.8 by Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com) + * Copyright: (c) 2009 Kodi Arfer, (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2009/11/07 + * + * Perl 6 language file for GeSHi. + * + * CHANGES + * ------- + * 2009/12/25 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/11/07) + * ------------------------- + * * It's all pretty rough. Perl 6 is complicated; this'll never be more + * than reasonably accurate unless it's carefully written to match + * STD.pm. + * * It's largely incomplete. Lots of keywords are no doubt missing. + * * Recognize comments like #`( Hello! ). + * * Recognize qw-ing angle brackets. + * * ! should probably be in OBJECT_SPLITTERS too, but putting it there + * gives bizarre results. What to do?. + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Perl 6', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array('=begin' => '=end'), + 'COMMENT_REGEXP' => array( + //Regular expressions + 2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU", + //Regular expression match variables + 3 => '/\$\d+/', + //Heredoc + 4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU', + //Beastly hack to finish highlighting each POD block + 5 => '((?<==end) .+)' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), // An optional 2-element array defining the beginning and end of a hard-quoted string + 'HARDESCAPE' => array('\\\''), + // Things that must still be escaped inside a hard-quoted string + // If HARDQUOTE is defined, HARDESCAPE must be defined + // This will not work unless the first character of each element is either in the + // QUOTEMARKS array or is the ESCAPE_CHAR + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', + 'while', 'loop', 'repeat', 'my', 'xor', 'or', 'and', + 'unless', 'next', 'last', 'redo', 'not', 'our', 'let', + 'temp', 'state', 'enum', 'constant', 'continue', 'cmp', + 'ne', 'eq', 'lt', 'gt', 'le', 'ge', 'leg', 'div', 'X', + 'Z', 'x', 'xx', 'given', 'when', 'default', 'has', + 'returns', 'of', 'is', 'does', 'where', 'subset', 'but', + 'True', 'False', 'return', 'die', 'fail' + ), + 2 => array( + 'use', 'sub', 'multi', 'method', 'submethod', 'proto', + 'class', 'role', 'grammar', 'regex', 'token', 'rule', + 'new', 'BEGIN', 'END', 'CHECK', 'INIT', 'START', 'FIRST', + 'ENTER', 'LEAVE', 'KEEP', 'UNDO', 'NEXT', 'LAST', 'PRE', + 'POST', 'CATCH', 'CONTROL', 'BUILD' + ), + 3 => array( + 'all', 'any', 'cat', 'classify', 'defined', 'grep', 'first', + 'keys', 'kv', 'join', 'map', 'max', 'min', 'none', 'one', 'pairs', + 'print', 'printf', 'roundrobin', 'pick', 'reduce', 'reverse', 'say', + 'shape', 'sort', 'srand', 'undefine', 'uri', 'values', 'warn', 'zip', + + # Container + 'rotate', 'comb', 'end', 'elems', 'delete', + 'exists', 'pop', 'push', 'shift', 'splice', + 'unshift', 'invert', 'decode', + + # Numeric + 'succ', 'pred', 'abs', 'exp', 'log', + 'log10', 'rand', 'roots', 'cis', 'unpolar', 'i', 'floor', + 'ceiling', 'round', 'truncate', 'sign', 'sqrt', + 'polar', 're', 'im', 'I', 'atan2', 'nude', + 'denominator', 'numerator', + + # Str + 'p5chop', 'chop', 'p5chomp', 'chomp', 'lc', 'lcfirst', + 'uc', 'ucfirst', 'normalize', 'samecase', 'sameaccent', + 'capitalize', 'length', 'chars', 'graphs', 'codes', + 'bytes', 'encode', 'index', 'pack', 'quotemeta', 'rindex', + 'split', 'words', 'flip', 'sprintf', 'fmt', + 'substr', 'trim', 'unpack', 'match', 'subst', 'trans' + ) + ), + 'SYMBOLS' => array( + '<', '>', '=', + '!', '@', '~', '&', '|', '^', + '+','-', '*', '/', '%', + ',', ';', '?', '.', ':', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 3 => 'color: #0000ff;', + 4 => 'color: #cc0000; font-style: italic;', + 5 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + 'HARD' => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + //Variable + 0 => '(?:[$@%]|&)(?:(?:[\^:*?!~]|<)?[a-zA-Z_][a-zA-Z0-9_]*|(?=\.))' + # We treat the . twigil specially so the name can be highlighted as an + # object field (via OBJECT_SPLITTERS). + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/pf.php b/inc/geshi/pf.php new file mode 100644 index 000000000..d59a609d5 --- /dev/null +++ b/inc/geshi/pf.php @@ -0,0 +1,178 @@ +<?php +/************************************************************************************* + * pf.php + * -------- + * Author: David Berard (david@nfrance.com) + * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2009/10/16 + * Based on bash.php + * + * OpenBSD PACKET FILTER language file for GeSHi. + * + * CHANGES + * ------- + * 2009/10/16 (1.0.0) + * - First Release + * + * TODO + * ------------------------- + * * Support ALTQ + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'OpenBSD Packet Filter', + 'COMMENT_SINGLE' => array('#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => "/\\$\\{[^\\n\\}]*?\\}/i", + 2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU', + 3 => "/\\\\['\"]/siU" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("\'"), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + 1 => "#\\\\[nfrtv\\$\\\"\n]#i", + 2 => "#\\$[a-z_][a-z0-9_]*#i", + 3 => "/\\$\\{[^\\n\\}]*?\\}/i", + 4 => "/\\$\\([^\\n\\)]*?\\)/i", + 5 => "/`[^`]*`/" + ), + 'KEYWORDS' => array( + 1 => array( + 'pass' + ), + 2 => array( + 'block' + ), + 3 => array( + 'quick','keep','state','antispoof','table','persist','file','scrub', + 'set','skip','flags','on' + ), + 4 => array( + 'in','out','proto' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`','=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #009900; font-weight: bold;', + 2 => 'color: #990000; font-weight: bold;', + 3 => 'color: #7a0874;', + 4 => 'color: #336699;' + ), + 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', + 1 => 'color: #800000;', + 2 => 'color: #cc0000; font-style: italic;', + 3 => 'color: #000000; font-weight: bold;' + ), + 'ESCAPE_CHAR' => array( + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #007800;', + 3 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #780078;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #CC0000;', + 'HARD' => 'color: #CC0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff00cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #007800;', + 1 => 'color: #007800;', + 2 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #660033;', + 6 => 'color: #000099; font-weight: bold;', + 7 => 'color: #0000ff;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Variables (will be handled by comment_regexps) + 0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}", + //Variables without braces + 1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*", + //Variable assignment + 2 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)", + //Shorthand shell variables + 4 => "\\$[*#\$\\-\\?!]", + //Parameters of commands + 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)", + //IPs + 6 => "([0-9]{1,3}\.){3}[0-9]{1,3}", + //Tables + 7 => "(<(.*)>)" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])", + 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%\\/])" + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php index 2a5d78611..c28d985f4 100644 --- a/inc/geshi/php-brief.php +++ b/inc/geshi/php-brief.php @@ -4,7 +4,7 @@ * ------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/02 * * PHP (brief version) language file for GeSHi. @@ -185,7 +185,7 @@ $language_data = array ( 3 => array( '<script language="php">' => '</script>' ), - 4 => "/(?<start><\\?(?>php\b)?)(?:". + 4 => "/(?P<start><\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -194,9 +194,9 @@ $language_data = array ( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>". - ")*(?<end>\\?>|\Z)/sm", - 5 => "/(?<start><%)(?:". + "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>". + ")*(?P<end>\\?>|\Z)/sm", + 5 => "/(?P<start><%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -205,8 +205,8 @@ $language_data = array ( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>". - ")*(?<end>%>)/sm" + "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>". + ")*(?P<end>%>)/sm" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/php.php b/inc/geshi/php.php index b96c947ed..ec6981134 100644 --- a/inc/geshi/php.php +++ b/inc/geshi/php.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * PHP language file for GeSHi. @@ -90,14 +90,14 @@ $language_data = array( 'as','break','case','continue','default','do','else','elseif', 'endfor','endforeach','endif','endswitch','endwhile','for', 'foreach','if','include','include_once','require','require_once', - 'return','switch','while', + 'return','switch','throw','while', 'echo','print' ), 2 => array( '&new','</script>','<?php','<script language', 'class','const','declare','extends','function','global','interface', - 'namespace','new','private','public','self','var' + 'namespace','new','private','protected','public','self','use','var' ), 3 => array( 'abs','acos','acosh','addcslashes','addslashes','aggregate', @@ -1077,7 +1077,7 @@ $language_data = array( 3 => array( '<script language="php">' => '</script>' ), - 4 => "/(?<start><\\?(?>php\b)?)(?:". + 4 => "/(?P<start><\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -1086,9 +1086,9 @@ $language_data = array( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>". - ")*(?<end>\\?>|\Z)/sm", - 5 => "/(?<start><%)(?:". + "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>". + ")*(?P<end>\\?>|\Z)/sm", + 5 => "/(?P<start><%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -1097,8 +1097,8 @@ $language_data = array( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>". - ")*(?<end>%>)/sm", + "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>". + ")*(?P<end>%>)/sm", ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/pic16.php b/inc/geshi/pic16.php index f25183ffb..626a768b0 100644 --- a/inc/geshi/pic16.php +++ b/inc/geshi/pic16.php @@ -4,7 +4,7 @@ * ------- * Author: Phil Mattison (mattison@ohmikron.com) * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/07/30 * * PIC16 Assembler language file for GeSHi. diff --git a/inc/geshi/pike.php b/inc/geshi/pike.php new file mode 100644 index 000000000..2b860ccd6 --- /dev/null +++ b/inc/geshi/pike.php @@ -0,0 +1,103 @@ +<?php +/************************************************************************************* + * pike.php + * -------- + * Author: Rick E. (codeblock@eighthbit.net) + * Copyright: (c) 2009 Rick E. + * Release Version: 1.0.8.8 + * Date Started: 2009/12/10 + * + * Pike language file for GeSHi. + * + * CHANGES + * ------- + * 2009/12/25 (1.0.8.6) + * - First Release + * + * TODO (updated 2009/12/25) + * ------------------------- + * + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Pike', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'goto', 'break', 'continue', 'return', 'case', 'default', 'if', + 'else', 'switch', 'while', 'foreach', 'do', 'for', 'gauge', + 'destruct', 'lambda', 'inherit', 'import', 'typeof', 'catch', + 'inline', 'nomask', 'private', 'protected', 'public', 'static' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '!', '&', '|', '?', ';' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array(1 => ''), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> diff --git a/inc/geshi/pixelbender.php b/inc/geshi/pixelbender.php index b65e228a1..82c64ae52 100644 --- a/inc/geshi/pixelbender.php +++ b/inc/geshi/pixelbender.php @@ -4,7 +4,7 @@ * ---------------- * Author: Richard Olsson (r@richardolsson.se) * Copyright: (c) 2008 Richard Olsson (richardolsson.se) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/11/16 * * Pixel Bender 1.0 language file for GeSHi. diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php index 6534a1922..e0145362c 100644 --- a/inc/geshi/plsql.php +++ b/inc/geshi/plsql.php @@ -4,7 +4,7 @@ * ------- * Author: Victor Engmark <victor.engmark@gmail.com> * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/10/26 * * Oracle 9.2 PL/SQL language file for GeSHi. diff --git a/inc/geshi/postgresql.php b/inc/geshi/postgresql.php new file mode 100644 index 000000000..7f89fe2a4 --- /dev/null +++ b/inc/geshi/postgresql.php @@ -0,0 +1,288 @@ +<?php +/************************************************************************************* + * postgresql.php + * ----------- + * Author: Christophe Chauvet (christophe_at_kryskool_dot_org) + * Contributors: Leif Biberg Kristensen <leif_at_solumslekt_dot_org> 2010-05-03 + * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2007/07/20 + * + * PostgreSQL language file for GeSHi. + * + * CHANGES + * ------- + * 2007/07/20 (1.0.0) + * - First Release + * + * TODO (updated 2007/07/20) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PostgreSQL', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + //Put PostgreSQL reserved keywords here. I like mine uppercase. + 1 => array( + 'ABORT','ABSOLUTE','ACCESS','ACTION','ADD','ADMIN','AFTER', + 'AGGREGATE','ALL','ALSO','ALTER','ALWAYS','ANALYSE','ANALYZE','AND', + 'ANY','AS','ASC,','ASSERTION','ASSIGNMENT','ASYMMETRIC','AT', + 'AUTHORIZATION','BACKWARD','BEFORE','BEGIN','BETWEEN','BOTH','BY', + 'CACHE','CALLED','CASCADE','CASCADED','CASE','CAST','CATALOG', + 'CHAIN','CHARACTERISTICS','CHECK','CHECKPOINT','CLASS','CLOSE', + 'CLUSTER','COALESCE','COLLATE','COLUMN','COMMENT','COMMIT', + 'COMMITTED','CONCURRENTLY','CONFIGURATION','CONNECTION', + 'CONSTRAINT','CONSTRAINTS','CONTENT','CONTINUE','CONVERSION','COPY', + 'COST','CREATE','CREATEDB','CREATEROLE','CREATEUSER','CROSS','CSV', + 'CURRENT','CURRENT_CATALOG','CURRENT_DATE','CURRENT_ROLE', + 'CURRENT_SCHEMA','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER', + 'CURSOR','CYCLE','DATA','DATABASE','DAY','DEALLOCATE','DEC', + 'DECLARE','DEFAULT','DEFAULTS','DEFERRABLE','DEFERRED','DEFINER', + 'DELETE','DELIMITER','DELIMITERS','DESC','DICTIONARY','DISABLE', + 'DISCARD','DISTINCT','DO','DOCUMENT','DOMAIN','DOUBLE','DROP', + 'EACH','ELSE','ENABLE','ENCODING','ENCRYPTED','END','ESCAPE', + 'EXCEPT','EXCLUDING','EXCLUSIVE','EXECUTE','EXISTS','EXPLAIN', + 'EXTERNAL','EXTRACT','FALSE','FAMILY','FETCH','FIRST','FOLLOWING', + 'FOR','FORCE','FOREIGN','FORWARD','FREEZE','FROM','FULL','FUNCTION', + 'GLOBAL','GRANT','GRANTED','GREATEST','GROUP','HANDLER','HAVING', + 'HEADER','HOLD','HOUR','IDENTITY','IF','ILIKE','IMMEDIATE', + 'IMMUTABLE','IMPLICIT','IN','INCLUDING','INCREMENT','INDEX', + 'INDEXES','INHERIT','INHERITS','INITIALLY','INNER','INOUT','INPUT', + 'INSENSITIVE','INSERT','INSTEAD','INTERSECT','INTO','INVOKER','IS', + 'ISNULL','ISOLATION','JOIN','KEY','LANCOMPILER','LANGUAGE','LARGE', + 'LAST','LC_COLLATE','LC_CTYPE','LEADING','LEAST','LEFT','LEVEL', + 'LIKE','LIMIT','LISTEN','LOAD','LOCAL','LOCALTIME','LOCALTIMESTAMP', + 'LOCATION','LOCK','LOGIN','LOOP','MAPPING','MATCH','MAXVALUE', + 'MINUTE','MINVALUE','MODE','MONTH','MOVE','NAME','NAMES','NATIONAL', + 'NATURAL','NEW','NEXT','NO','NOCREATEDB','NOCREATEROLE', + 'NOCREATEUSER','NOINHERIT','NOLOGIN','NONE','NOSUPERUSER','NOT', + 'NOTHING','NOTIFY','NOTNULL','NOWAIT','NULL','NULLIF','NULLS', + 'NUMERIC','OBJECT','OF','OFF','OFFSET','OIDS','OLD','ON','ONLY', + 'OPERATOR','OPTION','OPTIONS','OR','ORDER','OUT','OUTER','OVER', + 'OVERLAPS','OVERLAY','OWNED','OWNER','PARSER','PARTIAL','PARTITION', + 'PASSWORD','PLACING','PLANS','POSITION','PRECEDING','PRECISION', + 'PREPARE','PREPARED','PRESERVE','PRIMARY','PRIOR','PRIVILEGES', + 'PROCEDURAL','PROCEDURE','QUOTE','RANGE','READ','REASSIGN', + 'RECHECK','RECURSIVE','REFERENCES','REINDEX','RELATIVE','RELEASE', + 'RENAME','REPEATABLE','REPLACE','REPLICA','RESET','RESTART', + 'RESTRICT','RETURN','RETURNING','RETURNS','REVOKE','RIGHT','ROLE', + 'ROLLBACK','ROW','ROWS','RULE','SAVEPOINT','SCHEMA','SCROLL', + 'SEARCH','SECOND', + 'SECURITY','SELECT','SEQUENCE','SERIALIZABLE','SERVER','SESSION', + 'SESSION_USER','SET','SETOF','SHARE','SHOW','SIMILAR','SIMPLE', + 'SOME','STABLE','STANDALONE','START','STATEMENT','STATISTICS', + 'STDIN','STDOUT','STORAGE','STRICT','STRIP','SUPERUSER', + 'SYMMETRIC','SYSID','SYSTEM','TABLE','TABLESPACE','TEMP','TEMPLATE', + 'TEMPORARY','THEN','TO','TRAILING','TRANSACTION','TREAT','TRIGGER', + 'TRUE','TRUNCATE','TRUSTED','TYPE','UNBOUNDED','UNCOMMITTED', + 'UNENCRYPTED','UNION','UNIQUE','UNKNOWN','UNLISTEN','UNTIL', + 'UPDATE','USER','USING','VACUUM','VALID','VALIDATOR','VALUE', + 'VALUES','VARIADIC','VERBOSE','VERSION','VIEW','VOLATILE','WHEN', + 'WHERE','WHILE','WHITESPACE','WINDOW','WITH','WITHOUT','WORK','WRAPPER', + 'WRITE','XMLATTRIBUTES','XMLCONCAT','XMLELEMENT','XMLFOREST', + 'XMLPARSE','XMLPI','XMLROOT','XMLSERIALIZE','YEAR','YES','ZONE' + ), + + //Put functions here + 3 => array( + // mathematical functions + 'ABS','CBRT','CEIL','CEILING','DEGREES','DIV','EXP','FLOOR','LN', + 'LOG','MOD','PI','POWER','RADIANS','RANDOM','ROUND','SETSEED', + 'SIGN','SQRT','TRUNC','WIDTH_BUCKET', + // trigonometric functions + 'ACOS','ASIN','ATAN','ATAN2','COS','COT','SIN','TAN', + // string functions + 'BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH','LOWER', + 'OCTET_LENGTH','POSITION','SUBSTRING','TRIM','UPPER', + // other string functions + 'ASCII','BTRIM','CHR','CONVERT','CONVERT_FROM','CONVERT_TO', + 'DECODE','ENCODE','INITCAP','LENGTH','LPAD','LTRIM','MD5', + 'PG_CLIENT_ENCODING','QUOTE_IDENT','QUOTE_LITERAL','QUOTE_NULLABLE', + 'REGEXP_MATCHES','REGEXP_REPLACE','REGEXP_SPLIT_TO_ARRAY', + 'REGEXP_SPLIT_TO_TABLE','REPEAT','RPAD','RTRIM','SPLIT_PART', + 'STRPOS','SUBSTR','TO_ASCII','TO_HEX','TRANSLATE', + // binary string functions + 'GET_BIT','GET_BYTE','SET_BIT','SET_BYTE', + // data type formatting functions + 'TO_CHAR','TO_DATE','TO_NUMBER','TO_TIMESTAMP', + // date/time functions + 'AGE','CLOCK_TIMESTAMP','DATE_PART','DATE_TRUNC','EXTRACT', + 'ISFINITE','JUSTIFY_DAYS','JUSTIFY_HOURS','JUSTIFY_INTERVAL','NOW', + 'STATEMENT_TIMESTAMP','TIMEOFDAY','TRANSACTION_TIMESTAMP', + // enum support functions + 'ENUM_FIRST','ENUM_LAST','ENUM_RANGE', + // geometric functions + 'AREA','CENTER','DIAMETER','HEIGHT','ISCLOSED','ISOPEN','NPOINTS', + 'PCLOSE','POPEN','RADIUS','WIDTH', + 'BOX','CIRCLE','LSEG','PATH','POINT','POLYGON', + // cidr and inet functions + 'ABBREV','BROADCAST','FAMILY','HOST','HOSTMASK','MASKLEN','NETMASK', + 'NETWORK','SET_MASKLEN', + // text search functions + 'TO_TSVECTOR','SETWEIGHT','STRIP','TO_TSQUERY','PLAINTO_TSQUERY', + 'NUMNODE','QUERYTREE','TS_RANK','TS_RANK_CD','TS_HEADLINE', + 'TS_REWRITE','GET_CURRENT_TS_CONFIG','TSVECTOR_UPDATE_TRIGGER', + 'TSVECTOR_UPDATE_TRIGGER_COLUMN', + 'TS_DEBUG','TS_LEXISE','TS_PARSE','TS_TOKEN_TYPE','TS_STAT', + // XML functions + 'XMLCOMMENT','XMLCONCAT','XMLELEMENT','XMLFOREST','XMLPI','XMLROOT', + 'XMLAGG','XPATH','TABLE_TO_XMLSCHEMA','QUERY_TO_XMLSCHEMA', + 'CURSOR_TO_XMLSCHEMA','TABLE_TO_XML_AND_XMLSCHEMA', + 'QUERY_TO_XML_AND_XMLSCHEMA','SCHEMA_TO_XML','SCHEMA_TO_XMLSCHEMA', + 'SCHEMA_TO_XML_AND_XMLSCHEMA','DATABASE_TO_XML', + 'DATABASE_TO_XMLSCHEMA','DATABASE_TO_XML_AND_XMLSCHEMA', + // sequence manipulating functions + 'CURRVAL','LASTVAL','NEXTVAL','SETVAL', + // conditional expressions + 'COALESCE','NULLIF','GREATEST','LEAST', + // array functions + 'ARRAY_APPEND','ARRAY_CAT','ARRAY_NDIMS','ARRAY_DIMS','ARRAY_FILL', + 'ARRAY_LENGTH','ARRAY_LOWER','ARRAY_PREPEND','ARRAY_TO_STRING', + 'ARRAY_UPPER','STRING_TO_ARRAY','UNNEST', + // aggregate functions + 'ARRAY_AGG','AVG','BIT_AND','BIT_OR','BOOL_AND','BOOL_OR','COUNT', + 'EVERY','MAX','MIN','STRING_AGG','SUM', + // statistic aggregate functions + 'CORR','COVAR_POP','COVAR_SAMP','REGR_AVGX','REGR_AVGY', + 'REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX', + 'REGR_SXY','REGR_SYY','STDDEV','STDDEV_POP','STDDEV_SAMP', + 'VARIANCE','VAR_POP','VAR_SAMP', + // window functions + 'ROW_NUMBER','RANK','DENSE_RANK','PERCENT_RANK','CUME_DIST','NTILE', + 'LAG','LEAD','FIRST_VALUE','LAST_VALUE','NTH_VALUE', + // set returning functions + 'GENERATE_SERIES','GENERATE_SUBSCRIPTS' + // system information functions not currently included + ), + + //Put your postgresql var + 4 => array( + 'client_encoding', + 'standard_conforming_strings' + ), + + //Put your data types here + 5 => array( + 'ARRAY','ABSTIME','BIGINT','BIGSERIAL','BINARY','BIT','BIT VARYING', + 'BOOLEAN','BOX','BYTEA','CHAR','CHARACTER','CHARACTER VARYING', + 'CIDR','CIRCLE','DATE','DECIMAL','DOUBLE PRECISION','ENUM','FLOAT', + 'INET','INT','INTEGER','INTERVAL','NCHAR','REAL','SMALLINT','TEXT', + 'TIME','TIMESTAMP','VARCHAR','XML', + ), + + // //Put your package names here + // 6 => array( + // ), + + ), + 'SYMBOLS' => array( + '(', ')', '=', '<', '>', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + // regular keywords + 1 => 'color: #000000; font-weight: bold; text-transform: uppercase;', + // inbuilt functions + 3 => 'color: #333399; font-weight: bold; text-transform: uppercase;', + // postgresql var(?) + 4 => 'color: #993333; font-weight: bold; text-transform: uppercase;', + // data types + 5 => 'color: #993333; font-weight: bold; text-transform: uppercase;', + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #ff0000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 3 => '', + 4 => 'http://paste.postgresql.fr/wiki/desc.php?def={FNAME}', + 5 => '', + ), + + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + + 3 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + + 4 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + + 5 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + ) + ) + +); + +?>
\ No newline at end of file diff --git a/inc/geshi/povray.php b/inc/geshi/povray.php index af6c443da..c987a013e 100644 --- a/inc/geshi/povray.php +++ b/inc/geshi/povray.php @@ -4,7 +4,7 @@ * -------- * Author: Carl Fürstenberg (azatoth@gmail.com) * Copyright: © 2007 Carl Fürstenberg - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/07/11 * * Povray language file for GeSHi. diff --git a/inc/geshi/powerbuilder.php b/inc/geshi/powerbuilder.php new file mode 100644 index 000000000..ef86c242c --- /dev/null +++ b/inc/geshi/powerbuilder.php @@ -0,0 +1,418 @@ +<?php +/************************************************************************************* + * powerbuilder.php + * ------ + * Author: Doug Porter (powerbuilder.geshi@gmail.com) + * Copyright: (c) 2009 Doug Porter + * Release Version: 1.0.8.8 + * Date Started: 2009/07/13 + * + * PowerBuilder (PowerScript) language file for GeSHi. + * + * Based on the TextPad Syntax file for PowerBuilder + * built by Rafi Avital + * + * CHANGES + * ------- + * 2009/07/13 (1.0.0) + * - First Release + * + * TODO (updated 2009/07/13) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PowerBuilder', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '~', + 'KEYWORDS' => array( + 1 => array( + 'alias', 'and', 'autoinstantiate', 'call', + 'case', 'catch', 'choose', 'close', 'commit', 'connect', + 'constant', 'continue', 'create', 'cursor', 'declare', + 'delete', 'describe', 'descriptor', 'destroy', 'disconnect', + 'do', 'dynamic', 'else', 'elseif', 'end', 'enumerated', + 'event', 'execute', 'exit', 'external', 'false', 'fetch', + 'first', 'for', 'forward', 'from', 'function', 'global', + 'goto', 'halt', 'if', 'immediate', 'indirect', 'insert', + 'into', 'intrinsic', 'is', 'last', 'library', 'loop', 'next', + 'not', 'of', 'on', 'open', 'or', 'parent', 'post', 'prepare', + 'prior', 'private', 'privateread', 'privatewrite', 'procedure', + 'protected', 'protectedread', 'protectedwrite', 'prototypes', + 'public', 'readonly', 'ref', 'return', 'rollback', 'rpcfunc', + 'select', 'selectblob', 'shared', 'static', 'step', 'subroutine', + 'super', 'system', 'systemread', 'systemwrite', 'then', 'this', + 'to', 'trigger', 'true', 'try', 'type', 'until', 'update', 'updateblob', + 'using', 'variables', 'where', 'while', 'with', 'within' + ), + 2 => array ( + 'blob', 'boolean', 'char', 'character', 'date', 'datetime', + 'dec', 'decimal', + 'double', 'int', 'integer', 'long', 'real', 'string', 'time', + 'uint', 'ulong', 'unsignedint', 'unsignedinteger', 'unsignedlong' + ), + 3 => array ( + 'abortretryignore!', 'actbegin!', 'acterror!', 'actesql!', + 'actgarbagecollect!', 'activate!', 'activatemanually!', + 'activateondoubleclick!', + 'activateongetfocus!', 'actline!', 'actobjectcreate!', 'actobjectdestroy!', + 'actprofile!', 'actroutine!', 'acttrace!', 'actual!', + 'actuser!', 'adoresultset!', 'adtdate!', 'adtdatetime!', + 'adtdefault!', 'adtdouble!', 'adttext!', 'adttime!', + 'aix!', 'alignatbottom!', 'alignatleft!', 'alignatright!', + 'alignattop!', 'all!', 'allowpartialchanges!', 'alpha!', + 'ansi!', 'any!', 'anycase!', 'anyfont!', + 'append!', 'application!', 'arabiccharset!', 'area3d!', + 'areagraph!', 'arraybounds!', 'arrow!', 'ascending!', + 'asstatement!', 'atbottom!', 'atleft!', 'atright!', + 'attop!', 'autosize!', 'background!', 'balticcharset!', + 'bar3dgraph!', 'bar3dobjgraph!', 'bargraph!', 'barstack3dobjgraph!', + 'barstackgraph!', 'bdiagonal!', 'beam!', 'begin!', + 'begindrag!', 'beginlabeledit!', 'beginrightdrag!', 'behind!', + 'blob!', 'bold!', 'boolean!', 'bottom!', + 'boundedarray!', 'box!', 'byreferenceargument!', 'byvalueargument!', + 'cancel!', 'cascade!', 'cascaded!', 'category!', + 'center!', 'character!', 'charsetansi!', 'charsetansiarabic!', + 'charsetansihebrew!', 'charsetdbcsjapanese!', 'charsetunicode!', 'checkbox!', + 'child!', 'childtreeitem!', 'chinesebig5!', 'classdefinition!', + 'classdefinitionobject!', 'classorstructuretype!', 'clicked!', 'clip!', + 'clipboard!', 'clipformatbitmap!', 'clipformatdib!', 'clipformatdif!', + 'clipformatenhmetafile!', 'clipformathdrop!', 'clipformatlocale!', + 'clipformatmetafilepict!', + 'clipformatoemtext!', 'clipformatpalette!', 'clipformatpendata!', 'clipformatriff!', + 'clipformatsylk!', 'clipformattext!', 'clipformattiff!', 'clipformatunicodetext!', + 'clipformatwave!', 'clock!', 'close!', 'closequery!', + 'col3dgraph!', 'col3dobjgraph!', 'colgraph!', + 'colstack3dobjgraph!', 'colstackgraph!', 'columnclick!', 'commandbutton!', + 'connection!', 'connectioninfo!', 'connectobject!', 'connectprivilege!', + 'connectwithadminprivilege!', 'constructor!', 'containsany!', 'containsembeddedonly!', + 'containslinkedonly!', 'contextinformation!', 'contextkeyword!', 'continuous!', + 'corbaobject!', 'corbaunion!', 'cplusplus!', 'cross!', + 'csv!', 'cumulative!', 'cumulativepercent!', 'currenttreeitem!', + 'customvisual!', 'dash!', 'dashdot!', 'dashdotdot!', + 'data!', 'datachange!', 'datamodified!', 'datastore!', + 'datawindow!', 'datawindowchild!', 'date!', 'datemask!', + 'datetime!', 'datetimemask!', 'dbase2!', 'dbase3!', + 'dberror!', 'deactivate!', 'decimal!', 'decimalmask!', + 'decorative!', 'default!', 'defaultcharset!', 'delete!', + 'deleteallitems!', 'deleteitem!', 'descending!', 'desktop!', + 'destructor!', 'detail!', 'diamond!', 'dif!', + 'dirall!', 'dirapplication!', 'dirdatawindow!', 'directionall!', + 'directiondown!', 'directionleft!', 'directionright!', 'directionup!', + 'dirfunction!', 'dirmenu!', 'dirpipeline!', 'dirproject!', + 'dirquery!', 'dirstructure!', 'diruserobject!', 'dirwindow!', + 'displayasactivexdocument!', 'displayascontent!', 'displayasicon!', 'dot!', + 'double!', 'doubleclicked!', 'dragdrop!', 'dragenter!', + 'dragleave!', 'dragobject!', 'dragwithin!', 'drawobject!', + 'dropdownlistbox!', 'dropdownpicturelistbox!', 'drophighlighttreeitem!', 'dwobject!', + 'dynamicdescriptionarea!', 'dynamicstagingarea!', 'easteuropecharset!', 'editchanged!', + 'editmask!', 'editmenu!', 'end!', 'endlabeledit!', + 'enterprise!', 'enterpriseonlyfeature!', 'enumeratedtype!', 'enumerationdefinition!', + 'enumerationitemdefinition!', 'environment!', 'error!', 'errorlogging!', + 'eventnotexisterror!', 'eventwrongprototypeerror!', 'excel!', 'excel5!', + 'exceptionfail!', 'exceptionignore!', 'exceptionretry!', + 'exceptionsubstitutereturnvalue!', + 'exclamation!', 'exclude!', 'exportapplication!', 'exportdatawindow!', + 'exportfunction!', 'exportmenu!', 'exportpipeline!', 'exportproject!', + 'exportquery!', 'exportstructure!', 'exportuserobject!', 'exportwindow!', + 'externalvisual!', 'extobject!', 'failonanyconflict!', 'fdiagonal!', + 'featurenotsupportederror!', 'filealreadyopenerror!', 'filecloseerror!', + 'fileexists!', + 'fileinvalidformaterror!', 'filemenu!', 'filenotopenerror!', 'filenotseterror!', + 'filereaderror!', 'filetyperichtext!', 'filetypetext!', 'filewriteerror!', + 'filter!', 'first!', 'firstvisibletreeitem!', 'fixed!', + 'floating!', 'focusrect!', 'footer!', 'foreground!', + 'frombeginning!', 'fromcurrent!', 'fromend!', 'functionobject!', + 'gb231charset!', 'getfocus!', 'graph!', 'graphicobject!', + 'graxis!', 'grdispattr!', 'greekcharset!', 'groupbox!', + 'hand!', 'hangeul!', 'header!', 'hebrewcharset!', + 'helpmenu!', 'hide!', 'horizontal!', 'hotlinkalarm!', + 'hourglass!', 'hppa!', 'hprogressbar!', 'hpux!', + 'hscrollbar!', 'hticksonboth!', 'hticksonbottom!', 'hticksonneither!', + 'hticksontop!', 'htmltable!', 'htrackbar!', 'i286!', + 'i386!', 'i486!', 'icon!', 'icons!', + 'idle!', 'importdatawindow!', 'indent!', 'index!', + 'inet!', 'information!', 'inplace!', 'inputfieldselected!', + 'insertitem!', 'inside!', 'integer!', 'internetresult!', + 'italic!', 'itemchanged!', 'itemchanging!', 'itemcollapsed!', + 'itemcollapsing!', 'itemerror!', 'itemexpanded!', 'itemexpanding!', + 'itemfocuschanged!', 'itempopulate!', 'jaguarorb!', 'johabcharset!', + 'justify!', 'key!', 'key0!', 'key1!', + 'key2!', 'key3!', 'key4!', 'key5!', + 'key6!', 'key7!', 'key8!', 'key9!', + 'keya!', 'keyadd!', 'keyalt!', 'keyapps!', + 'keyb!', 'keyback!', 'keybackquote!', 'keybackslash!', + 'keyc!', 'keycapslock!', 'keycomma!', 'keycontrol!', + 'keyd!', 'keydash!', 'keydecimal!', 'keydelete!', + 'keydivide!', 'keydownarrow!', 'keye!', 'keyend!', + 'keyenter!', 'keyequal!', 'keyescape!', 'keyf!', + 'keyf1!', 'keyf10!', 'keyf11!', 'keyf12!', + 'keyf2!', 'keyf3!', 'keyf4!', 'keyf5!', + 'keyf6!', 'keyf7!', 'keyf8!', 'keyf9!', + 'keyg!', 'keyh!', 'keyhome!', 'keyi!', + 'keyinsert!', 'keyj!', 'keyk!', 'keyl!', + 'keyleftarrow!', 'keyleftbracket!', 'keyleftbutton!', 'keyleftwindows!', + 'keym!', 'keymiddlebutton!', 'keymultiply!', 'keyn!', + 'keynull!', 'keynumlock!', 'keynumpad0!', 'keynumpad1!', + 'keynumpad2!', 'keynumpad3!', 'keynumpad4!', 'keynumpad5!', + 'keynumpad6!', 'keynumpad7!', 'keynumpad8!', 'keynumpad9!', + 'keyo!', 'keyp!', 'keypagedown!', 'keypageup!', + 'keypause!', 'keyperiod!', 'keyprintscreen!', 'keyq!', + 'keyquote!', 'keyr!', 'keyrightarrow!', 'keyrightbracket!', + 'keyrightbutton!', 'keyrightwindows!', 'keys!', 'keyscrolllock!', + 'keysemicolon!', 'keyshift!', 'keyslash!', 'keyspacebar!', + 'keysubtract!', 'keyt!', 'keytab!', 'keyu!', + 'keyuparrow!', 'keyv!', 'keyw!', 'keyword!', + 'keyx!', 'keyy!', 'keyz!', 'languageafrikaans!', + 'languagealbanian!', 'languagearabicalgeria!', 'languagearabicbahrain!', + 'languagearabicegypt!', + 'languagearabiciraq!', 'languagearabicjordan!', 'languagearabickuwait!', + 'languagearabiclebanon!', + 'languagearabiclibya!', 'languagearabicmorocco!', 'languagearabicoman!', + 'languagearabicqatar!', + 'languagearabicsaudiarabia!', 'languagearabicsyria!', 'languagearabictunisia!', + 'languagearabicuae!', + 'languagearabicyemen!', 'languagebasque!', 'languagebulgarian!', 'languagebyelorussian!', + 'languagecatalan!', 'languagechinese!', 'languagechinesehongkong!', 'languagechinesesimplified!', + 'languagechinesesingapore!', 'languagechinesetraditional!', 'languagecroatian!', 'languageczech!', + 'languagedanish!', 'languagedutch!', 'languagedutchbelgian!', 'languagedutchneutral!', + 'languageenglish!', 'languageenglishaustralian!', 'languageenglishcanadian!', + 'languageenglishirish!', + 'languageenglishnewzealand!', 'languageenglishsouthafrica!', 'languageenglishuk!', + 'languageenglishus!', + 'languageestonian!', 'languagefaeroese!', 'languagefarsi!', 'languagefinnish!', + 'languagefrench!', 'languagefrenchbelgian!', 'languagefrenchcanadian!', 'languagefrenchluxembourg!', + 'languagefrenchneutral!', 'languagefrenchswiss!', 'languagegerman!', 'languagegermanaustrian!', + 'languagegermanliechtenstein!', 'languagegermanluxembourg!', 'languagegermanneutral!', + 'languagegermanswiss!', + 'languagegreek!', 'languagehebrew!', 'languagehindi!', 'languagehungarian!', + 'languageicelandic!', 'languageindonesian!', 'languageitalian!', 'languageitalianneutral!', + 'languageitalianswiss!', 'languagejapanese!', 'languagekorean!', 'languagekoreanjohab!', + 'languagelatvian!', 'languagelithuanian!', 'languagemacedonian!', 'languagemaltese!', + 'languageneutral!', 'languagenorwegian!', 'languagenorwegianbokmal!', 'languagenorwegiannynorsk!', + 'languagepolish!', 'languageportuguese!', 'languageportuguese_brazilian!', + 'languageportugueseneutral!', + 'languagerhaetoromanic!', 'languageromanian!', 'languageromanianmoldavia!', 'languagerussian!', + 'languagerussianmoldavia!', 'languagesami!', 'languageserbian!', 'languageslovak!', + 'languageslovenian!', 'languagesorbian!', 'languagesortnative!', 'languagesortunicode!', + 'languagespanish!', 'languagespanishcastilian!', 'languagespanishmexican!', 'languagespanishmodern!', + 'languagesutu!', 'languageswedish!', 'languagesystemdefault!', 'languagethai!', + 'languagetsonga!', 'languagetswana!', 'languageturkish!', 'languageukrainian!', + 'languageurdu!', 'languageuserdefault!', 'languagevenda!', 'languagexhosa!', + 'languagezulu!', 'last!', 'layer!', 'layered!', + 'Left!', 'leftmargin!', 'line!', 'line3d!', + 'linear!', 'linecolor!', 'linedown!', 'linegraph!', + 'lineleft!', 'linemode!', 'lineright!', 'lineup!', + 'linkupdateautomatic!', 'linkupdatemanual!', 'listbox!', 'listview!', + 'listviewitem!', 'listviewlargeicon!', 'listviewlist!', 'listviewreport!', + 'listviewsmallicon!', 'lockread!', 'lockreadwrite!', 'lockwrite!', + 'log10!', 'loge!', 'long!', 'losefocus!', + 'lower!', 'lowered!', 'm68000!', 'm68020!', + 'm68030!', 'm68040!', 'maccharset!', 'macintosh!', + 'mailattach!', 'mailbcc!', 'mailbodyasfile!', 'mailcc!', + 'maildownload!', 'mailentiremessage!', 'mailenvelopeonly!', 'mailfiledescription!', + 'mailmessage!', 'mailnewsession!', 'mailnewsessionwithdownload!', 'mailole!', + 'mailolestatic!', 'mailoriginator!', 'mailrecipient!', 'mailreturnaccessdenied!', + 'mailreturnattachmentnotfound!', 'mailreturnattachmentopenfailure!', + 'mailreturnattachmentwritefailure!', 'mailreturndiskfull!', + 'mailreturnfailure!', 'mailreturninsufficientmemory!', 'mailreturninvalidmessage!', + 'mailreturnloginfailure!', + 'mailreturnmessageinuse!', 'mailreturnnomessages!', 'mailreturnsuccess!', 'mailreturntexttoolarge!', + 'mailreturntoomanyfiles!', 'mailreturntoomanyrecipients!', 'mailreturntoomanysessions!', + 'mailreturnunknownrecipient!', + 'mailreturnuserabort!', 'mailsession!', 'mailsuppressattachments!', 'mailto!', + 'main!', 'maximized!', 'mdi!', 'mdiclient!', + 'mdihelp!', 'menu!', 'menucascade!', 'menuitemtypeabout!', + 'menuitemtypeexit!', 'menuitemtypehelp!', 'menuitemtypenormal!', 'merge!', + 'message!', 'minimized!', 'mips!', 'modelexistserror!', + 'modelnotexistserror!', 'modern!', 'modified!', 'mousedown!', + 'mousemove!', 'mouseup!', 'moved!', 'multiline!', + 'multilineedit!', 'mutexcreateerror!', 'new!', 'newmodified!', + 'next!', 'nexttreeitem!', 'nextvisibletreeitem!', 'noborder!', + 'noconnectprivilege!', 'nolegend!', 'none!', 'nonvisualobject!', + 'normal!', 'nosymbol!', 'notic!', 'notmodified!', + 'notopmost!', 'notype!', 'numericmask!', 'objhandle!', + 'oem!', 'off!', 'offsite!', 'ok!', + 'okcancel!', 'olecontrol!', 'olecustomcontrol!', 'oleobject!', + 'olestorage!', 'olestream!', 'oletxnobject!', 'omcontrol!', + 'omcustomcontrol!', 'omembeddedcontrol!', 'omobject!', 'omstorage!', + 'omstream!', 'open!', 'orb!', 'original!', + 'osf1!', 'other!', 'outside!', 'oval!', + 'pagedown!', 'pageleft!', 'pageright!', 'pageup!', + 'parenttreeitem!', 'pbtocppobject!', 'pentium!', 'percentage!', + 'picture!', 'picturebutton!', 'picturehyperlink!', 'picturelistbox!', + 'pictureselected!', 'pie3d!', 'piegraph!', 'pipeend!', + 'pipeline!', 'pipemeter!', 'pipestart!', 'popup!', + 'powerobject!', 'powerpc!', 'powerrs!', 'ppc601!', + 'ppc603!', 'ppc604!', 'previewdelete!', 'previewfunctionreselectrow!', + 'previewfunctionretrieve!', 'previewfunctionupdate!', 'previewinsert!', 'previewselect!', + 'previewupdate!', 'previoustreeitem!', 'previousvisibletreeitem!', 'primary!', + 'printend!', 'printfooter!', 'printheader!', 'printpage!', + 'printstart!', 'prior!', 'private!', 'process!', + 'profilecall!', 'profileclass!', 'profileline!', 'profileroutine!', + 'profiling!', 'protected!', 'psreport!', 'public!', + 'question!', 'radiobutton!', 'raised!', 'rbuttondown!', + 'rbuttonup!', 'read!', 'readonlyargument!', 'real!', + 'rectangle!', 'regbinary!', 'regexpandstring!', 'reglink!', + 'regmultistring!', 'regstring!', 'regulong!', 'regulongbigendian!', + 'remoteexec!', 'remotehotlinkstart!', 'remotehotlinkstop!', 'remoteobject!', + 'remoterequest!', 'remotesend!', 'rename!', 'replace!', + 'resize!', 'resizeborder!', 'response!', 'resultset!', + 'resultsets!', 'retrieveend!', 'retrieverow!', 'retrievestart!', + 'retrycancel!', 'richtextedit!', 'Right!', 'rightclicked!', + 'rightdoubleclicked!', 'rightmargin!', 'rnddays!', 'rnddefault!', + 'rndhours!', 'rndmicroseconds!', 'rndminutes!', 'rndmonths!', + 'rndnumber!', 'rndseconds!', 'rndyears!', 'roman!', + 'roottreeitem!', 'roundrectangle!', 'routineesql!', 'routineevent!', + 'routinefunction!', 'routinegarbagecollection!', 'routineobjectcreation!', + 'routineobjectdestruction!', + 'routineroot!', 'rowfocuschanged!', 'russiancharset!', 'save!', + 'scalartype!', 'scattergraph!', 'script!', 'scriptdefinition!', + 'scriptevent!', 'scriptfunction!', 'scrollhorizontal!', 'scrollvertical!', + 'selected!', 'selectionchanged!', 'selectionchanging!', 'series!', + 'service!', 'shade!', 'shadowbox!', 'shared!', + 'sharedobjectcreateinstanceerror!', 'sharedobjectcreatepbsessionerror!', + 'sharedobjectexistserror!', 'sharedobjectnotexistserror!', + 'shiftjis!', 'show!', 'simpletype!', 'simpletypedefinition!', + 'singlelineedit!', 'size!', 'sizenesw!', 'sizens!', + 'sizenwse!', 'sizewe!', 'sol2!', 'solid!', + 'sort!', 'sourcepblerror!', 'spacing1!', 'spacing15!', + 'spacing2!', 'sparc!', 'sqlinsert!', 'sqlpreview!', + 'square!', 'sslcallback!', 'sslserviceprovider!', 'statichyperlink!', + 'statictext!', 'stgdenynone!', 'stgdenyread!', 'stgdenywrite!', + 'stgexclusive!', 'stgread!', 'stgreadwrite!', 'stgwrite!', + 'stopsign!', 'straddle!', 'streammode!', 'stretch!', + 'strikeout!', 'string!', 'stringmask!', 'structure!', + 'stylebox!', 'stylelowered!', 'styleraised!', 'styleshadowbox!', + 'subscript!', 'success!', 'superscript!', 'swiss!', + 'sylk!', 'symbol!', 'symbolhollowbox!', 'symbolhollowcircle!', + 'symbolhollowdiamond!', 'symbolhollowdownarrow!', 'symbolhollowuparrow!', 'symbolplus!', + 'symbolsolidbox!', 'symbolsolidcircle!', 'symbolsoliddiamond!', 'symbolsoliddownarrow!', + 'symbolsoliduparrow!', 'symbolstar!', 'symbolx!', 'system!', + 'systemerror!', 'systemfunctions!', 'systemkey!', 'tab!', + 'tabsonbottom!', 'tabsonbottomandtop!', 'tabsonleft!', 'tabsonleftandright!', + 'tabsonright!', 'tabsonrightandleft!', 'tabsontop!', 'tabsontopandbottom!', + 'text!', 'thaicharset!', 'thread!', 'tile!', + 'tilehorizontal!', 'time!', 'timemask!', 'timer!', + 'timernone!', 'timing!', 'tobottom!', 'toolbarmoved!', + 'top!', 'topic!', 'topmost!', 'totop!', + 'traceactivitynode!', 'traceatomic!', 'tracebeginend!', 'traceerror!', + 'traceesql!', 'tracefile!', 'tracegarbagecollect!', 'tracegeneralerror!', + 'tracein!', 'traceline!', 'tracenomorenodes!', 'tracenotstartederror!', + 'traceobject!', 'traceout!', 'traceroutine!', 'tracestartederror!', + 'tracetree!', 'tracetreeerror!', 'tracetreeesql!', 'tracetreegarbagecollect!', + 'tracetreeline!', 'tracetreenode!', 'tracetreeobject!', 'tracetreeroutine!', + 'tracetreeuser!', 'traceuser!', 'transaction!', 'transactionserver!', + 'transparent!', 'transport!', 'treeview!', 'treeviewitem!', + 'turkishcharset!', 'typeboolean!', 'typecategory!', 'typecategoryaxis!', + 'typecategorylabel!', 'typedata!', 'typedate!', 'typedatetime!', + 'typedecimal!', 'typedefinition!', 'typedouble!', 'typegraph!', + 'typeinteger!', 'typelegend!', 'typelong!', 'typereal!', + 'typeseries!', 'typeseriesaxis!', 'typeserieslabel!', 'typestring!', + 'typetime!', 'typetitle!', 'typeuint!', 'typeulong!', + 'typeunknown!', 'typevalueaxis!', 'typevaluelabel!', 'ultrasparc!', + 'unboundedarray!', 'underline!', 'underlined!', 'unsignedinteger!', + 'unsignedlong!', 'unsorted!', 'uparrow!', 'updateend!', + 'updatestart!', 'upper!', 'userdefinedsort!', 'userobject!', + 'variable!', 'variableargument!', 'variablecardinalitydefinition!', 'variabledefinition!', + 'variableglobal!', 'variableinstance!', 'variablelocal!', 'variableshared!', + 'varlistargument!', 'vbxvisual!', 'vcenter!', 'vertical!', + 'vietnamesecharset!', 'viewchange!', 'vprogressbar!', 'vscrollbar!', + 'vticksonboth!', 'vticksonleft!', 'vticksonneither!', 'vticksonright!', + 'vtrackbar!', 'window!', 'windowmenu!', 'windowobject!', + 'windows!', 'windowsnt!', 'wk1!', 'wks!', + 'wmf!', 'write!', 'xpixelstounits!', 'xunitstopixels!', + 'xvalue!', 'yesno!', 'yesnocancel!', 'ypixelstounits!', + 'yunitstopixels!', + 'yvalue!', + 'zoom!' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}'), + 1 => array('|'), + 2 => array('+', '-', '*', '/'), + 3 => array('=', '<', '>', '^') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #008000; font-weight: bold;', + 2 => 'color: #990099; font-weight: bold;', + 3 => 'color: #330099; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #0000ff; font-weight: bold;', + 'MULTI' => 'color: #0000ff; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + 0 => 'color: #330099; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;', + 1 => 'color: #ffff00; background-color:#993300; font-weight: bold', + 2 => 'color: #000000;', + 3 => 'color: #000000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/powershell.php b/inc/geshi/powershell.php index e427059d3..c90538809 100644 --- a/inc/geshi/powershell.php +++ b/inc/geshi/powershell.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Frode Aarebrot (frode@aarebrot.net) * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/06/20 * * PowerShell language file for GeSHi. @@ -49,7 +49,7 @@ $language_data = array ( 'LANG_NAME' => 'PowerShell', 'COMMENT_SINGLE' => array(1 => '#'), - 'COMMENT_MULTI' => array(), + 'COMMENT_MULTI' => array('<#' => '#>'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '`', diff --git a/inc/geshi/progress.php b/inc/geshi/progress.php index 2d6024e74..90c3bf0fa 100644 --- a/inc/geshi/progress.php +++ b/inc/geshi/progress.php @@ -4,7 +4,7 @@ * -------- * Author: Marco Aurelio de Pasqual (marcop@hdi.com.br) * Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/07/11 * * Progress language file for GeSHi. diff --git a/inc/geshi/prolog.php b/inc/geshi/prolog.php index fa9e03a63..4dd01ff7e 100644 --- a/inc/geshi/prolog.php +++ b/inc/geshi/prolog.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/10/02 * * Prolog language file for GeSHi. @@ -130,7 +130,7 @@ $language_data = array ( ), 'REGEXPS' => array( //Variables - 0 => "(?<![A-Z_])(?!(?:PIPE|SEMI)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])" + 0 => "(?<![a-zA-Z0-9_])(?!(?:PIPE|SEMI|DOT)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])(?!\x7C)" ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -140,4 +140,4 @@ $language_data = array ( 'TAB_WIDTH' => 4 ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/properties.php b/inc/geshi/properties.php new file mode 100644 index 000000000..9fc8b8da4 --- /dev/null +++ b/inc/geshi/properties.php @@ -0,0 +1,127 @@ +<?php +/************************************************************************************* + * properties.php + * -------- + * Author: Edy Hinzen + * Copyright: (c) 2009 Edy Hinzen + * Release Version: 1.0.8.8 + * Date Started: 2009/04/03 + * + * Property language file for GeSHi. + * + * CHANGES + * ------- + * 2008/04/03 (1.0.0) + * - First Release + * + * TODO + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PROPERTIES', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Common used variables */ + 1 => array( + '${user.home}' + ), + ), + 'SYMBOLS' => array( + '[', ']', '=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => '' + ), + 'STRINGS' => array( + 0 => 'color: #933;' + ), + 'NUMBERS' => array( + 0 => '' + ), + 'METHODS' => array( + 0 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + 0 => 'color: #000080; font-weight:bold;', + 1 => 'color: #008000; font-weight:bold;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Entry names + 0 => array( + GESHI_SEARCH => '^(\s*)([.a-zA-Z0-9_\-]+)(\s*=)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Entry values + 1 => array( + // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched + // Explicit match on variable names because if a comment is before the first < of the span + // gets chewed up... + GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1=', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/providex.php b/inc/geshi/providex.php index f24a57d18..0352ac2a1 100644 --- a/inc/geshi/providex.php +++ b/inc/geshi/providex.php @@ -4,7 +4,7 @@ * ---------- * Author: Jeff Wilder (jeff@coastallogix.com) * Copyright: (c) 2008 Coastal Logix (http://www.coastallogix.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/10/18 * * ProvideX language file for GeSHi. diff --git a/inc/geshi/purebasic.php b/inc/geshi/purebasic.php new file mode 100644 index 000000000..b24986f57 --- /dev/null +++ b/inc/geshi/purebasic.php @@ -0,0 +1,303 @@ +<?php +/************************************************************************************* + * purebasic.php + * ------- + * Author: GuShH + * Copyright: (c) 2009 Gustavo Julio Fiorenza + * Release Version: 1.0.8.8 + * Date Started: 13/06/2009 + * + * PureBasic language file for GeSHi. + * + * CHANGES + * ------- + * 13/06/2009 (1.0.0) + * - First Release + * + * TODO (updated 2009/06/13) + * ------------------------- + * Add the remaining ASM mnemonics and the 4.3x functions/etc. + * Better coloring (perhaps match the default scheme of PB?) + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PureBasic', + 'COMMENT_SINGLE' => array( 1 => ";" ), + 'COMMENT_MULTI' => array( ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + // Keywords + 'And', 'As', 'Break', 'CallDebugger', 'Case', 'CompilerCase', 'CompilerDefault', 'CompilerElse', 'CompilerEndIf', 'CompilerEndSelect', + 'CompilerError', 'CompilerIf', 'CompilerSelect', 'Continue', 'Data', 'DataSection', 'EndDataSection', 'Debug', 'DebugLevel', 'Declare', + 'DeclareCDLL', 'DeclareDLL', 'Default', 'Define', 'Dim', 'DisableASM', 'DisableDebugger', 'DisableExplicit', 'Else', 'ElseIf', 'EnableASM', + 'EnableDebugger', 'EnableExplicit', 'End', 'EndEnumeration', 'EndIf', 'EndImport', 'EndInterface', 'EndMacro', 'EndProcedure', + 'EndSelect', 'EndStructure', 'EndStructureUnion', 'EndWith', 'Enumeration', 'Extends', 'FakeReturn', 'For', 'Next', 'ForEach', + 'ForEver', 'Global', 'Gosub', 'Goto', 'If', 'Import', 'ImportC', 'IncludeBinary', 'IncludeFile', 'IncludePath', 'Interface', 'Macro', + 'NewList', 'Not', 'Or', 'Procedure', 'ProcedureC', 'ProcedureCDLL', 'ProcedureDLL', 'ProcedureReturn', 'Protected', 'Prototype', + 'PrototypeC', 'Read', 'ReDim', 'Repeat', 'Until', 'Restore', 'Return', 'Select', 'Shared', 'Static', 'Step', 'Structure', 'StructureUnion', + 'Swap', 'To', 'Wend', 'While', 'With', 'XIncludeFile', 'XOr' + ), + 2 => array( + // All Functions + 'Abs', 'ACos', 'Add3DArchive', 'AddBillboard', 'AddDate', 'AddElement', 'AddGadgetColumn', 'AddGadgetItem', + 'AddKeyboardShortcut', 'AddMaterialLayer', 'AddPackFile', 'AddPackMemory', 'AddStatusBarField', 'AddSysTrayIcon', + 'AllocateMemory', 'AmbientColor', 'AnimateEntity', 'Asc', 'ASin', 'ATan', 'AudioCDLength', 'AudioCDName', 'AudioCDStatus', + 'AudioCDTrackLength', 'AudioCDTracks', 'AudioCDTrackSeconds', 'AvailableProgramOutput', 'AvailableScreenMemory', + 'BackColor', 'Base64Decoder', 'Base64Encoder', 'BillboardGroupLocate', 'BillboardGroupMaterial', 'BillboardGroupX', + 'BillboardGroupY', 'BillboardGroupZ', 'BillboardHeight', 'BillboardLocate', 'BillboardWidth', 'BillboardX', 'BillboardY', 'BillboardZ', + 'Bin', 'BinQ', 'Blue', 'Box', 'ButtonGadget', 'ButtonImageGadget', 'CalendarGadget', 'CallCFunction', 'CallCFunctionFast', + 'CallFunction', 'CallFunctionFast', 'CameraBackColor', 'CameraFOV', 'CameraLocate', 'CameraLookAt', 'CameraProjection', + 'CameraRange', 'CameraRenderMode', 'CameraX', 'CameraY', 'CameraZ', 'CatchImage', 'CatchSound', 'CatchSprite', + 'CatchXML', 'ChangeAlphaIntensity', 'ChangeCurrentElement', 'ChangeGamma', 'ChangeListIconGadgetDisplay', + 'ChangeSysTrayIcon', 'CheckBoxGadget', 'CheckEntityCollision', 'CheckFilename', 'ChildXMLNode', 'Chr', 'Circle', + 'ClearBillboards', 'ClearClipboard', 'ClearConsole', 'ClearError', 'ClearGadgetItemList', 'ClearList', 'ClearScreen', 'ClipSprite', + 'CloseConsole', 'CloseDatabase', 'CloseFile', 'CloseGadgetList', 'CloseHelp', 'CloseLibrary', 'CloseNetworkConnection', + 'CloseNetworkServer', 'ClosePack', 'ClosePreferences', 'CloseProgram', 'CloseScreen', 'CloseSubMenu', 'CloseWindow', + 'ColorRequester', 'ComboBoxGadget', 'CompareMemory', 'CompareMemoryString', 'ConnectionID', 'ConsoleColor', + 'ConsoleCursor', 'ConsoleError', 'ConsoleLocate', 'ConsoleTitle', 'ContainerGadget', 'CopyDirectory', 'CopyEntity', + 'CopyFile', 'CopyImage', 'CopyLight', 'CopyMaterial', 'CopyMemory', 'CopyMemoryString', 'CopyMesh', 'CopySprite', + 'CopyTexture', 'CopyXMLNode', 'Cos', 'CountBillboards', 'CountGadgetItems', 'CountLibraryFunctions', 'CountList', + 'CountMaterialLayers', 'CountProgramParameters', 'CountRenderedTriangles', 'CountString', 'CRC32Fingerprint', + 'CreateBillboardGroup', 'CreateCamera', 'CreateDirectory', 'CreateEntity', 'CreateFile', 'CreateGadgetList', + 'CreateImage', 'CreateLight', 'CreateMaterial', 'CreateMenu', 'CreateMesh', 'CreateMutex', 'CreateNetworkServer', + 'CreatePack', 'CreatePalette', 'CreateParticleEmitter', 'CreatePopupMenu', 'CreatePreferences', 'CreateSprite', + 'CreateSprite3D', 'CreateStatusBar', 'CreateTerrain', 'CreateTexture', 'CreateThread', 'CreateToolBar', 'CreateXML', + 'CreateXMLNode', 'DatabaseColumnName', 'DatabaseColumns', 'DatabaseColumnType', 'DatabaseDriverDescription', + 'DatabaseDriverName', 'DatabaseError', 'DatabaseQuery', 'DatabaseUpdate', 'Date', 'DateGadget', 'Day', 'DayOfWeek', + 'DayOfYear', 'DefaultPrinter', 'Defined', 'Delay', 'DeleteDirectory', 'DeleteElement', 'DeleteFile', 'DeleteXMLNode', + 'DESFingerprint', 'DesktopDepth', 'DesktopFrequency', 'DesktopHeight', 'DesktopMouseX', 'DesktopMouseY', 'DesktopName', + 'DesktopWidth', 'DirectoryEntryAttributes', 'DirectoryEntryDate', 'DirectoryEntryName', 'DirectoryEntrySize', + 'DirectoryEntryType', 'DisableGadget', 'DisableMaterialLighting', 'DisableMenuItem', 'DisableToolBarButton', 'DisableWindow', + 'DisASMCommand', 'DisplayAlphaSprite', 'DisplayPalette', 'DisplayPopupMenu', 'DisplayRGBFilter', 'DisplayShadowSprite', + 'DisplaySolidSprite', 'DisplaySprite', 'DisplaySprite3D', 'DisplayTranslucentSprite', 'DisplayTransparentSprite', 'DragFiles', + 'DragImage', 'DragOSFormats', 'DragPrivate', 'DragText', 'DrawAlphaImage', 'DrawImage', 'DrawingBuffer', + 'DrawingBufferPitch', 'DrawingBufferPixelFormat', 'DrawingFont', 'DrawingMode', 'DrawText', 'EditorGadget', + 'egrid_AddColumn', 'egrid_AddRows', 'egrid_AppendCells', 'egrid_ClearRows', 'egrid_CopyCells', + 'egrid_CreateCellCallback', 'egrid_CreateGrid', 'egrid_DeleteCells', 'egrid_FastDeleteCells', 'egrid_FreeGrid', + 'egrid_GetCellSelection', 'egrid_GetCellText', 'egrid_GetColumnOrderArray', 'egrid_HasSelectedCellChanged', 'egrid_Height', + 'egrid_HideEdit', 'egrid_HideGrid', 'egrid_MakeCellVisible', 'egrid_NumberOfColumns', 'egrid_NumberOfRows', + 'egrid_PasteCells', 'egrid_Register', 'egrid_RemoveCellCallback', 'egrid_RemoveColumn', 'egrid_RemoveRow', 'egrid_Resize', + 'egrid_SelectCell', 'egrid_SelectedColumn', 'egrid_SelectedRow', 'egrid_SetCellSelection', 'egrid_SetCellText', + 'egrid_SetColumnOrderArray', 'egrid_SetHeaderFont', 'egrid_SetHeaderHeight', 'egrid_SetOption', 'egrid_Width', 'egrid_x', + 'egrid_y', 'EjectAudioCD', 'ElapsedMilliseconds', 'Ellipse', 'EnableGadgetDrop', 'EnableGraphicalConsole', + 'EnableWindowDrop', 'EnableWorldCollisions', 'EnableWorldPhysics', 'Engine3DFrameRate', 'EntityAngleX', + 'EntityAnimationLength', 'EntityLocate', 'EntityMaterial', 'EntityMesh', 'EntityPhysicBody', 'EntityRenderMode', + 'EntityX', 'EntityY', 'EntityZ', 'EnvironmentVariableName', 'EnvironmentVariableValue', 'Eof', 'EventClient', + 'EventDropAction', 'EventDropBuffer', 'EventDropFiles', 'EventDropImage', 'EventDropPrivate', 'EventDropSize', + 'EventDropText', 'EventDropType', 'EventDropX', 'EventDropY', 'EventGadget', 'EventlParam', 'EventMenu', 'EventServer', + 'EventType', 'EventWindow', 'EventwParam', 'ExamineDatabaseDrivers', 'ExamineDesktops', 'ExamineDirectory', + 'ExamineEnvironmentVariables', 'ExamineIPAddresses', 'ExamineJoystick', 'ExamineKeyboard', 'ExamineLibraryFunctions', + 'ExamineMouse', 'ExaminePreferenceGroups', 'ExaminePreferenceKeys', 'ExamineScreenModes', 'ExamineWorldCollisions', + 'ExamineXMLAttributes', 'ExplorerComboGadget', 'ExplorerListGadget', 'ExplorerTreeGadget', 'ExportXML', + 'ExportXMLSize', 'FileBuffersSize', 'FileID', 'FileSeek', 'FileSize', 'FillArea', 'FindString', 'FinishDirectory', + 'FirstDatabaseRow', 'FirstElement', 'FirstWorldCollisionEntity', 'FlipBuffers', 'FlushFileBuffers', 'Fog', 'FontID', + 'FontRequester', 'FormatDate', 'FormatXML', 'Frame3DGadget', 'FreeBillboardGroup', 'FreeCamera', 'FreeEntity', + 'FreeFont', 'FreeGadget', 'FreeImage', 'FreeLight', 'FreeMaterial', 'FreeMemory', 'FreeMenu', 'FreeMesh', + 'FreeModule', 'FreeMovie', 'FreeMutex', 'FreePalette', 'FreeParticleEmitter', 'FreeSound', 'FreeSprite', + 'FreeSprite3D', 'FreeStatusBar', 'FreeTexture', 'FreeToolBar', 'FreeXML', 'FrontColor', 'GadgetHeight', 'GadgetID', + 'GadgetItemID', 'GadgetToolTip', 'GadgetType', 'GadgetWidth', 'GadgetX', 'GadgetY', 'GetActiveGadget', + 'GetActiveWindow', 'GetClientIP', 'GetClientPort', 'GetClipboardImage', 'GetClipboardText', 'GetCurrentDirectory', + 'GetCurrentEIP', 'GetDatabaseDouble', 'GetDatabaseFloat', 'GetDatabaseLong', 'GetDatabaseQuad', 'GetDatabaseString', + 'GetDisASMString', 'GetEntityAnimationTime', 'GetEntityFriction', 'GetEntityMass', 'GetEnvironmentVariable', + 'GetErrorAddress', 'GetErrorCounter', 'GetErrorDescription', 'GetErrorDLL', 'GetErrorLineNR', 'GetErrorModuleName', + 'GetErrorNumber', 'GetErrorRegister', 'GetExtensionPart', 'GetFileAttributes', 'GetFileDate', 'GetFilePart', 'GetFunction', + 'GetFunctionEntry', 'GetGadgetAttribute', 'GetGadgetColor', 'GetGadgetData', 'GetGadgetFont', + 'GetGadgetItemAttribute', 'GetGadgetItemColor', 'GetGadgetItemData', 'GetGadgetItemState', 'GetGadgetItemText', + 'GetGadgetState', 'GetGadgetText', 'GetHomeDirectory', 'GetMenuItemState', 'GetMenuItemText', 'GetMenuTitleText', + 'GetModulePosition', 'GetModuleRow', 'GetPaletteColor', 'GetPathPart', 'GetTemporaryDirectory', + 'GetToolBarButtonState', 'GetWindowColor', 'GetWindowState', 'GetWindowTitle', 'GetXMLAttribute', 'GetXMLEncoding', + 'GetXMLNodeName', 'GetXMLNodeOffset', 'GetXMLNodeText', 'GetXMLStandalone', 'GoToEIP', 'GrabImage', 'GrabSprite', + 'Green', 'Hex', 'HexQ', 'HideBillboardGroup', 'HideEntity', 'HideGadget', 'HideLight', 'HideMenu', 'HideParticleEmitter', + 'HideWindow', 'Hostname', 'Hour', 'HyperLinkGadget', 'ImageDepth', 'ImageGadget', 'ImageHeight', 'ImageID', + 'ImageOutput', 'ImageWidth', 'InitAudioCD', 'InitEngine3D', 'InitJoystick', 'InitKeyboard', 'InitMouse', 'InitMovie', + 'InitNetwork', 'InitPalette', 'InitScintilla', 'InitSound', 'InitSprite', 'InitSprite3D', 'Inkey', 'Input', 'InputRequester', + 'InsertElement', 'Int', 'IntQ', 'IPAddressField', 'IPAddressGadget', 'IPString', 'IsBillboardGroup', 'IsCamera', 'IsDatabase', + 'IsDirectory', 'IsEntity', 'IsFile', 'IsFont', 'IsGadget', 'IsImage', 'IsLibrary', 'IsLight', 'IsMaterial', 'IsMenu', 'IsMesh', + 'IsModule', 'IsMovie', 'IsPalette', 'IsParticleEmitter', 'IsProgram', 'IsScreenActive', 'IsSound', 'IsSprite', 'IsSprite3D', + 'IsStatusBar', 'IsSysTrayIcon', 'IsTexture', 'IsThread', 'IsToolBar', 'IsWindow', 'IsXML', 'JoystickAxisX', 'JoystickAxisY', + 'JoystickButton', 'KeyboardInkey', 'KeyboardMode', 'KeyboardPushed', 'KeyboardReleased', 'KillProgram', 'KillThread', + 'LastElement', 'LCase', 'Left', 'Len', 'LibraryFunctionAddress', 'LibraryFunctionName', 'LibraryID', 'LightColor', + 'LightLocate', 'LightSpecularColor', 'Line', 'LineXY', 'ListIconGadget', 'ListIndex', 'ListViewGadget', 'LoadFont', + 'LoadImage', 'LoadMesh', 'LoadModule', 'LoadMovie', 'LoadPalette', 'LoadSound', 'LoadSprite', 'LoadTexture', + 'LoadWorld', 'LoadXML', 'Loc', 'LockMutex', 'Lof', 'Log', 'Log10', 'LSet', 'LTrim', 'MainXMLNode', 'MakeIPAddress', + 'MaterialAmbientColor', 'MaterialBlendingMode', 'MaterialDiffuseColor', 'MaterialFilteringMode', 'MaterialID', + 'MaterialShadingMode', 'MaterialSpecularColor', 'MD5FileFingerprint', 'MD5Fingerprint', 'MDIGadget', 'MemorySize', + 'MemoryStringLength', 'MenuBar', 'MenuHeight', 'MenuID', 'MenuItem', 'MenuTitle', 'MeshID', 'MessageRequester', + 'Mid', 'Minute', 'ModuleVolume', 'Month', 'MouseButton', 'MouseDeltaX', 'MouseDeltaY', 'MouseLocate', 'MouseWheel', + 'MouseX', 'MouseY', 'MoveBillboard', 'MoveBillboardGroup', 'MoveCamera', 'MoveEntity', 'MoveLight', 'MoveMemory', + 'MoveParticleEmitter', 'MoveXMLNode', 'MovieAudio', 'MovieHeight', 'MovieInfo', 'MovieLength', 'MovieSeek', + 'MovieStatus', 'MovieWidth', 'NetworkClientEvent', 'NetworkServerEvent', 'NewPrinterPage', 'NextDatabaseDriver', + 'NextDatabaseRow', 'NextDirectoryEntry', 'NextElement', 'NextEnvironmentVariable', 'NextIPAddress', + 'NextLibraryFunction', 'NextPackFile', 'NextPreferenceGroup', 'NextPreferenceKey', 'NextScreenMode', + 'NextSelectedFileName', 'NextWorldCollision', 'NextXMLAttribute', 'NextXMLNode', 'OffsetOf', 'OnErrorExit', + 'OnErrorGosub', 'OnErrorGoto', 'OnErrorResume', 'OpenComPort', 'OpenConsole', 'OpenDatabase', + 'OpenDatabaseRequester', 'OpenFile', 'OpenFileRequester', 'OpenGadgetList', 'OpenHelp', 'OpenLibrary', + 'OpenNetworkConnection', 'OpenPack', 'OpenPreferences', 'OpenScreen', 'OpenSubMenu', 'OpenWindow', + 'OpenWindowedScreen', 'OptionGadget', 'OSVersion', 'PackerCallback', 'PackFileSize', 'PackMemory', 'PanelGadget', + 'ParentXMLNode', 'Parse3DScripts', 'ParseDate', 'ParticleColorFader', 'ParticleColorRange', 'ParticleEmissionRate', + 'ParticleEmitterDirection', 'ParticleEmitterLocate', 'ParticleEmitterX', 'ParticleEmitterY', 'ParticleEmitterZ', + 'ParticleMaterial', 'ParticleSize', 'ParticleTimeToLive', 'ParticleVelocity', 'PathRequester', 'PauseAudioCD', + 'PauseMovie', 'PauseThread', 'PeekB', 'PeekC', 'PeekD', 'PeekF', 'PeekL', 'PeekQ', 'PeekS', 'PeekW', 'PlayAudioCD', + 'PlayModule', 'PlayMovie', 'PlaySound', 'Plot', 'Point', 'PokeB', 'PokeC', 'PokeD', 'PokeF', 'PokeL', 'PokeQ', 'PokeS', + 'PokeW', 'Pow', 'PreferenceComment', 'PreferenceGroup', 'PreferenceGroupName', 'PreferenceKeyName', + 'PreferenceKeyValue', 'PreviousDatabaseRow', 'PreviousElement', 'PreviousXMLNode', 'Print', 'PrinterOutput', + 'PrinterPageHeight', 'PrinterPageWidth', 'PrintN', 'PrintRequester', 'ProgramExitCode', 'ProgramFilename', + 'ProgramID', 'ProgramParameter', 'ProgramRunning', 'ProgressBarGadget', 'Random', 'RandomSeed', 'RawKey', + 'ReadByte', 'ReadCharacter', 'ReadConsoleData', 'ReadData', 'ReadDouble', 'ReadFile', 'ReadFloat', 'ReadLong', + 'ReadPreferenceDouble', 'ReadPreferenceFloat', 'ReadPreferenceLong', 'ReadPreferenceQuad', + 'ReadPreferenceString', 'ReadProgramData', 'ReadProgramError', 'ReadProgramString', 'ReadQuad', 'ReadString', + 'ReadStringFormat', 'ReadWord', 'ReAllocateMemory', 'ReceiveNetworkData', 'ReceiveNetworkFile', 'Red', + 'Reg_DeleteEmptyKey', 'Reg_DeleteKey', 'Reg_DeleteValue', 'Reg_GetErrorMsg', 'Reg_GetErrorNr', + 'Reg_GetValueTyp', 'Reg_ListSubKey', 'Reg_ListSubValue', 'Reg_ReadBinary', 'Reg_ReadExpandString', + 'Reg_ReadLong', 'Reg_ReadMultiLineString', 'Reg_ReadQuad', 'Reg_ReadString', 'Reg_WriteBinary', + 'Reg_WriteExpandString', 'Reg_WriteLong', 'Reg_WriteMultiLineString', 'Reg_WriteQuad', 'Reg_WriteString', + 'ReleaseMouse', 'RemoveBillboard', 'RemoveEnvironmentVariable', 'RemoveGadgetColumn', 'RemoveGadgetItem', + 'RemoveKeyboardShortcut', 'RemoveMaterialLayer', 'RemovePreferenceGroup', 'RemovePreferenceKey', + 'RemoveString', 'RemoveSysTrayIcon', 'RemoveXMLAttribute', 'RenameFile', 'RenderMovieFrame', 'RenderWorld', + 'ReplaceString', 'ResetList', 'ResizeBillboard', 'ResizeEntity', 'ResizeGadget', 'ResizeImage', 'ResizeMovie', + 'ResizeParticleEmitter', 'ResizeWindow', 'ResolveXMLAttributeName', 'ResolveXMLNodeName', 'ResumeAudioCD', + 'ResumeMovie', 'ResumeThread', 'RGB', 'Right', 'RootXMLNode', 'RotateBillboardGroup', 'RotateCamera', + 'RotateEntity', 'RotateMaterial', 'RotateSprite3D', 'Round', 'RSet', 'RTrim', 'RunProgram', 'SaveFileRequester', + 'SaveImage', 'SaveSprite', 'SaveXML', 'ScaleEntity', 'ScaleMaterial', 'ScintillaGadget', 'ScintillaSendMessage', + 'ScreenID', 'ScreenModeDepth', 'ScreenModeHeight', 'ScreenModeRefreshRate', 'ScreenModeWidth', + 'ScreenOutput', 'ScrollAreaGadget', 'ScrollBarGadget', 'ScrollMaterial', 'Second', 'SecondWorldCollisionEntity', + 'SelectedFilePattern', 'SelectedFontColor', 'SelectedFontName', 'SelectedFontSize', 'SelectedFontStyle', + 'SelectElement', 'SendNetworkData', 'SendNetworkFile', 'SendNetworkString', 'SetActiveGadget', + 'SetActiveWindow', 'SetClipboardImage', 'SetClipboardText', 'SetCurrentDirectory', 'SetDragCallback', + 'SetDropCallback', 'SetEntityAnimationTime', 'SetEntityFriction', 'SetEntityMass', 'SetEnvironmentVariable', + 'SetErrorNumber', 'SetFileAttributes', 'SetFileDate', 'SetFrameRate', 'SetGadgetAttribute', 'SetGadgetColor', + 'SetGadgetData', 'SetGadgetFont', 'SetGadgetItemAttribute', 'SetGadgetItemColor', 'SetGadgetItemData', + 'SetGadgetItemState', 'SetGadgetItemText', 'SetGadgetState', 'SetGadgetText', 'SetMenuItemState', + 'SetMenuItemText', 'SetMenuTitleText', 'SetMeshData', 'SetModulePosition', 'SetPaletteColor', 'SetRefreshRate', + 'SetToolBarButtonState', 'SetWindowCallback', 'SetWindowColor', 'SetWindowState', 'SetWindowTitle', + 'SetXMLAttribute', 'SetXMLEncoding', 'SetXMLNodeName', 'SetXMLNodeOffset', 'SetXMLNodeText', + 'SetXMLStandalone', 'Sin', 'SizeOf', 'SkyBox', 'SkyDome', 'SmartWindowRefresh', 'SortArray', 'SortList', + 'SortStructuredArray', 'SortStructuredList', 'SoundFrequency', 'SoundPan', 'SoundVolume', 'Space', + 'SpinGadget', 'SplitterGadget', 'Sprite3DBlendingMode', 'Sprite3DQuality', 'SpriteCollision', 'SpriteDepth', + 'SpriteHeight', 'SpriteID', 'SpriteOutput', 'SpritePixelCollision', 'SpriteWidth', 'Sqr', 'Start3D', 'StartDrawing', + 'StartPrinting', 'StartSpecialFX', 'StatusBarHeight', 'StatusBarIcon', 'StatusBarID', 'StatusBarText', + 'StickyWindow', 'Stop3D', 'StopAudioCD', 'StopDrawing', 'StopModule', 'StopMovie', 'StopPrinting', + 'StopSound', 'StopSpecialFX', 'Str', 'StrD', 'StrF', 'StringByteLength', 'StringField', 'StringGadget', 'StrQ', + 'StrU', 'Subsystem', 'SwapElements', 'SysTrayIconToolTip', 'Tan', 'TerrainHeight', 'TextGadget', 'TextHeight', + 'TextureHeight', 'TextureID', 'TextureOutput', 'TextureWidth', 'TextWidth', 'ThreadID', 'ThreadPriority', + 'ToolBarHeight', 'ToolBarID', 'ToolBarImageButton', 'ToolBarSeparator', 'ToolBarStandardButton', + 'ToolBarToolTip', 'TrackBarGadget', 'TransformSprite3D', 'TransparentSpriteColor', 'TreeGadget', 'Trim', + 'TruncateFile', 'TryLockMutex', 'UCase', 'UnlockMutex', 'UnpackMemory', 'UseAudioCD', 'UseBuffer', + 'UseGadgetList', 'UseJPEGImageDecoder', 'UseJPEGImageEncoder', 'UseODBCDatabase', 'UseOGGSoundDecoder', + 'UsePNGImageDecoder', 'UsePNGImageEncoder', 'UseTGAImageDecoder', 'UseTIFFImageDecoder', 'Val', 'ValD', + 'ValF', 'ValQ', 'WaitProgram', 'WaitThread', 'WaitWindowEvent', 'WebGadget', 'WebGadgetPath', 'WindowEvent', + 'WindowHeight', 'WindowID', 'WindowMouseX', 'WindowMouseY', 'WindowOutput', 'WindowWidth', 'WindowX', + 'WindowY', 'WorldGravity', 'WorldShadows', 'WriteByte', 'WriteCharacter', 'WriteConsoleData', 'WriteData', + 'WriteDouble', 'WriteFloat', 'WriteLong', 'WritePreferenceDouble', 'WritePreferenceFloat', 'WritePreferenceLong', + 'WritePreferenceQuad', 'WritePreferenceString', 'WriteProgramData', 'WriteProgramString', 'WriteProgramStringN', + 'WriteQuad', 'WriteString', 'WriteStringFormat', 'WriteStringN', 'WriteWord', 'XMLAttributeName', 'XMLAttributeValue', + 'XMLChildCount', 'XMLError', 'XMLErrorLine', 'XMLErrorPosition', 'XMLNodeFromID', 'XMLNodeFromPath', 'XMLNodePath', + 'XMLNodeType', 'XMLStatus', 'Year', 'ZoomSprite3D' + ), + 3 => array( + // some ASM instructions + 'AAA', 'AAD', 'AAM', 'AAS', 'ADC', 'ADD', 'AND', 'ARPL', 'BOUND', 'BSF', 'BSR', 'BSWAP', 'BT', 'BTC', 'BTR', + 'BTS', 'CALL', 'CBW', 'CDQ', 'CLC', 'CLD', 'CLI', 'CLTS', 'CMC', 'CMP', 'CMPS', 'CMPXCHG', 'CWD', 'CWDE', + 'DAA', 'DAS', 'DB', 'DD', 'DEC', 'DIV', 'DW', 'ENTER', 'ESC', 'F2XM1', 'FABS', 'FADD', 'FCHS', 'FCLEX', + 'FCOM', 'FDIV', 'FDIVR', 'FFREE', 'FINCSTP', 'FINIT', 'FLD', 'FLD1', 'FLDCW', 'FMUL', 'FNOP', 'FPATAN', + 'FPREM', 'FRNDINT', 'FSAVE', 'FSCALE', 'FSETPM', 'FSIN', 'FSQRT', 'FST', 'FSTENV', 'FSTSW', 'FSUB', + 'FSUBR', 'FTST', 'FUCOM', 'FWAIT', 'FXAM', 'FXCH', 'FXTRACT', 'FYL2X', 'FYL2XP1', 'HLT', 'IDIV', 'IMUL', + 'IN', 'INC', 'INS', 'INT', 'INTO', 'INVLPG', 'IRET', 'IRETD', 'JA', 'JAE', 'JB', 'JBE', 'JC', 'JCXZ', 'JE', 'JECXZ', + 'JG', 'JGE', 'JL', 'JLE', 'JMP', 'JNA', 'JNAE', 'JNB', 'JNBE', 'JNC', 'JNE', 'JNG', 'JNGE', 'JNL', 'JNLE', 'JNO', 'JNP', + 'JNS', 'JNZ', 'JO', 'JP', 'JPE', 'JPO', 'JS', 'JZ', 'LAHF', 'LAR', 'LDS', 'LEA', 'LEAVE', 'LES', 'LFS', 'LGDT', 'LGS', + 'LIDT', 'LLDT', 'LMSW', 'LOCK', 'LODS', 'LOOP', 'LOOPE', 'LOOPNE', 'LOOPNZ', 'LOOPZ', 'LSL', 'LSS', 'LTR', + 'MOV', 'MOVS', 'MOVSX', 'MOVZX', 'MUL', 'NEG', 'NOP', 'NOT', 'OR', 'OUT', 'OUTS', 'POP', 'POPA', 'POPAD', + 'POPF', 'POPFD', 'PUSH', 'PUSHA', 'PUSHAD', 'PUSHF', 'PUSHFD', 'RCL', 'RCR', 'REP', 'REPE', 'REPNE', + 'REPNZ', 'REPZ', 'RET', 'RETF', 'ROL', 'ROR', 'SAHF', 'SAL', 'SAR', 'SBB', 'SCAS', 'SETAE', 'SETB', 'SETBE', + 'SETC', 'SETE', 'SETG', 'SETGE', 'SETL', 'SETLE', 'SETNA', 'SETNAE', 'SETNB', 'SETNC', 'SETNE', 'SETNG', + 'SETNGE', 'SETNL', 'SETNLE', 'SETNO', 'SETNP', 'SETNS', 'SETNZ', 'SETO', 'SETP', 'SETPE', 'SETPO', + 'SETS', 'SETZ', 'SGDT', 'SHL', 'SHLD', 'SHR', 'SHRD', 'SIDT', 'SLDT', 'SMSW', 'STC', 'STD', 'STI', + 'STOS', 'STR', 'SUB', 'TEST', 'VERR', 'VERW', 'WAIT', 'WBINVD', 'XCHG', 'XLAT', 'XLATB', 'XOR' + ) + ), + 'SYMBOLS' => array( + '(', ')', '+', '-', '*', '/', '\\', '>', '<', '=', '<=', '>=', '&', '|', '!', '~', '<>', '>>', '<<', '%' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #0000ff;', + 3 => 'color: #000fff;' + ), + 'COMMENTS' => array( + 1 => 'color: #ff0000; font-style: italic;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000066;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '\\' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + 1 => false + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/python.php b/inc/geshi/python.php index 6f378f434..1be7e2953 100644 --- a/inc/geshi/python.php +++ b/inc/geshi/python.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Python language file for GeSHi. diff --git a/inc/geshi/q.php b/inc/geshi/q.php new file mode 100644 index 000000000..9629ded4a --- /dev/null +++ b/inc/geshi/q.php @@ -0,0 +1,149 @@ +<?php +/************************************************************************************* + * q.php + * ----- + * Author: Ian Roddis (ian.roddis@proteanmind.net) + * Copyright: (c) 2008 Ian Roddis (http://proteanmind.net) + * Release Version: 1.0.8.8 + * Date Started: 2009/01/21 + * + * q/kdb+ language file for GeSHi. + * + * Based on information available from code.kx.com + * + * CHANGES + * ------- + * 2010/01/21 (1.0.0) + * - First Release + * + * TODO (updated <1.0.0>) + * ------------------------- + * - Fix the handling of single line comments + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'q/kdb+', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 2 => '/ \s\/.*/', # This needs to get fixed up, since it won't catch some instances + # Multi line comments (Moved from REGEXPS) + 3 => '/^\/\s*?\n.*?\n\\\s*?\n/smi' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'KEYWORDS' => array( + 1 => array( + 'abs', 'acos', 'all', 'and', 'any', 'asc', 'asin', 'asof', 'atan', 'attr', 'avg', 'avgs', 'bin', 'ceiling', + 'cols', 'cor', 'cos', 'count', 'cov', 'cross', 'cut', 'deltas', 'desc', 'dev', 'differ', 'distinct', + 'div', 'each', 'enlist', 'eval', 'except', 'exec', 'exit', 'exp', 'fills', 'first', 'flip', 'floor', + 'fkeys', 'get', 'getenv', 'group', 'gtime', 'hclose', 'hcount', 'hdel', 'hopen', 'hsym', 'iasc', 'idesc', + 'in', 'insert', 'inter', 'inv', 'joins', 'key', 'keys', 'last', 'like', 'load', 'log', 'lower', + 'lsq', 'ltime', 'ltrim', 'mavg', 'max', 'maxs', 'mcount', 'md5', 'mdev', 'med', 'meta', 'min', 'mins', + 'mmax', 'mmin', 'mmu', 'mod', 'msum', 'neg', 'next', 'not', 'null', 'or', 'over', 'parse', 'peach', + 'plist', 'prd', 'prds', 'prev', 'rand', 'rank', 'ratios', 'raze', 'read0', 'read1', 'reciprocal', + 'reverse', 'rload', 'rotate', 'rsave', 'rtrim', 'save', 'scan', 'set', 'setenv', 'show', 'signum', + 'sin', 'sqrt', 'ss', 'ssr', 'string', 'sublist', 'sum', 'sums', 'sv', 'system', 'tables', 'tan', 'til', 'trim', + 'txf', 'type', 'ungroup', 'union', 'upper', 'upsert', 'value', 'var', 'view', 'views', 'vs', + 'wavg', 'within', 'wsum', 'xasc', 'xbar', 'xcol', 'xcols', 'xdesc', 'xexp', 'xgroup', 'xkey', + 'xlog', 'xprev', 'xrank' + ), + # kdb database template keywords + 2 => array( + 'aj', 'by', 'delete', 'fby', 'from', 'ij', 'lj', 'pj', 'select', 'uj', 'update', 'where', 'wj', + ), + ), + 'SYMBOLS' => array( + '?', '#', ',', '_', '@', '.', '^', '~', '$', '!', '\\', '\\', '/:', '\:', "'", "':", '::', '+', '-', '%', '*' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #009900; font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic;', + 3 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #990000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 2 => 'color: #999900;', + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + # Symbols + 2 => '`[^\s"]*', + ), + 'URLS' => array( + 1 => '', + 2 => '', + ), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php index e3b5df8a1..da4372258 100644 --- a/inc/geshi/qbasic.php +++ b/inc/geshi/qbasic.php @@ -4,7 +4,7 @@ * ---------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * QBasic/QuickBASIC language file for GeSHi. @@ -55,7 +55,9 @@ $language_data = array ( 'COMMENT_MULTI' => array(), 'COMMENT_REGEXP' => array( //Single-Line Comments using REM command - 2 => "/\bREM.*?$/i" + 2 => "/\bREM.*?$/i", + //Line numbers + 3 => "/^\s*\d+/im" ), 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 'QUOTEMARKS' => array('"'), @@ -93,7 +95,7 @@ $language_data = array ( ) ), 'SYMBOLS' => array( - '(', ')', ',', '+', '-', '*', '/', '=', '<', '>' + '(', ')', ',', '+', '-', '*', '/', '=', '<', '>', '^' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -107,7 +109,8 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080;', - 2 => 'color: #808080;' + 2 => 'color: #808080;', + 3 => 'color: #8080C0;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' @@ -129,6 +132,8 @@ $language_data = array ( 'SCRIPT' => array( ), 'REGEXPS' => array( + 1 => 'color: #cc66cc;', + 2 => 'color: #339933;' ) ), 'URLS' => array( @@ -139,6 +144,8 @@ $language_data = array ( 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( + 1 => '&(?:H[0-9a-fA-F]+|O[0-7]+)(?!\w)', + 2 => '#[0-9]+(?!\w)' ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -148,4 +155,4 @@ $language_data = array ( 'TAB_WIDTH' => 8 ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php index cc6e079b0..64d83ea16 100644 --- a/inc/geshi/rails.php +++ b/inc/geshi/rails.php @@ -4,7 +4,7 @@ * --------- * Author: Moises Deniz * Copyright: (c) 2005 Moises Deniz - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/03/21 * * Ruby (with Ruby on Rails Framework) language file for GeSHi. diff --git a/inc/geshi/rebol.php b/inc/geshi/rebol.php index 97eff1f32..a3889eec9 100644 --- a/inc/geshi/rebol.php +++ b/inc/geshi/rebol.php @@ -4,7 +4,7 @@ * -------- * Author: Lecanu Guillaume (Guillaume@LyA.fr) * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/12/22 * * Rebol language file for GeSHi. diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php index 59199f743..bb2e845f3 100644 --- a/inc/geshi/reg.php +++ b/inc/geshi/reg.php @@ -4,7 +4,7 @@ * ------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 03/15/2006 * * Microsoft Registry Editor language file for GeSHi. diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php index af5fe1426..baf286b7f 100644 --- a/inc/geshi/robots.php +++ b/inc/geshi/robots.php @@ -4,7 +4,7 @@ * -------- * Author: Christian Lescuyer (cl@goelette.net) * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/02/17 * * robots.txt language file for GeSHi. @@ -36,12 +36,14 @@ $language_data = array ( 'LANG_NAME' => 'robots.txt', 'COMMENT_SINGLE' => array(1 => '#'), 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(1 => "/^Comment:.*?/m"), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array(), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'User-agent', 'Disallow' + 'Allow', 'Crawl-delay', 'Disallow', 'Request-rate', 'Robot-version', + 'Sitemap', 'User-agent', 'Visit-time' ) ), 'SYMBOLS' => array( @@ -95,4 +97,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/rpmspec.php b/inc/geshi/rpmspec.php new file mode 100644 index 000000000..96dc9556f --- /dev/null +++ b/inc/geshi/rpmspec.php @@ -0,0 +1,133 @@ +<?php +/************************************************************************************* + * rpmspec.php + * --------------------------------- + * Author: Paul Grinberg (gri6507 TA unity-linux TOD org) + * Copyright: (c) 2010 Paul Grinberg + * Release Version: 1.0.8.8 + * Date Started: 2010/04/27 + * + * RPM Spec language file for GeSHi. + * + * CHANGES + * ------- + * 2010/04/27 (0.1) + * - First Release + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'RPM Specification File', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'QUOTEMARKS' => array('"','`'), + 'ESCAPE_CHAR' => '\\', + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + ), + 'KEYWORDS' => array( + ), + 'SYMBOLS' => array( + '<', '>', '=', + '!', '@', '~', '&', '|', '^', + '+','-', '*', '/', '%', + ',', ';', '?', '.', ':' + ), + 'STYLES' => array( + 'KEYWORDS' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #009999;', + 3 => 'color: #000000; font-weight: bold;', + 4 => 'color: #ff6600; font-style: italic;', + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + 1 => array( + // search for generic macros + GESHI_SEARCH => '(%{?[a-zA-Z0-9_]+}?)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 2 => array( + // search for special macros + GESHI_SEARCH => '(%(?:define|patch\d*|mklibname|mkrel|configure\S+|makeinstall\S+|make_session|make|defattr|config|doc|setup))', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 3 => array ( + // special definitions + GESHI_SEARCH => '((?:summary|license|buildroot|buildrequires|provides|version|release|source\d*|group|buildarch|autoreqprov|provides|obsoletes|vendor|distribution|suggests|autoreq|autoprov|conflicts|name|url|requires|patch\d*):)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 4 => array ( + // section delimiting words + GESHI_SEARCH => '(%(?:description|package|prep|build|install|clean|postun|preun|post|pre|files|changelog))', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + ), + 'URLS' => array(), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/rsplus.php b/inc/geshi/rsplus.php new file mode 100644 index 000000000..b73f5ea77 --- /dev/null +++ b/inc/geshi/rsplus.php @@ -0,0 +1,483 @@ +<?php +/************************************************************************************* + * rsplus.php + * ———– + * Author: Ron Fredericks (ronf@LectureMaker.com) + * Contributors: + * - Benilton Carvalho (beniltoncarvalho@gmail.com) + * Copyright: (c) 2009 Ron Fredericks (http://www.LectureMaker.com) + * Release Version: 1.0.8.8 + * Date Started: 2009/03/28 + * + * R language file for GeSHi. + * + * CHANGES + * ——- + * 2009/04/06 + * - Add references to Sekhon’s R Package docs + * 2009/03/29 (1.0.8.5) + * - First Release + * 2009/07/16 (1.0.8.6) + * - Added functions from base packages (Benilton Carvalho - carvalho@bclab.org) + * + * References + * ———- + * Some online R Package documentation: + * http://sekhon.berkeley.edu/library/index.html 2.4 docs + * http://astrostatistics.psu.edu/su07/R/html 2.5 docs + * + * Another R GeSHi with no meat? + * http://organicdesign.co.nz/GeSHi/R.php + * SourceForge R discussion: + * http://sourceforge.net/tracker/?func=detail&aid=2276025&group_id=114997&atid=670234 + * + * TODO (updated 2007/02/06) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'R / S+', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'else','global','in', 'otherwise','persistent', + ), + 2 => array( // base package + '$.package_version', '$<-', '$<-.data.frame', 'abbreviate', 'abs', 'acos', 'acosh', 'addNA', 'addTaskCallback', + 'agrep', 'alist', 'all', 'all.equal', 'all.equal.character', 'all.equal.default', 'all.equal.factor', + 'all.equal.formula', 'all.equal.language', 'all.equal.list', 'all.equal.numeric', 'all.equal.POSIXct', + 'all.equal.raw', 'all.names', 'all.vars', 'any', 'aperm', 'append', 'apply', 'Arg', 'args', 'array', 'as.array', + 'as.array.default', 'as.call', 'as.character', 'as.character.condition', 'as.character.Date', 'as.character.default', + 'as.character.error', 'as.character.factor', 'as.character.hexmode', 'as.character.numeric_version', 'as.character.octmode', + 'as.character.POSIXt', 'as.character.srcref', 'as.complex', 'as.data.frame', 'as.data.frame.array', 'as.data.frame.AsIs', + 'as.data.frame.character', 'as.data.frame.complex', 'as.data.frame.data.frame', 'as.data.frame.Date', 'as.data.frame.default', + 'as.data.frame.difftime', 'as.data.frame.factor', 'as.data.frame.integer', 'as.data.frame.list', 'as.data.frame.logical', + 'as.data.frame.matrix', 'as.data.frame.model.matrix', 'as.data.frame.numeric', 'as.data.frame.numeric_version', + 'as.data.frame.ordered', 'as.data.frame.POSIXct', 'as.data.frame.POSIXlt', 'as.data.frame.raw', 'as.data.frame.table', + 'as.data.frame.ts', 'as.data.frame.vector', 'as.Date', 'as.Date.character', 'as.Date.date', 'as.Date.dates', + 'as.Date.default', 'as.Date.factor', 'as.Date.numeric', 'as.Date.POSIXct', 'as.Date.POSIXlt', 'as.difftime', 'as.double', + 'as.double.difftime', 'as.double.POSIXlt', 'as.environment', 'as.expression', 'as.expression.default', 'as.factor', + 'as.function', 'as.function.default', 'as.hexmode', 'as.integer', 'as.list', 'as.list.data.frame', 'as.list.default', + 'as.list.environment', 'as.list.factor', 'as.list.function', 'as.list.numeric_version', 'as.logical', 'as.matrix', + 'as.matrix.data.frame', 'as.matrix.default', 'as.matrix.noquote', 'as.matrix.POSIXlt', 'as.name', 'as.null', 'as.null.default', + 'as.numeric', 'as.numeric_version', 'as.octmode', 'as.ordered', 'as.package_version', 'as.pairlist', 'as.POSIXct', + 'as.POSIXct.date', 'as.POSIXct.Date', 'as.POSIXct.dates', 'as.POSIXct.default', 'as.POSIXct.numeric', 'as.POSIXct.POSIXlt', + 'as.POSIXlt', 'as.POSIXlt.character', 'as.POSIXlt.date', 'as.POSIXlt.Date', 'as.POSIXlt.dates', 'as.POSIXlt.default', + 'as.POSIXlt.factor', 'as.POSIXlt.numeric', 'as.POSIXlt.POSIXct', 'as.qr', 'as.raw', 'as.real', 'as.single', + 'as.single.default', 'as.symbol', 'as.table', 'as.table.default', 'as.vector', 'as.vector.factor', 'asin', 'asinh', + 'asNamespace', 'asS4', 'assign', 'atan', 'atan2', 'atanh', 'attach', 'attachNamespace', 'attr', 'attr.all.equal', + 'attr<-', 'attributes', 'attributes<-', 'autoload', 'autoloader', 'backsolve', 'baseenv', 'basename', 'besselI', + 'besselJ', 'besselK', 'besselY', 'beta', 'bindingIsActive', 'bindingIsLocked', 'bindtextdomain', 'body', 'body<-', + 'bquote', 'break', 'browser', 'builtins', 'by', 'by.data.frame', 'by.default', 'bzfile', 'c', 'c.Date', 'c.noquote', + 'c.numeric_version', 'c.POSIXct', 'c.POSIXlt', 'call', 'callCC', 'capabilities', 'casefold', 'cat', 'category', + 'cbind', 'cbind.data.frame', 'ceiling', 'char.expand', 'character', 'charmatch', 'charToRaw', 'chartr', 'check_tzones', + 'chol', 'chol.default', 'chol2inv', 'choose', 'class', 'class<-', 'close', 'close.connection', 'close.srcfile', + 'closeAllConnections', 'codes', 'codes.factor', 'codes.ordered', 'codes<-', 'col', 'colMeans', 'colnames', + 'colnames<-', 'colSums', 'commandArgs', 'comment', 'comment<-', 'complex', 'computeRestarts', 'conditionCall', + 'conditionCall.condition', 'conditionMessage', 'conditionMessage.condition', 'conflicts', 'Conj', 'contributors', + 'cos', 'cosh', 'crossprod', 'Cstack_info', 'cummax', 'cummin', 'cumprod', 'cumsum', 'cut', 'cut.Date', 'cut.default', + 'cut.POSIXt', 'data.class', 'data.frame', 'data.matrix', 'date', 'debug', 'default.stringsAsFactors', 'delay', + 'delayedAssign', 'deparse', 'det', 'detach', 'determinant', 'determinant.matrix', 'dget', 'diag', 'diag<-', 'diff', + 'diff.Date', 'diff.default', 'diff.POSIXt', 'difftime', 'digamma', 'dim', 'dim.data.frame', 'dim<-', 'dimnames', + 'dimnames.data.frame', 'dimnames<-', 'dimnames<-.data.frame', 'dir', 'dir.create', 'dirname', 'do.call', 'double', + 'dput', 'dQuote', 'drop', 'dump', 'duplicated', 'duplicated.array', 'duplicated.data.frame', 'duplicated.default', + 'duplicated.matrix', 'duplicated.numeric_version', 'duplicated.POSIXlt', 'dyn.load', 'dyn.unload', 'eapply', 'eigen', + 'emptyenv', 'encodeString', 'Encoding', 'Encoding<-', 'env.profile', 'environment', 'environment<-', 'environmentIsLocked', + 'environmentName', 'eval', 'eval.parent', 'evalq', 'exists', 'exp', 'expand.grid', 'expm1', 'expression', 'F', 'factor', + 'factorial', 'fifo', 'file', 'file.access', 'file.append', 'file.choose', 'file.copy', 'file.create', 'file.exists', + 'file.info', 'file.path', 'file.remove', 'file.rename', 'file.show', 'file.symlink', 'Filter', 'Find', 'findInterval', + 'findPackageEnv', 'findRestart', 'floor', 'flush', 'flush.connection', 'for', 'force', 'formals', 'formals<-', + 'format', 'format.AsIs', 'format.char', 'format.data.frame', 'format.Date', 'format.default', 'format.difftime', + 'format.factor', 'format.hexmode', 'format.info', 'format.octmode', 'format.POSIXct', 'format.POSIXlt', + 'format.pval', 'formatC', 'formatDL', 'forwardsolve', 'function', 'gamma', 'gammaCody', 'gc', 'gc.time', + 'gcinfo', 'gctorture', 'get', 'getAllConnections', 'getCallingDLL', 'getCallingDLLe', 'getCConverterDescriptions', + 'getCConverterStatus', 'getConnection', 'getDLLRegisteredRoutines', 'getDLLRegisteredRoutines.character', + 'getDLLRegisteredRoutines.DLLInfo', 'getenv', 'geterrmessage', 'getExportedValue', 'getHook', 'getLoadedDLLs', + 'getNamespace', 'getNamespaceExports', 'getNamespaceImports', 'getNamespaceInfo', 'getNamespaceName', + 'getNamespaceUsers', 'getNamespaceVersion', 'getNativeSymbolInfo', 'getNumCConverters', 'getOption', 'getRversion', + 'getSrcLines', 'getTaskCallbackNames', 'gettext', 'gettextf', 'getwd', 'gl', 'globalenv', 'gregexpr', 'grep', + 'grepl', 'gsub', 'gzcon', 'gzfile', 'httpclient', 'I', 'iconv', 'iconvlist', 'icuSetCollate', 'identical', 'identity', + 'if', 'ifelse', 'Im', 'importIntoEnv', 'inherits', 'integer', 'interaction', 'interactive', 'intersect', 'intToBits', + 'intToUtf8', 'inverse.rle', 'invisible', 'invokeRestart', 'invokeRestartInteractively', 'is.array', 'is.atomic', + 'is.call', 'is.character', 'is.complex', 'is.data.frame', 'is.double', 'is.element', 'is.environment', + 'is.expression', 'is.factor', 'is.finite', 'is.function', 'is.infinite', 'is.integer', 'is.language', + 'is.list', 'is.loaded', 'is.logical', 'is.matrix', 'is.na', 'is.na.data.frame', 'is.na.POSIXlt', 'is.na<-', + 'is.na<-.default', 'is.na<-.factor', 'is.name', 'is.nan', 'is.null', 'is.numeric', 'is.numeric_version', + 'is.numeric.Date', 'is.numeric.POSIXt', 'is.object', 'is.ordered', 'is.package_version', 'is.pairlist', 'is.primitive', + 'is.qr', 'is.R', 'is.raw', 'is.real', 'is.recursive', 'is.single', 'is.symbol', 'is.table', 'is.unsorted', 'is.vector', + 'isBaseNamespace', 'isdebugged', 'isIncomplete', 'isNamespace', 'ISOdate', 'ISOdatetime', 'isOpen', 'isRestart', 'isS4', + 'isSeekable', 'isSymmetric', 'isSymmetric.matrix', 'isTRUE', 'jitter', 'julian', 'julian.Date', 'julian.POSIXt', 'kappa', + 'kappa.default', 'kappa.lm', 'kappa.qr', 'kappa.tri', 'kronecker', 'l10n_info', 'La.chol', 'La.chol2inv', 'La.eigen', + 'La.svd', 'labels', 'labels.default', 'lapply', 'lazyLoad', 'lazyLoadDBfetch', 'lbeta', 'lchoose', 'length', 'length<-', + 'length<-.factor', 'letters', 'LETTERS', 'levels', 'levels.default', 'levels<-', 'levels<-.factor', 'lfactorial', 'lgamma', + 'library', 'library.dynam', 'library.dynam.unload', 'licence', 'license', 'list', 'list.files', 'load', 'loadedNamespaces', + 'loadingNamespaceInfo', 'loadNamespace', 'loadURL', 'local', 'lockBinding', 'lockEnvironment', 'log', 'log10', 'log1p', 'log2', + 'logb', 'logical', 'lower.tri', 'ls', 'machine', 'Machine', 'make.names', 'make.unique', 'makeActiveBinding', 'manglePackageName', + 'Map', 'mapply', 'margin.table', 'mat.or.vec', 'match', 'match.arg', 'match.call', 'match.fun', 'Math.data.frame', 'Math.Date', + 'Math.difftime', 'Math.factor', 'Math.POSIXt', 'matrix', 'max', 'max.col', 'mean', 'mean.data.frame', 'mean.Date', 'mean.default', + 'mean.difftime', 'mean.POSIXct', 'mean.POSIXlt', 'mem.limits', 'memory.profile', 'merge', 'merge.data.frame', 'merge.default', + 'message', 'mget', 'min', 'missing', 'Mod', 'mode', 'mode<-', 'month.abb', 'month.name', 'months', 'months.Date', + 'months.POSIXt', 'mostattributes<-', 'names', 'names<-', 'namespaceExport', 'namespaceImport', 'namespaceImportClasses', + 'namespaceImportFrom', 'namespaceImportMethods', 'nargs', 'nchar', 'ncol', 'NCOL', 'Negate', 'new.env', 'next', 'NextMethod', + 'ngettext', 'nlevels', 'noquote', 'nrow', 'NROW', 'numeric', 'numeric_version', 'nzchar', 'objects', 'oldClass', + 'oldClass<-', 'on.exit', 'open', 'open.connection', 'open.srcfile', 'open.srcfilecopy', 'Ops.data.frame', 'Ops.Date', + 'Ops.difftime', 'Ops.factor', 'Ops.numeric_version', 'Ops.ordered', 'Ops.POSIXt', 'options', 'order', 'ordered', + 'outer', 'package_version', 'package.description', 'packageEvent', 'packageHasNamespace', 'packageStartupMessage', + 'packBits', 'pairlist', 'parent.env', 'parent.env<-', 'parent.frame', 'parse', 'parse.dcf', 'parseNamespaceFile', + 'paste', 'path.expand', 'pentagamma', 'pi', 'pipe', 'Platform', 'pmatch', 'pmax', 'pmax.int', 'pmin', 'pmin.int', + 'polyroot', 'pos.to.env', 'Position', 'pretty', 'prettyNum', 'print', 'print.AsIs', 'print.atomic', 'print.by', + 'print.condition', 'print.connection', 'print.data.frame', 'print.Date', 'print.default', 'print.difftime', + 'print.DLLInfo', 'print.DLLInfoList', 'print.DLLRegisteredRoutines', 'print.factor', 'print.hexmode', 'print.libraryIQR', + 'print.listof', 'print.NativeRoutineList', 'print.noquote', 'print.numeric_version', 'print.octmode', 'print.packageInfo', + 'print.POSIXct', 'print.POSIXlt', 'print.proc_time', 'print.restart', 'print.rle', 'print.simple.list', + 'print.srcfile', 'print.srcref', 'print.summary.table', 'print.table', 'print.warnings', 'printNoClass', + 'prmatrix', 'proc.time', 'prod', 'prop.table', 'provide', 'psigamma', 'pushBack', 'pushBackLength', 'q', 'qr', + 'qr.coef', 'qr.default', 'qr.fitted', 'qr.Q', 'qr.qty', 'qr.qy', 'qr.R', 'qr.resid', 'qr.solve', 'qr.X', 'quarters', + 'quarters.Date', 'quarters.POSIXt', 'quit', 'quote', 'R_system_version', 'R.home', 'R.version', 'R.Version', + 'R.version.string', 'range', 'range.default', 'rank', 'rapply', 'raw', 'rawConnection', 'rawConnectionValue', + 'rawShift', 'rawToBits', 'rawToChar', 'rbind', 'rbind.data.frame', 'rcond', 'Re', 'read.dcf', 'read.table.url', + 'readBin', 'readChar', 'readline', 'readLines', 'real', 'Recall', 'Reduce', 'reg.finalizer', 'regexpr', + 'registerS3method', 'registerS3methods', 'remove', 'removeCConverter', 'removeTaskCallback', 'rep', 'rep.Date', + 'rep.factor', 'rep.int', 'rep.numeric_version', 'rep.POSIXct', 'rep.POSIXlt', 'repeat', 'replace', 'replicate', + 'require', 'restart', 'restartDescription', 'restartFormals', 'retracemem', 'return', 'rev', 'rev.default', 'rle', + 'rm', 'RNGkind', 'RNGversion', 'round', 'round.Date', 'round.difftime', 'round.POSIXt', 'row', 'row.names', + 'row.names.data.frame', 'row.names.default', 'row.names<-', 'row.names<-.data.frame', 'row.names<-.default', + 'rowMeans', 'rownames', 'rownames<-', 'rowsum', 'rowsum.data.frame', 'rowsum.default', 'rowSums', 'sample', + 'sample.int', 'sapply', 'save', 'save.image', 'saveNamespaceImage', 'scale', 'scale.default', 'scan', 'scan.url', + 'search', 'searchpaths', 'seek', 'seek.connection', 'seq', 'seq_along', 'seq_len', 'seq.Date', 'seq.default', + 'seq.int', 'seq.POSIXt', 'sequence', 'serialize', 'set.seed', 'setCConverterStatus', 'setdiff', 'setequal', + 'setHook', 'setNamespaceInfo', 'setSessionTimeLimit', 'setTimeLimit', 'setwd', 'showConnections', 'shQuote', + 'sign', 'signalCondition', 'signif', 'simpleCondition', 'simpleError', 'simpleMessage', 'simpleWarning', 'sin', + 'single', 'sinh', 'sink', 'sink.number', 'slice.index', 'socketConnection', 'socketSelect', 'solve', 'solve.default', + 'solve.qr', 'sort', 'sort.default', 'sort.int', 'sort.list', 'sort.POSIXlt', 'source', 'source.url', 'split', + 'split.data.frame', 'split.Date', 'split.default', 'split.POSIXct', 'split<-', 'split<-.data.frame', 'split<-.default', + 'sprintf', 'sqrt', 'sQuote', 'srcfile', 'srcfilecopy', 'srcref', 'standardGeneric', 'stderr', 'stdin', 'stdout', + 'stop', 'stopifnot', 'storage.mode', 'storage.mode<-', 'strftime', 'strptime', 'strsplit', 'strtrim', 'structure', + 'strwrap', 'sub', 'subset', 'subset.data.frame', 'subset.default', 'subset.matrix', 'substitute', 'substr', + 'substr<-', 'substring', 'substring<-', 'sum', 'summary', 'summary.connection', 'summary.data.frame', + 'Summary.data.frame', 'summary.Date', 'Summary.Date', 'summary.default', 'Summary.difftime', + 'summary.factor', 'Summary.factor', 'summary.matrix', 'Summary.numeric_version', 'summary.POSIXct', + 'Summary.POSIXct', 'summary.POSIXlt', 'Summary.POSIXlt', 'summary.table', 'suppressMessages', + 'suppressPackageStartupMessages', 'suppressWarnings', 'svd', 'sweep', 'switch', 'symbol.C', + 'symbol.For', 'sys.call', 'sys.calls', 'Sys.chmod', 'Sys.Date', 'sys.frame', 'sys.frames', + 'sys.function', 'Sys.getenv', 'Sys.getlocale', 'Sys.getpid', 'Sys.glob', 'Sys.info', 'sys.load.image', + 'Sys.localeconv', 'sys.nframe', 'sys.on.exit', 'sys.parent', 'sys.parents', 'Sys.putenv', + 'sys.save.image', 'Sys.setenv', 'Sys.setlocale', 'Sys.sleep', 'sys.source', 'sys.status', + 'Sys.time', 'Sys.timezone', 'Sys.umask', 'Sys.unsetenv', 'Sys.which', 'system', 'system.file', + 'system.time', 't', 'T', 't.data.frame', 't.default', 'table', 'tabulate', 'tan', 'tanh', 'tapply', + 'taskCallbackManager', 'tcrossprod', 'tempdir', 'tempfile', 'testPlatformEquivalence', 'tetragamma', + 'textConnection', 'textConnectionValue', 'tolower', 'topenv', 'toString', 'toString.default', 'toupper', + 'trace', 'traceback', 'tracemem', 'tracingState', 'transform', 'transform.data.frame', 'transform.default', + 'trigamma', 'trunc', 'trunc.Date', 'trunc.POSIXt', 'truncate', 'truncate.connection', 'try', 'tryCatch', + 'typeof', 'unclass', 'undebug', 'union', 'unique', 'unique.array', 'unique.data.frame', 'unique.default', + 'unique.matrix', 'unique.numeric_version', 'unique.POSIXlt', 'units', 'units.difftime', 'units<-', + 'units<-.difftime', 'unix', 'unix.time', 'unlink', 'unlist', 'unloadNamespace', 'unlockBinding', + 'unname', 'unserialize', 'unsplit', 'untrace', 'untracemem', 'unz', 'upper.tri', 'url', 'UseMethod', + 'utf8ToInt', 'vector', 'Vectorize', 'version', 'Version', 'warning', 'warnings', 'weekdays', + 'weekdays.Date', 'weekdays.POSIXt', 'which', 'which.max', 'which.min', 'while', 'with', + 'with.default', 'withCallingHandlers', 'within', 'within.data.frame', 'within.list', 'withRestarts', + 'withVisible', 'write', 'write.dcf', 'write.table0', 'writeBin', 'writeChar', 'writeLines', 'xor', + 'xpdrows.data.frame', 'xtfrm', 'xtfrm.Date', 'xtfrm.default', 'xtfrm.factor', 'xtfrm.numeric_version', + 'xtfrm.POSIXct', 'xtfrm.POSIXlt', 'xtfrm.Surv', 'zapsmall', + ), + 3 => array( // Datasets + 'ability.cov', 'airmiles', 'AirPassengers', 'airquality', + 'anscombe', 'attenu', 'attitude', 'austres', 'beaver1', + 'beaver2', 'BJsales', 'BJsales.lead', 'BOD', 'cars', + 'ChickWeight', 'chickwts', 'co2', 'crimtab', + 'discoveries', 'DNase', 'esoph', 'euro', 'euro.cross', + 'eurodist', 'EuStockMarkets', 'faithful', 'fdeaths', + 'Formaldehyde', 'freeny', 'freeny.x', 'freeny.y', + 'HairEyeColor', 'Harman23.cor', 'Harman74.cor', 'Indometh', + 'infert', 'InsectSprays', 'iris', 'iris3', 'islands', + 'JohnsonJohnson', 'LakeHuron', 'ldeaths', 'lh', 'LifeCycleSavings', + 'Loblolly', 'longley', 'lynx', 'mdeaths', 'morley', 'mtcars', + 'nhtemp', 'Nile', 'nottem', 'occupationalStatus', 'Orange', + 'OrchardSprays', 'PlantGrowth', 'precip', 'presidents', + 'pressure', 'Puromycin', 'quakes', 'randu', 'rivers', 'rock', + 'Seatbelts', 'sleep', 'stack.loss', 'stack.x', 'stackloss', + 'state.abb', 'state.area', 'state.center', 'state.division', + 'state.name', 'state.region', 'state.x77', 'sunspot.month', + 'sunspot.year', 'sunspots', 'swiss', 'Theoph', 'Titanic', 'ToothGrowth', + 'treering', 'trees', 'UCBAdmissions', 'UKDriverDeaths', 'UKgas', + 'USAccDeaths', 'USArrests', 'USJudgeRatings', 'USPersonalExpenditure', + 'uspop', 'VADeaths', 'volcano', 'warpbreaks', 'women', 'WorldPhones', + 'WWWusage', + ), + 4 => array( // graphics package + 'abline', 'arrows', 'assocplot', 'axis', 'Axis', 'axis.Date', 'axis.POSIXct', + 'axTicks', 'barplot', 'barplot.default', 'box', 'boxplot', 'boxplot.default', + 'boxplot.matrix', 'bxp', 'cdplot', 'clip', 'close.screen', 'co.intervals', + 'contour', 'contour.default', 'coplot', 'curve', 'dotchart', 'erase.screen', + 'filled.contour', 'fourfoldplot', 'frame', 'grconvertX', 'grconvertY', 'grid', + 'hist', 'hist.default', 'identify', 'image', 'image.default', 'layout', + 'layout.show', 'lcm', 'legend', 'lines', 'lines.default', 'locator', 'matlines', + 'matplot', 'matpoints', 'mosaicplot', 'mtext', 'pairs', 'pairs.default', + 'panel.smooth', 'par', 'persp', 'pie', 'piechart', 'plot', 'plot.default', + 'plot.design', 'plot.new', 'plot.window', 'plot.xy', 'points', 'points.default', + 'polygon', 'rect', 'rug', 'screen', 'segments', 'smoothScatter', 'spineplot', + 'split.screen', 'stars', 'stem', 'strheight', 'stripchart', 'strwidth', 'sunflowerplot', + 'symbols', 'text', 'text.default', 'title', 'xinch', 'xspline', 'xyinch', 'yinch', + ), + 5 => array( // grDevices pkg + 'as.graphicsAnnot', 'bitmap', 'blues9', 'bmp', 'boxplot.stats', 'cairo_pdf', 'cairo_ps', 'check.options', + 'chull', 'CIDFont', 'cm', 'cm.colors', 'col2rgb', 'colorConverter', 'colorRamp', 'colorRampPalette', + 'colors', 'colorspaces', 'colours', 'contourLines', 'convertColor', 'densCols', 'dev.control', 'dev.copy', + 'dev.copy2eps', 'dev.copy2pdf', 'dev.cur', 'dev.interactive', 'dev.list', 'dev.new', 'dev.next', 'dev.off', + 'dev.prev', 'dev.print', 'dev.set', 'dev.size', 'dev2bitmap', 'devAskNewPage', 'deviceIsInteractive', + 'embedFonts', 'extendrange', 'getGraphicsEvent', 'graphics.off', 'gray', 'gray.colors', 'grey', 'grey.colors', + 'hcl', 'heat.colors', 'Hershey', 'hsv', 'jpeg', 'make.rgb', 'n2mfrow', 'nclass.FD', 'nclass.scott', + 'nclass.Sturges', 'palette', 'pdf', 'pdf.options', 'pdfFonts', 'pictex', 'png', 'postscript', 'postscriptFont', + 'postscriptFonts', 'ps.options', 'quartz', 'quartz.options', 'quartzFont', 'quartzFonts', 'rainbow', + 'recordGraphics', 'recordPlot', 'replayPlot', 'rgb', 'rgb2hsv', 'savePlot', 'setEPS', 'setPS', 'svg', + 'terrain.colors', 'tiff', 'topo.colors', 'trans3d', 'Type1Font', 'x11', 'X11', 'X11.options', 'X11Font', + 'X11Fonts', 'xfig', 'xy.coords', 'xyTable', 'xyz.coords', + ), + 6 => array( // methods package + 'addNextMethod', 'allGenerics', 'allNames', 'Arith', 'as', 'as<-', + 'asMethodDefinition', 'assignClassDef', 'assignMethodsMetaData', 'balanceMethodsList', + 'cacheGenericsMetaData', 'cacheMetaData', 'cacheMethod', 'callGeneric', + 'callNextMethod', 'canCoerce', 'cbind2', 'checkSlotAssignment', 'classesToAM', + 'classMetaName', 'coerce', 'coerce<-', 'Compare', 'completeClassDefinition', + 'completeExtends', 'completeSubclasses', 'Complex', 'conformMethod', 'defaultDumpName', + 'defaultPrototype', 'doPrimitiveMethod', 'dumpMethod', 'dumpMethods', 'el', 'el<-', + 'elNamed', 'elNamed<-', 'empty.dump', 'emptyMethodsList', 'existsFunction', 'existsMethod', + 'extends', 'finalDefaultMethod', 'findClass', 'findFunction', 'findMethod', 'findMethods', + 'findMethodSignatures', 'findUnique', 'fixPre1.8', 'formalArgs', 'functionBody', + 'functionBody<-', 'generic.skeleton', 'getAccess', 'getAllMethods', 'getAllSuperClasses', + 'getClass', 'getClassDef', 'getClasses', 'getClassName', 'getClassPackage', 'getDataPart', + 'getExtends', 'getFunction', 'getGeneric', 'getGenerics', 'getGroup', 'getGroupMembers', + 'getMethod', 'getMethods', 'getMethodsForDispatch', 'getMethodsMetaData', 'getPackageName', + 'getProperties', 'getPrototype', 'getSlots', 'getSubclasses', 'getValidity', 'getVirtual', + 'hasArg', 'hasMethod', 'hasMethods', 'implicitGeneric', 'initialize', 'insertMethod', 'is', + 'isClass', 'isClassDef', 'isClassUnion', 'isGeneric', 'isGrammarSymbol', 'isGroup', + 'isSealedClass', 'isSealedMethod', 'isVirtualClass', 'isXS3Class', 'languageEl', 'languageEl<-', + 'linearizeMlist', 'listFromMethods', 'listFromMlist', 'loadMethod', 'Logic', + 'makeClassRepresentation', 'makeExtends', 'makeGeneric', 'makeMethodsList', + 'makePrototypeFromClassDef', 'makeStandardGeneric', 'matchSignature', 'Math', 'Math2', 'mergeMethods', + 'metaNameUndo', 'method.skeleton', 'MethodAddCoerce', 'methodSignatureMatrix', 'MethodsList', + 'MethodsListSelect', 'methodsPackageMetaName', 'missingArg', 'mlistMetaName', 'new', 'newBasic', + 'newClassRepresentation', 'newEmptyObject', 'Ops', 'packageSlot', 'packageSlot<-', 'possibleExtends', + 'prohibitGeneric', 'promptClass', 'promptMethods', 'prototype', 'Quote', 'rbind2', + 'reconcilePropertiesAndPrototype', 'registerImplicitGenerics', 'rematchDefinition', + 'removeClass', 'removeGeneric', 'removeMethod', 'removeMethods', 'removeMethodsObject', 'representation', + 'requireMethods', 'resetClass', 'resetGeneric', 'S3Class', 'S3Class<-', 'S3Part', 'S3Part<-', 'sealClass', + 'seemsS4Object', 'selectMethod', 'selectSuperClasses', 'sessionData', 'setAs', 'setClass', 'setClassUnion', + 'setDataPart', 'setGeneric', 'setGenericImplicit', 'setGroupGeneric', 'setIs', 'setMethod', 'setOldClass', + 'setPackageName', 'setPrimitiveMethods', 'setReplaceMethod', 'setValidity', 'show', 'showClass', 'showDefault', + 'showExtends', 'showMethods', 'showMlist', 'signature', 'SignatureMethod', 'sigToEnv', 'slot', 'slot<-', + 'slotNames', 'slotsFromS3', 'substituteDirect', 'substituteFunctionArgs', 'Summary', 'superClassDepth', + 'testInheritedMethods', 'testVirtual', 'traceOff', 'traceOn', 'tryNew', 'trySilent', 'unRematchDefinition', + 'validObject', 'validSlotNames', + ), + 7 => array( // stats pkg + 'acf', 'acf2AR', 'add.scope', 'add1', 'addmargins', 'aggregate', + 'aggregate.data.frame', 'aggregate.default', 'aggregate.ts', 'AIC', + 'alias', 'anova', 'anova.glm', 'anova.glmlist', 'anova.lm', 'anova.lmlist', + 'anova.mlm', 'anovalist.lm', 'ansari.test', 'aov', 'approx', 'approxfun', + 'ar', 'ar.burg', 'ar.mle', 'ar.ols', 'ar.yw', 'arima', 'arima.sim', + 'arima0', 'arima0.diag', 'ARMAacf', 'ARMAtoMA', 'as.dendrogram', 'as.dist', + 'as.formula', 'as.hclust', 'as.stepfun', 'as.ts', 'asOneSidedFormula', 'ave', + 'bandwidth.kernel', 'bartlett.test', 'binom.test', 'binomial', 'biplot', + 'Box.test', 'bw.bcv', 'bw.nrd', 'bw.nrd0', 'bw.SJ', 'bw.ucv', 'C', 'cancor', + 'case.names', 'ccf', 'chisq.test', 'clearNames', 'cmdscale', 'coef', 'coefficients', + 'complete.cases', 'confint', 'confint.default', 'constrOptim', 'contr.helmert', + 'contr.poly', 'contr.SAS', 'contr.sum', 'contr.treatment', 'contrasts', 'contrasts<-', + 'convolve', 'cooks.distance', 'cophenetic', 'cor', 'cor.test', 'cov', 'cov.wt', + 'cov2cor', 'covratio', 'cpgram', 'cutree', 'cycle', 'D', 'dbeta', 'dbinom', 'dcauchy', + 'dchisq', 'decompose', 'delete.response', 'deltat', 'dendrapply', 'density', 'density.default', + 'deriv', 'deriv.default', 'deriv.formula', 'deriv3', 'deriv3.default', 'deriv3.formula', + 'deviance', 'dexp', 'df', 'df.kernel', 'df.residual', 'dfbeta', 'dfbetas', 'dffits', + 'dgamma', 'dgeom', 'dhyper', 'diff.ts', 'diffinv', 'dist', 'dlnorm', 'dlogis', + 'dmultinom', 'dnbinom', 'dnorm', 'dpois', 'drop.scope', 'drop.terms', 'drop1', + 'dsignrank', 'dt', 'dummy.coef', 'dunif', 'dweibull', 'dwilcox', 'ecdf', 'eff.aovlist', + 'effects', 'embed', 'end', 'estVar', 'expand.model.frame', 'extractAIC', 'factanal', + 'factor.scope', 'family', 'fft', 'filter', 'fisher.test', 'fitted', 'fitted.values', + 'fivenum', 'fligner.test', 'formula', 'frequency', 'friedman.test', 'ftable', 'Gamma', + 'gaussian', 'get_all_vars', 'getInitial', 'glm', 'glm.control', 'glm.fit', 'glm.fit.null', + 'hasTsp', 'hat', 'hatvalues', 'hatvalues.lm', 'hclust', 'heatmap', 'HoltWinters', 'influence', + 'influence.measures', 'integrate', 'interaction.plot', 'inverse.gaussian', 'IQR', + 'is.empty.model', 'is.leaf', 'is.mts', 'is.stepfun', 'is.ts', 'is.tskernel', 'isoreg', + 'KalmanForecast', 'KalmanLike', 'KalmanRun', 'KalmanSmooth', 'kernapply', 'kernel', 'kmeans', + 'knots', 'kruskal.test', 'ks.test', 'ksmooth', 'lag', 'lag.plot', 'line', 'lines.ts', 'lm', + 'lm.fit', 'lm.fit.null', 'lm.influence', 'lm.wfit', 'lm.wfit.null', 'loadings', 'loess', + 'loess.control', 'loess.smooth', 'logLik', 'loglin', 'lowess', 'ls.diag', 'ls.print', 'lsfit', + 'mad', 'mahalanobis', 'make.link', 'makeARIMA', 'makepredictcall', 'manova', 'mantelhaen.test', + 'mauchley.test', 'mauchly.test', 'mcnemar.test', 'median', 'median.default', 'medpolish', + 'model.extract', 'model.frame', 'model.frame.aovlist', 'model.frame.default', 'model.frame.glm', + 'model.frame.lm', 'model.matrix', 'model.matrix.default', 'model.matrix.lm', 'model.offset', + 'model.response', 'model.tables', 'model.weights', 'monthplot', 'mood.test', 'mvfft', 'na.action', + 'na.contiguous', 'na.exclude', 'na.fail', 'na.omit', 'na.pass', 'napredict', 'naprint', 'naresid', + 'nextn', 'nlm', 'nlminb', 'nls', 'nls.control', 'NLSstAsymptotic', 'NLSstClosestX', 'NLSstLfAsymptote', + 'NLSstRtAsymptote', 'numericDeriv', 'offset', 'oneway.test', 'optim', 'optimise', 'optimize', + 'order.dendrogram', 'p.adjust', 'p.adjust.methods', 'pacf', 'pairwise.prop.test', 'pairwise.t.test', + 'pairwise.table', 'pairwise.wilcox.test', 'pbeta', 'pbinom', 'pbirthday', 'pcauchy', 'pchisq', 'pexp', + 'pf', 'pgamma', 'pgeom', 'phyper', 'plclust', 'plnorm', 'plogis', 'plot.density', 'plot.ecdf', 'plot.lm', + 'plot.mlm', 'plot.spec', 'plot.spec.coherency', 'plot.spec.phase', 'plot.stepfun', 'plot.ts', 'plot.TukeyHSD', + 'pnbinom', 'pnorm', 'poisson', 'poisson.test', 'poly', 'polym', 'power', 'power.anova.test', 'power.prop.test', + 'power.t.test', 'PP.test', 'ppoints', 'ppois', 'ppr', 'prcomp', 'predict', 'predict.glm', 'predict.lm', + 'predict.mlm', 'predict.poly', 'preplot', 'princomp', 'print.anova', 'print.coefmat', 'print.density', + 'print.family', 'print.formula', 'print.ftable', 'print.glm', 'print.infl', 'print.integrate', 'print.lm', + 'print.logLik', 'print.terms', 'print.ts', 'printCoefmat', 'profile', 'proj', 'promax', 'prop.test', + 'prop.trend.test', 'psignrank', 'pt', 'ptukey', 'punif', 'pweibull', 'pwilcox', 'qbeta', 'qbinom', + 'qbirthday', 'qcauchy', 'qchisq', 'qexp', 'qf', 'qgamma', 'qgeom', 'qhyper', 'qlnorm', 'qlogis', + 'qnbinom', 'qnorm', 'qpois', 'qqline', 'qqnorm', 'qqnorm.default', 'qqplot', 'qsignrank', 'qt', + 'qtukey', 'quade.test', 'quantile', 'quantile.default', 'quasi', 'quasibinomial', 'quasipoisson', + 'qunif', 'qweibull', 'qwilcox', 'r2dtable', 'rbeta', 'rbinom', 'rcauchy', 'rchisq', 'read.ftable', + 'rect.hclust', 'reformulate', 'relevel', 'reorder', 'replications', 'reshape', 'reshapeLong', 'reshapeWide', + 'resid', 'residuals', 'residuals.default', 'residuals.glm', 'residuals.lm', 'rexp', 'rf', 'rgamma', 'rgeom', + 'rhyper', 'rlnorm', 'rlogis', 'rmultinom', 'rnbinom', 'rnorm', 'rpois', 'rsignrank', 'rstandard', 'rstandard.glm', + 'rstandard.lm', 'rstudent', 'rstudent.glm', 'rstudent.lm', 'rt', 'runif', 'runmed', 'rweibull', 'rwilcox', + 'scatter.smooth', 'screeplot', 'sd', 'se.contrast', 'selfStart', 'setNames', 'shapiro.test', 'simulate', + 'smooth', 'smooth.spline', 'smoothEnds', 'sortedXyData', 'spec.ar', 'spec.pgram', 'spec.taper', 'spectrum', + 'spline', 'splinefun', 'splinefunH', 'SSasymp', 'SSasympOff', 'SSasympOrig', 'SSbiexp', 'SSD', 'SSfol', + 'SSfpl', 'SSgompertz', 'SSlogis', 'SSmicmen', 'SSweibull', 'start', 'stat.anova', 'step', 'stepfun', 'stl', + 'StructTS', 'summary.aov', 'summary.aovlist', 'summary.glm', 'summary.infl', 'summary.lm', 'summary.manova', + 'summary.mlm', 'summary.stepfun', 'supsmu', 'symnum', 't.test', 'termplot', 'terms', 'terms.aovlist', + 'terms.default', 'terms.formula', 'terms.terms', 'time', 'toeplitz', 'ts', 'ts.intersect', 'ts.plot', + 'ts.union', 'tsdiag', 'tsp', 'tsp<-', 'tsSmooth', 'TukeyHSD', 'TukeyHSD.aov', 'uniroot', 'update', + 'update.default', 'update.formula', 'var', 'var.test', 'variable.names', 'varimax', 'vcov', 'weighted.mean', + 'weighted.residuals', 'weights', 'wilcox.test', 'window', 'window<-', 'write.ftable', 'xtabs', + ), + 8 => array( // utils pkg + 'alarm', 'apropos', 'argsAnywhere', 'as.person', 'as.personList', 'as.relistable', 'as.roman', + 'assignInNamespace', 'available.packages', 'browseEnv', 'browseURL', 'browseVignettes', 'bug.report', + 'capture.output', 'checkCRAN', 'chooseCRANmirror', 'citation', 'citEntry', 'citFooter', 'citHeader', + 'close.socket', 'combn', 'compareVersion', 'contrib.url', 'count.fields', 'CRAN.packages', 'data', + 'data.entry', 'dataentry', 'de', 'de.ncols', 'de.restore', 'de.setup', 'debugger', 'demo', 'download.file', + 'download.packages', 'dump.frames', 'edit', 'emacs', 'example', 'file_test', 'file.edit', 'find', 'fix', + 'fixInNamespace', 'flush.console', 'formatOL', 'formatUL', 'getAnywhere', 'getCRANmirrors', 'getFromNamespace', + 'getS3method', 'getTxtProgressBar', 'glob2rx', 'head', 'head.matrix', 'help', 'help.request', 'help.search', + 'help.start', 'history', 'index.search', 'install.packages', 'installed.packages', 'is.relistable', + 'limitedLabels', 'loadhistory', 'localeToCharset', 'ls.str', 'lsf.str', 'make.packages.html', 'make.socket', + 'makeRweaveLatexCodeRunner', 'memory.limit', 'memory.size', 'menu', 'methods', 'mirror2html', 'modifyList', + 'new.packages', 'normalizePath', 'nsl', 'object.size', 'old.packages', 'package.contents', 'package.skeleton', + 'packageDescription', 'packageStatus', 'page', 'person', 'personList', 'pico', 'prompt', 'promptData', + 'promptPackage', 'rc.getOption', 'rc.options', 'rc.settings', 'rc.status', 'read.csv', 'read.csv2', 'read.delim', + 'read.delim2', 'read.DIF', 'read.fortran', 'read.fwf', 'read.socket', 'read.table', 'readCitationFile', 'recover', + 'relist', 'remove.packages', 'Rprof', 'Rprofmem', 'RShowDoc', 'RSiteSearch', 'rtags', 'Rtangle', 'RtangleSetup', + 'RtangleWritedoc', 'RweaveChunkPrefix', 'RweaveEvalWithOpt', 'RweaveLatex', 'RweaveLatexFinish', 'RweaveLatexOptions', + 'RweaveLatexSetup', 'RweaveLatexWritedoc', 'RweaveTryStop', 'savehistory', 'select.list', 'sessionInfo', + 'setRepositories', 'setTxtProgressBar', 'stack', 'Stangle', 'str', 'strOptions', 'summaryRprof', 'Sweave', + 'SweaveHooks', 'SweaveSyntaxLatex', 'SweaveSyntaxNoweb', 'SweaveSyntConv', 'tail', 'tail.matrix', 'timestamp', + 'toBibtex', 'toLatex', 'txtProgressBar', 'type.convert', 'unstack', 'unzip', 'update.packages', 'update.packageStatus', + 'upgrade', 'url.show', 'URLdecode', 'URLencode', 'vi', 'View', 'vignette', 'write.csv', 'write.csv2', 'write.socket', + 'write.table', 'wsbrowser', 'xedit', 'xemacs', 'zip.file.extract', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|','<-','->', + '^', '-', ':', '::', ':::', '!', '!=', '*', '?', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF; font-weight: bold;', + 2 => 'color: #0000FF; font-weight: bold;', + 3 => 'color: #CC9900; font-weight: bold;', + 4 => 'color: #0000FF; font-weight: bold;', + 5 => 'color: #0000FF; font-weight: bold;', + 6 => 'color: #0000FF; font-weight: bold;', + 7 => 'color: #0000FF; font-weight: bold;', + 8 => 'color: #0000FF; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #228B22;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + ), + 'BRACKETS' => array( + 0 => 'color: #080;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + 0 => 'color:#A020F0;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => 'http://astrostatistics.psu.edu/su07/R/html/graphics/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/graphics/html/{FNAME}.html + 3 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/Normal.html', // http://sekhon.berkeley.edu/library/stats/html/Normal.html + 4 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/stats/html/{FNAME}.html + 5 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/summary.lm.html', // http://sekhon.berkeley.edu/library/stats/html/summary.lm.html + 6 => 'http://astrostatistics.psu.edu/su07/R/html/base/html/Log.html', // http://sekhon.berkeley.edu/library/base/html/Log.html + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "([^\w])'([^\\n\\r']*)'", + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => "\\1'", + GESHI_AFTER => "'" + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#;>|^&\\.])(?<!\/html\/)", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\\.])" + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php index 8c2b7d829..47ecbb2e2 100644 --- a/inc/geshi/ruby.php +++ b/inc/geshi/ruby.php @@ -4,7 +4,7 @@ * -------- * Author: Moises Deniz * Copyright: (c) 2007 Moises Deniz - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/03/21 * * Ruby language file for GeSHi. @@ -40,6 +40,10 @@ $language_data = array ( 'LANG_NAME' => 'Ruby', 'COMMENT_SINGLE' => array(1 => "#"), 'COMMENT_MULTI' => array("=begin" => "=end"), + 'COMMENT_REGEXP' => array( + //Heredoc + 4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si', + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', '`','\''), 'ESCAPE_CHAR' => '\\', @@ -50,7 +54,7 @@ $language_data = array ( 'ensure', 'for', 'if', 'in', 'module', 'while', 'next', 'not', 'or', 'redo', 'rescue', 'yield', 'retry', 'super', 'then', 'undef', 'unless', - 'until', 'when', 'BEGIN', 'END', 'include' + 'until', 'when', 'include' ), 2 => array( '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true', @@ -145,6 +149,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color:#008000; font-style:italic;', + 4 => 'color: #cc0000; font-style: italic;', 'MULTI' => 'color:#000080; font-style:italic;' ), 'ESCAPE_CHAR' => array( @@ -223,4 +228,4 @@ $language_data = array ( 'TAB_WIDTH' => 2 ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php index bc6899716..c4d426fa0 100644 --- a/inc/geshi/sas.php +++ b/inc/geshi/sas.php @@ -4,7 +4,7 @@ * ------- * Author: Galen Johnson (solitaryr@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/12/27 * * SAS language file for GeSHi. Based on the sas vim file. diff --git a/inc/geshi/scala.php b/inc/geshi/scala.php index 0eae52d92..202c06c83 100644 --- a/inc/geshi/scala.php +++ b/inc/geshi/scala.php @@ -4,7 +4,7 @@ * ---------- * Author: Franco Lombardo (franco@francolombardo.net) * Copyright: (c) 2008 Franco Lombardo, Benny Baumann - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/02/08 * * Scala language file for GeSHi. diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php index 1fffcb248..2e2430bff 100644 --- a/inc/geshi/scheme.php +++ b/inc/geshi/scheme.php @@ -4,7 +4,7 @@ * ---------- * Author: Jon Raphaelson (jonraphaelson@gmail.com) * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Scheme language file for GeSHi. diff --git a/inc/geshi/scilab.php b/inc/geshi/scilab.php index 3d66d810a..d1ff6fc16 100644 --- a/inc/geshi/scilab.php +++ b/inc/geshi/scilab.php @@ -4,7 +4,7 @@ * -------- * Author: Christophe David (geshi@christophedavid.org) * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/08/04 * * SciLab language file for GeSHi. diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php index b756df514..876dc09a6 100644 --- a/inc/geshi/sdlbasic.php +++ b/inc/geshi/sdlbasic.php @@ -4,7 +4,7 @@ * ------------ * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/08/19 * * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi. diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php index b4d67cc71..b475ad711 100644 --- a/inc/geshi/smalltalk.php +++ b/inc/geshi/smalltalk.php @@ -4,7 +4,7 @@ * -------- * Author: Bananeweizen (Bananeweizen@gmx.de) * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/03/27 * * Smalltalk language file for GeSHi. @@ -46,7 +46,9 @@ $language_data = array ( 'QUOTEMARKS' => array("'"), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( - 1 => array('self','super','true','false','nil') + 1 => array( + 'self','super','true','false','nil' + ) ), 'SYMBOLS' => array( '[', ']', '=' , ':=', '(', ')', '#' @@ -85,7 +87,6 @@ $language_data = array ( 1 => 'color: #7f0000;', 2 => 'color: #7f0000;', 3 => 'color: #00007f;', - 4 => 'color: #7f007f;', 5 => 'color: #00007f;', 6 => 'color: #00007f;' ), @@ -128,15 +129,8 @@ $language_data = array ( GESHI_BEFORE => '|', GESHI_AFTER => '|' ), - 4 => array( - GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp) - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), 5 => array( - GESHI_SEARCH => '([:(,=[.*\/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers + GESHI_SEARCH => '([:(,=[.*\/+-]\s*(?!\d+\/))([a-zA-Z0-9_]+)', //message parameters, message receivers GESHI_REPLACE => '\\2', GESHI_MODIFIERS => 's', GESHI_BEFORE => '\\1', @@ -157,4 +151,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php index dcc11f61d..7f4489289 100644 --- a/inc/geshi/smarty.php +++ b/inc/geshi/smarty.php @@ -4,7 +4,7 @@ * ---------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Smarty template language file for GeSHi. diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php index ba91191d1..9e45e850d 100644 --- a/inc/geshi/sql.php +++ b/inc/geshi/sql.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * SQL language file for GeSHi. @@ -51,7 +51,7 @@ $language_data = array ( 'LANG_NAME' => 'SQL', - 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), + 'COMMENT_SINGLE' => array(1 =>'--'), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => 1, 'QUOTEMARKS' => array("'", '"', '`'), @@ -97,7 +97,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #808080; font-style: italic;', + //2 => 'color: #808080; font-style: italic;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( @@ -137,4 +137,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/systemverilog.php b/inc/geshi/systemverilog.php new file mode 100644 index 000000000..19405c097 --- /dev/null +++ b/inc/geshi/systemverilog.php @@ -0,0 +1,317 @@ +<?php +/************************************************************************************ + * systemverilog.php + * ------- + * Author: Sean O'Boyle + * Copyright: (C) 2008 IntelligentDV + * Release Version: 1.0.8.8 + * Date Started: 2008/06/25 + * + * SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi. + * + * CHANGES + * ------- + * 2008/06/25 (1.0.0) + * - First Release + * + * TODO (updated 2008/06/25) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + ************************************************************************ + * Title: SystemVerilog Language Keywords File for GeSHi + * Description: This file contains the SV keywords defined in the + * IEEE1800-2009 Draft Standard in the format expected by + * GeSHi. + * + * Original Author: Sean O'Boyle + * Contact: seanoboyle@intelligentdv.com + * Company: Intelligent Design Verification + * Company URL: http://intelligentdv.com + * + * Download the most recent version here: + * http://intelligentdv.com/downloads + * + * File Bugs Here: http://bugs.intelligentdv.com + * Project: SyntaxFiles + * + * File: systemverilog.php + * $LastChangedBy: seanoboyle $ + * $LastChangedDate: 2009-07-22 22:20:25 -0700 (Wed, 22 Jul 2009) $ + * $LastChangedRevision: 17 $ + * + ************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'SystemVerilog', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + // system tasks + 1 => array( + 'acos','acosh','asin','asinh','assertfailoff','assertfailon', + 'assertkill','assertnonvacuouson','assertoff','asserton', + 'assertpassoff','assertpasson','assertvacuousoff','async$and$array', + 'async$and$plane','async$nand$array','async$nand$plane', + 'async$nor$array','async$nor$plane','async$or$array', + 'async$or$plane','atan','atan2','atanh','bits','bitstoreal', + 'bitstoshortreal','cast','ceil','changed','changed_gclk', + 'changing_gclk','clog2','cos','cosh','countones','coverage_control', + 'coverage_get','coverage_get_max','coverage_merge','coverage_save', + 'dimensions','display','displayb','displayh','displayo', + 'dist_chi_square','dist_erlang','dist_exponential','dist_normal', + 'dist_poisson','dist_t','dist_uniform','dumpall','dumpfile', + 'dumpflush','dumplimit','dumpoff','dumpon','dumpports', + 'dumpportsall','dumpportsflush','dumpportslimit','dumpportsoff', + 'dumpportson','dumpvars','error','exit','exp','falling_gclk', + 'fclose','fdisplay','fdisplayb','fdisplayh','fdisplayo','fell', + 'fell_gclk','feof','ferror','fflush','fgetc','fgets','finish', + 'floor','fmonitor','fmonitorb','fmonitorh','fmonitoro','fopen', + 'fread','fscanf','fseek','fstrobe','fstrobeb','fstrobeh','fstrobeo', + 'ftell','future_gclk','fwrite','fwriteb','fwriteh','fwriteo', + 'get_coverage','high','hypot','increment','info','isunbounded', + 'isunknown','itor','left','ln','load_coverage_db','log10','low', + 'monitor','monitorb','monitorh','monitoro','monitoroff','monitoron', + 'onehot','onehot0','past','past_gclk','pow','printtimescale', + 'q_add','q_exam','q_full','q_initialize','q_remove','random', + 'readmemb','readmemh','realtime','realtobits','rewind','right', + 'rising_gclk','rose','rose_gclk','rtoi','sampled', + 'set_coverage_db_name','sformat','sformatf','shortrealtobits', + 'signed','sin','sinh','size','sqrt','sscanf','stable','stable_gclk', + 'steady_gclk','stime','stop','strobe','strobeb','strobeh','strobeo', + 'swrite','swriteb','swriteh','swriteo','sync$and$array', + 'sync$and$plane','sync$nand$array','sync$nand$plane', + 'sync$nor$array','sync$nor$plane','sync$or$array','sync$or$plane', + 'system','tan','tanh','test$plusargs','time','timeformat', + 'typename','ungetc','unpacked_dimensions','unsigned', + 'value$plusargs','warning','write','writeb','writeh','writememb', + 'writememh','writeo', + ), + // compiler directives + 2 => array( + '`__FILE__', '`__LINE__', '`begin_keywords', '`case', '`celldefine', + '`endcelldefine', '`default_nettype', '`define', '`default', '`else', + '`elsif', '`end_keywords', '`endfor', '`endif', + '`endprotect', '`endswitch', '`endwhile', '`for', '`format', + '`if', '`ifdef', '`ifndef', '`include', '`let', + '`line', '`nounconnected_drive', '`pragma', '`protect', '`resetall', + '`switch', '`timescale', '`unconnected_drive', '`undef', '`undefineall', + '`while' + ), + // keywords + 3 => array( + 'assert', 'assume', 'cover', 'expect', 'disable', + 'iff', 'binsof', 'intersect', 'first_match', 'throughout', + 'within', 'coverpoint', 'cross', 'wildcard', 'bins', + 'ignore_bins', 'illegal_bins', 'genvar', 'if', 'else', + 'unique', 'priority', 'matches', 'default', 'forever', + 'repeat', 'while', 'for', 'do', 'foreach', + 'break', 'continue', 'return', 'pulsestyle_onevent', 'pulsestyle_ondetect', + 'noshowcancelled', 'showcancelled', 'ifnone', 'posedge', 'negedge', + 'edge', 'wait', 'wait_order', 'timeunit', 'timeprecision', + 's', 'ms', 'us', 'ns', + 'ps', 'fs', 'step', 'new', 'extends', + 'this', 'super', 'protected', 'local', 'rand', + 'randc', 'bind', 'constraint', 'solve', 'before', + 'dist', 'inside', 'with', 'virtual', 'extern', + 'pure', 'forkjoin', 'design', 'instance', 'cell', + 'liblist', 'use', 'library', 'incdir', 'include', + 'modport', 'sync_accept_on', 'reject_on', 'accept_on', + 'sync_reject_on', 'restrict', 'let', 'until', 'until_with', + 'unique0', 'eventually', 's_until', 's_always', 's_eventually', + 's_nexttime', 's_until_with', 'global', 'untyped', 'implies', + 'weak', 'strong', 'nexttime' + ), + // block keywords + 4 => array( + 'begin', 'end', 'package', 'endpackage', 'macromodule', + 'module', 'endmodule', 'generate', 'endgenerate', 'program', + 'endprogram', 'class', 'endclass', 'function', 'endfunction', + 'case', 'casex', 'casez', 'randcase', 'endcase', + 'interface', 'endinterface', 'clocking', 'endclocking', 'task', + 'endtask', 'primitive', 'endprimitive', 'fork', 'join', + 'join_any', 'join_none', 'covergroup', 'endgroup', 'checker', + 'endchecker', 'property', 'endproperty', 'randsequence', 'sequence', + 'endsequence', 'specify', 'endspecify', 'config', 'endconfig', + 'table', 'endtable', 'initial', 'final', 'always', + 'always_comb', 'always_ff', 'always_latch', 'alias', 'assign', + 'force', 'release' + ), + + // types + 5 => array( + 'parameter', 'localparam', 'specparam', 'input', 'output', + 'inout', 'ref', 'byte', 'shortint', 'int', + 'integer', 'longint', 'time', 'bit', 'logic', + 'reg', 'supply0', 'supply1', 'tri', 'triand', + 'trior', 'trireg', 'tri0', 'tri1', 'wire', + 'uwire', 'wand', 'wor', 'signed', 'unsigned', + 'shortreal', 'real', 'realtime', 'type', 'void', + 'struct', 'union', 'tagged', 'const', 'var', + 'automatic', 'static', 'packed', 'vectored', 'scalared', + 'typedef', 'enum', 'string', 'chandle', 'event', + 'null', 'pullup', 'pulldown', 'cmos', 'rcmos', + 'nmos', 'pmos', 'rnmos', 'rpmos', 'and', + 'nand', 'or', 'nor', 'xor', 'xnor', + 'not', 'buf', 'tran', 'rtran', 'tranif0', + 'tranif1', 'rtranif0', 'rtranif1', 'bufif0', 'bufif1', + 'notif0', 'notif1', 'strong0', 'strong1', 'pull0', + 'pull1', 'weak0', 'weak1', 'highz0', 'highz1', + 'small', 'medium', 'large' + ), + + // DPI + 6 => array( + 'DPI', 'DPI-C', 'import', 'export', 'context' + ), + + // stdlib + 7 => array( + 'randomize', 'mailbox', 'semaphore', 'put', 'get', + 'try_put', 'try_get', 'peek', 'try_peek', 'process', + 'state', 'self', 'status', 'kill', 'await', + 'suspend', 'resume', 'size', 'delete', 'insert', + 'num', 'first', 'last', 'next', 'prev', + 'pop_front', 'pop_back', 'push_front', 'push_back', 'find', + 'find_index', 'find_first', 'find_last', 'find_last_index', 'min', + 'max', 'unique_index', 'reverse', 'sort', 'rsort', + 'shuffle', 'sum', 'product', 'List', 'List_Iterator', + 'neq', 'eq', 'data', 'empty', 'front', + 'back', 'start', 'finish', 'insert_range', 'erase', + 'erase_range', 'set', 'swap', 'clear', 'purge' + ), + + // key_deprecated + 8 => array( + 'defparam', 'deassign', 'TODO' + ), + + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', + '^', '&', '|', '~', + '?', ':', + '#', '<<', '<<<', + '>', '<', '>=', '<=', + '@', ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #996666; font-weight: bold;', + 2 => 'color: #336600; font-weight: bold;', + 3 => 'color: #996600; font-weight: bold;', + 4 => 'color: #000033; font-weight: bold;', + 5 => 'color: #330033; font-weight: bold;', + 6 => 'color: #996600; font-weight: bold;', + 7 => 'color: #CC9900; font-weight: bold;', + 8 => 'color: #990000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #00008B; font-style: italic;', + 'MULTI' => 'color: #00008B; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #9F79EE' + ), + 'BRACKETS' => array( + 0 => 'color: #9F79EE;' + ), + 'STRINGS' => array( + 0 => 'color: #FF00FF;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0055;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #5D478B;' + ), + 'REGEXPS' => array( + 0 => 'color: #ff0055;', + 1 => 'color: #ff0055;', + 2 => 'color: #ff0055;', + 3 => 'color: #ff0055;' + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '' + ), + 'REGEXPS' => array( + // integer + 0 => "\d'[bdh][0-9_a-fA-FxXzZ]+", + // realtime + 1 => "\d*\.\d+[munpf]?s", + // time s, ms, us, ns, ps, of fs + 2 => "\d+[munpf]?s", + // real + 3 => "\d*\.\d+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 0 => '' + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true + ), + 'TAB_WIDTH' => 3, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=$)' + ) + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php index 25cb31d5b..2a07ccd46 100644 --- a/inc/geshi/tcl.php +++ b/inc/geshi/tcl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Reid van Melle (rvanmelle@gmail.com) * Copyright: (c) 2004 Reid van Melle (sorry@nowhere) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/05/05 * * TCL/iTCL language file for GeSHi. @@ -54,7 +54,7 @@ $language_data = array ( 'COMMENT_MULTI' => array(), 'COMMENT_REGEXP' => array( 1 => '/(?<!\\\\)#(?:\\\\\\\\|\\\\\\n|.)*$/m', - 2 => '/{[^}\n]+}/' + //2 => '/{[^}\n]+}/' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', "'"), @@ -138,7 +138,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #483d8b;', +// 2 => 'color: #483d8b;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( @@ -191,4 +191,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/teraterm.php b/inc/geshi/teraterm.php index 5ac9f8743..443bf7b4c 100644 --- a/inc/geshi/teraterm.php +++ b/inc/geshi/teraterm.php @@ -4,7 +4,7 @@ * -------- * Author: Boris Maisuradze (boris at logmett.com) * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/09/26 * * Tera Term Macro language file for GeSHi. diff --git a/inc/geshi/text.php b/inc/geshi/text.php index 9183895c2..66f459293 100644 --- a/inc/geshi/text.php +++ b/inc/geshi/text.php @@ -4,7 +4,7 @@ * -------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 04/23/2006 * * Standard Text File (No Syntax Highlighting). diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php index b9c9742c7..693c698d6 100644 --- a/inc/geshi/thinbasic.php +++ b/inc/geshi/thinbasic.php @@ -4,7 +4,7 @@ * ------ * Author: Eros Olmi (eros.olmi@thinbasic.com) * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/05/12 * * thinBasic language file for GeSHi. diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php index fca874954..b915b087d 100644 --- a/inc/geshi/tsql.php +++ b/inc/geshi/tsql.php @@ -4,7 +4,7 @@ * -------- * Author: Duncan Lock (dunc@dflock.co.uk) * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/11/22 * * T-SQL language file for GeSHi. @@ -41,16 +41,16 @@ $language_data = array ( 'LANG_NAME' => 'T-SQL', 'COMMENT_SINGLE' => array(1 => '--'), 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', + 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( // Datatypes - 'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money', - 'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar', - 'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor', - 'sql_variant', 'table', 'timestamp', 'uniqueidentifier', + 'bigint', 'tinyint', 'money', + 'smallmoney', 'datetime', 'smalldatetime', + 'text', 'nvarchar', 'ntext', 'varbinary', 'image', + 'sql_variant', 'uniqueidentifier', // Keywords 'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS', diff --git a/inc/geshi/typoscript.php b/inc/geshi/typoscript.php index 1e8243c2e..525271428 100644 --- a/inc/geshi/typoscript.php +++ b/inc/geshi/typoscript.php @@ -4,7 +4,7 @@ * -------- * Author: Jan-Philipp Halle (typo3@jphalle.de) * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/07/29 * * TypoScript language file for GeSHi. diff --git a/inc/geshi/unicon.php b/inc/geshi/unicon.php new file mode 100644 index 000000000..edad62df3 --- /dev/null +++ b/inc/geshi/unicon.php @@ -0,0 +1,210 @@ +<?php +/************************************************************************************* + * unicon.php + * -------- + * Author: Matt Oates (mattoates@gmail.com) + * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk) + * Release Version: 1.0.8.8 + * Date Started: 2010/04/20 + * + * Unicon the Unified Extended Dialect of Icon language file for GeSHi. + * + * CHANGES + * ------- + * 2010/04/24 (0.0.0.2) + * - Validated with Geshi langcheck.php FAILED due to preprocessor keywords looking like symbols + * - Hard wrapped to improve readability + * 2010/04/20 (0.0.0.1) + * - First Release + * + * TODO (updated 2010/04/20) + * ------------------------- + * - Do the & need replacing with &? + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Unicon (Unified Extended Dialect of Icon)', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'class', 'continue', 'create', 'default', 'do', + 'else', 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', 'initially', + 'invocable', 'link', 'method', 'next', 'not', 'of', 'package', 'procedure', 'record', + 'repeat', 'return', 'switch', 'suspend', 'then', 'to', 'until', 'while' + ), + 2 => array( + 'global', 'local', 'static' + ), + 3 => array( + 'allocated', 'ascii', 'clock', 'collections', + 'column', 'cset', 'current', 'date', 'dateline', 'digits', + 'dump', 'e', 'error', 'errornumber', 'errortext', + 'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue', + 'fail', 'features', 'file', 'host', 'input', 'lcase', + 'letters', 'level', 'line', 'main', 'now', 'null', + 'output', 'phi', 'pi', 'pos', 'progname', 'random', + 'regions', 'source', 'storage', 'subject', 'syserr', 'time', + 'trace', 'ucase', 'version', 'col', 'control', 'interval', + 'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress', + 'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease', + 'shift', 'window', 'x', 'y' + ), + 4 => array( + 'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char', + 'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'dbcolumns', + 'dbdriver', 'dbkeys', 'dblimits', 'dbproduction', 'dbtables', 'delay', 'delete', 'detab', + 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', 'exp', + 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', 'getche', + 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', 'insert', + 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc', + 'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric', + 'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull', + 'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse', + 'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set', + 'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'staticnames', 'stop', 'string', 'system', 'tab', + 'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where', + 'write', 'writes' + ), + 5 => array( + 'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue', + 'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk', + 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment', + 'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc', + 'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY', + 'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor', + 'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate', + 'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate', + 'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib', + 'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync' + ), + 6 => array( + 'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error', + 'line', 'undef' + ), + 7 => array( + '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386', + '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM', + '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING', + '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS', + '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS', + '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS', + '_DOS_FUNCTIONS' + ), + 8 => array( + 'line') + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^', + '&', '|', '?', ':', ';', ',', '.', '~', '@' + ), + 2 => array( + '$(', '$)', '$<', '$>' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #b1b100;', + 3 => 'color: #b1b100;', + 4 => 'color: #b1b100;', + 5 => 'color: #b1b100;', + 6 => 'color: #b1b100;', + 7 => 'color: #b1b100;', + 8 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '(?<=&)' + ), + 4 => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9_\"\'])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\"\'])" + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\$)' + ), + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=#)' + ) + ) + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/vala.php b/inc/geshi/vala.php new file mode 100644 index 000000000..334398a87 --- /dev/null +++ b/inc/geshi/vala.php @@ -0,0 +1,151 @@ +<?php +/************************************************************************************* + * vala.php + * ---------- + * Author: Nicolas Joseph (nicolas.joseph@valaide.org) + * Copyright: (c) 2009 Nicolas Joseph + * Release Version: 1.0.8.8 + * Date Started: 2009/04/29 + * + * Vala language file for GeSHi. + * + * CHANGES + * ------- + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Vala', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Using and Namespace directives (basic support) + //Please note that the alias syntax for using is not supported + 3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('"""'), + 'HARDESCAPE' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'as', 'abstract', 'base', 'break', 'case', 'catch', 'const', + 'construct', 'continue', 'default', 'delete', 'dynamic', 'do', + 'else', 'ensures', 'extern', 'false', 'finally', 'for', 'foreach', + 'get', 'if', 'in', 'inline', 'internal', 'lock', 'namespace', + 'null', 'out', 'override', 'private', 'protected', 'public', 'ref', + 'requires', 'return', 'set', 'static', 'switch', 'this', 'throw', + 'throws', 'true', 'try', 'using', 'value', 'var', 'virtual', + 'volatile', 'void', 'yield', 'yields', 'while' + ), + 2 => array( + '#elif', '#endif', '#else', '#if' + ), + 3 => array( + 'is', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', 'unowned', 'weak' + ), + 4 => array( + 'bool', 'char', 'class', 'delegate', 'double', 'enum', + 'errordomain', 'float', 'int', 'int8', 'int16', 'int32', 'int64', + 'interface', 'long', 'short', 'signal', 'size_t', 'ssize_t', + 'string', 'struct', 'uchar', 'uint', 'uint8', 'uint16', 'uint32', + 'ulong', 'unichar', 'ushort' + ) + ), + 'SYMBOLS' => array( + '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', + '(', ')', '{', '}', '[', ']', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', + 2 => 'color: #FF8000; font-weight: bold;', + 3 => 'color: #008000;', + 4 => 'color: #FF0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008080; font-style: italic;', + 3 => 'color: #008080;', + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080; font-weight: bold;', + 'HARD' => 'color: #008080; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #666666;', + 'HARD' => 'color: #666666;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?> diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php index bc43ca4a8..f24d86505 100644 --- a/inc/geshi/vb.php +++ b/inc/geshi/vb.php @@ -5,7 +5,7 @@ * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), * Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Visual Basic language file for GeSHi. @@ -57,34 +57,53 @@ $language_data = array ( 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'AddressOf', 'Alias', 'And', 'Append', 'As', 'BF', 'Binary', - 'Boolean', 'ByRef', 'Byte', 'ByVal', 'Call', 'Case', 'CBool', - 'CByte', 'CCur', 'CDate', 'CDbl', 'CDec', 'CInt', 'CLng', - 'Close', 'Collection', 'Const', 'Control', 'CSng', 'CStr', - 'Currency', 'CVar', 'Date', 'Declare', 'Dim', 'Do', 'Double', - 'Each', 'Else', 'ElseIf', 'End', 'Enum', 'Erase', 'Error', - 'Event', 'Exit', 'Explicit', 'False', 'For', 'Friend', - 'Function', 'Get', 'GoSub', 'Goto', 'If', 'Implements', 'In', - 'Input', 'Integer', 'Is', 'LBound', 'Let', 'Lib', 'Like', - 'Line', 'Long', 'Loop', 'Mod', 'New', 'Next', 'Not', - 'Nothing', 'Object', 'On', 'Open', 'Option', 'Optional', - 'Or', 'Output', 'ParamArray', 'Preserve', 'Print', 'Private', - 'Property', 'Public', 'RaiseEvent', 'Random', 'ReDim', - 'Resume', 'Select', 'Set', 'Single', 'Static', 'Step', - 'Stop', 'String', 'Sub', 'Then', 'To', 'True', 'Type', - 'TypeOf', 'UBound', 'Until', 'Variant', 'While', 'With', - 'WithEvents', 'Xor' - ) + 'Binary', 'Boolean', 'Byte', 'Currency', 'Date', 'Decimal', 'Double', + 'String', 'Enum', 'Integer', 'Long', 'Object', 'Single', 'Variant' + ), + 2 => array( + 'CreateObject', 'GetObject', 'New', 'Option', 'Function', + 'Call', 'Private', 'Public', 'Sub', 'Explicit', 'Compare', 'Exit' + ), + 3 => array( + 'And', 'Case', 'Do', 'Each', 'Else', 'ElseIf', 'For', + 'Goto', 'If', 'Is', 'Loop', 'Next', 'Not', 'Or', 'Select', 'Step', + 'Then', 'To', 'Until', 'While', 'With', 'Xor', 'WithEvents', + 'DoEvents', 'Close', 'Like', 'In', 'End' + ), + 4 => array( + 'As', 'Dim', 'Get', 'Set', 'ReDim', 'Error', + 'Resume', 'Declare', 'Let', 'ByRef', 'ByVal', + 'Optional', 'Property', 'Control', 'UBound', 'Mod', + 'GoSub', 'Implements', 'Input', 'LBound', 'Static', 'Stop', + 'Type', 'TypeOf', 'On', 'Open', 'Output', 'ParamArray', + 'Preserve', 'Print', 'RaiseEvent', 'Random', 'Line' + ), + 5 => array( + 'Nothing', 'False', 'True', 'Null', 'Empty' + ), + 6 => array( + 'ErrorHandler','ExitProc', 'PublishReport' + ), ), 'SYMBOLS' => array( ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, - 1 => false + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #000080;' + 1 => 'color: #F660AB; font-weight: bold;', + 2 => 'color: #E56717; font-weight: bold;', + 3 => 'color: #8D38C9; font-weight: bold;', + 4 => 'color: #151B8D; font-weight: bold;', + 5 => 'color: #00C2FF; font-weight: bold;', + 6 => 'color: #3EA99F; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #008000;' @@ -109,7 +128,12 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => '' + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php index e9f7c3e43..f74775214 100644 --- a/inc/geshi/vbnet.php +++ b/inc/geshi/vbnet.php @@ -4,7 +4,7 @@ * --------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * VB.NET language file for GeSHi. @@ -67,9 +67,9 @@ $language_data = array ( 2 => array( 'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE', 'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For', - 'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride', + 'Friend', 'Func', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride', 'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE', - 'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', + 'NOTOVERRIDABLE', 'Of', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', 'Predicate', 'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step', 'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents' ), @@ -198,4 +198,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/verilog.php b/inc/geshi/verilog.php index ba1766c2d..14c1d7172 100644 --- a/inc/geshi/verilog.php +++ b/inc/geshi/verilog.php @@ -4,7 +4,7 @@ * ----------- * Author: G�nter Dannoritzer <dannoritzer@web.de> * Copyright: (C) 2008 Guenter Dannoritzer - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/05/28 * * Verilog language file for GeSHi. diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php index 14072c9d7..6856933c7 100644 --- a/inc/geshi/vhdl.php +++ b/inc/geshi/vhdl.php @@ -4,7 +4,7 @@ * -------- * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de) * Copyright: (c) 2005 Alexander Krause - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2005/06/15 * * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi. diff --git a/inc/geshi/vim.php b/inc/geshi/vim.php index 3946c4f96..f4f93ad2e 100644 --- a/inc/geshi/vim.php +++ b/inc/geshi/vim.php @@ -1,11 +1,12 @@ <?php - /************************************************************************************* * vim.php * ---------------- * Author: Swaroop C H (swaroop@swaroopch.com) + * Contributors: + * - Laurent Peuch (psycojoker@gmail.com) * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/10/19 * * Vim scripting language file for GeSHi. @@ -18,10 +19,16 @@ * ------- * 2008/10/19 (1.0.8.2) * - Started. + * 2009/07/05 + * - Fill out list of zillion commands (maybe somes still miss). + * - fix a part of the regex, now works for comment that have white space before the " * - * TODO (updated 2008/10/19) + * TODO (updated 2009/07/05) * ------------------------- - * - Fill out list of zillion commands + * - Make this damn string with "" work correctly. I've just remove it for my wiki. + * - Make the comment regex able to find comment after some code. + * (i.e: let rocks " unworking comment) + * - Make <F1> <F2> ... <Esc> <CR> ... works event if they aren't surround by space. * ************************************************************************************* * @@ -47,7 +54,9 @@ $language_data = array( 'LANG_NAME' => 'Vim Script', 'COMMENT_SINGLE' => array(), 'COMMENT_REGEXP' => array( - 1 => "/^\".*$/m" + 1 => "/\s*\"[^\"]*?$/m", + //Regular expressions (Ported from perl.php) +// 2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU", ), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, @@ -55,75 +64,300 @@ $language_data = array( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( - 'brea', 'break', 'call', 'cat', 'catc', - 'catch', 'con', 'cont', 'conti', - 'contin', 'continu', 'continue', 'ec', 'echo', - 'echoe', 'echoer', 'echoerr', 'echoh', - 'echohl', 'echom', 'echoms', 'echomsg', 'echon', - 'el', 'els', 'else', 'elsei', 'elseif', - 'en', 'end', 'endi', 'endif', 'endfo', - 'endfor', 'endt', 'endtr', 'endtry', 'endw', - 'endwh', 'endwhi', 'endwhil', 'endwhile', 'exe', 'exec', 'execu', - 'execut', 'execute', 'fina', 'final', 'finall', 'finally', 'for', - 'fun', 'func', 'funct', 'functi', 'functio', 'function', 'if', 'in', - 'let', 'lockv', 'lockva', 'lockvar', 'retu', 'retur', 'return', 'th', - 'thr', 'thro', 'throw', 'try', 'unl', 'unle', 'unlet', 'unlo', 'unloc', - 'unlock', 'unlockv', 'unlockva', 'unlockvar', 'wh', 'whi', 'whil', - 'while' + 'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd', + 'bufcreate', 'bufdelete', 'bufenter', 'buffilepost', + 'buffilepre', 'bufleave', 'bufnew', 'bufnewfile', + 'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre', + 'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout', + 'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre', + 'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter', + 'cmdwinleave', 'colorscheme', 'con', 'confirm', 'cont', 'conti', + 'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi', + 'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe', + 'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms', + 'echomsg', 'echon', 'el', 'els', 'else', 'elsei', 'elseif', + 'en', 'encodingchanged', 'end', 'endfo', 'endfor', 'endi', + 'endif', 'endt', 'endtr', 'endtry', 'endw', 'endwh', 'endwhi', + 'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut', + 'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre', + 'filechangedro', 'filechangedshell', 'filechangedshellpost', + 'filereadcmd', 'filereadpost', 'filereadpre', + 'filetype', 'filewritecmd', 'filewritepost', 'filewritepre', + 'filterreadpost', 'filterreadpre', 'filterwritepost', + 'filterwritepre', 'fina', 'final', 'finall', 'finally', + 'finish', 'focusgained', 'focuslost', 'for', 'fun', 'func', + 'funct', 'functi', 'functio', 'function', 'funcundefined', + 'guienter', 'guifailed', 'hi', 'highlight', 'if', 'in', + 'insertchange', 'insertenter', 'insertleave', 'let', 'lockv', + 'lockva', 'lockvar', 'map', 'match', 'menupopup', 'nnoremap', + 'quickfixcmdpost', 'quickfixcmdpre', 'remotereply', 'retu', + 'retur', 'return', 'sessionloadpost', 'set', 'setlocal', + 'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre', + 'spellfilemissing', 'stdinreadpost', 'stdinreadpre', + 'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged', + 'termresponse', 'th', 'thr', 'thro', 'throw', 'tr', 'try', 'unl', + 'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv', + 'unlockva', 'unlockvar', 'user', 'usergettingbored', + 'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh', + 'whi', 'whil', 'while', 'winenter', 'winleave' ), 2 => array( - 'autocmd', 'com', 'comm', 'comma', 'comman', 'command', 'comc', - 'comcl', 'comcle', 'comclea', 'comclear', 'delc', 'delco', - 'delcom', 'delcomm', 'delcomma', 'delcomman', 'delcommand', - '-nargs' # TODO There are zillions of commands to be added here from http://vimdoc.sourceforge.net/htmldoc/usr_toc.html + '<CR>', '<Esc>', '<F1>', '<F10>', + '<F11>', '<F12>', '<F2>', '<F3>', + '<F4>', '<F5>', '<F6>', '<F7>', + '<F8>', '<F9>', '<cr>', '<silent>', + '-nargs', 'acd', 'ai', 'akm', 'al', 'aleph', + 'allowrevins', 'altkeymap', 'ambiwidth', 'ambw', + 'anti', 'antialias', 'ar', 'arab', 'arabic', + 'arabicshape', 'ari', 'arshape', 'autochdir', + 'autoindent', 'autoread', 'autowrite', 'autowriteall', + 'aw', 'awa', 'background', 'backspace', 'backup', + 'backupcopy', 'backupdir', 'backupext', + 'backupskip', 'balloondelay', 'ballooneval', 'balloonexpr', + 'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg', + 'bh', 'bin', 'binary', 'biosk', 'bioskey', + 'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk', + 'bs', 'bsdir', 'bsk', 'bt', 'bufhidden', + 'buftype', 'casemap', 'cb', + 'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch', + 'charconvert', 'ci', 'cin', 'cink', + 'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords', + 'clipboard', 'cmdheight', 'cmdwinheight', + 'cmp', 'cms', 'co', 'columns', 'com', + 'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm', + 'comma', 'comman', 'command', 'comments', 'commentstring', + 'compatible', 'completefunc', 'completeopt', + 'consk', 'conskey', 'copyindent', + 'cot', 'cp', 'cpo', 'cpoptions', 'cpt', + 'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag', + 'cscopetagorder', 'cscopeverbose', + 'cspc', 'csprg', 'csqf', 'cst', 'csto', 'csverb', 'cuc', + 'cul', 'cursorcolumn', 'cursorline', 'cwh', 'debug', + 'deco', 'def', 'define', 'delc', 'delco', 'delcom', + 'delcombine', 'delcomm', 'delcomman', 'delcommand', 'dex', + 'dg', 'dict', 'dictionary', 'diff', 'diffexpr', + 'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display', + 'dlcomma', 'dy', 'ea', 'ead', 'eadirection', + 'eb', 'ed', 'edcompatible', 'ef', 'efm', + 'ei', 'ek', 'enc', 'encoding', 'endfun', 'endofline', + 'eol', 'ep', 'equalalways', 'equalprg', 'errorbells', + 'errorfile', 'errorformat', 'esckeys', 'et', + 'eventignore', 'ex', 'expandtab', 'exrc', 'fcl', + 'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm', + 'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex', + 'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat', + 'fileformats', /*'filetype',*/ 'fillchars', 'fk', + 'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose', + 'foldcolumn', 'foldenable', 'foldexpr', 'foldignore', + 'foldlevelstart', 'foldmarker', 'foldmethod', 'foldminlines', + 'foldnestmax', 'foldopen', 'formatexpr', 'formatlistpat', + 'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft', + 'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw', + 'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl', + 'gtt', 'guicursor', 'guifont', 'guifontset', + 'guifontwide', 'guiheadroom', 'guioptions', 'guipty', + 'guitablabel', 'guitabtooltip', 'helpfile', + 'helpheight', 'helplang', 'hf', 'hh', 'hid', 'hidden', + 'history', 'hk', 'hkmap', 'hkmapp', 'hkp', 'hl', + 'hlg', 'hls', 'hlsearch', 'ic', 'icon', 'iconstring', + 'ignorecase', 'im', 'imactivatekey', 'imak', 'imc', + 'imcmdline', 'imd', 'imdisable', 'imi', 'iminsert', 'ims', + 'imsearch', 'inc', 'include', 'includeexpr', + 'incsearch', 'inde', 'indentexpr', 'indentkeys', + 'indk', 'inex', 'inf', 'infercase', 'insertmode', 'is', 'isf', + 'isfname', 'isi', 'isident', 'isk', 'iskeyword', + 'isp', 'isprint', 'joinspaces', 'js', 'key', + 'keymap', 'keymodel', 'keywordprg', 'km', 'kmp', 'kp', + 'langmap', 'langmenu', 'laststatus', 'lazyredraw', 'lbr', + 'lcs', 'linebreak', 'lines', 'linespace', 'lisp', + 'lispwords', 'list', 'listchars', 'lm', 'lmap', + 'loadplugins', 'lpl', 'ls', 'lsp', 'lw', 'lz', 'ma', + 'macatsui', 'magic', 'makeef', 'makeprg', 'mat', + 'matchpairs', 'matchtime', 'maxcombine', 'maxfuncdepth', + 'maxmapdepth', 'maxmem', 'maxmempattern', + 'maxmemtot', 'mco', 'mef', 'menuitems', 'mfd', 'mh', + 'mis', 'mkspellmem', 'ml', 'mls', 'mm', 'mmd', 'mmp', + 'mmt', 'mod', 'modeline', 'modelines', 'modifiable', + 'modified', 'more', 'mouse', 'mousef', 'mousefocus', + 'mousehide', 'mousem', 'mousemodel', 'mouses', + 'mouseshape', 'mouset', 'mousetime', 'mp', 'mps', 'msm', + 'mzq', 'mzquantum', 'nf', 'noacd', 'noai', 'noakm', + 'noallowrevins', 'noaltkeymap', 'noanti', 'noantialias', + 'noar', 'noarab', 'noarabic', 'noarabicshape', 'noari', + 'noarshape', 'noautochdir', 'noautoindent', 'noautoread', + 'noautowrite', 'noautowriteall', 'noaw', 'noawa', 'nobackup', + 'noballooneval', 'nobeval', 'nobin', 'nobinary', 'nobiosk', + 'nobioskey', 'nobk', 'nobl', 'nobomb', 'nobuflisted', 'nocf', + 'noci', 'nocin', 'nocindent', 'nocompatible', 'noconfirm', + 'noconsk', 'noconskey', 'nocopyindent', 'nocp', 'nocscopetag', + 'nocscopeverbose', 'nocst', 'nocsverb', 'nocuc', 'nocul', + 'nocursorcolumn', 'nocursorline', 'nodeco', 'nodelcombine', + 'nodg', 'nodiff', 'nodigraph', 'nodisable', 'noea', 'noeb', + 'noed', 'noedcompatible', 'noek', 'noendofline', 'noeol', + 'noequalalways', 'noerrorbells', 'noesckeys', 'noet', + 'noex', 'noexpandtab', 'noexrc', 'nofen', 'nofk', 'nofkmap', + 'nofoldenable', 'nogd', 'nogdefault', 'noguipty', 'nohid', + 'nohidden', 'nohk', 'nohkmap', 'nohkmapp', 'nohkp', 'nohls', + 'nohlsearch', 'noic', 'noicon', 'noignorecase', 'noim', + 'noimc', 'noimcmdline', 'noimd', 'noincsearch', 'noinf', + 'noinfercase', 'noinsertmode', 'nois', 'nojoinspaces', + 'nojs', 'nolazyredraw', 'nolbr', 'nolinebreak', 'nolisp', + 'nolist', 'noloadplugins', 'nolpl', 'nolz', 'noma', + 'nomacatsui', 'nomagic', 'nomh', 'noml', 'nomod', + 'nomodeline', 'nomodifiable', 'nomodified', 'nomore', + 'nomousef', 'nomousefocus', 'nomousehide', 'nonu', + 'nonumber', 'noodev', 'noopendevice', 'nopaste', 'nopi', + 'nopreserveindent', 'nopreviewwindow', 'noprompt', 'nopvw', + 'noreadonly', 'noremap', 'norestorescreen', 'norevins', + 'nori', 'norightleft', 'norightleftcmd', 'norl', 'norlc', + 'noro', 'nors', 'noru', 'noruler', 'nosb', 'nosc', 'noscb', + 'noscrollbind', 'noscs', 'nosecure', 'nosft', 'noshellslash', + 'noshelltemp', 'noshiftround', 'noshortname', 'noshowcmd', + 'noshowfulltag', 'noshowmatch', 'noshowmode', 'nosi', 'nosm', + 'nosmartcase', 'nosmartindent', 'nosmarttab', 'nosmd', + 'nosn', 'nosol', 'nospell', 'nosplitbelow', 'nosplitright', + 'nospr', 'nosr', 'nossl', 'nosta', 'nostartofline', + 'nostmp', 'noswapfile', 'noswf', 'nota', 'notagbsearch', + 'notagrelative', 'notagstack', 'notbi', 'notbidi', 'notbs', + 'notermbidi', 'noterse', 'notextauto', 'notextmode', + 'notf', 'notgst', 'notildeop', 'notimeout', 'notitle', + 'noto', 'notop', 'notr', 'nottimeout', 'nottybuiltin', + 'nottyfast', 'notx', 'novb', 'novisualbell', 'nowa', + 'nowarn', 'nowb', 'noweirdinvert', 'nowfh', 'nowfw', + 'nowildmenu', 'nowinfixheight', 'nowinfixwidth', 'nowiv', + 'nowmnu', 'nowrap', 'nowrapscan', 'nowrite', 'nowriteany', + 'nowritebackup', 'nows', 'nrformats', 'nu', 'number', + 'numberwidth', 'nuw', 'odev', 'oft', 'ofu', + 'omnifunc', 'opendevice', 'operatorfunc', 'opfunc', + 'osfiletype', 'pa', 'para', 'paragraphs', + 'paste', 'pastetoggle', 'patchexpr', + 'patchmode', 'path', 'pdev', 'penc', 'pex', 'pexpr', + 'pfn', 'ph', 'pheader', 'pi', 'pm', 'pmbcs', + 'pmbfn', 'popt', 'preserveindent', 'previewheight', + 'previewwindow', 'printdevice', 'printencoding', 'printexpr', + 'printfont', 'printheader', 'printmbcharset', + 'printmbfont', 'printoptions', 'prompt', 'pt', 'pumheight', + 'pvh', 'pvw', 'qe', 'quoteescape', 'rdt', + 'readonly', 'redrawtime', 'remap', 'report', + 'restorescreen', 'revins', 'ri', 'rightleft', 'rightleftcmd', + 'rl', 'rlc', 'ro', 'rs', 'rtp', 'ru', + 'ruf', 'ruler', 'rulerformat', 'runtimepath', 'sb', 'sbo', + 'sbr', 'sc', 'scb', 'scr', 'scroll', 'scrollbind', + 'scrolljump', 'scrolloff', 'scrollopt', + 'scs', 'sect', 'sections', 'secure', 'sel', + 'selection', 'selectmode', 'sessionoptions', 'sft', + 'sh', 'shcf', 'shell', 'shellcmdflag', 'shellpipe', + 'shellquote', 'shellredir', 'shellslash', + 'shelltemp', 'shelltype', 'shellxquote', 'shiftround', + 'shiftwidth', 'shm', 'shortmess', 'shortname', + 'showbreak', 'showcmd', 'showfulltag', 'showmatch', + 'showmode', 'showtabline', 'shq', 'si', 'sidescroll', + 'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase', + 'smartindent', 'smarttab', 'smc', 'smd', 'sn', + 'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell', + 'spellcapcheck', 'spellfile', 'spelllang', + 'spf', 'spl', 'splitbelow', 'splitright', 'spr', + 'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta', + 'stal', 'startofline', 'statusline', 'stl', 'stmp', + 'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw', + 'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf', + 'sws', 'sxq', 'syn', 'synmaxcol', 'ta', + 'tabline', 'tabpagemax', 'tabstop', 'tag', + 'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack', + 'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs', + 'tenc', 'term', 'termbidi', 'termencoding', 'terse', + 'textauto', 'textmode', 'textwidth', 'tf', 'tgst', + 'thesaurus', 'tildeop', 'timeout', 'timeoutlen', + 'title', 'titlelen', 'titleold', 'titlestring', + 'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top', + 'tpm', 'ts', 'tsl', 'tsr', 'ttimeout', + 'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym', + 'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc', + 'ul', 'undolevels', 'updatecount', 'updatetime', 'ut', + 'vb', 'vbs', 'vdir', 've', 'verbose', 'verbosefile', + 'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo', + 'virtualedit', 'visualbell', 'vop', 'wa', 'wak', + 'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh', + 'wfw', /*'wh',*/ 'whichwrap', 'wi', 'wig', 'wildchar', + 'wildcharm', 'wildignore', 'wildmenu', + 'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window', + 'winfixheight', 'winfixwidth', 'winheight', + 'winminheight', 'winminwidth', 'winwidth', 'wiv', + 'wiw', 'wm', 'wmh', 'wmnu', 'wmw', 'wop', 'wrap', + 'wrapmargin', 'wrapscan', 'write', 'writeany', + 'writebackup', 'writedelay', 'ws', 'ww' ), 3 => array( - 'abs', 'add', 'append', 'argc', 'argidx', 'argv', 'atan', - 'browse', 'browsedir', 'bufexists', 'buflisted', 'bufloaded', - 'bufname', 'bufnr', 'bufwinnr', 'byte2line', 'byteidx', - 'ceil', 'changenr', 'char2nr', 'cindent', 'clearmatches', - 'col', 'complete', 'complete_add', 'complete_check', 'confirm', - 'copy', 'cos', 'count', 'cscope_connection', 'cursor', - 'deepcopy', 'delete', 'did_filetype', 'diff_filler', - 'diff_hlID', 'empty', 'escape', 'eval', 'eventhandler', - 'executable', 'exists', 'extend', 'expand', 'feedkeys', - 'filereadable', 'filewritable', 'filter', 'finddir', - 'findfile', 'float2nr', 'floor', 'fnameescape', 'fnamemodify', - 'foldclosed', 'foldclosedend', 'foldlevel', 'foldtext', - 'foldtextresult', 'foreground', 'garbagecollect', - 'get', 'getbufline', 'getbufvar', 'getchar', 'getcharmod', - 'getcmdline', 'getcmdpos', 'getcmdtype', 'getcwd', 'getfperm', - 'getfsize', 'getfontname', 'getftime', 'getftype', 'getline', + 'BufAdd', 'BufCreate', 'BufDelete', 'BufEnter', 'BufFilePost', + 'BufFilePre', 'BufHidden', 'BufLeave', 'BufNew', 'BufNewFile', + 'BufRead', 'BufReadCmd', 'BufReadPost', 'BufReadPre', + 'BufUnload', 'BufWinEnter', 'BufWinLeave', 'BufWipeout', + 'BufWrite', 'BufWriteCmd', 'BufWritePost', 'BufWritePre', + 'Cmd-event', 'CmdwinEnter', 'CmdwinLeave', 'ColorScheme', + 'CursorHold', 'CursorHoldI', 'CursorMoved', 'CursorMovedI', + 'EncodingChanged', 'FileAppendCmd', 'FileAppendPost', + 'FileAppendPre', 'FileChangedRO', 'FileChangedShell', + 'FileChangedShellPost', 'FileEncoding', 'FileReadCmd', + 'FileReadPost', 'FileReadPre', 'FileType', + 'FileWriteCmd', 'FileWritePost', 'FileWritePre', + 'FilterReadPost', 'FilterReadPre', 'FilterWritePost', + 'FilterWritePre', 'FocusGained', 'FocusLost', 'FuncUndefined', + 'GUIEnter', 'GUIFailed', 'InsertChange', 'InsertEnter', + 'InsertLeave', 'MenuPopup', 'QuickFixCmdPost', + 'QuickFixCmdPre', 'RemoteReply', 'SessionLoadPost', + 'ShellCmdPost', 'ShellFilterPost', 'SourceCmd', + 'SourcePre', 'SpellFileMissing', 'StdinReadPost', + 'StdinReadPre', 'SwapExists', 'Syntax', 'TabEnter', + 'TabLeave', 'TermChanged', 'TermResponse', 'User', + 'UserGettingBored', 'VimEnter', 'VimLeave', 'VimLeavePre', + 'VimResized', 'WinEnter', 'WinLeave', 'abs', 'add', 'append', + 'argc', 'argidx', 'argv', 'atan', 'browse', 'browsedir', + 'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr', + 'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr', + 'char2nr', 'cindent', 'clearmatches', 'col', 'complete', + 'complete_add', 'complete_check', 'copy', + 'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy', + 'delete', 'did_filetype', 'diff_filler', 'diff_hlID', + 'empty', 'escape', 'eval', 'eventhandler', 'executable', + 'exists', 'expand', 'extend', 'feedkeys', 'filereadable', + 'filewritable', 'filter', 'finddir', 'findfile', 'float2nr', + 'floor', 'fnameescape', 'fnamemodify', 'foldclosed', + 'foldclosedend', 'foldlevel', 'foldtext', 'foldtextresult', + 'foreground', 'garbagecollect', 'get', 'getbufline', + 'getbufvar', 'getchar', 'getcharmod', 'getcmdline', + 'getcmdpos', 'getcmdtype', 'getcwd', 'getfontname', + 'getfperm', 'getfsize', 'getftime', 'getftype', 'getline', 'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist', 'getreg', 'getregtype', 'gettabwinvar', 'getwinposx', 'getwinposy', 'getwinvar', 'glob', 'globpath', 'has', 'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel', - 'histget', 'histnr', 'hlexists', 'hlID', 'hostname', 'iconv', + 'histget', 'histnr', 'hlID', 'hlexists', 'hostname', 'iconv', 'indent', 'index', 'input', 'inputdialog', 'inputlist', 'inputrestore', 'inputsave', 'inputsecret', 'insert', 'isdirectory', 'islocked', 'items', 'join', 'keys', 'len', 'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent', - 'localtime', 'log10', 'map', 'maparg', 'mapcheck', 'match', - 'matchadd', 'matcharg', 'matchdelete', 'matchend', 'matchlist', + 'localtime', 'log10', 'maparg', 'mapcheck', 'matchadd', + 'matcharg', 'matchdelete', 'matchend', 'matchlist', 'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank', - 'nr2char', 'pathshorten', 'pow', 'prevnonblank', 'printf', - 'pumvisible', 'range', 'readfile', 'reltime', 'reltimestr', - 'remote_expr', 'remote_foreground', 'remote_peek', - 'remote_read', 'remote_send', 'remove', 'rename', 'repeat', - 'resolve', 'reverse', 'round', 'search', 'searchdecl', - 'searchpair', 'searchpairpos', 'searchpos', 'server2client', - 'serverlist', 'setbufvar', 'setcmdpos', 'setline', - 'setloclist', 'setmatches', 'setpos', 'setqflist', 'setreg', - 'settabwinvar', 'setwinvar', 'shellescape', 'simplify', 'sin', - 'sort', 'soundfold', 'spellbadword', 'spellsuggest', 'split', - 'sqrt', 'str2float', 'str2nr', 'strftime', 'stridx', 'string', - 'strlen', 'strpart', 'strridx', 'strtrans', 'submatch', - 'substitute', 'synID', 'synIDattr', 'synIDtrans', 'synstack', - 'system', 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', - 'taglist', 'tagfiles', 'tempname', 'tolower', 'toupper', 'tr', - 'trunc', 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', - 'wincol', 'winheight', 'winline', 'winnr', 'winrestcmd', - 'winrestview', 'winsaveview', 'winwidth', 'writefile' + 'nr2char', 'off', 'on', 'pathshorten', 'plugin', 'pow', + 'prevnonblank', 'printf', 'pumvisible', 'range', 'readfile', + 'reltime', 'reltimestr', 'remote_expr', 'remote_foreground', + 'remote_peek', 'remote_read', 'remote_send', 'remove', + 'rename', 'repeat', 'resolve', 'reverse', 'round', 'search', + 'searchdecl', 'searchpair', 'searchpairpos', 'searchpos', + 'server2client', 'serverlist', 'setbufvar', 'setcmdpos', + 'setline', 'setloclist', 'setmatches', 'setpos', 'setqflist', + 'setreg', 'settabwinvar', 'setwinvar', 'shellescape', + 'simplify', 'sin', 'sort', 'soundfold', 'spellbadword', + 'spellsuggest', 'split', 'sqrt', 'str2float', 'str2nr', + 'strftime', 'stridx', 'string', 'strlen', 'strpart', + 'strridx', 'strtrans', 'submatch', 'substitute', + 'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system', + 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles', + 'taglist', 'tempname', 'tolower', 'toupper', 'trunc', + 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', + 'wincol', 'winline', 'winnr', 'winrestcmd', + 'winrestview', 'winsaveview', 'writefile' ) ), 'SYMBOLS' => array( @@ -141,7 +375,8 @@ $language_data = array( 0 => 'color: #000000;' ), 'COMMENTS' => array( - 1 => 'color: #adadad; font-style: italic;' + 1 => 'color: #adadad; font-style: italic;', +// 2 => 'color: #009966; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => '' diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php index 0cb73c2a0..7d804257f 100644 --- a/inc/geshi/visualfoxpro.php +++ b/inc/geshi/visualfoxpro.php @@ -4,7 +4,7 @@ * ---------------- * Author: Roberto Armellin (r.armellin@tin.it) * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/09/17 * * Visual FoxPro language file for GeSHi. @@ -69,7 +69,7 @@ $language_data = array ( 'At_c','Atan','Atc','Atcc','Atcline','Atline', 'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average', 'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound', - 'BinToC','Bintoc','Bitand','Bitclear','Bitlshift','Bitnot', + 'BinToC','Bitand','Bitclear','Bitlshift','Bitnot', 'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof', 'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError', 'CToBin','Calculate','Call','Capslock','Cd','Cdow', @@ -81,7 +81,7 @@ $language_data = array ( 'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf', 'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline', 'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch', - 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctobin','Ctod','Ctot', + 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctod','Ctot', 'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp', 'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable', 'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified', @@ -93,7 +93,7 @@ $language_data = array ( 'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees', 'DeleteTrigger','Desc','Description','Difference','Dimension','Dir', 'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll', - 'Dmy','DoDefault','DoEvents','Doc','Doevents','Dow', + 'Dmy','DoDefault','DoEvents','Doc','Dow', 'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos', 'Dtot','DynamicInputMask','Each','Edit','Eject','Elif', 'End','Eof','Erase','Evaluate','Event','Eventtracking', @@ -115,12 +115,12 @@ $language_data = array ( 'Indbc','Index','Indexseek','Inkey','Inlist','Input', 'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte', 'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit', - 'Isexclusive','Isflocked','Ishosted','Islower','Isreadonly','Isrlocked', - 'Isupper','Italian','Japan','Join','Justdrive','Justext', + 'IsExclusive','Ishosted','IsLower','IsReadOnly', + 'IsUpper','Italian','Japan','Join','Justdrive','Justext', 'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard' ), 2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len', - 'Lenc','Length','Likec','Lineno','LoadPicture','Loadpicture', + 'Lenc','Length','Likec','Lineno','LoadPicture', 'Locate','Locfile','Log','Log10','Logout','Lookup', 'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords', 'Mcol','Md','Mdown','Mdx','Mdy','Memlines', @@ -148,7 +148,7 @@ $language_data = array ( 'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect', 'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults', 'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime', - 'Save','SavePicture','Savepicture','ScaleUnits','Scatter','Scols', + 'Save','SavePicture','ScaleUnits','Scatter','Scols', 'Scroll','Sec','Second','Seek','Select','SendUpdates', 'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls', 'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox', @@ -453,4 +453,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/visualprolog.php b/inc/geshi/visualprolog.php index 19eab2de6..5afd7de8d 100644 --- a/inc/geshi/visualprolog.php +++ b/inc/geshi/visualprolog.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Linder Puls (puls@pdc.dk) * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/11/20 * * Visual Prolog language file for GeSHi. diff --git a/inc/geshi/whitespace.php b/inc/geshi/whitespace.php index 59bbdb8e7..c47775d44 100644 --- a/inc/geshi/whitespace.php +++ b/inc/geshi/whitespace.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * Whitespace language file for GeSHi. diff --git a/inc/geshi/whois.php b/inc/geshi/whois.php new file mode 100644 index 000000000..9b4b24179 --- /dev/null +++ b/inc/geshi/whois.php @@ -0,0 +1,181 @@ +<?php +/************************************************************************************* + * whois.php + * -------- + * Author: Benny Baumann (BenBE@geshi.org) + * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.8 + * Date Started: 2008/09/14 + * + * Whois response (RPSL format) language file for GeSHi. + * + * CHANGES + * ------- + * 2008/09/14 (1.0.0) + * - First Release + * + * TODO + * ---- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'Whois (RPSL format)', + 'COMMENT_SINGLE' => array(1 => '% ', 2 => '%ERROR:'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Description + 3 => '/(?:(?<=^remarks:)|(?<=^descr:))(.|\n\s)*$/mi', + + //Contact Details + 4 => '/(?<=^address:)(.|\n\s)*$/mi', + 5 => '/\+\d+(?:(?:\s\(\d+(\s\d+)*\))?(?:\s\d+)+|-\d+-\d+)/', + 6 => '/\b(?!-|\.)[\w\-\.]+(?!-|\.)@((?!-)[\w\-]+\.)+\w+\b/', + + //IP, Networks and AS information\links + 7 => '/\b(?<!\.|\-)(?:[\da-f:]+(?!\.)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:\/1?\d\d?)?(?<!\.|\-)\b/', + 8 => '/\bAS\d+\b/' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( //Object Types + 'as-block','as-set','aut-num','domain','filter-set','inet-rtr', + 'inet6num','inetnum','irt','key-cert','limerick','mntner', + 'organisation','peering-set','person','poem','role','route-set', + 'route','route6','rtr-set' + ), + 2 => array( //Field Types + 'abuse-mailbox','address','admin-c','aggr-bndry','aggr-mtd','alias', + 'as-block','as-name','as-set','aut-num','auth','author','certif', + 'changed','components','country','default','descr','dom-net', + 'domain','ds-rdata','e-mail','encryption','export','export-comps', + 'fax-no','filter','filter-set','fingerpr','form','holes','ifaddr', + 'import','inet-rtr','inet6num','inetnum','inject','interface','irt', + 'irt-nfy','key-cert','limerick','local-as','mbrs-by-ref', + 'member-of','members','method','mnt-by','mnt-domains','mnt-irt', + 'mnt-lower','mnt-nfy','mnt-ref','mnt-routes','mntner','mp-default', + 'mp-export','mp-filter','mp-import','mp-members','mp-peer', + 'mp-peering','netname','nic-hdl','notify','nserver','org', + 'org-name','org-type','organisation','origin','owner','peer', + 'peering','peering-set','person','phone','poem','ref-nfy','refer', + 'referral-by','remarks','rev-srv','role','route','route-set', + 'route6','rtr-set','signature','source','status','sub-dom','tech-c', + 'text','upd-to','zone-c' + ), + 3 => array( //RPSL reserved + 'accept','action','and','announce','any','as-any','at','atomic', + 'except','from','inbound','into','networks','not','or','outbound', + 'peeras','refine','rs-any','to' + ) + ), + 'SYMBOLS' => array( + ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF; font-weight: bold;', + 2 => 'color: #000080; font-weight: bold;', + 3 => 'color: #990000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic;', + 3 => 'color: #404080;', + 4 => 'color: #408040;', + 5 => 'color: #408040;', + 6 => 'color: #408040;', + 7 => 'color: #804040;', + 8 => 'color: #804040;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => '', + ), + 'NUMBERS' => array( + 0 => 'color: #000080;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #0000FF;' + ), + 'REGEXPS' => array( + 0 => 'color: #000088;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.irr.net/docs/rpsl.html' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Variables + 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=\A |\A \n(?m:^)|\n\n(?m:^))' + ), + 2 => array( + 'DISALLOWED_BEFORE' => '(?m:^)' + ) + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'SYMBOLS' => GESHI_NEVER, + 'BRACKETS' => GESHI_NEVER, + 'STRINGS' => GESHI_NEVER, + 'ESCAPE_CHAR' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER, + 'METHODS' => GESHI_NEVER, + 'SCRIPT' => GESHI_NEVER + ) + ), +); + +?>
\ No newline at end of file diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php index e86b03636..949e61c14 100644 --- a/inc/geshi/winbatch.php +++ b/inc/geshi/winbatch.php @@ -4,7 +4,7 @@ * ------------ * Author: Craig Storey (storey.craig@gmail.com) * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2006/05/19 * * WinBatch language file for GeSHi. @@ -106,8 +106,8 @@ $language_data = array ( 'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random', 'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead', 'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause', - 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd', - 'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', + 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'ObjectEventAdd', + 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', 'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo', 'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError', 'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert', @@ -366,4 +366,4 @@ $language_data = array ( ) ); -?> +?>
\ No newline at end of file diff --git a/inc/geshi/xbasic.php b/inc/geshi/xbasic.php new file mode 100644 index 000000000..a2d85a6df --- /dev/null +++ b/inc/geshi/xbasic.php @@ -0,0 +1,144 @@ +<?php +/************************************************************************************* + * xbasic.php + * ---------- + * Author: Jos Gabriel Moya Yangela (josemoya@gmail.com) + * Copyright: (c) 2005 Jos Gabriel Moya Yangela (http://aprenderadesaprender.6te.net) + * Release Version: 1.0.8.8 + * Date Started: 2005/11/23 + * Last Modified: $Date: 2010/01/30 00:42:00 $ + * + * XBasic language file for GeSHi. + * + * CHANGES + * ------- + * - Removed duplicate keywords + * - Tabs converted in spaces. + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'XBasic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'WHILE', 'UNTIL', 'TRUE', 'TO', 'THEN', 'SUB', 'STOP', 'STEP', + 'SELECT', 'RETURN', 'PROGRAM', 'NEXT', 'LOOP', 'IFZ', + 'IFT', 'IFF', 'IF', 'GOTO', 'GOSUB', 'FOR', 'FALSE', 'EXIT', + 'ENDIF', 'END', 'ELSE', 'DO', 'CASE', 'ALL' + ), + 2 => array( + 'XMAKE', 'XLONGAT', 'XLONG', 'WRITE', 'VOID', 'VERSION$', 'VERSION', + 'USHORTAT', 'USHORT', 'UNION', 'ULONGAT', 'ULONG', 'UCASE$', + 'UBYTEAT', 'UBYTE', 'UBOUND', 'TYPE','TRIM$', 'TAB', 'SWAP', + 'SUBADDRESS', 'SUBADDR', 'STUFF$', 'STRING', 'STRING$', 'STR$', + 'STATIC', 'SSHORTAT', 'SSHORT', 'SPACE$', 'SMAKE', 'SLONGAT', 'SLONG', + 'SIZE', 'SINGLEAT', 'SINGLE', 'SIGNED$', 'SIGN', 'SHELL', 'SHARED', + 'SGN', 'SFUNCTION', 'SET', 'SEEK', 'SCOMPLEX', 'SBYTEAT', 'SBYTE', + 'RTRIM$', 'ROTATER', 'ROTATEL', 'RJUST$', 'RINSTRI', 'RINSTR', + 'RINCHRI', 'RINCHR', 'RIGHT$', 'REDIM', 'READ', 'RCLIP$', 'QUIT', + 'PROGRAM$', 'PRINT', 'POF', 'OPEN', 'OCTO$', 'OCT$', 'NULL$', 'MIN', + 'MID$', 'MAX', 'MAKE', 'LTRIM$', 'LOF', 'LJUST$', 'LIBRARY', 'LEN', + 'LEFT$', 'LCLIP$', 'LCASE$', 'INTERNAL', 'INT', 'INSTRI', 'INSTR', + 'INLINE$', 'INFILE$', 'INCHRI', 'INCHR', 'INC', 'IMPORT', 'HIGH1', + 'HIGH0', 'HEXX$', 'HEX$', 'GOADDRESS', 'GOADDR', 'GMAKE', 'GLOW', + 'GIANTAT', 'GIANT', 'GHIGH', 'FUNCTION', 'FUNCADDRESS', 'FUNCADDR', + 'FORMAT$', 'FIX', 'EXTU', 'EXTS', 'EXTERNAL', 'ERROR', 'ERROR$', + 'EOF', 'DOUBLEAT', 'DOUBLE', 'DMAKE', 'DLOW', 'DIM', 'DHIGH', + 'DECLARE', 'DEC', 'DCOMPLEX', 'CSTRING$', 'CSIZE', 'CSIZE$', 'CLR', + 'CLOSE', 'CLEAR', 'CJUST$', 'CHR$', 'CFUNCTION', 'BITFIELD', 'BINB$', + 'BIN$', 'AUTOX', 'AUTOS', 'AUTO', 'ATTACH', 'ASC', 'ABS' + ), + 3 => array( + 'XOR', 'OR', 'NOT', 'MOD', 'AND' + ), + 4 => array( + 'TANH', 'TAN', 'SQRT', 'SINH', 'SIN', 'SECH', 'SEC', 'POWER', + 'LOG10', 'LOG', 'EXP10', 'EXP', 'CSCH', 'CSC', 'COTH', 'COT', 'COSH', + 'COS', 'ATANH', 'ATAN', 'ASINH', 'ASIN', 'ASECH', 'ASEC', 'ACSCH', + 'ACSC', 'ACOSH', 'ACOS' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', + '=','+','-' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00a1a1;font-weight: bold', + 2 => 'color: #000066;font-weight: bold', + 3 => 'color: #00a166;font-weight: bold', + 4 => 'color: #0066a1;font-weight: bold' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.xbasic.org', + 4 => 'http://www.xbasic.org' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?>
\ No newline at end of file diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php index 1222e9fb9..efd3e6c33 100644 --- a/inc/geshi/xml.php +++ b/inc/geshi/xml.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2004/09/01 * * XML language file for GeSHi. Based on the idea/file by Christian Weiske diff --git a/inc/geshi/xorg_conf.php b/inc/geshi/xorg_conf.php index c32c460b3..5cde8e171 100644 --- a/inc/geshi/xorg_conf.php +++ b/inc/geshi/xorg_conf.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2008/06/18 * * xorg.conf language file for GeSHi. diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php index db0019dd0..216c46eaf 100644 --- a/inc/geshi/xpp.php +++ b/inc/geshi/xpp.php @@ -4,7 +4,7 @@ * ------- * Author: Simon Butcher (simon@butcher.name) * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/02/27 * * Axapta/Dynamics Ax X++ language file for GeSHi. diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php index 2a9b14886..f28593cd2 100644 --- a/inc/geshi/z80.php +++ b/inc/geshi/z80.php @@ -4,7 +4,7 @@ * ------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.8 * Date Started: 2007/02/06 * * ZiLOG Z80 Assembler language file for GeSHi. @@ -129,7 +129,7 @@ $language_data = array ( //Hex numbers 0 => '0[0-9a-fA-F]{1,32}[hH]', //Binary numbers - 1 => '\%[01]{1,64}|[01]{1,64}[bB]?', + 1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)', //Labels 2 => '^[_a-zA-Z][_a-zA-Z0-9]?\:' ), @@ -141,4 +141,4 @@ $language_data = array ( 'TAB_WIDTH' => 8 ); -?> +?>
\ No newline at end of file diff --git a/inc/html.php b/inc/html.php index 29dddbe74..b475e2b7a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -8,8 +8,6 @@ if(!defined('DOKU_INC')) die('meh.'); if(!defined('NL')) define('NL',"\n"); -require_once(DOKU_INC.'inc/parserutils.php'); -require_once(DOKU_INC.'inc/form.php'); /** * Convenience function to quickly build a wikilink @@ -47,7 +45,6 @@ function html_login(){ global $lang; global $conf; global $ID; - global $auth; print p_locale_xhtml('login'); print '<div class="centeralign">'.NL; @@ -63,14 +60,14 @@ function html_login(){ $form->addElement(form_makeButton('submit', '', $lang['btn_login'])); $form->endFieldset(); - if($auth && $auth->canDo('addUser') && actionOK('register')){ + if(actionOK('register')){ $form->addElement('<p>' . $lang['reghere'] . ': <a href="'.wl($ID,'do=register').'" rel="nofollow" class="wikilink1">'.$lang['register'].'</a>' . '</p>'); } - if ($auth && $auth->canDo('modPass') && actionOK('resendpwd')) { + if (actionOK('resendpwd')) { $form->addElement('<p>' . $lang['pwdforget'] . ': <a href="'.wl($ID,'do=resendpwd').'" rel="nofollow" class="wikilink1">'.$lang['btn_resendpwd'].'</a>' @@ -82,45 +79,67 @@ function html_login(){ } /** - * prints a section editing button - * used as a callback in html_secedit + * inserts section edit buttons if wanted or removes the markers * * @author Andreas Gohr <andi@splitbrain.org> */ -function html_secedit_button($matches){ - global $ID; +function html_secedit($text,$show=true){ global $INFO; - $section = $matches[2]; - $name = $matches[1]; - - $secedit = ''; - $secedit .= '<div class="secedit">'; - $secedit .= html_btn('secedit',$ID,'', - array('do' => 'edit', - 'lines' => "$section", - 'rev' => $INFO['lastmod']), - 'post', $name); - $secedit .= '</div>'; - return $secedit; + $regexp = '#<!-- EDIT(\d+) ([A-Z_]+) (?:"([^"]*)" )?\[(\d+-\d*)\] -->#'; + + if(!$INFO['writable'] || !$show || $INFO['rev']){ + return preg_replace($regexp,'',$text); + } + + return preg_replace_callback($regexp, + 'html_secedit_button', $text); } /** - * inserts section edit buttons if wanted or removes the markers + * prepares section edit button data for event triggering + * used as a callback in html_secedit * + * @triggers HTML_SECEDIT_BUTTON * @author Andreas Gohr <andi@splitbrain.org> */ -function html_secedit($text,$show=true){ +function html_secedit_button($matches){ + $data = array('secid' => $matches[1], + 'target' => strtolower($matches[2]), + 'range' => $matches[count($matches) - 1]); + if (count($matches) === 5) { + $data['name'] = $matches[3]; + } + + return trigger_event('HTML_SECEDIT_BUTTON', $data, + 'html_secedit_get_button'); +} + +/** + * prints a section editing button + * used as default action form HTML_SECEDIT_BUTTON + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function html_secedit_get_button($data) { + global $ID; global $INFO; - if($INFO['writable'] && $show && !$INFO['rev']){ - $text = preg_replace_callback('#<!-- SECTION "(.*?)" \[(\d+-\d*)\] -->#', - 'html_secedit_button', $text); - }else{ - $text = preg_replace('#<!-- SECTION "(.*?)" \[(\d+-\d*)\] -->#','',$text); - } + if (!isset($data['name']) || $data['name'] === '') return; + + $name = $data['name']; + unset($data['name']); - return $text; + $secid = $data['secid']; + unset($data['secid']); + + return "<div class='secedit editbutton_" . $data['target'] . + " editbutton_" . $secid . "'>" . + html_btn('secedit', $ID, '', + array_merge(array('do' => 'edit', + 'rev' => $INFO['lastmod'], + 'summary' => '['.$name.'] '), $data), + 'post', $name) . '</div>'; } /** @@ -181,7 +200,7 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip=''){ $tip = htmlspecialchars($label); } - $ret .= '<input type="submit" value="'.htmlspecialchars($label).'" class="button" '; + $ret .= '<input type="submit" value="'.hsc($label).'" class="button" '; if($akey){ $tip .= ' ['.strtoupper($akey).']'; $ret .= 'accesskey="'.$akey.'" '; @@ -198,7 +217,7 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip=''){ * * @author Andreas Gohr <andi@splitbrain.org> */ -function html_show($txt=''){ +function html_show($txt=null){ global $ID; global $REV; global $HIGH; @@ -210,7 +229,7 @@ function html_show($txt=''){ $secedit = true; } - if ($txt){ + if (!is_null($txt)){ //PreviewHeader echo '<br id="scroll__here" />'; echo p_locale_xhtml('preview'); @@ -292,8 +311,6 @@ function html_hilight_callback($m) { * @author Andreas Gohr <andi@splitbrain.org> */ function html_search(){ - require_once(DOKU_INC.'inc/search.php'); - require_once(DOKU_INC.'inc/fulltext.php'); global $conf; global $QUERY; global $ID; @@ -320,18 +337,22 @@ function html_search(){ //do quick pagesearch $data = array(); - if($id) $data = ft_pageLookup($id); + if($id) $data = ft_pageLookup($id,true,useHeading('navigation')); if(count($data)){ print '<div class="search_quickresult">'; print '<h3>'.$lang['quickhits'].':</h3>'; print '<ul class="search_quickhits">'; - foreach($data as $id){ + foreach($data as $id => $title){ print '<li> '; - $ns = getNS($id); - if($ns){ - $name = shorten(noNS($id), ' ('.$ns.')',30); + if (useHeading('navigation')) { + $name = $title; }else{ - $name = $id; + $ns = getNS($id); + if($ns){ + $name = shorten(noNS($id), ' ('.$ns.')',30); + }else{ + $name = $id; + } } print html_wikilink(':'.$id,$name); print '</li> '; @@ -352,7 +373,7 @@ function html_search(){ print html_wikilink(':'.$id,useHeading('navigation')?null:$id,$regex); if($cnt !== 0){ print ': <span class="search_cnt">'.$cnt.' '.$lang['hits'].'</span><br />'; - if($num < 15){ // create snippets for the first number of matches only #FIXME add to conf ? + if($num < FT_SNIPPET_NUMBER){ // create snippets for the first number of matches only print '<div class="search_snippet">'.ft_snippet($id,$regex).'</div>'; } $num++; @@ -686,7 +707,6 @@ function html_recent($first=0){ * @author Andreas Gohr <andi@splitbrain.org> */ function html_index($ns){ - require_once(DOKU_INC.'inc/search.php'); global $conf; global $ID; $dir = $conf['datadir']; @@ -824,7 +844,6 @@ function html_buildlist($data,$class,$func,$lifunc='html_li_default'){ * @author Michael Klier <chi@chimeric.de> */ function html_backlinks(){ - require_once(DOKU_INC.'inc/fulltext.php'); global $ID; global $conf; global $lang; @@ -852,7 +871,6 @@ function html_backlinks(){ * @author Andreas Gohr <andi@splitbrain.org> */ function html_diff($text='',$intro=true){ - require_once(DOKU_INC.'inc/DifferenceEngine.php'); global $ID; global $REV; global $lang; @@ -973,6 +991,13 @@ function html_diff($text='',$intro=true){ $tdf = new TableDiffFormatter(); if($intro) print p_locale_xhtml('diff'); + + if (!$text) { + $diffurl = wl($ID, array('do'=>'diff', 'rev2[0]'=>$l_rev, 'rev2[1]'=>$r_rev)); + ptln('<p class="difflink">'); + ptln(' <a class="wikilink1" href="'.$diffurl.'">'.$lang['difflink'].'</a>'); + ptln('</p>'); + } ?> <table class="diff"> <tr> @@ -1104,131 +1129,139 @@ function html_updateprofile(){ } /** - * This displays the edit form (lots of logic included) + * Preprocess edit form data * - * @fixme this is a huge lump of code and should be modularized - * @triggers HTML_PAGE_FROMTEMPLATE - * @triggers HTML_EDITFORM_INJECTION * @author Andreas Gohr <andi@splitbrain.org> + * + * @triggers HTML_EDITFORM_OUTPUT */ -function html_edit($text=null,$include='edit'){ //FIXME: include needed? +function html_edit(){ global $ID; global $REV; global $DATE; - global $RANGE; global $PRE; global $SUF; global $INFO; global $SUM; global $lang; global $conf; - global $license; - - //set summary default - if(!$SUM){ - if($REV){ - $SUM = $lang['restored']; - }elseif(!$INFO['exists']){ - $SUM = $lang['created']; - } - } + global $TEXT; + global $RANGE; - //no text? Load it! - if(!isset($text)){ - $pr = false; //no preview mode - if($INFO['exists']){ - if($RANGE){ - list($PRE,$text,$SUF) = rawWikiSlices($RANGE,$ID,$REV); - }else{ - $text = rawWiki($ID,$REV); - } - $check = md5($text); - $mod = false; - }else{ - //try to load a pagetemplate - $data = array($ID); - $text = trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true); - $check = md5(''); - $mod = $text!==''; - } - }else{ - $pr = true; //preview mode - if (isset($_REQUEST['changecheck'])) { - $check = $_REQUEST['changecheck']; - $mod = md5($text)!==$check; - } else { - // Why? Assume default text is unmodified. - $check = md5($text); - $mod = false; - } + if (isset($_REQUEST['changecheck'])) { + $check = $_REQUEST['changecheck']; + } elseif(!$INFO['exists']){ + // $TEXT has been loaded from page template + $check = md5(''); + } else { + $check = md5($TEXT); } + $mod = md5($TEXT) !== $check; $wr = $INFO['writable'] && !$INFO['locked']; + $include = 'edit'; if($wr){ - if ($REV) print p_locale_xhtml('editrev'); - print p_locale_xhtml($include); + if ($REV) $include = 'editrev'; }else{ // check pseudo action 'source' if(!actionOK('source')){ msg('Command disabled: source',-1); return; } - print p_locale_xhtml('read'); + $include = 'read'; } - if(!$DATE) $DATE = $INFO['lastmod']; - ?> - <div style="width:99%;"> - - <div class="toolbar"> - <div id="draft__status"><?php if(!empty($INFO['draft'])) echo $lang['draftdate'].' '.dformat();?></div> - <div id="tool__bar"><?php if($wr){?><a href="<?php echo DOKU_BASE?>lib/exe/mediamanager.php?ns=<?php echo $INFO['namespace']?>" - target="_blank"><?php echo $lang['mediaselect'] ?></a><?php }?></div> - - <?php if($wr){?> - <script type="text/javascript" charset="utf-8"><!--//--><![CDATA[//><!-- - <?php /* sets changed to true when previewed */?> - textChanged = <?php ($mod) ? print 'true' : print 'false' ?>; - //--><!]]></script> - <?php } ?> - </div> - <?php - $form = new Doku_Form(array('id' => 'dw__editform')); - $form->addHidden('id', $ID); - $form->addHidden('rev', $REV); - $form->addHidden('date', $DATE); - $form->addHidden('prefix', $PRE); - $form->addHidden('suffix', $SUF); - $form->addHidden('changecheck', $check); - $attr = array('tabindex'=>'1'); - if (!$wr) $attr['readonly'] = 'readonly'; - $form->addElement(form_makeWikiText($text, $attr)); - $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); - $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); + + global $license; + + $form = new Doku_Form(array('id' => 'dw__editform')); + $form->addHidden('id', $ID); + $form->addHidden('rev', $REV); + $form->addHidden('date', $DATE); + $form->addHidden('prefix', $PRE); + $form->addHidden('suffix', $SUF); + $form->addHidden('changecheck', $check); + + $data = array('form' => $form, + 'wr' => $wr, + 'media_manager' => true, + 'target' => (isset($_REQUEST['target']) && $wr && + $RANGE !== '') ? $_REQUEST['target'] : 'section', + 'intro_locale' => $include); + + if ($data['target'] !== 'section') { + // Only emit event if page is writable, section edit data is valid and + // edit target is not section. + trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); + } else { + html_edit_form($data); + } + if (isset($data['intro_locale'])) { + echo p_locale_xhtml($data['intro_locale']); + } + + $form->addHidden('target', $data['target']); + $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); + $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); + $form->addElement(form_makeCloseTag('div')); + if ($wr) { + $form->addElement(form_makeOpenTag('div', array('class'=>'editButtons'))); + $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('id'=>'edbtn__save', 'accesskey'=>'s', 'tabindex'=>'4'))); + $form->addElement(form_makeButton('submit', 'preview', $lang['btn_preview'], array('id'=>'edbtn__preview', 'accesskey'=>'p', 'tabindex'=>'5'))); + $form->addElement(form_makeButton('submit', 'draftdel', $lang['btn_cancel'], array('tabindex'=>'6'))); $form->addElement(form_makeCloseTag('div')); - if ($wr) { - $form->addElement(form_makeOpenTag('div', array('class'=>'editButtons'))); - $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('id'=>'edbtn__save', 'accesskey'=>'s', 'tabindex'=>'4'))); - $form->addElement(form_makeButton('submit', 'preview', $lang['btn_preview'], array('id'=>'edbtn__preview', 'accesskey'=>'p', 'tabindex'=>'5'))); - $form->addElement(form_makeButton('submit', 'draftdel', $lang['btn_cancel'], array('tabindex'=>'6'))); - $form->addElement(form_makeCloseTag('div')); - $form->addElement(form_makeOpenTag('div', array('class'=>'summary'))); - $form->addElement(form_makeTextField('summary', $SUM, $lang['summary'], 'edit__summary', 'nowrap', array('size'=>'50', 'tabindex'=>'2'))); - $elem = html_minoredit(); - if ($elem) $form->addElement($elem); - $form->addElement(form_makeCloseTag('div')); - } + $form->addElement(form_makeOpenTag('div', array('class'=>'summary'))); + $form->addElement(form_makeTextField('summary', $SUM, $lang['summary'], 'edit__summary', 'nowrap', array('size'=>'50', 'tabindex'=>'2'))); + $elem = html_minoredit(); + if ($elem) $form->addElement($elem); $form->addElement(form_makeCloseTag('div')); - if($wr && $conf['license']){ - $form->addElement(form_makeOpenTag('div', array('class'=>'license'))); - $out = $lang['licenseok']; - $out .= '<a href="'.$license[$conf['license']]['url'].'" rel="license" class="urlextern"'; - if(isset($conf['target']['external'])) $out .= ' target="'.$conf['target']['external'].'"'; - $out .= '> '.$license[$conf['license']]['name'].'</a>'; - $form->addElement($out); - $form->addElement(form_makeCloseTag('div')); - } - html_form('edit', $form); - print '</div>'.NL; + } + $form->addElement(form_makeCloseTag('div')); + if($wr && $conf['license']){ + $form->addElement(form_makeOpenTag('div', array('class'=>'license'))); + $out = $lang['licenseok']; + $out .= '<a href="'.$license[$conf['license']]['url'].'" rel="license" class="urlextern"'; + if(isset($conf['target']['extern'])) $out .= ' target="'.$conf['target']['extern'].'"'; + $out .= '> '.$license[$conf['license']]['name'].'</a>'; + $form->addElement($out); + $form->addElement(form_makeCloseTag('div')); + } + + if ($wr) { + // sets changed to true when previewed + echo '<script type="text/javascript" charset="utf-8"><!--//--><![CDATA[//><!--'. NL; + echo 'textChanged = ' . ($mod ? 'true' : 'false'); + echo '//--><!]]></script>' . NL; + } ?> + <div style="width:99%;"> + + <div class="toolbar"> + <div id="draft__status"><?php if(!empty($INFO['draft'])) echo $lang['draftdate'].' '.dformat();?></div> + <div id="tool__bar"><?php if ($wr && $data['media_manager']){?><a href="<?php echo DOKU_BASE?>lib/exe/mediamanager.php?ns=<?php echo $INFO['namespace']?>" + target="_blank"><?php echo $lang['mediaselect'] ?></a><?php }?></div> + + </div> + <?php + + html_form('edit', $form); + print '</div>'.NL; +} + +/** + * Display the default edit form + * + * Is the default action for HTML_EDIT_FORMSELECTION. + */ +function html_edit_form($param) { + global $TEXT; + + if ($param['target'] !== 'section') { + msg('No editor for edit target ' . $param['target'] . ' found.', -1); + } + + $attr = array('tabindex'=>'1'); + if (!$param['wr']) $attr['readonly'] = 'readonly'; + + $param['form']->addElement(form_makeWikiText($TEXT, $attr)); } /** diff --git a/inc/indexer.php b/inc/indexer.php index 14af579bb..01ba76b08 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -1,15 +1,12 @@ <?php /** - * Common DokuWiki functions + * Functions to create the fulltext search index * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Andreas Gohr <andi@splitbrain.org> */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/parserutils.php'); // set the minimum token length to use in the index (note, this doesn't apply to numeric tokens) if (!defined('IDX_MINWORDLENGTH')) define('IDX_MINWORDLENGTH',2); @@ -308,6 +305,8 @@ function idx_addPage($page){ } unset($page_idx); // free memory + idx_saveIndexLine('title', '', $pid, p_get_first_heading($page, false)); + $pagewords = array(); // get word usage in page $words = idx_getPageWords($page); @@ -414,40 +413,85 @@ function idx_updateIndexLine($line,$pid,$count){ } /** + * Get the list of lenghts indexed in the wiki + * + * Read the index directory or a cache file and returns + * a sorted array of lengths of the words used in the wiki. + * + * @author YoBoY <yoboy.leguesh@gmail.com> + */ +function idx_listIndexLengths() { + global $conf; + // testing what we have to do, create a cache file or not. + if ($conf['readdircache'] == 0) { + $docache = false; + } else { + clearstatcache(); + if (@file_exists($conf['indexdir'].'/lengths.idx') and (time() < @filemtime($conf['indexdir'].'/lengths.idx') + $conf['readdircache'])) { + if (($lengths = @file($conf['indexdir'].'/lengths.idx', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ) !== false) { + $idx = array(); + foreach ( $lengths as $length) { + $idx[] = (int)$length; + } + return $idx; + } + } + $docache = true; + } + + if ($conf['readdircache'] == 0 or $docache ) { + $dir = @opendir($conf['indexdir']); + if($dir===false) + return array(); + $idx[] = array(); + while (($f = readdir($dir)) !== false) { + if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ + $i = substr($f,1,-4); + if (is_numeric($i)) + $idx[] = (int)$i; + } + } + closedir($dir); + sort($idx); + // we save this in a file. + if ($docache === true) { + $handle = @fopen($conf['indexdir'].'/lengths.idx','w'); + @fwrite($handle, implode("\n",$idx)); + @fclose($handle); + } + return $idx; + } + + return array(); +} + +/** * Get the word lengths that have been indexed. * * Reads the index directory and returns an array of lengths * that there are indices for. * - * @author Tom N Harris <tnharris@whoopdedo.org> + * @author YoBoY <yoboy.leguesh@gmail.com> */ function idx_indexLengths(&$filter){ global $conf; - $dir = @opendir($conf['indexdir']); - if($dir===false) - return array(); $idx = array(); - if(is_array($filter)){ - while (($f = readdir($dir)) !== false) { - if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ - $i = substr($f,1,-4); - if (is_numeric($i) && isset($filter[(int)$i])) - $idx[] = (int)$i; + if (is_array($filter)){ + // testing if index files exists only + foreach ($filter as $key => $value) { + if (@file_exists($conf['indexdir']."/i$key.idx")) { + $idx[] = $key; } } - }else{ - // Exact match first. - if(@file_exists($conf['indexdir']."/i$filter.idx")) - $idx[] = $filter; - while (($f = readdir($dir)) !== false) { - if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ - $i = substr($f,1,-4); - if (is_numeric($i) && $i > $filter) - $idx[] = (int)$i; + } else { + $lengths = idx_listIndexLengths(); + foreach ( $lengths as $key => $length) { + // we keep all the values equal or superior + if ((int)$length >= (int)$filter) { + $idx[] = $length; } } } - closedir($dir); return $idx; } diff --git a/inc/infoutils.php b/inc/infoutils.php index b43dd40be..ac6a0a84c 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); if(!defined('DOKU_MESSAGEURL')) define('DOKU_MESSAGEURL','http://update.dokuwiki.org/check/'); -require_once(DOKU_INC.'inc/HTTPClient.php'); /** * Check for new messages from upstream @@ -17,6 +16,7 @@ require_once(DOKU_INC.'inc/HTTPClient.php'); function checkUpdateMessages(){ global $conf; global $INFO; + global $updateVersion; if(!$conf['updatecheck']) return; if($conf['useacl'] && !$INFO['ismanager']) return; @@ -24,12 +24,10 @@ function checkUpdateMessages(){ $lm = @filemtime($cf); // check if new messages needs to be fetched - if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_CONF.'msg')){ - $num = @file(DOKU_CONF.'msg'); - $num = is_array($num) ? (int) $num[0] : 0; + if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.'doku.php')){ $http = new DokuHTTPClient(); $http->timeout = 8; - $data = $http->get(DOKU_MESSAGEURL.$num); + $data = $http->get(DOKU_MESSAGEURL.$updateVersion); io_saveFile($cf,$data); }else{ $data = io_readFile($cf); @@ -55,36 +53,31 @@ function getVersionData(){ //official release $version['date'] = trim(io_readfile(DOKU_INC.'VERSION')); $version['type'] = 'Release'; - return $version; - }elseif(is_dir(DOKU_INC.'_darcs')){ - if(is_file(DOKU_INC.'_darcs/inventory')){ - $inventory = DOKU_INC.'_darcs/inventory'; - }elseif(is_file(DOKU_INC.'_darcs/hashed_inventory')){ - $inventory = DOKU_INC.'_darcs/hashed_inventory'; - }else{ - $version['date'] = 'unknown'; - $version['type'] = 'Darcs'; - return $version; - } - - //darcs checkout - read last 2000 bytes of inventory - $sz = filesize($inventory); - $seek = max(0,$sz-2000); - $fh = fopen($inventory,'rb'); - fseek($fh,$seek); - $chunk = fread($fh,2000); - fclose($fh); + }elseif(is_dir(DOKU_INC.'.git')){ + $version['type'] = 'Git'; + $version['date'] = 'unknown'; - preg_match_all('#\*\*(\d{4})(\d{2})(\d{2})\d{6}(?:\]|$)#m', $chunk, $matches, - PREG_SET_ORDER); - $version['date'] = implode('-', array_slice(array_pop($matches), 1)); - $version['type'] = 'Darcs'; - return $version; + $inventory = DOKU_INC.'.git/logs/HEAD'; + if(is_file($inventory)){ + $sz = filesize($inventory); + $seek = max(0,$sz-2000); // read from back of the file + $fh = fopen($inventory,'rb'); + fseek($fh,$seek); + $chunk = fread($fh,2000); + fclose($fh); + $chunk = trim($chunk); + $chunk = array_pop(explode("\n",$chunk)); //last log line + $chunk = array_shift(explode("\t",$chunk)); //strip commit msg + $chunk = explode(" ",$chunk); + array_pop($chunk); //strip timezone + $date = date('Y-m-d',array_pop($chunk)); + if($date) $version['date'] = $date; + } }else{ $version['date'] = 'unknown'; $version['type'] = 'snapshot?'; - return $version; } + return $version; } /** @@ -106,7 +99,9 @@ function check(){ global $conf; global $INFO; - msg('DokuWiki version: '.getVersion(),1); + if ($INFO['isadmin'] || $INFO['ismanager']){ + msg('DokuWiki version: '.getVersion(),1); + } if(version_compare(phpversion(),'5.1.2','<')){ msg('Your PHP version is too old ('.phpversion().' vs. 5.1.2+ needed)',-1); @@ -228,7 +223,6 @@ function check(){ msg('The current page is not writable by you',0); } - require_once(DOKU_INC.'inc/HTTPClient.php'); $check = wl('','',true).'data/_dummy'; $http = new DokuHTTPClient(); $http->timeout = 6; @@ -272,17 +266,15 @@ function msg($message,$lvl=0,$line='',$file=''){ if($line || $file) $message.=' ['.basename($file).':'.$line.']'; - if(!headers_sent()){ - if(!isset($MSG)) $MSG = array(); - $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); - }else{ - $MSG = array(); - $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); + if(!isset($MSG)) $MSG = array(); + $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); + if(headers_sent()){ if(function_exists('html_msgarea')){ html_msgarea(); }else{ print "ERROR($lvl) $message"; } + unset($GLOBALS['MSG']); } } @@ -294,9 +286,15 @@ function msg($message,$lvl=0,$line='',$file=''){ * @author Andreas Gohr <andi@splitbrain.org> */ function dbg($msg,$hidden=false){ - (!$hidden) ? print '<pre class="dbg">' : print "<!--\n"; - print_r($msg); - (!$hidden) ? print '</pre>' : print "\n-->"; + if($hidden){ + echo "<!--\n"; + print_r($msg); + echo "\n-->"; + }else{ + echo '<pre class="dbg">'; + echo hsc(print_r($msg,true)); + echo '</pre>'; + } } /** diff --git a/inc/init.php b/inc/init.php index 6fb9559ce..b53167e3c 100644 --- a/inc/init.php +++ b/inc/init.php @@ -20,6 +20,9 @@ if (@file_exists($preload)) include($preload); // define the include path if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/'); +// define Plugin dir +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); + // define config path (packagers may want to change this to /etc/dokuwiki/) if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/'); @@ -51,49 +54,7 @@ global $cache_metadata; //set the configuration cascade - but only if its not already been set in preload.php if (empty($config_cascade)) { - $config_cascade = array( - 'main' => array( - 'default' => array(DOKU_CONF.'dokuwiki.php'), - 'local' => array(DOKU_CONF.'local.php'), - 'protected' => array(DOKU_CONF.'local.protected.php'), - ), - 'acronyms' => array( - 'default' => array(DOKU_CONF.'acronyms.conf'), - 'local' => array(DOKU_CONF.'acronyms.local.conf'), - ), - 'entities' => array( - 'default' => array(DOKU_CONF.'entities.conf'), - 'local' => array(DOKU_CONF.'entities.local.conf'), - ), - 'interwiki' => array( - 'default' => array(DOKU_CONF.'interwiki.conf'), - 'local' => array(DOKU_CONF.'interwiki.local.conf'), - ), - 'license' => array( - 'default' => array(DOKU_CONF.'license.php'), - 'local' => array(DOKU_CONF.'license.local.php'), - ), - 'mediameta' => array( - 'default' => array(DOKU_CONF.'mediameta.php'), - 'local' => array(DOKU_CONF.'mediameta.local.php'), - ), - 'mime' => array( - 'default' => array(DOKU_CONF.'mime.conf'), - 'local' => array(DOKU_CONF.'mime.local.conf'), - ), - 'scheme' => array( - 'default' => array(DOKU_CONF.'scheme.conf'), - 'local' => array(DOKU_CONF.'scheme.local.conf'), - ), - 'smileys' => array( - 'default' => array(DOKU_CONF.'smileys.conf'), - 'local' => array(DOKU_CONF.'smileys.local.conf'), - ), - 'wordblock' => array( - 'default' => array(DOKU_CONF.'wordblock.conf'), - 'local' => array(DOKU_CONF.'wordblock.local.conf'), - ), - ); + include(DOKU_INC.'inc/config_cascade.php'); } //prepare config array() @@ -155,8 +116,6 @@ if(!defined('DOKU_TAB')) define ('DOKU_TAB',"\t"); // define cookie and session id, append server port when securecookie is configured FS#1664 if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:''))); -// define Plugin dir -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); // define main script if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php'); @@ -245,6 +204,25 @@ init_files(); scriptify(DOKU_CONF.'users.auth'); scriptify(DOKU_CONF.'acl.auth'); +// setup plugin controller class (can be overwritten in preload.php) +$plugin_types = array('admin','syntax','action','renderer', 'helper'); +global $plugin_controller_class, $plugin_controller; +if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; + +// load libraries +require_once(DOKU_INC.'inc/load.php'); + +// initialize plugin controller +$plugin_controller = new $plugin_controller_class(); + +// initialize the event handler +global $EVENT_HANDLER; +$EVENT_HANDLER = new Doku_Event_Handler(); + +// setup authentication system +if (!defined('NOSESSION')) { + auth_setup(); +} /** * Checks paths from config file @@ -284,7 +262,7 @@ function init_paths(){ function init_files(){ global $conf; - $files = array( $conf['indexdir'].'/page.idx'); + $files = array($conf['indexdir'].'/page.idx'); foreach($files as $file){ if(!@file_exists($file)){ @@ -297,6 +275,22 @@ function init_files(){ } } } + + # create title index (needs to have same length as page.idx) + $file = $conf['indexdir'].'/title.idx'; + if(!@file_exists($file)){ + $pages = file($conf['indexdir'].'/page.idx'); + $pages = count($pages); + $fh = @fopen($file,'a'); + if($fh){ + for($i=0; $i<$pages; $i++){ + fwrite($fh,"\n"); + } + fclose($fh); + }else{ + nice_die("$file is not writable. Check your permissions settings!"); + } + } } /** @@ -526,7 +520,6 @@ EOT; exit; } - /** * A realpath() replacement * @@ -588,5 +581,3 @@ function fullpath($path,$exists=false){ return $finalpath; } - - diff --git a/inc/io.php b/inc/io.php index 32a6f7b8e..1d69dabc9 100644 --- a/inc/io.php +++ b/inc/io.php @@ -7,10 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/HTTPClient.php'); -require_once(DOKU_INC.'inc/events.php'); -require_once(DOKU_INC.'inc/utf8.php'); /** * Removes empty directories diff --git a/inc/lang/ar/adminplugins.txt b/inc/lang/ar/adminplugins.txt new file mode 100644 index 000000000..44790a04b --- /dev/null +++ b/inc/lang/ar/adminplugins.txt @@ -0,0 +1 @@ +===== إضافات إضافية =====
\ No newline at end of file diff --git a/inc/lang/ar/install.html b/inc/lang/ar/install.html new file mode 100644 index 000000000..1daf507c5 --- /dev/null +++ b/inc/lang/ar/install.html @@ -0,0 +1,12 @@ +<p>تساعد هذه الصفحة في التثبيت والإعداد الأوليين ل <a href="http://dokuwiki.org">دوكو ويكي</a>. مزيد من المعلومات عن هذا المثبت في +<a href="http://dokuwiki.org/installer">صفحة التوثيق</a> الخاصة به.</p> + +<p>دوكو ويكي تستخدم ملفات عادية لتخزين الصفحات و المعلومات المرتبطة بها (مثل. الصور , وفهارس البحث, والنسخ القديمة, إلخ). لكي تعمل بنجاح دوكو ويكي <strong>يجب</strong> ان يكون لديها اذن بالكتابة على المجلدات التي تحوي هذه الملفات. هذا المثبت غير قادر على اعداد اذونات المجلدات. عادة يجب عمل هذا مباشرة باستخدام أمر في محث الاوامر أو إن كنت تستخدم استضافة، عن طريقة FTP في لوحة تحكم الاستضافة (مثل. cPanel).</p> + +<p>سيُعد هذا المثبت اعدادات دوكو ويكي ل +<acronym title="قائمة التحكم بالوصول">ACL</acronym>, الذي سيسمح للمدير بالولوج و الوصول لقائمة إدارة دوكو ويكي لتثبيت الإضافات، وإدارة المستخدمين، و التحكم بالوصول لصفحات الويكي، وتعديل الاعدادات. +ليس مطلوبا لأجل عمل دوكو ويكي, لكنه سيجعل دوكو ويكي أسهل على المدير.</p> + +<p>المستخدمين الخبراء و المستخدمين مع متطلبات خاصة عليهم استخدام هذا الرابط لتفاصيل تتعلق ب +<a href="http://dokuwiki.org/install">توجيهات التثبيت</a> +و <a href="http://dokuwiki.org/config">ضبط الإعدادات</a>.</p>
\ No newline at end of file diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 2ba1f7e9f..30095347e 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -5,6 +5,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Mostafa Hussein <mostafa@gmail.com> * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -13,82 +14,115 @@ $lang['doublequoteclosing'] = '”'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '؛'; -$lang['btn_edit'] = 'تحرير هذه الصفحة'; -$lang['btn_source'] = 'عرض مصدر الصفحة'; -$lang['btn_show'] = 'عرض الصفحة'; -$lang['btn_create'] = 'إنشاء هذه الصفحة'; -$lang['btn_search'] = 'بحث'; -$lang['btn_save'] = 'حفظ'; -$lang['btn_preview'] = 'استعراض'; -$lang['btn_top'] = 'لأعلى'; +$lang['btn_edit'] = 'حرر هذه الصفحة'; +$lang['btn_source'] = 'اعرض مصدر الصفحة'; +$lang['btn_show'] = 'اعرض الصفحة'; +$lang['btn_create'] = 'أنشئ هذه الصفحة'; +$lang['btn_search'] = 'ابحث'; +$lang['btn_save'] = 'احفظ'; +$lang['btn_preview'] = 'عاين'; +$lang['btn_top'] = 'ارجع للأعلى'; $lang['btn_newer'] = '<< أحدث'; $lang['btn_older'] = 'أقدم >>'; $lang['btn_revs'] = 'نسخ قديمة'; -$lang['btn_recent'] = 'أحدث التعديلات'; -$lang['btn_upload'] = 'تحميل'; -$lang['btn_cancel'] = 'إلغاء'; +$lang['btn_recent'] = 'أحدث التغييرات'; +$lang['btn_upload'] = 'ارفع'; +$lang['btn_cancel'] = 'ألغ'; $lang['btn_index'] = 'فهرس'; -$lang['btn_secedit'] = 'تحرير'; -$lang['btn_login'] = 'دخول'; -$lang['btn_logout'] = 'خروج'; +$lang['btn_secedit'] = 'حرر'; +$lang['btn_login'] = 'لج'; +$lang['btn_logout'] = 'اخرج'; $lang['btn_admin'] = 'المدير'; -$lang['btn_update'] = 'تحديث'; -$lang['btn_delete'] = 'حذف'; -$lang['btn_back'] = 'رجوع'; +$lang['btn_update'] = 'حدّث'; +$lang['btn_delete'] = 'احذف'; +$lang['btn_back'] = 'ارجع'; $lang['btn_backlink'] = 'ارتباطات'; -$lang['btn_backtomedia'] = 'رجوع إلى اختيار ملف الوسائط'; -$lang['btn_subscribe'] = 'اشترك في التعديلات'; -$lang['btn_unsubscribe'] = 'إلغاء الاشتراك في التعديلات'; -$lang['btn_profile'] = 'تحديث الملف الشخصي'; -$lang['btn_reset'] = 'تفريغ'; -$lang['btn_resendpwd'] = 'إرسال كلمة مرور جديدة'; -$lang['btn_draft'] = 'تحرير المسوّدة'; -$lang['btn_recover'] = 'استعادة المسوّدة'; -$lang['btn_draftdel'] = 'حذف المسوّدة'; -$lang['btn_revert'] = 'إعادة'; -$lang['loggedinas'] = 'دخول باسم'; -$lang['user'] = 'اسم المشترك'; -$lang['pass'] = 'كلمة المرور'; -$lang['newpass'] = 'كلمة مرور جديدة'; -$lang['oldpass'] = 'تأكيد كلمة المرور الحالية'; +$lang['btn_backtomedia'] = 'ارجع إلى اختيار ملف الوسائط'; +$lang['btn_subscribe'] = 'ادر الاشتراكات'; +$lang['btn_profile'] = 'حدث الملف الشخصي'; +$lang['btn_reset'] = 'صفّر'; +$lang['btn_resendpwd'] = 'ارسل كلمة سر جديدة'; +$lang['btn_draft'] = 'حرر المسودة'; +$lang['btn_recover'] = 'استرجع المسودة'; +$lang['btn_draftdel'] = 'احذف المسوّدة'; +$lang['btn_revert'] = 'استعد +'; +$lang['loggedinas'] = 'داخل باسم'; +$lang['user'] = 'اسم المستخدم'; +$lang['pass'] = 'كلمة السر'; +$lang['newpass'] = 'كلمة سر جديدة'; +$lang['oldpass'] = 'أكد كلمة السر الحالية'; $lang['passchk'] = 'مرة أخرى'; $lang['remember'] = 'تذكرني'; $lang['fullname'] = 'الاسم الكامل'; $lang['email'] = 'البريد الإلكتروني'; -$lang['register'] = 'تسجيل'; +$lang['register'] = 'سجّل'; $lang['profile'] = 'الملف الشخصي'; -$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة المرور غير صحيحة'; +$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة'; $lang['minoredit'] = 'تعديلات طفيفة'; -$lang['draftdate'] = 'تشغيل حفظ المسوّدة آلياً'; -$lang['regmissing'] = 'عذرا، يجب ملء جميع الخانات'; -$lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم'; -$lang['regsuccess'] = 'تم تسجيل المشترك و أرسلت كلمة المرور عبر البريد الإلكتروني'; -$lang['regsuccess2'] = 'تم إنشاء المشترك'; -$lang['regmailfail'] = 'حدث خطأ فى إرسال رسالة كلمة المرور. يرجى مراسلة المدير'; -$lang['regbadmail'] = 'البريد الإلكتروني المعطى غير صحيح، إن كنت تظن الخطأ من الموقع راسل المدير'; -$lang['regbadpass'] = 'كلمتى المرور غير متطابقتين، حاول مرة أخرى'; -$lang['regpwmail'] = 'كلمة مرورك إلى دوكي ويكي'; -$lang['reghere'] = 'لست مشتركاً؟ تفضل اشترك'; +$lang['draftdate'] = 'حفظ المسودات تلقائيا مشغل'; +$lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الفقرة اصبحت قديمة. حُمُلت كل الصفحة بدلا.'; +$lang['regmissing'] = 'عذرا، يجب ملء جميع الحقول'; +$lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم.'; +$lang['regsuccess'] = 'أنشئ المستخدم و ارسلت كلمة السر بالبريد.'; +$lang['regsuccess2'] = 'أنشئ المستخدم.'; +$lang['regmailfail'] = 'حدث خطأ فى إرسال رسالة كلمة اسرر. يرجى مراسلة المدير'; +$lang['regbadmail'] = 'يبدو البريد الإلكتروني المعطى غير صحيح، إن كنت تظن أن هذا خطأ، راسل المدير'; +$lang['regbadpass'] = 'كلمتى المرور غير متطابقتين، حاول مرة أخرى.'; +$lang['regpwmail'] = 'كلمة مرورك إلى دوكو ويكي'; +$lang['reghere'] = 'ليس لديك حساب بعد؟ احصل على واحد'; $lang['profna'] = 'هذه الويكي لا تدعم تعديل الملف الشخصي'; -$lang['profnochange'] = 'لا تغييرات، لا شيء مطلوب عمله'; -$lang['profnoempty'] = 'ليس مسموحاً ترك الاسم أو البريد الإلكتروني فارغاً'; -$lang['profchanged'] = 'تم تحديث الملف الشخصي بنجاح'; -$lang['pwdforget'] = 'نسيت كلمة المرور؟ احصل على واحدة جديدة'; -$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور'; -$lang['resendpwd'] = 'إرسال كلمة المرور إلى'; -$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ جميع الخانات'; -$lang['resendpwdnouser'] = 'عذراً، لدينا هذا المشترك في قاعدة بياناتنا'; -$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد أنك استخدمت كامل وصلة التأكيد'; -$lang['resendpwdconfirm'] = 'تم إرسال وصلة تأكيد إلى بريدك الإلكتروني'; -$lang['resendpwdsuccess'] = 'كلمة مرورك الجديدة تم إرسالها عبر البريد الإلكتروني'; -$lang['searchmedia'] = 'البحث عن اسم الملف : '; -$lang['txt_upload'] = 'اختر ملفاً للتحميل'; -$lang['txt_filename'] = 'تحميل باسم - اختياري'; -$lang['txt_overwrt'] = 'الكتابة على ملف موجود بنفس الاسم مسموحة'; -$lang['lockedby'] = 'حالياً مقفول بواسطة'; -$lang['lockexpire'] = 'سينتهي القفل في'; -$lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة. لتجنب التعارض استخدم زر استعراض لبدأ القفل من جديد'; -$lang['notsavedyet'] = 'التعديلات التي لم تحفظ ستفقد. أموافق ؟'; +$lang['profnochange'] = 'لا تغييرات، لا شيء ليُعمل.'; +$lang['profnoempty'] = 'غير مسموح باسم مستخدم أو بريد فارغ.'; +$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.'; +$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة'; +$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.'; +$lang['resendpwd'] = 'إرسال كلمة مرور'; +$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ كل الحقول.'; +$lang['resendpwdnouser'] = 'عذراً، لم نجد المستخدم هذا في قاعدة بياناتنا.'; +$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد من استخدامك كامل وصلة التأكيد.'; +$lang['resendpwdconfirm'] = 'أرسل رابط التأكيد بواسطة البريد.'; +$lang['resendpwdsuccess'] = 'كلمة السرالجديدة إرسلت عبر البريد.'; +$lang['license'] = 'مالم يشر لخلاف ذلك، فإن المحتوى على هذه الويكي مرخص وفق الرخصة التالية:'; +$lang['licenseok'] = 'لاحظ: بتحرير هذه الصفحة أنت توافق على ترخيص محتواها تحت الرخصة التالية:'; +$lang['searchmedia'] = 'ابحث في اسماء الملفات:'; +$lang['searchmedia_in'] = 'ابحث في %s'; +$lang['txt_upload'] = 'اختر ملفاً للرفع'; +$lang['txt_filename'] = 'رفع كـ (اختياري)'; +$lang['txt_overwrt'] = 'اكتب على ملف موجود'; +$lang['lockedby'] = 'حالياً مقفل بواسطة'; +$lang['lockexpire'] = 'ينتهي القفل في'; +$lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة.\nلتجنب التعارض استخدم زر المعاينة لتصفير مؤقت القفل.'; +$lang['js']['notsavedyet'] = 'التعديلات غير المحفوظة ستفقد. اكمل فعلا؟'; +$lang['js']['searchmedia'] = 'ابحث عن ملفات'; +$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار'; +$lang['js']['hidedetails'] = 'أخف التفاصيل'; +$lang['js']['mediatitle'] = 'اعدادات الرابط'; +$lang['js']['mediadisplay'] = 'نوع الرابط'; +$lang['js']['mediaalign'] = 'المحاذاة'; +$lang['js']['mediasize'] = 'حجم الصورة'; +$lang['js']['mediatarget'] = 'هدف الرابط'; +$lang['js']['mediaclose'] = 'اغلق'; +$lang['js']['mediainsert'] = 'أدرج'; +$lang['js']['mediadisplayimg'] = 'اظهر الصورة.'; +$lang['js']['mediadisplaylnk'] = 'اظهر الرابط فقط.'; +$lang['js']['mediasmall'] = 'نسخة مصغرة'; +$lang['js']['mediamedium'] = 'نسخة متوسطة'; +$lang['js']['medialarge'] = 'نسخة كبيرة'; +$lang['js']['mediaoriginal'] = 'نسخة أصلية'; +$lang['js']['medialnk'] = 'الرابط لصفحة التفاصيل'; +$lang['js']['mediadirect'] = 'رابط مباشر للأصل'; +$lang['js']['medianolnk'] = 'لا رابط'; +$lang['js']['medianolink'] = 'لا تربط الصورة'; +$lang['js']['medialeft'] = 'حاذي الصورة إلى اليسار.'; +$lang['js']['mediaright'] = 'حاذي الصورة إلى اليمين.'; +$lang['js']['mediacenter'] = 'حاذي الصورة إلى الوسط.'; +$lang['js']['medianoalign'] = 'لا تستعمل المحاذاة.'; +$lang['js']['nosmblinks'] = 'الروابط لمجلدات ويندوز المشاركة تعمل فقط مع متصفح مايكروسفت Internet Explorer. ما زال بإمكانك قص و لصق الرابط.'; +$lang['js']['linkwiz'] = 'مرشد الروابط'; +$lang['js']['linkto'] = 'الرابط إلى :'; +$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟'; +$lang['js']['mu_btn'] = 'رفع عدة ملفات في وقت واحد'; $lang['rssfailed'] = 'خطأ ما حدث أثناء جلب ملف التغذية:'; $lang['nothingfound'] = 'لا يوجد شيء'; $lang['mediaselect'] = 'ملفات الوسائط المتعددة'; @@ -106,13 +140,6 @@ $lang['deletefail'] = 'لا يمكن حذف "%s"، تأكد من تر $lang['mediainuse'] = 'لم يحذف الملف "%s"، مازال موجوداً'; $lang['namespaces'] = 'فضاء التسمية'; $lang['mediafiles'] = 'ملفات موجودة في'; -$lang['js']['searchmedia'] = 'البحث عن الملفات'; -$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار'; -$lang['js']['hidedetails'] = 'إخفاء التفاصيل'; -$lang['js']['nosmblinks'] = 'الروابط لمجلدات ويندوز المشاركة تعمل فقط مع متصفح مايكروسفت Internet Explorer. ما زال بإمكانك قص و لصق الرابط.'; -$lang['js']['linkto'] = 'الرابط إلى :'; -$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟'; -$lang['js']['mu_btn'] = 'رفع عدة ملفات في وقت واحد'; $lang['mediausage'] = 'استخدم هذه الصياغة للدلالة على هذا الملف:'; $lang['mediaview'] = 'عرض الملف الأصلي'; $lang['mediaroot'] = 'الجذر'; @@ -138,8 +165,11 @@ $lang['created'] = 'تم إنشاء'; $lang['restored'] = 'عودة لنسخة قديمة'; $lang['external_edit'] = 'تحرير خارجي'; $lang['summary'] = 'ملخص التحرير'; +$lang['noflash'] = 'تحتاج إلى<a href="http://www.adobe.com/products/flashplayer/">ملحق فلاش أدوبي</a> لعرض هذا المحتوى.'; +$lang['download'] = 'نزل Snippet'; $lang['mail_newpage'] = 'إضافة صفحة:'; $lang['mail_changed'] = 'تعديل صفحة:'; +$lang['mail_subscribe_list'] = 'صفحات غيرت في النظاق:'; $lang['mail_new_user'] = 'مشترك جديد'; $lang['mail_upload'] = 'تحميل ملف:'; $lang['qb_bold'] = 'نص عريض'; @@ -152,6 +182,11 @@ $lang['qb_h2'] = 'عنوان مستوى ثاني'; $lang['qb_h3'] = 'عنوان مستوى ثالث'; $lang['qb_h4'] = 'عنوان مستوى رابع'; $lang['qb_h5'] = 'عنوان مستوى خامس'; +$lang['qb_h'] = 'الترويسة'; +$lang['qb_hs'] = 'حدد الترويسة'; +$lang['qb_hplus'] = 'ترويسة أعلى'; +$lang['qb_hminus'] = 'ترويسة أخفض'; +$lang['qb_hequal'] = 'ترويسة بنفس المستوى'; $lang['qb_link'] = 'رابط داخلي'; $lang['qb_extlink'] = 'رابط خارجي'; $lang['qb_hr'] = 'سطر أفقي'; @@ -161,6 +196,7 @@ $lang['qb_media'] = 'إضافة صور و ملفات أخرى'; $lang['qb_sig'] = 'أضف توقيعك'; $lang['qb_smileys'] = 'الابتسامات'; $lang['qb_chars'] = 'محارف خاصة'; +$lang['upperns'] = 'انتقل للنطاق الأب'; $lang['admin_register'] = 'إضافة مشترك جديد'; $lang['metaedit'] = 'تحرير البيانات الشمولية '; $lang['metasaveerr'] = 'فشلت عملية كتابة البيانات الشمولية'; @@ -176,11 +212,22 @@ $lang['img_copyr'] = 'حقوق النسخ'; $lang['img_format'] = 'صيغ رسومية'; $lang['img_camera'] = 'آلة التصوير'; $lang['img_keywords'] = 'كلمات مفتاحية'; -$lang['subscribe_success'] = 'تم إضافة %s لقائمة الاشتراكات %s'; -$lang['subscribe_error'] = 'حدث خطأ فى إضافة %s لقائمة الاشتراكات %s'; -$lang['subscribe_noaddress'] = 'لا يوجد عنوان مرفق مع بيانات تسجيلك، لا يمكن إضافتك إلى قائمة الاشتراكات'; -$lang['unsubscribe_success'] = 'تم حذف%s من قائمة الاشتراكات %s'; -$lang['unsubscribe_error'] = 'حدث خطأ فى حذف %s من قائمة الاشتراكات %s'; +$lang['subscr_subscribe_success'] = 'اضيف %s لقائمة اشتراك %s'; +$lang['subscr_subscribe_error'] = 'خطأ في إضافة %s لقائمة اشتراك %s'; +$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بدخولك، لا يمكن اضافتك لقائمة الاشتراك'; +$lang['subscr_unsubscribe_success'] = 'أزيل %s من قائمة اشتراك %s'; +$lang['subscr_unsubscribe_error'] = 'خطأ في إزالة %s من قائمة اشتراك %s'; +$lang['subscr_already_subscribed'] = '%s مشترك مسبقا في %s'; +$lang['subscr_not_subscribed'] = '%s ليس مشتركا في %s'; +$lang['subscr_m_not_subscribed'] = 'لست مشتركا حاليا بالصفحة او النطاق الحاليين'; +$lang['subscr_m_new_header'] = 'أضف اشتراكا'; +$lang['subscr_m_current_header'] = 'الاشتراكات الحالية'; +$lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك'; +$lang['subscr_m_subscribe'] = 'اشترك'; +$lang['subscr_m_receive'] = 'استقبل'; +$lang['subscr_style_every'] = 'بريدا على كل تغيير'; +$lang['subscr_style_digest'] = 'بريد ملخص عن تغييرات كل صفحة'; +$lang['subscr_style_list'] = 'قائمة بالصفحات المتغيرة منذ آخر بريد'; $lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.'; $lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير'; $lang['i_chooselang'] = 'اختر لغتك'; @@ -213,11 +260,27 @@ $lang['i_pol0'] = 'ويكي مفتوحة؛ أي القراءة و $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين فقط'; $lang['i_pol2'] = 'ويكي مغلقة؛ أي القراءة والكتابة والتحميل للمشتركين المسجلين فقط'; $lang['i_retry'] = 'إعادة المحاولة'; +$lang['mu_intro'] = 'هنا يمكنك رفع ملفات متعددة في وقت واحد. انقر على زر استعرض لاضافتهم إلى الطابور. انقر ارفع عند الانتهاء.'; $lang['mu_gridname'] = 'اسم الملف'; $lang['mu_gridsize'] = 'الحجم'; $lang['mu_gridstat'] = 'الحالة'; +$lang['mu_namespace'] = 'نطاق'; +$lang['mu_browse'] = 'استعرض'; $lang['mu_toobig'] = 'كبير جدا'; $lang['mu_ready'] = 'جاهز للرفع'; $lang['mu_done'] = 'اكتمل'; $lang['mu_fail'] = 'فشل'; +$lang['mu_authfail'] = 'انتهت الجلسة'; +$lang['mu_progress'] = 'رُفع @PCT@% '; +$lang['mu_filetypes'] = 'انواع الملفات المسموحة'; $lang['mu_info'] = 'تم رفع الملفات'; +$lang['mu_lasterr'] = 'آخر خطأ:'; +$lang['recent_global'] = 'انت تراقب حاليا التغييرات داخل نطاق <b>%s</b>. يمكنك أيضا <a href="%s">عرض أحدث تغييرات الويكي كلها</a>.'; +$lang['years'] = '%d سنة مضت'; +$lang['months'] = '%d شهرا مضى'; +$lang['weeks'] = '%d اسبوعا مضى'; +$lang['days'] = '%d يوما مضى'; +$lang['hours'] = '%d ساعة مضت'; +$lang['minutes'] = '%d دقيقة مضت'; +$lang['seconds'] = '%d ثانية مضت'; +$lang['wordblock'] = 'لم تحفظ تغييراتك لاحتوائها على نص ممنوع )غثاء('; diff --git a/inc/lang/ar/pwconfirm.txt b/inc/lang/ar/pwconfirm.txt index 6b735e291..401053ea0 100644 --- a/inc/lang/ar/pwconfirm.txt +++ b/inc/lang/ar/pwconfirm.txt @@ -1,8 +1,8 @@ -مرحبا @ الاسم الكامل @ +مرحبا @FULLNAME@ -شخص ما طلب كلمة سر جديدة لـحسابك @ المعرف @ في @ DOKUWIURL @ +شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ في @DOKUWIKIURL@ إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة . لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط في الأسفل . -@ التأكيد @ +@CONFIRM@ -- -لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @ DOKUWIKIURL @
\ No newline at end of file +لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @DOKUWIKIURL@ diff --git a/inc/lang/ar/registermail.txt b/inc/lang/ar/registermail.txt new file mode 100644 index 000000000..f04801f20 --- /dev/null +++ b/inc/lang/ar/registermail.txt @@ -0,0 +1,14 @@ +سجل مستخدم جديد. هذه هي التفاصيل: + +اسم المستخدم : @NEWUSER@ +الاسم الكامل : @NEWNAME@ +البريد: @NEWEMAIL@ + +التاريخ : @DATE@ +المتصفح : @BROWSER@ +عنوان-IP: @IPADDRESS@ +اسم المضيف: @HOSTNAME@ + +-- +وُلد هذا البريد من دوكو ويكي في +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ar/subscr_digest.txt b/inc/lang/ar/subscr_digest.txt new file mode 100644 index 000000000..8d6e731cf --- /dev/null +++ b/inc/lang/ar/subscr_digest.txt @@ -0,0 +1 @@ +مرحبا!
\ No newline at end of file diff --git a/inc/lang/ar/subscr_form.txt b/inc/lang/ar/subscr_form.txt new file mode 100644 index 000000000..919d256fb --- /dev/null +++ b/inc/lang/ar/subscr_form.txt @@ -0,0 +1,3 @@ +====== إدارة الإشتراكات ====== + +تمكنك هذه الصفحة من إدارة اشتراكاتك للصفحة و النطاق الحاليين.
\ No newline at end of file diff --git a/inc/lang/ar/subscr_list.txt b/inc/lang/ar/subscr_list.txt new file mode 100644 index 000000000..22773a8e4 --- /dev/null +++ b/inc/lang/ar/subscr_list.txt @@ -0,0 +1,17 @@ +مرحبا! + +صفحات في النطاق @PAGE@ في ويكي @TITLE@ غُيرت. +هذه هي الصفحات المتغيرة: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +لإلغاء إشعارات الصفحة, لُج الويكي في +@DOKUWIKIURL@ ثم زُر +@SUBSCRIBE@ +ثم ألغ اشتراك تغييرات الصفحة و/أو النطاق. + +-- +وُلد هذا البريد من دوكو ويكي في +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ar/subscr_single.txt b/inc/lang/ar/subscr_single.txt new file mode 100644 index 000000000..5c62aeaeb --- /dev/null +++ b/inc/lang/ar/subscr_single.txt @@ -0,0 +1,23 @@ +مرحبا! + +الصفحة @PAGE@ في ويكي @TITLE@ تغيرت. +هذه هي التغييرات: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +التاريخ : @DATE@ +المستخدم : @USER@ +ملخص التحرير: @SUMMARY@ +الاصدار القديم: @OLDPAGE@ +الاصدار الحديث: @NEWPAGE@ + +لإلغاء إشعارات الصفحة,لُج الويكي في +@DOKUWIKIURL@ ثم زُر +@NEWPAGE@ +وألغ الاشتراك من تغييرات الصفحة و/أو النطاق. + +-- +ولد هذا البريد باستخدام دوكو ويكي في +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ar/uploadmail.txt b/inc/lang/ar/uploadmail.txt new file mode 100644 index 000000000..e4f16c7a5 --- /dev/null +++ b/inc/lang/ar/uploadmail.txt @@ -0,0 +1,14 @@ +رُفع ملف إلى دوكو ويكي خاصتك. هذه هي التفاصيل: + +الملف : @MEDIA@ +التاريخ : @DATE@ +المستعرض : @BROWSER@ +عنوان-IP: @IPADDRESS@ +اسم المضيف: @HOSTNAME@ +الحجم : @SIZE@ +نوع MIME : @MIME@ +المستخدم: @USER@ + +-- +ولد هذا البريد من دوكو ويكي في +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/az/admin.txt b/inc/lang/az/admin.txt new file mode 100755 index 000000000..000caa06d --- /dev/null +++ b/inc/lang/az/admin.txt @@ -0,0 +1,4 @@ +====== İdarəetmə ====== + +Aşağıda Dokuwiki-də mümkün olan administrativ əməliyyatların siyahısı göstərilib. + diff --git a/inc/lang/az/adminplugins.txt b/inc/lang/az/adminplugins.txt new file mode 100755 index 000000000..62b1f8793 --- /dev/null +++ b/inc/lang/az/adminplugins.txt @@ -0,0 +1 @@ +===== Əlavə Plugin-lər ===== diff --git a/inc/lang/az/backlinks.txt b/inc/lang/az/backlinks.txt new file mode 100755 index 000000000..72a7c858d --- /dev/null +++ b/inc/lang/az/backlinks.txt @@ -0,0 +1,4 @@ +====== Əks linklər ====== + +Bu, bu səhifəyə link saxlayan səhifələrin siyahısıdır. + diff --git a/inc/lang/az/conflict.txt b/inc/lang/az/conflict.txt new file mode 100755 index 000000000..908be09f1 --- /dev/null +++ b/inc/lang/az/conflict.txt @@ -0,0 +1,5 @@ +====== Daha yeni versiya var ====== + +Düzəliş etdiyiniz sənədin daha yeni versiyası var. Siz və başqa istifadəçi eyni zamanda eyni sənədi düzəliş edən zaman belə vəziyyət yaranır. + +Aşağıda göstərilən fərqlər ilə tanış olun və lazım olan versiyanı təyin edin. Əgər ''Yadda Saxla'' düyməsini sıxsanız, onda sizin versiya seçilmiş olur. ''İmtina'' düyməsini sıxsanız isə onda hazırki versiya seçilmiş olur. diff --git a/inc/lang/az/denied.txt b/inc/lang/az/denied.txt new file mode 100755 index 000000000..a68b08c8c --- /dev/null +++ b/inc/lang/az/denied.txt @@ -0,0 +1,3 @@ +====== Müraciət qadağan edilmişdir ====== + +Sizin bu əməliyyat üçün kifayət qədər haqqınız yoxdur. Bəlkə, Siz sistemə oz istifadəçi adınız ilə girməyi unutmusunuz? diff --git a/inc/lang/az/diff.txt b/inc/lang/az/diff.txt new file mode 100755 index 000000000..a944f84f4 --- /dev/null +++ b/inc/lang/az/diff.txt @@ -0,0 +1,4 @@ +====== Fərqlər ====== + +Burada bu səhifənin seçilmiş və hazırki versiyaların arasında olan fərqlər göstərilib. + diff --git a/inc/lang/az/draft.txt b/inc/lang/az/draft.txt new file mode 100755 index 000000000..65c743de3 --- /dev/null +++ b/inc/lang/az/draft.txt @@ -0,0 +1,5 @@ +====== Qaralama tapılıb ====== + +Bu səhifənin son düzəlişi düzgün başa çatdırılmamışdir. Düzəliş zamanı qaralama avtomatik yadda saxlanılmışdır. İndi Siz onu açıb düzəlişi davam edə bilərsiniz. Qaralama versiyası aşağıda göstərilib. + +İtmiş versiyanı //qaytarmaq//, qaralamanı //silmək//, və ya düzəlişi //imtina// etmək istədiyinizi təyin edin. diff --git a/inc/lang/az/edit.txt b/inc/lang/az/edit.txt new file mode 100755 index 000000000..7ce66307e --- /dev/null +++ b/inc/lang/az/edit.txt @@ -0,0 +1 @@ +Səhifədə düzəliş edin və ''Yadda Saxla'' düyməsini sıxın. Sintaksis ilə tanış olmaq üçün [[wiki:syntax]] səhifəsini oxuyun. Ançaq səhifəni **daha yaxşı** etməki istədiyiniz halda düzəliş etməyinizi xahiş edirik. Əgər Siz nəyi isə ancaq test etmək istəyirsiniz sə, onda [[playground:playground]] xüsusi səhifədən istifadə edin. diff --git a/inc/lang/az/editrev.txt b/inc/lang/az/editrev.txt new file mode 100755 index 000000000..8e98d2ff3 --- /dev/null +++ b/inc/lang/az/editrev.txt @@ -0,0 +1,2 @@ +**Sənədin köhnə versiyasını açmısınız!** Bu versiyanı yadda saxlasanız, bu mətn ilə olan yeni hazırki versiya yaratmış olarsınız. +---- diff --git a/inc/lang/az/index.txt b/inc/lang/az/index.txt new file mode 100755 index 000000000..dc3ffa3b0 --- /dev/null +++ b/inc/lang/az/index.txt @@ -0,0 +1,4 @@ +====== Mündəricat ====== + +Burada mövcud olan səhifələr Namespace-lərə ([[doku>namespaces|namespaces]]) görə sıralanmış halda göstərilib. + diff --git a/inc/lang/az/install.html b/inc/lang/az/install.html new file mode 100755 index 000000000..d41511438 --- /dev/null +++ b/inc/lang/az/install.html @@ -0,0 +1,7 @@ +<p>Bu səhifə Sizə <a href="http://dokuwiki.org">DokuWiki</a>-ni quraşdırmaqa kömək etmək üçündür. Quraşdırma haqqına əlavə məlumatı onun <a href="http://dokuwiki.org/installer">dokumentasiya səhifəsində</a> var.</p> + +<p>Səhifələri və əlavə məlumatları (məsələn, şəkillər, axtarış indeksi, səhifələrin əvvəlki versiyaları, və sairə) saxlamaq üçün DokuWiki adi fayllardan istifadə edir. DokuWiki-nin uğurlu işləməsi üçün bu faylların yerləşən qovluqa yazı imkanı vacib <strong>lazımdır</strong>. Bu quraşdırma proqramı sistemin qovluqlarına olan haqları dəyişə bilmir. Çox vaxt bu birbaşa shell-dən, və ya, əgər Siz hostinq-dən istifadə edirsinizsə, FTP vasitəsi ya idarəetmə paneli vasitəsi (məsələn, cPanel) ilə edilir.</p> + +<p>Quraşdırma proqramı sizin DokuWiki-nizdə haqlar kontrolu siyahısını (<acronym title="access control list">ACL</acronym>) quracaq. Bu, sistemə girdikdən sonra, administratora xüsusi menü vasitəsi ilə plugin-ləri quraşdırmaq, istifadiçiləri və səhifələrə giriş haqlarını idarəetmək, və həmçinin sistemin konfiqurasiyasını quraşdırmağa imkan verəcək. Haqlar kontrolu siyahısı DokuWiki-yə mütləq lazım deyil, amma o Sizə DokuWiki-nin idarəetməsini asanlaşdırır.</p> + +<p>Təcrübəli istifadəçilər və xüsusi tələbləri olan istifadəçilərə əlavə məlumat üçün <a href="http://dokuwiki.org/install">quraşdırılma prosesi</a> və <a href="http://dokuwiki.org/config">konfiqurasiya parametrləri</a> link-lərinə muraciyət etməsk tövsiyyə olunur.</p> diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php new file mode 100644 index 000000000..8d96f08cc --- /dev/null +++ b/inc/lang/az/lang.php @@ -0,0 +1,245 @@ +<?php +/** + * Azerbaijani language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Pasha L. Topchiyev <pasha@itopchiyev.com> + */ +$lang['encoding'] = ' utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '«'; +$lang['doublequoteclosing'] = '»'; +$lang['singlequoteopening'] = '„'; +$lang['singlequoteclosing'] = '“'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Səhifəyə düzəliş et'; +$lang['btn_source'] = 'Səhifənin ilkin mətnini göstər'; +$lang['btn_show'] = 'Səhifəni göstər'; +$lang['btn_create'] = 'Səhifəni yarat'; +$lang['btn_search'] = 'Axtarış'; +$lang['btn_save'] = 'Yadda saxla'; +$lang['btn_preview'] = 'Baxış'; +$lang['btn_top'] = 'Yuxarı'; +$lang['btn_newer'] = '<< daha təzələr'; +$lang['btn_older'] = 'daha köhnələr >>'; +$lang['btn_revs'] = 'Səhifənin tarixçəsi'; +$lang['btn_recent'] = 'Yaxın dəyişiklər'; +$lang['btn_upload'] = 'Serverə yükə'; +$lang['btn_cancel'] = 'İmtina'; +$lang['btn_index'] = 'Bütün səhifələr'; +$lang['btn_secedit'] = 'Düzəliş et'; +$lang['btn_login'] = 'Giriş'; +$lang['btn_logout'] = 'Cıxış'; +$lang['btn_admin'] = 'İdarəetmə'; +$lang['btn_update'] = 'Yenilə'; +$lang['btn_delete'] = 'Sil'; +$lang['btn_back'] = 'Geri'; +$lang['btn_backlink'] = 'Bura olan link-lər'; +$lang['btn_backtomedia'] = 'media-fayl seçiminə qayıt'; +$lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)'; +$lang['btn_unsubscribe'] = 'Abunəlikdən çıx (bütün dəyişiklər)'; +$lang['btn_subscribens'] = 'Abunə ol (bu bölümün dəyişikləri)'; +$lang['btn_unsubscribens'] = 'Abunəlikdən çıx (bu bölümün dəyişikləri)'; +$lang['btn_profile'] = 'Profil'; +$lang['btn_reset'] = 'Boşalt'; +$lang['btn_resendpwd'] = 'Yeni şifrəni göndər'; +$lang['btn_draft'] = 'Qaralamada düzəliş etmək'; +$lang['btn_recover'] = 'Qaralamanı qaytar'; +$lang['btn_draftdel'] = 'Qaralamanı sil'; +$lang['btn_revert'] = 'Qaytar'; +$lang['loggedinas'] = 'İstifadəcinin adı'; +$lang['user'] = 'istifadəci adı'; +$lang['pass'] = 'Şifrə'; +$lang['newpass'] = 'Yeni şifrə'; +$lang['oldpass'] = 'Hazırki şifrəni daxil edin'; +$lang['passchk'] = 'təkrarlayın'; +$lang['remember'] = 'Məni yadda saxla'; +$lang['fullname'] = 'Tam ad'; +$lang['email'] = 'E-Mail'; +$lang['register'] = 'Qeydiyyatdan keç'; +$lang['profile'] = 'İstifadəçi profili'; +$lang['badlogin'] = 'Təssüf ki istifadəçi adı və ya şifrə səhvdir.'; +$lang['minoredit'] = 'Az dəyişiklər'; +$lang['draftdate'] = 'Qaralama yadda saxlandı'; +$lang['nosecedit'] = 'Bu vaxt ərzində səhifə dəyişilmişdir, və bölmə haqqında məlumat köhnəlmişdir. Səhifənin tam versiyası yüklənmişdir.'; +$lang['regmissing'] = 'Təssüf ki Siz bütün xanələri doldurmalısınız.'; +$lang['reguexists'] = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.'; +$lang['regsuccess'] = 'İstivadəci yaradıldı və şifrə sizin e-maila göndərildi.'; +$lang['regsuccess2'] = 'İstifadəçi yaradıldı.'; +$lang['regmailfail'] = 'Deyəsən, xəta şifrə e-maila göndərildikdə baş verdi. Xaiş olunur, ki administrator ilə əlaqə saxlayasınız!'; +$lang['regbadmail'] = 'Deyəsən, daxil edilmiş e-mail ünvanı səhvdir. Əgər şübhəniz var isə administrator ilə əlaqə saxlayın.'; +$lang['regbadpass'] = 'Daxil edilmiş iki şifrə fərqlidir. Xaiş olunur ki, yenidən daxil edəsiniz.'; +$lang['regpwmail'] = 'Sizin DokuWiki sistemi üçün şifrəniz'; +$lang['reghere'] = 'Sizin hələ istifadəçi adınız yoxdur? Buyurun əldə edin'; +$lang['profna'] = 'Bu wiki profilin dəyişdirilməsini dəstəkləmir'; +$lang['profnochange'] = 'Dəyişiklər edilmədi, profil yenilənmədi.'; +$lang['profnoempty'] = 'istifadəci adı və e-mail ünvanı boş ola bilməz.'; +$lang['profchanged'] = 'İstifadəçi profili uğurla yeniləndi.'; +$lang['pwdforget'] = 'Şifrəni yaddan çıxartmısız? Buyurun yenisini əldə edin'; +$lang['resendna'] = 'Bu wiki şifrəni yenidən göndərməyi dəstəkləmir.'; +$lang['resendpwd'] = 'Yeni şifrəni göndər:'; +$lang['resendpwdmissing'] = 'Formanın bütün xanəlırini doldurun.'; +$lang['resendpwdnouser'] = 'Verilənlər bazasında bu ad ilə istifadəçi tapılmadı.'; +$lang['resendpwdbadauth'] = 'Ativləşdirmə kodu səhvdir. Link-i tam olaraq köçürdüyünüzü yoxlayın. '; +$lang['resendpwdconfirm'] = 'Şifrəni təstiqləmək üçün sizin e-maila link göndərilmişdir. '; +$lang['resendpwdsuccess'] = 'Yeni şifrəniz e-maila göndərildi.'; +$lang['license'] = 'Fərqli şey göstərilmiş hallardan başqa, bu wiki-nin mətni aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun təqdim olunur:'; +$lang['licenseok'] = 'Qeyd: bu səhifəni düzəliş edərək, Siz elədiyiniz düzəlişi aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun istifadəsinə razılıq verirsiniz:'; +$lang['searchmedia'] = 'Faylın adına görə axtarış:'; +$lang['searchmedia_in'] = '%s-ın içində axtarış'; +$lang['txt_upload'] = 'Serverə yükləmək üçün fayl seçin'; +$lang['txt_filename'] = 'Faylın wiki-də olan adını daxil edin (mütləq deyil)'; +$lang['txt_overwrt'] = 'Mövcud olan faylın üstündən yaz'; +$lang['lockedby'] = 'В данный момент заблокирован Bu an blokdadır'; +$lang['lockexpire'] = 'Blok bitir:'; +$lang['willexpire'] = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.'; +$lang['notsavedyet'] = 'Yaddaşa yazılmamış dəyişiklər itəcəklər.\nSiz davam etmək istəyirsiz?'; +$lang['rssfailed'] = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: '; +$lang['nothingfound'] = 'Heçnə tapılmadı.'; +$lang['mediaselect'] = 'Mediya-faylın seçilməsi'; +$lang['fileupload'] = 'Mediya-faylın serverə yüklənməsi'; +$lang['uploadsucc'] = 'Yüklənmə uğur ilə başa çatdı'; +$lang['uploadfail'] = 'Yüklənmə zamanı xəta baş veri. Bəlkə giriş haqları ilə problem var?'; +$lang['uploadwrong'] = 'Yuklənməyə qadağa qoyuldu. Belə növlu faylları serverə yükləmək olmaz. '; +$lang['uploadexist'] = 'Bu adlı fayl artıq serverdə var. Yükləmə alınmadı .'; +$lang['uploadbadcontent'] = 'Faylın tərkibi %s növünə uyğun gəlmir.'; +$lang['uploadspam'] = 'Yüklənmə spam-filtri tərəfindən dayandırıldı.'; +$lang['uploadxss'] = 'Yüklənmə təhlükəsizlik nəzərindən dayandırılmışdır.'; +$lang['uploadsize'] = 'Yüklənilmiş fayl çox boyükdür. (maks. %s)'; +$lang['deletesucc'] = '"%s" adlı fayl silindi.'; +$lang['deletefail'] = '"%s" adlı fayl silinmədi. Faylın giriş haqlarını yoxlayın.'; +$lang['mediainuse'] = '"%s" adlı fayl silinmədi. Fayl hələ istifadə olunur'; +$lang['namespaces'] = 'Namespace-lər'; +$lang['mediafiles'] = 'Mövcud olan fayllar'; +$lang['js']['searchmedia'] = 'Faylların axtarışı'; +$lang['js']['keepopen'] = 'Seçimdən sonra pəncərəni açıq saxlamaq'; +$lang['js']['hidedetails'] = 'Təfərruatı gizlət'; +$lang['js']['nosmblinks'] = 'Windows-un şəbəkə qovluqlarına link ancaq Internet Explorer-dən işləyir. \nAmma Siz linki köçürə bilərsiniz.'; +$lang['js']['linkwiz'] = 'Linklər köməkçisi'; +$lang['js']['linkto'] = 'Link göstərir:'; +$lang['js']['del_confirm'] = 'Siz əminsiz ki, seçilmişləri silmək istəyirsiniz?'; +$lang['js']['mu_btn'] = 'Bir neçə faylı birdən yükləmək'; +$lang['mediausage'] = 'Bu fayla link yaratmaq üçün aşağıdakı sintaksisdən istifadə edin:'; +$lang['mediaview'] = 'Bu faylın ilkinə bax'; +$lang['mediaroot'] = 'kök'; +$lang['mediaupload'] = 'Burda faylı hazırki qovluqa yükləmək olar ("namespace"). Alt qovluqlar yaratmaq üçün, onların adlarını faylın adının avvəlinə artırın ("Adla yükləmək"). Alt qovluqların adları çütnöqtə ilə ayrılır. '; +$lang['mediaextchange'] = 'Faylın nüvü .%s -dan .%s -ya dəyişdi!'; +$lang['reference'] = 'Linklər göstərir'; +$lang['ref_inuse'] = 'Bu fayl silinə bilməz, çünki o aşağıdaki səhifələr tərəfindən istifadə olunur:'; +$lang['ref_hidden'] = 'Bəzi link-lər sizin oxumaq haqqınız olmayan səhifələrdə yerləşir'; +$lang['hits'] = 'uyğunluqlar'; +$lang['quickhits'] = 'Səhifələrin adlarında uyğunluqlar'; +$lang['toc'] = 'Mündəricat'; +$lang['current'] = 'hazırki'; +$lang['yours'] = 'Sizin versiyanız'; +$lang['diff'] = 'hazırki versiyadan fərqləri göstər'; +$lang['diff2'] = 'Versiyaların arasındaki fərqləri göstər '; +$lang['line'] = 'Sətr'; +$lang['breadcrumb'] = 'Siz ziyarət etdiniz'; +$lang['youarehere'] = 'Siz burdasınız'; +$lang['lastmod'] = 'Son dəyişiklər'; +$lang['by'] = ' Kimdən'; +$lang['deleted'] = 'silinib'; +$lang['created'] = 'yaranıb'; +$lang['restored'] = 'köhnə versiya qaytarıldı'; +$lang['external_edit'] = 'bayırdan dəyişik'; +$lang['summary'] = 'Dəyişiklər xülasəsi'; +$lang['noflash'] = 'Bu məzmuna baxmaq üçün <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> tələb olunur.'; +$lang['download'] = 'Kodu yüklə'; +$lang['mail_newpage'] = 'səhifə əlavə olundu:'; +$lang['mail_changed'] = 'səhifəyə düzəliş edildi:'; +$lang['mail_new_user'] = 'yeni istifadəçi:'; +$lang['mail_upload'] = 'fayl yükləndi:'; +$lang['qb_bold'] = 'Qalın şrift'; +$lang['qb_italic'] = 'Maili şrift'; +$lang['qb_underl'] = 'Alt-xətt'; +$lang['qb_code'] = 'Kodun mətni'; +$lang['qb_strike'] = 'Pozulmuş şrift'; +$lang['qb_h1'] = '1 dərəcəli başlıq'; +$lang['qb_h2'] = '2 dərəcəli başlıq'; +$lang['qb_h3'] = '3 dərəcəli başlıq'; +$lang['qb_h4'] = '4 dərəcəli başlıq'; +$lang['qb_h5'] = '5 dərəcəli başlıq'; +$lang['qb_h'] = 'Başlıq'; +$lang['qb_hs'] = 'Başlıq seçimi'; +$lang['qb_hplus'] = 'Daha yüksək dərəcəli başlıq'; +$lang['qb_hminus'] = 'Daha aşağı dərəcəli başlıq (altbaşlıq)'; +$lang['qb_hequal'] = 'Hazırki dərəcəli başlıq'; +$lang['qb_link'] = 'İç link'; +$lang['qb_extlink'] = 'Bayır link'; +$lang['qb_hr'] = 'Bölücü'; +$lang['qb_ol'] = 'Nömrələnmiş siyahının element'; +$lang['qb_ul'] = 'Nömrələnməmiş siyahının element'; +$lang['qb_media'] = 'Şəkillər və başqa fayllar əlavə et'; +$lang['qb_sig'] = 'İmza at'; +$lang['qb_smileys'] = 'Smayllar'; +$lang['qb_chars'] = 'Xüsusi simvollar'; +$lang['upperns'] = 'Ana namespace-ə keç'; +$lang['admin_register'] = 'İstifadəçi əlavə et'; +$lang['metaedit'] = 'Meta-məlumatlarda düzəliş et'; +$lang['metasaveerr'] = 'Meta-məlumatları yazan zamanı xəta'; +$lang['metasaveok'] = 'Meta-məlumatlar yadda saxlandı'; +$lang['img_backto'] = 'Qayıd'; +$lang['img_title'] = 'Başlıq'; +$lang['img_caption'] = 'İmza'; +$lang['img_date'] = 'Tarix'; +$lang['img_fname'] = 'Faylın adı'; +$lang['img_fsize'] = 'Boy'; +$lang['img_artist'] = 'Şkilin müəllifi'; +$lang['img_copyr'] = 'Müəllif hüquqları'; +$lang['img_format'] = 'Format'; +$lang['img_camera'] = 'Model'; +$lang['img_keywords'] = 'Açar sözlər'; +$lang['subscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısına əlavə olundu'; +$lang['subscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısına əlavə etmə zamanı səhv baş verdi'; +$lang['subscribe_noaddress'] = 'Sizin profilinizdə e-mail göstərilməyib.Ona görə siz paylnma siyahılarına əlavə edilə bilməzsiniz.'; +$lang['unsubscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısından silinmişdir'; +$lang['unsubscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısından silən zaman xəta baş verdi.'; +$lang['authmodfailed'] = 'İstifadəçinin autentifikasiyasının konfiqurasiyası səhfdir. Xaiş olunur ki wiki-nin administratoru ilə əlaqə saxlayasınız.'; +$lang['authtempfail'] = 'İstifadəçilərin autentifikasiyası müvəqqəti dayandırılıb. Əgər bu problem uzun müddət davam edir sə, administrator ilə əlaqə saxlayın.'; +$lang['i_chooselang'] = 'Dili seçin/Language'; +$lang['i_installer'] = 'DokuWiki quraşdırılır'; +$lang['i_wikiname'] = 'wiki-nin adı'; +$lang['i_enableacl'] = 'Haqlar kontrolu siyahısının istifadəsinə icazə ver (tövsiyə edilir)'; +$lang['i_superuser'] = 'Super-istifadəci'; +$lang['i_problems'] = 'Quraşdırma proqramı aşağıdakı problemlər ilə üzləşdi. Davam etmək üçün onları həll etmək lazımdır. '; +$lang['i_modified'] = 'Təhlükəsizlik baxımından bu proqram ancaq yeni, dəyişməmiş halda olan DokuWiki üzərində işləyir. + Siz ya yüklənmiş quraşdırma paketini yenidən açmalısınız, ya da <a href="http://dokuwiki.org/install">DokuWiki-nin tam quraşdırma instruksiyasına</a> müraciyət etməlisiniz'; +$lang['i_funcna'] = 'PHP-nin <code>%s</code> funksiyası mövcud deyil. Bəlkə, o hansı sa səbəbdən sizin host-unuz tərəfindən blok edilib?'; +$lang['i_phpver'] = 'Sizin PHP-nin versiyası (<code>%s</code>) tələb olunan versiyadan aşagıdır (<code>%s</code>). Quraşdırılmış PHP-nin versiyasını yeniləyin.'; +$lang['i_permfail'] = '<code>%s</code> DokuWiki-yə yazı üçün bağlıdır. Bu qovluğun giriş haqlarını yoxlamaq lazımdır!'; +$lang['i_confexists'] = '<code>%s</code> artıq mövcuddur'; +$lang['i_writeerr'] = '<code>%s</code> yaradıla bilmədi. Faylın/qovluqların giriş haqlarını yaxlamaq lazımdır. Və faylı əl ilə yaradın. '; +$lang['i_badhash'] = 'dokuwiki.php tanıla bilmir və ya dəyişdirilmişdir (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - səhv ya boş qiymətdir'; +$lang['i_success'] = 'Konfiqurasiya uğurla başa çatdı. İndi siz install.php faylını silə bilərsiniz. + <a href="doku.php">Yeni DokuWiki-nizə</a> xoş gəlmişsiniz!'; +$lang['i_failure'] = 'Konfiqurasiya fayllarına məlumat yazan zaman səhvlər tapıldı. Yəgin ki, <a href="doku.php">yeni DokuWiki-nizi</a> istifadə etmədən öncə, Siz o xətaları əl ilə düzəltməli olacaqsınız.'; +$lang['i_policy'] = 'İlkin giriş haqları siyasəti'; +$lang['i_pol0'] = 'Tam açıq wiki (oxumaq, yazmaq, fayl yükləmək hamıya olar)'; +$lang['i_pol1'] = 'Acıq wiki (oxumaq hamıya olar, yazmaq və fayl yükləmək ancaq üzv olan istifadəçilərə olar)'; +$lang['i_pol2'] = 'Bağlı wiki (uxumaq, yazmaq və yükləmək ancaq üzv olan istifadəçilərə olar)'; +$lang['i_retry'] = 'Cəhdi təkrarla'; +$lang['mu_intro'] = 'Burda siz bir neçə faylı birdən yükləyə bilərsiniz. Fayl əlavə etmək üçün "fayl seç" düyməsini sıxın. Sonda "yüklə" düyməsini sıxın.'; +$lang['mu_gridname'] = 'Faylın adı'; +$lang['mu_gridsize'] = 'Həcmi'; +$lang['mu_gridstat'] = 'Status'; +$lang['mu_namespace'] = 'Namespace'; +$lang['mu_browse'] = 'Fayl seç'; +$lang['mu_toobig'] = 'çox böyükdür'; +$lang['mu_ready'] = 'yükləməyə hazırdı'; +$lang['mu_done'] = 'başa çatdı'; +$lang['mu_fail'] = 'xəta baş verdi'; +$lang['mu_authfail'] = 'sessiyanın vaxtı bitdi'; +$lang['mu_progress'] = '@PCT@% yükləndi'; +$lang['mu_filetypes'] = 'İçazə olan fayl növləri'; +$lang['mu_info'] = 'fayllar yükləndi.'; +$lang['mu_lasterr'] = 'Son xəta:'; +$lang['recent_global'] = '<b>%s</b> namespace-də baş vermiş dəyışıklərə baxırsınız. Siz həmçinin <a href="%s">wiki-də bu yaxında baş vermiş bütün dəyişiklərə</a> baxa bilərsiniz.'; +$lang['years'] = '%d il əvvəl'; +$lang['months'] = '%d ay əvvəl'; +$lang['weeks'] = '%d həftə əvvəl'; +$lang['days'] = '%d gün əvvəl'; +$lang['hours'] = '%d saat əvvəl'; +$lang['minutes'] = '%d dəqiqə əvvəl'; +$lang['seconds'] = '%d saniyə əvvəl'; diff --git a/inc/lang/az/locked.txt b/inc/lang/az/locked.txt new file mode 100755 index 000000000..8ab934443 --- /dev/null +++ b/inc/lang/az/locked.txt @@ -0,0 +1,3 @@ +====== Səhifə blok edilmişdir ====== + +Bu səhifə başqa istifadəçi tərəfindən dəyişdirilmə üçün blok edilmişdir. O istifadəçi dəyişdirməni başa çatdırınca ya blokun vaxtı bitincə, Siz gözləməlisiniz. diff --git a/inc/lang/az/login.txt b/inc/lang/az/login.txt new file mode 100755 index 000000000..e0a559bc1 --- /dev/null +++ b/inc/lang/az/login.txt @@ -0,0 +1,4 @@ +====== Avtorizasiya ====== + +Hazırda Siz sistemə daxil olmamısınız. Aşağıdakı formanı istifadə edib sistemə daxil olun. //Qeyd:// cookies qurlu olmalıdır. + diff --git a/inc/lang/az/mailtext.txt b/inc/lang/az/mailtext.txt new file mode 100755 index 000000000..439458658 --- /dev/null +++ b/inc/lang/az/mailtext.txt @@ -0,0 +1,18 @@ +Sizin DokuWiki-də səhifə yaradılıb ya dəyişdirilib. Ətraflı məlumat: + +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP-adres : @IPADDRESS@ +Host : @HOSTNAME@ +Köhnə versiya : @OLDPAGE@ +Yeni versiya : @NEWPAGE@ +Dəyişiklərin xülasəsi : @SUMMARY@ +İstifadəçi : @USER@ + +@DIFF@ + + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/newpage.txt b/inc/lang/az/newpage.txt new file mode 100755 index 000000000..c749f20af --- /dev/null +++ b/inc/lang/az/newpage.txt @@ -0,0 +1,3 @@ +====== Bu səhifə hələ mövcud deyil ====== + +Siz yaradılmamış səhifənin link-ini acmısınız. Əgər sizin giriş haqlarınız çatırsa, siz "Səhifəni yarat" düyməsini sixib, o səhifəni yarada bilərsiniz. diff --git a/inc/lang/az/norev.txt b/inc/lang/az/norev.txt new file mode 100755 index 000000000..453dad56b --- /dev/null +++ b/inc/lang/az/norev.txt @@ -0,0 +1,4 @@ +====== Belə versiya mövcud deyil ====== + +Bu səhifənin göstərilmiş versiyası mövcud deyil. Səhifənin bütün versiyalaraının siyahısını görmək üçün, ''Səhifənin tarixçəsi'' düyməsini sıxın. + diff --git a/inc/lang/az/password.txt b/inc/lang/az/password.txt new file mode 100755 index 000000000..31bf387da --- /dev/null +++ b/inc/lang/az/password.txt @@ -0,0 +1,11 @@ +Salam @FULLNAME@! + +Sizin @TITLE@ (@DOKUWIKIURL@) üçün olan məlumatlarınız + +İstifadəçi adı : @LOGIN@ +Şifrə : @PASSWORD@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/preview.txt b/inc/lang/az/preview.txt new file mode 100755 index 000000000..dbeaa44f5 --- /dev/null +++ b/inc/lang/az/preview.txt @@ -0,0 +1,4 @@ +====== Baxış ====== + +Burda daxil elədiyiniz mətnin necə görünəcəyi göstərilir. Qeyd: mətn hələ **yadda saxlanılmayıb!** + diff --git a/inc/lang/az/pwconfirm.txt b/inc/lang/az/pwconfirm.txt new file mode 100755 index 000000000..177e5a1fa --- /dev/null +++ b/inc/lang/az/pwconfirm.txt @@ -0,0 +1,14 @@ +Salam @FULLNAME@! + +Kimsə @DOKUWIKIURL@ adresində yerləşən @TITLE@ adlı wiki-yə giriş üçün yeni şifrə tələb eləyib. + +Əgər o şəxs siz deyildinizsə, bu məktuba fikir verməyin. + +Tələbi təsdiq etmək üçün, aşağıdakı link-ə keçin. + +@CONFIRM@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/read.txt b/inc/lang/az/read.txt new file mode 100755 index 000000000..39b31f108 --- /dev/null +++ b/inc/lang/az/read.txt @@ -0,0 +1,2 @@ +Bu səhifəni ancaq oxumaq olar. Siz səhifənin ilkin mətninə baxa bilərsiniz, amma dəyişə bilməzsiniz. Əgər bunun düzgün olmadığını fikirləşirsinizsə onda administrator ilə əlaqə saxlayın. + diff --git a/inc/lang/az/recent.txt b/inc/lang/az/recent.txt new file mode 100755 index 000000000..8766d9953 --- /dev/null +++ b/inc/lang/az/recent.txt @@ -0,0 +1,5 @@ +====== Son dəyişiklər ====== + +Bu səhifələr yaxında dəyismişdirlər. + + diff --git a/inc/lang/az/register.txt b/inc/lang/az/register.txt new file mode 100755 index 000000000..eb6386f72 --- /dev/null +++ b/inc/lang/az/register.txt @@ -0,0 +1,3 @@ +====== Регистрация нового пользователя ====== + +Qeydiyyat üçün bütün aşağıdaı xanalari doldurun. **e-mail adresinizin duz olduguna** fikir verin. Əgər şıfrəni əl ilə daxil etməyiniz xaiş olunmursa, onda şifrə e-mail adresinizə göndəriləcək. İstifadəçi adı [[doku>pagename|səhifənin identifikatorunun]] məhdudiyyətlərinə uyğun olmalıdır. diff --git a/inc/lang/az/registermail.txt b/inc/lang/az/registermail.txt new file mode 100755 index 000000000..51919756f --- /dev/null +++ b/inc/lang/az/registermail.txt @@ -0,0 +1,15 @@ +Yeni istifadəçi qeydiyyatdan keçdi. Ətraflı məlumat: + +İstifadəçi adı : @NEWUSER@ +Tam adı : @NEWNAME@ +E-mail : @NEWEMAIL@ + +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP adres : @IPADDRESS@ +Host : @HOSTNAME@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/resendpwd.txt b/inc/lang/az/resendpwd.txt new file mode 100755 index 000000000..cc286174a --- /dev/null +++ b/inc/lang/az/resendpwd.txt @@ -0,0 +1,3 @@ +====== Yeni şifrənin göndərilməsi ====== + +Yeni şifrə əldə etmək üçün aşağıda tələb olunan məlumatları daxil edin. Yeni şifrə sizin istifadəçi adınıza aid olan e-mail adresə göndəriləcək. Aşagıda daxil olunan ad - sizin bu wiki-də olan istifadəçi adınız olmalıdır. diff --git a/inc/lang/az/revisions.txt b/inc/lang/az/revisions.txt new file mode 100755 index 000000000..7164a9959 --- /dev/null +++ b/inc/lang/az/revisions.txt @@ -0,0 +1,3 @@ +====== Səhifənin tarixçəsi ====== + +Qarşınızda - hazırki sənədin dəyişiklər tarixçəsidir. Əvvəlki versiyaların birinə qayıtmaq üçün, lazım olan versiyanı seçin, ''Səhifəni düzəliş et'' düyməsini sıxın və yaddaşa yazın. diff --git a/inc/lang/az/searchpage.txt b/inc/lang/az/searchpage.txt new file mode 100755 index 000000000..4f8efe007 --- /dev/null +++ b/inc/lang/az/searchpage.txt @@ -0,0 +1,5 @@ +====== Axtarış ====== + +Qarşınızda - axtarışın nəticələridir. Əgər Siz axtardığınızı tapa bilmədinizsə, onda Siz adı axtarışınız ilə uyğun düşən yeni səhifə yarada bilərsiniz. Bunu eləmək üçün, sadəcə ''Səhifəni yarat'' düyməsini sıxın. + +===== Nəticələr ===== diff --git a/inc/lang/az/showrev.txt b/inc/lang/az/showrev.txt new file mode 100755 index 000000000..dd398704b --- /dev/null +++ b/inc/lang/az/showrev.txt @@ -0,0 +1,2 @@ +**Bu - sənədin köhnə versiyasıdır!** +---- diff --git a/inc/lang/az/stopwords.txt b/inc/lang/az/stopwords.txt new file mode 100755 index 000000000..04eb312eb --- /dev/null +++ b/inc/lang/az/stopwords.txt @@ -0,0 +1,64 @@ +# This is a list of words the indexer ignores, one word per line +# When you edit this file be sure to use UNIX line endings (single newline) +# No need to include words shorter than 3 chars - these are ignored anyway +amma +arada +arasında +başqa +başqalar +başqaların +başqanın +belə +birdən +bugün +bunu +burada +bəlkə +cəmi +dedi +dedilər +dedim +dediniz +demək +deyəsən +görə +hamını +hansı +hansılar +hansınız +həmçinin +həmişə +hərdən +hətta +həyat +indi +lazım +lazımdır +məncə +məni +niyə +nəyi +olacaq +olar +oldu +oldum +olmaq +olmaz +olub +onda +onlar +onları +onun +ozunun +qabaq +quya +sabağ +sizcə +sizi +sonra +sözsüz +şübhəsiz +səni +yaxşı +yenə +əgər diff --git a/inc/lang/az/subscribermail.txt b/inc/lang/az/subscribermail.txt new file mode 100755 index 000000000..a18525da6 --- /dev/null +++ b/inc/lang/az/subscribermail.txt @@ -0,0 +1,19 @@ +Salam! + +@TITLE@ adı wiki-də @PAGE@ adlı səhifə dəyişdirilmişdi. +Dəyişiklər aşağıda göstərilib: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Bu səhifənin dəyişiklərindən imtina etmək üçün, +@DOKUWIKIURL@ adresində yerləşən wiki-yə daxil +olun, @NEWPAGE@ səhifəsinə keçin +və 'Abunəlikdən çıx' düyməsini sıxın. + + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/updateprofile.txt b/inc/lang/az/updateprofile.txt new file mode 100755 index 000000000..569e425d4 --- /dev/null +++ b/inc/lang/az/updateprofile.txt @@ -0,0 +1,5 @@ +====== Profili yenilə ====== + +İstədiyiniz xanaları dəyiştirin. İstifadəşi adı dəyiştirilə bilməz. + + diff --git a/inc/lang/az/uploadmail.txt b/inc/lang/az/uploadmail.txt new file mode 100755 index 000000000..d538f8258 --- /dev/null +++ b/inc/lang/az/uploadmail.txt @@ -0,0 +1,15 @@ +Sizin DokuWiki-yə fayl yuklənildi. Ətraflı məlumat: + +Fayl : @MEDIA@ +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP Adres : @IPADDRESS@ +Host : @HOSTNAME@ +Həcm : @SIZE@ +MIME Növ : @MIME@ +İstifadəçi : @USER@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/wordblock.txt b/inc/lang/az/wordblock.txt new file mode 100755 index 000000000..ec8b102af --- /dev/null +++ b/inc/lang/az/wordblock.txt @@ -0,0 +1,3 @@ +====== SPAM-ın qarşısı alındı ====== + +Sizin dəyişiklər **yaddaşa saxlanmadı**, çünki onların içində bir və ya daha çox içazəsiz sözlər var idi. Əgər siz wiki-yə spam əlavə etmək istəyirdinizsə, onda utanmırsız?! Əgər siz bunu səhv hesab edirsinizsə, onda administrator ilə əlaqə saxlayın. diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 2c306095d..053a7f1ba 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Запис върху съществуващ $lang['lockedby'] = 'В момента е заключено от'; $lang['lockexpire'] = 'Затварянето изтича в'; $lang['willexpire'] = 'Затварянето на страницата за редактиране изтича след минута.\nЗа да избегнете противоречия, използвайте бутона, за да рестартирате броячът за затваряне.'; -$lang['notsavedyet'] = 'Незапазените промени ще бъдат загубени.\nИскате ли да продължите?'; +$lang['js']['notsavedyet'] = "Незапазените промени ще бъдат загубени.\nИскате ли да продължите?"; $lang['rssfailed'] = 'Възникна грешка при вземането на този feed: '; $lang['nothingfound'] = 'Нищо не бе намерено.'; $lang['mediaselect'] = 'Медийни файлове'; diff --git a/inc/lang/bg/wordblock.txt b/inc/lang/bg/wordblock.txt deleted file mode 100644 index 1afbae21d..000000000 --- a/inc/lang/bg/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Блокиран СПАМ ====== - -Промените ви **не** бяха запазени, защото съдържат една или повече забранени думи. Ако сте се опитали да пуснете спам в уикито и таз хубава! Ако смятате, че това е грешка, свържете се с администратора на това Wiki. diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index d85cc1c06..d49c900fa 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -95,7 +95,7 @@ $lang['txt_overwrt'] = 'Sobreescriure archius existents'; $lang['lockedby'] = 'Actualment bloquejat per'; $lang['lockexpire'] = 'El bloqueig venç a les'; $lang['willexpire'] = 'El seu bloqueig per a editar esta pàgina vencerà en un minut.\nPer a evitar conflictes utilise el botó de vista prèvia i reiniciarà el contador.'; -$lang['notsavedyet'] = 'Els canvis no guardats es perdran.\n¿Segur que vol continuar?'; +$lang['js']['notsavedyet'] = "Els canvis no guardats es perdran.\n¿Segur que vol continuar?"; $lang['rssfailed'] = 'Ha ocorregut un erro al solicitar este canal: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Archius de mijos'; diff --git a/inc/lang/ca-valencia/wordblock.txt b/inc/lang/ca-valencia/wordblock.txt deleted file mode 100644 index 718bfe883..000000000 --- a/inc/lang/ca-valencia/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Bloqueig de SPAM ====== - -Els seus canvis *no* s'han guardat perque contenen una o més paraules prohibides. Si ha intentat posar spam en el wiki.. ¡malament! Si pensa que açò és un erro, contacte en l'administrador d'este wiki. - diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 778123445..19fb7c556 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = 'Sobreescriu el fitxer actual'; $lang['lockedby'] = 'Actualment blocat per:'; $lang['lockexpire'] = 'Venciment del blocatge:'; $lang['willexpire'] = 'El blocatge per a editar aquesta pàgina venç d\'aquí a un minut.\nUtilitzeu la visualització prèvia per reiniciar el rellotge i evitar conflictes.'; -$lang['notsavedyet'] = 'Heu fet canvis que es perdran si no els deseu.\nVoleu continuar?'; +$lang['js']['notsavedyet'] = "Heu fet canvis que es perdran si no els deseu.\nVoleu continuar?"; $lang['rssfailed'] = 'S\'ha produït un error en recollir aquesta alimentació: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Selecció de fitxers'; diff --git a/inc/lang/ca/wordblock.txt b/inc/lang/ca/wordblock.txt deleted file mode 100644 index 1b5f5fb36..000000000 --- a/inc/lang/ca/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Brossa blocada ====== - -Els canvis **no** s'han desat perquè contenen una o més paraules blocades. Volíeu inundar el wiki amb brossa? Molt mal fet! Si penseu que això és un error, contacteu amb l'administrador d'aquest Wiki. - diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index ffc2a05d7..33c6db01a 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -7,6 +7,8 @@ * @author Tomas Valenta <t.valenta@sh.cvut.cz> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,10 +41,7 @@ $lang['btn_delete'] = 'Vymazat'; $lang['btn_back'] = 'Zpět'; $lang['btn_backlink'] = 'Zpětné odkazy'; $lang['btn_backtomedia'] = 'Zpět do Výběru dokumentu'; -$lang['btn_subscribe'] = 'Odebírat mailem změny stránky'; -$lang['btn_unsubscribe'] = 'Neodebírat mailem změny stránky'; -$lang['btn_subscribens'] = 'Odebírat mailem změny ve jmenném prostoru'; -$lang['btn_unsubscribens'] = 'Neodebírat mailem změny ve jmenném prostoru'; +$lang['btn_subscribe'] = 'Odebírat emailem změny stránky'; $lang['btn_profile'] = 'Upravit profil'; $lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Zaslat nové heslo'; @@ -96,7 +95,38 @@ $lang['txt_overwrt'] = 'Přepsat existující soubor'; $lang['lockedby'] = 'Právě zamknuto:'; $lang['lockexpire'] = 'Zámek vyprší:'; $lang['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.'; -$lang['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny.\nChcete opravdu pokračovat?'; +$lang['js']['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny. +Chcete opravdu pokračovat?'; +$lang['js']['searchmedia'] = 'Hledat soubory'; +$lang['js']['keepopen'] = 'Po vybrání souboru nechat okno otevřené'; +$lang['js']['hidedetails'] = 'Skrýt detaily'; +$lang['js']['mediatitle'] = 'Nastavení odkazu'; +$lang['js']['mediadisplay'] = 'Typ odkazu'; +$lang['js']['mediaalign'] = 'Zarovnání'; +$lang['js']['mediasize'] = 'Velikost obrázku'; +$lang['js']['mediatarget'] = 'Cíl odkazu'; +$lang['js']['mediaclose'] = 'Zavřít'; +$lang['js']['mediainsert'] = 'Vložit'; +$lang['js']['mediadisplayimg'] = 'Ukázat obrázek'; +$lang['js']['mediadisplaylnk'] = 'Ukázat pouze odkaz'; +$lang['js']['mediasmall'] = 'Malá verze'; +$lang['js']['mediamedium'] = 'Střední verze'; +$lang['js']['medialarge'] = 'Velká verze'; +$lang['js']['mediaoriginal'] = 'Původní verze'; +$lang['js']['medialnk'] = 'Odkaz na stránku s detailem'; +$lang['js']['mediadirect'] = 'Přímý odkaz na originál'; +$lang['js']['medianolnk'] = 'Žádný odkaz'; +$lang['js']['medianolink'] = 'Neodkazovat na obrázek'; +$lang['js']['medialeft'] = 'Zarovnat obrázek doleva.'; +$lang['js']['mediaright'] = 'Zarovnat obrázek doprava.'; +$lang['js']['mediacenter'] = 'Zarovnat obrázek na střed.'; +$lang['js']['medianoalign'] = 'Nepoužívat zarovnání.'; +$lang['js']['nosmblinks'] = 'Odkazování na sdílené prostředky Windows funguje jen v Internet Exploreru. +Přesto tento odkaz můžete zkopírovat a vložit jinde.'; +$lang['js']['linkwiz'] = 'Průvodce odkazy'; +$lang['js']['linkto'] = 'Odkaz na:'; +$lang['js']['del_confirm'] = 'Vymazat tuto položku?'; +$lang['js']['mu_btn'] = 'Načíst více souborů najednou'; $lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: '; $lang['nothingfound'] = 'Nic nenalezeno.'; $lang['mediaselect'] = 'Výběr dokumentu'; @@ -114,15 +144,7 @@ $lang['deletefail'] = 'Soubor "%s" nelze vymazat - zkontrolujte oprá $lang['mediainuse'] = 'Soubor "%s" nebyl vymazán - stále se používá.'; $lang['namespaces'] = 'Jmenné prostory'; $lang['mediafiles'] = 'Dostupné soubory'; -$lang['js']['searchmedia'] = 'Hledat soubory'; -$lang['js']['keepopen'] = 'Po vybrání souboru nechat okno otevřené'; -$lang['js']['hidedetails'] = 'Skrýt detaily'; -$lang['js']['nosmblinks'] = 'Odkazování na sdílené prostředky Windows funguje jen v Internet Exploreru. -Přesto tento odkaz můžete zkopírovat a vložit jinde.'; -$lang['js']['linkwiz'] = 'Průvodce odkazy'; -$lang['js']['linkto'] = 'Odkaz na:'; -$lang['js']['del_confirm'] = 'Vymazat tuto položku?'; -$lang['js']['mu_btn'] = 'Načíst více souborů najednou'; +$lang['accessdenied'] = 'Nejste autorizován k přístupu na tuto stránku.'; $lang['mediausage'] = 'K odkázání se na tento soubor použijte následující syntax:'; $lang['mediaview'] = 'Zobrazit původní soubor'; $lang['mediaroot'] = 'root'; @@ -138,6 +160,7 @@ $lang['current'] = 'aktuální'; $lang['yours'] = 'Vaše verze'; $lang['diff'] = 'zobrazit rozdíly vůči aktuální verzi'; $lang['diff2'] = 'zobrazit rozdíly mezi vybranými verzemi'; +$lang['difflink'] = 'Odkaz na výstup diff'; $lang['line'] = 'Řádek'; $lang['breadcrumb'] = 'Historie'; $lang['youarehere'] = 'Umístění'; @@ -152,6 +175,7 @@ $lang['noflash'] = 'Pro přehrání obsahu potřebujete <a href="h $lang['download'] = 'Stáhnout snippet'; $lang['mail_newpage'] = 'nová stránka:'; $lang['mail_changed'] = 'změna stránky:'; +$lang['mail_subscribe_list'] = 'stránky změněné ve jmenném prostoru:'; $lang['mail_new_user'] = 'nový uživatel:'; $lang['mail_upload'] = 'načtený dokument:'; $lang['qb_bold'] = 'Tučně'; @@ -194,11 +218,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formát'; $lang['img_camera'] = 'Typ fotoaparátu'; $lang['img_keywords'] = 'Klíčová slova'; -$lang['subscribe_success'] = 'Uživatel %s je nyní přihlášen k odběru změn ve stránce %s'; -$lang['subscribe_error'] = 'Chyba při zařazování uživatele %s do seznamu pro odběr změn ve stránce %s'; -$lang['subscribe_noaddress'] = 'K vašemu uživatelskému profilu chybí mailová adresa, takže vás nelze zařadit do seznamu pro odběr změn'; -$lang['unsubscribe_success'] = 'Uživatel %s byl odebrán ze seznamu pro odběr změn ve stránce %s'; -$lang['unsubscribe_error'] = 'Chyba při odstraňování uživatele %s ze seznamu pro odběru změn ve stránce %s'; +$lang['subscr_subscribe_success'] = '%s byl přihlášen do seznamu odběratelů %s'; +$lang['subscr_subscribe_error'] = 'Došlo k chybě při přihlašování %s do seznamu odběratelů %s'; +$lang['subscr_subscribe_noaddress'] = 'K Vašemu loginu neexistuje žádná adresa, nemohl jste být přihlášen do seznamu odběratelů.'; +$lang['subscr_unsubscribe_success'] = '%s byl odhlášen ze seznamu odběratelů %s'; +$lang['subscr_unsubscribe_error'] = 'Došlo k chybě při odhlašování %s ze seznamu odběratelů %s'; +$lang['subscr_already_subscribed'] = '%s již je přihlášen do seznamu odběratelů %s'; +$lang['subscr_not_subscribed'] = '%s není přihlášen do seznamu odběratelů %s'; +$lang['subscr_m_not_subscribed'] = 'V současné době neodebíráte změny na aktuální stránce nebo ve jmenném prostoru.'; +$lang['subscr_m_new_header'] = 'Přihlásit k odebírání změn emailem'; +$lang['subscr_m_current_header'] = 'Aktuální odběratelé změn'; +$lang['subscr_m_unsubscribe'] = 'Odhlásit z odběru změn emailem'; +$lang['subscr_m_subscribe'] = 'Přihlásit se k odběru změn emailem'; +$lang['subscr_m_receive'] = 'Přejete si dostávat'; +$lang['subscr_style_every'] = 'email pro každou změnu'; +$lang['subscr_style_digest'] = 'souhrnný email změn pro každou stránku'; +$lang['subscr_style_list'] = 'seznam změněných stránek od posledního emailu'; $lang['authmodfailed'] = 'Autentizace uživatelů je špatně nastavena. Informujte prosím správce této wiki.'; $lang['authtempfail'] = 'Autentizace uživatelů je dočasně nedostupná. Pokud tento problém přetrvává, informujte prosím správce této wiki.'; $lang['i_chooselang'] = 'Vyberte si jazyk'; @@ -222,6 +257,7 @@ $lang['i_pol0'] = 'Otevřená wiki (čtení, zápis a upload pro $lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a upload pro registrované uživatele)'; $lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)'; $lang['i_retry'] = 'Zkusit znovu'; +$lang['i_license'] = 'Vyberte prosím licenci obsahu:'; $lang['mu_intro'] = 'Zde můžete načíst více souborů najednou. Pro přidání souborů do fronty stiskněte tlačítko "Procházet". Až budete hotovi, stiskněte "Načíst".'; $lang['mu_gridname'] = 'Název souboru'; $lang['mu_gridsize'] = 'Velikost'; @@ -245,3 +281,4 @@ $lang['days'] = 'před % dny'; $lang['hours'] = 'před % hodinami'; $lang['minutes'] = 'před % minutami'; $lang['seconds'] = 'před % sekundami'; +$lang['wordblock'] = 'Vaše změny nebyly uloženy, protože obsahují blokovaný text(spam).'; diff --git a/inc/lang/cs/mailtext.txt b/inc/lang/cs/mailtext.txt index 9fc68cdce..f235a299b 100644 --- a/inc/lang/cs/mailtext.txt +++ b/inc/lang/cs/mailtext.txt @@ -13,5 +13,5 @@ Uživatel : @USER@ -- -Tato zpráva byla vygenerována systémem DokuWiki +Tento email byl automaticky vygenerován systémem DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/cs/password.txt b/inc/lang/cs/password.txt index ed1efc992..18f21f1b1 100644 --- a/inc/lang/cs/password.txt +++ b/inc/lang/cs/password.txt @@ -7,5 +7,5 @@ Uživatelské jméno : @LOGIN@ Heslo : @PASSWORD@ -- -Tato zpráva byla vygenerována systémem DokuWiki +Tento email byl automaticky vygenerován systémem DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/cs/pwconfirm.txt b/inc/lang/cs/pwconfirm.txt index 1199150e2..aa37b3b84 100644 --- a/inc/lang/cs/pwconfirm.txt +++ b/inc/lang/cs/pwconfirm.txt @@ -2,12 +2,12 @@ Dobrý den, Někdo požádal o nové heslo k vašemu uživatelskému účtu na wiki @TITLE@ (@DOKUWIKIURL@) -Pokud jste o nové heslo nežádali, ignorujte prosím tento mail. +Pokud jste o nové heslo nežádali, ignorujte prosím tento email. Pro potvrzení, že jste tento požadavek poslali opravdu vy, prosím otevřete následující odkaz. @CONFIRM@ -- -Tento mail byl automaticky vygenerován systémem DokuWiki +Tento email byl automaticky vygenerován systémem DokuWiki @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/registermail.txt b/inc/lang/cs/registermail.txt index e51ee6bb2..7f5e4feb1 100644 --- a/inc/lang/cs/registermail.txt +++ b/inc/lang/cs/registermail.txt @@ -10,5 +10,5 @@ IP adresa : @IPADDRESS@ Hostitel : @HOSTNAME -- -Tato zpráva byla vygenerována systémem DokuWiki +Tento email byl automaticky vygenerován systémem DokuWiki @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/subscr_digest.txt b/inc/lang/cs/subscr_digest.txt new file mode 100644 index 000000000..57b7240c5 --- /dev/null +++ b/inc/lang/cs/subscr_digest.txt @@ -0,0 +1,22 @@ +Dobrý den! + +Byla změněna stránka @PAGE@ ve wiki @TITLE@. +Zde jsou změny: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Stará revize: @OLDPAGE@ +Nová revize: @NEWPAGE@ + +Pro odhlášení z odebírání změn na této webové stránce +se prosím příhlašte do wiki na adrese +@DOKUWIKIURL@,pak navštivte +@SUBSCRIBE@ +a odhlaště se z odebírání změn na stránce či +ve jmenném prostoru. + +-- +Tento email byl automaticky vygenerován systémem DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/subscr_form.txt b/inc/lang/cs/subscr_form.txt new file mode 100644 index 000000000..b786ac137 --- /dev/null +++ b/inc/lang/cs/subscr_form.txt @@ -0,0 +1,3 @@ +====== Správa odběratelů změn ====== + +Tato stránka Vám umožnuje spravovat uživatele přihlášené k odběru změn aktuální stránky nebo jmenného prostoru.
\ No newline at end of file diff --git a/inc/lang/cs/subscr_list.txt b/inc/lang/cs/subscr_list.txt new file mode 100644 index 000000000..82683c57f --- /dev/null +++ b/inc/lang/cs/subscr_list.txt @@ -0,0 +1,19 @@ +Dobrý den! + +Byly změněny stránky ve jmenném prostoru @PAGE@ wiki @TITLE@. +Zde jsou: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pro odhlášení z odebírání změn +se prosím příhlašte do wiki na adrese +@DOKUWIKIURL@,pak navštivte +@SUBSCRIBE@ +a odhlaště se z odebírání změn na stránce či +ve jmenném prostoru. + +-- +Tento email byl automaticky vygenerován systémem DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/subscr_single.txt b/inc/lang/cs/subscr_single.txt new file mode 100644 index 000000000..c0089c1b7 --- /dev/null +++ b/inc/lang/cs/subscr_single.txt @@ -0,0 +1,25 @@ +Dobrý den! + +Byla změněna stránka @PAGE@ ve wiki @TITLE@. +Zde jsou změny: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Datum: @DATE@ +Uživatel: @USER@ +Souhrn editace: @SUMMARY@ +Stará revize: @OLDPAGE@ +Nová revize: @NEWPAGE@ + +Pro odhlášení z odebírání změn na této webové stránce +se prosím příhlašte do wiki na adrese +@DOKUWIKIURL@,pak navštivte +@SUBSCRIBE@ +a odhlaště se z odebírání změn na stránce či +ve jmenném prostoru. + +-- +Tento email byl automaticky vygenerován systémem DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/uploadmail.txt b/inc/lang/cs/uploadmail.txt index 98f860138..b19b0bf7e 100644 --- a/inc/lang/cs/uploadmail.txt +++ b/inc/lang/cs/uploadmail.txt @@ -10,5 +10,5 @@ MIME typ : @MIME@ Uživatel : @USER@ -- -Tato zpráva byla vygenerována systémem DokuWiki -@DOKUWIKIUR
\ No newline at end of file +Tento email byl automaticky vygenerován systémem DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/cs/wordblock.txt b/inc/lang/cs/wordblock.txt deleted file mode 100644 index 75fe58e0c..000000000 --- a/inc/lang/cs/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM nebyl povolen ====== - -Vaše změny **nebyly uloženy**, protože obsahují jedno nebo více nepovolených slov. Wiki si nepotrpí na spam! Pokud se domníváte, že jde o omyl, kontaktujte správce. diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 56239718b..574917082 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -11,18 +11,20 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ -$lang['encoding'] = 'utf-8'; +$lang['encoding'] = 'ISO 8859-1 '; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; $lang['apostrophe'] = '’'; -$lang['btn_edit'] = 'Rediger dette dokument'; +$lang['btn_edit'] = 'Rediger denne side'; $lang['btn_source'] = 'Vis kildekode'; -$lang['btn_show'] = 'Vis dokument'; -$lang['btn_create'] = 'Opret dette dokument'; +$lang['btn_show'] = 'Vis side'; +$lang['btn_create'] = 'Opret denne side'; $lang['btn_search'] = 'Søg'; $lang['btn_save'] = 'Gem'; $lang['btn_preview'] = 'Forhåndsvisning'; @@ -31,39 +33,36 @@ $lang['btn_newer'] = '<< forrige side'; $lang['btn_older'] = 'næste side >>'; $lang['btn_revs'] = 'Gamle udgaver'; $lang['btn_recent'] = 'Nye ændringer'; -$lang['btn_upload'] = 'Overføre'; +$lang['btn_upload'] = 'Overfør'; $lang['btn_cancel'] = 'Fortryd'; $lang['btn_index'] = 'Indeks'; -$lang['btn_secedit'] = 'Rediger'; +$lang['btn_secedit'] = 'Redigér'; $lang['btn_login'] = 'Log ind'; $lang['btn_logout'] = 'Log ud'; $lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Opdater'; +$lang['btn_update'] = 'Opdatér'; $lang['btn_delete'] = 'Slet'; $lang['btn_back'] = 'Tilbage'; $lang['btn_backlink'] = 'Henvisninger bagud'; $lang['btn_backtomedia'] = 'Tilbage til valg af mediefil'; -$lang['btn_subscribe'] = 'Abonner på ændringer'; -$lang['btn_unsubscribe'] = 'Fjern abonnement på ændringer'; -$lang['btn_subscribens'] = 'Abonner på namespace ændringer'; -$lang['btn_unsubscribens'] = 'Fjern abonnement på namespace ændringer'; -$lang['btn_profile'] = 'Opdater profil'; +$lang['btn_subscribe'] = 'Abonnér på ændringer'; +$lang['btn_profile'] = 'Opdatér profil'; $lang['btn_reset'] = 'Nulstil'; -$lang['btn_resendpwd'] = 'Send nyt adgangskode'; -$lang['btn_draft'] = 'Rediger kladde'; +$lang['btn_resendpwd'] = 'Send ny adgangskode'; +$lang['btn_draft'] = 'Redigér kladde'; $lang['btn_recover'] = 'Gendan kladde'; $lang['btn_draftdel'] = 'Slet kladde'; -$lang['btn_revert'] = 'Reetablere'; -$lang['loggedinas'] = 'Logget på som'; +$lang['btn_revert'] = 'Reetablér'; +$lang['loggedinas'] = 'Logget ind som'; $lang['user'] = 'Brugernavn'; $lang['pass'] = 'Adgangskode'; -$lang['newpass'] = 'Nyt adgangskode'; -$lang['oldpass'] = 'Bekræft gammelt adgangskode'; -$lang['passchk'] = 'Gentag nyt adgangskode'; -$lang['remember'] = 'Log automatisk på'; -$lang['fullname'] = 'Navn'; +$lang['newpass'] = 'Ny adgangskode'; +$lang['oldpass'] = 'Bekræft gammel adgangskode'; +$lang['passchk'] = 'Gentag ny adgangskode'; +$lang['remember'] = 'Automatisk log ind'; +$lang['fullname'] = 'Fulde navn'; $lang['email'] = 'E-mail'; -$lang['register'] = 'Tilmeld'; +$lang['register'] = 'Registrér'; $lang['profile'] = 'Brugerprofil'; $lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.'; $lang['minoredit'] = 'Mindre ændringer'; @@ -100,7 +99,36 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Midlertidig låst af'; $lang['lockexpire'] = 'Lås udløber kl.'; $lang['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.'; -$lang['notsavedyet'] = 'Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?'; +$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet +Fortsæt alligevel?'; +$lang['js']['searchmedia'] = 'Søg efter filer'; +$lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; +$lang['js']['hidedetails'] = 'Skjul detaljer'; +$lang['js']['mediatitle'] = 'Link indstillinger'; +$lang['js']['mediadisplay'] = 'Link type'; +$lang['js']['mediaalign'] = 'Juster'; +$lang['js']['mediasize'] = 'Billede størrelse'; +$lang['js']['mediaclose'] = 'Luk'; +$lang['js']['mediainsert'] = 'Indsæt'; +$lang['js']['mediadisplayimg'] = 'Vis billedet'; +$lang['js']['mediadisplaylnk'] = 'Vis kun linket'; +$lang['js']['mediasmall'] = 'Lille version'; +$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['medialarge'] = 'Stor version'; +$lang['js']['mediaoriginal'] = 'Original version'; +$lang['js']['mediadirect'] = 'Direkte link til originalen'; +$lang['js']['medianolnk'] = 'Intet link'; +$lang['js']['medianolink'] = 'Link ikke billedet'; +$lang['js']['medialeft'] = 'Juster billedet til venstre'; +$lang['js']['mediaright'] = 'Juster billedet til højre'; +$lang['js']['mediacenter'] = 'Centreret'; +$lang['js']['medianoalign'] = 'Brug ingen justering'; +$lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. +Du kan stadig kopiere og indsætte linket.'; +$lang['js']['linkwiz'] = 'guiden til henvisninger'; +$lang['js']['linkto'] = 'Henvise til:'; +$lang['js']['del_confirm'] = 'Slet valgte post(er)?'; +$lang['js']['mu_btn'] = 'Overføre flere filer på en gang'; $lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; @@ -118,15 +146,6 @@ $lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne. $lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.'; $lang['namespaces'] = 'Navnerum'; $lang['mediafiles'] = 'Tilgængelige filer i'; -$lang['js']['searchmedia'] = 'Søg for filer'; -$lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; -$lang['js']['hidedetails'] = 'Skjul detaljer'; -$lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. -Du kan stadig kopiere og indsætte linket.'; -$lang['js']['linkwiz'] = 'guiden til henvisninger'; -$lang['js']['linkto'] = 'Henvise til:'; -$lang['js']['del_confirm'] = 'Slet valgte post(er)?'; -$lang['js']['mu_btn'] = 'Overføre flere filer på en gang'; $lang['mediausage'] = 'Brug den følgende syntaks til at henvise til denne fil:'; $lang['mediaview'] = 'Vis oprindelig fil'; $lang['mediaroot'] = 'rod'; @@ -135,7 +154,7 @@ $lang['mediaextchange'] = 'Filudvidelse ændret fra .%s til .%s!'; $lang['reference'] = 'Henvisning til'; $lang['ref_inuse'] = 'Filen kan ikke slettes, da den stadig er i brug på følgende sider:'; $lang['ref_hidden'] = 'Nogle henvisninger er i dokumenter du ikke har læserettigheder til'; -$lang['hits'] = 'Hits'; +$lang['hits'] = 'Besøg'; $lang['quickhits'] = 'Tilsvarende dokumentnavne'; $lang['toc'] = 'Indholdsfortegnelse'; $lang['current'] = 'nuværende'; @@ -156,6 +175,7 @@ $lang['noflash'] = 'Den <a href="http://www.adobe.com/products/fla $lang['download'] = 'Hente kodestykke'; $lang['mail_newpage'] = 'dokument tilføjet:'; $lang['mail_changed'] = 'dokument ændret:'; +$lang['mail_subscribe_list'] = 'sider ændret i navnerum'; $lang['mail_new_user'] = 'Ny bruger'; $lang['mail_upload'] = 'fil overføret:'; $lang['qb_bold'] = 'Fed'; @@ -198,11 +218,13 @@ $lang['img_copyr'] = 'Ophavsret'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Emneord'; -$lang['subscribe_success'] = 'Tilføjet %s til abonnentliste for %s'; -$lang['subscribe_error'] = 'Fejl ved tilføjelse af %s til abonnentliste for %s'; -$lang['subscribe_noaddress'] = 'Ingen adresse knyttet til dit login, du kan ikke tilføjes til abonnentlisten'; -$lang['unsubscribe_success'] = 'Fjernet %s fra abonnentliste for %s'; -$lang['unsubscribe_error'] = 'Fejl ved fjernelse af %s fra abonnentliste for %s'; +$lang['subscr_subscribe_success'] = 'Tilføjede %s til abonnement listen for %s'; +$lang['subscr_subscribe_error'] = 'Fejl ved tilføjelse af %s til abonnement listen for %s'; +$lang['subscr_unsubscribe_success'] = 'Fjernede %s fra abonnement listen for %s'; +$lang['subscr_unsubscribe_error'] = 'Fejl ved fjernelse af %s fra abonnement listen for %s'; +$lang['subscr_m_receive'] = 'Modtag'; +$lang['subscr_style_every'] = 'email på hver ændring'; +$lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)'; $lang['authmodfailed'] = 'Fejl i brugervalideringens konfiguration. Kontakt venligst wikiens administrator.'; $lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.'; $lang['i_chooselang'] = 'Vælg dit sprog'; @@ -228,6 +250,7 @@ $lang['i_pol0'] = 'Åben Wiki (alle kan læse, skrive og uploade) $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrerede brugere kan skrive og overføre)'; $lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)'; $lang['i_retry'] = 'Forsøg igen'; +$lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:'; $lang['mu_intro'] = 'Her kan du overføre flere filer af gangen. Klik på gennemse for at tilføje dem til køen. Tryk på overføre knappen når du er klar.'; $lang['mu_gridname'] = 'Filnavn'; $lang['mu_gridsize'] = 'Størrelse'; @@ -251,3 +274,4 @@ $lang['days'] = '%d dage siden'; $lang['hours'] = '%d timer siden'; $lang['minutes'] = '%d minutter siden'; $lang['seconds'] = '%d sekunder siden'; +$lang['wordblock'] = 'Din ændring blev ikke gemt da den indeholder blokeret tekst (spam).'; diff --git a/inc/lang/da/subscr_form.txt b/inc/lang/da/subscr_form.txt new file mode 100644 index 000000000..9de6565b1 --- /dev/null +++ b/inc/lang/da/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abonnementadministration ====== + +Denne side gør det muligt for dig at administrere dine abonnementer for den nuværende side eller navnerum.
\ No newline at end of file diff --git a/inc/lang/da/wordblock.txt b/inc/lang/da/wordblock.txt deleted file mode 100644 index 5a1c0d754..000000000 --- a/inc/lang/da/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM blokeret ====== - -Dine ændringer blev **ikke** gemt da de indeholder et eller flere uønskede ord. Kontakt venligst admin, hvis du mener dette er en fejl. diff --git a/inc/lang/de-informal/conflict.txt b/inc/lang/de-informal/conflict.txt index a5ae425be..eec345061 100644 --- a/inc/lang/de-informal/conflict.txt +++ b/inc/lang/de-informal/conflict.txt @@ -1,6 +1,6 @@ ====== Eine neuere Version existiert ====== -Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat parallel an der selben Seite gearbeitet und zuerst gespeichert. +Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat gleichzeitig an der selben Seite gearbeitet und zuerst gespeichert. Die unten aufgeführten Unterschiede können bei der Entscheidung helfen, welchem Dokument Vorrang gewährt wird. Wähle **''[Speichern]''** zum Sichern deiner Version oder **''[Abbrechen]''**, um deine Version zu verwerfen und die zuerst gespeicherte Seite zu behalten. diff --git a/inc/lang/de-informal/edit.txt b/inc/lang/de-informal/edit.txt index 15e02c61a..28a764124 100644 --- a/inc/lang/de-informal/edit.txt +++ b/inc/lang/de-informal/edit.txt @@ -1,4 +1,4 @@ -Bitte nur editieren, falls das Dokument **verbessert** werden kann. +Bitte bearbeite dieses Dokument nur, wenn du es **verbessern** kannst. Nach dem Bearbeiten den **''[Speichern]''**-Knopf drücken. Siehe [[wiki:syntax]] zur Wiki-Syntax. Zum Testen bitte erst im [[playground:playground|Spielplatz]] üben. diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 1747e3288..a42ecc0ab 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -15,6 +15,7 @@ * @author Arne Pelka <mail@arnepelka.de> * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -104,7 +105,7 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; +$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!"; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; @@ -156,7 +157,7 @@ $lang['created'] = 'angelegt'; $lang['restored'] = 'alte Version wieder hergestellt'; $lang['external_edit'] = 'Externe Bearbeitung'; $lang['summary'] = 'Zusammenfassung'; -$lang['noflash'] = 'Das <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> wird benötigt, um diesen Ihnalt anzuzeigen.'; +$lang['noflash'] = 'Das <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> wird benötigt, um diesen Inhalt anzuzeigen.'; $lang['download'] = 'Download-Teil'; $lang['mail_newpage'] = 'Neue Seite:'; $lang['mail_changed'] = 'Seite geaendert:'; @@ -197,7 +198,7 @@ $lang['img_caption'] = 'Bildunterschrift'; $lang['img_date'] = 'Datum'; $lang['img_fname'] = 'Dateiname'; $lang['img_fsize'] = 'Grösse'; -$lang['img_artist'] = 'FotografIn'; +$lang['img_artist'] = 'Fotograf'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; diff --git a/inc/lang/de-informal/mailtext.txt b/inc/lang/de-informal/mailtext.txt index 4fd41ad19..508c080f7 100644 --- a/inc/lang/de-informal/mailtext.txt +++ b/inc/lang/de-informal/mailtext.txt @@ -13,5 +13,6 @@ Benutzer : @USER@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. diff --git a/inc/lang/de-informal/password.txt b/inc/lang/de-informal/password.txt index 9e1ecdb15..8ce252966 100644 --- a/inc/lang/de-informal/password.txt +++ b/inc/lang/de-informal/password.txt @@ -6,5 +6,6 @@ Benutzername: @LOGIN@ Passwort : @PASSWORD@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt.
\ No newline at end of file diff --git a/inc/lang/de-informal/pwconfirm.txt b/inc/lang/de-informal/pwconfirm.txt index 538597cfa..5e5572b28 100644 --- a/inc/lang/de-informal/pwconfirm.txt +++ b/inc/lang/de-informal/pwconfirm.txt @@ -12,5 +12,6 @@ Bestätigungslink. @CONFIRM@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. diff --git a/inc/lang/de-informal/subscr_form.txt b/inc/lang/de-informal/subscr_form.txt new file mode 100644 index 000000000..7bf74f2cf --- /dev/null +++ b/inc/lang/de-informal/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abonnementverwaltung ====== + +Hier kannst du deine Abonnements für die aktuelle Seite oder den aktuellen [[doku>Namespaces|Namespace]] verwalten. diff --git a/inc/lang/de-informal/uploadmail.txt b/inc/lang/de-informal/uploadmail.txt index 72e4a2a6e..7239cc10c 100644 --- a/inc/lang/de-informal/uploadmail.txt +++ b/inc/lang/de-informal/uploadmail.txt @@ -10,5 +10,6 @@ MIME-Typ : @MIME@ Benutzer : @USER@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. diff --git a/inc/lang/de-informal/wordblock.txt b/inc/lang/de-informal/wordblock.txt deleted file mode 100644 index cb3e4c06a..000000000 --- a/inc/lang/de-informal/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blockiert ====== - -Deine Änderungen wurden nicht gespeichert, da sie ein oder mehrere nicht erlaubte Wörter enthielten. Falls du versucht haben solltest, das Wiki zu Spammen -- Schande über ich! Wenn du glaubst, dass der Eintrag zu Unrecht blockiert wurde, kontaktiere bitte den Administrator des Wikis. - diff --git a/inc/lang/de/backlinks.txt b/inc/lang/de/backlinks.txt index aae4c5582..b797b0003 100644 --- a/inc/lang/de/backlinks.txt +++ b/inc/lang/de/backlinks.txt @@ -1,4 +1,4 @@ -====== Backlinks ====== +====== Links hierher ====== Dies ist eine Liste der Seiten, die zurück zur momentanen Seite linken. diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index d0c1f8b70..c5c65abca 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -16,6 +16,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -49,9 +50,6 @@ $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; $lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Änderungen abonnieren'; -$lang['btn_unsubscribe'] = 'Änderungen abbestellen'; -$lang['btn_subscribens'] = 'Namensraumänderungen abonnieren'; -$lang['btn_unsubscribens'] = 'Namensraumänderungen abbestellen'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; $lang['btn_resendpwd'] = 'Sende neues Passwort'; @@ -105,7 +103,37 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, sollten Sie sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; +$lang['js']['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!'; +$lang['js']['searchmedia'] = 'Suche Dateien'; +$lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; +$lang['js']['hidedetails'] = 'Details ausblenden'; +$lang['js']['mediatitle'] = 'Linkeinstellungen'; +$lang['js']['mediadisplay'] = 'Linktyp'; +$lang['js']['mediaalign'] = 'Anordnung'; +$lang['js']['mediasize'] = 'Bildgröße'; +$lang['js']['mediatarget'] = 'Linkziel'; +$lang['js']['mediaclose'] = 'Schliessen'; +$lang['js']['mediainsert'] = 'Einfügen'; +$lang['js']['mediadisplayimg'] = 'Bild anzeigen.'; +$lang['js']['mediadisplaylnk'] = 'Nur den Link anzeigen.'; +$lang['js']['mediasmall'] = 'Kleine Version'; +$lang['js']['mediamedium'] = 'Mittlere Version'; +$lang['js']['medialarge'] = 'Grosse Version'; +$lang['js']['mediaoriginal'] = 'Originalversion'; +$lang['js']['medialnk'] = 'Link zur Detailseite'; +$lang['js']['mediadirect'] = 'Direktlink zum Original'; +$lang['js']['medianolnk'] = 'Kein Link'; +$lang['js']['medianolink'] = 'Bild nicht verlinken'; +$lang['js']['medialeft'] = 'Das Bild links anordnen.'; +$lang['js']['mediaright'] = 'Das Bild rechts anordnen.'; +$lang['js']['mediacenter'] = 'Das Bild in der Mitte anordnen.'; +$lang['js']['medianoalign'] = 'Keine Anordnung benutzen.'; +$lang['js']['nosmblinks'] = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer. +Der Link kann jedoch durch Kopieren und Einfügen verwendet werden.'; +$lang['js']['linkwiz'] = 'Link-Assistent'; +$lang['js']['linkto'] = 'Link nach:'; +$lang['js']['del_confirm'] = 'Eintrag wirklich löschen?'; +$lang['js']['mu_btn'] = 'Mehrere Dateien gleichzeitig hochladen'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; @@ -123,15 +151,7 @@ $lang['deletefail'] = '"%s" konnte nicht gelöscht werden - prüfen S $lang['mediainuse'] = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.'; $lang['namespaces'] = 'Namensräume'; $lang['mediafiles'] = 'Vorhandene Dateien in'; -$lang['js']['searchmedia'] = 'Suche Dateien'; -$lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; -$lang['js']['hidedetails'] = 'Details ausblenden'; -$lang['js']['nosmblinks'] = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer. -Der Link kann jedoch durch Kopieren und Einfügen verwendet werden.'; -$lang['js']['linkwiz'] = 'Link-Assistent'; -$lang['js']['linkto'] = 'Link nach:'; -$lang['js']['del_confirm'] = 'Eintrag wirklich löschen?'; -$lang['js']['mu_btn'] = 'Mehrere Dateien gleichzeitig hochladen'; +$lang['accessdenied'] = 'Es ist Ihnen nicht gestattet, diese Seite zu sehen.'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; $lang['mediaview'] = 'Originaldatei öffnen'; $lang['mediaroot'] = 'Wurzel'; @@ -147,6 +167,7 @@ $lang['current'] = 'aktuell'; $lang['yours'] = 'Ihre Version'; $lang['diff'] = 'Zeige Unterschiede zu aktueller Version'; $lang['diff2'] = 'Zeige Unterschiede der ausgewählten Versionen'; +$lang['difflink'] = 'Link zu dieser Vergleichsansicht'; $lang['line'] = 'Zeile'; $lang['breadcrumb'] = 'Zuletzt angesehen'; $lang['youarehere'] = 'Sie befinden sich hier'; @@ -161,6 +182,7 @@ $lang['noflash'] = 'Das <a href="http://www.adobe.com/products/fla $lang['download'] = 'Schnipsel herunterladen'; $lang['mail_newpage'] = 'Neue Seite:'; $lang['mail_changed'] = 'Seite geaendert:'; +$lang['mail_subscribe_list'] = 'Geänderte Seiten im Namensraum:'; $lang['mail_new_user'] = 'Neuer Benutzer:'; $lang['mail_upload'] = 'Datei hochgeladen:'; $lang['qb_bold'] = 'Fetter Text'; @@ -197,17 +219,28 @@ $lang['img_title'] = 'Titel'; $lang['img_caption'] = 'Bildunterschrift'; $lang['img_date'] = 'Datum'; $lang['img_fname'] = 'Dateiname'; -$lang['img_fsize'] = 'Grösse'; +$lang['img_fsize'] = 'Größe'; $lang['img_artist'] = 'FotografIn'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Schlagwörter'; -$lang['subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; -$lang['subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; -$lang['subscribe_noaddress'] = 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; -$lang['unsubscribe_success'] = 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; -$lang['unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; +$lang['subscr_subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; +$lang['subscr_subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; +$lang['subscr_subscribe_noaddress'] = 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; +$lang['subscr_unsubscribe_success'] = 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; +$lang['subscr_unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; +$lang['subscr_already_subscribed'] = '%s hat %s bereits abonniert'; +$lang['subscr_not_subscribed'] = '%s hat %s nicht abonniert'; +$lang['subscr_m_not_subscribed'] = 'Sie haben die aktuelle Seite und ihre Namensräume nicht abonniert.'; +$lang['subscr_m_new_header'] = 'Abonnement hinzufügen'; +$lang['subscr_m_current_header'] = 'Aktuelle Abonnements'; +$lang['subscr_m_unsubscribe'] = 'Löschen'; +$lang['subscr_m_subscribe'] = 'Abonnieren'; +$lang['subscr_m_receive'] = 'Benachrichtigung'; +$lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; +$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)'; +$lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)'; $lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; @@ -231,6 +264,7 @@ $lang['i_pol0'] = 'Offenes Wiki (lesen, schreiben, hochladen für $lang['i_pol1'] = 'Öffentliches Wiki (lesen für alle, schreiben und hochladen für registrierte Nutzer)'; $lang['i_pol2'] = 'Geschlossenes Wiki (lesen, schreiben, hochladen nur für registrierte Nutzer)'; $lang['i_retry'] = 'Wiederholen'; +$lang['i_license'] = 'Bitte wählen Sie die Lizenz, unter die Sie Ihre Inhalte stellen möchten:'; $lang['mu_intro'] = 'In diesem Bereich können Sie mehrere Dateien gleichzeitig hochladen. Benutzen Sie die Schaltfläche "Durchsuchen" um sie der Warteschlange zuzufügen. Betätigen Sie die Schaltfläche "Hochladen" um die Übertragung zu starten.'; $lang['mu_gridname'] = 'Dateiname'; $lang['mu_gridsize'] = 'Größe'; @@ -247,11 +281,11 @@ $lang['mu_filetypes'] = 'Erlaubte Dateitypen'; $lang['mu_info'] = 'Dateien hochgeladen!'; $lang['mu_lasterr'] = 'Letzter Fehler:'; $lang['recent_global'] = 'Im Moment sehen Sie die Änderungen im Namensraum <b>%s</b>. Sie können auch <a href="%s">die Änderungen im gesamten Wiki sehen</a>.'; - -$lang['years'] = 'vor %d Jahren'; -$lang['months'] = 'vor %d Monaten'; -$lang['weeks'] = 'vor %d Wochen'; -$lang['days'] = 'vor %d Tagen'; -$lang['hours'] = 'vor %d Stunden'; -$lang['minutes'] = 'vor %d Minuten'; -$lang['seconds'] = 'vor %d Sekunden'; +$lang['years'] = 'vor %d Jahren'; +$lang['months'] = 'vor %d Monaten'; +$lang['weeks'] = 'vor %d Wochen'; +$lang['days'] = 'vor %d Tagen'; +$lang['hours'] = 'vor %d Stunden'; +$lang['minutes'] = 'vor %d Minuten'; +$lang['seconds'] = 'vor %d Sekunden'; +$lang['wordblock'] = 'Deine Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).'; diff --git a/inc/lang/de/subscr_digest.txt b/inc/lang/de/subscr_digest.txt new file mode 100644 index 000000000..c8bf770ee --- /dev/null +++ b/inc/lang/de/subscr_digest.txt @@ -0,0 +1,21 @@ +Hallo! + +Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet. +Das sind die Änderungen: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Alte Revision: @OLDPAGE@ +Neue Revision: @NEWPAGE@ + +Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an +@DOKUWIKIURL@, besuchen dann +@SUBSCRIBE@ +und klicken auf den Link 'Änderungen abbestellen'. + +-- +Diese Mail kommt vom DokuWiki auf +@DOKUWIKIURL@ + diff --git a/inc/lang/de/subscr_form.txt b/inc/lang/de/subscr_form.txt new file mode 100644 index 000000000..4ba6afb09 --- /dev/null +++ b/inc/lang/de/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abonnementverwaltung ====== + +Hier können Sie Ihre Abonnements für die aktuelle Seite oder den aktuellen [[doku>Namespaces|Namespace]] verwalten. diff --git a/inc/lang/de/subscr_list.txt b/inc/lang/de/subscr_list.txt new file mode 100644 index 000000000..98ec4c2ab --- /dev/null +++ b/inc/lang/de/subscr_list.txt @@ -0,0 +1,18 @@ +Hallo! + +Seite im Namensraum @PAGE@ im @TITLE@ Wiki wurden bearbeitet. +Das sind die geänderten Seiten: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +@DOKUWIKIURL@, besuchen dann +@SUBSCRIBE@ +und klicken auf die Taste 'Änderungen abbestellen'. + +-- +Diese Mail kommt vom DokuWiki auf +@DOKUWIKIURL@ + diff --git a/inc/lang/de/subscribermail.txt b/inc/lang/de/subscr_single.txt index 0d90967a2..fb149e927 100644 --- a/inc/lang/de/subscribermail.txt +++ b/inc/lang/de/subscr_single.txt @@ -18,6 +18,7 @@ Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an @NEWPAGE@ und klicken auf die Taste 'Änderungen abbestellen'. --- +-- Diese Mail kommt vom DokuWiki auf @DOKUWIKIURL@ + diff --git a/inc/lang/de/wordblock.txt b/inc/lang/de/wordblock.txt deleted file mode 100644 index 14622ebc2..000000000 --- a/inc/lang/de/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blockiert ====== - -Ihre Änderungen wurden nicht gespeichert, da sie ein oder mehrere nicht erlaubte Wörter enthielten. Falls Sie versucht haben sollten, das Wiki zu Spammen -- Schande über Sie! Wenn Sie glauben, dass der Eintrag zu Unrecht blockiert wurde, kontaktieren Sie bitte den Administrator des Wikis. - diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 7aee3161d..83a869df0 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -6,6 +6,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,9 +40,6 @@ $lang['btn_back'] = 'Πίσω'; $lang['btn_backlink'] = 'Σύνδεσμοι προς την τρέχουσα σελίδα'; $lang['btn_backtomedia'] = 'Επιστροφή στην επιλογή αρχείων'; $lang['btn_subscribe'] = 'Εγγραφή σε λήψη ενημερώσεων σελίδας'; -$lang['btn_unsubscribe'] = 'Διαγραφή από λήψη ενημερώσεων σελίδας'; -$lang['btn_subscribens'] = 'Εγγραφή σε λήψη ενημερώσεων φακέλου'; -$lang['btn_unsubscribens'] = 'Διαγραφή από λήψη ενημερώσεων φακέλου'; $lang['btn_profile'] = 'Τροποποίηση προφίλ'; $lang['btn_reset'] = 'Ακύρωση'; $lang['btn_resendpwd'] = 'Αποστολή νέου κωδικού'; @@ -95,7 +93,38 @@ $lang['txt_overwrt'] = 'Αντικατάσταση υπάρχοντο $lang['lockedby'] = 'Προσωρινά κλειδωμένο από'; $lang['lockexpire'] = 'Το κλείδωμα λήγει στις'; $lang['willexpire'] = 'Το κλείδωμά σας για την επεξεργασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χρησιμοποιήστε την επιλογή Προεπισκόπηση.'; -$lang['notsavedyet'] = 'Οι μη αποθηκευμένες αλλαγές θα χαθούν.\nΘέλετε να συνεχίσετε?'; +$lang['js']['notsavedyet'] = 'Οι μη αποθηκευμένες αλλαγές θα χαθούν. +Θέλετε να συνεχίσετε?'; +$lang['js']['searchmedia'] = 'Αναζήτηση για αρχεία'; +$lang['js']['keepopen'] = 'Το παράθυρο να μην κλείνει'; +$lang['js']['hidedetails'] = 'Απόκρυψη λεπτομερειών'; +$lang['js']['mediatitle'] = 'Ρυθμίσεις συνδέσμων'; +$lang['js']['mediadisplay'] = 'Τύπος συνδέσμου'; +$lang['js']['mediaalign'] = 'Στοίχηση'; +$lang['js']['mediasize'] = 'Μέγεθος εικόνας'; +$lang['js']['mediatarget'] = 'Προορισμός συνδέσμου'; +$lang['js']['mediaclose'] = 'Κλείσιμο'; +$lang['js']['mediainsert'] = 'Εισαγωγή'; +$lang['js']['mediadisplayimg'] = 'Προβολή εικόνας.'; +$lang['js']['mediadisplaylnk'] = 'Προβολή μόνο του συνδέσμου.'; +$lang['js']['mediasmall'] = 'Μικρή έκδοση'; +$lang['js']['mediamedium'] = 'Μεσαία έκδοση'; +$lang['js']['medialarge'] = 'Μεγάλη έκδοση'; +$lang['js']['mediaoriginal'] = 'Κανονική έκδοση'; +$lang['js']['medialnk'] = 'Σύνδεσμος στην σελίδα λεπτομερειών'; +$lang['js']['mediadirect'] = 'Απευθείας σύνδεσμος στο αυθεντικό'; +$lang['js']['medianolnk'] = 'Χωρίς σύνδεσμο'; +$lang['js']['medianolink'] = 'Να μην γίνει σύνδεσμος η εικόνα'; +$lang['js']['medialeft'] = 'Στοίχιση της εικόνας αριστερά.'; +$lang['js']['mediaright'] = 'Στοίχιση της εικόνας δεξιά.'; +$lang['js']['mediacenter'] = 'Στοίχιση της εικόνας στη μέση.'; +$lang['js']['medianoalign'] = 'Να μην γίνει στοίχιση.'; +$lang['js']['nosmblinks'] = 'Οι σύνδεσμοι προς Windows shares δουλεύουν μόνο στον Microsoft Internet Explorer. +Μπορείτε πάντα να κάνετε αντιγραφή και επικόλληση του συνδέσμου.'; +$lang['js']['linkwiz'] = 'Αυτόματος Οδηγός Συνδέσμων'; +$lang['js']['linkto'] = 'Σύνδεση σε:'; +$lang['js']['del_confirm'] = 'Να διαγραφεί?'; +$lang['js']['mu_btn'] = 'Ταυτόχρονη φόρτωση πολλαπλών φακέλων'; $lang['rssfailed'] = 'Εμφανίστηκε κάποιο σφάλμα κατά την ανάγνωση αυτού του feed: '; $lang['nothingfound'] = 'Δεν βρέθηκαν σχετικά αποτελέσματα.'; $lang['mediaselect'] = 'Επιλογή Αρχείων'; @@ -113,15 +142,7 @@ $lang['deletefail'] = 'Το αρχείο "%s" δεν διαγράφη $lang['mediainuse'] = 'Το αρχείο "%s" δεν διαγράφηκε - είναι ακόμα σε χρήση.'; $lang['namespaces'] = 'Φάκελοι'; $lang['mediafiles'] = 'Διαθέσιμα αρχεία σε'; -$lang['js']['searchmedia'] = 'Αναζήτηση για αρχεία'; -$lang['js']['keepopen'] = 'Το παράθυρο να μην κλείνει'; -$lang['js']['hidedetails'] = 'Απόκρυψη λεπτομερειών'; -$lang['js']['nosmblinks'] = 'Οι σύνδεσμοι προς Windows shares δουλεύουν μόνο στον Microsoft Internet Explorer. -Μπορείτε πάντα να κάνετε αντιγραφή και επικόλληση του συνδέσμου.'; -$lang['js']['linkwiz'] = 'Αυτόματος Οδηγός Συνδέσμων'; -$lang['js']['linkto'] = 'Σύνδεση σε:'; -$lang['js']['del_confirm'] = 'Να διαγραφεί?'; -$lang['js']['mu_btn'] = 'Ταυτόχρονη φόρτωση πολλαπλών φακέλων'; +$lang['accessdenied'] = 'Δεν σας επιτρέπεται να δείτε αυτήν την σελίδα.'; $lang['mediausage'] = 'Χρησιμοποιήστε την ακόλουθη σύνταξη για να παραθέσετε αυτό το αρχείο:'; $lang['mediaview'] = 'Κανονική προβολή αρχείου'; $lang['mediaroot'] = 'root'; @@ -137,6 +158,7 @@ $lang['current'] = 'τρέχουσα'; $lang['yours'] = 'Η έκδοσή σας'; $lang['diff'] = 'προβολή διαφορών με την τρέχουσα έκδοση'; $lang['diff2'] = 'Προβολή διαφορών μεταξύ των επιλεγμένων εκδόσεων'; +$lang['difflink'] = 'Σύνδεσμος σε αυτή την προβολή διαφορών.'; $lang['line'] = 'Γραμμή'; $lang['breadcrumb'] = 'Ιστορικό'; $lang['youarehere'] = 'Είστε εδώ'; @@ -151,6 +173,7 @@ $lang['noflash'] = 'Το <a href="http://www.adobe.com/products/fl $lang['download'] = 'Λήψη Κώδικα'; $lang['mail_newpage'] = 'σελίδα προστέθηκε:'; $lang['mail_changed'] = 'σελίδα τροποποιήθηκε:'; +$lang['mail_subscribe_list'] = 'σελίδες που άλλαξαν στον φάκελο:'; $lang['mail_new_user'] = 'νέος χρήστης:'; $lang['mail_upload'] = 'αρχείο φορτώθηκε:'; $lang['qb_bold'] = 'Έντονο Κείμενο'; @@ -165,6 +188,9 @@ $lang['qb_h4'] = 'Κεφαλίδα 4ου Επιπέδου'; $lang['qb_h5'] = 'Κεφαλίδα 5ου Επιπέδου'; $lang['qb_h'] = 'Κεφαλίδα'; $lang['qb_hs'] = 'Επιλογή Κεφαλίδας'; +$lang['qb_hplus'] = 'Μεγαλύτερη Κεφαλίδα'; +$lang['qb_hminus'] = 'Μικρότερη Κεφαλίδα'; +$lang['qb_hequal'] = 'Κεφαλίδα ίδιο μεγέθους'; $lang['qb_link'] = 'Εσωτερικός Σύνδεσμος'; $lang['qb_extlink'] = 'Εξωτερικός Σύνδεσμος'; $lang['qb_hr'] = 'Διαχωριστική Γραμμή'; @@ -174,6 +200,7 @@ $lang['qb_media'] = 'Προσθήκη Αρχείων'; $lang['qb_sig'] = 'Προσθήκη Υπογραφής'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Ειδικοί Χαρακτήρες'; +$lang['upperns'] = 'πήγαινε στον μητρικό φάκελο'; $lang['admin_register'] = 'Προσθήκη νέου χρήστη'; $lang['metaedit'] = 'Τροποποίηση metadata'; $lang['metasaveerr'] = 'Η αποθήκευση των metadata απέτυχε'; @@ -189,11 +216,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Camera'; $lang['img_keywords'] = 'Λέξεις-κλειδιά'; -$lang['subscribe_success'] = 'Προσθήκη %s στην λίστα συνδρομητών %s'; -$lang['subscribe_error'] = 'Αποτυχία προσθήκης %s στην λίστα συνδρομητών %s'; -$lang['subscribe_noaddress'] = 'Δεν έχετε δηλώσει e-mail διεύθυνση - δεν μπορείτε να γραφτείτε στην λίστα συνδρομητών.'; -$lang['unsubscribe_success'] = 'Διαγραφή %s από την λίστα συνδρομητών %s'; -$lang['unsubscribe_error'] = 'Αποτυχία διαγραφής %s από την λίστα συνδρομητών %s'; +$lang['subscr_subscribe_success'] = 'Ο/η %s προστέθηκε στην λίστα ειδοποιήσεων για το %s'; +$lang['subscr_subscribe_error'] = 'Σφάλμα κατά την προσθήκη του/της %s στην λίστα ειδοποιήσεων για το %s'; +$lang['subscr_subscribe_noaddress'] = 'Δεν υπάρχει διεύθυνση ταχυδρομείου, συσχετισμένη με το όνομα χρήστη σας, κατά συνέπεια δεν μπορείτε να προστεθείτε στην λίστα ειδοποιήσεων'; +$lang['subscr_unsubscribe_success'] = 'Ο/η %s, απομακρύνθηκε από την λίστα ειδοποιήσεων για το %s'; +$lang['subscr_unsubscribe_error'] = 'Σφάλμα κατά την απομάκρυνση του/της %s στην λίστα ειδοποιήσεων για το %s'; +$lang['subscr_already_subscribed'] = 'Ο/η %s είναι ήδη στην λίστα ειδοποίησης για το %s'; +$lang['subscr_not_subscribed'] = 'Ο/η %s δεν είναι στην λίστα ειδοποίησης για το %s'; +$lang['subscr_m_not_subscribed'] = 'Αυτήν την στιγμή, δεν είσαστε γραμμένος/η στην λίστα ειδοποίησης της τρέχουσας σελίδας ή φακέλου.'; +$lang['subscr_m_new_header'] = 'Προσθήκη στην λίστα ειδοποίησης'; +$lang['subscr_m_current_header'] = 'Τρέχουσες εγγραφές ειδοποιήσεων'; +$lang['subscr_m_unsubscribe'] = 'Διαγραφή'; +$lang['subscr_m_subscribe'] = 'Εγγραφή'; +$lang['subscr_m_receive'] = 'Λήψη'; +$lang['subscr_style_every'] = 'email σε κάθε αλλαγή'; +$lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μέρες)'; +$lang['subscr_style_list'] = 'λίστα αλλαγμένων σελίδων μετά από το τελευταίο email (κάθε %.2f μέρες)'; $lang['authmodfailed'] = 'Κακή ρύθμιση λίστας χρηστών. Παρακαλούμε ενημερώστε τον διαχειριστή του wiki.'; $lang['authtempfail'] = 'Η είσοδος χρηστών δεν λειτουργεί αυτή την στιγμή. Εάν αυτό διαρκεί για πολύ χρόνο, παρακαλούμε ενημερώστε τον διαχειριστή του wiki.'; $lang['i_chooselang'] = 'Επιλογή γλώσσας'; @@ -218,6 +256,7 @@ $lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μπορούν $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μπορούν να διαβάσουν σελίδες αλλά μόνο οι εγγεγραμμένοι χρήστες μπορούν να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)'; $lang['i_pol2'] = 'Κλειστό Wiki (μόνο οι εγγεγραμμένοι χρήστες μπορούν να διαβάσουν ή να δημιουργήσουν/τροποποιήσουν σελίδες και να μεταφορτώσουν αρχεία)'; $lang['i_retry'] = 'Νέα προσπάθεια'; +$lang['i_license'] = 'Παρακαλώ επιλέξτε την άδεια που θα χρησιμοποιήσετε για την διάθεση του περιεχομένου σας:'; $lang['mu_intro'] = 'Εδώ μπορείτε να φορτώσετε ταυτόχρονα πολλαπλά αρχεία. Πατήστε στο κουμπί προεπισκόπησης για να τα προσθέσετε στη λίστα. Πατήστε στο κουμπί μεταφόρτωσης όταν έχετε τελειώσει.'; $lang['mu_gridname'] = 'Όνομα αρχείου'; $lang['mu_gridsize'] = 'Μέγεθος'; @@ -241,3 +280,4 @@ $lang['days'] = 'πριν από %d ημέρες'; $lang['hours'] = 'πριν από %d ώρες'; $lang['minutes'] = 'πριν από %d λεπτά'; $lang['seconds'] = 'πριν από %d δευτερόλεπτα'; +$lang['wordblock'] = 'Η αλλαγή σας δεν αποθηκεύτηκε γιατί περιείχε μπλοκαρισμένο κείμενο (spam).'; diff --git a/inc/lang/el/subscr_digest.txt b/inc/lang/el/subscr_digest.txt new file mode 100644 index 000000000..1a0f44d14 --- /dev/null +++ b/inc/lang/el/subscr_digest.txt @@ -0,0 +1,21 @@ +Χαίρετε! + +Η σελίδα @PAGE@ στο @TITLE@ άλλαξε. +Ορίστε οι αλλαγές: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Παλιά έκδοση: @OLDPAGE@ +Νέα έκδοση: @NEWPAGE@ + +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε +στο wiki στην διεύθυνση @DOKUWIKIURL@ και στην +συνέχεια επισκεφθείτε το @SUBSCRIBE@ και +διαγραφείτε από τις ειδοποιήσεις της σελίδας ή +φακέλου. + +-- +Αυτό το μήνυμα παράχθηκε απο το DokuWiki στην +διεύθυνση @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/el/subscr_form.txt b/inc/lang/el/subscr_form.txt new file mode 100644 index 000000000..c21a29a9a --- /dev/null +++ b/inc/lang/el/subscr_form.txt @@ -0,0 +1,3 @@ +====== Διαχείριση Εγγραφών σε Ειδοποιήσεις ====== + +Εδώ μπορείτε να διαχειριστείτε τις εγγραφές σας στις ειδοποιήσεις για αλλαγές στην τρέχουσα σελίδα και φάκελο.
\ No newline at end of file diff --git a/inc/lang/el/subscr_list.txt b/inc/lang/el/subscr_list.txt new file mode 100644 index 000000000..f5cb8023d --- /dev/null +++ b/inc/lang/el/subscr_list.txt @@ -0,0 +1,21 @@ +Χαίρετε! + +Η σελίδα @PAGE@ στο @TITLE@ άλλαξε. + +Κάποιες σελίδες στον φάκελο @PAGE@ του wiki +@TITLE@ έχουν αλλάξει. +Ορίστε οι αλλαγμένες σελίδες: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε +στο wiki στην διεύθυνση @DOKUWIKIURL@ και στην +συνέχεια επισκεφθείτε το @SUBSCRIBE@ και +διαγραφείτε από τις ειδοποιήσεις της σελίδας ή +φακέλου. + +-- +Αυτό το μήνυμα παράχθηκε απο το DokuWiki στην +διεύθυνση @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/el/subscr_single.txt b/inc/lang/el/subscr_single.txt new file mode 100644 index 000000000..9815cc0bb --- /dev/null +++ b/inc/lang/el/subscr_single.txt @@ -0,0 +1,23 @@ +Χαίρετε! + +Η σελίδα @PAGE@ στο @TITLE@ άλλαξε. +Ορίστε οι αλλαγές: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- +Ημερομηνία : @DATE@ +Χρήστης : @USER@ +Περίληψη αλλαγών: @SUMMARY@ +Παλιά έκδοση: @OLDPAGE@ +Νέα έκδοση: @NEWPAGE@ + +Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε +στο wiki στην διεύθυνση @DOKUWIKIURL@ και στην +συνέχεια επισκεφθείτε το @SUBSCRIBE@ και +διαγραφείτε από τις ειδοποιήσεις της σελίδας ή +φακέλου. + +-- +Αυτό το μήνυμα παράχθηκε απο το DokuWiki στην +διεύθυνση @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/el/wordblock.txt b/inc/lang/el/wordblock.txt deleted file mode 100644 index b54e8ef77..000000000 --- a/inc/lang/el/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Εντοπίστηκε SPAM ====== - -Οι αλλαγές σας **δεν** αποθηκεύτηκαν επειδή βρέθηκε τουλάχιστον μία μη αποδεκτή λέξη. Εάν προσπαθήσατε να προσθέσετε spam σε αυτό το wiki -- κακώς! Εάν πιστεύετε ότι αυτό δεν είναι σωστό, απευθυνθείτε στον διαχειριστή της εφαρμογής. - diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index cf5173d05..5414f7a88 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -39,10 +39,7 @@ $lang['btn_delete'] = 'Delete'; $lang['btn_back'] = 'Back'; $lang['btn_backlink'] = "Backlinks"; $lang['btn_backtomedia'] = 'Back to Mediafile Selection'; -$lang['btn_subscribe'] = 'Subscribe Page Changes'; -$lang['btn_unsubscribe'] = 'Unsubscribe Page Changes'; -$lang['btn_subscribens'] = 'Subscribe Namespace Changes'; -$lang['btn_unsubscribens'] = 'Unsubscribe Namespace Changes'; +$lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'Update Profile'; $lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Send new password'; @@ -103,7 +100,7 @@ $lang['lockedby'] = 'Currently locked by'; $lang['lockexpire'] = 'Lock expires at'; $lang['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; -$lang['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; +$lang['js']['notsavedyet'] = "Unsaved changes will be lost."; $lang['rssfailed'] = 'An error occurred while fetching this feed: '; $lang['nothingfound']= 'Nothing was found.'; @@ -122,6 +119,7 @@ $lang['deletefail'] = '"%s" couldn\'t be deleted - check permissions.'; $lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Available files in'; +$lang['accessdenied'] = 'You are not allowed to view this page.'; $lang['js']['searchmedia'] = 'Search for files'; $lang['js']['keepopen'] = 'Keep window open on selection'; @@ -132,6 +130,28 @@ $lang['mediaroot'] = 'root'; $lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your "Upload as" filename separated by colons.'; $lang['mediaextchange'] = 'Filextension changed from .%s to .%s!'; +$lang['js']['mediatitle'] = 'Link settings'; +$lang['js']['mediadisplay'] = 'Link type'; +$lang['js']['mediaalign'] = 'Alignment'; +$lang['js']['mediasize'] = 'Image size'; +$lang['js']['mediatarget'] = 'Link target'; +$lang['js']['mediaclose'] = 'Close'; +$lang['js']['mediainsert'] = 'Insert'; +$lang['js']['mediadisplayimg'] = 'Show the image.'; +$lang['js']['mediadisplaylnk'] = 'Show only the link.'; +$lang['js']['mediasmall'] = 'Small version'; +$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['medialarge'] = 'Large version'; +$lang['js']['mediaoriginal'] = 'Original version'; +$lang['js']['medialnk'] = 'Link to detail page'; +$lang['js']['mediadirect'] = 'Direct link to original'; +$lang['js']['medianolnk'] = 'No link'; +$lang['js']['medianolink'] = 'Do not link the image'; +$lang['js']['medialeft'] = 'Align the image on the left.'; +$lang['js']['mediaright'] = 'Align the image on the right.'; +$lang['js']['mediacenter'] = 'Align the image in the middle.'; +$lang['js']['medianoalign'] = 'Use no align.'; + $lang['reference'] = 'References for'; $lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:'; $lang['ref_hidden'] = 'Some references are on pages you don\'t have permission to read'; @@ -143,6 +163,7 @@ $lang['current'] = 'current'; $lang['yours'] = 'Your Version'; $lang['diff'] = 'Show differences to current revisions'; $lang['diff2'] = 'Show differences between selected revisions'; +$lang['difflink'] = 'Link to this comparison view'; $lang['line'] = 'Line'; $lang['breadcrumb'] = 'Trace'; $lang['youarehere'] = 'You are here'; @@ -158,6 +179,7 @@ $lang['download'] = 'Download Snippet'; $lang['mail_newpage'] = 'page added:'; $lang['mail_changed'] = 'page changed:'; +$lang['mail_subscribe_list'] = 'pages changed in namespace:'; $lang['mail_new_user'] = 'new user:'; $lang['mail_upload'] = 'file uploaded:'; @@ -212,11 +234,24 @@ $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Camera'; $lang['img_keywords']= 'Keywords'; -$lang['subscribe_success'] = 'Added %s to subscription list for %s'; -$lang['subscribe_error'] = 'Error adding %s to subscription list for %s'; -$lang['subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list'; -$lang['unsubscribe_success']= 'Removed %s from subscription list for %s'; -$lang['unsubscribe_error'] = 'Error removing %s from subscription list for %s'; +$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s'; +$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s'; +$lang['subscr_subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list'; +$lang['subscr_unsubscribe_success']= 'Removed %s from subscription list for %s'; +$lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s'; +$lang['subscr_already_subscribed'] = '%s is already subscribed to %s'; +$lang['subscr_not_subscribed'] = '%s is not subscribed to %s'; +// Manage page for subscriptions +$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to the current page or namespace.'; +$lang['subscr_m_new_header'] = 'Add subscription'; +$lang['subscr_m_current_header'] = 'Current subscriptions'; +$lang['subscr_m_unsubscribe'] = 'Unsubscribe'; +$lang['subscr_m_subscribe'] = 'Subscribe'; +$lang['subscr_m_receive'] = 'Receive'; +$lang['subscr_style_every'] = 'email on every change'; +$lang['subscr_style_digest'] = 'digest email of changes for each page (every %.2f days)'; +$lang['subscr_style_list'] = 'list of changed pages since last email (every %.2f days)'; + /* auth.class language support */ $lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.'; @@ -249,6 +284,7 @@ $lang['i_pol1'] = 'Public Wiki (read for everyone, write and upload for re $lang['i_pol2'] = 'Closed Wiki (read, write, upload for registered users only)'; $lang['i_retry'] = 'Retry'; +$lang['i_license'] = 'Please choose the license you want to put your content under:'; $lang['mu_intro'] = 'Here you can upload multiple files at once. Click the browse button to add them to the queue. Press upload when done.'; $lang['js']['mu_btn'] = 'Upload multiple files at once'; @@ -277,4 +313,7 @@ $lang['hours'] = '%d hours ago'; $lang['minutes'] = '%d minutes ago'; $lang['seconds'] = '%d seconds ago'; +$lang['wordblock'] = 'Your change was not saved because it contains blocked text (spam).'; + + //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/lang/en/subscr_digest.txt b/inc/lang/en/subscr_digest.txt new file mode 100644 index 000000000..fac8564bd --- /dev/null +++ b/inc/lang/en/subscr_digest.txt @@ -0,0 +1,20 @@ +Hello! + +The page @PAGE@ in the @TITLE@ wiki changed. +Here are the changes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Old Revision: @OLDPAGE@ +New Revision: @NEWPAGE@ + +To cancel the page notifications, log into the wiki at +@DOKUWIKIURL@ then visit +@SUBSCRIBE@ +and unsubscribe page and/or namespace changes. + +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ diff --git a/inc/lang/en/subscr_form.txt b/inc/lang/en/subscr_form.txt new file mode 100644 index 000000000..d606508c6 --- /dev/null +++ b/inc/lang/en/subscr_form.txt @@ -0,0 +1,3 @@ +====== Subscription Management ====== + +This page allows you to manage your subscriptions for the current page and namespace. diff --git a/inc/lang/en/subscr_list.txt b/inc/lang/en/subscr_list.txt new file mode 100644 index 000000000..efe27d866 --- /dev/null +++ b/inc/lang/en/subscr_list.txt @@ -0,0 +1,17 @@ +Hello! + +Pages in the namespace @PAGE@ of the @TITLE@ wiki changed. +Here are the changed pages: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +To cancel the page notifications, log into the wiki at +@DOKUWIKIURL@ then visit +@SUBSCRIBE@ +and unsubscribe page and/or namespace changes. + +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ diff --git a/inc/lang/en/subscribermail.txt b/inc/lang/en/subscr_single.txt index 673c4c32a..f2abe6d77 100644 --- a/inc/lang/en/subscribermail.txt +++ b/inc/lang/en/subscr_single.txt @@ -18,6 +18,6 @@ To cancel the page notifications, log into the wiki at @NEWPAGE@ and unsubscribe page and/or namespace changes. --- +-- This mail was generated by DokuWiki at @DOKUWIKIURL@ diff --git a/inc/lang/en/wordblock.txt b/inc/lang/en/wordblock.txt deleted file mode 100644 index f0f7d759d..000000000 --- a/inc/lang/en/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Your changes were **not** saved because it contains one or more blocked words. If you tried to spam the Wiki -- Bad dog! If you think this is an error, contact the administrator of this Wiki. - diff --git a/inc/lang/eo/adminplugins.txt b/inc/lang/eo/adminplugins.txt index ed2949b10..769a8c538 100644 --- a/inc/lang/eo/adminplugins.txt +++ b/inc/lang/eo/adminplugins.txt @@ -1 +1 @@ -===== Ekstra kromaĵojn =====
\ No newline at end of file +===== Eksteraj kromaĵoj =====
\ No newline at end of file diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index e2c25ae43..1d60fee62 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -46,9 +46,6 @@ $lang['btn_back'] = 'Retroiri'; $lang['btn_backlink'] = 'Retroligoj'; $lang['btn_backtomedia'] = 'Retroiri al elekto de dosiero'; $lang['btn_subscribe'] = 'Aliĝi al paĝaj modifoj'; -$lang['btn_unsubscribe'] = 'Malaliĝi al paĝaj modifoj'; -$lang['btn_subscribens'] = 'Aliĝi al nomspacaj modifoj'; -$lang['btn_unsubscribens'] = 'Malaliĝi al nomspacaj modifoj'; $lang['btn_profile'] = 'Ĝisdatigi profilon'; $lang['btn_reset'] = 'Rekomenci'; $lang['btn_resendpwd'] = 'Sendi novan pasvorton'; @@ -65,7 +62,7 @@ $lang['passchk'] = 'plian fojon'; $lang['remember'] = 'Rememoru min'; $lang['fullname'] = 'Kompleta nomo'; $lang['email'] = 'Retpoŝto'; -$lang['register'] = 'Registro'; +$lang['register'] = 'Registriĝi'; $lang['profile'] = 'Uzanto-profilo'; $lang['badlogin'] = 'Pardonu, uzant-nomo aŭ pasvorto estis erara.'; $lang['minoredit'] = 'Etaj modifoj'; @@ -79,7 +76,7 @@ $lang['regmailfail'] = 'Ŝajne okazis eraro dum elsendo de la pasvorto $lang['regbadmail'] = 'Entajpita retpoŝta adreso ne ŝajnas valida. Se vi pensas, ke tio estas eraro, kontaktu la administranton.'; $lang['regbadpass'] = 'La du pasvortoj ne samas, bonvolu provi refoje.'; $lang['regpwmail'] = 'Via DokuWiki-pasvorto'; -$lang['reghere'] = 'Se vi ne havas konton, do vi povos akiri ĝin'; +$lang['reghere'] = 'Se vi ne havas konton, do vi povas akiri ĝin'; $lang['profna'] = 'Tiu ĉi vikio ne ebligas modifon en la profiloj.'; $lang['profnochange'] = 'Neniu ŝanĝo, nenio farinda.'; $lang['profnoempty'] = 'Malplena nomo aŭ retadreso ne estas permesataj.'; @@ -102,7 +99,7 @@ $lang['txt_overwrt'] = 'Anstataŭigi ekzistantan dosieron'; $lang['lockedby'] = 'Nune ŝlosita de'; $lang['lockexpire'] = 'Ŝlosado ĉesos en'; $lang['willexpire'] = 'Vi povos redakti ĉi tiun paĝon post unu minuto.\nSe vi volas nuligi tempkontrolon de la ŝlosado, do premu butonon "Antaŭrigardi".'; -$lang['notsavedyet'] = 'Ne konservitaj modifoj perdiĝos.\nĈu vi certe volas daŭrigi la procezon?'; +$lang['js']['notsavedyet'] = "Ne konservitaj modifoj perdiĝos.\nĈu vi certe volas daŭrigi la procezon?"; $lang['rssfailed'] = 'Okazis eraro dum ricevado de la novaĵ-fluo: '; $lang['nothingfound'] = 'Ankoraŭ nenio troviĝas tie ĉi.'; $lang['mediaselect'] = 'Elekto de aŭdvidaĵa dosiero'; @@ -123,6 +120,27 @@ $lang['mediafiles'] = 'Disponeblaj dosieroj'; $lang['js']['searchmedia'] = 'Serĉi dosierojn'; $lang['js']['keepopen'] = 'Tenu la fenestron malfermata dum elekto'; $lang['js']['hidedetails'] = 'Kaŝi detalojn'; +$lang['js']['mediatitle'] = 'Ligilaj agordoj'; +$lang['js']['mediadisplay'] = 'Ligila tipo'; +$lang['js']['mediaalign'] = 'Poziciigo'; +$lang['js']['mediasize'] = 'Bildgrandeco'; +$lang['js']['mediatarget'] = 'Ligila celo'; +$lang['js']['mediaclose'] = 'Fermi'; +$lang['js']['mediainsert'] = 'Enmeti'; +$lang['js']['mediadisplayimg'] = 'Montri la bildon.'; +$lang['js']['mediadisplaylnk'] = 'Montri nur la ligilon.'; +$lang['js']['mediasmall'] = 'Malgranda versio'; +$lang['js']['mediamedium'] = 'Meza versio'; +$lang['js']['medialarge'] = 'Granda versio'; +$lang['js']['mediaoriginal'] = 'Origina versio'; +$lang['js']['medialnk'] = 'Ligilo al detala paĝo'; +$lang['js']['mediadirect'] = 'Rekta ligilo al la origino'; +$lang['js']['medianolnk'] = 'Neniu ligilo'; +$lang['js']['medianolink'] = 'Ne ligi la bildon'; +$lang['js']['medialeft'] = 'Meti la bildon maldekstren.'; +$lang['js']['mediaright'] = 'Meti la bildon dekstren.'; +$lang['js']['mediacenter'] = 'Meti la bildon mezen.'; +$lang['js']['medianoalign'] = 'Ne uzi poziciigon.'; $lang['js']['nosmblinks'] = 'Tio ĉi nur funkcias en la Vindozaĉa "Microsoft Internet Explorer". Vi ankoraŭ povas kopii kaj almeti la ligilon.'; $lang['js']['linkwiz'] = 'Ligil-Asistanto'; @@ -158,6 +176,7 @@ $lang['noflash'] = 'La <a href="http://www.adobe.com/products/flas $lang['download'] = 'Elŝuti eltiraĵon'; $lang['mail_newpage'] = 'paĝo aldonita:'; $lang['mail_changed'] = 'paĝo modifita:'; +$lang['mail_subscribe_list'] = 'ŝanĝitaj paĝoj en nomspaco:'; $lang['mail_new_user'] = 'Nova uzanto:'; $lang['mail_upload'] = 'dosiero alŝutita:'; $lang['qb_bold'] = 'Dika teksto'; @@ -200,11 +219,22 @@ $lang['img_copyr'] = 'Kopirajtoj'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Kamerao'; $lang['img_keywords'] = 'Ŝlosilvortoj'; -$lang['subscribe_success'] = '%s estis aldonita al dissendolisto por %s'; -$lang['subscribe_error'] = 'Estas eraro je aldono de %s al dissendolisto por %s'; -$lang['subscribe_noaddress'] = 'Estas neniu retadreso asociita al via identiĝ-nomo, do vi ne povas esti aldonata al la dissendolisto.'; -$lang['unsubscribe_success'] = '%s estas forigita de la dissendolisto por %s'; -$lang['unsubscribe_error'] = 'Estas eraro je forigo de %s el dissendolisto por %s'; +$lang['subscr_subscribe_success'] = 'Aldonis %s al la abonlisto por %s'; +$lang['subscr_subscribe_error'] = 'Eraro dum aldono de %s al la abonlisto por %s'; +$lang['subscr_subscribe_noaddress'] = 'Ne estas adreso ligita al via ensaluto, ne eblas aldoni vin al la abonlisto'; +$lang['subscr_unsubscribe_success'] = 'Forigis %s de la abonlisto por %s'; +$lang['subscr_unsubscribe_error'] = 'Eraro dum forigo de %s de la abonlisto por %s'; +$lang['subscr_already_subscribed'] = '%s jam estas abonanta al %s'; +$lang['subscr_not_subscribed'] = '%s ne abonas al %s'; +$lang['subscr_m_not_subscribed'] = 'Momente vi ne abonas la aktualan paĝon aŭ nomspacon.'; +$lang['subscr_m_new_header'] = 'Aldoni abonon'; +$lang['subscr_m_current_header'] = 'Momentaj abonoj'; +$lang['subscr_m_unsubscribe'] = 'Malaboni'; +$lang['subscr_m_subscribe'] = 'Aboni'; +$lang['subscr_m_receive'] = 'Ricevi'; +$lang['subscr_style_every'] = 'retpoŝtaĵo pro ĉiu ŝanĝo'; +$lang['subscr_style_digest'] = 'kolekta retpoŝtaĵo de ŝanĝoj por ĉiu paĝo'; +$lang['subscr_style_list'] = 'listo de ŝanĝitaj paĝoj ekde la lasta retpoŝtaĵo'; $lang['authmodfailed'] = 'Malbona agordo por identigi la uzanton. Bonvolu informi la administranton de la vikio.'; $lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.'; $lang['i_chooselang'] = 'Elektu vian lingvon'; @@ -252,3 +282,4 @@ $lang['days'] = 'antaŭ %d tagoj'; $lang['hours'] = 'antaŭ %d horoj'; $lang['minutes'] = 'antaŭ %d minutoj'; $lang['seconds'] = 'antaŭ %d sekundoj'; +$lang['wordblock'] = 'Via ŝanĝo ne estis savita, ĉar ĝi enhavas blokitan tekston (spamon).'; diff --git a/inc/lang/eo/mailtext.txt b/inc/lang/eo/mailtext.txt index 5e83b324b..b2cb3b49d 100644 --- a/inc/lang/eo/mailtext.txt +++ b/inc/lang/eo/mailtext.txt @@ -12,5 +12,5 @@ Uzulo: @USER@ @DIFF@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki, kiu lokiĝas tie: +Tiu ĉi mesaĝo estis kreita de DokuWiki, kiu lokiĝas tie: @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/eo/norev.txt b/inc/lang/eo/norev.txt index 6dffbaa1c..f17d8df7c 100644 --- a/inc/lang/eo/norev.txt +++ b/inc/lang/eo/norev.txt @@ -1,3 +1,3 @@ -====== Tia revizio ne ekzistas ====== +====== Tiu revizio ne ekzistas ====== La elektita revizio ne ekzistas. Premu butonon ''Malnovaj revizioj'', por vidi liston de malnovaj revizioj de la dokumento.
\ No newline at end of file diff --git a/inc/lang/eo/password.txt b/inc/lang/eo/password.txt index f08e7426e..bb854a926 100644 --- a/inc/lang/eo/password.txt +++ b/inc/lang/eo/password.txt @@ -1,10 +1,10 @@ Saluton @FULLNAME@! -Jen via uzuldatenoj por @TITLE@ ĉe @DOKUWIKIURL@ +Jen via uzantodatenoj por @TITLE@ ĉe @DOKUWIKIURL@ Ensalutnomo : @LOGIN@ Pasvorto : @PASSWORD@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki ĉe +Tiu ĉi mesaĝo estis kreita de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/inc/lang/eo/preview.txt b/inc/lang/eo/preview.txt index 784f693e6..ac2e75d00 100644 --- a/inc/lang/eo/preview.txt +++ b/inc/lang/eo/preview.txt @@ -1,3 +1,3 @@ ====== Antaŭrigardo ====== -Tiu ĉi estas antaŭrigardo pri kia estos via teksto. Memoru: ĝi ankoraŭ **ne estas konservita**!
\ No newline at end of file +Tiu ĉi estas antaŭrigardo de redaktita teksto. Memoru: ĝi ankoraŭ **ne estas konservita**!
\ No newline at end of file diff --git a/inc/lang/eo/recent.txt b/inc/lang/eo/recent.txt index e03144668..ffd9936e2 100644 --- a/inc/lang/eo/recent.txt +++ b/inc/lang/eo/recent.txt @@ -1,3 +1,3 @@ ====== Freŝaj Ŝanĝoj ====== -La jenaj paĝoj estis ŝanĝitaj antaŭ malmulta tempo.
\ No newline at end of file +La jenaj paĝoj estis ŝanĝitaj antaŭ nelonga tempo.
\ No newline at end of file diff --git a/inc/lang/eo/registermail.txt b/inc/lang/eo/registermail.txt index c832eca42..e5b1da902 100644 --- a/inc/lang/eo/registermail.txt +++ b/inc/lang/eo/registermail.txt @@ -10,5 +10,5 @@ IP-Adreso: @IPADDRESS@ Provizanto: @HOSTNAME@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki ĉe +Tiu ĉi mesaĝo estis kreita de DokuWiki ĉe @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/eo/subscr_digest.txt b/inc/lang/eo/subscr_digest.txt new file mode 100644 index 000000000..d6bc69887 --- /dev/null +++ b/inc/lang/eo/subscr_digest.txt @@ -0,0 +1,20 @@ +Saluton! + +La paĝo @PAGE@ en la vikio @TITLE@ ŝanĝiĝis. +Jen sekvas la ŝanĝoj: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Malnova versio: @OLDPAGE@ +Nova versio: @NEWPAGE@ + +Por nuligi la paĝinformojn, ensalutu la vikion ĉe +@DOKUWIKIURL@, poste iru al +@SUBSCRIBE@ +kaj malabonu la paĝajn kaj/aŭ nomspacajn ŝanĝojn. + +-- +Tiu retpoŝtaĵo kreiĝis de DokuWiki ĉe +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/eo/subscr_form.txt b/inc/lang/eo/subscr_form.txt new file mode 100644 index 000000000..259b21045 --- /dev/null +++ b/inc/lang/eo/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abona administrado ====== + +Tiu paĝo lasas vin administri viajn abonojn por la aktualaj paĝo kaj nomspaco.
\ No newline at end of file diff --git a/inc/lang/eo/subscr_list.txt b/inc/lang/eo/subscr_list.txt new file mode 100644 index 000000000..175e3f3d2 --- /dev/null +++ b/inc/lang/eo/subscr_list.txt @@ -0,0 +1,17 @@ +Saluton! + +Paĝoj en la nomspaco @PAGE@ en la vikio @TITLE@ ŝanĝiĝis. +Jen sekvas la ŝanĝitaj paĝoj: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Por nuligi la paĝinformojn, ensalutu la vikion ĉe +@DOKUWIKIURL@, poste iru al +@SUBSCRIBE@ +kaj malabonu la paĝajn kaj/aŭ nomspacajn ŝanĝojn. + +-- +Tiu retpoŝtaĵo kreiĝis de DokuWiki ĉe +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/eo/subscr_single.txt b/inc/lang/eo/subscr_single.txt new file mode 100644 index 000000000..a1f483570 --- /dev/null +++ b/inc/lang/eo/subscr_single.txt @@ -0,0 +1,23 @@ +Saluton! + +La paĝo @PAGE@ en la vikio @TITLE@ ŝanĝiĝis. +Jen sekvas la ŝanĝoj: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dato : @DATE@ +Uzanto : @USER@ +Modifa resumo: @SUMMARY@ +Malnova versio: @OLDPAGE@ +Nova versio: @NEWPAGE@ + +Por nuligi la paĝinformojn, ensalutu la vikion ĉe +@DOKUWIKIURL@, poste iru al +@NEWPAGE@ +kaj malabonu la paĝajn kaj/aŭ nomspacajn ŝanĝojn. + +-- +Tiu retpoŝtaĵo kreiĝis de DokuWiki ĉe +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/eo/wordblock.txt b/inc/lang/eo/wordblock.txt deleted file mode 100644 index 64bb19e5c..000000000 --- a/inc/lang/eo/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAMO estis blokita ====== - -Viaj redaktoj ne estas konservitaj, ĉar en la teksto estis trovitaj unu aŭ kelkaj malpermesindaj vortoj, ŝajnante spamo. Se vi pensas, ke tio estas eraro, bonvolu kontakti la administranton de la vikio.
\ No newline at end of file diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 9d4995c52..28da1dfee 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -22,6 +22,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,9 +57,6 @@ $lang['btn_back'] = 'Atrás'; $lang['btn_backlink'] = 'Enlaces anteriores'; $lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia'; $lang['btn_subscribe'] = 'Suscribirse a cambios de la página'; -$lang['btn_unsubscribe'] = 'Cancelar suscripción a cambios de la página'; -$lang['btn_subscribens'] = 'Suscribirse a cambios del espacio de nombres'; -$lang['btn_unsubscribens'] = 'Cancelar suscripción a cambios del espacio de nombres'; $lang['btn_profile'] = 'Actualizar perfil'; $lang['btn_reset'] = 'Restablecer'; $lang['btn_resendpwd'] = 'Enviar nueva contraseña'; @@ -111,7 +110,37 @@ $lang['txt_overwrt'] = 'Sobreescribir archivo existente'; $lang['lockedby'] = 'Actualmente bloqueado por'; $lang['lockexpire'] = 'El bloqueo expira en'; $lang['willexpire'] = 'Tu bloqueo para editar esta página expira en un minuto.\nPara evitar conflictos usa el botón previsualizar para reiniciar el contador de tiempo.'; -$lang['notsavedyet'] = 'Los cambios que no se han guardado se perderán.\n¿Realmente quieres continuar?'; +$lang['js']['notsavedyet'] = 'Los cambios que no se han guardado se perderán. +¿Realmente quieres continuar?'; +$lang['js']['searchmedia'] = 'Buscar archivos'; +$lang['js']['keepopen'] = 'Mantener la ventana abierta luego de seleccionar'; +$lang['js']['hidedetails'] = 'Ocultar detalles'; +$lang['js']['mediatitle'] = 'Configuración del vínculo'; +$lang['js']['mediadisplay'] = 'Tipo de vínculo'; +$lang['js']['mediaalign'] = 'Alineación'; +$lang['js']['mediasize'] = 'Tamaño de la imagen'; +$lang['js']['mediatarget'] = 'Destino del vínculo'; +$lang['js']['mediaclose'] = 'Cerrar'; +$lang['js']['mediainsert'] = 'Insertar'; +$lang['js']['mediadisplayimg'] = 'Mostrar la imagen.'; +$lang['js']['mediadisplaylnk'] = 'Mostrar solo el vínculo.'; +$lang['js']['mediasmall'] = 'Versión en tamaño pequeño'; +$lang['js']['mediamedium'] = 'Versión en tamaño medio'; +$lang['js']['medialarge'] = 'Versión en tamaño grande'; +$lang['js']['mediaoriginal'] = 'Versión original'; +$lang['js']['medialnk'] = 'Vínculo a la pagina de descripción'; +$lang['js']['mediadirect'] = 'Vínculo al original'; +$lang['js']['medianolnk'] = 'Sin vínculo'; +$lang['js']['medianolink'] = 'No vincular la imagen'; +$lang['js']['medialeft'] = 'Alinear imagen a la izquierda'; +$lang['js']['mediaright'] = 'Alinear imagen a la derecha.'; +$lang['js']['mediacenter'] = 'Alinear imagen en el centro.'; +$lang['js']['nosmblinks'] = 'El enlace a recursos compartidos de Windows sólo funciona en Microsoft Internet Explorer. +Lo que sí puedes hacer es copiar y pegar el enlace.'; +$lang['js']['linkwiz'] = 'Asistente de enlaces'; +$lang['js']['linkto'] = 'Enlazar a:'; +$lang['js']['del_confirm'] = '¿Quieres realmente borrar lo seleccionado?'; +$lang['js']['mu_btn'] = 'Subir varios archivos a la vez'; $lang['rssfailed'] = 'Se ha producido un error mientras se leían los datos de este feed: '; $lang['nothingfound'] = 'No se ha encontrado nada.'; $lang['mediaselect'] = 'Archivos Multimedia'; @@ -129,15 +158,6 @@ $lang['deletefail'] = '"%s" no pudo ser borrado; verifique los permis $lang['mediainuse'] = 'El fichero "%s" no ha sido borrado, aún está en uso.'; $lang['namespaces'] = 'Espacios de nombres'; $lang['mediafiles'] = 'Ficheros disponibles en'; -$lang['js']['searchmedia'] = 'Buscar archivos'; -$lang['js']['keepopen'] = 'Mantener la ventana abierta luego de seleccionar'; -$lang['js']['hidedetails'] = 'Ocultar detalles'; -$lang['js']['nosmblinks'] = 'El enlace a recursos compartidos de Windows sólo funciona en Microsoft Internet Explorer. -Lo que sí puedes hacer es copiar y pegar el enlace.'; -$lang['js']['linkwiz'] = 'Asistente de enlaces'; -$lang['js']['linkto'] = 'Enlazar a:'; -$lang['js']['del_confirm'] = '¿Quieres realmente borrar lo seleccionado?'; -$lang['js']['mu_btn'] = 'Subir varios archivos a la vez'; $lang['mediausage'] = 'Use la siguiente sintaxis para hacer referencia a este fichero:'; $lang['mediaview'] = 'Ver el fichero original'; $lang['mediaroot'] = 'root'; @@ -167,6 +187,7 @@ $lang['noflash'] = 'Para mostrar este contenido es necesario el <a $lang['download'] = 'Descargar trozo de código fuente'; $lang['mail_newpage'] = 'página añadida:'; $lang['mail_changed'] = 'página cambiada:'; +$lang['mail_subscribe_list'] = 'páginas cambiadas en el espacio de nombre:'; $lang['mail_new_user'] = 'nuevo usuario:'; $lang['mail_upload'] = 'archivo subido:'; $lang['qb_bold'] = 'Negrita'; @@ -209,11 +230,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Cámara'; $lang['img_keywords'] = 'Palabras claves'; -$lang['subscribe_success'] = '%s ha sido añadido a la lista de notificación de cambios de %s'; -$lang['subscribe_error'] = 'Ha habido un error al agregar %s a la lista de notificación de cambios de %s'; -$lang['subscribe_noaddress'] = 'No hay ninguna dirección de correo electrónico asociada con tu nombre de usuario, no puedes ser añadido a la lista de notificación de cambios'; -$lang['unsubscribe_success'] = '%s ha sido eliminado de la lista de notificación de cambios de %s'; -$lang['unsubscribe_error'] = 'Ha habido un error al eliminar %s de la lista de notificación de cambios de %s'; +$lang['subscr_subscribe_success'] = 'Se agregó %s a las listas de suscripción para %s'; +$lang['subscr_subscribe_error'] = 'Error al agregar %s a las listas de suscripción para %s'; +$lang['subscr_subscribe_noaddress'] = 'No hay dirección asociada con tu registro, no se puede agregarte a la lista de suscripción'; +$lang['subscr_unsubscribe_success'] = 'Removido %s de la lista de suscripción para %s'; +$lang['subscr_unsubscribe_error'] = 'Error al remover %s de la lista de suscripción para %s'; +$lang['subscr_already_subscribed'] = '%s ya está suscrito a %s'; +$lang['subscr_not_subscribed'] = '%s no está suscrito a %s'; +$lang['subscr_m_not_subscribed'] = 'Actualmente no te encuentras suscrito a esta página o espacio de nombres'; +$lang['subscr_m_new_header'] = 'Agregar suscripción'; +$lang['subscr_m_current_header'] = 'Suscripciones actuales'; +$lang['subscr_m_unsubscribe'] = 'Darse de baja'; +$lang['subscr_m_subscribe'] = 'Suscribirse'; +$lang['subscr_m_receive'] = 'Recibir'; +$lang['subscr_style_every'] = 'enviar correo en cada cambio'; +$lang['subscr_style_digest'] = 'recopilar correo de cambios por cada página'; +$lang['subscr_style_list'] = 'lista de páginas con cambios desde el último correo'; $lang['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.'; $lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.'; $lang['i_chooselang'] = 'Elija su idioma'; diff --git a/inc/lang/es/subscr_digest.txt b/inc/lang/es/subscr_digest.txt new file mode 100644 index 000000000..df03fcafc --- /dev/null +++ b/inc/lang/es/subscr_digest.txt @@ -0,0 +1,20 @@ +Hola! + +La página @PAGE@ en @TITLE@ wiki ha cambiado. +Estos son los cambios: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Revisión Anterior: @OLDPAGE@ +Revisión Nueva: @NEWPAGE@ + +Para cancelar la página de notificaciones, entra a la wiki en +@DOKUWIKIURL@ luego visita +@SUBSCRIBE@ +y date de baja en la página y/o cambios en el espacio de nombre. + +-- +Este correo ha sido generado por DokuWiki en +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/es/subscr_form.txt b/inc/lang/es/subscr_form.txt new file mode 100644 index 000000000..3a8143c39 --- /dev/null +++ b/inc/lang/es/subscr_form.txt @@ -0,0 +1,3 @@ +====== Administrador de Suscripciones ====== + +Esta página te permite administrar tus suscripciones para la página actual y espacio de nombres.
\ No newline at end of file diff --git a/inc/lang/es/subscr_list.txt b/inc/lang/es/subscr_list.txt new file mode 100644 index 000000000..80e8dc8a1 --- /dev/null +++ b/inc/lang/es/subscr_list.txt @@ -0,0 +1,17 @@ +Hola! + +Las páginas en el espacio de nombres @PAGE@ en @TITLE@ wiki ha cambiado. +Estos son los cambios: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Para cancelar la página de notificaciones, entra a la wiki en +@DOKUWIKIURL@ luego visita +@SUBSCRIBE@ +y date de baja en la página y/o cambios en el espacio de nombre. + +-- +Este correo ha sido generado por DokuWiki en +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/es/subscr_single.txt b/inc/lang/es/subscr_single.txt new file mode 100644 index 000000000..e2a54c79f --- /dev/null +++ b/inc/lang/es/subscr_single.txt @@ -0,0 +1,23 @@ +Hola! + +La página @PAGE@ en @TITLE@ wiki ha cambiado. +Estos son los cambioss: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Fecha : @DATE@ +Usuario : @USER@ +Resúmen de edición: @SUMMARY@ +Revisión Anterior: @OLDPAGE@ +Nueva Revisión: @NEWPAGE@ + +Para cancelar la página de notificaciones, entra a la wiki en +@DOKUWIKIURL@ luego visita +@SUBSCRIBE@ +y date de baja en la página y/o cambios en el espacio de nombre. + +-- +Este correo ha sido generado por DokuWiki en +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/es/wordblock.txt b/inc/lang/es/wordblock.txt deleted file mode 100644 index 739a1b76b..000000000 --- a/inc/lang/es/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM bloqueado ====== - -Tus cambios **no** se han guardado porque contienen una o más palabras prohibidas. Si has intentado spamear el Wiki: ¡Perro malo! Si crees que es un error contacta con el administrador de este Wiki. - diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 4d3f10bdc..ef540bb3d 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -150,7 +150,7 @@ $lang['lockedby'] = 'Praegu on selle lukustanud'; $lang['lockexpire'] = 'Lukustus aegub'; $lang['willexpire'] = 'Teie lukustus selle lehe toimetamisele aegub umbes minuti pärast.\nIgasugu probleemide vältimiseks kasuta eelvaate nuppu, et lukustusarvesti taas tööle panna.'; -$lang['notsavedyet'] = 'Sul on seal salvestamata muudatusi, mis kohe kõige kaduva teed lähevad.\nKas Sa ikka tahad edasi liikuda?'; +$lang['js']['notsavedyet'] = "Sul on seal salvestamata muudatusi, mis kohe kõige kaduva teed lähevad.\nKas Sa ikka tahad edasi liikuda?"; $lang['rssfailed'] = 'Sinu soovitud info ammutamisel tekkis viga: '; $lang['nothingfound']= 'Oops, aga mitte muhvigi ei leitud.'; diff --git a/inc/lang/et/wordblock.txt b/inc/lang/et/wordblock.txt deleted file mode 100644 index 65d0d6ac3..000000000 --- a/inc/lang/et/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPÄMM blokeeritud ====== - -Sinu muutusi kahjuks **ei** salvestatud kuna tekst sisaldab ühte või rohkem blokeeritud sõna. Kas Sa üritad Wikile spämmi saata -- oh sa põrsas! Kui aga arvad, et tegemist on eksitusega, siis suhtle Wiki administraatoriga. - diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 8324e2587..a5f786654 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -91,7 +91,7 @@ $lang['txt_overwrt'] = 'Oraingo fitxategiaren gainean idatzi'; $lang['lockedby'] = 'Momentu honetan blokeatzen:'; $lang['lockexpire'] = 'Blokeaketa iraungitzen da:'; $lang['willexpire'] = 'Zure blokeaketa orri hau aldatzeko minutu batean iraungitzen da.\nGatazkak saihesteko, aurreikusi botoia erabili blokeaketa denboragailua berrabiarazteko.'; -$lang['notsavedyet'] = 'Gorde gabeko aldaketak galdu egingo dira.\nBenetan jarraitu nahi duzu?'; +$lang['js']['notsavedyet'] = "Gorde gabeko aldaketak galdu egingo dira.\nBenetan jarraitu nahi duzu?"; $lang['rssfailed'] = 'Errorea gertatu da feed hau irakurtzean:'; $lang['nothingfound'] = 'Ez da ezer aurkitu.'; $lang['mediaselect'] = 'Aukeratu Multimedia fitxategia'; diff --git a/inc/lang/eu/wordblock.txt b/inc/lang/eu/wordblock.txt deleted file mode 100644 index 0af3fb26c..000000000 --- a/inc/lang/eu/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAMaren aurkako babesa ====== - -Zure aldaketak **ez** dira gorde aurrez debekatutako hitzak erabili dituzulako. Wiki-a spammeatzen saitu bazara... -- Aiss osobuko! (VS). Hau akats bat dela uste baduzu jarri arremanetan Wiki-aren administratzailearekin. diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 1123efe13..c5be8e1c0 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -46,9 +46,6 @@ $lang['btn_back'] = 'عقب'; $lang['btn_backlink'] = 'پیوندهای به این صفحه'; $lang['btn_backtomedia'] = 'بازگشت به انتخاب فایل'; $lang['btn_subscribe'] = 'عضویت در تغییرات صفحه'; -$lang['btn_unsubscribe'] = 'لغو عضویت در تغییرات صفحه'; -$lang['btn_subscribens'] = 'عضویت در تغییرات فضاینام'; -$lang['btn_unsubscribens'] = 'عضویت در تغییرات فضاینام'; $lang['btn_profile'] = 'به روز رسانی پروفایل'; $lang['btn_reset'] = 'بازنشاندن'; $lang['btn_resendpwd'] = 'یک گذرواژهی جدید برای شما فرستاده شود'; @@ -102,7 +99,38 @@ $lang['txt_overwrt'] = 'بر روی فایل موجود بنویس'; $lang['lockedby'] = 'در حال حاضر قفل شده است'; $lang['lockexpire'] = 'قفل منقضی شده است'; $lang['willexpire'] = 'حالت قفل شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمهی پیشنمایش را برای صفر شدن ساعت قفل بزنید.'; -$lang['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد رفت. \n میخواهید ادامه دهید؟'; +$lang['js']['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد رفت. + میخواهید ادامه دهید؟'; +$lang['js']['searchmedia'] = 'جستجو برای فایل'; +$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگهدار'; +$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; +$lang['js']['mediatitle'] = 'تنظیمات پیوند'; +$lang['js']['mediadisplay'] = 'نوع پیوند'; +$lang['js']['mediaalign'] = 'همترازی'; +$lang['js']['mediasize'] = 'اندازه تصویر'; +$lang['js']['mediatarget'] = 'هدف پیوند'; +$lang['js']['mediaclose'] = 'بستن'; +$lang['js']['mediainsert'] = 'درج کردن'; +$lang['js']['mediadisplayimg'] = 'نمایش تصویر'; +$lang['js']['mediadisplaylnk'] = 'فقط پیوند را نمایش بده.'; +$lang['js']['mediasmall'] = 'نگارش کوچک'; +$lang['js']['mediamedium'] = 'نگارش متوسط'; +$lang['js']['medialarge'] = 'نگارش بزرگ'; +$lang['js']['mediaoriginal'] = 'نگارش اصلی'; +$lang['js']['medialnk'] = 'پیوند به صفحهی جزییات'; +$lang['js']['mediadirect'] = 'پیوند مستقیم به اصلی'; +$lang['js']['medianolnk'] = 'بدون پیوند'; +$lang['js']['medianolink'] = 'تصویر را پیوند نکن'; +$lang['js']['medialeft'] = 'تصویر را با چپ همتراز کن.'; +$lang['js']['mediaright'] = 'تصویر را با راست همتراز کن.'; +$lang['js']['mediacenter'] = 'تصویر را با وسط همتراز کن.'; +$lang['js']['medianoalign'] = 'همتراز نکن.'; +$lang['js']['nosmblinks'] = 'پیوند به Windows share فقط در اینترنتاکسپلورر قابل استفاده است. +شما میتوانید پیوندها رو کپی کنید.'; +$lang['js']['linkwiz'] = 'ویزارد پیوند'; +$lang['js']['linkto'] = 'پیوند به:'; +$lang['js']['del_confirm'] = 'واقعن تصمیم به حذف این موارد دارید؟'; +$lang['js']['mu_btn'] = 'ارسال همزمان چندین فایل '; $lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; $lang['nothingfound'] = 'چیزی پیدا نشد'; $lang['mediaselect'] = 'فایلها'; @@ -120,15 +148,7 @@ $lang['deletefail'] = '«%s» حذف نمیشود، دسترسی $lang['mediainuse'] = 'فایل «%s» حذف نمیشود، چون هنوز در حال استفاده است.'; $lang['namespaces'] = 'فضاینام'; $lang['mediafiles'] = 'فایلهای موجود در'; -$lang['js']['searchmedia'] = 'جستجو برای فایل'; -$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگهدار'; -$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; -$lang['js']['nosmblinks'] = 'پیوند به Windows share فقط در اینترنتاکسپلورر قابل استفاده است. -شما میتوانید پیوندها رو کپی کنید.'; -$lang['js']['linkwiz'] = 'ویزارد پیوند'; -$lang['js']['linkto'] = 'پیوند به:'; -$lang['js']['del_confirm'] = 'واقعن تصمیم به حذف این موارد دارید؟'; -$lang['js']['mu_btn'] = 'ارسال همزمان چندین فایل '; +$lang['accessdenied'] = 'شما اجازهی مشاهدهی این صفحه را ندارید.'; $lang['mediausage'] = 'برای ارجاع دادن به فایل از نگارش زیر استفاده کنید.'; $lang['mediaview'] = 'مشاهدهی فایل اصلی'; $lang['mediaroot'] = 'ریشه'; @@ -144,6 +164,7 @@ $lang['current'] = 'فعلی'; $lang['yours'] = 'نسخهی شما'; $lang['diff'] = 'تفاوتها را با نگارش کنونی نمایش بده.'; $lang['diff2'] = 'تفاوتها را با نگارش انتخابی نمایش بده.'; +$lang['difflink'] = 'پیوند به صفحهی تفاوتها'; $lang['line'] = 'خط'; $lang['breadcrumb'] = 'ردپا'; $lang['youarehere'] = 'محل شما'; @@ -158,6 +179,7 @@ $lang['noflash'] = 'برای نمایش محتویات <a href="ht $lang['download'] = 'دیافت فایل منقطع گردید'; $lang['mail_newpage'] = 'صفحه اضافه شد:'; $lang['mail_changed'] = 'صفحه تغییر داده شد:'; +$lang['mail_subscribe_list'] = 'صفحات تغییر داده شده در فضاینام'; $lang['mail_new_user'] = 'کاربر جدید:'; $lang['mail_upload'] = 'فایل ارسال شده:'; $lang['qb_bold'] = 'متن پُررنگ'; @@ -200,11 +222,22 @@ $lang['img_copyr'] = 'دارندهی حق تکثیر'; $lang['img_format'] = 'فرمت'; $lang['img_camera'] = 'دوربین'; $lang['img_keywords'] = 'واژههای کلیدی'; -$lang['subscribe_success'] = '%s با موفقیت به عضویت %s درآمد'; -$lang['subscribe_error'] = 'عضویت %s در %s با مشکل مواجه شد'; -$lang['subscribe_noaddress'] = 'هیچ آدرس ایمیلی ثبت نکردهاید و نمیتوانید عضو شوید'; -$lang['unsubscribe_success'] = '%s با موفقیت از عضویت %s خارج شد'; -$lang['unsubscribe_error'] = 'خارج کردن %s از عضویت %s با مشکل مواجه شد.'; +$lang['subscr_subscribe_success'] = '%s به لیست آبونه %s افزوده شد'; +$lang['subscr_subscribe_error'] = 'اشکال در افزودن %s به لیست آبونه %s'; +$lang['subscr_subscribe_noaddress'] = 'هیچ آدرسی برای این عضویت اضافه نشده است، شما نمیتوانید به لیست آبونه اضافه شوید'; +$lang['subscr_unsubscribe_success'] = '%s از لیست آبونه %s پاک شد'; +$lang['subscr_unsubscribe_error'] = 'اشکال در پاک کردن %s از لیست آبونه %s'; +$lang['subscr_already_subscribed'] = '%s پیشتر در %s آبونه شده است'; +$lang['subscr_not_subscribed'] = '%s در %s آبونه نشده است'; +$lang['subscr_m_not_subscribed'] = 'شما در این صفحه یا فضاینام آبونه نشدهاید'; +$lang['subscr_m_new_header'] = 'افزودن آبونه'; +$lang['subscr_m_current_header'] = 'آبونههای کنونی'; +$lang['subscr_m_unsubscribe'] = 'لغو آبونه'; +$lang['subscr_m_subscribe'] = 'آبونه شدن'; +$lang['subscr_m_receive'] = 'دریافت کردن'; +$lang['subscr_style_every'] = 'ارسال راینامه در تمامی تغییرات'; +$lang['subscr_style_digest'] = 'ارسال ایمیلهای فشرده برای تغییرات هر صفحه'; +$lang['subscr_style_list'] = 'لیست صفحات تغییر داده شده از آخرین راینامه'; $lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود میباشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.'; $lang['i_chooselang'] = 'انتخاب زبان'; @@ -228,6 +261,7 @@ $lang['i_pol0'] = 'ویکی باز (همه میتوانند ب $lang['i_pol1'] = 'ویکی عمومی (همه میتوانند بخوانند، کاربران ثبت شده میتوانند بنویسند و فایل ارسال کنند)'; $lang['i_pol2'] = 'ویکی بسته (فقط کاربران ثبت شده میتوانند بخوانند، بنویسند و فایل ارسال کنند)'; $lang['i_retry'] = 'تلاش مجدد'; +$lang['i_license'] = 'لطفن مجوز این محتوا را وارد کنید:'; $lang['mu_intro'] = 'شما میتوانید چندین فایل را با یک حرکت ارسال کنید. روی دکمهی «بچر» کلیک کنید و فایلها را به صف ارسال اضافه نمایید. سپس دکمهی «ارسال» را فشار دهید. '; $lang['mu_gridname'] = 'نام فایل'; $lang['mu_gridsize'] = 'اندازه'; @@ -251,3 +285,4 @@ $lang['days'] = '%d روز پیش'; $lang['hours'] = '%d ساعت پیش'; $lang['minutes'] = '%d دقیقهی پیش'; $lang['seconds'] = '%d ثانیهی پیش'; +$lang['wordblock'] = 'تغییرات شما به دلیل داشتن محتوای مشکوک (مثل اسپم) ذخیره نشد.'; diff --git a/inc/lang/fa/subscr_digest.txt b/inc/lang/fa/subscr_digest.txt new file mode 100644 index 000000000..0ba4c898d --- /dev/null +++ b/inc/lang/fa/subscr_digest.txt @@ -0,0 +1,16 @@ +سلام، + +صفحهی @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهیهای این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحهی @SUBSCRIBE@ را مرور کنید و عضویت خود را از صفحه یا فضاینام پاک کنید. + +-- +این راینامه با نرمافزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است.
\ No newline at end of file diff --git a/inc/lang/fa/subscr_form.txt b/inc/lang/fa/subscr_form.txt new file mode 100644 index 000000000..39764d0a2 --- /dev/null +++ b/inc/lang/fa/subscr_form.txt @@ -0,0 +1,3 @@ +====== مدیریت عضویتها ====== + +این صفحه به شما امکان مدیریت عضویتتان را برای این صفحه یا فضاینام میدهد.
\ No newline at end of file diff --git a/inc/lang/fa/subscr_list.txt b/inc/lang/fa/subscr_list.txt new file mode 100644 index 000000000..92ac92b74 --- /dev/null +++ b/inc/lang/fa/subscr_list.txt @@ -0,0 +1,16 @@ +سلام، + +صفحههای فضاینام @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهیهای این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحهی @SUBSCRIBE@ را مرور کنید و عضویت خود را از صفحه یا فضاینام پاک کنید. + +-- +این راینامه با نرمافزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است.
\ No newline at end of file diff --git a/inc/lang/fa/subscr_single.txt b/inc/lang/fa/subscr_single.txt new file mode 100644 index 000000000..a0d2a5d49 --- /dev/null +++ b/inc/lang/fa/subscr_single.txt @@ -0,0 +1,19 @@ +سلام، + +صفحهی @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +تاریخ : @DATE@ +نامکاربری: @USER@ +خلاصه ویرایش: @SUMMARY@ +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهیهای این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحهی @NEWPAGE@ را مرور کنید و عضویت خود را از صفحه یا فضاینام پاک کنید. + +-- +این راینامه با نرمافزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است.
\ No newline at end of file diff --git a/inc/lang/fa/wordblock.txt b/inc/lang/fa/wordblock.txt deleted file mode 100644 index a78c86f06..000000000 --- a/inc/lang/fa/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== اسپم مسدود شد ====== - -این تغییرات ذخیره **نمیشود**، چون چند کلمه از کلمههای مسدود شده در آن یافت شده است. اگر فکر میکنید که نباید این اتفاق میافتاد با مدیر سیستم تماس بگیرید.
\ No newline at end of file diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 6ef19ee8e..e91a1d497 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -41,9 +41,6 @@ $lang['btn_back'] = 'Takaisin'; $lang['btn_backlink'] = 'Paluulinkit'; $lang['btn_backtomedia'] = 'Takaisin mediatiedostojen valintaan'; $lang['btn_subscribe'] = 'Tilaa muutokset'; -$lang['btn_unsubscribe'] = 'Lopeta muutosten tilaus'; -$lang['btn_subscribens'] = 'Tilaa nimiavaruuden muutokset'; -$lang['btn_unsubscribens'] = 'Lopeta nimiavaruuden muutosten tilaus'; $lang['btn_profile'] = 'Päivitä profiili'; $lang['btn_reset'] = 'Tyhjennä'; $lang['btn_resendpwd'] = 'Lähetä uusi salasana'; @@ -97,7 +94,38 @@ $lang['txt_overwrt'] = 'Ylikirjoita olemassa oleva'; $lang['lockedby'] = 'Tällä hetkellä tiedoston on lukinnut'; $lang['lockexpire'] = 'Lukitus päättyy'; $lang['willexpire'] = 'Lukituksesi tämän sivun muokkaukseen päättyy minuutin kuluttua.\nRistiriitojen välttämiseksi paina esikatselu-nappia nollataksesi lukitusajan.'; -$lang['notsavedyet'] = 'Dokumentissa on tallentamattomia muutoksia, jotka häviävät.\n Haluatko varmasti jatkaa?'; +$lang['js']['notsavedyet'] = 'Dokumentissa on tallentamattomia muutoksia, jotka häviävät. + Haluatko varmasti jatkaa?'; +$lang['js']['searchmedia'] = 'Etsi tiedostoja'; +$lang['js']['keepopen'] = 'Pidä valinnan ikkuna avoinna.'; +$lang['js']['hidedetails'] = 'Piilota yksityiskohdat'; +$lang['js']['mediatitle'] = 'Linkkien asetukset'; +$lang['js']['mediadisplay'] = 'Linkin tyyppi'; +$lang['js']['mediaalign'] = 'Tasaus'; +$lang['js']['mediasize'] = 'Kuvan koko'; +$lang['js']['mediatarget'] = 'Linkin kohde'; +$lang['js']['mediaclose'] = 'Sulje'; +$lang['js']['mediainsert'] = 'Liitä'; +$lang['js']['mediadisplayimg'] = 'Näytä kuva.'; +$lang['js']['mediadisplaylnk'] = 'Näytä vain linkki'; +$lang['js']['mediasmall'] = 'Pieni versio'; +$lang['js']['mediamedium'] = 'Keskikokoinen versio'; +$lang['js']['medialarge'] = 'Iso versio'; +$lang['js']['mediaoriginal'] = 'Alkuperäinen versio'; +$lang['js']['medialnk'] = 'Linkki tietosivuun'; +$lang['js']['mediadirect'] = 'Suora linkki alkuperäiseen'; +$lang['js']['medianolnk'] = 'Ei linkkiä'; +$lang['js']['medianolink'] = 'Älä linkitä kuvaa'; +$lang['js']['medialeft'] = 'Tasaa kuva vasemmalle.'; +$lang['js']['mediaright'] = 'Tasaa kuva oikealle.'; +$lang['js']['mediacenter'] = 'Tasaa kuva keskelle.'; +$lang['js']['medianoalign'] = 'Älä tasaa.'; +$lang['js']['nosmblinks'] = 'Linkit Windows-jakoihin toimivat vain Microsoft Internet Explorerilla. +Voit silti kopioida ja liittää linkin.'; +$lang['js']['linkwiz'] = 'Linkkivelho'; +$lang['js']['linkto'] = 'Linkki kohteeseen:'; +$lang['js']['del_confirm'] = 'Haluatko todella poistaa valitut kohteet?'; +$lang['js']['mu_btn'] = 'Lähetä useampia tiedostoja kerralla'; $lang['rssfailed'] = 'Virhe tapahtui noudettaessa tätä syötettä: '; $lang['nothingfound'] = 'Mitään ei löytynyt.'; $lang['mediaselect'] = 'Mediatiedoston valinta'; @@ -115,15 +143,7 @@ $lang['deletefail'] = 'Kohdetta "%s" poistaminen ei onnistunut - tark $lang['mediainuse'] = 'Tiedostoa "%s" ei ole poistettu - se on vielä käytössä.'; $lang['namespaces'] = 'Nimiavaruudet'; $lang['mediafiles'] = 'Tarjolla olevat tiedostot'; -$lang['js']['searchmedia'] = 'Etsi tiedostoja'; -$lang['js']['keepopen'] = 'Pidä valinnan ikkuna avoinna.'; -$lang['js']['hidedetails'] = 'Piilota yksityiskohdat'; -$lang['js']['nosmblinks'] = 'Linkit Windows-jakoihin toimivat vain Microsoft Internet Explorerilla. -Voit silti kopioida ja liittää linkin.'; -$lang['js']['linkwiz'] = 'Linkkivelho'; -$lang['js']['linkto'] = 'Linkki kohteeseen:'; -$lang['js']['del_confirm'] = 'Haluatko todella poistaa valitut kohteet?'; -$lang['js']['mu_btn'] = 'Lähetä useampia tiedostoja kerralla'; +$lang['accessdenied'] = 'Sinulla ei ole oikeuksia tämän sivun katsomiseen'; $lang['mediausage'] = 'Käytä seuraavaa merkintätapaa viittausta tehtäessä:'; $lang['mediaview'] = 'Katsele alkuperäistä tiedostoa'; $lang['mediaroot'] = 'root'; @@ -139,6 +159,7 @@ $lang['current'] = 'nykyinen'; $lang['yours'] = 'Sinun versiosi'; $lang['diff'] = 'Näytä eroavaisuudet nykyiseen versioon'; $lang['diff2'] = 'Näytä eroavaisuudet valittuun versioon'; +$lang['difflink'] = 'Linkki vertailunäkymään'; $lang['line'] = 'Rivi'; $lang['breadcrumb'] = 'Jäljet'; $lang['youarehere'] = 'Olet täällä'; @@ -153,6 +174,7 @@ $lang['noflash'] = 'Tarvitset <a href="http://www.adobe.com/produc $lang['download'] = 'Lataa palanen'; $lang['mail_newpage'] = 'sivu lisätty:'; $lang['mail_changed'] = 'sivu muutettu:'; +$lang['mail_subscribe_list'] = 'muuttuneet sivut nimiavaruudessa:'; $lang['mail_new_user'] = 'uusi käyttäjä:'; $lang['mail_upload'] = 'tiedosto lähetetty:'; $lang['qb_bold'] = 'Lihavoitu teksti'; @@ -195,11 +217,22 @@ $lang['img_copyr'] = 'Tekijänoikeus'; $lang['img_format'] = 'Formaatti'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Avainsanat'; -$lang['subscribe_success'] = '%s lisättiin käyttäjän %s seurattavien listaan'; -$lang['subscribe_error'] = 'Lisättäessä %s käyttäjän %s seurattavien listaan tapahtui virhe'; -$lang['subscribe_noaddress'] = 'Käyttäjänimelle ei löydy osoitetta. Seurattavien listaan lisääminen ei onnistu.'; -$lang['unsubscribe_success'] = '%s poistettiin käyttäjän %s seurattavien listasta'; -$lang['unsubscribe_error'] = 'Poistettaessa %s käyttäjän %s seurattavien listasta tapahtui virhe'; +$lang['subscr_subscribe_success'] = '%s lisätty %s tilauslistalle'; +$lang['subscr_subscribe_error'] = 'Virhe lisättäessä %s tilauslistalle %s'; +$lang['subscr_subscribe_noaddress'] = 'Login tiedoissasi ei ole sähköpostiosoitetta. Sinua ei voi lisätä tilaukseen'; +$lang['subscr_unsubscribe_success'] = '% poistettu tilauslistalta %s'; +$lang['subscr_unsubscribe_error'] = 'Virhe tapahtui poistaessa %s tilauslistalta %s'; +$lang['subscr_already_subscribed'] = '%s on jo tilannut %s'; +$lang['subscr_not_subscribed'] = '%s ei ole tilannut %s'; +$lang['subscr_m_not_subscribed'] = 'Et ole tilannut sivua tai nimiavaruutta'; +$lang['subscr_m_new_header'] = 'Lisää tilaus'; +$lang['subscr_m_current_header'] = 'Voimassaolevat tilaukset'; +$lang['subscr_m_unsubscribe'] = 'Poista tilaus'; +$lang['subscr_m_subscribe'] = 'Tilaa'; +$lang['subscr_m_receive'] = 'Vastaanota'; +$lang['subscr_style_every'] = 'Sähköposti joka muutoksesta'; +$lang['subscr_style_digest'] = 'yhteenveto sähköposti joka sivusta'; +$lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen'; $lang['authmodfailed'] = 'Käyttäjien autentikoinnin asetukset ovat virheelliset. Ilmoita asiasta wikin ylläpitäjälle.'; $lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.'; $lang['i_chooselang'] = 'Valitse kieli'; @@ -223,6 +256,7 @@ $lang['i_pol0'] = 'Avoin Wiki (luku, kirjoitus, tiedostojen lähe $lang['i_pol1'] = 'Julkinen Wiki (luku kaikilla, kirjoitus ja tiedostojen lähetys rekisteröidyillä käyttäjillä)'; $lang['i_pol2'] = 'Suljettu Wiki (luku, kirjoitus ja tiedostojen lähetys vain rekisteröityneillä käyttäjillä)'; $lang['i_retry'] = 'Yritä uudelleen'; +$lang['i_license'] = 'Valitse lisenssi, jonka alle haluat sisältösi laittaa:'; $lang['mu_intro'] = 'Täällä voit lähettää useampia tiedostoja kerralla. Klikkaa Selaa-nappia lisätäksesi ne jonoon. Paina lähetä, kun olet valmis.'; $lang['mu_gridname'] = 'Tiedoston nimi'; $lang['mu_gridsize'] = 'Koko'; @@ -246,3 +280,4 @@ $lang['days'] = '%d päivää sitten'; $lang['hours'] = '%d tuntia sitten'; $lang['minutes'] = '%d minuuttia sitten'; $lang['seconds'] = '% sekuntia sitten'; +$lang['wordblock'] = 'Muutostasi ei talletettu, koska se sisältää estettyä tekstiä (spam).'; diff --git a/inc/lang/fi/mailtext.txt b/inc/lang/fi/mailtext.txt index 0a953cb87..1808ebc38 100644 --- a/inc/lang/fi/mailtext.txt +++ b/inc/lang/fi/mailtext.txt @@ -13,5 +13,5 @@ Käyttäjä : @USER@ -- -Tämän postin generoi DokuWiki -@DOKUWIKIURL@ +Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fi/password.txt b/inc/lang/fi/password.txt index 3c83d1efd..51e16046c 100644 --- a/inc/lang/fi/password.txt +++ b/inc/lang/fi/password.txt @@ -6,5 +6,5 @@ Käyttäjätunnus : @LOGIN@ Salasana : @PASSWORD@ -- -Tämän postin generoi DokuWiki -@DOKUWIKIURL@ +Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fi/pwconfirm.txt b/inc/lang/fi/pwconfirm.txt index d134943f0..e552f5cdc 100644 --- a/inc/lang/fi/pwconfirm.txt +++ b/inc/lang/fi/pwconfirm.txt @@ -9,5 +9,5 @@ Käytä alla olevaa linkkiä vahvistaaksesi, että pyynnön lähettäjä todella @CONFIRM@ -- -Tämän postin generoi DokuWiki +Tämän postin loi DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fi/registermail.txt b/inc/lang/fi/registermail.txt index 78d73f63d..c276873f0 100644 --- a/inc/lang/fi/registermail.txt +++ b/inc/lang/fi/registermail.txt @@ -10,5 +10,5 @@ IP-osoite : @IPADDRESS@ Hostname : @HOSTNAME@ -- -Tämän postin generoi DokuWiki osoitteessa +Tämän postin loi DokuWiki osoitteessa @DOKUWIKIURL@ diff --git a/inc/lang/fi/subscr_digest.txt b/inc/lang/fi/subscr_digest.txt new file mode 100644 index 000000000..466484486 --- /dev/null +++ b/inc/lang/fi/subscr_digest.txt @@ -0,0 +1,20 @@ +Hei! + +Sivu @PAGE@ wikissä @TITLE@ on muuttunut. +Tässä ovat muutokset: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vanha versio: @OLDPAGE@ +Uusi versio: @NEWPAGE@ + +Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa +@DOKUWIKIURL@ , jonka jälkeen katso +@SUBSCRIBE@ +ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. + +-- +Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fi/subscr_form.txt b/inc/lang/fi/subscr_form.txt new file mode 100644 index 000000000..70f2fdeb5 --- /dev/null +++ b/inc/lang/fi/subscr_form.txt @@ -0,0 +1,3 @@ +====== Tilausten hallinta ====== + +Tämä sivu avulla voit hallita silauksiasi nykyiseltä sivulta ja nimiavaruudelta.
\ No newline at end of file diff --git a/inc/lang/fi/subscr_list.txt b/inc/lang/fi/subscr_list.txt new file mode 100644 index 000000000..47ee1b155 --- /dev/null +++ b/inc/lang/fi/subscr_list.txt @@ -0,0 +1,18 @@ +Hei! + +Sivut nimiavaruudessa @PAGE@ wikissä @TITLE@ ovat muuttuneet. +Tässä ovat muuttuneet sivut: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa +@DOKUWIKIURL@ , jonka jälkeen katso +@SUBSCRIBE@ +ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. + + +-- +Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fi/subscr_single.txt b/inc/lang/fi/subscr_single.txt new file mode 100644 index 000000000..0fd83e266 --- /dev/null +++ b/inc/lang/fi/subscr_single.txt @@ -0,0 +1,23 @@ +Hei! + +Sivu @PAGE@ wikissä @TITLE@ on muuttunut. +Tässä ovat muutokset: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Päivä : @DATE@ +Käyttäjä : @USER@ +Yhteenveto: @SUMMARY@ +Vanha versio: @OLDPAGE@ +Uusi versio: @NEWPAGE@ + +Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa +@DOKUWIKIURL@ , jonka jälkeen katso +@SUBSCRIBE@ +ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista. + +-- +Tämän postin loi DokuWiki osoitteessa +@DOKUWIKIURL@ diff --git a/inc/lang/fi/uploadmail.txt b/inc/lang/fi/uploadmail.txt index 7a5ea49ed..0c116a78b 100644 --- a/inc/lang/fi/uploadmail.txt +++ b/inc/lang/fi/uploadmail.txt @@ -10,5 +10,5 @@ MIME Type : @MIME@ Käyttäjä : @USER@ -- -Tämän postin generoi DokuWiki osoitteessa +Tämän postin loi DokuWiki osoitteessa @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fi/wordblock.txt b/inc/lang/fi/wordblock.txt deleted file mode 100644 index 4e416c68c..000000000 --- a/inc/lang/fi/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Roskaposti torjuttu ====== - -Muutoksiasi **ei** talletettu, koska ne pitivät sisällään yhden tai useampia epäkelpoja sanoja. Jos yritit spämmätä Wikiä, häpeä! Jos pidät tätä virheenä ota yhteyttä wikin ylläpitäjään. diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index a8c241fc1..74d7fff58 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -81,7 +81,7 @@ $lang['lockedby'] = 'Fyribils læst av'; $lang['lockexpire'] = 'Lásið ferð úr gildi kl.'; $lang['willexpire'] = 'Títt lás á hetta skjalið ferð úr gildi um ein minnutt.\nTrýst á '.$lang['btn_preview'].'-knappin fyri at sleppa undan trupulleikum.'; -$lang['notsavedyet'] = 'Tað eru gjørdar broytingar í skjalinum, um tú haldur fram vilja broytingar fara fyri skeytið.\nYnskir tú at halda fram?'; +$lang['js']['notsavedyet'] = "Tað eru gjørdar broytingar í skjalinum, um tú haldur fram vilja broytingar fara fyri skeytið.\nYnskir tú at halda fram?"; $lang['rssfailed'] = 'Eitt brek koma fyri tá roynt var at fáa: '; $lang['nothingfound']= 'Leiting gav onki úrslit.'; diff --git a/inc/lang/fo/wordblock.txt b/inc/lang/fo/wordblock.txt deleted file mode 100644 index f3a9b9dcd..000000000 --- a/inc/lang/fo/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM banning ====== - -Tínar broytingar vóru **ikki** goymdar av tí at tær innihalda eitt ella fleiri óynskt orð. Fá vinarliga samband við admin, um tú heldur at hetta er eitt brek. diff --git a/inc/lang/fr/conflict.txt b/inc/lang/fr/conflict.txt index 0cb0a67fb..8f527ee21 100644 --- a/inc/lang/fr/conflict.txt +++ b/inc/lang/fr/conflict.txt @@ -1,6 +1,6 @@ ====== Une version plus récente existe déjà ====== -Une version plus récente du document que vous avez édité existe déjà. Cela se produit lorsqu'un autre utilisateur enregistre le document pendant que vous l'éditez. +Une version plus récente du document que vous avez modifié existe déjà. Cela se produit lorsqu'un autre utilisateur enregistre le document pendant que vous le modifiez. -Examinez attentivement les différences ci-dessous, et décidez quelle version conserver. Si vous choisissez ''Enregistrer'', votre version sera enregistrée. Cliquez sur ''Annuler'' pour conserver la version actuelle. +Examinez attentivement les différences ci-dessous et décidez quelle version conserver. Si vous choisissez « Enregistrer », votre version sera enregistrée. Cliquez sur « Annuler » pour conserver la version actuelle. diff --git a/inc/lang/fr/draft.txt b/inc/lang/fr/draft.txt index fbc1609a8..a48554298 100644 --- a/inc/lang/fr/draft.txt +++ b/inc/lang/fr/draft.txt @@ -1,6 +1,6 @@ ====== Un fichier brouillon a été trouvé ====== -La dernière édition de cette page ne s'est pas terminée proprement. Dokuwiki a enregistré automatiquement un brouillon de votre travail que vous pouvez utiliser pour votre édition. Ci-dessous figurent les données enregistrées lors de votre dernière session. +La dernière modification de cette page ne s'est pas terminée proprement. Dokuwiki a enregistré automatiquement un brouillon de votre travail que vous pouvez utiliser pour votre modification. Ci-dessous figurent les données enregistrées lors de votre dernière session. -À vous de décider si vous souhaitez //récupérer// votre session d'édition passée, //supprimer// le brouillon enregistré automatiquement ou //annuler// le processus d'édition. +À vous de décider si vous souhaitez //récupérer// votre session de modification passée, //supprimer// le brouillon enregistré automatiquement ou //annuler// le processus d'édition. diff --git a/inc/lang/fr/edit.txt b/inc/lang/fr/edit.txt index 71b0a7c1b..e30f1b78b 100644 --- a/inc/lang/fr/edit.txt +++ b/inc/lang/fr/edit.txt @@ -1,2 +1,2 @@ -Modifiez cette page et cliquez sur ''Enregistrer''. Voyez le [[wiki:syntax|Guide de la mise en page]] pour une aide à propos du format. Veuillez ne modifier cette page que si vous pouvez l'**améliorer**. Si vous souhaitez faire des tests, faites vos premiers pas dans le [[playground:playground|bac à sable]]. +Modifiez cette page et cliquez sur « Enregistrer ». Voyez le [[:wiki:syntax|guide de la mise en page]] pour une aide à propos du formatage. Veuillez ne modifier cette page que si vous pouvez l'**améliorer**. Si vous souhaitez faire des tests, faites vos premiers pas dans le [[:playground:playground|bac à sable]]. diff --git a/inc/lang/fr/editrev.txt b/inc/lang/fr/editrev.txt index 1a7e0f434..d3fa36682 100644 --- a/inc/lang/fr/editrev.txt +++ b/inc/lang/fr/editrev.txt @@ -1,2 +1,2 @@ -**Vous affichez une ancienne révision du document !** Si vous l'enregistrez vous créerez une nouvelle version avec ce contenu. +**Vous affichez une ancienne révision du document !** Si vous l'enregistrez, vous créerez une nouvelle version avec ce contenu. ---- diff --git a/inc/lang/fr/install.html b/inc/lang/fr/install.html index a2c29d022..b057becfe 100644 --- a/inc/lang/fr/install.html +++ b/inc/lang/fr/install.html @@ -1,19 +1,13 @@ <p>Cette page vous assiste dans la première installation et la configuration de <a href="http://dokuwiki.org">DokuWiki</a>. -Pour plus d'information sur cet installeur reportez vous à sa +Pour plus d'information sur cet installeur, reportez-vous à sa <a href="http://dokuwiki.org/installer">page de documentation</a>.</p> -<p>DokuWiki utilise des fichiers ordinaires pour stocker les pages du +<p>DokuWiki utilise des fichiers textes ordinaires pour stocker les pages du wiki et les autres informations associées à ces pages -(tel que images, index de recherche, anciennes révisions, etc). Pour fonctionner correctement DokuWiki <strong>doit</strong> avoir accès en écriture aux différents répertoires qui contiennent ces fichiers. L'installeur n'est pas capable de modifier les permissions sur les répertoires. Ceci doit être effectué directement sur la ligne de commande de votre shell, ou, si vous êtes hébergé, via FTP ou votre panneau de contrôle (tel que cPanel).</p> +(tel que images, index de recherche, anciennes révisions, etc.). Pour fonctionner correctement, DokuWiki <strong>doit</strong> avoir accès en écriture aux différents répertoires qui contiennent ces fichiers. L'installeur n'est pas capable de modifier les permissions sur les répertoires. Ceci doit être effectué directement sur la ligne de commande de votre shell, ou, si vous êtes hébergé, <em>via</em> FTP ou votre panneau de contrôle (tel que cPanel).</p> -<p>Cet installeur va paramétrer votre configuration de DokuWiki pour des <acronym title="access control list">ACL</acronym>, qui permettront l'accès à un login administrateur et l'accès au menu d'administration de DokuWiki pour l'ajout de modules externes, la gestion d'utilisateurs, la gestion de l'accès aux pages du wiki et les changements de paramètres de configuration. Il n'est pas nécessaire au fonctionnement de DokuWiki, néanmoins il facilite l'administration de DokuWiki.</p> +<p>Cet installeur va paramétrer votre configuration de DokuWiki pour des <acronym title="Access Control List - Liste de contrôle d'accès">ACL</acronym>, qui permettront l'accès à un identifiant administrateur et l'accès au menu d'administration de DokuWiki pour l'ajout de modules externes (greffons), la gestion d'utilisateurs, la gestion de l'accès aux pages du wiki et les modifications des paramètres de configuration. Il n'est pas nécessaire au fonctionnement de DokuWiki, néanmoins il facilite l'administration de DokuWiki.</p> -<p>Les utilisateurs expérimentés ou ceux -nécessitant des paramétrages particuliers devraient se -reporter aux liens suivants pour les détails concernant les <a -href="http://dokuwiki.org/install">instructions -d'installation</a> et les <a -href="http://dokuwiki.org/config">paramètres de -configuration</a>.</p> +<p>Les utilisateurs expérimentés ou ceux nécessitant des paramétrages particuliers devraient se reporter aux liens suivants pour les détails concernant les <a href="http://dokuwiki.org/install">instructions d'installation</a> et les <a href="http://dokuwiki.org/config">paramètres de configuration</a>.</p> diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 6a0f408b8..76e1271bd 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -18,6 +18,9 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -25,8 +28,8 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = '”'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; -$lang['btn_edit'] = 'Éditer cette page'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Modifier cette page'; $lang['btn_source'] = 'Afficher le texte source'; $lang['btn_show'] = 'Afficher la page'; $lang['btn_create'] = 'Créer cette page'; @@ -34,32 +37,29 @@ $lang['btn_search'] = 'Rechercher'; $lang['btn_save'] = 'Enregistrer'; $lang['btn_preview'] = 'Aperçu'; $lang['btn_top'] = 'Haut de page'; -$lang['btn_newer'] = '<< plus récent'; -$lang['btn_older'] = 'moins récent >>'; +$lang['btn_newer'] = '<< Plus récent'; +$lang['btn_older'] = 'Moins récent >>'; $lang['btn_revs'] = 'Anciennes révisions'; $lang['btn_recent'] = 'Derniers changements'; $lang['btn_upload'] = 'Envoyer'; $lang['btn_cancel'] = 'Annuler'; $lang['btn_index'] = 'Index'; -$lang['btn_secedit'] = 'Éditer'; +$lang['btn_secedit'] = 'Modifier'; $lang['btn_login'] = 'Connexion'; $lang['btn_logout'] = 'Déconnexion'; -$lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Rafraîchir'; +$lang['btn_admin'] = 'Administrer'; +$lang['btn_update'] = 'Mettre à jour'; $lang['btn_delete'] = 'Effacer'; $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens vers cette page'; $lang['btn_backtomedia'] = 'Retour à la sélection du fichier média'; $lang['btn_subscribe'] = 'S\'abonner à la page'; -$lang['btn_unsubscribe'] = 'Se désabonner de la page'; -$lang['btn_subscribens'] = 'S\'abonner à la catégorie'; -$lang['btn_unsubscribens'] = 'Se désabonner de la catégorie'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; $lang['btn_resendpwd'] = 'Envoyer le mot de passe'; -$lang['btn_draft'] = 'Éditer brouillon'; -$lang['btn_recover'] = 'Récupérer brouillon'; -$lang['btn_draftdel'] = 'Effacer brouillon'; +$lang['btn_draft'] = 'Modifier le brouillon'; +$lang['btn_recover'] = 'Récupérer le brouillon'; +$lang['btn_draftdel'] = 'Effacer le brouillon'; $lang['btn_revert'] = 'Restaurer'; $lang['loggedinas'] = 'Connecté en tant que '; $lang['user'] = 'Utilisateur'; @@ -73,16 +73,16 @@ $lang['email'] = 'Adresse de courriel'; $lang['register'] = 'S\'enregistrer'; $lang['profile'] = 'Profil utilisateur'; $lang['badlogin'] = 'L\'utilisateur ou le mot de passe est incorrect.'; -$lang['minoredit'] = 'Mineur'; +$lang['minoredit'] = 'Modification mineure'; $lang['draftdate'] = 'Brouillon auto-enregistré le'; $lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.'; $lang['regmissing'] = 'Désolé, vous devez remplir tous les champs.'; -$lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris'; +$lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; $lang['regsuccess'] = 'L\'utilisateur a été créé. Le mot de passe a été expédié par courriel.'; $lang['regsuccess2'] = 'L\'utilisateur a été créé.'; $lang['regmailfail'] = 'Il semble y avoir un problème à l\'envoi du courriel. Contactez l\'administrateur.'; -$lang['regbadmail'] = 'L\'adresse de courriel semble incorrecte - si vous pensez que c\'est une erreur, contactez l\'administrateur.'; -$lang['regbadpass'] = 'Les deux mots de passe fournis sont différents, recommencez SVP.'; +$lang['regbadmail'] = 'L\'adresse de courriel semble incorrecte. Si vous pensez que c\'est une erreur, contactez l\'administrateur.'; +$lang['regbadpass'] = 'Les deux mots de passe fournis sont différents, veuillez recommencez.'; $lang['regpwmail'] = 'Votre mot de passe DokuWiki'; $lang['reghere'] = 'Vous n\'avez pas encore de compte ? Enregistrez-vous ici '; $lang['profna'] = 'Ce wiki ne permet pas de modifier les profils'; @@ -94,61 +94,85 @@ $lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de pass $lang['resendpwd'] = 'Renvoyer le mot de passe de'; $lang['resendpwdmissing'] = 'Désolé, vous devez remplir tous les champs.'; $lang['resendpwdnouser'] = 'Désolé, cet utilisateur est introuvable dans notre base.'; -$lang['resendpwdbadauth'] = 'Désolé, ce code d\'authentification est invalide. Assurez vous d\'avoir utilisé le lien de confirmation.'; +$lang['resendpwdbadauth'] = 'Désolé, ce code d\'authentification est invalide. Assurez-vous d\'avoir utilisé le lien de confirmation.'; $lang['resendpwdconfirm'] = 'Un lien de confirmation vous a été envoyé par courriel.'; $lang['resendpwdsuccess'] = 'Votre nouveau mot de passe vous a été expédié par courriel.'; -$lang['license'] = 'Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:'; -$lang['licenseok'] = 'Note : En éditant cette page vous acceptez que le contenu soit placé sous les termes de la licence suivante :'; -$lang['searchmedia'] = 'Chercher le nom de fichier :'; +$lang['license'] = 'Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :'; +$lang['licenseok'] = 'Note : En modifiant cette page, vous acceptez que le contenu soit placé sous les termes de la licence suivante :'; +$lang['searchmedia'] = 'Chercher le nom de fichier :'; $lang['searchmedia_in'] = 'Chercher dans %s'; $lang['txt_upload'] = 'Sélectionnez un fichier à envoyer '; -$lang['txt_filename'] = 'Donnez un "wikiname" (optionnel) '; +$lang['txt_filename'] = 'Donnez un « wikiname » (optionnel) '; $lang['txt_overwrt'] = 'Écraser le fichier cible'; $lang['lockedby'] = 'Actuellement bloqué par'; $lang['lockexpire'] = 'Le blocage expire à'; -$lang['willexpire'] = 'Votre blocage pour modifier cette page expire dans une minute.\nPour éviter les conflits, utiliser le bouton Aperçu pour réinitialiser le minuteur.'; -$lang['notsavedyet'] = 'Les changements non enregistrés seront perdus.\nVoulez-vous vraiment continuer ?'; -$lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; -$lang['nothingfound'] = 'Pas de réponse.'; -$lang['mediaselect'] = 'Sélection de fichier'; -$lang['fileupload'] = 'Envoi de fichier'; -$lang['uploadsucc'] = 'Envoi réussi'; -$lang['uploadfail'] = 'L\'envoi n\'a pas réussi. Les permissions sont-elles correctes ?'; -$lang['uploadwrong'] = 'Envoi refusé. Cette extension de fichier est interdite !'; -$lang['uploadexist'] = 'Le fichier existe. Envoi avorté.'; -$lang['uploadbadcontent'] = 'Le contenu envoyé ne correspond pas à l\'extension du fichier %s.'; -$lang['uploadspam'] = 'L\'envoi a été bloqué par la liste noire antispam.'; -$lang['uploadxss'] = 'L\'envoi a été bloqué car son contenu est peut-être malveillant.'; -$lang['uploadsize'] = 'Le fichier envoyé était trop gros. (max. %s)'; -$lang['deletesucc'] = 'Le fichier "%s" a été effacé.'; -$lang['deletefail'] = 'Le fichier "%s" n\'a pu être effacé - vérifier les permissions.'; -$lang['mediainuse'] = 'Le fichier "%s" n\'a pas été effacé - il est en cours d\'utilisation.'; -$lang['namespaces'] = 'Catégories'; -$lang['mediafiles'] = 'Fichiers disponibles dans'; +$lang['willexpire'] = 'Votre blocage pour modifier cette page expire dans une minute.\nPour éviter les conflits, utiliser le bouton « Aperçu » pour réinitialiser le minuteur.'; +$lang['js']['notsavedyet'] = 'Les modifications non enregistrées seront perdues. +Voulez-vous vraiment continuer ?'; $lang['js']['searchmedia'] = 'Chercher des fichiers'; $lang['js']['keepopen'] = 'Gardez la fenêtre ouverte pendant la sélection'; $lang['js']['hidedetails'] = 'Masquer détails'; +$lang['js']['mediatitle'] = 'Paramètres de lien'; +$lang['js']['mediadisplay'] = 'Type de lien'; +$lang['js']['mediaalign'] = 'Alignement'; +$lang['js']['mediasize'] = 'Taille d\'image'; +$lang['js']['mediatarget'] = 'Cible du lien'; +$lang['js']['mediaclose'] = 'Fermer'; +$lang['js']['mediainsert'] = 'Insérer'; +$lang['js']['mediadisplayimg'] = 'Afficher l\'image.'; +$lang['js']['mediadisplaylnk'] = 'N\'afficher que le lien.'; +$lang['js']['mediasmall'] = 'Petite version'; +$lang['js']['mediamedium'] = 'Version moyenne'; +$lang['js']['medialarge'] = 'Grande version'; +$lang['js']['mediaoriginal'] = 'Version originale'; +$lang['js']['medialnk'] = 'Lien vers la page de détail'; +$lang['js']['mediadirect'] = 'Lien direct vers l\'original'; +$lang['js']['medianolnk'] = 'Aucun lien'; +$lang['js']['medianolink'] = 'Ne pas lier l\'image'; +$lang['js']['medialeft'] = 'Aligner l\'image sur la gauche.'; +$lang['js']['mediaright'] = 'Aligner l\'image sur la droite.'; +$lang['js']['mediacenter'] = 'Centrer l\'image'; +$lang['js']['medianoalign'] = 'Ne pas aligner.'; $lang['js']['nosmblinks'] = 'Les liens vers les partages Windows ne fonctionnent qu\'avec Microsoft Internet Explorer. -Vous pouvez toujours faire un copier/coller du lien.'; +Vous pouvez toujours copier puis coller le lien.'; $lang['js']['linkwiz'] = 'Assistant Lien'; -$lang['js']['linkto'] = 'Lien vers:'; +$lang['js']['linkto'] = 'Lien vers :'; $lang['js']['del_confirm'] = 'Effacer cette entrée ?'; $lang['js']['mu_btn'] = 'Envoyer plusieurs fichiers en même temps'; +$lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; +$lang['nothingfound'] = 'Pas de réponse.'; +$lang['mediaselect'] = 'Sélection de fichier'; +$lang['fileupload'] = 'Envoi de fichier'; +$lang['uploadsucc'] = 'Téléversement réussi'; +$lang['uploadfail'] = 'Le téléversement n\'a pas réussi. Les permissions sont-elles correctes ?'; +$lang['uploadwrong'] = 'Téléversement refusé. Cette extension de fichier est interdite !'; +$lang['uploadexist'] = 'Le fichier existe. Téléversement avorté.'; +$lang['uploadbadcontent'] = 'Le contenu envoyé ne correspond pas à l\'extension du fichier %s.'; +$lang['uploadspam'] = 'Le téléversement a été bloqué par la liste noire antispam.'; +$lang['uploadxss'] = 'Le téléversement a été bloqué car son contenu est peut-être malveillant.'; +$lang['uploadsize'] = 'Le fichier téléversé était trop gros. (max. %s)'; +$lang['deletesucc'] = 'Le fichier « %s » a été effacé.'; +$lang['deletefail'] = 'Le fichier « %s » n\'a pu être effacé, vérifier les permissions.'; +$lang['mediainuse'] = 'Le fichier « %s » n\'a pas été effacé, il est en cours d\'utilisation.'; +$lang['namespaces'] = 'Catégories'; +$lang['mediafiles'] = 'Fichiers disponibles dans'; +$lang['accessdenied'] = 'Vous n\'êtes pas autorisé à voir cette page.'; $lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :'; -$lang['mediaview'] = 'Voir fichier original'; -$lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Envoyer un fichier dans la catégorie courante ici. Pour créer des sous-catégories, préfixez le nom du fichier par le nom de la sous-catégorie séparée par un double point.'; +$lang['mediaview'] = 'Afficher le fichier original'; +$lang['mediaroot'] = 'racine'; +$lang['mediaupload'] = 'Téléverser un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez le nom du fichier par le nom de la sous-catégorie séparée par un double-point.'; $lang['mediaextchange'] = 'Extension du fichier changée de .%s en .%s !'; $lang['reference'] = 'Références pour'; $lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est utilisé par les pages suivantes :'; $lang['ref_hidden'] = 'Des références existent dans des pages que vous n\'avez pas la permission de lire'; -$lang['hits'] = 'occurrences trouvées'; +$lang['hits'] = 'Occurrences trouvées'; $lang['quickhits'] = 'Pages trouvées '; $lang['toc'] = 'Table des matières'; -$lang['current'] = 'version actuelle'; +$lang['current'] = 'Version actuelle'; $lang['yours'] = 'Votre version'; $lang['diff'] = 'Différences avec la version actuelle'; $lang['diff2'] = 'Différences entre les versions sélectionnées'; +$lang['difflink'] = 'Lien vers cette vue'; $lang['line'] = 'Ligne'; $lang['breadcrumb'] = 'Piste'; $lang['youarehere'] = 'Vous êtes ici'; @@ -157,42 +181,43 @@ $lang['by'] = 'par'; $lang['deleted'] = 'effacée'; $lang['created'] = 'créée'; $lang['restored'] = 'ancienne révision restaurée'; -$lang['external_edit'] = 'édition externe'; +$lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Résumé'; -$lang['noflash'] = 'L"extension <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> est nécessaire pour afficher ce contenu.'; +$lang['noflash'] = 'Le greffon <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash</a> est nécessaire pour afficher ce contenu.'; $lang['download'] = 'Télécharger un extrait'; -$lang['mail_newpage'] = 'page ajoutée :'; -$lang['mail_changed'] = 'page changée :'; -$lang['mail_new_user'] = 'nouvel utilisateur :'; -$lang['mail_upload'] = 'fichier envoyé :'; -$lang['qb_bold'] = 'Gras'; -$lang['qb_italic'] = 'Italique'; +$lang['mail_newpage'] = 'page ajoutée :'; +$lang['mail_changed'] = 'page modifiée :'; +$lang['mail_subscribe_list'] = 'pages modifiées dans la catégorie :'; +$lang['mail_new_user'] = 'nouvel utilisateur :'; +$lang['mail_upload'] = 'fichier envoyé :'; +$lang['qb_bold'] = 'Emphase forte (gras)'; +$lang['qb_italic'] = 'Emphase (italique)'; $lang['qb_underl'] = 'Souligné'; -$lang['qb_code'] = 'Code'; +$lang['qb_code'] = 'Code « machine à écrire »'; $lang['qb_strike'] = 'Texte barré'; -$lang['qb_h1'] = 'En-tête 1'; -$lang['qb_h2'] = 'En-tête 2'; -$lang['qb_h3'] = 'En-tête 3'; -$lang['qb_h4'] = 'En-tête 4'; -$lang['qb_h5'] = 'En-tête 5'; +$lang['qb_h1'] = 'Titre de niveau 1'; +$lang['qb_h2'] = 'Titre de niveau 2'; +$lang['qb_h3'] = 'Titre de niveau 3'; +$lang['qb_h4'] = 'Titre de niveau 4'; +$lang['qb_h5'] = 'Titre de niveau 5'; $lang['qb_h'] = 'Titre'; $lang['qb_hs'] = 'Sélectionner la ligne de titre'; -$lang['qb_hplus'] = 'Titre supérieur'; -$lang['qb_hminus'] = 'Titre inférieur'; +$lang['qb_hplus'] = 'Titre de niveau supérieur'; +$lang['qb_hminus'] = 'Titre de niveau inférieur'; $lang['qb_hequal'] = 'Titre de même niveau'; $lang['qb_link'] = 'Lien interne'; $lang['qb_extlink'] = 'Lien externe'; $lang['qb_hr'] = 'Ligne horizontale'; $lang['qb_ol'] = 'Liste numérotée'; $lang['qb_ul'] = 'Liste à puce'; -$lang['qb_media'] = 'Ajouter des images et autres fichiers'; +$lang['qb_media'] = 'Ajouter des images ou d\'autres fichiers'; $lang['qb_sig'] = 'Insérer une signature'; -$lang['qb_smileys'] = 'Émoticons'; +$lang['qb_smileys'] = 'Émoticones'; $lang['qb_chars'] = 'Caractères spéciaux'; $lang['upperns'] = 'Aller à la catégorie parente'; $lang['admin_register'] = 'Ajouter un nouvel utilisateur'; -$lang['metaedit'] = 'Éditer les métadonnées'; -$lang['metasaveerr'] = 'Erreur à l\'écriture des métadonnées'; +$lang['metaedit'] = 'Modifier les métadonnées'; +$lang['metasaveerr'] = 'Erreur lors de l\'écriture des métadonnées'; $lang['metasaveok'] = 'Métadonnées enregistrées'; $lang['img_backto'] = 'Retour à'; $lang['img_title'] = 'Titre'; @@ -204,35 +229,47 @@ $lang['img_artist'] = 'Auteur'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Appareil photo'; -$lang['img_keywords'] = 'Mots clef'; -$lang['subscribe_success'] = 'Ajout de %s à la liste d\'abonnés de %s'; -$lang['subscribe_error'] = 'Erreur à l\'ajout de %s à la liste d\'abonnés de %s'; -$lang['subscribe_noaddress'] = 'Aucune adresse associée à votre nom d\'utilisateur, impossible de vous ajouter à la liste d\'abonnés'; -$lang['unsubscribe_success'] = 'Suppression de %s de la liste d\'abonnés de %s'; -$lang['unsubscribe_error'] = 'Erreur à la suppression de %s de la liste d\'abonnés de %s'; +$lang['img_keywords'] = 'Mots-clés'; +$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste de souscription de %s'; +$lang['subscr_subscribe_error'] = 'Erreur en ajoutant %s à la liste de souscription de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre identifiant, vous ne pouvez pas être ajouté à la liste de souscription'; +$lang['subscr_unsubscribe_success'] = '%s a été retiré de la liste de souscription de %s'; +$lang['subscr_unsubscribe_error'] = 'Erreur en retirant %s de la liste de souscription de %s'; +$lang['subscr_already_subscribed'] = '%s est déjà souscrit à %s'; +$lang['subscr_not_subscribed'] = '%s n\'est pas souscrit à %s'; +$lang['subscr_m_not_subscribed'] = 'Vous n\'avez pas souscrit pour l\'instant à la page actuelle ou la catégorie'; +$lang['subscr_m_new_header'] = 'Ajouter une souscription'; +$lang['subscr_m_current_header'] = 'Souscriptions actives'; +$lang['subscr_m_unsubscribe'] = 'Annuler la souscription'; +$lang['subscr_m_subscribe'] = 'Souscrire'; +$lang['subscr_m_receive'] = 'Recevoir'; +$lang['subscr_style_every'] = 'Envoyer un courriel à chaque modification'; +$lang['subscr_style_digest'] = 'Courriel résumant les modifications de chaque page'; +$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel'; $lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'informer l\'administrateur du Wiki.'; $lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'informer l\'administrateur du Wiki.'; $lang['i_chooselang'] = 'Choisissez votre langue'; $lang['i_installer'] = 'Installeur DokuWiki'; -$lang['i_wikiname'] = 'Nom du Wiki'; +$lang['i_wikiname'] = 'Nom du wiki'; $lang['i_enableacl'] = 'Activer les ACL (recommandé)'; $lang['i_superuser'] = 'Super-utilisateur'; $lang['i_problems'] = 'L\'installeur a détecté les problèmes indiqués ci-dessous. Vous ne pouvez poursuivre tant qu\'ils n\'auront pas été corrigés.'; $lang['i_modified'] = 'Pour des raisons de sécurité ce script ne fonctionne qu\'avec une installation neuve et non modifiée de DokuWiki. Vous devriez ré-extraire les fichiers depuis le paquet téléchargé ou consulter les <a href="http://dokuwiki.org/install">instructions d\'installation de DokuWiki</a>'; $lang['i_funcna'] = 'La fonction PHP <code>%s</code> n\'est pas disponible. Peut-être que votre hébergeur l\'a désactivée ?'; -$lang['i_phpver'] = 'Votre version de PHP (<code>%s</code>) est antérieure à la version requise (<code>%s</code>. Vous devez mettre à jour votre installation de PHP.'; +$lang['i_phpver'] = 'Votre version de PHP (%s) est antérieure à la version requise (%s). Vous devez mettre à jour votre installation de PHP.'; $lang['i_permfail'] = '<code>%s</code> n\'est pas accessible en écriture pour DokuWiki. Vous devez corriger les permissions de ce répertoire !'; $lang['i_confexists'] = '<code>%s</code> existe déjà'; $lang['i_writeerr'] = 'Impossible de créer <code>%s</code>. Vous devez vérifier les permissions des répertoires/fichiers et créer le fichier manuellement.'; $lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code> - valeur illégale ou vide'; -$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier install.php. Continuer avec <a href="doku.php">votre nouveau DokuWiki</a>.'; +$lang['i_badval'] = '<code>%s</code> - valeur interdite ou vide'; +$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec <a href="doku.php">votre nouveau DokuWiki</a>.'; $lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php">votre nouveau DokuWiki</a>.'; $lang['i_policy'] = 'Politique d\'ACL initiale'; $lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)'; $lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)'; $lang['i_pol2'] = 'Wiki fermé (lecture, écriture, envoi de fichiers pour les utilisateurs enregistrés uniquement)'; $lang['i_retry'] = 'Réessayer'; +$lang['i_license'] = 'Veuillez choisir la licence sous laquelle placer votre contenu :'; $lang['mu_intro'] = 'Ici vous pouvez envoyer plusieurs fichiers en même temps. Cliquez sur le bouton parcourir pour les ajouter. Cliquez sur envoyer lorsque c\'est prêt. '; $lang['mu_gridname'] = 'Nom du fichier'; $lang['mu_gridsize'] = 'Taille'; @@ -248,7 +285,7 @@ $lang['mu_progress'] = '@PCT@% envoyé'; $lang['mu_filetypes'] = 'Types de fichiers acceptés'; $lang['mu_info'] = 'fichiers envoyés.'; $lang['mu_lasterr'] = 'Dernière erreur : '; -$lang['recent_global'] = 'Vous êtes actuellement en train de regarder les modifications au sein du namespace <b>%s</b>. Vous pouvez aussi <a href="%s">voir les récentes modifications sur tout le wiki</a>.'; +$lang['recent_global'] = 'Vous êtes actuellement en train de regarder les modifications au sein de la catégorie <strong>%s</strong>. Vous pouvez aussi <a href="%s">voir les récentes modifications sur tout le wiki</a>.'; $lang['years'] = 'il y a %d ans'; $lang['months'] = 'il y a %d mois'; $lang['weeks'] = 'il y a %d semaines'; @@ -256,3 +293,4 @@ $lang['days'] = 'il y a %d jours'; $lang['hours'] = 'il y a %d heures'; $lang['minutes'] = 'il y a %d minutes'; $lang['seconds'] = 'il y a %d secondes'; +$lang['wordblock'] = 'Vos modifications n\'ont pas été sauvegardées parce qu\'elles contiennent des textes non autorisé (spam).'; diff --git a/inc/lang/fr/locked.txt b/inc/lang/fr/locked.txt index ac8eb4c4b..82cdd7373 100644 --- a/inc/lang/fr/locked.txt +++ b/inc/lang/fr/locked.txt @@ -1,3 +1,3 @@ ====== Page bloquée ====== -Cette page est actuellement bloquée pour édition par un autre utilisateur. Vous devez attendre que l'autre utilisateur ait terminé ou que le blocage de la page expire. +Cette page est actuellement bloquée pour modification par un autre utilisateur. Vous devez attendre que l'autre utilisateur ait terminé ou que le blocage de la page expire. diff --git a/inc/lang/fr/mailtext.txt b/inc/lang/fr/mailtext.txt index 0b87616b1..add3b2779 100644 --- a/inc/lang/fr/mailtext.txt +++ b/inc/lang/fr/mailtext.txt @@ -1,4 +1,4 @@ -Une page dans votre Wiki a été ajoutée ou modifiée. Voici les +Une page dans votre wiki a été ajoutée ou modifiée. Voici les détails : Date : @DATE@ @@ -7,6 +7,7 @@ Adresse IP : @IPADDRESS@ Nom d'hôte : @HOSTNAME@ Ancienne révision : @OLDPAGE@ Nouvelle révision : @NEWPAGE@ +Différences : @OLDPAGE@&do=diff Résumé : @SUMMARY@ Utilisateur : @USER@ @@ -14,5 +15,5 @@ Utilisateur : @USER@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/newpage.txt b/inc/lang/fr/newpage.txt index 3d834ffd0..0ed2b25af 100644 --- a/inc/lang/fr/newpage.txt +++ b/inc/lang/fr/newpage.txt @@ -1,4 +1,4 @@ ====== Cette page n'existe pas encore ====== -Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos droits sont suffisants, vous pouvez utiliser le bouton ''Créer cette page''. +Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos droits sont suffisants, vous pouvez utiliser le bouton ou le lien « Créer cette page ». diff --git a/inc/lang/fr/norev.txt b/inc/lang/fr/norev.txt index 65984ef9c..3f96b6aff 100644 --- a/inc/lang/fr/norev.txt +++ b/inc/lang/fr/norev.txt @@ -1,4 +1,4 @@ ====== Révision non trouvée ====== -La révision demandée n'existe pas. Utilisez le bouton 'Anciennes révisions' pour une liste des révisions de ce document. +La révision demandée n'existe pas. Utilisez le bouton ou le lien « Anciennes révisions » pour une liste des révisions de ce document. diff --git a/inc/lang/fr/password.txt b/inc/lang/fr/password.txt index 6c4f5309f..f4500fc85 100644 --- a/inc/lang/fr/password.txt +++ b/inc/lang/fr/password.txt @@ -6,5 +6,5 @@ Utilisateur : @LOGIN@ Mot de passe : @PASSWORD@ -- -Ce mail a été envoyé par DokuWiki de +Ce courriel a été envoyé par DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/fr/pwconfirm.txt b/inc/lang/fr/pwconfirm.txt index 432b5f102..af84833df 100644 --- a/inc/lang/fr/pwconfirm.txt +++ b/inc/lang/fr/pwconfirm.txt @@ -1,6 +1,6 @@ Bonjour @FULLNAME@ ! -Quelqu'un a demandé un nouveau mot de passe pour votre login +Quelqu'un a demandé un nouveau mot de passe pour votre identifiant @TITLE@ sur @DOKUWIKIURL@ Si vous n'êtes pas à l'origine de cette requête d'un nouveau mot de @@ -11,5 +11,5 @@ Pour confirmer que cette requête émane bien de vous, merci de suivre le lien c @CONFIRM@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/registermail.txt b/inc/lang/fr/registermail.txt index 960aedf2d..1beae8522 100644 --- a/inc/lang/fr/registermail.txt +++ b/inc/lang/fr/registermail.txt @@ -10,5 +10,5 @@ Adresse IP : @IPADDRESS@ Nom d'hôte : @HOSTNAME@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/resendpwd.txt b/inc/lang/fr/resendpwd.txt index 2cfbed617..44fbeef03 100644 --- a/inc/lang/fr/resendpwd.txt +++ b/inc/lang/fr/resendpwd.txt @@ -1,4 +1,4 @@ ====== Envoyer un nouveau mot de passe ====== -Veuillez compléter les champs ci dessous pour obtenir un nouveau mot de passe pour votre compte dans ce wiki. Un lien de confirmation vous sera envoyé à l'adresse de courriel utilisée lors de votre enregistrement. +Veuillez compléter les champs ci-dessous pour obtenir un nouveau mot de passe pour votre compte dans ce wiki. Un lien de confirmation vous sera envoyé à l'adresse de courriel utilisée lors de votre enregistrement. diff --git a/inc/lang/fr/revisions.txt b/inc/lang/fr/revisions.txt index c9149ef9b..29c17137f 100644 --- a/inc/lang/fr/revisions.txt +++ b/inc/lang/fr/revisions.txt @@ -1,4 +1,4 @@ ====== Anciennes révisions ====== -Voici les anciennes révisions de la page en cours. Pour revenir à une ancienne révision, sélectionnez-la ci-dessous, cliquez sur le bouton ''Éditer cette page'' et enregistrez-la. +Voici les anciennes révisions de la page en cours. Pour revenir à une ancienne révision, sélectionnez-la ci-dessous, cliquez sur le bouton « Modifier cette page » et enregistrez-la. diff --git a/inc/lang/fr/searchpage.txt b/inc/lang/fr/searchpage.txt index 8355a2f9d..a9bd91608 100644 --- a/inc/lang/fr/searchpage.txt +++ b/inc/lang/fr/searchpage.txt @@ -1,5 +1,5 @@ ====== Recherche ====== -Voici les résultats de votre recherche. Si vous n'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou éditer la page correspondante à votre requête en cliquant sur le bouton approprié. +Voici les résultats de votre recherche. Si vous n'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou modifier la page correspondante à votre requête en cliquant sur le bouton approprié. ===== Résultats ===== diff --git a/inc/lang/fr/subscr_digest.txt b/inc/lang/fr/subscr_digest.txt new file mode 100644 index 000000000..1803407fa --- /dev/null +++ b/inc/lang/fr/subscr_digest.txt @@ -0,0 +1,19 @@ +Bonjour, + +La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Révision précédente : @OLDPAGE@ +Nouvelle révision : @NEWPAGE@ + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fr/subscr_form.txt b/inc/lang/fr/subscr_form.txt new file mode 100644 index 000000000..528f77475 --- /dev/null +++ b/inc/lang/fr/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gestion de l'abonnement ====== + +Cette page vous permet de gérer vos abonnements à la page ou à la catégorie courantes
\ No newline at end of file diff --git a/inc/lang/fr/subscr_list.txt b/inc/lang/fr/subscr_list.txt new file mode 100644 index 000000000..3387b11ee --- /dev/null +++ b/inc/lang/fr/subscr_list.txt @@ -0,0 +1,16 @@ +Bonjour, + +Des pages dans la catégorie « @PAGE@ » du wiki « @TITLE@ » ont été modifiées. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fr/subscr_single.txt b/inc/lang/fr/subscr_single.txt new file mode 100644 index 000000000..1b9d5e1b5 --- /dev/null +++ b/inc/lang/fr/subscr_single.txt @@ -0,0 +1,22 @@ +Bonjour, + +La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Date : @DATE@ +Utilisateur : @USER@ +Résumé : @SUMMARY@ +Révision précédente : @OLDPAGE@ +Nouvelle révision : @NEWPAGE@ + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/fr/uploadmail.txt b/inc/lang/fr/uploadmail.txt index 3a186b554..05b3205d7 100644 --- a/inc/lang/fr/uploadmail.txt +++ b/inc/lang/fr/uploadmail.txt @@ -1,4 +1,4 @@ -Un fichier a été envoyé dans votre DokuWiki. En voici les détails : +Un fichier a été téléversé dans votre wiki. En voici les détails : Fichier : @MEDIA@ Date : @DATE@ diff --git a/inc/lang/fr/wordblock.txt b/inc/lang/fr/wordblock.txt deleted file mode 100644 index ae5962a80..000000000 --- a/inc/lang/fr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Changement bloqué ====== - -Vos changements n'ont **pas été enregistrés** car ils contiennent un ou plusieurs mots bloqués. Si vous avez essayé de spammer le Wiki -- mauvaise idée ! Si vous pensez que c'est une erreur, contactez l'administrateur de ce Wiki. - diff --git a/inc/lang/gl/admin.txt b/inc/lang/gl/admin.txt index a5bb1753d..eeaed992a 100644 --- a/inc/lang/gl/admin.txt +++ b/inc/lang/gl/admin.txt @@ -1,4 +1,4 @@ ====== Administración ====== -A continuación pode encontrar unha lista de tarefas administrativas dispoñíbeis no DokuWiki. +De seguido podes atopar unha lista de tarefas administrativas dispoñíbeis no DokuWiki. diff --git a/inc/lang/gl/adminplugins.txt b/inc/lang/gl/adminplugins.txt index e791265e6..e52172ebc 100644 --- a/inc/lang/gl/adminplugins.txt +++ b/inc/lang/gl/adminplugins.txt @@ -1 +1 @@ -===== Plugins adicionais =====
\ No newline at end of file +===== Extensións adicionais =====
\ No newline at end of file diff --git a/inc/lang/gl/backlinks.txt b/inc/lang/gl/backlinks.txt index 90066d032..f77b74bbd 100644 --- a/inc/lang/gl/backlinks.txt +++ b/inc/lang/gl/backlinks.txt @@ -1,4 +1,4 @@ ====== Ligazóns entrantes ====== -Isto é unha listaxe de páxinas que parecen estar vinculadas á páxina actual. +Isto é unha listaxe de páxinas que semellan ligar coa páxina actual. diff --git a/inc/lang/gl/conflict.txt b/inc/lang/gl/conflict.txt index e63e5b216..dcd87c7a5 100644 --- a/inc/lang/gl/conflict.txt +++ b/inc/lang/gl/conflict.txt @@ -1,6 +1,6 @@ ====== Hai unha versión máis nova ====== -Hai unha versión máis nova do documento que editou. Isto sucede cando outra persoa usuaria alterou o documento mentres vostede o estaba a editar. +Hai unha versión máis nova do documento que editaches. Isto sucede cando outro usuario mudou o documento mentres ti estabas a editalo. -Examine as diferenzas que se mostran abaixo detalladamente e despois decida a versión que quere manter. Se selecciona ''Gardar'', gardarase a súa versión. Prema en ''Cancelar'' para manter a versión actual. +Examina as diferenzas amosadas embaixo polo miúdo, e logo decide que versión queres manter. Se escolleres ''Gardar'', gardarase a túa versión. Preme en ''Cancelar'' para manteres a versión actual. diff --git a/inc/lang/gl/denied.txt b/inc/lang/gl/denied.txt index 8d388a8bb..69408a4f3 100644 --- a/inc/lang/gl/denied.txt +++ b/inc/lang/gl/denied.txt @@ -1,4 +1,4 @@ -====== Permiso denegado ====== +====== Permiso Denegado ====== -Sentímolo, mais non ten os permisos suficientes para continuar. É posíbel que esquecese iniciar unha sesión. +Sentímolo, mais non tes permisos de abondo para continuares. Pode que esqueceses iniciar a sesión? diff --git a/inc/lang/gl/diff.txt b/inc/lang/gl/diff.txt index 5660e4025..df87707f0 100644 --- a/inc/lang/gl/diff.txt +++ b/inc/lang/gl/diff.txt @@ -1,4 +1,4 @@ ====== Diferenzas ====== -Isto mostra as diferenzas entre a revisión seleccionada e a versión actual da páxina. +Isto amosa as diferenzas entre a revisión seleccionada e a versión actual da páxina. diff --git a/inc/lang/gl/draft.txt b/inc/lang/gl/draft.txt index 8e2aa19f2..ac36dc01a 100644 --- a/inc/lang/gl/draft.txt +++ b/inc/lang/gl/draft.txt @@ -1,6 +1,6 @@ -====== Encontrouse un ficheiro de borrador ====== +====== Arquivo de rascuño atopado ====== -A súa última sesión de edición desta páxina non terminou de modo correcto. O DokuWiki gardou automaticamente un borrador durante o seu traballo que agora pode usar para continuar coa edición. A continuación pode ver os datos que foron gardados durante a súa última sesión. +A túa última sesión de edición desta páxina non foi completada de xeito correcto. O DokuWiki gravou automaticamente un rascuño durante o teu traballo que agora podes usar para continuares coa edición. De seguido podes ver os datos que foron gardados da túa última sesión. -Por favor, escolla entre se se quere //Recuperar// a súa sesión de edición perdida, //Eliminar// o borrador gardado automaticamente ou //Cancelar// o proceso de edición. +Por favor, escolle se queres //Recuperar// a túa sesión de edición perdida, //Eliminar// o borrador autogardado ou //Cancelar// o proceso de edición. diff --git a/inc/lang/gl/edit.txt b/inc/lang/gl/edit.txt index 9e2061b51..1cc124300 100644 --- a/inc/lang/gl/edit.txt +++ b/inc/lang/gl/edit.txt @@ -1,2 +1,2 @@ -Edite a páxina e prema en ''Gardar''. Vexa a páxina [[wiki:syntax|sintaxe]] para aprender a sintaxe da Wiki. Edite a páxina só se pode **mellorala**. Se quere facer probas, aprenda como efectuar os seus primeiros pasos no [[playground:playground|campo de xogo]]. +Edita a páxina e preme en ''Gardar''. Bótalle un ollo á [[wiki:syntax|sintaxe]] para veres a sintaxe do Wiki. Por favor, edita a páxina só se podes **mellorala**. Se quixeres facer probas, aprende como levar a cabo os teus primeiros pasos na [[playground:playground|eira]]. diff --git a/inc/lang/gl/editrev.txt b/inc/lang/gl/editrev.txt index c582fc3d0..d6a0490a3 100644 --- a/inc/lang/gl/editrev.txt +++ b/inc/lang/gl/editrev.txt @@ -1,2 +1,2 @@ -**Cargou unha revisión antiga do documento!** Se o garda, creará unha versión nova con eses datos. +**Cargaches unha revisión antiga do documento!** Se o gardares, crearás unha nova versión con estes datos. ---- diff --git a/inc/lang/gl/install.html b/inc/lang/gl/install.html index 017abad8f..ca26f7961 100644 --- a/inc/lang/gl/install.html +++ b/inc/lang/gl/install.html @@ -1,25 +1,25 @@ -<p>Esta páxina é unha axuda para a primeira instalación e configuración do -<a href="http://dokuwiki.org">Dokuwiki</a>. Se quere máis información -sobre este instalador, está dispoñíbel na súa propia +<p>Esta páxina é unha axuda na primeira vez que se instala e configura o +<a href="http://dokuwiki.org">Dokuwiki</a>. Se queres máis información +verbo deste instalador está dispoñible na súa propia <a href="http://dokuwiki.org/installer">páxina de documentación</a>.</p> -<p>O DokuWiki usa ficheiros normais para o almacenamento das páxinas do wiki -e outra información asociada ás mesmas (por ex. imaxes, índices de procura, -revisións antigas etc.). Por iso, para poder operar correctamente, o DokuWiki -<strong>precisa</strong> ter acceso de escritura nos directorios que conteñen -eses ficheiros. Este instalador non é quen de configurar os permisos dos directorios. -Isto debe facerse normalmente de xeito directo na liña de comandos ou, se está a -usar unha hospedaxe, a través do FTP ou do panel de control da súa hospedaxe (por ex. +<p>O DokuWiki emprega arquivos normais para a almacenaxe das páxinas do wiki +e outra información asociada coas mesmas (p.e. imaxes, índices de procura, +revisións antigas, etc). Por iso, para poder operar correctamente, o DokuWiki +<strong>precisa</strong> ter acceso de escritura aos directorios que conteñen +eses arquivos. Este instalador non é quen de configurar os permisos dos directorios. +Isto debe facerse normalmente de xeito directo na liña de comandos ou, se estás a +usar unha hospedaxe, a través do FTP ou do panel de control da túa hospedaxe (p.e. o cPanel).</p> -<p>Este instalador configurará o seu DokuWiki para o uso da -<acronym title="access control list">ACL</acronym>, o cal lle permitirá á persoa administradora -iniciar unha sesión e acceder ao menú de administración do DokuWiki para instalar plugins, -xestionar as persoas usuarias e os accesos ás páxinas do wiki; ademais de modificar a configuración. -Non é imprescindíbel para o funcionamento do DokuWiki, mais fai moito máis doada a +<p>Este instalador configurará o teu DokuWiki para o uso da +<acronym title="access control list">ACL</acronym>, o cal permitirá ao administrador +iniciar sesión e acceder ao menú de administración do DokuWiki para instalar extensións, +xestionar usuarios e accesos ás páxinas do wiki, ademais de modificar a configuración. +Non é imprescindíbel para o funcionamento do DokuWiki, porén, fai moito máis doada a administración do mesmo.</p> -<p>As persoas usuarias expertas ou con requisitos especiais de configuración poden visitar -as seguintes ligazóns para obter os pormenores relativos ás +<p>Os usuarios expertos ou con requisitos especiais de configuración poden visitar +as seguintes ligazóns para obter pormenores relativos ás <a href="http://dokuwiki.org/install">instruccións de instalación</a> e á <a href="http://dokuwiki.org/config">configuración</a>.</p> diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 2f34a02a0..9f1b48173 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -3,9 +3,7 @@ * galician language file * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -15,8 +13,8 @@ $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Editar esta páxina'; -$lang['btn_source'] = 'Mostrar o código da páxina'; -$lang['btn_show'] = 'Mostrar a páxina'; +$lang['btn_source'] = 'Amosar a fonte da páxina'; +$lang['btn_show'] = 'Amosar páxina'; $lang['btn_create'] = 'Crear esta páxina'; $lang['btn_search'] = 'Procurar'; $lang['btn_save'] = 'Gardar'; @@ -25,215 +23,252 @@ $lang['btn_top'] = 'Comezo da páxina'; $lang['btn_newer'] = '<< máis recente'; $lang['btn_older'] = 'menos recente >>'; $lang['btn_revs'] = 'Revisións antigas'; -$lang['btn_recent'] = 'Cambios recentes'; +$lang['btn_recent'] = 'Trocos recentes'; $lang['btn_upload'] = 'Subir'; $lang['btn_cancel'] = 'Cancelar'; $lang['btn_index'] = 'Índice'; $lang['btn_secedit'] = 'Editar'; -$lang['btn_login'] = 'Iniciar unha sesión'; -$lang['btn_logout'] = 'Terminar a sesión'; +$lang['btn_login'] = 'Iniciar sesión'; +$lang['btn_logout'] = 'Rematar sesión'; $lang['btn_admin'] = 'Administración'; $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; -$lang['btn_backlink'] = 'Ligazón entrante'; -$lang['btn_backtomedia'] = 'Volver á Selección de Ficheiros multimedia'; -$lang['btn_subscribe'] = 'Avisar dos cambios na páxina'; -$lang['btn_unsubscribe'] = 'Non avisar dos cambios na páxina'; -$lang['btn_subscribens'] = 'Avísar dos cambios nos Nomes de espazo'; -$lang['btn_unsubscribens'] = 'Non avisar dos cambios nos Nomes de espazo'; -$lang['btn_profile'] = 'Actualizar o perfil'; +$lang['btn_backlink'] = 'Ligazóns con isto'; +$lang['btn_backtomedia'] = 'Volver á Selección de Arquivos-Media'; +$lang['btn_subscribe'] = 'Avísame dos trocos na páxina'; +$lang['btn_profile'] = 'Actualizar Perfil'; $lang['btn_reset'] = 'Reiniciar'; -$lang['btn_resendpwd'] = 'Enviar un contrasinal novo'; -$lang['btn_draft'] = 'Editar o borrador'; -$lang['btn_recover'] = 'Recuperar o borrador'; -$lang['btn_draftdel'] = 'Eliminar o borrador'; +$lang['btn_resendpwd'] = 'Envíame un novo contrasinal'; +$lang['btn_draft'] = 'Editar borrador'; +$lang['btn_recover'] = 'Recuperar borrador'; +$lang['btn_draftdel'] = 'Eliminar borrador'; $lang['btn_revert'] = 'Restaurar'; -$lang['loggedinas'] = 'Iniciou unha sesión como'; -$lang['user'] = 'Nome de persoa usuaria'; +$lang['loggedinas'] = 'Iniciaches sesión como'; +$lang['user'] = 'Nome de Usuario'; $lang['pass'] = 'Contrasinal'; -$lang['newpass'] = 'Contrasinal novo'; -$lang['oldpass'] = 'Confirmar o contrasinal actual'; +$lang['newpass'] = 'Novo Contrasinal'; +$lang['oldpass'] = 'Confirmar contrasinal actual'; $lang['passchk'] = 'de novo'; $lang['remember'] = 'Lémbrame'; -$lang['fullname'] = 'Nome completo'; -$lang['email'] = 'Correo'; +$lang['fullname'] = 'Nome Completo'; +$lang['email'] = 'Correo-e'; $lang['register'] = 'Rexístrate'; -$lang['profile'] = 'Perfil de persoa usuaria'; -$lang['badlogin'] = 'Sentímolo, mais o nome de persoa usuaria ou o contrasinal non son correctos.'; -$lang['minoredit'] = 'Cambios menores'; -$lang['draftdate'] = 'O borrador gardouse automaticamente en'; -$lang['nosecedit'] = 'A páxina cambiou, no entanto, a información da sección estaba desactualizada, polo que se cargou a páxina completa en seu lugar.'; -$lang['regmissing'] = 'Sentímolo, mais ten que encher todos os campos.'; -$lang['reguexists'] = 'Sentímolo, mais xa existe unha persoa usuaria con ese nome.'; -$lang['regsuccess'] = 'A persoa usuaria foi creada e o contrasinal enviado por correo electrónico.'; -$lang['regsuccess2'] = 'A persoa usuaria foi creada.'; -$lang['regmailfail'] = 'Semella que houbo un erro ao tentar enviar o correo co contrasinal. Contacte coa persoa administradora!'; -$lang['regbadmail'] = 'O enderezo de correo proporcionado semella incorrecto - se considera que isto é un erro, contacte coa persoa administradora'; -$lang['regbadpass'] = 'Os dous contrasinais introducidos non coinciden: Ténteo de novo.'; -$lang['regpwmail'] = 'O seu contrasinal do DokuWiki'; -$lang['reghere'] = 'Aínda non ten unha conta? Cree unha'; -$lang['profna'] = 'Esta wiki non permite modificacións dos perfís'; -$lang['profnochange'] = 'Non hai cambios, non hai nada para facer.'; -$lang['profnoempty'] = 'Non se permite un nome ou un enderezo de correo baleiros.'; -$lang['profchanged'] = 'O perfil de persoa usuaria foi actualizado correctamente.'; -$lang['pwdforget'] = 'Esqueceu o seu contrasinal? Obteña un novo'; -$lang['resendna'] = 'Esta wiki non permite o reenvío de contrasinais.'; -$lang['resendpwd'] = 'Enviar un contrasinal novo a'; -$lang['resendpwdmissing'] = 'Sentímolo, ten que encher todos os campos.'; -$lang['resendpwdnouser'] = 'Sentímolo, non encontramos esta persoa usuaria na nosa base de datos.'; -$lang['resendpwdbadauth'] = 'Sentímolo, mais este código de autorización non é válido. Asegúrese de que usou a ligazón completa de confirmación.'; -$lang['resendpwdconfirm'] = 'Enviouse unha ligazón de confirmación por correo.'; -$lang['resendpwdsuccess'] = 'O seu novo contrasinal foi enviado por correo.'; -$lang['license'] = 'O contido deste wiki, agás onde se indique o contrario, ofrécese baixo a seguinte licenza:'; -$lang['licenseok'] = 'Nota: Ao editar esta páxina estás a aceptar o licenciamento do contido baixo a seguinte licenza:'; -$lang['searchmedia'] = 'Buscar nome de ficheiro:'; -$lang['searchmedia_in'] = 'Buscar en %s'; -$lang['txt_upload'] = 'Selecciona o arquivo para subir'; +$lang['profile'] = 'Perfil de Usuario'; +$lang['badlogin'] = 'Sentímolo, mais o nome de usuario ou o contrasinal non son correctos.'; +$lang['minoredit'] = 'Trocos Menores'; +$lang['draftdate'] = 'Borrador gardado automaticamente en'; +$lang['nosecedit'] = 'A páxina mudou entrementres, a información da sección estaba desfasada polo que se cargou a páxina completa no seu lugar.'; +$lang['regmissing'] = 'Sentímolo, mais tes que cubrir todos os campos.'; +$lang['reguexists'] = 'Sentímolo, mais xa existe un usuario con ese nome.'; +$lang['regsuccess'] = 'O usuario foi creado e o contrasinal enviado por correo-e.'; +$lang['regsuccess2'] = 'O usuario foi creado.'; +$lang['regmailfail'] = 'Semella que houbo un erro ao tentar enviar o correo-e co contrasinal. Por favor, contacta co administrador!'; +$lang['regbadmail'] = 'O enderezo de correo-e proporcionado semella incorrecto - se consideras que isto é un erro, contacta co administrador'; +$lang['regbadpass'] = 'Os dous contrasinais inseridos non coinciden, por favor téntao de novo.'; +$lang['regpwmail'] = 'O teu contrasinal do DokuWiki'; +$lang['reghere'] = 'Aínda non tes unha conta? Crea a túa'; +$lang['profna'] = 'Este wiki non permite modificacións dos perfís'; +$lang['profnochange'] = 'Non hai trocos, nada que facer.'; +$lang['profnoempty'] = 'Non se permite un nome ou un enderezo de correo-e baleiros.'; +$lang['profchanged'] = 'Perfil de usuario actualizado correctamente.'; +$lang['pwdforget'] = 'Esqueceches o teu contrasinal? Consegue un novo'; +$lang['resendna'] = 'Este wiki non permite o reenvío de contrasinais.'; +$lang['resendpwd'] = 'Enviar novo contrasinal para'; +$lang['resendpwdmissing'] = 'Sentímolo, tes que cubrir todos os campos.'; +$lang['resendpwdnouser'] = 'Sentímolo, non atopamos este usuario no noso banco de datos.'; +$lang['resendpwdbadauth'] = 'Sentímolo, mais este código de autorización non é válido. Asegúrate de que usaches a ligazón completa de confirmación.'; +$lang['resendpwdconfirm'] = 'Enviouse unha ligazón de confirmación por correo-e.'; +$lang['resendpwdsuccess'] = 'O teu novo contrasinal foi enviado por correo-e.'; +$lang['license'] = 'O contido deste wiki, agás onde se indique o contrario, ofrécese baixo da seguinte licenza:'; +$lang['licenseok'] = 'Nota: Ao editares esta páxina estás a aceptar o licenciamento do contido baixo da seguinte licenza:'; +$lang['searchmedia'] = 'Procurar nome de arquivo:'; +$lang['searchmedia_in'] = 'Procurar en %s'; +$lang['txt_upload'] = 'Escolle o arquivo para subir'; $lang['txt_filename'] = 'Subir como (opcional)'; -$lang['txt_overwrt'] = 'Sobrescribir o arquivo existente'; +$lang['txt_overwrt'] = 'Sobrescribir arquivo existente'; $lang['lockedby'] = 'Bloqueado actualmente por'; -$lang['lockexpire'] = 'O bloqueo termina o'; -$lang['willexpire'] = 'O seu bloqueo para editar esta páxina vai caducar nun minuto.\nPara de evitar conflitos, use o botón de previsualización para reiniciar o contador do tempo de bloqueo.'; -$lang['notsavedyet'] = 'Perderanse os cambios non gardados.\nEstá segura/o de que quere continuar?'; -$lang['rssfailed'] = 'Houbo un erro ao tentar obter este fío RSS: '; -$lang['nothingfound'] = 'Non se encontrou nada.'; -$lang['mediaselect'] = 'Ficheiros multimedia'; -$lang['fileupload'] = 'Subir ficheiros multimedia'; -$lang['uploadsucc'] = 'Subiuse correctamente'; -$lang['uploadfail'] = 'Fallou ao subir. É posíbel que sexa un problema de permisos?'; -$lang['uploadwrong'] = 'Subida denegada. Esta extensión de ficheiro non está permitida!'; -$lang['uploadexist'] = 'Xa existe o ficheiro. Non se fixo nada.'; -$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión de ficheiro %s.'; -$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo lixo.'; +$lang['lockexpire'] = 'O bloqueo remata o'; +$lang['willexpire'] = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.'; +$lang['js']['notsavedyet'] = "Perderanse os trocos non gardados.\nEstá certo de quereres continuar?"; +$lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: '; +$lang['nothingfound'] = 'Non se atopou nada.'; +$lang['mediaselect'] = 'Arquivos-Media'; +$lang['fileupload'] = 'Subida de Arquivos-Media'; +$lang['uploadsucc'] = 'Subida correcta'; +$lang['uploadfail'] = 'Erra na subida. Pode que sexa un problema de permisos?'; +$lang['uploadwrong'] = 'Subida denegada. Esta extensión de arquivo non está permitida!'; +$lang['uploadexist'] = 'Xa existe o arquivo. Non se fixo nada.'; +$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión do arquivo %s.'; +$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo-lixo.'; $lang['uploadxss'] = 'A subida foi bloqueada por un posíbel contido malicioso.'; -$lang['uploadsize'] = 'O ficheiro subido é grande de máis. (máx. %s)'; -$lang['deletesucc'] = 'O ficheiro "%s" foi eliminado.'; -$lang['deletefail'] = '"%s" non puido ser eliminado - comprobe os permisos.'; -$lang['mediainuse'] = 'O ficheiro "%s" non foi eliminado - aínda está en uso.'; +$lang['uploadsize'] = 'O arquivo subido é grande de máis. (máx. %s)'; +$lang['deletesucc'] = 'O arquivo "%s" foi eliminado.'; +$lang['deletefail'] = '"%s" non puido ser eliminado - comproba os permisos.'; +$lang['mediainuse'] = 'O arquivo "%s" non foi eliminado - aínda está en uso.'; $lang['namespaces'] = 'Nomes de espazos'; -$lang['mediafiles'] = 'Ficheiro dispoñíbeis en'; -$lang['js']['searchmedia'] = 'Buscar ficheiros'; -$lang['js']['keepopen'] = 'Manter a xanela aberta na selección'; -$lang['js']['hidedetails'] = 'Ocultar os detalles'; -$lang['js']['nosmblinks'] = 'A ligazón aos compartidos do Windows só funciona co Microsoft Internet Explorer. +$lang['mediafiles'] = 'Arquivos dispoñíbeis en'; +$lang['js']['searchmedia'] = 'Procurar ficheiros'; +$lang['js']['keepopen'] = 'Manter a fiestra aberta na selección'; +$lang['js']['hidedetails'] = 'Agochar Pormenores'; +$lang['js']['mediatitle'] = 'Configuración de ligazón'; +$lang['js']['mediadisplay'] = 'Tipo de ligazón'; +$lang['js']['mediaalign'] = 'Aliñamento'; +$lang['js']['mediasize'] = 'Tamaño de imaxe'; +$lang['js']['mediatarget'] = 'Albo da ligazón'; +$lang['js']['mediaclose'] = 'Fechar'; +$lang['js']['mediainsert'] = 'Inserir'; +$lang['js']['mediadisplayimg'] = 'Amosar a imaxe'; +$lang['js']['mediadisplaylnk'] = 'Amosar só a ligazón'; +$lang['js']['mediasmall'] = 'Versión reducida'; +$lang['js']['mediamedium'] = 'Versión media'; +$lang['js']['medialarge'] = 'Versión grande'; +$lang['js']['mediaoriginal'] = 'Versión orixinal'; +$lang['js']['medialnk'] = 'Ligazón para a páxina de pormenores'; +$lang['js']['mediadirect'] = 'Ligazón directa para o orixinal'; +$lang['js']['medianolnk'] = 'Sen ligazón'; +$lang['js']['medianolink'] = 'Non ligar a imaxe'; +$lang['js']['medialeft'] = 'Aliñar a imaxe á esquerda'; +$lang['js']['mediaright'] = 'Aliñar a imaxe á dereita'; +$lang['js']['mediacenter'] = 'Aliñar a iamxe ao medio'; +$lang['js']['medianoalign'] = 'Non empregar aliñamento'; +$lang['js']['nosmblinks'] = 'A ligazón aos compartidos do Windows só funciona no Microsoft Internet Explorer. Sempre podes copiar e colar a ligazón.'; $lang['js']['linkwiz'] = 'Asistente de ligazóns'; -$lang['js']['linkto'] = 'Ligazón a:'; -$lang['js']['del_confirm'] = 'Quere eliminar os elementos seleccionados?'; -$lang['js']['mu_btn'] = 'Subir varios ficheiros dunha vez'; -$lang['mediausage'] = 'Utilice a seguinte sintaxe para referenciar este ficheiro:'; -$lang['mediaview'] = 'Ver o ficheiro orixinal'; -$lang['mediaroot'] = 'raíz'; -$lang['mediaupload'] = 'Suba aquí un ficheiro ao nome de espazo actual. Para crear subnomes de espazos deberá engadilos ao principio do seu nome de ficheiro en "Subir como", separados por dous puntos.'; -$lang['mediaextchange'] = 'A extensión de ficheiro foi alterada de .%s a .%s!'; +$lang['js']['linkto'] = 'Ligazón para:'; +$lang['js']['del_confirm'] = 'Estás certo de quereres eliminar os elementos seleccionados?'; +$lang['js']['mu_btn'] = 'Subir varios arquivos de vez'; +$lang['mediausage'] = 'Emprega a seguinte sintaxe para inserires unha referencia a este arquivo:'; +$lang['mediaview'] = 'Ver arquivo orixinal'; +$lang['mediaroot'] = 'raigaña'; +$lang['mediaupload'] = 'Sube aquí un arquivo ao nome de espazo actual. Para creares sub-nomes de espazos deberás antepoñelos ao nome indicado en "Subir como" separados por dous puntos.'; +$lang['mediaextchange'] = 'Extensión de arquivo mudada de .%s a .%s!'; $lang['reference'] = 'Referencias para'; -$lang['ref_inuse'] = 'O ficheiro non pode ser eliminado, xa que aínda está a ser usado polas seguintes páxinas:'; -$lang['ref_hidden'] = 'Algunhas referencias están en páxinas para as cales non ten permisos de lectura'; -$lang['hits'] = 'Visualizacións'; +$lang['ref_inuse'] = 'O arquivo non pode ser eliminado, xa que aínda está a ser usado polas seguintes páxinas:'; +$lang['ref_hidden'] = 'Algunhas referencias están en páxinas para as cales non tes permisos de lectura'; +$lang['hits'] = 'Vistas'; $lang['quickhits'] = 'Nomes de páxinas coincidentes'; -$lang['toc'] = 'Táboa de contidos'; +$lang['toc'] = 'Táboa de Contidos'; $lang['current'] = 'actual'; -$lang['yours'] = 'A súa versión'; -$lang['diff'] = 'Mostrar as diferenzas coa versión actual'; -$lang['diff2'] = 'Mostrar as diferenzas entre as revisións seleccionadas'; +$lang['yours'] = 'A túa Versión'; +$lang['diff'] = 'Amosar diferenzas coa versión actual'; +$lang['diff2'] = 'Amosar diferenzas entre as revisións seleccionadas'; $lang['line'] = 'Liña'; $lang['breadcrumb'] = 'Trazado'; -$lang['youarehere'] = 'Vostede está aquí'; +$lang['youarehere'] = 'Estás aquí'; $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'eliminado'; $lang['created'] = 'creado'; -$lang['restored'] = 'a revisión antiga foi restaurada'; +$lang['restored'] = 'revisión antiga restaurada'; $lang['external_edit'] = 'edición externa'; $lang['summary'] = 'Resumo da edición'; -$lang['noflash'] = 'Precísase o <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a> para mostrar este contido.'; +$lang['noflash'] = 'Precísase o <a href="http://www.adobe.com/products/flashplayer/">Extensión Adobe Flash</a> para amosar este contido.'; +$lang['download'] = 'Descargar Retallo (Snippet)'; $lang['mail_newpage'] = 'páxina engadida:'; -$lang['mail_changed'] = 'páxina alterada:'; -$lang['mail_new_user'] = 'Persoa usuaria nova:'; -$lang['mail_upload'] = 'ficheiro subido:'; -$lang['qb_bold'] = 'Texto en negra'; -$lang['qb_italic'] = 'Texto en cursiva'; -$lang['qb_underl'] = 'Texto subliñado'; -$lang['qb_code'] = 'Texto de código'; -$lang['qb_strike'] = 'Texto riscado'; -$lang['qb_h1'] = 'Título de nivel 1'; -$lang['qb_h2'] = 'Título de nivel 2'; -$lang['qb_h3'] = 'Título de nivel 3'; -$lang['qb_h4'] = 'Título de nivel 4'; -$lang['qb_h5'] = 'Título de nivel 5'; -$lang['qb_link'] = 'Ligazón interna'; -$lang['qb_extlink'] = 'Ligazón externa'; -$lang['qb_hr'] = 'Liña horizontal'; -$lang['qb_ol'] = 'Elemento de lista ordenada'; -$lang['qb_ul'] = 'Elemento de lista desordenada'; -$lang['qb_media'] = 'Engadir imaxes e outros ficheiros'; -$lang['qb_sig'] = 'Inserir unha sinatura'; -$lang['qb_smileys'] = 'Emoticonas'; -$lang['qb_chars'] = 'Caracteres especiais'; -$lang['admin_register'] = 'Engadir unha persoa usuaria nova'; -$lang['metaedit'] = 'Editar os metadatos'; +$lang['mail_changed'] = 'páxina mudada:'; +$lang['mail_subscribe_list'] = 'páxinas mudadas en nome de espazo:'; +$lang['mail_new_user'] = 'Novo usuario:'; +$lang['mail_upload'] = 'arquivo subido:'; +$lang['qb_bold'] = 'Texto Resaltado'; +$lang['qb_italic'] = 'Texto en Cursiva'; +$lang['qb_underl'] = 'Texto Subliñado'; +$lang['qb_code'] = 'Texto de Código'; +$lang['qb_strike'] = 'Texto Riscado'; +$lang['qb_h1'] = 'Liña de Cabeceira de Nivel 1'; +$lang['qb_h2'] = 'Liña de Cabeceira de Nivel 2'; +$lang['qb_h3'] = 'Liña de Cabeceira de Nivel 3'; +$lang['qb_h4'] = 'Liña de Cabeceira de Nivel 4'; +$lang['qb_h5'] = 'Liña de Cabeceira de Nivel 5'; +$lang['qb_h'] = 'Liña de Cabeceira'; +$lang['qb_hs'] = 'Escoller Liña de Cabeceira'; +$lang['qb_hplus'] = 'Liña de Cabeceira Máis Alta'; +$lang['qb_hminus'] = 'Liña de Cabeceira Máis Baixa'; +$lang['qb_hequal'] = 'Liña de Cabeceira ao Mesmo Nivel'; +$lang['qb_link'] = 'Ligazón Interna'; +$lang['qb_extlink'] = 'Ligazón Externa'; +$lang['qb_hr'] = 'Liña Horizontal'; +$lang['qb_ol'] = 'Elemento de Lista Ordenada'; +$lang['qb_ul'] = 'Elemento de Lista Desordenada'; +$lang['qb_media'] = 'Engadir Imaxes e Outros Arquivos'; +$lang['qb_sig'] = 'Inserir Sinatura'; +$lang['qb_smileys'] = 'Risoños'; +$lang['qb_chars'] = 'Caracteres Especiais'; +$lang['upperns'] = 'choutar ao nome de espazo pai'; +$lang['admin_register'] = 'Engadir novo usuario'; +$lang['metaedit'] = 'Editar Metadatos'; $lang['metasaveerr'] = 'Non se puideron escribir os metadatos'; -$lang['metasaveok'] = 'Os metadatos foron gardados'; +$lang['metasaveok'] = 'Metadatos gardados'; $lang['img_backto'] = 'Volver a'; $lang['img_title'] = 'Título'; $lang['img_caption'] = 'Lenda'; $lang['img_date'] = 'Data'; -$lang['img_fname'] = 'Nome do ficheiro'; +$lang['img_fname'] = 'Nome de arquivo'; $lang['img_fsize'] = 'Tamaño'; -$lang['img_artist'] = 'Fotógrafa/o'; +$lang['img_artist'] = 'Fotógrafo'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Cámara'; -$lang['img_keywords'] = 'Palabras chave'; -$lang['subscribe_success'] = '%s foi engadido á lista de subscrición de cambios de %s'; -$lang['subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición de cambios de %s'; -$lang['subscribe_noaddress'] = 'Non hai ningún enderezo asociado ao seu nome de persoa usuaria: non pode ser engadida/o á lista de subscrición'; -$lang['unsubscribe_success'] = 'Eliminouse %s da lista de subscrición de cambios de %s'; -$lang['unsubscribe_error'] = 'Erro ao tentar eliminar %s da lista de subscrición de cambios de %s'; -$lang['authmodfailed'] = 'A configuración de autenticación de persoa usuaria é incorrecta. Informe á persoa administradora do seu Wiki.'; -$lang['authtempfail'] = 'A autenticación de persoa usuaria non está dispoñíbel de modo temporal. Se esta situación persiste informe á persoa administradora do seu Wiki.'; -$lang['i_chooselang'] = 'Seleccione o seu idioma'; +$lang['img_keywords'] = 'Verbas chave'; +$lang['subscr_subscribe_success'] = 'Engadido %s á lista de subscrición para %s'; +$lang['subscr_subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición para %s'; +$lang['subscr_subscribe_noaddress'] = 'Non hai enderezos asociados co teu inicio de sesión, non é posíbel engadirte á lista de subscrición'; +$lang['subscr_unsubscribe_success'] = 'Eliminado %s da lista de subscrición para %s'; +$lang['subscr_unsubscribe_error'] = 'Erro ao tentar eliminar %s da lista de subscrición para %s'; +$lang['subscr_already_subscribed'] = '%s xa está subscrito a %s'; +$lang['subscr_not_subscribed'] = '%s non está subscrito a %s'; +$lang['subscr_m_not_subscribed'] = 'Agora mesmo non estás subscrito á páxina ou nome de espazo actual'; +$lang['subscr_m_new_header'] = 'Engadir subscrición'; +$lang['subscr_m_current_header'] = 'Subscricións actuais'; +$lang['subscr_m_unsubscribe'] = 'Desubscribir'; +$lang['subscr_m_subscribe'] = 'Subscribir'; +$lang['subscr_m_receive'] = 'Recibir'; +$lang['subscr_style_every'] = 'correo-e en cada troco'; +$lang['subscr_style_digest'] = 'correo-e con resumo de trocos para cada páxina'; +$lang['subscr_style_list'] = 'lista de páxinas mudadas dende o último correo-e'; +$lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.'; +$lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; +$lang['i_chooselang'] = 'Escolle o teu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; -$lang['i_enableacl'] = 'Activar o lista de control de acceso (ACL) (recomendado)'; -$lang['i_superuser'] = 'Superusuaria/o'; -$lang['i_problems'] = 'O instalador encontrou algúns problemas que se mostran a continuación. Non poderá continuar até que os solucione.'; +$lang['i_enableacl'] = 'Activar ACL (recomendado)'; +$lang['i_superuser'] = 'Super-usuario'; +$lang['i_problems'] = 'O instalador atopou algúns problemas, que se amosan de seguido. Non poderás continuar até que os soluciones.'; $lang['i_modified'] = 'Por razóns de seguridade este script só funcionará cunha instalación nova e sen modificar do Dokuwiki. - Pode ou ben extraer de novo os ficheiros desde o paquete descargado ou consultar as + Podes ou ben extraer de novo os arquivos dende o paquete descargado ou consultar as <a href="http://dokuwiki.org/install">instruccións completas de instalación do Dokuwiki</a>'; -$lang['i_funcna'] = 'A función <code>%s</code> de PHP non está dispoñíbel. Pode que o seu provedor de hospedaxe a desactivase por algún motivo.'; -$lang['i_phpver'] = 'A súa versión <code>%s</code> de PHP é inferior á <code>%s</code> precisa. Debe actualizar a súa instalación de PHP.'; -$lang['i_permfail'] = '<code>%s</code> non é escribíbel polo DokuWiki. Debe corrixir a configuración de permisos deste directorio!'; +$lang['i_funcna'] = 'A función <code>%s</code> do PHP non está dispoñíbel. Pode que o teu provedor de hospedaxe a desactivase por algún motivo?'; +$lang['i_phpver'] = 'A túa versión <code>%s</code> do PHP é inferior á <code>%s</code> precisa. Debes actualizar a túa instalación do PHP.'; +$lang['i_permfail'] = '<code>%s</code> non é escribíbel polo DokuWiki. Debes corrixir a configuración de permisos deste directorio!'; $lang['i_confexists'] = '<code>%s</code> xa existe'; -$lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terá que comprobar os permisos do directorio/ficheiro e crear o ficheiro de modo manual.'; -$lang['i_badhash'] = 'dokuwiki.php é irrecoñecíbel ou foi modificado (hash=<code>%s</code>)'; +$lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terás de comprobar os permisos do directorio/arquivo e crear o ficheiro de xeito manual.'; +$lang['i_badhash'] = 'dokuwiki.php irrecoñecíbel ou modificado (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - ilegal ou valor baleiro'; -$lang['i_success'] = 'A configuración terminou correctamente. Agora pode borrar o ficheiro install.php. Continúe até o - <a href="doku.php">seu novo DokuWiki</a>.'; -$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os ficheiros de configuración. Pode que precise solucionalos de mod manual antes - de que poder usar <a href="doku.php">o seu novo DokuWiki</a>.'; +$lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o + <a href="doku.php">teu novo DokuWiki</a>.'; +$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes + de poderes empregar <a href="doku.php">o teu novo DokuWiki</a>.'; $lang['i_policy'] = 'Regras iniciais da ACL'; -$lang['i_pol0'] = 'Wiki aberto (lectura, escritura, subida de arquivos para todas as persoas)'; -$lang['i_pol1'] = 'Wiki público (lectura para todas as persoas, escritura e subida de ficheiros para as persoas usuarias rexistradas)'; -$lang['i_pol2'] = 'Wiki pechado (lectura, escritura, subida de arquivos só para as persoas usuarias rexistradas)'; +$lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)'; +$lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)'; +$lang['i_pol2'] = 'Wiki Fechado (lectura, escritura, subida de arquivos só para usuarios rexistrados)'; $lang['i_retry'] = 'Tentar de novo'; -$lang['mu_intro'] = 'Aquí podes subir varios ficheiros dunha vez. Preme o botón Examinar para engadilos á fila. Preme en Subir cando remates.'; -$lang['mu_gridname'] = 'Nome do ficheiro'; +$lang['mu_intro'] = 'Aquí podes subir varios arquivos de vez. Preme o botón Navegar para engadilos á cola. Preme en Subir cando remates.'; +$lang['mu_gridname'] = 'Nome de Arquivo'; $lang['mu_gridsize'] = 'Tamaño'; $lang['mu_gridstat'] = 'Estado'; -$lang['mu_namespace'] = 'Nome de espazo'; -$lang['mu_browse'] = 'Examinar'; -$lang['mu_toobig'] = 'demasiado grande'; -$lang['mu_ready'] = 'listo para subir'; +$lang['mu_namespace'] = 'Nome de Espazo'; +$lang['mu_browse'] = 'Navegar'; +$lang['mu_toobig'] = 'grande de máis'; +$lang['mu_ready'] = 'disposto para subir'; $lang['mu_done'] = 'feito'; $lang['mu_fail'] = 'fallou'; -$lang['mu_authfail'] = 'a sesión caducou'; +$lang['mu_authfail'] = 'sesión expirada'; $lang['mu_progress'] = '@PCT@% subido'; -$lang['mu_filetypes'] = 'Tipos de ficheiro permitidos'; -$lang['mu_info'] = 'ficheiros subidos.'; +$lang['mu_filetypes'] = 'Tipos de arquivo Permitidos'; +$lang['mu_info'] = 'arquivos subidos.'; $lang['mu_lasterr'] = 'Último erro:'; -$lang['recent_global'] = 'Agora mesmo está a ver os cambios no nome de espazo <b>%s</b>. Tamén pode <a href="%s">ver os cambios recentes en todo o Wiki</a>.'; +$lang['recent_global'] = 'Agora mesmo estás a ver os trocos no nome de espazo <b>%s</b>. Tamén podes <a href="%s">ver os trocos recentes no Wiki enteiro</a>.'; $lang['years'] = 'hai %d anos'; $lang['months'] = 'hai %d meses'; $lang['weeks'] = 'hai %d semanas'; diff --git a/inc/lang/gl/locked.txt b/inc/lang/gl/locked.txt index 14240335e..90f9ab082 100644 --- a/inc/lang/gl/locked.txt +++ b/inc/lang/gl/locked.txt @@ -1,3 +1,3 @@ ====== Páxina bloqueada ====== -Esta páxina está actualmente bloqueada para a edición por outra persoa usuaria. Terá que agardar até que esa persoa usuaria termine de editar a páxina ou a que expire o bloqueo. +Esta páxina está actualmente bloqueada para a edición por outro usuario. Terás que agardar até que este usuario remate coa edición ou a que expire o bloqueo. diff --git a/inc/lang/gl/login.txt b/inc/lang/gl/login.txt index 11719de50..506b30c6a 100644 --- a/inc/lang/gl/login.txt +++ b/inc/lang/gl/login.txt @@ -1,4 +1,4 @@ -====== Inicio de sesión ====== +====== Inicio de Sesión ====== -Actualmente non ten unha sesión iniciada! Insira as súas credenciais de autenticación para iniciar a sesión. Debe ter as cookies activadas para poder iniciar unha sesión. +Actualmente non iniciaches sesión ningunha! Insire as túas credenciais de identificación para iniciares a sesión. Debes ter as cookies activadas para poderes iniciar unha sesión. diff --git a/inc/lang/gl/mailtext.txt b/inc/lang/gl/mailtext.txt index f7c06bc83..a6799d697 100644 --- a/inc/lang/gl/mailtext.txt +++ b/inc/lang/gl/mailtext.txt @@ -1,13 +1,13 @@ -Engadiuse ou modificouse unha páxina do seu DokuWiki. Aquí van os detalles: +Engadiuse ou mudouse unha páxina no teu DokuWiki. Aquí van os pormenores: Data : @DATE@ Navegador : @BROWSER@ Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ -Revisión antiga : @OLDPAGE@ -Revision nova : @NEWPAGE@ -Resumo da edición : @SUMMARY@ -Usuaria/o : @USER@ +Nome do Host : @HOSTNAME@ +Revisión Antiga : @OLDPAGE@ +Revision Nova : @NEWPAGE@ +Resumo da Edición : @SUMMARY@ +Usuario : @USER@ @DIFF@ diff --git a/inc/lang/gl/newpage.txt b/inc/lang/gl/newpage.txt index c79ef6a41..c073f1194 100644 --- a/inc/lang/gl/newpage.txt +++ b/inc/lang/gl/newpage.txt @@ -1,4 +1,4 @@ ====== Este tema aínda non existe ====== -Seguiu unha ligazón até un tema que aínda non existe. Se ten os permisos adecuados, pode creala vostede premendo no botón ''Crear esta páxina''. +Seguiches unha ligazón deica un tema que aínda non existe. Se tes permisos axeitados, podes crealo ti premendo no botón ''Crear esta páxina''. diff --git a/inc/lang/gl/norev.txt b/inc/lang/gl/norev.txt index dd6027165..af7383da8 100644 --- a/inc/lang/gl/norev.txt +++ b/inc/lang/gl/norev.txt @@ -1,4 +1,4 @@ -====== Non existe esa revisión ====== +======Non hai tal revisión====== -A revisión especificada non existe. Utilice o botón ''Revisións antigas'' para obter un listado das revisións antigas deste documento. +A revisión especificada non existe. Utiliza o botón de ''Revisións Antigas'' para obteres unha listaxe das revisións antigas deste documento. diff --git a/inc/lang/gl/password.txt b/inc/lang/gl/password.txt index 3e69b6cca..652a55828 100644 --- a/inc/lang/gl/password.txt +++ b/inc/lang/gl/password.txt @@ -1,9 +1,9 @@ -Benvida/o @FULLNAME@! +Ola @FULLNAME@! -Aquí ten os seus datos de persoa usuaria para @TITLE@ en @DOKUWIKIURL@ +Aquí tes os teus datos de usuario para @TITLE@ en @DOKUWIKIURL@ -Nome de usuaria/o: @LOGIN@ -Contrasinal: @PASSWORD@ +Usuario : @LOGIN@ +Contrasinal : @PASSWORD@ -- Este correo foi xerado polo DokuWiki en diff --git a/inc/lang/gl/preview.txt b/inc/lang/gl/preview.txt index 01cc41dcc..e0f749ff0 100644 --- a/inc/lang/gl/preview.txt +++ b/inc/lang/gl/preview.txt @@ -1,4 +1,4 @@ ====== Previsualización ====== -Isto é unha previsualización de como aparecerá o seu texto. Lembre: **Aínda non está gardado!** +Isto é unha previsualización de como aparecerá o teu texto. Lembra: **Non está gardado** aínda! diff --git a/inc/lang/gl/pwconfirm.txt b/inc/lang/gl/pwconfirm.txt index e020790d3..ef20212ff 100644 --- a/inc/lang/gl/pwconfirm.txt +++ b/inc/lang/gl/pwconfirm.txt @@ -1,15 +1,15 @@ Ola @FULLNAME@! -Alguén solicitou un contrasinal novo para o seu inicio de sesión no +Alguén solicitou un novo contrasinal para o teu inicio de sesión @TITLE@ en @DOKUWIKIURL@ -Se non foi vostede quen o solicitou pode ignorar este correo. +Se non fuches ti quen o fixo podes ignorar este correo-e. -Para confirmar que esta solicitude foi realmente enviada por vostede -por favor, visite a seguinte ligazón. +Para confirmares que esta solicitude foi realmente enviada por ti, +por favor, visita a seguinte ligazón. @CONFIRM@ --- -Este correo foi xerador polo DokuWiki de +-- +Este correo-e foi xerado polo DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/gl/read.txt b/inc/lang/gl/read.txt index 912864c31..28f3e1a95 100644 --- a/inc/lang/gl/read.txt +++ b/inc/lang/gl/read.txt @@ -1,2 +1,2 @@ -Esta páxina é só de lectura. Podes ver o código fonte, mais non pode alterala. Coméntello á persoa administradora se considera que é un erro. +Esta páxina é só de lectura. Podes ver o código fonte, mais non podes mudala. Coméntallo ao teu administrador se consideras que é un erro. diff --git a/inc/lang/gl/recent.txt b/inc/lang/gl/recent.txt index 93f8632dd..622e4d938 100644 --- a/inc/lang/gl/recent.txt +++ b/inc/lang/gl/recent.txt @@ -1,5 +1,5 @@ -====== Cambios recentes ====== +====== Trocos Recentes ====== -As seguintes páxinas foron cambiadas recentemente. +As seguintes páxinas foron mudadas recentemente. diff --git a/inc/lang/gl/register.txt b/inc/lang/gl/register.txt index 17d9e0ff4..4f51f3878 100644 --- a/inc/lang/gl/register.txt +++ b/inc/lang/gl/register.txt @@ -1,4 +1,4 @@ -====== Rexistro como persoa usuaria nova ====== +====== Rexistro como novo usuario ====== -Encha toda a información requirida a continuación para crear unha conta nova neste wiki. Asegúrese de proporcionar un **enderezo de correo electrónico válido** - se non se lle solicita aquí que insira un contrasinal, recibirá un contrasinal novo nese enderezo. O nome de persoa usuaria deberá ser un [[doku>pagename|nome de páxina]] válido. +Cubre toda a información requirida a continuación para creares unha nova conta neste wiki. Asegúrate de forneceres un **enderezo de correo-e válido** - se non se che pide aquí que insiras un contrasinal, recibirás un novo nese enderezo. O nome de usuario deberá ser un [[doku>pagename|nome de páxina]] válido. diff --git a/inc/lang/gl/registermail.txt b/inc/lang/gl/registermail.txt index e02fe1a1c..7d4017481 100644 --- a/inc/lang/gl/registermail.txt +++ b/inc/lang/gl/registermail.txt @@ -1,14 +1,14 @@ -Rexistrouse unha persoa usuaria nova. Estes son os detalles: +Rexistrouse un novo usuario. Aquí van os pormenores: -Nome de usuaria/o : @NEWUSER@ -Nome completo : @NEWNAME@ -Correo : @NEWEMAIL@ +Nome de usuario : @NEWUSER@ +Nome completo : @NEWNAME@ +Correo-e : @NEWEMAIL@ -Data : @DATE@ -Navegador : @BROWSER@ -Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ +Data : @DATE@ +Navegador : @BROWSER@ +Enderezo IP : @IPADDRESS@ +Nome do Host : @HOSTNAME@ -- -Este correo foi xerado polo DokuWiki de +Este correo-e foi xerado polo DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/gl/resendpwd.txt b/inc/lang/gl/resendpwd.txt index eb8cf4835..0ee2d6cb4 100644 --- a/inc/lang/gl/resendpwd.txt +++ b/inc/lang/gl/resendpwd.txt @@ -1,3 +1,3 @@ -====== Enviar un contrasinal novo ====== +====== Enviar novo contrasinal ====== -Insira o seu nome de persoa usuaria no seguinte formulario para obter un contrasinal novo para a súa conta neste wiki. Enviarase unha ligazón de confirmación ao seu enderezo de correo rexistrado. +Insire o teu nome de usuario no seguinte formulario para obteres un novo contrasinal da túa conta neste wiki. Enviarase unha ligazón de confirmación ao teu enderezo rexistrado de correo-e. diff --git a/inc/lang/gl/revisions.txt b/inc/lang/gl/revisions.txt index a08b54685..3d5cccd7f 100644 --- a/inc/lang/gl/revisions.txt +++ b/inc/lang/gl/revisions.txt @@ -1,4 +1,4 @@ -====== Revisións antigas ====== +======Revisións Antigas====== -Estas son as revisións antigas do documento actual. Para retomar unha revisión antiga: selecciónea na seguinte lista, prema en ''Editar esta páxina'' e gárdea. +Estas son as revisións antigas do documento actual. Para retomar unha revisión antiga selecciónaa na seguinte lista, preme en ''Editar esta páxina'' e gárdaa. diff --git a/inc/lang/gl/searchpage.txt b/inc/lang/gl/searchpage.txt index 7157cdcbf..227ca5dbc 100644 --- a/inc/lang/gl/searchpage.txt +++ b/inc/lang/gl/searchpage.txt @@ -1,5 +1,5 @@ -====== Procurar ====== +====== Procura ====== -Podes encontrar os resultados da súa procura a continuación. Se non encontrou o que estaba a procurar, pode crear ou editar a páxina co nome relacionado coa súa procura co botón axeitado. +Podes atopar os resultados da túa procura a continuación. Se non atopaches o que estabas a procurar, podes crear ou editar a páxina co nome relacionado coa túa procura empregando o botón axeitado. ===== Resultados ===== diff --git a/inc/lang/gl/stopwords.txt b/inc/lang/gl/stopwords.txt index c262147f8..5520cd275 100644 --- a/inc/lang/gl/stopwords.txt +++ b/inc/lang/gl/stopwords.txt @@ -1,246 +1,692 @@ -# Isto é unha listaxe das palabras que o indexador ignora (stopwords); unha por liña -# Cando edite este ficheiro asegúrese de usar os fins de liña UNIX (nova liña única) -# Non precisa incluír palabras de menos de 3 caracteres - estas son ignoradas de todas as formas -# Esta listaxe está baseada nas encontradas en http://www.ranks.nl/stopwords/ (aínda en proceso) -# Actualizouse a listaxe a partir as stopwords dispoñibilizadas por Paulo Malvar en: -# http://d108.dinaserver.com/hosting/paulomalvar.com/Paulo_Malvar_personal_webpage/Resources_files/Galician_single_and_multiword_stopwords_Verbal_Periphrases_and_Abbreviations.tgz -# e tamén as listaxes de palabras gramaticais na Galipedia: http://gl.wikipedia.org/wiki/Categoría_gramatical -abaixo -acerca +# Isto é unha lista das verbas que o indexador ignora, unha por liña +# Cando edites este arquivo asegúrate de usar remates de liña UNIX (nova liña única) +# Non precisas incluír verbas de menos de 3 caracteres - estas son ignoradas de todas formas +# Esta lista está baseada nas atopadas en http://www.ranks.nl/stopwords/ (en proceso aínda) +aberto +abonda +abrir +acabo +acceder +acceso +acordo +actitude +actividade +actividades +actual +actualización +actualizar +actualmente ademais +ademáis +adiante +agardar +agora agás +ainda aínda -alén -algún +aiquí +algo +alguen +algun algunha algunhas +alguén +algún algúns -amais +alta +amigos +ando +anima +anos ante +anterior +anteriores antes -após -aquel -aquela -aquelas -aqueles -aquén -aquilo -arredor -bardante -beira -canda +aparece +aparecen +apartado +aperta +apertas +apoio +aqui +aquí +arquivo +arquivos +artigo +artigos +asunto +atención +atopar +atopei +axuda +axudar +baixo +banda +base +bastante +benvido +boas +botar +buscador +buscar +cabo +cada +cadra +caixa +cales +calidade +calquer +calquera +cambio +camiño +campanha +campaña +campañas +campo cando +cantidade canto -carón -causa -cerca +cantos +cara +carallo +cartos +casa +case +caso +casos +catro +centro +certo +chea +chega +chegar +chisco +cidade +civil +claro +coas +coido +colaboración +colaborar +coma +comentar +comentario +comentarios +comezar como +comunicación +comunidade +común +concreto +condicións conforme -consonte +conseguir +conta +contactar +contacto +contas +contido +contidos contra +contrario +control +copia +correcto +correio +correo +correoe +correos +correspondente +cousa +cousas +coñecemento +coñezo +crear +creo +cuestión +cuestións +cunha +curioso +dabondo +dacordo +dados +darlle +data +datos +debate +debe +debemos +deben +deberiamos +debería +decidir +decisión +defecto +defensa deica -dela -delas +deixa +deixar +deixo deles +demais +demasiado +demáis dende -derredor -derriba +dentro +dereitos desde +dese +deseño despois +desta +deste +destes +diante +dias +dicir +diferentes +difícil +digo +dirección +directamente +directorio +discusión +discutir +distintas +distintos +distribución +dixen +dixo +doado +dous +duas +dunha durante -elas +días +dúas +dúbida +efectivamente +eiqui +eiquí eles +eliminar +email +empregar +emprego +empresa +empresas +enderezo +enderezos +engadir +enlace +enquisa +enriba +entendo +entidades +entrada +entrar entre -erades -eramos +entón +enviar +envio eran -eras +erro +erros esas +escribir eses +especial +especialmente +espero esta -está estaba -estabades -estabamos -estaban estades +estado estamos -están +estan +estar +estaría estas este estea -esteades -esteamos -estean -esteas estes -estivemos +estilo estiven -estiver -estivera -estiveramos -estiveran -estiverdes -estiveren -estivermos -estivese -estivesemos -estivesen -estivo +esto estou -excepto -fomos +está +están +estás +evidentemente +evitar +exactamente +exemplo +existe +facelo +facemos +facendo +facer +faga +fagan +fago +fala +falamos +falando +falar +falla +falo +falta +favor +fazer +feita +feito +ferreira +final +finalmente +fios +fixen +fixo +fondo fora -foramos -foran -fordes -foren -formos +forma +formas +foro +foron +foros fose -fosedes -fosemos -fosen -habemos +fotos +funciona +funcionamento +futuro +fóra +gracias +gran +grande +grandes +grazas +grupo +grupos +gusta +haber haberá -haberán -haberedes -haberei -haberemos habería -haberíades -haberíamos +había haxa -haxades -haxamos -haxan -haxas -houbemos -houben -houber -houbera -houberades -houberamos -houberan -houberemos -houberen -houberían -houbermos +historia +home +hora +horas houbese -houbesedes -houbesemos -houbesen houbo +hoxe +idea +ideas +ideia +igual +imos +importancia +importante +importantes +inda +info +información +informar +informe +inicial +iniciativa +inicio +intención +interesa +interesante +interese +iste isto +lado +lembro +letras +leva +levamos +levar +libre +libro +lista +listas +liña +liñas lles +local logo +longo +lugar +lugo +maior +maiores +maioría mais -máis -malia +mandar +maneira +manter +marcha +material +mañá +media mediante +medida +medio +mellor +membros menos +mensaxe +mensaxes +mentres +menú +mesa +meses +mesma mesmo +mesmos +meter meus +milhor +millor +minha +mirar miña -miñas +modificar +moita +moitas moito +moitos +momento +mudar +mundo +máis +mínimo +nada +nbsp +necesario +necesidade +nese +nesta +neste +nestes +ningunha +ninguén +ningún +noite +nome +normal nosa nosas noso nosos +nota +nova +novas +novo +novos +nunca nunha -onda +número +ofrece +ofrecer +ollo +onde +onte +oops +opción +opcións +opinión +orixinal outra +outras outro +outros +paga +palabras para -perante +parabens +parece +pareceme +parte +partes +participación +participar +partido +paréceme +pasa +pasado +pasar +paso +pedir +pena +pendente +pendentes +pensades +pensando +pensar +penso +pequena +pequeno +perfectamente +perfecto +permite pero +persoa +persoal +persoas +pode +podedes +podemos +poden +poder +poderiamos +podería +poderíamos +podes +podo +poida +poidan pois pola polas polo polos por -porén porque +porén +posibel +posibilidade +posibilidades +posible +posta +posto +pouco +poucos +poñer +precisamente +preciso +pregos +pregunta +presente +primeira +primeiro +principal +principio +proba +probar +probas +problema +problemas +proceso prol +propia +propio +proposta +propostas +propoño +propoñovos +proxecto +proxectos +publicar +punto +pódese +queda +quedar +quedou +queira quen -redor -rente +quere +queredes +queremos +queren +queres +quero +quizáis +quot +razón +real +realidade +realmente +recibir +referencia +relación +rematar +remate respecto -sacado -sacando -salvante -salvo +resposta +respostar +respostas +resto +resulta +resultado +revisar +revisión +riba +sabe +sabedes +saber +sacar +saúdo +saúdos +segue +seguinte +seguintes +seguir +segunda +segundo +seguramente +seguro +seica +semana +semanas +semella +semellante +sempre +sendo +senon +sentido senón +seria +serie será serán -serás -seredes -serei -seremos sería -seríamos -serían seus sexa -sexades -sexamos sexan -sexas +similar +simplemente +sitio +sitios +situación +soamente sobre -sodes +solución somos +suas +superior +suponho +suposto +supoño +sábado súas +tamen +tampouco tamén +tanto +tarde tedes temos +tempo +tempos +tendo +tenho +tentar +tería teña -teñades teñamos teñan -teñas +teñen teño -terá -terán -terás -teredes -terei -teremos -tería -teriades -teriamos -terían -terías -teus -tiña -tiñades -tiñamos -tiñan -tiñas -tiveches -tivemos +timos +tipo tiven -tiver -tivera -tiverades -tiveramos -tiveran -tiveras -tiverdes -tiveren -tivermos -tivese -tivesedes -tivesemos -tivesen -tiveses -tivestes -tivo +tiña +toda +todas todo +todos +tomar +total +totalmente +trabalho +traballando +traballar +traballo +traballos tras +trata través -túas +tres +troco +trocos +troques +tódalas +tódolos +última +último +últimos unha unhas -vostede -vostedes +única +únicamente +únicousar +usuario +usuarios +utilizar +vaia +vale +vamos +varias +varios +veces +verdade +vexo +veño +vida +vindeiro +visitantes +visitas +vista +visto +volta +vosa +wink +xeito +xeitos +xente +xerais +xeral +xunto +zona diff --git a/inc/lang/gl/subscr_digest.txt b/inc/lang/gl/subscr_digest.txt new file mode 100644 index 000000000..4ebd14dd9 --- /dev/null +++ b/inc/lang/gl/subscr_digest.txt @@ -0,0 +1,20 @@ +Ola. + +Houbo mudanzas na páxina @PAGE@ do wiki @TITLE@. +Estes son os trocos: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Revisión Antiga: @OLDPAGE@ +Revisión Nova: @NEWPAGE@ + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/gl/subscr_form.txt b/inc/lang/gl/subscr_form.txt new file mode 100644 index 000000000..e8a6fe6cf --- /dev/null +++ b/inc/lang/gl/subscr_form.txt @@ -0,0 +1,3 @@ +====== Xestión de Subscrición ====== + +Esta páxina permíteche xestionar as túas subscricións para a páxina e nome de espazo actuais.
\ No newline at end of file diff --git a/inc/lang/gl/subscr_list.txt b/inc/lang/gl/subscr_list.txt new file mode 100644 index 000000000..b62aae35d --- /dev/null +++ b/inc/lang/gl/subscr_list.txt @@ -0,0 +1,17 @@ +Ola. + +Houbo trocos en páxinas do nome de espazo @PAGE@ do wiki @TITLE@. +Estas son as páxinas que mudaron: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/gl/subscr_single.txt b/inc/lang/gl/subscr_single.txt new file mode 100644 index 000000000..77102d470 --- /dev/null +++ b/inc/lang/gl/subscr_single.txt @@ -0,0 +1,23 @@ +Ola. + +Houbo trocos na páxina @PAGE@ do wiki @TITLE@. +Estes son os trocos: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usuario : @USER@ +Resumo do Edición: @SUMMARY@ +Revisión Antiga: @OLDPAGE@ +Revisión Nova: @NEWPAGE@ + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/gl/updateprofile.txt b/inc/lang/gl/updateprofile.txt index bfd598117..8620dea12 100644 --- a/inc/lang/gl/updateprofile.txt +++ b/inc/lang/gl/updateprofile.txt @@ -1,5 +1,5 @@ -====== Actualizar o perfil da súa conta ====== +====== Actualizar o perfil da túa conta ====== -Só precisa cubrir os campos que desexe cambiar. Non pode cambiar o seu nome de persoa usuaria. +Só precisas cubrir os campos que desexes mudar. Non podes mudar o teu nome de usuario. diff --git a/inc/lang/gl/uploadmail.txt b/inc/lang/gl/uploadmail.txt index 914c3644c..2a7c24762 100644 --- a/inc/lang/gl/uploadmail.txt +++ b/inc/lang/gl/uploadmail.txt @@ -1,14 +1,14 @@ -Subiuse un ficheiro ao seu DokuWiki. Aquí van os detalles: +Subiuse un arquivo ao teu DokuWiki. Aquí van os pormenores: -Ficheiro : @MEDIA@ -Data : @DATE@ -Navegador : @BROWSER@ -Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ -Tamaño : @SIZE@ -Tipo MIME : @MIME@ -Usuaria/o : @USER@ +Arquivo : @MEDIA@ +Data : @DATE@ +Navegador : @BROWSER@ +Enderezo IP : @IPADDRESS@ +Nome do Host : @HOSTNAME@ +Tamaño : @SIZE@ +Tipo MIME : @MIME@ +Usuario : @USER@ --- +-- Este correo foi xerado polo DokuWiki en -@DOKUWIKIURL@ +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/gl/wordblock.txt b/inc/lang/gl/wordblock.txt index f219f8436..ec8d67aff 100644 --- a/inc/lang/gl/wordblock.txt +++ b/inc/lang/gl/wordblock.txt @@ -1,4 +1,4 @@ -====== Bloqueo por SPAM ====== +====== Bloqueo por Correo-lixo ====== -Os seus cambios **non** foron gardados porque conteñen unha ou varias palabras bloqueadas. Se tentou introducir spam no wiki -- Nen@ mal@! Se considera que é un erro, contacte coa persoa administradora deste Wiki. +Os teus trocos **non** foron gardados porque conteñen unha ou varias verbas bloqueadas. Se tentaches deixar correo-lixo no wiki -- Estívoche ben! Se consideras que é un erro, contacta co administrador deste Wiki. diff --git a/inc/lang/he/adminplugins.txt b/inc/lang/he/adminplugins.txt new file mode 100644 index 000000000..a7a6471f0 --- /dev/null +++ b/inc/lang/he/adminplugins.txt @@ -0,0 +1 @@ +===== תוספים נוספים =====
\ No newline at end of file diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 8545d1542..a411764d2 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -9,6 +9,7 @@ * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -51,6 +52,7 @@ $lang['btn_resendpwd'] = 'שלח סיסמה חדשה'; $lang['btn_draft'] = 'עריכת טיוטה'; $lang['btn_recover'] = 'שחזור טיוטה'; $lang['btn_draftdel'] = 'מחיקת טיוטה'; +$lang['btn_revert'] = 'שחזר'; $lang['loggedinas'] = 'רשום כ-'; $lang['user'] = 'שם משתמש'; $lang['pass'] = 'סיסמה'; @@ -65,6 +67,7 @@ $lang['profile'] = 'פרופיל'; $lang['badlogin'] = 'סליחה, שם המשתמש או הסיסמה שגויים'; $lang['minoredit'] = 'שינוים מינוריים'; $lang['draftdate'] = 'טיוטה נשמרה ב-'; +$lang['nosecedit'] = 'הדף השתנה בינתיים, הקטע שערכת אינו מעודכן - העמוד כולו נטען במקום זאת.'; $lang['regmissing'] = 'סליחה, עליך למלא את כל השדות'; $lang['reguexists'] = 'סליחה, משתמש בשם זה כבר נרשם'; $lang['regsuccess'] = 'הרשמה הצליחה, המשתמש נרשם והודעה נשלחה בדואר'; @@ -86,13 +89,16 @@ $lang['resendpwdnouser'] = 'סליחה, משתמש בשם זה לא נמצ $lang['resendpwdbadauth'] = 'סליחה, קוד אימות זה אינו תקף. יש לודא כי נעשה שימוש במלוא קישור האימות.'; $lang['resendpwdconfirm'] = 'קישור אימות נשלח בדוא"ל.'; $lang['resendpwdsuccess'] = 'סיסמה חדשה נשלחה בדואר'; +$lang['license'] = 'למעט מקרים בהם צוין אחרת, התוכן בוויקי זה זמין לפי הרשיון הבא:'; +$lang['licenseok'] = 'שים לב: עריכת דף זה מהווה הסכמה מצידך להצגת התוכן שהוספת לפי הרשיון הבא:'; +$lang['searchmedia'] = 'חפש שם קובץ:'; $lang['txt_upload'] = 'בחר קובץ להעלות'; $lang['txt_filename'] = 'הכנס שם לוויקי (בחירה)'; $lang['txt_overwrt'] = 'לכתוב במקום קובץ קיים'; $lang['lockedby'] = 'נעול על ידי'; $lang['lockexpire'] = 'נעילה פגה'; $lang['willexpire'] = 'נעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאתחל את הנעילה שנית'; -$lang['notsavedyet'] = 'קיימים שינויים שטרם נשמרו ואשר יאבדו \n האם להמשיך?'; +$lang['js']['notsavedyet'] = "קיימים שינויים שטרם נשמרו ואשר יאבדו \n האם להמשיך?"; $lang['rssfailed'] = 'כשל ב-RSS'; $lang['nothingfound'] = 'לא נמצאו תוצאות'; $lang['mediaselect'] = 'בחירת קובץ מדיה'; @@ -104,6 +110,7 @@ $lang['uploadexist'] = 'הקובץ כבר קיים. פעולה בוט $lang['uploadbadcontent'] = 'התוכן שהועלה לא תאם את הסיומת %s של הקובץ.'; $lang['uploadspam'] = 'ההעלאה נחסמה על ידי הרשימה השחורה של הספאם.'; $lang['uploadxss'] = 'ההעלאה נחסמה בשל חשד לתוכן זדוני.'; +$lang['uploadsize'] = 'הקובץ שהועלה היה גדול מדי. (מקסימום %s)'; $lang['deletesucc'] = 'קובץ %s נמחק'; $lang['deletefail'] = 'לא יכולתי למחוק "%s" -- בדקו הרשאות'; $lang['mediainuse'] = 'קובץ "%s" לא נמחק - הוא עדיין בשימוש'; @@ -114,6 +121,8 @@ $lang['js']['keepopen'] = 'השאר חלון פתוח בבחירה'; $lang['js']['hidedetails'] = 'הסתר פרטים'; $lang['js']['nosmblinks'] = ':( קישור למערכת קבצים של חלונות פועל רק בדפדפן אינטרנט אקספלורר. זה בסדר, אין צורך לעבור. אפשר להעתיק ולהדביק את הקישור'; +$lang['js']['linkwiz'] = 'אשף הקישורים'; +$lang['js']['linkto'] = 'קשר אל:'; $lang['js']['del_confirm'] = 'באמת למחוק?'; $lang['js']['mu_btn'] = 'העלאת קבצים מרובים'; $lang['mediausage'] = 'השתמש בתחביר הבא להתיחסות אל קובץ זה:'; @@ -122,7 +131,7 @@ $lang['mediaroot'] = 'root'; $lang['mediaupload'] = 'כאן ניתן להעלות קובץ למרחב השמות הנוכחי. ליצירת תתי-מרחבי שמות צרפם ב-"העלה" לתחילת שם הקובץ מופרדים בפסיקים'; $lang['mediaextchange'] = 'סיומת הקובץ השתנתה מ-.%s ל-.%s!'; $lang['reference'] = 'קישורים ל'; -$lang['ref_inuse'] = 'לא יכולתי למחוק קובץ, הדפים הבאים עדיין משתמשים בו:'; +$lang['ref_inuse'] = 'לא ניתן למחוק קובץ זה, כיוון שהדפים הבאים עדיין משתמשים בו:'; $lang['ref_hidden'] = 'יש קישורים לדפים ללא הרשאת קריאה'; $lang['hits'] = 'פגיעות'; $lang['quickhits'] = 'דפים שנמצאו'; @@ -133,7 +142,7 @@ $lang['diff'] = 'הצג שינוים מגרסה זו ועד ה $lang['diff2'] = 'הצגת הבדלים בין הגרסאות שנבחרו'; $lang['line'] = 'שורה'; $lang['breadcrumb'] = 'ביקורים אחרונים'; -$lang['youarehere'] = 'אתה נמצה כאן'; +$lang['youarehere'] = 'אתה נמצא כאן'; $lang['lastmod'] = 'שונה לאחרונה ב'; $lang['by'] = 'על ידי'; $lang['deleted'] = 'נמחק'; @@ -141,6 +150,8 @@ $lang['created'] = 'נוצר'; $lang['restored'] = 'שוחזר'; $lang['external_edit'] = 'עריכה חיצונית'; $lang['summary'] = 'תקציר העריכה'; +$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">תוסף פלאש לדפדפן</a> נדרש כדי להציג תוכן זה.'; +$lang['download'] = 'הורד מקטע'; $lang['mail_newpage'] = 'דף נוסף:'; $lang['mail_changed'] = 'דף שונה:'; $lang['mail_new_user'] = 'משתמש חדש:'; @@ -157,6 +168,9 @@ $lang['qb_h4'] = 'כותרת רמה 4'; $lang['qb_h5'] = 'כותרת רמה 5'; $lang['qb_h'] = 'כותרת'; $lang['qb_hs'] = 'בחירת כותרת'; +$lang['qb_hplus'] = 'כותרת ברמה גבוהה יותר'; +$lang['qb_hminus'] = 'כותרת ברמה נמוכה יותר'; +$lang['qb_hequal'] = 'כותרת באותה רמה'; $lang['qb_link'] = 'קישור פנימי'; $lang['qb_extlink'] = 'קישור חיצוני'; $lang['qb_hr'] = 'קו אופקי'; @@ -166,6 +180,7 @@ $lang['qb_media'] = 'תמונות או קובץ אחר'; $lang['qb_sig'] = 'הזנת חתימה'; $lang['qb_smileys'] = 'פרצופונים'; $lang['qb_chars'] = 'סימנים מיוחדים'; +$lang['upperns'] = 'עבור למרחב השם שברמה שמעל הנוכחית'; $lang['admin_register'] = 'להוסיף משתמש חדש'; $lang['metaedit'] = 'ערוך נתונים'; $lang['metasaveerr'] = 'כשל בשמירת נתונים'; @@ -215,10 +230,22 @@ $lang['mu_intro'] = 'כאן תוכל להעלות קבצים מרו $lang['mu_gridname'] = 'שם קובץ'; $lang['mu_gridsize'] = 'גודל'; $lang['mu_gridstat'] = 'סטאטןס'; +$lang['mu_namespace'] = 'מרחב שם'; $lang['mu_browse'] = 'חיפוש'; $lang['mu_toobig'] = 'גדול מדי'; $lang['mu_ready'] = 'מוכן להעלאה'; $lang['mu_done'] = 'סיים'; $lang['mu_fail'] = 'נכשל'; +$lang['mu_authfail'] = 'תקוף נעילת עריכה פג'; +$lang['mu_progress'] = '@PCT@% הועלה'; +$lang['mu_filetypes'] = 'סוגי קבצים מורשים'; $lang['mu_info'] = 'הקבצים הועלו'; $lang['mu_lasterr'] = 'שגיאה אחרונה:'; +$lang['recent_global'] = 'אתה צופה כעת בשינויים בתוך מרחב השם <b>%s</b>. אתה יכול גם <a href="%s">לצפות בשינויים האחרונים של כל הוויקי </a>.'; +$lang['years'] = 'לפני %d שנים'; +$lang['months'] = 'לפני %d חודשים'; +$lang['weeks'] = 'לפני %d שבועות'; +$lang['days'] = 'לפני %d ימים'; +$lang['hours'] = 'לפני %d שעות'; +$lang['minutes'] = 'לפני %d דקות'; +$lang['seconds'] = 'לפני %d שניות'; diff --git a/inc/lang/he/wordblock.txt b/inc/lang/he/wordblock.txt deleted file mode 100644 index b7c3f0a7c..000000000 --- a/inc/lang/he/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== הצפה נחסמה ====== - -השנויים שלך **לא** נשמרו מפני שהם מכילים מילה חסומה או יותר. אם באמת ניסית להציף את הויקי -- כלב רע! אם נראה לך כי זו טעות,ניתן ליצור קשר עם מנהל הויקי (מפני שאנחנו לא רוצים לקרוא לאנשים כלבים לחינם, זה פוגע בכלבים). - diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 05a20c25e..545498dee 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -92,7 +92,7 @@ $lang['txt_overwrt'] = 'Prepiši postojeću datoteku'; $lang['lockedby'] = 'Zaključao'; $lang['lockexpire'] = 'Zaključano do'; $lang['willexpire'] = 'Dokument kojeg mijenjate će biti zaključan još 1 minutu.\n Ukoliko želite i dalje raditi izmjene na dokumentu - kliknite na "Pregled".'; -$lang['notsavedyet'] = 'Vaše izmjene će se izgubiti.\nŽelite li nastaviti?'; +$lang['js']['notsavedyet'] = "Vaše izmjene će se izgubiti.\nŽelite li nastaviti?"; $lang['rssfailed'] = 'Došlo je do greške prilikom preuzimanja feed-a: '; $lang['nothingfound'] = 'Traženi dokumetni nisu pronađeni.'; $lang['mediaselect'] = 'Mediafile datoteke'; diff --git a/inc/lang/hr/wordblock.txt b/inc/lang/hr/wordblock.txt deleted file mode 100644 index 7faf03c19..000000000 --- a/inc/lang/hr/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM blokiranje ====== - -Vaše izmjene **nisu** snimljene jer sadrže jednu ili više blokiranih/zabranjenih riječi. Ukoliko mislite da je to greška - molimo Vas da kontaktirate administratora. diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index b9218f897..b3cd87c29 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -8,6 +8,8 @@ * @author Siaynoq Siaynoq <siaynoqmage@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,9 +43,6 @@ $lang['btn_back'] = 'Vissza'; $lang['btn_backlink'] = 'Hivatkozások'; $lang['btn_backtomedia'] = 'Vissza a médiafájlok kezeléséhez'; $lang['btn_subscribe'] = 'Oldalváltozások-hírlevél feliratkozás'; -$lang['btn_unsubscribe'] = 'Oldalváltozások-hírlevél leiratkozás'; -$lang['btn_subscribens'] = 'Névtér-változás hírlevél feliratkozás'; -$lang['btn_unsubscribens'] = 'Névtér-változás hírlevél leiratkozás'; $lang['btn_profile'] = 'Személyes beállítások'; $lang['btn_reset'] = 'Alaphelyzet'; $lang['btn_resendpwd'] = 'Új jelszó küldése'; @@ -97,7 +96,38 @@ $lang['txt_overwrt'] = 'Létező fájl felülírása'; $lang['lockedby'] = 'Jelenleg zárolta:'; $lang['lockexpire'] = 'A zárolás lejár:'; $lang['willexpire'] = 'Az oldalszerkesztési zárolásod körülbelül egy percen belül lejár.\nAz ütközések elkerülése végett használd az előnézet gombot a zárolási időzítés frissítéséhez.'; -$lang['notsavedyet'] = 'Elmentetlen változások vannak, amelyek el fognak veszni.\nTényleg ezt akarod?'; +$lang['js']['notsavedyet'] = 'Elmentetlen változások vannak, amelyek el fognak veszni. +Tényleg ezt akarod?'; +$lang['js']['searchmedia'] = 'Fájlok keresése'; +$lang['js']['keepopen'] = 'Tartsd nyitva ezt az ablakot a kijelöléshez!'; +$lang['js']['hidedetails'] = 'Részletek elrejtése'; +$lang['js']['mediatitle'] = 'Link beállítások'; +$lang['js']['mediadisplay'] = 'Link típusa'; +$lang['js']['mediaalign'] = 'Igazítás'; +$lang['js']['mediasize'] = 'Képméret'; +$lang['js']['mediatarget'] = 'Link'; +$lang['js']['mediaclose'] = 'Bezárás'; +$lang['js']['mediainsert'] = 'Beillesztés'; +$lang['js']['mediadisplayimg'] = 'Kép megtekintése.'; +$lang['js']['mediadisplaylnk'] = 'Link megtekintése.'; +$lang['js']['mediasmall'] = 'Kisebb méret'; +$lang['js']['mediamedium'] = 'Közepes méret'; +$lang['js']['medialarge'] = 'Nagyobb méret'; +$lang['js']['mediaoriginal'] = 'Eredeti'; +$lang['js']['medialnk'] = 'Link a részletekre'; +$lang['js']['mediadirect'] = 'Közvetlen link az eredetire'; +$lang['js']['medianolnk'] = 'Nincsen link'; +$lang['js']['medianolink'] = 'Ne linkelje a képet'; +$lang['js']['medialeft'] = 'Kép igazítása balra.'; +$lang['js']['mediaright'] = 'Kép igazítása jobbra.'; +$lang['js']['mediacenter'] = 'Kép igazítása középre.'; +$lang['js']['medianoalign'] = 'Nem legyen igazítás.'; +$lang['js']['nosmblinks'] = 'A Windows megosztott könyvtárak kereszthivatkozása csak Microsoft Internet Explorerben működik közvetlenül. +A hivatkozást másolni és beszúrni ettől fügetlenül mndig tudod.'; +$lang['js']['linkwiz'] = 'Hivatkozás varázsló'; +$lang['js']['linkto'] = 'Hivatkozás erre:'; +$lang['js']['del_confirm'] = 'Valóban törölni akarod a kiválasztott elem(ek)et?'; +$lang['js']['mu_btn'] = 'Több fájl feltöltése egyszerre'; $lang['rssfailed'] = 'Hiba történt ennek a betöltésekor: '; $lang['nothingfound'] = 'Semmit sem találtam.'; $lang['mediaselect'] = 'Médiafájl kiválasztása'; @@ -115,15 +145,7 @@ $lang['deletefail'] = 'A "%s" fájl nem törölhető. - Ellenőrizd a $lang['mediainuse'] = 'A "%s" fájl nem törlődött - még használat alatt van.'; $lang['namespaces'] = 'Névtér'; $lang['mediafiles'] = 'Elérhető fájlok itt:'; -$lang['js']['searchmedia'] = 'Fájlok keresése'; -$lang['js']['keepopen'] = 'Tartsd nyitva ezt az ablakot a kijelöléshez!'; -$lang['js']['hidedetails'] = 'Részletek elrejtése'; -$lang['js']['nosmblinks'] = 'A Windows megosztott könyvtárak kereszthivatkozása csak Microsoft Internet Explorerben működik közvetlenül. -A hivatkozást másolni és beszúrni ettől fügetlenül mndig tudod.'; -$lang['js']['linkwiz'] = 'Hivatkozás varázsló'; -$lang['js']['linkto'] = 'Hivatkozás erre:'; -$lang['js']['del_confirm'] = 'Valóban törölni akarod a kiválasztott elem(ek)et?'; -$lang['js']['mu_btn'] = 'Több fájl feltöltése egyszerre'; +$lang['accessdenied'] = 'Nincsen jogod az oldal megtekintésére.'; $lang['mediausage'] = 'A következő formában hivatkozhatsz erre az állományra:'; $lang['mediaview'] = 'Eredeti állomány megtekintése'; $lang['mediaroot'] = 'kiindulási hely'; @@ -139,6 +161,7 @@ $lang['current'] = 'aktuális'; $lang['yours'] = 'A te változatod'; $lang['diff'] = 'a különbségeket mutatja az aktuális változathoz képest'; $lang['diff2'] = 'a különbségeket mutatja a kiválasztott változatok között'; +$lang['difflink'] = 'Összehasonlító nézet linkje'; $lang['line'] = 'sorszám'; $lang['breadcrumb'] = 'Nyomvonal'; $lang['youarehere'] = 'Itt vagy'; @@ -153,6 +176,7 @@ $lang['noflash'] = 'Ennek a tartalomnak a megtekintéséhez <a hre $lang['download'] = 'Kódrészlet letöltése'; $lang['mail_newpage'] = 'új oldal jött létre:'; $lang['mail_changed'] = 'oldal megváltozott:'; +$lang['mail_subscribe_list'] = 'oldalak megváltoztak ebben a névtérben:'; $lang['mail_new_user'] = 'Új felhasználó:'; $lang['mail_upload'] = 'állományt töltöttek fel:'; $lang['qb_bold'] = 'Félkövér szöveg'; @@ -195,11 +219,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formátum'; $lang['img_camera'] = 'Fényképező típusa'; $lang['img_keywords'] = 'Kulcsszavak'; -$lang['subscribe_success'] = '%s feliratkozott a(z) %s oldal változás-követő hírlevelére'; -$lang['subscribe_error'] = 'Hiba történt, miközben %s feliratkozni próbált a(z) %s oldal változás-követő hírlevelére'; -$lang['subscribe_noaddress'] = 'Nincs beállítva az e-mail címed, így nem tudsz feliratkozni az oldal változás-követő hírlevelére'; -$lang['unsubscribe_success'] = '%s leiratkozott az oldal változás-követő hírleveléről'; -$lang['unsubscribe_error'] = 'Hiba történt, miközben %s leiratkozni próbált az oldal változás-követő hírleveléről'; +$lang['subscr_subscribe_success'] = '%s hozzáadva az értesítési listához: %s'; +$lang['subscr_subscribe_error'] = 'Hiba történt %s hozzáadásakor az értesítési listához: %s'; +$lang['subscr_subscribe_noaddress'] = 'Nincsen e-mail cím megadva az adataidnál, így a rendszer nem tudott hozzáadni az értesítési listához'; +$lang['subscr_unsubscribe_success'] = '%s eltávolítva az értesítési listából: %s'; +$lang['subscr_unsubscribe_error'] = 'Hiba történt %s eltávolításakor az értesítési listából: %s'; +$lang['subscr_already_subscribed'] = '%s már feliratkozott erre: %s'; +$lang['subscr_not_subscribed'] = '%s nincsen feliratkozva erre: %s'; +$lang['subscr_m_not_subscribed'] = 'Jelenleg nem vagy feliratkozva erre az oldalra vagy névtérre'; +$lang['subscr_m_new_header'] = 'Feliratkozás hozzáadása'; +$lang['subscr_m_current_header'] = 'Feliratkozások'; +$lang['subscr_m_unsubscribe'] = 'Leiratkozás'; +$lang['subscr_m_subscribe'] = 'Feliratkozás'; +$lang['subscr_m_receive'] = 'Küldj'; +$lang['subscr_style_every'] = 'e-mailt minden változásról'; +$lang['subscr_style_digest'] = 'összefoglaló e-mailt oldalanként (minden %.2f nap)'; +$lang['subscr_style_list'] = 'egy listát a módosított oldalakról a legutóbbi e-mail óta (minden %.2f nap)'; $lang['authmodfailed'] = 'Hibás felhasználó-aznosítási módszer van beállítva. Légy szíves értesítsd a Wiki-gazdát!'; $lang['authtempfail'] = 'A felhasználó azonosítás átmenetileg nem működik. Ha sokáig így lenne, légy szíves értesítsd a Wiki-gazdát!'; $lang['i_chooselang'] = 'Válassz nyelvet'; @@ -224,6 +259,7 @@ $lang['i_pol0'] = 'Nyitott Wiki (mindenki olvashatja, írhatja, $lang['i_pol1'] = 'Publikus Wiki (mindenki olvashatja, de csak regisztrált felhasználók írhatják, és tölthetnek fel fájlokat)'; $lang['i_pol2'] = 'Zárt Wiki (csak regisztrált felhasználók olvashatják, írhatják és tölthetnek fel fájlokat)'; $lang['i_retry'] = 'Újra'; +$lang['i_license'] = 'Kérlek válassz licenszt a feltöltött tartalomhoz:'; $lang['mu_intro'] = 'Itt több fájlt is fel tudsz tölteni egyszerre. Kattints a "Kiválaszt" gombra és add hozzá a listához. Nyomd meg a Feltöltés gombot, amikor elkészültél.'; $lang['mu_gridname'] = 'Fájlnév'; $lang['mu_gridsize'] = 'Méret'; @@ -247,3 +283,4 @@ $lang['days'] = '%d nappal ezelőtt'; $lang['hours'] = '%d órával ezelőtt'; $lang['minutes'] = '%d perccel ezelőtt'; $lang['seconds'] = '%d másodperccel ezelőtt'; +$lang['wordblock'] = 'A változásokat nem sikerült menteni, mert tiltott tartalom van benne (spam)'; diff --git a/inc/lang/hu/subscr_digest.txt b/inc/lang/hu/subscr_digest.txt new file mode 100644 index 000000000..62e777faf --- /dev/null +++ b/inc/lang/hu/subscr_digest.txt @@ -0,0 +1,17 @@ +Szia, + +A @PAGE@ oldal a @TITLE wikiben megváltozott. +Itt vannak az eltérések: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Régi verzió: @OLDPAGE@ +Új verzió: @NEWPAGE@ + +Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@. + +-- +Ezt a levelet a DokuWiki generálta +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/hu/subscr_form.txt b/inc/lang/hu/subscr_form.txt new file mode 100644 index 000000000..22fa94015 --- /dev/null +++ b/inc/lang/hu/subscr_form.txt @@ -0,0 +1,3 @@ +====== Feliratkozás kezelés ====== + +Ezen az oldalon van lehetőséged kezelni a feliratkozásaidat az adott oldalra vagy névtérre.
\ No newline at end of file diff --git a/inc/lang/hu/subscr_list.txt b/inc/lang/hu/subscr_list.txt new file mode 100644 index 000000000..f68e6fc0a --- /dev/null +++ b/inc/lang/hu/subscr_list.txt @@ -0,0 +1,14 @@ +Szia, + +A @PAGE@ névtérhez tartozó oldalak megváltoztak a @TITLE wikiben. +Itt vannak a módosított oldalak: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@. + +-- +Ezt a levelet a DokuWiki generálta +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/hu/subscr_single.txt b/inc/lang/hu/subscr_single.txt new file mode 100644 index 000000000..a17a98cfd --- /dev/null +++ b/inc/lang/hu/subscr_single.txt @@ -0,0 +1,20 @@ +Szia, + +A @PAGE@ oldal a @TITLE wikiben megváltozott. +Itt vannak az eltérések: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dátum: @DATE@ +Felhasználó: @USER@ +Összefoglaló: @SUMMARY@ +Régi verzió: @OLDPAGE@ +Új verzió: @NEWPAGE@ + +Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @NEWPAGE@. + +-- +Ezt a levelet a DokuWiki generálta +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/hu/wordblock.txt b/inc/lang/hu/wordblock.txt deleted file mode 100644 index 2fe2efa9b..000000000 --- a/inc/lang/hu/wordblock.txt +++ /dev/null @@ -1,6 +0,0 @@ -====== SPAM szűrés ====== - -A változtatásaid **nem** mentettük, mert egy vagy több tiltott szót tartalmaz. Ha kéretlen reklám anyagot ("SPAM") próbáltál erre a Wikire rakni, akkor szégyelld magad. - -Ha azt gondolod, hogy valami hibáról, vagy félreértésről van szó, akkor lépj kapcsolatba a Wiki-gazdával. - diff --git a/inc/lang/ia/admin.txt b/inc/lang/ia/admin.txt new file mode 100644 index 000000000..f81ff3170 --- /dev/null +++ b/inc/lang/ia/admin.txt @@ -0,0 +1,3 @@ +====== Administration ====== + +Hic infra se trova un lista de cargas administrative disponibile in DokuWiki. diff --git a/inc/lang/ia/adminplugins.txt b/inc/lang/ia/adminplugins.txt new file mode 100644 index 000000000..ad8f794b0 --- /dev/null +++ b/inc/lang/ia/adminplugins.txt @@ -0,0 +1 @@ +===== Plug-ins additional =====
\ No newline at end of file diff --git a/inc/lang/ia/backlinks.txt b/inc/lang/ia/backlinks.txt new file mode 100644 index 000000000..de5d2ac56 --- /dev/null +++ b/inc/lang/ia/backlinks.txt @@ -0,0 +1,3 @@ +====== Retroligamines ====== + +Isto es un lista de paginas que contine ligamines de retorno al pagina actual.
\ No newline at end of file diff --git a/inc/lang/ia/conflict.txt b/inc/lang/ia/conflict.txt new file mode 100644 index 000000000..576cb7e3f --- /dev/null +++ b/inc/lang/ia/conflict.txt @@ -0,0 +1,5 @@ +====== Un version plus nove existe ====== + +Existe un version plus nove del documento que tu ha modificate. Isto occurre si un altere usator cambia le documento durante que tu lo modifica. + +Examina minutiosemente le differentias monstrate hic infra, postea decide qual version debe esser conservate. Si tu selige ''salveguardar'', tu version essera salveguardate. Preme ''cancellar'' pro conservar le version actual. diff --git a/inc/lang/ia/denied.txt b/inc/lang/ia/denied.txt new file mode 100644 index 000000000..044e1532d --- /dev/null +++ b/inc/lang/ia/denied.txt @@ -0,0 +1,3 @@ +====== Permission refusate ====== + +Pardono, tu non ha le derectos requisite pro continuar. Pote esser que tu ha oblidate de aperir un session.
\ No newline at end of file diff --git a/inc/lang/ia/diff.txt b/inc/lang/ia/diff.txt new file mode 100644 index 000000000..dbfa70f13 --- /dev/null +++ b/inc/lang/ia/diff.txt @@ -0,0 +1,3 @@ +====== Differentias ====== + +Isto te monstra le differentias inter duo versiones del pagina.
\ No newline at end of file diff --git a/inc/lang/ia/draft.txt b/inc/lang/ia/draft.txt new file mode 100644 index 000000000..ae8de13f4 --- /dev/null +++ b/inc/lang/ia/draft.txt @@ -0,0 +1,5 @@ +====== Version provisori trovate ====== + +Tu ultime session de modification in iste pagina non ha essite concludite correctemente. DokuWiki ha automaticamente salveguardate un version provisori durante tu labor. Ora tu pote usar iste version provisori pro continuar le modification. Hic infra tu vide le datos salveguardate de tu ultime session. + +Per favor decide si tu vole //recuperar// le session de modification perdite, //deler// le version provisori o //cancellar// le processo de modification.
\ No newline at end of file diff --git a/inc/lang/ia/edit.txt b/inc/lang/ia/edit.txt new file mode 100644 index 000000000..5bc58362a --- /dev/null +++ b/inc/lang/ia/edit.txt @@ -0,0 +1 @@ +Modifica le pagina e preme "Salveguardar". Vide [[wiki:syntax]] pro le syntaxe wiki. Per favor modifica le paginas solmente si tu pote **meliorar** lo. Si tu vole testar alcun cosas, apprende facer tu prime passos in le [[playground:playground|parco de jocos]].
\ No newline at end of file diff --git a/inc/lang/ia/editrev.txt b/inc/lang/ia/editrev.txt new file mode 100644 index 000000000..192381f8c --- /dev/null +++ b/inc/lang/ia/editrev.txt @@ -0,0 +1,2 @@ +**Tu ha cargate un version ancian del documento!** Si tu lo salveguarda, tu crea un nove version con iste datos. +----
\ No newline at end of file diff --git a/inc/lang/ia/index.txt b/inc/lang/ia/index.txt new file mode 100644 index 000000000..5957cc2ab --- /dev/null +++ b/inc/lang/ia/index.txt @@ -0,0 +1,3 @@ +====== Indice ====== + +Isto es un indice super tote le paginas disponibile, ordinate per [[doku>namespaces|spatio de nomines]]. diff --git a/inc/lang/ia/install.html b/inc/lang/ia/install.html new file mode 100644 index 000000000..01b6f43b5 --- /dev/null +++ b/inc/lang/ia/install.html @@ -0,0 +1,13 @@ +<p>Iste pagina te assiste in le prime installation e configuration de +<a href="http://dokuwiki.org">Dokuwiki</a>. Ulterior informationes super iste installator es disponibile in le +<a href="http://dokuwiki.org/installer">pagina de documentation</a> de illo.</p> + +<p>DokuWiki usa files ordinari pro le immagazinage de paginas wiki e altere informationes associate con iste paginas (p.ex. imagines, indices de recerca, versiones ancian, etc). Pro poter functionar, DokuWiki +<strong>debe</strong> haber accesso de scriptura al directorios que contine iste files. Iste installator non es capabile de configurar le permissiones de directorios. Isto normalmente debe esser facite directemente con le linea de commandos, o si tu usa un albergo web, via FTP o via le pannello de controlo de tu albergo (p.ex. cPanel).</p> + +<p>Iste installator configurara tu installation de DokuWiki pro +<acronym title="listas de controlo de accesso">ACL</acronym>, lo que permitte crear contos administrator, e forni accesso al menu administrative de DokuWiki pro installar plug-ins, gerer usatores, gerer accesso a paginas wiki e alterar configurationes. Isto non es necessari pro le functionamento de DokuWiki, nonobstante, illo rendera DokuWiki plus facile de administrar.</p> + +<p>Le usatores experte o con exigentias special pro le installation deberea usar iste ligamines pro detalios concernente le +<a href="http://dokuwiki.org/install">instructiones de installation</a> +e <a href="http://dokuwiki.org/config">configurationes</a>.</p> diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php new file mode 100644 index 000000000..f68467543 --- /dev/null +++ b/inc/lang/ia/lang.php @@ -0,0 +1,283 @@ +<?php +/** + * ia language file + * + * This file was initially built by fetching translations from other + * Wiki projects. See the @url lines below. Additional translations + * and fixes where done for DokuWiki by the people mentioned in the + * lines starting with @author + * + * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesIa.php?view=co + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = '”'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Modificar iste pagina'; +$lang['btn_source'] = 'Monstrar codice-fonte'; +$lang['btn_show'] = 'Monstrar pagina'; +$lang['btn_create'] = 'Crear iste pagina'; +$lang['btn_search'] = 'Cercar'; +$lang['btn_save'] = 'Salveguardar'; +$lang['btn_preview'] = 'Previsualisar'; +$lang['btn_top'] = 'Retornar al initio'; +$lang['btn_newer'] = '<< plus recente'; +$lang['btn_older'] = 'minus recente >>'; +$lang['btn_revs'] = 'Versiones ancian'; +$lang['btn_recent'] = 'Modificationes recente'; +$lang['btn_upload'] = 'Incargar'; +$lang['btn_cancel'] = 'Cancellar'; +$lang['btn_index'] = 'Indice'; +$lang['btn_secedit'] = 'Modificar'; +$lang['btn_login'] = 'Aperir session'; +$lang['btn_logout'] = 'Clauder session'; +$lang['btn_admin'] = 'Admin'; +$lang['btn_update'] = 'Actualisar'; +$lang['btn_delete'] = 'Deler'; +$lang['btn_back'] = 'Retornar'; +$lang['btn_backlink'] = 'Retroligamines'; +$lang['btn_backtomedia'] = 'Retornar al selection de files multimedia'; +$lang['btn_subscribe'] = 'Gerer subscriptiones'; +$lang['btn_profile'] = 'Actualisar profilo'; +$lang['btn_reset'] = 'Reinitialisar'; +$lang['btn_resendpwd'] = 'Inviar nove contrasigno'; +$lang['btn_draft'] = 'Modificar version provisori'; +$lang['btn_recover'] = 'Recuperar version provisori'; +$lang['btn_draftdel'] = 'Deler version provisori'; +$lang['btn_revert'] = 'Restaurar'; +$lang['loggedinas'] = 'Session aperite como'; +$lang['user'] = 'Nomine de usator'; +$lang['pass'] = 'Contrasigno'; +$lang['newpass'] = 'Nove contrasigno'; +$lang['oldpass'] = 'Confirmar contrasigno actual'; +$lang['passchk'] = 'un altere vice'; +$lang['remember'] = 'Memorar me'; +$lang['fullname'] = 'Nomine real'; +$lang['email'] = 'E-mail'; +$lang['register'] = 'Crear conto'; +$lang['profile'] = 'Profilo de usator'; +$lang['badlogin'] = 'Le nomine de usator o le contrasigno es incorrecte.'; +$lang['minoredit'] = 'Modificationes minor'; +$lang['draftdate'] = 'Version provisori automaticamente salveguardate le'; +$lang['nosecedit'] = 'Le pagina ha essite modificate intertanto. Le informationes del section es ora obsolete, dunque le pagina complete ha essite cargate in su loco.'; +$lang['regmissing'] = 'Es necessari completar tote le campos.'; +$lang['reguexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.'; +$lang['regsuccess'] = 'Le conto ha essite create e le contrasigno ha essite inviate per e-mail.'; +$lang['regsuccess2'] = 'Le conto ha essite create.'; +$lang['regmailfail'] = 'Il pare que un error occurreva durante le invio del message con le contrasigno. Per favor contacta le administrator!'; +$lang['regbadmail'] = 'Le adresse de e-mail date pare esser invalide. Si tu pensa que isto es un error, contacta le administrator.'; +$lang['regbadpass'] = 'Le duo contrasignos date non es identic. Per favor reproba.'; +$lang['regpwmail'] = 'Tu contrasigno de DokuWiki'; +$lang['reghere'] = 'Tu non ha ancora un conto? Crea un, simplemente.'; +$lang['profna'] = 'Iste wiki non supporta le modification de profilos.'; +$lang['profnochange'] = 'Nulle modification, nihil a facer.'; +$lang['profnoempty'] = 'Un nomine o adresse de e-mail vacue non es permittite.'; +$lang['profchanged'] = 'Actualisation del profilo de usator succedite.'; +$lang['pwdforget'] = 'Contrasigno oblidate? Obtene un altere'; +$lang['resendna'] = 'Iste wiki non supporta le invio de un nove contrasigno.'; +$lang['resendpwd'] = 'Inviar nove contrasigno pro'; +$lang['resendpwdmissing'] = 'Es necessari completar tote le campos.'; +$lang['resendpwdnouser'] = 'Iste usator non ha essite trovate in le base de datos.'; +$lang['resendpwdbadauth'] = 'Iste codice de authentication non es valide. Assecura te que tu ha usate le ligamine de confirmation complete.'; +$lang['resendpwdconfirm'] = 'Un ligamine de confirmation ha essite inviate per e-mail.'; +$lang['resendpwdsuccess'] = 'Tu nove contrasigno ha essite inviate per e-mail.'; +$lang['license'] = 'Excepte ubi indicate alteremente, le contento in iste wiki es disponibile sub le licentia sequente:'; +$lang['licenseok'] = 'Nota ben! Per modificar iste pagina tu accepta que tu contento essera publicate sub le conditiones del licentia sequente:'; +$lang['searchmedia'] = 'Cercar file con nomine:'; +$lang['searchmedia_in'] = 'Cercar in %s'; +$lang['txt_upload'] = 'Selige le file a incargar'; +$lang['txt_filename'] = 'Incargar como (optional)'; +$lang['txt_overwrt'] = 'Reimplaciar le file existente'; +$lang['lockedby'] = 'Actualmente serrate per'; +$lang['lockexpire'] = 'Serratura expira le'; +$lang['willexpire'] = 'Tu serratura super le modification de iste pagina expirara post un minuta.\nPro evitar conflictos, usa le button Previsualisar pro reinitialisar le timer del serratura.'; +$lang['js']['notsavedyet'] = "Le modificationes non salveguardate essera perdite.\nRealmente continuar?"; +$lang['rssfailed'] = 'Un error occurreva durante le obtention de iste syndication:'; +$lang['nothingfound'] = 'Nihil ha essite trovate.'; +$lang['mediaselect'] = 'Files multimedia'; +$lang['fileupload'] = 'Incargar file multimedia'; +$lang['uploadsucc'] = 'Incargamento succedite'; +$lang['uploadfail'] = 'Incargamento fallite. Pote esser que le permissiones es incorrecte.'; +$lang['uploadwrong'] = 'Incargamento refusate. Iste typo de file es prohibite!'; +$lang['uploadexist'] = 'File ja existe. Nihil facite.'; +$lang['uploadbadcontent'] = 'Le typo del contento incargate non corresponde al extension del nomine de file "%s".'; +$lang['uploadspam'] = 'Le incargamento ha essite blocate per le lista nigre anti-spam.'; +$lang['uploadxss'] = 'Le incargamento ha essite blocate a causa de contento possibilemente malitiose.'; +$lang['uploadsize'] = 'Le file incargate es troppo grande. (Max. %s)'; +$lang['deletesucc'] = 'Le file "%s" ha essite delite.'; +$lang['deletefail'] = '"%s" non poteva esser delite. Verifica le permissiones.'; +$lang['mediainuse'] = 'Le file "%s" non ha essite delite proque illo es ancora in uso.'; +$lang['namespaces'] = 'Spatios de nomines'; +$lang['mediafiles'] = 'Files disponibile in'; +$lang['js']['searchmedia'] = 'Cercar files'; +$lang['js']['keepopen'] = 'Mantener fenestra aperte post selection'; +$lang['js']['hidedetails'] = 'Celar detalios'; +$lang['js']['mediatitle'] = 'Configuration del ligamine'; +$lang['js']['mediadisplay'] = 'Typo de ligamine'; +$lang['js']['mediaalign'] = 'Alineamento'; +$lang['js']['mediasize'] = 'Dimension del imagine'; +$lang['js']['mediatarget'] = 'Destination del ligamine'; +$lang['js']['mediaclose'] = 'Clauder'; +$lang['js']['mediainsert'] = 'Inserer'; +$lang['js']['mediadisplayimg'] = 'Monstrar le imagine.'; +$lang['js']['mediadisplaylnk'] = 'Monstrar solmente le imagine.'; +$lang['js']['mediasmall'] = 'Version parve'; +$lang['js']['mediamedium'] = 'Version medie'; +$lang['js']['medialarge'] = 'Version grande'; +$lang['js']['mediaoriginal'] = 'Version original'; +$lang['js']['medialnk'] = 'Ligamine al pagina de detalios'; +$lang['js']['mediadirect'] = 'Ligamine directe verso le original'; +$lang['js']['medianolnk'] = 'Nulle ligamine'; +$lang['js']['medianolink'] = 'Non ligar verso le imagine'; +$lang['js']['medialeft'] = 'Alinear le imagine verso le sinistra.'; +$lang['js']['mediaright'] = 'Alinear le imagine verso le dextra.'; +$lang['js']['mediacenter'] = 'Alinear le imagine in le medio.'; +$lang['js']['medianoalign'] = 'Non alinear.'; +$lang['js']['nosmblinks'] = 'Le ligamines a ressources de Windows functiona solmente in Microsoft Internet Explorer. +Tu pote nonobstante copiar e collar le ligamine.'; +$lang['js']['linkwiz'] = 'Assistente pro ligamines'; +$lang['js']['linkto'] = 'Ligar verso:'; +$lang['js']['del_confirm'] = 'Realmente deler le entrata(s) seligite?'; +$lang['js']['mu_btn'] = 'Incargar plure files simultaneemente'; +$lang['mediausage'] = 'Usa le syntaxe sequente pro referer a iste file:'; +$lang['mediaview'] = 'Vider file original'; +$lang['mediaroot'] = 'radice'; +$lang['mediaupload'] = 'Incarga hic un file in le spatio de nomines actual. Pro crear subspatios de nomines, antepone los al nomine de file "Incargar como", separate per signos de duo punctos (":").'; +$lang['mediaextchange'] = 'Extension del file cambiate de .%s a .%s!'; +$lang['reference'] = 'Referentias pro'; +$lang['ref_inuse'] = 'Le file non pote esser delite proque illo es ancora in uso per le sequente paginas:'; +$lang['ref_hidden'] = 'Alcun referentias es in paginas pro le quales tu non ha le permission de lectura'; +$lang['hits'] = 'Resultatos'; +$lang['quickhits'] = 'Nomines de pagina correspondente'; +$lang['toc'] = 'Tabula de contento'; +$lang['current'] = 'actual'; +$lang['yours'] = 'Tu version'; +$lang['diff'] = 'Monstrar differentias con versiones actual'; +$lang['diff2'] = 'Monstrar differentias inter le versiones seligite'; +$lang['line'] = 'Linea'; +$lang['breadcrumb'] = 'Tracia'; +$lang['youarehere'] = 'Tu es hic'; +$lang['lastmod'] = 'Ultime modification'; +$lang['by'] = 'per'; +$lang['deleted'] = 'removite'; +$lang['created'] = 'create'; +$lang['restored'] = 'ancian version restaurate'; +$lang['external_edit'] = 'modification externe'; +$lang['summary'] = 'Modificar summario'; +$lang['noflash'] = 'Le <a href="http://www.adobe.com/products/flashplayer/">plug-in Flash de Adobe</a> es necessari pro monstrar iste contento.'; +$lang['download'] = 'Discargar fragmento'; +$lang['mail_newpage'] = 'pagina addite:'; +$lang['mail_changed'] = 'pagina modificate:'; +$lang['mail_subscribe_list'] = 'paginas modificate in spatio de nomines:'; +$lang['mail_new_user'] = 'nove usator:'; +$lang['mail_upload'] = 'file incargate:'; +$lang['qb_bold'] = 'Texto grasse'; +$lang['qb_italic'] = 'Texto italic'; +$lang['qb_underl'] = 'Texto sublineate'; +$lang['qb_code'] = 'Texto de codice'; +$lang['qb_strike'] = 'Texto cancellate'; +$lang['qb_h1'] = 'Titulo a nivello 1'; +$lang['qb_h2'] = 'Titulo a nivello 2'; +$lang['qb_h3'] = 'Titulo a nivello 3'; +$lang['qb_h4'] = 'Titulo a nivello 4'; +$lang['qb_h5'] = 'Titulo a nivello 5'; +$lang['qb_h'] = 'Titulo'; +$lang['qb_hs'] = 'Seliger titulo'; +$lang['qb_hplus'] = 'Titulo superior'; +$lang['qb_hminus'] = 'Titulo inferior'; +$lang['qb_hequal'] = 'Titulo al mesme nivello'; +$lang['qb_link'] = 'Ligamine interne'; +$lang['qb_extlink'] = 'Ligamine externe'; +$lang['qb_hr'] = 'Linea horizontal'; +$lang['qb_ol'] = 'Elemento de lista ordinate'; +$lang['qb_ul'] = 'Elemento de lista non ordinate'; +$lang['qb_media'] = 'Adder imagines e altere files'; +$lang['qb_sig'] = 'Inserer signatura'; +$lang['qb_smileys'] = 'Emoticones '; +$lang['qb_chars'] = 'Characteres special'; +$lang['upperns'] = 'Saltar al spatio de nomines superior'; +$lang['admin_register'] = 'Adder nove usator'; +$lang['metaedit'] = 'Modificar metadatos'; +$lang['metasaveerr'] = 'Scriptura de metadatos fallite'; +$lang['metasaveok'] = 'Metadatos salveguardate'; +$lang['img_backto'] = 'Retornar a'; +$lang['img_title'] = 'Titulo'; +$lang['img_caption'] = 'Legenda'; +$lang['img_date'] = 'Data'; +$lang['img_fname'] = 'Nomine de file'; +$lang['img_fsize'] = 'Dimension'; +$lang['img_artist'] = 'Photographo'; +$lang['img_copyr'] = 'Copyright'; +$lang['img_format'] = 'Formato'; +$lang['img_camera'] = 'Camera'; +$lang['img_keywords'] = 'Parolas-clave'; +$lang['subscr_subscribe_success'] = '%s addite al lista de subscription de %s'; +$lang['subscr_subscribe_error'] = 'Error durante le addition de %s al lista de subscription de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il non ha un adresse associate con tu conto. Tu non pote esser addite al lista de subscription.'; +$lang['subscr_unsubscribe_success'] = '%s removite del lista de subscription de %s'; +$lang['subscr_unsubscribe_error'] = 'Error durante le remotion de %s del lista de subscription de %s'; +$lang['subscr_already_subscribed'] = '%s es ja subscribite a %s'; +$lang['subscr_not_subscribed'] = '%s non es subscribite a %s'; +$lang['subscr_m_not_subscribed'] = 'Tu non es actualmente subscribite al pagina o spatio de nomines actual.'; +$lang['subscr_m_new_header'] = 'Adder subscription'; +$lang['subscr_m_current_header'] = 'Subscriptiones actual'; +$lang['subscr_m_unsubscribe'] = 'Cancellar subscription'; +$lang['subscr_m_subscribe'] = 'Subscriber'; +$lang['subscr_m_receive'] = 'Reciper'; +$lang['subscr_style_every'] = 'un message pro cata modification'; +$lang['subscr_style_digest'] = 'un digesto de modificationes pro cata pagina'; +$lang['subscr_style_list'] = 'lista de paginas modificate depost le ultime e-mail'; +$lang['authmodfailed'] = 'Configuration incorrecte de authentication de usator. Per favor informa le administrator de tu wiki.'; +$lang['authtempfail'] = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.'; +$lang['i_chooselang'] = 'Selige tu lingua'; +$lang['i_installer'] = 'Installator de DokuWiki'; +$lang['i_wikiname'] = 'Nomine del wiki'; +$lang['i_enableacl'] = 'Activar ACL (recommendate)'; +$lang['i_superuser'] = 'Superusator'; +$lang['i_problems'] = 'Le installator ha trovate alcun problemas, indicate hic infra. Tu debe resolver iste problemas pro poter continuar.'; +$lang['i_modified'] = 'Pro motivos de securitate, iste script functiona solmente con un installation de DokuWiki nove e non modificate. +Tu debe re-extraher le files del pacchetto discargate, o consultar le <a href="http://dokuwiki.org/install">instructiones de installation</a> complete pro altere optiones.'; +$lang['i_funcna'] = 'Le function PHP <code>%s</code> non es disponibile. Pote esser que tu albergo web lo ha disactivate pro un ration o altere.'; +$lang['i_phpver'] = 'Le version de PHP <code>%s</code> es plus ancian que le version requisite <code>%s</code>. Es necessari actualisar le installation de PHP.'; +$lang['i_permfail'] = '<code>%s</code> non permitte le accesso de scriptura a DokuWiki. Tu debe reparar le permissiones de iste directorio!'; +$lang['i_confexists'] = '<code>%s</code> ja existe'; +$lang['i_writeerr'] = 'Impossibile crear <code>%s</code>. Tu debe verificar le permissiones de directorios/files e crear iste file manualmente.'; +$lang['i_badhash'] = 'dokuwiki.php non recognoscite o modificate (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - valor vacue o invalide'; +$lang['i_success'] = 'Le configuration ha succedite. Tu pote ora deler le file install.php. Continua a +<a href="doku.php">tu nove DokuWiki</a>.'; +$lang['i_failure'] = 'Alcun errores occurreva durante le scriptura del files de configuration. Es possibile que tu debe remediar iste errores manualmente ante que +tu pote usar <a href="doku.php">tu nove DokuWiki</a>.'; +$lang['i_policy'] = 'Politica de ACL interne'; +$lang['i_pol0'] = 'Wiki aperte (lectura, scriptura, incargamento pro omnes)'; +$lang['i_pol1'] = 'Wiki public (lectura pro omnes, scriptura e incargamento pro usatores registrate)'; +$lang['i_pol2'] = 'Wiki claudite (lectura, scriptura e incargamento solmente pro usatores registrate)'; +$lang['i_retry'] = 'Reprobar'; +$lang['mu_intro'] = 'Hic tu pote incargar plure files insimul. Clicca super le button Navigar pro adder los al cauda. Preme Incargar quando tu ha finite.'; +$lang['mu_gridname'] = 'Nomine de file'; +$lang['mu_gridsize'] = 'Dimension'; +$lang['mu_gridstat'] = 'Stato'; +$lang['mu_namespace'] = 'Spatio de nomines'; +$lang['mu_browse'] = 'Navigar'; +$lang['mu_toobig'] = 'troppo grande'; +$lang['mu_ready'] = 'preste pro incargamento'; +$lang['mu_done'] = 'complete'; +$lang['mu_fail'] = 'fallite'; +$lang['mu_authfail'] = 'session expirate'; +$lang['mu_progress'] = '@PCT@% incargate'; +$lang['mu_filetypes'] = 'Typos de file permittite'; +$lang['mu_info'] = 'files incargate.'; +$lang['mu_lasterr'] = 'Ultime error:'; +$lang['recent_global'] = 'Tu observa actualmente le modificationes intra le spatio de nomines <b>%s</b>. Tu pote etiam <a href="%s">vider le modificationes recente de tote le wiki</a>.'; +$lang['years'] = '%d annos retro'; +$lang['months'] = '%d menses retro'; +$lang['weeks'] = '%d septimanas retro'; +$lang['days'] = '%d dies retro'; +$lang['hours'] = '%d horas retro'; +$lang['minutes'] = '%d minutas retro'; +$lang['seconds'] = '%d secundas retro'; diff --git a/inc/lang/ia/locked.txt b/inc/lang/ia/locked.txt new file mode 100644 index 000000000..726aabb34 --- /dev/null +++ b/inc/lang/ia/locked.txt @@ -0,0 +1,3 @@ +====== Pagina serrate ====== + +Iste pagina es actualmente serrate proque un altere usator lo modifica in iste momento. Tu debe attender usque iste usator fini le modification o usque al expiration del serratura.
\ No newline at end of file diff --git a/inc/lang/ia/login.txt b/inc/lang/ia/login.txt new file mode 100644 index 000000000..4c428f358 --- /dev/null +++ b/inc/lang/ia/login.txt @@ -0,0 +1,3 @@ +====== Aperir session ====== + +Tu non es identificate! Entra tu credentiales de authentication pro aperir un session. Tu debe haber activate le cookies pro aperir un session.
\ No newline at end of file diff --git a/inc/lang/ia/mailtext.txt b/inc/lang/ia/mailtext.txt new file mode 100644 index 000000000..14c1a3a60 --- /dev/null +++ b/inc/lang/ia/mailtext.txt @@ -0,0 +1,17 @@ +Un pagina in tu DokuWiki ha essite addite o modificate. Ecce le detalios: + +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host : @HOSTNAME@ +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ +Summario: @SUMMARY@ +Usator : @USER@ + +@DIFF@ + + +-- +Iste e-mail ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/newpage.txt b/inc/lang/ia/newpage.txt new file mode 100644 index 000000000..8db7aa797 --- /dev/null +++ b/inc/lang/ia/newpage.txt @@ -0,0 +1,3 @@ +====== Iste topico non existe ancora ====== + +Tu ha sequite un ligamine verso un topico que non existe ancora. Si tu ha le permission requisite, tu pote crear lo con le button "Crear iste pagina".
\ No newline at end of file diff --git a/inc/lang/ia/norev.txt b/inc/lang/ia/norev.txt new file mode 100644 index 000000000..75e44b969 --- /dev/null +++ b/inc/lang/ia/norev.txt @@ -0,0 +1,3 @@ +====== Version non existe ====== + +Le version specificate non existe. Usa le button "Versiones ancian" pro un lista de versiones ancian de iste documento.
\ No newline at end of file diff --git a/inc/lang/ia/password.txt b/inc/lang/ia/password.txt new file mode 100644 index 000000000..9ad93d6ed --- /dev/null +++ b/inc/lang/ia/password.txt @@ -0,0 +1,10 @@ +Salute @FULLNAME@! + +Ecce tu datos de usator pro @TITLE@ a @DOKUWIKIURL@ + +Nomine de usator : @LOGIN@ +Contrasigno : @PASSWORD@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/preview.txt b/inc/lang/ia/preview.txt new file mode 100644 index 000000000..22b958baf --- /dev/null +++ b/inc/lang/ia/preview.txt @@ -0,0 +1,3 @@ +====== Previsualisation ====== + +Isto es un previsualisation de tu texto. Memora: le pagina **non** ha ancora essite salveguardate!
\ No newline at end of file diff --git a/inc/lang/ia/pwconfirm.txt b/inc/lang/ia/pwconfirm.txt new file mode 100644 index 000000000..a490f7929 --- /dev/null +++ b/inc/lang/ia/pwconfirm.txt @@ -0,0 +1,14 @@ +Salute @FULLNAME@! + +Alcuno ha requestate un nove contrasigno pro tu conto de @TITLE@ +a @DOKUWIKIURL@ + +Si tu non ha requestate un nove contrasigno, alora simplemente ignora iste message. + +Pro confirmar que le requesta realmente ha essite inviate per te, per favor usa le ligamine sequente. + +@CONFIRM@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/read.txt b/inc/lang/ia/read.txt new file mode 100644 index 000000000..e7e80dbfc --- /dev/null +++ b/inc/lang/ia/read.txt @@ -0,0 +1 @@ +Iste pagina es pro lectura solmente. Tu pote vider le codice-fonte, ma non modificar lo. Contacta tu administrator si tu pensa que isto es errate.
\ No newline at end of file diff --git a/inc/lang/ia/recent.txt b/inc/lang/ia/recent.txt new file mode 100644 index 000000000..ba39c3ff5 --- /dev/null +++ b/inc/lang/ia/recent.txt @@ -0,0 +1,3 @@ +====== Modificationes recente ====== + +Le sequente paginas ha essite modificate recentemente.
\ No newline at end of file diff --git a/inc/lang/ia/register.txt b/inc/lang/ia/register.txt new file mode 100644 index 000000000..22c4e4ada --- /dev/null +++ b/inc/lang/ia/register.txt @@ -0,0 +1,3 @@ +====== Crear un nove conto de usator ====== + +Completa tote le informationes hic infra pro crear un nove conto in iste wiki. Assecura te de fornir un **adresse de e-mail valide!** Si le systema non te demanda de entrar un contrasigno hic, un nove contrasigno essera inviate a iste adresse. Le nomine de usator debe esser un [[doku>pagename|nomine de pagina]] valide. diff --git a/inc/lang/ia/registermail.txt b/inc/lang/ia/registermail.txt new file mode 100644 index 000000000..c4e9d56bc --- /dev/null +++ b/inc/lang/ia/registermail.txt @@ -0,0 +1,14 @@ +Un nove conto de usator ha essite create. Ecce le detalios: + +Nomine de usator : @NEWUSER@ +Nomine complete : @NEWNAME@ +E-mail : @NEWEMAIL@ + +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host : @HOSTNAME@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/resendpwd.txt b/inc/lang/ia/resendpwd.txt new file mode 100644 index 000000000..97bcac02a --- /dev/null +++ b/inc/lang/ia/resendpwd.txt @@ -0,0 +1,3 @@ +====== Inviar nove contrasigno ====== + +Per favor entra tu nomine de usator in le formulario hic infra pro requestar un nove contrasigno pro tu conto in iste wiki. Un ligamine de confirmation essera inviate a tu adresse de e-mail registrate.
\ No newline at end of file diff --git a/inc/lang/ia/revisions.txt b/inc/lang/ia/revisions.txt new file mode 100644 index 000000000..e914edb61 --- /dev/null +++ b/inc/lang/ia/revisions.txt @@ -0,0 +1,3 @@ +====== Versiones ancian ====== + +Ecce le versiones ancian del documento presente. Pro reverter lo a un version ancian, selige un version del lista in basso, clicca "Modificar iste pagina" e salveguarda lo.
\ No newline at end of file diff --git a/inc/lang/ia/searchpage.txt b/inc/lang/ia/searchpage.txt new file mode 100644 index 000000000..c53683371 --- /dev/null +++ b/inc/lang/ia/searchpage.txt @@ -0,0 +1,5 @@ +====== Recerca ====== + +Le resultatos de tu recerca se trova hic infra. Si tu non ha trovate lo que tu cerca, tu pote crear o modificar le pagina nominate secundo tu consulta con le button appropriate. + +===== Resultatos =====
\ No newline at end of file diff --git a/inc/lang/ia/showrev.txt b/inc/lang/ia/showrev.txt new file mode 100644 index 000000000..60ee2a7f6 --- /dev/null +++ b/inc/lang/ia/showrev.txt @@ -0,0 +1,2 @@ +**Isto es un version ancian del documento!** +----
\ No newline at end of file diff --git a/inc/lang/ia/stopwords.txt b/inc/lang/ia/stopwords.txt new file mode 100644 index 000000000..e3e513509 --- /dev/null +++ b/inc/lang/ia/stopwords.txt @@ -0,0 +1,38 @@ +# Isto es un lista de parolas que le generator de indices ignora, un parola per linea. +# Si tu modifica iste file, assecura te de usar le fines de linea UNIX (newline singule). +# Non es necessari includer parolas plus curte que 3 characteres - istes es ignorate in omne caso. +a +ab +circa +com +como +como +con +de +e +es +essera +esserea +esseva +essite +ex +illo +in +iste +istes +le +le +les +lo +lor +o +pro +quando +que +qui +super +sur +tu +ubi +un +www diff --git a/inc/lang/ia/subscr_digest.txt b/inc/lang/ia/subscr_digest.txt new file mode 100644 index 000000000..ba7b92d8b --- /dev/null +++ b/inc/lang/ia/subscr_digest.txt @@ -0,0 +1,20 @@ +Salute! + +Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate. +Ecce le modificationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@SUBSCRIBE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/subscr_form.txt b/inc/lang/ia/subscr_form.txt new file mode 100644 index 000000000..f63a30d4c --- /dev/null +++ b/inc/lang/ia/subscr_form.txt @@ -0,0 +1,4 @@ +====== Gestion de subscriptiones ====== + +Iste pagina permitte gerer tu subscriptiones pro le pagina e spatio de nomines actual. +
\ No newline at end of file diff --git a/inc/lang/ia/subscr_list.txt b/inc/lang/ia/subscr_list.txt new file mode 100644 index 000000000..9f93db252 --- /dev/null +++ b/inc/lang/ia/subscr_list.txt @@ -0,0 +1,17 @@ +Salute! + +Alcun paginas in le spatio de nomines @PAGE@ del wiki @TITLE@ ha cambiate. +Ecce le paginas con modiicationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@SUBSCRIBE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/subscr_single.txt b/inc/lang/ia/subscr_single.txt new file mode 100644 index 000000000..3d6ef7103 --- /dev/null +++ b/inc/lang/ia/subscr_single.txt @@ -0,0 +1,26 @@ +Salute! + +Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate. +Ecce le modificationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usator : @USER@ +Summario: @SUMMARY@ +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@NEWPAGE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ia/updateprofile.txt b/inc/lang/ia/updateprofile.txt new file mode 100644 index 000000000..3968d3cde --- /dev/null +++ b/inc/lang/ia/updateprofile.txt @@ -0,0 +1,3 @@ +====== Actualisa le profilo de tu conto ====== + +Solmente es necessari completar le campos que tu vole cambiar. Non es possibile cambiar tu nomine de usator.
\ No newline at end of file diff --git a/inc/lang/ia/uploadmail.txt b/inc/lang/ia/uploadmail.txt new file mode 100644 index 000000000..8f120f25b --- /dev/null +++ b/inc/lang/ia/uploadmail.txt @@ -0,0 +1,14 @@ +Un file ha essite incargate in tu DokuWiki. Ecce le detalios: + +File : @MEDIA@ +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host: @HOSTNAME@ +Dimension : @SIZE@ +Typo MIME : @MIME@ +Usator : @USER@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/id-ni/lang.php b/inc/lang/id-ni/lang.php index 2fc631373..4e26677e0 100644 --- a/inc/lang/id-ni/lang.php +++ b/inc/lang/id-ni/lang.php @@ -75,5 +75,5 @@ $lang['resendpwdnouser'] = 'Bologö dödöu, lö masöndra zangoguna da\'a $lang['resendpwdconfirm'] = 'No tefaohe\'ö link famaduhu\'ö ba imele.'; $lang['resendpwdsuccess'] = 'No tefa\'ohe\'ö kode sibohou ba imele.'; $lang['txt_upload'] = 'Fili file ni fa\'ohe\'ö'; -$lang['notsavedyet'] = 'Famawu\'a si lö mu\'irö\'ö taya. \nSinduhu ötohugö?'; +$lang['js']['notsavedyet'] = "Famawu\'a si lö mu\'irö\'ö taya. \nSinduhu ötohugö?"; $lang['mediaselect'] = 'Media file'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 447abaf1a..3ea1b394a 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -86,7 +86,7 @@ $lang['txt_overwrt'] = 'File yang telah ada akan ditindih'; $lang['lockedby'] = 'Sedang dikunci oleh'; $lang['lockexpire'] = 'Penguncian artikel sampai dengan'; $lang['willexpire'] = 'Halaman yang sedang Anda kunci akan berakhir dalam waktu kurang lebih satu menit.\nUntuk menghindari konflik, gunakan tombol Preview untuk me-reset timer pengunci.'; -$lang['notsavedyet'] = 'Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?'; +$lang['js']['notsavedyet'] = "Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?"; $lang['rssfailed'] = 'Error terjadi saat mengambil feed: '; $lang['nothingfound'] = 'Tidak menemukan samasekali.'; $lang['mediaselect'] = 'Pilihan Mediafile'; diff --git a/inc/lang/id/wordblock.txt b/inc/lang/id/wordblock.txt deleted file mode 100644 index 1e40ce381..000000000 --- a/inc/lang/id/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Maaf, tulisan Anda **tidak disimpan** karena terdapat satu atau lebih kata-kata yang **tabu**. Jika Anda mencoba melakukan SPAM wiki ini -- Bangsat lu! Tetapi, jika Anda pikir ini adalah kesalahan sistem, harap hubungi administrator wiki ini. - diff --git a/inc/lang/it/adminplugins.txt b/inc/lang/it/adminplugins.txt index 6a5a30573..4f17d6da4 100644 --- a/inc/lang/it/adminplugins.txt +++ b/inc/lang/it/adminplugins.txt @@ -1 +1 @@ -===== Plugin addizionali =====
\ No newline at end of file +===== Plugin aggiuntivi =====
\ No newline at end of file diff --git a/inc/lang/it/backlinks.txt b/inc/lang/it/backlinks.txt index 452019db5..ad5a9c23b 100644 --- a/inc/lang/it/backlinks.txt +++ b/inc/lang/it/backlinks.txt @@ -1,4 +1,4 @@ ====== Puntano qui ====== -Questa è una lista delle pagine che sembrano avere un collegamento alla pagina corrente. +Questa è una lista delle pagine che sembrano avere un collegamento alla pagina attuale. diff --git a/inc/lang/it/conflict.txt b/inc/lang/it/conflict.txt index 44789a365..bcb90d28d 100644 --- a/inc/lang/it/conflict.txt +++ b/inc/lang/it/conflict.txt @@ -2,5 +2,5 @@ Esiste una versione più recente del documento che hai modificato. Questo può accadere quando un altro utente ha già modificato il documento durante le tue modifiche. -Esamina le differenze mostrate di seguito, quindi decidi quale versione mantenere. Se scegli ''salva'', la tua versione verrà salvata. Clicca su ''annulla'' per mantenere la versione corrente. +Esamina le differenze mostrate di seguito, quindi decidi quale versione mantenere. Se scegli ''Salva'', la tua versione verrà salvata. Clicca su ''Annulla'' per mantenere la versione attuale. diff --git a/inc/lang/it/denied.txt b/inc/lang/it/denied.txt index e87eeeada..c6ba610c4 100644 --- a/inc/lang/it/denied.txt +++ b/inc/lang/it/denied.txt @@ -1,5 +1,5 @@ ====== Accesso negato ====== -Non hai i diritti per continuare. Hai forse dimenticato di effettuare il login? +Non hai i diritti per continuare. Hai forse dimenticato di effettuare l'accesso? diff --git a/inc/lang/it/diff.txt b/inc/lang/it/diff.txt index 6b48ed44e..5a41eaaec 100644 --- a/inc/lang/it/diff.txt +++ b/inc/lang/it/diff.txt @@ -1,4 +1,4 @@ ====== Differenze ====== -Queste sono le differenze tra la revisione selezionata e la versione corrente della pagina. +Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina. diff --git a/inc/lang/it/draft.txt b/inc/lang/it/draft.txt index 9932786ba..479d0fafc 100644 --- a/inc/lang/it/draft.txt +++ b/inc/lang/it/draft.txt @@ -2,5 +2,5 @@ La tua ultima sessione di modifica su questa pagina non è stata completata correttamente. DokuWiki ha salvato in automatico una bozza durante il tuo lavoro, che puoi ora utilizzare per continuare le tue modifiche. Di seguito puoi trovare i dati che sono stati salvati dalla tua ultima sessione. -Decidi se vuoi //recuperare// la sessione di modifica, //cancellare// la bozza salavata in automatico oppure //annullare// le modifiche. +Decidi se vuoi //recuperare// la sessione di modifica, //eliminare// la bozza salavata in automatico oppure //annullare// le modifiche. diff --git a/inc/lang/it/edit.txt b/inc/lang/it/edit.txt index fdfaf463e..8f2ba973a 100644 --- a/inc/lang/it/edit.txt +++ b/inc/lang/it/edit.txt @@ -1,2 +1,2 @@ -Modifica la pagina e clicca su ''Salva''. Vedi [[wiki:syntax]] per la sintassi riconosciuta da Wiki. Modifica questa pagina solo se puoi **apportare dei miglioramenti**. Se vuoi solo fare degli esperimenti ed imparare come fare i primi passi usa [[playground:playground]]. +Modifica la pagina e clicca su ''Salva''. Vedi [[wiki:syntax]] per la sintassi riconosciuta dal Wiki. Modifica questa pagina solo se puoi **apportare dei miglioramenti**. Se vuoi solo fare degli esperimenti ed imparare come fare i primi passi usa [[playground:playground]]. diff --git a/inc/lang/it/editrev.txt b/inc/lang/it/editrev.txt index 0a309fa24..502320083 100644 --- a/inc/lang/it/editrev.txt +++ b/inc/lang/it/editrev.txt @@ -1,2 +1,2 @@ -**Hai caricato una precedente revisione del documento!** Se salvi questa pagina creerai una nuova versione con questi dati. +**Hai caricato una revisione precedente del documento!** Se salvi questa pagina creerai una nuova versione con questi dati. ----
\ No newline at end of file diff --git a/inc/lang/it/index.txt b/inc/lang/it/index.txt index 8d5f00409..52c6fbc5d 100644 --- a/inc/lang/it/index.txt +++ b/inc/lang/it/index.txt @@ -1,4 +1,4 @@ ====== Indice ====== -Questo è un indice di tutte le pagine disponibili ordinate per [[doku>namespaces|categoria]]. +Questo è un indice di tutte le pagine disponibili ordinate per [[doku>namespaces|categorie]]. diff --git a/inc/lang/it/install.html b/inc/lang/it/install.html index 5bc4b0dc2..471734412 100644 --- a/inc/lang/it/install.html +++ b/inc/lang/it/install.html @@ -21,4 +21,4 @@ da amministrare.</p> <p>Gli utenti esperti o con particolari esigenze di installazione dovrebbero far riferimento ai seguenti link per i dettagli riguardanti <a href="http://dokuwiki.org/install">istruzioni per l'installazione</a> -and <a href="http://dokuwiki.org/config">parametri di configurazione</a>.</p> +e i <a href="http://dokuwiki.org/config">parametri di configurazione</a>.</p> diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 827967d0f..4bfafb060 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -12,6 +12,8 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Matteo Carnevali <rekstorm@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -40,29 +42,27 @@ $lang['btn_login'] = 'Entra'; $lang['btn_logout'] = 'Esci'; $lang['btn_admin'] = 'Amministrazione'; $lang['btn_update'] = 'Aggiorna'; -$lang['btn_delete'] = 'Cancella'; +$lang['btn_delete'] = 'Elimina'; $lang['btn_back'] = 'Indietro'; $lang['btn_backlink'] = 'Backlinks'; $lang['btn_backtomedia'] = 'Torna alla selezione file'; $lang['btn_subscribe'] = 'Sottoscrivi modifiche'; -$lang['btn_unsubscribe'] = 'Cancella sottoscrizione'; -$lang['btn_subscribens'] = 'Sottoscrivi modifiche della categoria'; -$lang['btn_unsubscribens'] = 'Cancella sottoscrizione modifiche della categoria'; $lang['btn_profile'] = 'Aggiorna profilo'; $lang['btn_reset'] = 'Annulla'; $lang['btn_resendpwd'] = 'Invia nuova password'; $lang['btn_draft'] = 'Modifica bozza'; $lang['btn_recover'] = 'Ripristina bozza'; -$lang['btn_draftdel'] = 'Cancella bozza'; +$lang['btn_draftdel'] = 'Elimina bozza'; +$lang['btn_revert'] = 'Ripristina'; $lang['loggedinas'] = 'Collegato come'; $lang['user'] = 'Nome utente'; $lang['pass'] = 'Password'; $lang['newpass'] = 'Nuova password'; -$lang['oldpass'] = 'Conferma password corrente'; +$lang['oldpass'] = 'Conferma password attuale'; $lang['passchk'] = 'Ripeti password'; $lang['remember'] = 'Ricorda automaticamente'; $lang['fullname'] = 'Nome completo'; -$lang['email'] = 'E-Mail'; +$lang['email'] = 'Email'; $lang['register'] = 'Registrazione'; $lang['profile'] = 'Profilo utente'; $lang['badlogin'] = 'Il nome utente o la password non sono validi.'; @@ -70,11 +70,11 @@ $lang['minoredit'] = 'Modifiche minori'; $lang['draftdate'] = 'Bozza salvata in automatico il'; $lang['nosecedit'] = 'La pagina nel frattempo è cambiata, la sezione info è scaduta, caricata invece la pagina intera.'; $lang['regmissing'] = 'Devi riempire tutti i campi.'; -$lang['reguexists'] = 'Il nome utente inserito esiste già .'; -$lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via e-mail.'; +$lang['reguexists'] = 'Il nome utente inserito esiste già.'; +$lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via email.'; $lang['regsuccess2'] = 'L\'utente è stato creato.'; -$lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della e-mail. Per favore contatta il tuo amministratore!'; -$lang['regbadmail'] = 'L\'indirizzo e-mail fornito sembra essere non valido - se pensi che ci sia un errore contatta il tuo amministratore'; +$lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della email. Contatta il tuo amministratore!'; +$lang['regbadmail'] = 'L\'indirizzo email fornito sembra essere non valido - se pensi che ci sia un errore contatta il tuo amministratore'; $lang['regbadpass'] = 'Le due password inserite non coincidono, prova di nuovo.'; $lang['regpwmail'] = 'La tua password DokuWiki'; $lang['reghere'] = 'Non hai ancora un accesso? Registrati qui.'; @@ -87,18 +87,50 @@ $lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove pas $lang['resendpwd'] = 'Invia nuova password per'; $lang['resendpwdmissing'] = 'Devi riempire tutti i campi.'; $lang['resendpwdnouser'] = 'Impossibile trovare questo utente nel database.'; -$lang['resendpwdbadauth'] = 'Spiacente, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.'; +$lang['resendpwdbadauth'] = 'Spiacenti, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.'; $lang['resendpwdconfirm'] = 'Un link di conferma è stato spedito via email.'; $lang['resendpwdsuccess'] = 'La nuova password è stata spedita via email.'; $lang['license'] = 'Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è sotto la seguente licenza:'; $lang['licenseok'] = 'Nota: modificando questa pagina accetti di rilasciare il contenuto sotto la seguente licenza:'; +$lang['searchmedia'] = 'Cerca nome file:'; +$lang['searchmedia_in'] = 'Cerca in &s'; $lang['txt_upload'] = 'Seleziona un file da caricare'; -$lang['txt_filename'] = 'Inserisci un "wikiname" (opzionale)'; +$lang['txt_filename'] = 'Carica come (opzionale)'; $lang['txt_overwrt'] = 'Sovrascrivi file esistente'; $lang['lockedby'] = 'Attualmente bloccato da'; $lang['lockexpire'] = 'Il blocco scade alle'; $lang['willexpire'] = 'Il tuo blocco su questa pagina scadrà tra circa un minuto.\nPer evitare incongruenze usa il pulsante di anteprima per prolungare il periodo di blocco.'; -$lang['notsavedyet'] = 'Le modifiche non salvate andranno perse.\nContinuare?'; +$lang['js']['notsavedyet'] = 'Le modifiche non salvate andranno perse.'; +$lang['js']['searchmedia'] = 'Cerca file'; +$lang['js']['keepopen'] = 'Tieni la finestra aperta durante la selezione'; +$lang['js']['hidedetails'] = 'Nascondi Dettagli'; +$lang['js']['mediatitle'] = 'Impostazioni link'; +$lang['js']['mediadisplay'] = 'Tipo link'; +$lang['js']['mediaalign'] = 'Allineamento'; +$lang['js']['mediasize'] = 'Dimensioni immagine'; +$lang['js']['mediatarget'] = 'Target del link'; +$lang['js']['mediaclose'] = 'Chiudi'; +$lang['js']['mediainsert'] = 'Inserisci'; +$lang['js']['mediadisplayimg'] = 'Mostra l\'immagine.'; +$lang['js']['mediadisplaylnk'] = 'Mostra solo il link.'; +$lang['js']['mediasmall'] = 'Versione piccola'; +$lang['js']['mediamedium'] = 'Versione media'; +$lang['js']['medialarge'] = 'Versione grande'; +$lang['js']['mediaoriginal'] = 'Versione originale'; +$lang['js']['medialnk'] = 'Link alla pagina dei dettagli'; +$lang['js']['mediadirect'] = 'Link all\'originale'; +$lang['js']['medianolnk'] = 'No link'; +$lang['js']['medianolink'] = 'Non linkare l\'immagine.'; +$lang['js']['medialeft'] = 'Allinea l\'immagine a sinistra.'; +$lang['js']['mediaright'] = 'Allinea l\'immagine a destra.'; +$lang['js']['mediacenter'] = 'Allinea l\'immagine al centro.'; +$lang['js']['medianoalign'] = 'Non allineare.'; +$lang['js']['nosmblinks'] = 'I collegamenti con le risorse condivise di Windows funzionano solo con Microsoft Internet Explorer. +Puoi fare un copia/incolla di questo collegamento.'; +$lang['js']['linkwiz'] = 'Collegamento guidato'; +$lang['js']['linkto'] = 'Collega a:'; +$lang['js']['del_confirm'] = 'Eliminare veramente questa voce?'; +$lang['js']['mu_btn'] = 'Carica più di un file alla volta'; $lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; $lang['nothingfound'] = 'Nessun risultato trovato.'; $lang['mediaselect'] = 'Selezione dei file'; @@ -111,37 +143,34 @@ $lang['uploadbadcontent'] = 'Il contenuto caricato non corrisponde all\'est $lang['uploadspam'] = 'Il caricamento è stato bloccato dalla lista nera di spam.'; $lang['uploadxss'] = 'Il caricamento è stato bloccato perchè il contenuto potrebbe essere malizioso.'; $lang['uploadsize'] = 'Il file caricato è troppo grande. (massimo %s)'; -$lang['deletesucc'] = 'Il file "%s" è stato cancellato.'; -$lang['deletefail'] = '"%s" non può essere cancellato - verifica i permessi.'; -$lang['mediainuse'] = 'Il file "%s" non è stato cancellato - è ancora in uso.'; +$lang['deletesucc'] = 'Il file "%s" è stato eliminato.'; +$lang['deletefail'] = '"%s" non può essere eliminato - verifica i permessi.'; +$lang['mediainuse'] = 'Il file "%s" non è stato eliminato - è ancora in uso.'; $lang['namespaces'] = 'Categorie'; $lang['mediafiles'] = 'File disponibili in'; -$lang['js']['keepopen'] = 'Tieni la finestra aperta durante la selezione'; -$lang['js']['hidedetails'] = 'Nascondi Dettagli'; -$lang['js']['nosmblinks'] = 'I collegamenti con le risorse condivise di Windows funzionano solo con Microsoft Internet Explorer. -Puoi fare un copia/incolla di questo collegamento.'; -$lang['js']['mu_btn'] = 'Carica più di un file alla volta'; +$lang['accessdenied'] = 'Non sei autorizzato a vedere questa pagina.'; $lang['mediausage'] = 'Usa la seguente sintassi per riferirti a questo file:'; $lang['mediaview'] = 'Mostra file originale'; $lang['mediaroot'] = 'directory principale'; -$lang['mediaupload'] = 'Carica un file nella categoria corrente. Per creare sottocategorie, falle precedere al nome del file nella casella "Carica come", separandole da due punti (:).'; +$lang['mediaupload'] = 'Carica un file nella categoria attuale. Per creare sottocategorie, falle precedere dal nome del file nella casella "Carica come", separandole da due punti (:).'; $lang['mediaextchange'] = 'Estensione del file modificata da .%s a .%s!'; $lang['reference'] = 'Riferimenti a'; -$lang['ref_inuse'] = 'Il file non può essere cancellato in quanto è ancora utilizzato dalle seguenti pagine:'; +$lang['ref_inuse'] = 'Il file non può essere eliminato in quanto è ancora utilizzato dalle seguenti pagine:'; $lang['ref_hidden'] = 'Sono presenti alcuni riferimenti a pagine per le quali non hai i permessi di lettura'; $lang['hits'] = 'Occorrenze trovate'; $lang['quickhits'] = 'Pagine trovate'; $lang['toc'] = 'Indice'; -$lang['current'] = 'versione corrente'; +$lang['current'] = 'versione attuale'; $lang['yours'] = 'la tua versione'; $lang['diff'] = 'differenze con la versione attuale'; $lang['diff2'] = 'differenze tra le versioni selezionate'; +$lang['difflink'] = 'Link all visualizzazione della comparazione'; $lang['line'] = 'Linea'; $lang['breadcrumb'] = 'Traccia'; $lang['youarehere'] = 'Ti trovi qui'; $lang['lastmod'] = 'Ultima modifica'; $lang['by'] = 'da'; -$lang['deleted'] = 'cancellata'; +$lang['deleted'] = 'eliminata'; $lang['created'] = 'creata'; $lang['restored'] = 'versione precedente ripristinata'; $lang['external_edit'] = 'modifica esterna'; @@ -150,7 +179,8 @@ $lang['noflash'] = 'E\' necessario <a href="http://www.adobe.com/p $lang['download'] = 'Scarica lo "snippet"'; $lang['mail_newpage'] = 'pagina aggiunta:'; $lang['mail_changed'] = 'pagina modificata:'; -$lang['mail_new_user'] = 'Nuovo utente:'; +$lang['mail_subscribe_list'] = 'pagine modificate nella categoria:'; +$lang['mail_new_user'] = 'nuovo utente:'; $lang['mail_upload'] = 'file caricato:'; $lang['qb_bold'] = 'Grassetto'; $lang['qb_italic'] = 'Corsivo'; @@ -176,7 +206,7 @@ $lang['qb_media'] = 'Inserisci immagini o altri file'; $lang['qb_sig'] = 'Inserisci la firma'; $lang['qb_smileys'] = 'Smiley'; $lang['qb_chars'] = 'Caratteri speciali'; -$lang['js']['del_confirm'] = 'Cancellare questa voce?'; +$lang['upperns'] = 'vai alla categoria principale'; $lang['admin_register'] = 'Aggiungi un nuovo utente'; $lang['metaedit'] = 'Modifica metadati'; $lang['metasaveerr'] = 'Scrittura metadati fallita'; @@ -192,13 +222,24 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Camera'; $lang['img_keywords'] = 'Parole chiave'; -$lang['subscribe_success'] = '%s è stato aggiunto alla lista di sottoscrizione per la pagina %s'; -$lang['subscribe_error'] = 'Si è verificato un errore durante l\'aggiunta di %s alla lista di sottoscrizione per la pagina %s'; -$lang['subscribe_noaddress'] = 'Non c\'è alcun indirizzo associato con il tuo profilo, non puoi sottoscriverti ad alcuna lista'; -$lang['unsubscribe_success'] = '%s è stato rimosso dalla lista di sottoscrizione per la pagina %s'; -$lang['unsubscribe_error'] = 'Si è verificato un errore durante la rimozione di %s dalla lista di sottoscrizione per la pagina %s'; -$lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Per favore informa l\'amministratore di questo Wiki.'; -$lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, per favore informa l\'amministratore di questo Wiki.'; +$lang['subscr_subscribe_success'] = 'Aggiunto %s alla lista di sottoscrizione %s'; +$lang['subscr_subscribe_error'] = 'Impossibile aggiungere %s alla lista di sottoscrizione %s'; +$lang['subscr_subscribe_noaddress'] = 'Non esiste alcun indirizzo associato al tuo account, non puoi essere aggiunto alla lista di sottoscrizione'; +$lang['subscr_unsubscribe_success'] = 'Rimosso %s dalla lista di sottoscrizione %s'; +$lang['subscr_unsubscribe_error'] = 'Impossibile rimuovere %s dalla lista di sottoscrizione %s'; +$lang['subscr_already_subscribed'] = '% è già iscritto a %s'; +$lang['subscr_not_subscribed'] = '% non è iscritto a %s'; +$lang['subscr_m_not_subscribed'] = 'Attualmente non sei iscritto alla pagina o categoria corrente'; +$lang['subscr_m_new_header'] = 'Aggiungi sottoscrizione'; +$lang['subscr_m_current_header'] = 'Sottoscrizioni attuali'; +$lang['subscr_m_unsubscribe'] = 'Rimuovi sottoscrizione'; +$lang['subscr_m_subscribe'] = 'Sottoscrivi'; +$lang['subscr_m_receive'] = 'Ricevi'; +$lang['subscr_style_every'] = 'email per ogni modifica'; +$lang['subscr_style_digest'] = 'email riassuntiva delle modifiche di ogni pagina'; +$lang['subscr_style_list'] = 'elenco delle pagine modificate dall\'ultima email'; +$lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Informa l\'amministratore di questo Wiki.'; +$lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo Wiki.'; $lang['i_chooselang'] = 'Scegli la lingua'; $lang['i_installer'] = 'Installazione DokuWiki'; $lang['i_wikiname'] = 'Nome Wiki'; @@ -206,35 +247,45 @@ $lang['i_enableacl'] = 'Abilita ACL (consigliato)'; $lang['i_superuser'] = 'Amministratore'; $lang['i_problems'] = 'Si sono verificati problemi durante l\'installazione, indicati di seguito. Non è possibile continuare finché non saranno risolti.'; $lang['i_modified'] = 'Per motivi di sicurezza questa procedura funziona solamente con un\'installazione Dokuwiki nuova e non modificata. - Dovresti ri-estrarre i file dal pacchetto scaricato oppure consultare tutte le - <a href="http://dokuwiki.org/install">istruzioni per l\'installazione di Dokuwiki</a>'; -$lang['i_funcna'] = 'La funzione PHP <code>%s</code> non è disponibile. Forse il tuo provider l\'ha disabilitata per qualche motivo?'; +Dovresti ri-estrarre i file dal pacchetto scaricato oppure consultare tutte le +<a href="http://dokuwiki.org/install">istruzioni per l\'installazione di Dokuwiki</a>'; +$lang['i_funcna'] = 'La funzione PHP <code>%s</code> non è disponibile. Forse è stata disabilitata dal tuo provider per qualche motivo?'; $lang['i_phpver'] = 'La versione di PHP <code>%s</code> è inferiore a quella richiesta <code>%s</code>. Devi aggiornare l\'installazione di PHP.'; $lang['i_permfail'] = 'DokuWiki non può scrivere <code>%s</code>. E\' necessario correggere i permessi per questa directory!'; $lang['i_confexists'] = '<code>%s</code> esiste già'; $lang['i_writeerr'] = 'Impossibile creare <code>%s</code>. E\' necessario verificare i permessi della directory/file e creare il file manualmente.'; $lang['i_badhash'] = 'dokuwiki.php (hash=<code>%s</code>) non riconosciuto o modificato'; $lang['i_badval'] = '<code>%s</code> - valore vuoto o non valido'; -$lang['i_success'] = 'La configurazione è stata completata correttamente. E\' ora possibile cancellare il file install.php. Continuare con - <a href="doku.php">il nuovo DokuWiki</a>.'; +$lang['i_success'] = 'La configurazione è stata completata correttamente. Ora è possibile eliminare il file install.php. Continuare con +<a href="doku.php">il nuovo DokuWiki</a>.'; $lang['i_failure'] = 'Si sono verificati errori durante la scrittura dei file di configurazione. Potrebbe essere necessario correggerli manualmente prima di poter utilizzare <a href="doku.php">il nuovo DokuWiki</a>.'; -$lang['i_policy'] = 'Policy di accesso iniziali'; +$lang['i_policy'] = 'Regole di accesso iniziali'; $lang['i_pol0'] = 'Wiki Aperto (lettura, scrittura, caricamento file per tutti)'; $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e caricamento file per gli utenti registrati)'; $lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)'; $lang['i_retry'] = 'Riprova'; -$lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Cliccare su "Sfoglia..." per aggiungere i file in coda. Cliccare "Carica" quando si è pronti.'; -$lang['mu_gridname'] = 'Nome del file'; +$lang['i_license'] = 'Perfavore scegli la licenza in cui vuoi inserire il tuo contenuto:'; +$lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Cliccare su "Sfoglia..." per aggiungere i file in coda. Fai click su "Invia file" quando si è pronti.'; +$lang['mu_gridname'] = 'Nome file'; $lang['mu_gridsize'] = 'Dimensione'; $lang['mu_gridstat'] = 'Stato'; -$lang['mu_namespace'] = 'Namespace'; -$lang['mu_browse'] = 'Sfoglia...'; +$lang['mu_namespace'] = 'Categoria'; +$lang['mu_browse'] = 'Sfoglia'; $lang['mu_toobig'] = 'troppo grande'; -$lang['mu_ready'] = 'pronto per l\'upload'; +$lang['mu_ready'] = 'pronto per caricare'; $lang['mu_done'] = 'completo'; $lang['mu_fail'] = 'fallito'; $lang['mu_authfail'] = 'sessione scaduta'; $lang['mu_progress'] = '@PCT@% caricato'; $lang['mu_filetypes'] = 'Tipi di file permessi'; $lang['mu_info'] = 'file caricati.'; +$lang['mu_lasterr'] = 'Ultimo errore:'; $lang['recent_global'] = 'Stai attualmente vedendo le modifiche dentro l\'area <b>%s</b>. Puoi anche <a href="%s">vedere le modifiche recenti dell\'intero wiki</a>.'; +$lang['years'] = '%d anni fa'; +$lang['months'] = '%d mesi fa'; +$lang['weeks'] = '%d settimane fa'; +$lang['days'] = '%d giorni fa'; +$lang['hours'] = '%d ore fa'; +$lang['minutes'] = '%d minuti fa'; +$lang['seconds'] = '%d secondi fa'; +$lang['wordblock'] = 'La modifica non è stata salvata perché contiene testo bloccato (spam).'; diff --git a/inc/lang/it/login.txt b/inc/lang/it/login.txt index 6487c8537..c6fd97b6f 100644 --- a/inc/lang/it/login.txt +++ b/inc/lang/it/login.txt @@ -1,4 +1,4 @@ -====== Login ====== +====== Accesso ====== Non sei ancora collegato! Inserisci il tuo nome utente e la tua password per autenticarti. E' necessario che il tuo browser abbia i cookie abilitati. diff --git a/inc/lang/it/mailtext.txt b/inc/lang/it/mailtext.txt index ee6e958b9..a4506e951 100644 --- a/inc/lang/it/mailtext.txt +++ b/inc/lang/it/mailtext.txt @@ -12,5 +12,5 @@ Oggetto della modifica : @SUMMARY@ -- -Questa e-mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/password.txt b/inc/lang/it/password.txt index a14ce6078..d57c78913 100644 --- a/inc/lang/it/password.txt +++ b/inc/lang/it/password.txt @@ -1,4 +1,4 @@ -Ciao, @FULLNAME@! +Ciao @FULLNAME@! Questi sono i tuoi dati di accesso per @TITLE@ su @DOKUWIKIURL@ @@ -6,5 +6,5 @@ Nome utente : @LOGIN@ Password : @PASSWORD@ -- -Questa e-mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/pwconfirm.txt b/inc/lang/it/pwconfirm.txt index 5437d077c..dfcd8a346 100644 --- a/inc/lang/it/pwconfirm.txt +++ b/inc/lang/it/pwconfirm.txt @@ -1,15 +1,15 @@ Ciao @FULLNAME@! -Qualcuno ha richiesto una nuova password per il tuo @TITLE@ -login su @DOKUWIKIURL@ +Qualcuno ha richiesto una nuova password per il tuo accesso +@TITLE@ a @DOKUWIKIURL@ Se non hai richiesto tu la nuova password ignora questa email. -Per confermare che la richiesta è stata realmente inviata da te per favore usa il -seguente link. +Per confermare che la richiesta è stata realmente inviata da te usa il +seguente collegamento. @CONFIRM@ -- -Questa mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/register.txt b/inc/lang/it/register.txt index 973aead78..74f57094d 100644 --- a/inc/lang/it/register.txt +++ b/inc/lang/it/register.txt @@ -1,4 +1,4 @@ ====== Registrazione nuovo utente ====== -Riempi tutte le informazioni seguenti per creare un nuovo account in questo wiki. Assicurati di inserire un **indirizzo e-mail valido** - la tua nuova password ti sarà inviata con un messaggio di posta elettronica. La login dovrebbe essere un [[doku>pagename|nome di pagina]] valido. +Riempi tutte le informazioni seguenti per creare un nuovo account in questo wiki. Assicurati di inserire un **indirizzo email valido** - la tua nuova password ti sarà inviata con un messaggio di posta elettronica. L'account dovrebbe essere un [[doku>pagename|nome di pagina]] valido. diff --git a/inc/lang/it/registermail.txt b/inc/lang/it/registermail.txt index 5a9f89344..e8af0d323 100644 --- a/inc/lang/it/registermail.txt +++ b/inc/lang/it/registermail.txt @@ -2,7 +2,7 @@ Un nuovo utente è stato registrato. Ecco i dettagli: Nome utente : @NEWUSER@ Nome completo : @NEWNAME@ -E-Mail : @NEWEMAIL@ +EMail : @NEWEMAIL@ Data : @DATE@ Browser : @BROWSER@ @@ -10,5 +10,5 @@ Indirizzo IP : @IPADDRESS@ Nome macchina : @HOSTNAME@ -- -Questa mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/revisions.txt b/inc/lang/it/revisions.txt index 984b4a068..19c501b07 100644 --- a/inc/lang/it/revisions.txt +++ b/inc/lang/it/revisions.txt @@ -1,3 +1,3 @@ ====== Versione precedente ====== -Queste sono le precedenti versioni del documento corrente. Per ripristinare una versione precedente, seleziona la versione, modificala usando il pulsante ''Modifica questa pagina'' e salvala. +Queste sono le versioni precedenti del documento attuale. Per ripristinare una versione precedente, seleziona la versione, modificala usando il pulsante ''Modifica questa pagina'' e salvala. diff --git a/inc/lang/it/stopwords.txt b/inc/lang/it/stopwords.txt index a6aa1cfc6..e91aa3b55 100644 --- a/inc/lang/it/stopwords.txt +++ b/inc/lang/it/stopwords.txt @@ -1,7 +1,7 @@ -# This is a list of words the indexer ignores, one word per line -# When you edit this file be sure to use UNIX line endings (single newline) -# No need to include words shorter than 3 chars - these are ignored anyway -# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +# Questo è un elenco di parole che l'indicizzatore ignora, una parola per riga +# Quando modifichi questo file fai attenzione ad usare la chiusura della riga in stile UNIX (nuova linea singola) +# Non è necessario includere parole più brevi di 3 caratteri - queste vengono in ogni caso ignorate +# Questo elenco è basato su quello trovato in http://www.ranks.nl/stopwords/ adesso alla allo diff --git a/inc/lang/it/subscr_digest.txt b/inc/lang/it/subscr_digest.txt new file mode 100644 index 000000000..8656f8536 --- /dev/null +++ b/inc/lang/it/subscr_digest.txt @@ -0,0 +1,20 @@ +Ciao! + +La pagina @PAGE@ nel wiki @TITLE@ è cambiata. +Queste sono le modifiche: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vecchia revisione: @OLDPAGE@ +Nuova revisione: @NEWPAGE@ + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/it/subscr_form.txt b/inc/lang/it/subscr_form.txt new file mode 100644 index 000000000..54f66e44a --- /dev/null +++ b/inc/lang/it/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gestione iscrizioni ====== + +Questa pagina permette di gestire le tue iscrizioni alla pagina e catogoria attuale.
\ No newline at end of file diff --git a/inc/lang/it/subscr_list.txt b/inc/lang/it/subscr_list.txt new file mode 100644 index 000000000..e42f7d1ad --- /dev/null +++ b/inc/lang/it/subscr_list.txt @@ -0,0 +1,18 @@ +Ciao! + +Le pagine nella categoria @PAGE@ del wiki @TITLE@ sono +cambiate. +Queste sono le pagine modificate: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/it/subscr_single.txt b/inc/lang/it/subscr_single.txt new file mode 100644 index 000000000..2c4d5cbb8 --- /dev/null +++ b/inc/lang/it/subscr_single.txt @@ -0,0 +1,23 @@ +Ciao! + +La pagina @PAGE@ nel wiki @TITLE@ è cambiata. +Queste sono le modifiche: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Utente : @USER@ +Sommario modifica: @SUMMARY@ +Vecchia revisione: @OLDPAGE@ +Nuova revisione: @NEWPAGE@ + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/it/uploadmail.txt b/inc/lang/it/uploadmail.txt index 56cebc6b1..d8d17a378 100644 --- a/inc/lang/it/uploadmail.txt +++ b/inc/lang/it/uploadmail.txt @@ -6,7 +6,7 @@ Browser : @BROWSER@ Indirizzo IP : @IPADDRESS@ Hostname : @HOSTNAME@ Dimensione : @SIZE@ -MIME Type : @MIME@ +Tipo MIME : @MIME@ Utente : @USER@ -- diff --git a/inc/lang/it/wordblock.txt b/inc/lang/it/wordblock.txt deleted file mode 100644 index 510d6521d..000000000 --- a/inc/lang/it/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Modifica bloccata ====== - -Le tue modifiche **non sono state salvate** perché contengono una o più parole vietate. Se hai cercato di spammare il Wiki -- bambino cattivo! Se pensi che sia un errore contatta l'amministratore di questo Wiki. - diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 1f6681af1..ad76e5bf0 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = '既存のファイルを上書き'; $lang['lockedby'] = 'この文書は次のユーザによってロックされています'; $lang['lockexpire'] = 'ロック期限:'; $lang['willexpire'] = '編集中の文書はロック期限を過ぎようとしています。このままロックする場合は、一度文書の確認を行って期限をリセットしてください。'; -$lang['notsavedyet'] = '変更は保存されません。このまま処理を続けてよろしいですか?'; +$lang['js']['notsavedyet'] = "変更は保存されません。このまま処理を続けてよろしいですか?"; $lang['rssfailed'] = 'RSSの取り出しに失敗しました:'; $lang['nothingfound'] = '該当文書はありませんでした。'; $lang['mediaselect'] = 'メディアファイルを選択'; diff --git a/inc/lang/ja/wordblock.txt b/inc/lang/ja/wordblock.txt deleted file mode 100644 index d7edd8765..000000000 --- a/inc/lang/ja/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== スパム ブロック ====== - -除外する単語が含まれているため、変更は**保存されませんでした**。 もし意図したスパム行為でないのであれば、管理者に連絡してください。 - diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index a8257255f..19847674d 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -93,7 +93,7 @@ $lang['lockedby'] = 'ឥឡូវនេះចកជាប់'; $lang['lockexpire'] = 'សោជាប់ផុតកំណត់ម៉ោង'; $lang['willexpire'] = 'សោអ្នកចំពោះកែតម្រូវទំព័រនេះ ហួសពែលក្នុងមួយនាទី។\nកុំឲ្យមានជម្លោះ ប្រើ «បង្ហាញ» ទៅកំណត់ឡើងវិញ។'; -$lang['notsavedyet'] = 'កម្រែមិនទានរុក្សាទកត្រូវបោះបង់។\nបន្តទៅទាឬទេ?'; +$lang['js']['notsavedyet'] = "កម្រែមិនទានរុក្សាទកត្រូវបោះបង់។\nបន្តទៅទាឬទេ?"; $lang['rssfailed'] = 'មានកំហុសពេលទៅប្រមូលយកមតិព័ត៌មាន៖ '; $lang['nothingfound']= 'រកមិនឃើញអ្វីទេ។'; diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index f11ec95fd..83014c151 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = '새로운 파일로 이전 파일을 교체합 $lang['lockedby'] = '현재 잠금 사용자'; $lang['lockexpire'] = '잠금 해제 시간'; $lang['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하기 바랍니다.'; -$lang['notsavedyet'] = '저장하지 않은 변경은 지워집니다.\n계속하시겠습니까?'; +$lang['js']['notsavedyet'] = "저장하지 않은 변경은 지워집니다.\n계속하시겠습니까?"; $lang['rssfailed'] = 'feed 가져오기 실패: '; $lang['nothingfound'] = '아무 것도 없습니다.'; $lang['mediaselect'] = '미디어 파일 선택'; diff --git a/inc/lang/ko/wordblock.txt b/inc/lang/ko/wordblock.txt deleted file mode 100644 index 35e251187..000000000 --- a/inc/lang/ko/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== 스팸 차단 ====== - -하나 혹은 그 이상의 차단된 단어가 포함되어 있으므로 변경 내용이 저장되지 **않았습니다.** 나쁜 로봇 같으니! 스팸이나 추가하려 하고! 만일 로봇이 아니라 사람이고, 오류라고 생각하신다면, 관리자에게 문의하십시오. - diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 946954b98..cb8dd0865 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -62,7 +62,7 @@ $lang['lockedby'] = 'Currently locked by'; $lang['lockexpire'] = 'Lock expires at'; $lang['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; -$lang['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; +$lang['js']['notsavedyet'] = "Unsaved changes will be lost.\nReally continue?"; $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tiştek nehat dîtin.'; diff --git a/inc/lang/ku/wordblock.txt b/inc/lang/ku/wordblock.txt deleted file mode 100644 index f0f7d759d..000000000 --- a/inc/lang/ku/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Your changes were **not** saved because it contains one or more blocked words. If you tried to spam the Wiki -- Bad dog! If you think this is an error, contact the administrator of this Wiki. - diff --git a/inc/lang/lb/admin.txt b/inc/lang/lb/admin.txt new file mode 100644 index 000000000..08f8b2fec --- /dev/null +++ b/inc/lang/lb/admin.txt @@ -0,0 +1,3 @@ +====== Administratioun ====== + +Hei ënnendrënner fënns de eng Lëscht mat administrativen Aufgaben déi am Dokuwiki zuer Verfügung stinn. diff --git a/inc/lang/lb/adminplugins.txt b/inc/lang/lb/adminplugins.txt new file mode 100644 index 000000000..95814007d --- /dev/null +++ b/inc/lang/lb/adminplugins.txt @@ -0,0 +1 @@ +===== Zousätzlech Pluginen =====
\ No newline at end of file diff --git a/inc/lang/lb/backlinks.txt b/inc/lang/lb/backlinks.txt new file mode 100644 index 000000000..8b8fbd4ec --- /dev/null +++ b/inc/lang/lb/backlinks.txt @@ -0,0 +1,3 @@ +====== Linken zeréck ====== + +Dëst ass eng Lëscht mat Säiten déi schéngen op déi aktuell Säit zeréck ze verlinken. diff --git a/inc/lang/lb/conflict.txt b/inc/lang/lb/conflict.txt new file mode 100644 index 000000000..3a84e722f --- /dev/null +++ b/inc/lang/lb/conflict.txt @@ -0,0 +1,5 @@ +====== Et gëtt méi eng nei Versioun ====== + +Et gëtt méi eng nei Versioun vum Dokument wats de g'ännert hues. Dat geschitt wann en anere Benotzer dat selwecht Dokument ännert wärenddeems du et änners. + +Ënnersich d'Ënnerscheeder déi hei ënnendrënner ugewise gi grëndlech. Wanns de ''Späicheren'' auswiels, da gëtt deng Version gespäicher. Dréck op ''Ofbriechen'' fir déi aktuell Versioun ze halen. diff --git a/inc/lang/lb/denied.txt b/inc/lang/lb/denied.txt new file mode 100644 index 000000000..487bf2198 --- /dev/null +++ b/inc/lang/lb/denied.txt @@ -0,0 +1,3 @@ +======Erlaabnis verweigert====== + +Et deet mer leed, du hues net genuch Rechter fir weiderzefueren. Hues de vläicht vergiess dech anzeloggen? diff --git a/inc/lang/lb/diff.txt b/inc/lang/lb/diff.txt new file mode 100644 index 000000000..7838b9808 --- /dev/null +++ b/inc/lang/lb/diff.txt @@ -0,0 +1,3 @@ +====== Ënnerscheeder ====== + +Hei sinn d'Ënnerscheeder zwëscht 2 Versiounen vun der Säit. diff --git a/inc/lang/lb/draft.txt b/inc/lang/lb/draft.txt new file mode 100644 index 000000000..2e2fc9daa --- /dev/null +++ b/inc/lang/lb/draft.txt @@ -0,0 +1,5 @@ +====== Entworf fond ====== + +Deng lescht Ännersessioun op dëser Säit gouf net richteg ofgeschloss. DokuWiki huet automatesch en Entworf wärend denger Aarbecht gespäichert deens de elo kanns benotzen fir mat dengen Ännerunge weiderzefueren. Hei ënnendrënner gesäiss de wat vun denger leschter Sessioun gespäichert gouf. + +Decidéier w.e.g. obs de deng verlueren Ännerungssessioun //zeréckhuelen//, den Entworf //läschen// oder d'Änneren //ofbrieche// wëlls. diff --git a/inc/lang/lb/edit.txt b/inc/lang/lb/edit.txt new file mode 100644 index 000000000..ca039d16f --- /dev/null +++ b/inc/lang/lb/edit.txt @@ -0,0 +1 @@ +Änner d'Säit an dréck ''Späicheren''. Kuck [[wiki:syntax]] fir d'Wiki-Syntax. Änner d'Säit w.e.g. nëmme wanns de se **verbessere** kanns. Wanns de Saache probéiere wëlls, da léier deng éischt Schréck an der [[playground:playground|Sandkaul]]. diff --git a/inc/lang/lb/editrev.txt b/inc/lang/lb/editrev.txt new file mode 100644 index 000000000..6d7a12929 --- /dev/null +++ b/inc/lang/lb/editrev.txt @@ -0,0 +1,2 @@ +**Du hues eng al Versioun vum Dokument gelueden!** Wanns de se änners, mëss de eng nei Versioun mat dësen Daten. +----
\ No newline at end of file diff --git a/inc/lang/lb/index.txt b/inc/lang/lb/index.txt new file mode 100644 index 000000000..183e07a0f --- /dev/null +++ b/inc/lang/lb/index.txt @@ -0,0 +1,3 @@ +====== Index ====== + +Dëst ass em Index vun all de Säiten gesënnert no [[doku>namespaces|namespaces]]. diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php new file mode 100644 index 000000000..7152b65b1 --- /dev/null +++ b/inc/lang/lb/lang.php @@ -0,0 +1,214 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = '”'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; +$lang['apostrophe'] = '\''; +$lang['btn_edit'] = 'Dës Säit änneren'; +$lang['btn_source'] = 'Säitequell weisen'; +$lang['btn_show'] = 'Säit weisen'; +$lang['btn_create'] = 'Dës Säit uleeën'; +$lang['btn_search'] = 'Sichen'; +$lang['btn_save'] = 'Späicheren'; +$lang['btn_preview'] = 'Kucken ouni ofzespäicheren'; +$lang['btn_top'] = 'Zréck no uewen'; +$lang['btn_newer'] = '<< méi rezent'; +$lang['btn_older'] = 'manner rezent >>'; +$lang['btn_revs'] = 'Al Versiounen'; +$lang['btn_recent'] = 'Kierzlech Ännerungen'; +$lang['btn_upload'] = 'Eroplueden'; +$lang['btn_cancel'] = 'Ofbriechen'; +$lang['btn_index'] = 'Index'; +$lang['btn_secedit'] = 'Änneren'; +$lang['btn_login'] = 'Login'; +$lang['btn_logout'] = 'Logout'; +$lang['btn_admin'] = 'Admin'; +$lang['btn_update'] = 'Update'; +$lang['btn_delete'] = 'Läschen'; +$lang['btn_back'] = 'Zeréck'; +$lang['btn_backlink'] = 'Linker zeréck'; +$lang['btn_backtomedia'] = 'Zeréck bei d\'Auswiel vun de Mediadateien'; +$lang['btn_profile'] = 'Profil aktualiséieren'; +$lang['btn_reset'] = 'Zerécksetzen'; +$lang['btn_resendpwd'] = 'Nei Passwuert schécken'; +$lang['btn_draft'] = 'Entworf änneren'; +$lang['btn_recover'] = 'Entworf zeréckhuelen'; +$lang['btn_draftdel'] = 'Entworf läschen'; +$lang['loggedinas'] = 'Ageloggt als'; +$lang['user'] = 'Benotzernumm'; +$lang['pass'] = 'Passwuert'; +$lang['newpass'] = 'Nei Passwuert'; +$lang['oldpass'] = 'Aktuell Passwuert confirméieren'; +$lang['passchk'] = 'nach eng Kéier'; +$lang['remember'] = 'Verhal mech'; +$lang['fullname'] = 'Richtegen Numm'; +$lang['email'] = 'E-Mail'; +$lang['register'] = 'Registréieren'; +$lang['profile'] = 'Benotzerprofil'; +$lang['badlogin'] = 'Entschëllegt, de Benotzernumm oder d\'Passwuert war falsch'; +$lang['minoredit'] = 'Kleng Ännerungen'; +$lang['draftdate'] = 'Entworf automatesch gespäichert den'; +$lang['nosecedit'] = 'D\'Säit gouf an Zwëschenzäit g\'ännert, Sektiounsinfo veralt. Ganz Säit gouf aplaz gelueden.'; +$lang['regmissing'] = 'Du muss all d\'Felder ausfëllen.'; +$lang['reguexists'] = 'Et get schonn e Benotzer mat deem Numm.'; +$lang['regsuccess'] = 'De Benotzer gouf erstallt an d\'Passwuert via Email geschéckt.'; +$lang['regsuccess2'] = 'De Benotzer gouf erstallt.'; +$lang['regmailfail'] = 'Et gesäit aus wéi wann e Feeler beim schécke vun der Passwuertmail virkomm wier. Kontaktéier den Admin w.e.g.!'; +$lang['regbadmail'] = 'Déi Emailadress gesäit ongëlteg aus - wanns de mengs dat wier e Feeler, da kontaktéier den Admin w.e.g.'; +$lang['regbadpass'] = 'Déi 2 Passwieder si net t\'selwecht. Probéier nach eng Kéier w.e.g.'; +$lang['regpwmail'] = 'Däin DokuWiki Passwuert'; +$lang['reghere'] = 'Hues du nach keen Account? Da maach der een'; +$lang['profna'] = 'Dëse Wiki ënnestëtzt keng Ännerunge vum Profil'; +$lang['profnochange'] = 'Keng Ännerungen. Näischt ze man.'; +$lang['profnoempty'] = 'En eidele Numm oder Emailadress ass net erlaabt.'; +$lang['profchanged'] = 'Benotzerprofil erfollegräicht aktualiséiert.'; +$lang['pwdforget'] = 'Passwuert vergiess? Fro der e Neit'; +$lang['resendna'] = 'Dëse Wiki ënnerstëtzt net d\'Neiverschécke vu Passwieder.'; +$lang['resendpwd'] = 'Nei Passwuert schécke fir'; +$lang['resendpwdmissing'] = 'Du muss all Felder ausfëllen.'; +$lang['resendpwdnouser'] = 'Kann dëse Benotzer net an der Datebank fannen.'; +$lang['resendpwdbadauth'] = 'Den "Auth"-Code ass ongëlteg. Kuck no obs de dee ganze Konfirmationslink benotzt hues.'; +$lang['resendpwdconfirm'] = 'De Konfirmatiounslink gouf iwwer Email geschéckt.'; +$lang['resendpwdsuccess'] = 'Däi nei Passwuert gouf iwwer Email geschéckt.'; +$lang['license'] = 'Wann näischt anescht do steet, ass den Inhalt vun dësem Wiki ënner folgender Lizenz:'; +$lang['licenseok'] = 'Pass op: Wanns de dës Säit änners, bass de dermat averstan dass den Inhalt ënner folgender Lizenz lizenzéiert gëtt:'; +$lang['txt_upload'] = 'Wiel eng Datei fir eropzelueden'; +$lang['txt_filename'] = 'Eroplueden als (optional)'; +$lang['txt_overwrt'] = 'Bestehend Datei iwwerschreiwen'; +$lang['lockedby'] = 'Am Moment gespaart vun'; +$lang['lockexpire'] = 'D\'Spär leeft of ëm'; +$lang['willexpire'] = 'Deng Spär fir d\'Säit ze änneren leeft an enger Minutt of.\nFir Konflikter ze verhënneren, dréck op Kucken ouni ofzespäicheren.'; +$lang['js']['notsavedyet'] = "Net gespäicher Ännerunge gi verluer.\nWierklech weiderfueren?"; +$lang['rssfailed'] = 'Et ass e Feeler virkomm beim erofluede vun dësem Feed: '; +$lang['nothingfound'] = 'Näischt fond.'; +$lang['mediaselect'] = 'Mediadateien'; +$lang['fileupload'] = 'Mediadateien eroplueden'; +$lang['uploadsucc'] = 'Upload erfollegräich'; +$lang['uploadfail'] = 'Feeler beim Upload. Vläicht falsch Rechter?'; +$lang['uploadwrong'] = 'Eroplueden net erlaabt. Dës Dateiendung ass verbueden!'; +$lang['uploadexist'] = 'Datei gët et schonn. Näischt gemaach.'; +$lang['uploadbadcontent'] = 'Den eropgeluedenen Inhalt stëmmt net mat der Dateiendung %s iwwereneen.'; +$lang['uploadspam'] = 'D\'Eropluede gouf duerch d\'Schwaarz Spamlëscht blockéiert.'; +$lang['uploadxss'] = 'D\'Eropluede gouf wéinst méiglechem béisaartegem Inhalt blockéiert.'; +$lang['uploadsize'] = 'Déi eropgelueden Datei war ze grouss. (max. %s)'; +$lang['deletesucc'] = 'D\'Datei "%s" gouf geläscht.'; +$lang['deletefail'] = '"%s" konnt net geläscht ginn. Kontroléier d\'Rechter.'; +$lang['mediainuse'] = 'D\'Datei "%s" gouf net geläscht - se ass nach am Gebrauch.'; +$lang['namespaces'] = 'Namespaces'; +$lang['mediafiles'] = 'Verfügbar Dateien am'; +$lang['js']['keepopen'] = 'Fënster beim Auswielen oploossen'; +$lang['js']['hidedetails'] = 'Deteiler verstoppen'; +$lang['mediausage'] = 'Benotz folgend Syntax fir dës Datei ze referenzéieren:'; +$lang['mediaview'] = 'Originaldatei weisen'; +$lang['mediaroot'] = 'root'; +$lang['mediaextchange'] = 'Dateiendung vun .%s op .%s g\'ännert!'; +$lang['reference'] = 'Referenzen fir'; +$lang['ref_inuse'] = 'D\'Datei ka net geläscht ginn wëll se nach ëmmer vu folgende Säite gebraucht gëtt:'; +$lang['ref_hidden'] = 'Verschidde Referenze sinn op Säiten wous de keng Rechter hues fir se ze kucken'; +$lang['hits'] = 'Treffer'; +$lang['quickhits'] = 'Säitenimm déi iwwereneestëmmen'; +$lang['toc'] = 'Inhaltsverzeechnes'; +$lang['current'] = 'aktuell'; +$lang['yours'] = 'Deng Versioun'; +$lang['diff'] = 'Weis d\'Ënnerscheeder zuer aktueller Versioun'; +$lang['diff2'] = 'Weis d\'Ënnerscheeder zwescht den ausgewielte Versiounen'; +$lang['line'] = 'Linn'; +$lang['breadcrumb'] = 'Spuer'; +$lang['youarehere'] = 'Du bass hei'; +$lang['lastmod'] = 'Fir d\'lescht g\'ännert'; +$lang['by'] = 'vun'; +$lang['deleted'] = 'geläscht'; +$lang['created'] = 'erstallt'; +$lang['restored'] = 'al Versioun zeréckgeholl'; +$lang['external_edit'] = 'extern Ännerung'; +$lang['summary'] = 'Resumé vun den Ännerungen'; +$lang['noflash'] = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> get gebraucht fir dësen Inhalt unzeweisen.'; +$lang['mail_newpage'] = 'Säit bäigesat:'; +$lang['mail_changed'] = 'Säit geännert:'; +$lang['mail_subscribe_list'] = 'g\'ännert Säiten am Namespace:'; +$lang['mail_new_user'] = 'Neie Benotzer:'; +$lang['mail_upload'] = 'Datei eropgelueden:'; +$lang['qb_bold'] = 'Fetten Text'; +$lang['qb_italic'] = 'Schiefen Text'; +$lang['qb_underl'] = 'Ënnerstrachenen Text'; +$lang['qb_code'] = 'Code Text'; +$lang['qb_strike'] = 'Duerchgestrachenen Text'; +$lang['qb_h1'] = 'Iwwerschrëft vum 1. Niveau'; +$lang['qb_h2'] = 'Iwwerschrëft vum 2. Niveau'; +$lang['qb_h3'] = 'Iwwerschrëft vum 3. Niveau'; +$lang['qb_h4'] = 'Iwwerschrëft vum 4. Niveau'; +$lang['qb_h5'] = 'Iwwerschrëft vum 5. Niveau'; +$lang['qb_h'] = 'Iwwerschrëft'; +$lang['qb_hs'] = 'Iwwerschrëft auswielen'; +$lang['qb_hplus'] = 'Méi grouss Iwwerschrëft'; +$lang['qb_hminus'] = 'Méi kleng Iwwerschrëft'; +$lang['qb_hequal'] = 'Iwwerschrëft vum selwechte Niveau'; +$lang['qb_link'] = 'Interne Link'; +$lang['qb_extlink'] = 'Externe Link'; +$lang['qb_hr'] = 'Horizontale Stréch'; +$lang['qb_ol'] = 'Nummeréiert Lëscht'; +$lang['qb_ul'] = 'Onnummeréiert Lëscht'; +$lang['qb_media'] = 'Biller an aner Dateie bäisetzen'; +$lang['qb_sig'] = 'Ënnerschrëft afügen'; +$lang['qb_smileys'] = 'Smilien'; +$lang['qb_chars'] = 'Spezialzeechen'; +$lang['upperns'] = 'An de Namespace uewendriwwer sprangen'; +$lang['admin_register'] = 'Neie Benotzer bäisetzen'; +$lang['metaedit'] = 'Metadaten änneren'; +$lang['metasaveerr'] = 'Feeler beim Schreiwe vun de Metadaten'; +$lang['metasaveok'] = 'Metadate gespäichert'; +$lang['img_backto'] = 'Zeréck op'; +$lang['img_title'] = 'Titel'; +$lang['img_caption'] = 'Beschreiwung'; +$lang['img_date'] = 'Datum'; +$lang['img_fname'] = 'Dateinumm'; +$lang['img_fsize'] = 'Gréisst'; +$lang['img_artist'] = 'Fotograf'; +$lang['img_copyr'] = 'Copyright'; +$lang['img_format'] = 'Format'; +$lang['img_camera'] = 'Kamera'; +$lang['img_keywords'] = 'Schlësselwieder'; +$lang['authmodfailed'] = 'Falsch Konfiguratioun vun der Benotzerautentifikatioun. Informéier w.e.g. de Wiki Admin.'; +$lang['authtempfail'] = 'D\'Benotzerautentifikatioun ass de Moment net verfügbar. Wann dës Situatioun unhält, dann informéier w.e.g. de Wiki Admin.'; +$lang['i_chooselang'] = 'Wiel deng Sprooch'; +$lang['i_installer'] = 'DokuWiki Installer'; +$lang['i_wikiname'] = 'Numm vum Wiki'; +$lang['i_enableacl'] = 'ACL uschalten (rekommandéiert)'; +$lang['i_problems'] = 'Den Installer huet Problemer fond. Se stinn hei ënnendrënner. Du kanns net weiderfueren bis de se behuewen hues.'; +$lang['i_modified'] = 'Aus Sécherheetsgrënn funktionnéiert dëse Script nëmme mat enger neier an onverännerter Dokuwiki Installatioun. Entweder muss de d\'Dateie frësch extrahéieren oder kuck d\'komplett <a href="http://dokuwiki.org/install">Dokuwiki Installatiounsinstruktiounen</a>'; +$lang['i_funcna'] = 'PHP-Funktioun <code>%s</code> ass net verfügbar. Vläicht huet däi Provider se aus iergend engem Grond ausgeschalt.'; +$lang['i_phpver'] = 'Deng PHP-Versioun <code>%s</code> ass méi kleng wéi déi gebrauchte Versioun <code>%s</code>. Du muss deng PHP-Installatioun aktualiséieren. '; +$lang['i_pol0'] = 'Oppene Wiki (liese, schreiwen an eroplueden fir jidfereen)'; +$lang['i_pol1'] = 'Ëffentleche Wiki (liesen fir jidfereen, schreiwen an eroplueden fir registréiert Benotzer)'; +$lang['i_pol2'] = 'Zouene Wiki (liesen, schreiwen, eroplueden nëmme fir registréiert Benotzer)'; +$lang['i_retry'] = 'Nach eng Kéier probéieren'; +$lang['mu_intro'] = 'Hei kanns de méi Dateie mateneen eroplueden. Klick op den Duerchsiche-Knäppchen fir se an d\'Schlaang ze setzen. Dréck op Eroplueden wanns de fäerdeg bass.'; +$lang['mu_gridname'] = 'Dateinumm'; +$lang['mu_gridsize'] = 'Gréisst'; +$lang['mu_gridstat'] = 'Status'; +$lang['mu_namespace'] = 'Namespace'; +$lang['mu_browse'] = 'Duerchsichen'; +$lang['mu_toobig'] = 'ze grouss'; +$lang['mu_ready'] = 'prett fir eropzelueden'; +$lang['mu_done'] = 'fäerdeg'; +$lang['mu_fail'] = 'feelgeschloen'; +$lang['mu_authfail'] = 'Sessioun ofgelaf'; +$lang['mu_progress'] = '@PCT@% eropgelueden'; +$lang['mu_filetypes'] = 'Erlaabten Dateitypen'; +$lang['mu_info'] = 'Dateien eropgelueden.'; +$lang['mu_lasterr'] = 'Leschte Feeler:'; +$lang['recent_global'] = 'Du kucks am Moment d\'Ännerungen innerhalb vum <b>%s</b> Namespace. Du kanns och <a href="%s">d\'Kierzilech Ännerungen vum ganze Wiki kucken</a>.'; +$lang['years'] = 'virun %d Joer'; +$lang['months'] = 'virun % Méint'; +$lang['weeks'] = 'virun %d Wochen'; +$lang['days'] = 'virun %d Deeg'; +$lang['hours'] = 'virun %d Stonnen'; +$lang['minutes'] = 'virun %d Minutten'; +$lang['seconds'] = 'virun %d Sekonnen'; diff --git a/inc/lang/lb/locked.txt b/inc/lang/lb/locked.txt new file mode 100644 index 000000000..944efb251 --- /dev/null +++ b/inc/lang/lb/locked.txt @@ -0,0 +1,3 @@ +====== Säit gespaart ====== + +Dës Säit ass am Moment duerch en anere Benotzer fir Ännerunge gespart. Du muss waarde bis e mat sengen Ännerunge fäerdeg ass oder d'Spär ofleeft.
\ No newline at end of file diff --git a/inc/lang/lb/login.txt b/inc/lang/lb/login.txt new file mode 100644 index 000000000..7d0548ee7 --- /dev/null +++ b/inc/lang/lb/login.txt @@ -0,0 +1,3 @@ +====== Aloggen ====== + +Du bass am Moment net ageloggt! Gëff deng Autoriséierungsinformatiounen hei ënnendrënner an. Du muss d'Cookien erlaabt hunn fir dech kënnen anzeloggen. diff --git a/inc/lang/lb/mailtext.txt b/inc/lang/lb/mailtext.txt new file mode 100644 index 000000000..520cd8483 --- /dev/null +++ b/inc/lang/lb/mailtext.txt @@ -0,0 +1,17 @@ +Et gouf eng Säit an dengem DokuWiki g'ännert oder nei erstallt. Hei sinn d'Detailer: + +Datum : @DATE@ +Browser : @BROWSER@ +IP-Address : @IPADDRESS@ +Hostname : @HOSTNAME@ +Al Versioun : @OLDPAGE@ +Nei Versioun : @NEWPAGE@ +Zesummefaassung: @SUMMARY@ +Benotzer : @USER@ + +@DIFF@ + + +-- +Dës Mail gouf generéiert vum DokuWiki op +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lb/newpage.txt b/inc/lang/lb/newpage.txt new file mode 100644 index 000000000..93917614d --- /dev/null +++ b/inc/lang/lb/newpage.txt @@ -0,0 +1,4 @@ +======Dësen Thema gëtt et nach net====== + +Du hues op e Link vun enger Säit geklickt, déi et nach net gëtt. Wanns de déi néideg Rechter hues, da kanns de dës Säit uleeën andeems de op ''Dës Säit uleeën'' klicks. + diff --git a/inc/lang/lb/norev.txt b/inc/lang/lb/norev.txt new file mode 100644 index 000000000..45a36ee91 --- /dev/null +++ b/inc/lang/lb/norev.txt @@ -0,0 +1,3 @@ +====== Keng sou Versioun ====== + +Déi Versioun gëtt et net. Benotz de Kneppchen ''Al Versiounen'' fir eng Lëscht vun ale Versiounen vun dësem Dokument. diff --git a/inc/lang/lb/password.txt b/inc/lang/lb/password.txt new file mode 100644 index 000000000..bd8062e42 --- /dev/null +++ b/inc/lang/lb/password.txt @@ -0,0 +1,10 @@ +Moien @FULLNAME@! + +Hei sinn deng Benotzerdaten fir @TITLE@ op @DOKUWIKIURL@ + +Benotzernumm : @LOGIN@ +Passwuert : @PASSWORD@ + +-- +Dës Mail gouf generéiert vun DokuWiki op +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lb/preview.txt b/inc/lang/lb/preview.txt new file mode 100644 index 000000000..f131cdad8 --- /dev/null +++ b/inc/lang/lb/preview.txt @@ -0,0 +1,3 @@ +======Net gespäichert Versioun====== + +Dëst ass nëmmen eng net gespäichert Versioun; d'Ännerunge sinn nach **net** gespäichert! diff --git a/inc/lang/lb/pwconfirm.txt b/inc/lang/lb/pwconfirm.txt new file mode 100644 index 000000000..11246572b --- /dev/null +++ b/inc/lang/lb/pwconfirm.txt @@ -0,0 +1,15 @@ +Moien @FULLNAME@! + +Iergendeen huet e neit Passwuert fir däin @TITLE@ +login op @DOKUWIKIURL@ gefrot + +Wanns de kee nei Passwuert gefrot hues, dann ignoréier dës Mail. + +Fir ze konfirméieren dass du wierklech en neit Passwuert gefrot hues, +klick op folgende Link. + +@CONFIRM@ + +-- +Des Mail gouf generéiert vun DokuWiki op +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lb/read.txt b/inc/lang/lb/read.txt new file mode 100644 index 000000000..3f52bd679 --- /dev/null +++ b/inc/lang/lb/read.txt @@ -0,0 +1 @@ +Dës Säit ass nëmme fir ze kucken. Du kanns d'Quell kucken, mee net änneren. Fro däin Administrator wanns de mengs dat wier falsch. diff --git a/inc/lang/lb/recent.txt b/inc/lang/lb/recent.txt new file mode 100644 index 000000000..c7359e202 --- /dev/null +++ b/inc/lang/lb/recent.txt @@ -0,0 +1,4 @@ +====== Rezent Ännerungen ====== + +Folgend Säite goufen an der lescht g'ännert. + diff --git a/inc/lang/lb/register.txt b/inc/lang/lb/register.txt new file mode 100644 index 000000000..1e017e997 --- /dev/null +++ b/inc/lang/lb/register.txt @@ -0,0 +1,4 @@ +====== Als neie Benotzer registréieren ====== + +Fëll alles hei ënnendrënner aus fir en neie Kont op dësem Wiki unzeleeën. Pass op dass de eng **gëlteg Emailadress** ugëss - wanns de net gefrot gëss hei e Passwuert anzeginn, da kriss de e neit op déi Adress geschéckt. De Benotzernumm soll e gëltege [[doku>pagename|Säitenumm]] sinn. + diff --git a/inc/lang/lb/registermail.txt b/inc/lang/lb/registermail.txt new file mode 100644 index 000000000..0f4fee8ec --- /dev/null +++ b/inc/lang/lb/registermail.txt @@ -0,0 +1,14 @@ +Et huet sech e neie Benotzer registréiert. Hei sinn d'Deteiler: + +Benotzernumm: @NEWUSER@ +Ganze Numm : @NEWNAME@ +Email : @NEWEMAIL@ + +Datum : @DATE@ +Browser : @BROWSER@ +IP-Adress : @IPADDRESS@ +Hostnumm : @HOSTNAME@ + +-- +Des Mail gouf generéiert vun DokuWiki op +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lb/resendpwd.txt b/inc/lang/lb/resendpwd.txt new file mode 100644 index 000000000..6ca4518dc --- /dev/null +++ b/inc/lang/lb/resendpwd.txt @@ -0,0 +1,3 @@ +====== Nei Passwuert schécken ====== + +Gëff w.e.g. däi Benotzernumm an de Formulär hei ënnendrënner an fir e neit Passwuert fir dëse Wiki unzefroen. E Konfirmatiounslink gëtt dann op deng registréiert Emailadress geschéckt. diff --git a/inc/lang/lb/revisions.txt b/inc/lang/lb/revisions.txt new file mode 100644 index 000000000..7dec32759 --- /dev/null +++ b/inc/lang/lb/revisions.txt @@ -0,0 +1,3 @@ +====== Al Versiounen ====== + +Hei sinn déi al Versiounen vun dësem Dokument. Fir op eng al Versioun zeréckzegoen, wiel se hei ënnendrënner eraus, klick ''Dës Säit änneren'' a späicher se. diff --git a/inc/lang/lb/searchpage.txt b/inc/lang/lb/searchpage.txt new file mode 100644 index 000000000..5e15a2c60 --- /dev/null +++ b/inc/lang/lb/searchpage.txt @@ -0,0 +1,5 @@ +======Sich====== + +Hei ënnendrënner sinn d'Resultater vun der Sich. Wanns de net fënns wats de gesicht hues kanns de eng nei Säit mam Numm vun denger Sich uleeën. + +=====Resultater=====
\ No newline at end of file diff --git a/inc/lang/lb/showrev.txt b/inc/lang/lb/showrev.txt new file mode 100644 index 000000000..f6e2deee8 --- /dev/null +++ b/inc/lang/lb/showrev.txt @@ -0,0 +1,2 @@ +**Dat hei ass eng al Versioun vum Document!** +----
\ No newline at end of file diff --git a/inc/lang/lb/updateprofile.txt b/inc/lang/lb/updateprofile.txt new file mode 100644 index 000000000..326d62217 --- /dev/null +++ b/inc/lang/lb/updateprofile.txt @@ -0,0 +1,4 @@ +====== Profil aktualiséieren ====== + +Du brauchs just d'Felder auszefëllen déis de wëlls änneren. Du kanns däi Benotzernumm net änneren. + diff --git a/inc/lang/lb/uploadmail.txt b/inc/lang/lb/uploadmail.txt new file mode 100644 index 000000000..3c2587cb4 --- /dev/null +++ b/inc/lang/lb/uploadmail.txt @@ -0,0 +1,14 @@ +Eng Datei gouf op däin DokuWiki eropgelueden. Hei sinn d'Deteiler: + +Datei : @MEDIA@ +Datum : @DATE@ +Browser : @BROWSER@ +IP-Adress : @IPADDRESS@ +Hostnumm : @HOSTNAME@ +Gréisst : @SIZE@ +MIME Typ : @MIME@ +Benotzer : @USER@ + +-- +Dës Mail gouf generéiert vun DokuWiki op +@DOKUWIKIURL@ diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index 151964e03..639ad4749 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Perrašyti egzistuojančią bylą'; $lang['lockedby'] = 'Užrakintas vartotojo'; $lang['lockexpire'] = 'Užraktas bus nuimtas'; $lang['willexpire'] = 'Šio puslapio redagavimo užrakto galiojimo laikas baigsis po minutės.\nNorėdami išvengti nesklandumų naudokite peržiūros mygtuką ir užraktas atsinaujins.'; -$lang['notsavedyet'] = 'Pakeitimai nebus išsaugoti.\nTikrai tęsti?'; +$lang['js']['notsavedyet'] = "Pakeitimai nebus išsaugoti.\nTikrai tęsti?"; $lang['rssfailed'] = 'Siunčiant šį feed\'ą įvyko klaida: '; $lang['nothingfound'] = 'Paieškos rezultatų nėra.'; $lang['mediaselect'] = 'Mediabylos išsirinkimas'; diff --git a/inc/lang/lt/wordblock.txt b/inc/lang/lt/wordblock.txt deleted file mode 100644 index 43ac79bbf..000000000 --- a/inc/lang/lt/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== NESPAM'INK! ====== - -Jūsų pakeitimai **nebuvo išsaugoti**, nes juose rasta vienas ar daugiau užblokuotų žodžių. Jeigu manote, kad tai klaida, susisiekite su administracija. Jeigu sugalvojote čia spam'inti - pyzdink nachui iš čia, byby bled! - diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 5de7a0cc6..1ebd86edf 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -37,9 +37,6 @@ $lang['btn_back'] = 'Atpakaļ'; $lang['btn_backlink'] = 'Norādes uz lapu'; $lang['btn_backtomedia'] = 'Atpakaļ uz mēdiju failu izvēli'; $lang['btn_subscribe'] = 'Abonēt izmaiņu paziņojumus'; -$lang['btn_unsubscribe'] = 'Atteikties no izmaiņu paziņojumiem'; -$lang['btn_subscribens'] = 'Abonēt nodaļas izmaiņu paziņojumus'; -$lang['btn_unsubscribens'] = 'Atteikties no nodaļas izmaiņu paziņojumiem'; $lang['btn_profile'] = 'Labot savu profilu'; $lang['btn_reset'] = 'Atsaukt izmaiņas'; $lang['btn_resendpwd'] = 'Nosūtīt jaunu paroli'; @@ -93,7 +90,7 @@ $lang['txt_overwrt'] = 'Aizstāt esošo failu'; $lang['lockedby'] = 'Patlaban bloķējis '; $lang['lockexpire'] = 'Bloķējums beigsies '; $lang['willexpire'] = 'Tavs bloķējums uz šo lapu pēc minūtes beigsies.\nLai izvairītos no konflikta, nospied Iepriekšapskata pogu\n un bloķējuma laiku sāks skaitīt no jauna.'; -$lang['notsavedyet'] = 'Veiktas bet nav saglabātas izmaiņas.\nVai tiešām tās nevajag?'; +$lang['js']['notsavedyet'] = "Veiktas bet nav saglabātas izmaiņas.\nVai tiešām tās nevajag?"; $lang['rssfailed'] = 'Kļūda saņemot saturu no '; $lang['nothingfound'] = 'Nekas nav atrasts.'; $lang['mediaselect'] = 'Mēdiju faila izvēle'; @@ -114,6 +111,27 @@ $lang['mediafiles'] = 'Pieejamie faili'; $lang['js']['searchmedia'] = 'Meklēt failus'; $lang['js']['keepopen'] = 'Pēc faila izvēles logu paturēt atvērtu'; $lang['js']['hidedetails'] = 'Slēpt detaļas'; +$lang['js']['mediatitle'] = 'Saites īpašības'; +$lang['js']['mediadisplay'] = 'Saites tips'; +$lang['js']['mediaalign'] = 'Slēgums'; +$lang['js']['mediasize'] = 'Attēla izmērs'; +$lang['js']['mediatarget'] = 'Saite ved uz '; +$lang['js']['mediaclose'] = 'Aizvērt'; +$lang['js']['mediainsert'] = 'Ievietot'; +$lang['js']['mediadisplayimg'] = 'Rādīt attēlu'; +$lang['js']['mediadisplaylnk'] = 'Rādīt tikai saiti'; +$lang['js']['mediasmall'] = 'Mazs'; +$lang['js']['mediamedium'] = 'Vidējs'; +$lang['js']['medialarge'] = 'Liels'; +$lang['js']['mediaoriginal'] = 'Oriģināls'; +$lang['js']['medialnk'] = 'Saite uz detaļām'; +$lang['js']['mediadirect'] = 'Tieša saite uz oriģinālu'; +$lang['js']['medianolnk'] = 'Bez saites'; +$lang['js']['medianolink'] = 'Bez saites uz attēlu'; +$lang['js']['medialeft'] = 'kreisais'; +$lang['js']['mediaright'] = 'labais'; +$lang['js']['mediacenter'] = 'centra'; +$lang['js']['medianoalign'] = 'neizlīdzināt'; $lang['js']['nosmblinks'] = 'Saites uz Windows resursiem darbojas tikai Microsoft Internet Explorer. Protams, ka vari saiti kopēt un iespraust citā programmā.'; $lang['js']['linkwiz'] = 'Saišu vednis'; @@ -148,6 +166,7 @@ $lang['summary'] = 'Anotācija'; $lang['noflash'] = 'Lai attēlotu lapas saturu, vajag <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; $lang['mail_newpage'] = 'lapa pievienota:'; $lang['mail_changed'] = 'lapa mainīta:'; +$lang['mail_subscribe_list'] = 'Nodaļā mainītās lapas:'; $lang['mail_new_user'] = 'Jauns lietotājs:'; $lang['mail_upload'] = 'augšupielādētais fails:'; $lang['qb_bold'] = 'Trekninājums'; @@ -190,11 +209,22 @@ $lang['img_copyr'] = 'Autortiesības'; $lang['img_format'] = 'Formāts'; $lang['img_camera'] = 'Fotoaparāts'; $lang['img_keywords'] = 'Atslēgvārdi'; -$lang['subscribe_success'] = '%s pievienots %s abonentu sarakstam'; -$lang['subscribe_error'] = 'Kļūme pievienojot %s %s abonentu sarakstam'; -$lang['subscribe_noaddress'] = 'Nav zināma adrese, ko pievienot abonentu sarakstam'; -$lang['unsubscribe_success'] = ' %s svītrots no %s abonentu saraksta'; -$lang['unsubscribe_error'] = 'Kļūme svītrojot %s no %s abonentu saraksta'; +$lang['subscr_subscribe_success'] = '%s pievienots %s abonēšanas sarakstam'; +$lang['subscr_subscribe_error'] = 'Kļūme pievienojot %s %s abonēšanas sarakstam.'; +$lang['subscr_subscribe_noaddress'] = 'Nav zināma jūsu e-pasta adrese, tāpēc nevarat abonēt.'; +$lang['subscr_unsubscribe_success'] = '%s abonements uz %s atsaukts'; +$lang['subscr_unsubscribe_error'] = 'Kļūme svītrojot %s no %s abonēšanas saraksta'; +$lang['subscr_already_subscribed'] = '%s jau abonē %s'; +$lang['subscr_not_subscribed'] = '%s neabonē %s'; +$lang['subscr_m_not_subscribed'] = 'Šī lapa vai nodaļa nav abonēta'; +$lang['subscr_m_new_header'] = 'Pievienot abonementu'; +$lang['subscr_m_current_header'] = 'Patlaban ir abonēts'; +$lang['subscr_m_unsubscribe'] = 'Atteikties no abonēšanas'; +$lang['subscr_m_subscribe'] = 'Abonēt'; +$lang['subscr_m_receive'] = 'Saņemt'; +$lang['subscr_style_every'] = 'vēstuli par katru izmaiņu'; +$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu'; +$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu'; $lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzo ziņo Wiki administratoram.'; $lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.'; $lang['i_chooselang'] = 'Izvēlies valodu'; diff --git a/inc/lang/lv/subscr_digest.txt b/inc/lang/lv/subscr_digest.txt new file mode 100644 index 000000000..98784050c --- /dev/null +++ b/inc/lang/lv/subscr_digest.txt @@ -0,0 +1,19 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vecā versija: @OLDPAGE@ +Jaunā versija: @NEWPAGE@ + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lv/subscr_form.txt b/inc/lang/lv/subscr_form.txt new file mode 100644 index 000000000..9e3145f8e --- /dev/null +++ b/inc/lang/lv/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abonementu pārvaldnieks ====== + +Te varat mainīt savu lapas vai nodaļas abonementu.
\ No newline at end of file diff --git a/inc/lang/lv/subscr_list.txt b/inc/lang/lv/subscr_list.txt new file mode 100644 index 000000000..986b3786a --- /dev/null +++ b/inc/lang/lv/subscr_list.txt @@ -0,0 +1,16 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lv/subscr_single.txt b/inc/lang/lv/subscr_single.txt new file mode 100644 index 000000000..ca6177809 --- /dev/null +++ b/inc/lang/lv/subscr_single.txt @@ -0,0 +1,23 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Datums : @DATE@ +Lietotājs : @USER@ +Izmaiņu anotācija: @SUMMARY@ +Vecā versija: @OLDPAGE@ +Jaunā versija: @NEWPAGE@ + + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/lv/wordblock.txt b/inc/lang/lv/wordblock.txt deleted file mode 100644 index aa7051c8d..000000000 --- a/inc/lang/lv/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAMs bloķēts ====== - -Tavas izmaiņas **nav** saglabātas, jo satur vienu vai vairākus aizliegtos vārdus. Ja uzskati, ka tā ir kļūda, sazinies ar administratoru. - diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index bae292363..2ecbcdcff 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -56,7 +56,7 @@ $lang['lockedby'] = 'Mbola voahidin\'i'; $lang['lockexpire'] = 'Afaka ny hidy amin\'ny'; $lang['willexpire'] = 'Efa ho lany fotoana afaka iray minitra ny hidy ahafahanao manova ny pejy.\nMba hialana amin\'ny conflit dia ampiasao ny bokotra topi-maso hamerenana ny timer-n\'ny hidy.'; -$lang['notsavedyet'] = 'Misy fiovana tsy voarakitra, ho very izany ireo.\nAzo antoka fa hotohizana?'; +$lang['js']['notsavedyet'] = "Misy fiovana tsy voarakitra, ho very izany ireo.\nAzo antoka fa hotohizana?"; $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tsy nahitana n\'inon\'inona.'; diff --git a/inc/lang/mg/wordblock.txt b/inc/lang/mg/wordblock.txt deleted file mode 100644 index 581d67d16..000000000 --- a/inc/lang/mg/wordblock.txt +++ /dev/null @@ -1,5 +0,0 @@ -====== SPAM Voasakana ====== - -Tsy voarakitra ny fanovana nataonao satria misy teny voarara ao. Raha nanandrana nandefa spam ny wiki ianao dia -- Alika maty! Raha heverinao fa error dia ilazao ny Admin. - - diff --git a/inc/lang/mk/adminplugins.txt b/inc/lang/mk/adminplugins.txt new file mode 100644 index 000000000..28e2cc1d3 --- /dev/null +++ b/inc/lang/mk/adminplugins.txt @@ -0,0 +1 @@ +===== Додатни приклучоци =====
\ No newline at end of file diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php new file mode 100644 index 000000000..ddd734e22 --- /dev/null +++ b/inc/lang/mk/lang.php @@ -0,0 +1,247 @@ +<?php +/** + * mk language file + * + * This file was initially built by fetching translations from other + * Wiki projects. See the @url lines below. Additional translations + * and fixes where done for DokuWiki by the people mentioned in the + * lines starting with @author + * + * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesMk.php?view=co + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '„'; +$lang['doublequoteclosing'] = '“'; +$lang['apostrophe'] = '\''; +$lang['btn_edit'] = 'Уреди ја страницата'; +$lang['btn_source'] = 'Прикажи ја изворната страница'; +$lang['btn_show'] = 'Прикажи страница'; +$lang['btn_create'] = 'Креирај ја оваа страница'; +$lang['btn_search'] = 'Барај'; +$lang['btn_save'] = 'Зачувај'; +$lang['btn_preview'] = 'Преглед'; +$lang['btn_top'] = 'Назад до врв'; +$lang['btn_newer'] = '<< понови'; +$lang['btn_older'] = 'постари >>'; +$lang['btn_revs'] = 'Стари ревизии'; +$lang['btn_recent'] = 'Скорешни промени'; +$lang['btn_upload'] = 'Крени'; +$lang['btn_cancel'] = 'Откажи'; +$lang['btn_index'] = 'Индекс'; +$lang['btn_secedit'] = 'Уреди'; +$lang['btn_login'] = 'Најава'; +$lang['btn_logout'] = 'Одјава'; +$lang['btn_admin'] = 'Админ'; +$lang['btn_update'] = 'Ажурирај'; +$lang['btn_delete'] = 'Избриши'; +$lang['btn_back'] = 'Назад'; +$lang['btn_backlink'] = 'Повратни врски'; +$lang['btn_backtomedia'] = 'Назад до изборот за медиа-датотека'; +$lang['btn_subscribe'] = 'Менаџирај претплати'; +$lang['btn_profile'] = 'Ажурирај профил'; +$lang['btn_reset'] = 'Ресет'; +$lang['btn_resendpwd'] = 'Испрати нов пасворд'; +$lang['btn_draft'] = 'Уреди скица'; +$lang['btn_recover'] = 'Поврати скица'; +$lang['btn_draftdel'] = 'Избриши скица'; +$lang['btn_revert'] = 'Обнови'; +$lang['loggedinas'] = 'Најавен/а како'; +$lang['user'] = 'Корисничко име'; +$lang['pass'] = 'Лозинка'; +$lang['newpass'] = 'Нова лозинка'; +$lang['oldpass'] = 'Потврдете ја сегашната лозинка'; +$lang['passchk'] = 'уште еднаш'; +$lang['remember'] = 'Запомни ме'; +$lang['fullname'] = 'Вистинско име'; +$lang['email'] = 'Е-пошта'; +$lang['register'] = 'Регистрирај се'; +$lang['profile'] = 'Кориснички профил'; +$lang['badlogin'] = 'Жалам, корисничкото име или лозинката се погрешни.'; +$lang['minoredit'] = 'Мали измени'; +$lang['draftdate'] = 'Скицата е само-снимена на'; +$lang['nosecedit'] = 'Во меѓувреме страницата беше променета, информацискиот дел е со истечен период затоа се вчита целата страница.'; +$lang['regmissing'] = 'Жалам, мора да ги пополнеш сите полиња.'; +$lang['reguexists'] = 'Жалам, корисник со ова корисничко име веќе постои.'; +$lang['regsuccess'] = 'Корисникот е креиран и лозинката е испратена по е-пошта.'; +$lang['regsuccess2'] = 'Корисникот е креиран.'; +$lang['regmailfail'] = 'Изгледа дека се појави грешка при испраќањето на е-пошта со лозинката. Ве молам контактирајте го администраторот!'; +$lang['regbadmail'] = 'Дадената адреса за е-пошта изгледа невалидна - ако мислите дека ова е грешка, контактирајте го администраторот'; +$lang['regbadpass'] = 'Двете наведени лозинки не се исти, ве молам пробајте повторно.'; +$lang['regpwmail'] = 'Вашата DokuWiki лозинка'; +$lang['reghere'] = 'Се уште немаш сметка? Направи веќе една'; +$lang['profna'] = 'Ова вики не поддржува измена на профилот'; +$lang['profnochange'] = 'Нема промени, ништо за правење.'; +$lang['profnoempty'] = 'Празно име или адреса за е-пошта не е дозволено.'; +$lang['profchanged'] = 'Корисничкиот профил е успешно ажуриран.'; +$lang['pwdforget'] = 'Ја заборавивте лозинката? Добијте нова'; +$lang['resendna'] = 'Ова вики не поддржува повторно испраќање на лозинка.'; +$lang['resendpwd'] = 'Испрати нова лозинка за'; +$lang['resendpwdmissing'] = 'Жалам, морате да ги пополните сите полиња.'; +$lang['resendpwdnouser'] = 'Жалам, таков корисник не постои во нашата база со податоци.'; +$lang['resendpwdbadauth'] = 'Жалам, овај код за валидација не е валиден. Проверете повторно дали ја искористивте целосната врска за потврда.'; +$lang['resendpwdconfirm'] = 'Врска за потврда е испратена по е-пошта.'; +$lang['resendpwdsuccess'] = 'Вашата нова лозинка е испратена по е-пошта.'; +$lang['license'] = 'Освен каде што е наведено поинаку, содржината на ова вики е лиценцирано по следнава лиценца:'; +$lang['licenseok'] = 'Забелешка: со уредување на оваа страница се согласувате да ја лиценцирате вашата содржина под следнава лиценца:'; +$lang['searchmedia'] = 'Барај име на датотека:'; +$lang['searchmedia_in'] = 'Барај во %s'; +$lang['txt_upload'] = 'Избери датотека за качување'; +$lang['txt_filename'] = 'Качи како (неморално)'; +$lang['txt_overwrt'] = 'Пребриши ја веќе постоечката датотека'; +$lang['lockedby'] = 'Моментално заклучена од'; +$lang['lockexpire'] = 'Клучот истекува на'; +$lang['willexpire'] = 'Вашиот клуч за уредување на оваа страница ќе истече за една минута.\nЗа да избегнете конфликти и да го ресетирате бројачот за време, искористете го копчето за преглед.'; +$lang['js']['notsavedyet'] = "Незачуваните промени ќе бидат изгубени.\nСакате да продолжите?"; +$lang['rssfailed'] = 'Се појави грешка при повлекувањето на овој канал:'; +$lang['nothingfound'] = 'Ништо не е пронајдено.'; +$lang['mediaselect'] = 'Медиа датотеки'; +$lang['fileupload'] = 'Качување на медиа датотеки'; +$lang['uploadsucc'] = 'Качувањето е успешно'; +$lang['uploadfail'] = 'Качувањето не е успешно. Можеби има погрешни пермисии?'; +$lang['uploadwrong'] = 'Качувањето е одбиено. Наставката на датотеката е забранета!'; +$lang['uploadexist'] = 'Датотеката веќе постои. Ништо не е направено.'; +$lang['uploadbadcontent'] = 'Качената содржина не се совпаѓа со наставката %s на датотеката.'; +$lang['uploadspam'] = 'Качувањето беше блокирано од црната листа за спам.'; +$lang['uploadxss'] = 'Качувањето беше блокирано за можна злонамерна содржина.'; +$lang['uploadsize'] = 'Датотеката за качување е премногу голема. (макс. %s)'; +$lang['deletesucc'] = 'Датотеката „%s“ е избришана.'; +$lang['deletefail'] = '„%s“ не може да се избрише - проверете пермисии.'; +$lang['mediainuse'] = 'Датотеката „%s“ не е избришана - се уште е во употреба.'; +$lang['mediafiles'] = 'Достапни датотеки во'; +$lang['js']['searchmedia'] = 'Барај датотеки'; +$lang['js']['keepopen'] = 'Задржи го прозорецот отворен на означеното место'; +$lang['js']['hidedetails'] = 'Скриј детали'; +$lang['js']['nosmblinks'] = 'Поврзувањето со Windows Shares работи само со Microsoft Internet Explorer. Сепак можете да ја копирате и вметнете врската.'; +$lang['js']['linkwiz'] = 'Волшебник за врски'; +$lang['js']['linkto'] = 'Врска до:'; +$lang['js']['del_confirm'] = 'Дали навистина да ги избришам избраните датотеки?'; +$lang['js']['mu_btn'] = 'Качете повеќе датотеки наеднаш'; +$lang['mediausage'] = 'Користете ја следнава синтакса за референцирање кон оваа датотека:'; +$lang['mediaview'] = 'Види ја оригиналната датотека'; +$lang['mediaroot'] = 'root'; +$lang['mediaextchange'] = 'Наставката на датотеката е сменета од .%s во .%s!'; +$lang['reference'] = 'Референци за'; +$lang['ref_inuse'] = 'Датотеката не може да биде избришана бидејќи се уште се користи од следниве страници:'; +$lang['ref_hidden'] = 'Некои референци се на страници на кои немате пермисии за читање'; +$lang['hits'] = 'Прегледи'; +$lang['quickhits'] = 'Совпаѓачки имиња на страници'; +$lang['toc'] = 'Содржина'; +$lang['current'] = 'сегашно'; +$lang['yours'] = 'Вашата верзија'; +$lang['diff'] = 'Прикажи разлики со сегашната верзија'; +$lang['diff2'] = 'Прикажи разлики помеѓу избраните ревизии'; +$lang['line'] = 'Линија'; +$lang['breadcrumb'] = 'Следи'; +$lang['youarehere'] = 'Вие сте тука'; +$lang['lastmod'] = 'Последно изменета'; +$lang['by'] = 'од'; +$lang['deleted'] = 'отстранета'; +$lang['created'] = 'креирана'; +$lang['restored'] = 'обновена е стара ревизија'; +$lang['external_edit'] = 'надворешно уредување'; +$lang['summary'] = 'Уреди го изводот'; +$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash приклучокот</a> е потребен за да се прикаже оваа содржина.'; +$lang['download'] = 'Симни Snippe'; +$lang['mail_newpage'] = 'додадена е страницата:'; +$lang['mail_changed'] = 'променета е страницата:'; +$lang['mail_new_user'] = 'нов корисник:'; +$lang['mail_upload'] = 'качена е датотеката:'; +$lang['qb_bold'] = 'Задебелен текст'; +$lang['qb_italic'] = 'Накосен текст'; +$lang['qb_underl'] = 'Подвлечен текст'; +$lang['qb_code'] = 'Текст за код'; +$lang['qb_strike'] = 'Прецртан текст'; +$lang['qb_h1'] = 'Заглавие од 1-во ниво'; +$lang['qb_h2'] = 'Заглавие од 2-ро ниво'; +$lang['qb_h3'] = 'Заглавие од 3-то ниво'; +$lang['qb_h4'] = 'Заглавие од 4-то ниво'; +$lang['qb_h5'] = 'Заглавие од 5-то ниво'; +$lang['qb_h'] = 'Заглавие'; +$lang['qb_hs'] = 'Избери заглавие'; +$lang['qb_hplus'] = 'Зголеми заглавие'; +$lang['qb_hminus'] = 'Намали заглавие'; +$lang['qb_hequal'] = 'Заглавие од исто ниво'; +$lang['qb_link'] = 'Внатрешна врска'; +$lang['qb_extlink'] = 'Надворешна врска'; +$lang['qb_hr'] = 'Хоризонтален линијар'; +$lang['qb_media'] = 'Додај слики и други датотеки'; +$lang['qb_sig'] = 'Внеси потпис'; +$lang['qb_smileys'] = 'Смајлиња'; +$lang['qb_chars'] = 'Специјални знаци'; +$lang['admin_register'] = 'Додај нов корисник'; +$lang['metaedit'] = 'Уреди мета-податоци'; +$lang['metasaveerr'] = 'Запишување на мета-податоците не успеа'; +$lang['metasaveok'] = 'Мета-податоците се зачувани'; +$lang['img_backto'] = 'Назад до'; +$lang['img_title'] = 'Насловна линија'; +$lang['img_caption'] = 'Наслов'; +$lang['img_date'] = 'Датум'; +$lang['img_fname'] = 'Име на датотека'; +$lang['img_fsize'] = 'Големина'; +$lang['img_artist'] = 'Фотограф'; +$lang['img_copyr'] = 'Авторско право'; +$lang['img_format'] = 'Формат'; +$lang['img_camera'] = 'Камера'; +$lang['img_keywords'] = 'Клучни зборови'; +$lang['subscr_subscribe_success'] = 'Додаден/а е %s во претплатничката листа за %s'; +$lang['subscr_subscribe_error'] = 'Грешка при додавањето на %s во претплатничката листа за %s'; +$lang['subscr_subscribe_noaddress'] = 'Нема адреса за е-пошта поврзана со Вашата најава, не може да бидете додадени на претплатничката листа'; +$lang['subscr_unsubscribe_success'] = 'Отстранет/а е %s од претплатничката листа за %s'; +$lang['subscr_unsubscribe_error'] = 'Грешка при отстранувањето на %s од претплатничката листа за %s'; +$lang['subscr_already_subscribed'] = '%s е веќе претплатен/а на %s'; +$lang['subscr_not_subscribed'] = '%s е не претплатен/а на %s'; +$lang['subscr_m_not_subscribed'] = 'Моментално не сте пријавени на сегашната страница или '; +$lang['subscr_m_new_header'] = 'Додај претплата'; +$lang['subscr_m_current_header'] = 'Моментални претплати'; +$lang['subscr_m_unsubscribe'] = 'Отплатување'; +$lang['subscr_m_subscribe'] = 'Претплата'; +$lang['subscr_m_receive'] = 'Прими'; +$lang['subscr_style_every'] = 'е-пошта за секоја промена'; +$lang['subscr_style_digest'] = 'е-пошта со преглед од промените за секоја страница'; +$lang['subscr_style_list'] = 'листа на променети страници од последната е-пошта'; +$lang['authmodfailed'] = 'Лоша конфигурација за автентикација на корисник. Ве молам информирајте го вики администратор.'; +$lang['authtempfail'] = 'Автентикација на корисник е привремено недостапна. Ако оваа ситуација истрајува, ве молам известете го вики администратор.'; +$lang['i_chooselang'] = 'Избере јазик'; +$lang['i_installer'] = 'Инсталер за DokuWiki'; +$lang['i_wikiname'] = 'вики име'; +$lang['i_enableacl'] = 'Овозможи ACL (препорачано)'; +$lang['i_superuser'] = 'Супер корисник'; +$lang['i_problems'] = 'Инсталерот пронајде неколку проблеми кои се прикажани подолу. Не можете да продолжите понатаму се додека не ги поправите.'; +$lang['i_modified'] = 'За безбедносни причини оваа скрипта ќе работи само со нова и неизменета инсталација од DokuWiki. Или извадете ги повторно датотеките од симнатиот пакет или консултирајте се со комплетните <a href="http://dokuwiki.org/install">Dokuwiki инструкции за инсталација</a>'; +$lang['i_funcna'] = 'PHP функцијата <code>%s</code> не е достапна. Можеби вашиот хостинг провајдер ја оневозможил со причина?'; +$lang['i_phpver'] = 'Вашата верзија на PHP <code>%s</code> е пониска од потребната <code>%s</code>. Треба да ја надградите вашата PHP инсталација.'; +$lang['i_permfail'] = '<code>%s</code> не е запишлива од DokuWiki. Треба да ги поправите подесувањата за пермисии на овој директориум!'; +$lang['i_confexists'] = '<code>%s</code> веќе постои'; +$lang['i_writeerr'] = 'Не може да се креира <code>%s</code>. Треба да ги проверите пермисиите на директориумот/датотеката и рачно да ја креирате датотеката.'; +$lang['i_badhash'] = 'непозната или изменете dokuwiki.php (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - нелегална или празна вредност'; +$lang['i_success'] = 'Конфигурацијата успешно заврши. Сега можете да ја избришете датотеката install.php. Продолжете до <a href="doku.php">вашето ново DokuWiki</a>.'; +$lang['i_failure'] = 'Се појавија некои грешки при запишувањето на конфигурациските датотеки. Можеби треба да ги поравите рачно пред да можете да го користите <a href="doku.php">вашето ново DokuWiki</a>.'; +$lang['i_policy'] = 'Почетна ACL политика'; +$lang['i_pol0'] = 'Отвори вики (читај, запиши, качи за сите)'; +$lang['i_pol1'] = 'Јавно вики (читај за сите, запиши и качи за регистрирани корисници)'; +$lang['i_pol2'] = 'Затворено вики (читај, запиши, качи само за регистрирани корисници)'; +$lang['i_retry'] = 'Пробај повторно'; +$lang['mu_intro'] = 'Овде можете да прикачите повеќе датотеки од еднаш. Кликнете на копчето за пребарување за да ги додадете во редица. Притиснете на качи кога е готово.'; +$lang['mu_gridname'] = 'Име на датотека'; +$lang['mu_gridsize'] = 'Големина'; +$lang['mu_gridstat'] = 'Состојба'; +$lang['mu_browse'] = 'Пребарај'; +$lang['mu_toobig'] = 'премногу голема'; +$lang['mu_ready'] = 'спремна за качување'; +$lang['mu_done'] = 'комплетно'; +$lang['mu_fail'] = 'неуспешно'; +$lang['mu_authfail'] = 'сесијата истече'; +$lang['mu_progress'] = '@PCT@% качено'; +$lang['mu_filetypes'] = 'Дозволено типови на датотеки'; +$lang['mu_info'] = 'качени датотеки.'; +$lang['mu_lasterr'] = 'Последна грешка: '; +$lang['years'] = 'пред %d години'; +$lang['months'] = 'пред %d месеци'; +$lang['weeks'] = 'пред %d недели'; +$lang['days'] = 'пред %d денови'; +$lang['hours'] = 'пред %d часа'; +$lang['minutes'] = 'пред %d минути'; +$lang['seconds'] = 'пред %d секунди'; diff --git a/inc/lang/mk/read.txt b/inc/lang/mk/read.txt new file mode 100644 index 000000000..8c8726eea --- /dev/null +++ b/inc/lang/mk/read.txt @@ -0,0 +1 @@ +Оваа страница е само за читање. Можете да го гледате изворот, но не можете да ја менувате. Ако мислите дека ова е погрешно, контактирајте го администраторот.
\ No newline at end of file diff --git a/inc/lang/mk/recent.txt b/inc/lang/mk/recent.txt new file mode 100644 index 000000000..cfbba4aa2 --- /dev/null +++ b/inc/lang/mk/recent.txt @@ -0,0 +1,3 @@ +====== Скорешни промени ====== + +Следниве страници беа скорешно променети.
\ No newline at end of file diff --git a/inc/lang/mk/showrev.txt b/inc/lang/mk/showrev.txt new file mode 100644 index 000000000..a0ca7353e --- /dev/null +++ b/inc/lang/mk/showrev.txt @@ -0,0 +1,2 @@ +**Ова е стара ревизија од документото!** +----
\ No newline at end of file diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index 715d51119..99561f064 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = 'अस्तित्वात असलेल $lang['lockedby'] = 'सध्या लॉक करणारा :'; $lang['lockexpire'] = 'सध्या लॉक करणारा :'; $lang['willexpire'] = 'हे पृष्ठ संपादित करण्यासाठी मिळालेले लॉक एखाद्या मिनिटात संपणार आहे.\n चुका होऊ नयेत म्हणुन कृपया प्रीव्यू बटन दाबुन लॉक ची वेळ पुन्हा चालू करा.'; -$lang['notsavedyet'] = 'सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?'; +$lang['js']['notsavedyet'] = "सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?"; $lang['rssfailed'] = 'ही पुरवणी आणण्यात काही चूक झाली:'; $lang['nothingfound'] = 'काही सापडला नाही.'; $lang['mediaselect'] = 'दृकश्राव्य फाइल'; diff --git a/inc/lang/mr/wordblock.txt b/inc/lang/mr/wordblock.txt deleted file mode 100644 index e885cbed9..000000000 --- a/inc/lang/mr/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== भंकस रोखली ====== - -तुमचे बदल सुरक्षित केलेले ** नाहीत ** कारण त्यामधे एक किंवा अधिक निषिद्ध शब्द आहेत. जर तुम्ही मुद्दामच विकिवर भंकस करण्याचा प्रयत्न केला असेल तर असले चाळे बंद करा ! आणि समजा तुम्हाला असा वाटत असेल की हा मजकूर निषिद्ध समजण्याचे काही कारण नाही तर तुमच्या विकी व्यवस्थापकाशी संपर्क साधा.
\ No newline at end of file diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index ce9310ee5..6c00610ea 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -91,7 +91,7 @@ $lang['txt_overwrt'] = 'रहेको उहि नामको फ $lang['lockedby'] = 'अहिले ताल्चा लगाइएको'; $lang['lockexpire'] = 'ताल्चा अवधि सकिने :'; $lang['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।'; -$lang['notsavedyet'] = 'तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।'; +$lang['js']['notsavedyet'] = "तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।"; $lang['rssfailed'] = 'यो फिड लिइ आउदा गल्ति भयो ।'; $lang['nothingfound'] = 'केहि पनि भेटिएन ।'; $lang['mediaselect'] = 'मिडिया फाइलहरू '; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 782a76758..9d81d0ff4 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -13,6 +13,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -46,9 +48,6 @@ $lang['btn_back'] = 'Terug'; $lang['btn_backlink'] = 'Referenties'; $lang['btn_backtomedia'] = 'Terug naar Bestandsselectie'; $lang['btn_subscribe'] = 'Inschrijven wijzigingen'; -$lang['btn_unsubscribe'] = 'Opzeggen wijzigingen'; -$lang['btn_subscribens'] = 'Inschrijven namespace-wijzigingen'; -$lang['btn_unsubscribens'] = 'Opzeggen namespace-wijzigingen'; $lang['btn_profile'] = 'Profiel aanpassen'; $lang['btn_reset'] = 'Wissen'; $lang['btn_resendpwd'] = 'Stuur een nieuw wachtwoord'; @@ -102,7 +101,38 @@ $lang['txt_overwrt'] = 'Overschrijf bestaand bestand'; $lang['lockedby'] = 'Momenteel in gebruik door'; $lang['lockexpire'] = 'Exclusief gebruiksrecht vervalt op'; $lang['willexpire'] = 'Je exclusieve gebruiksrecht voor het aanpassen van deze pagina verloopt over een minuut.\nKlik op de Voorbeeld-knop om het exclusieve gebruiksrecht te verlengen.'; -$lang['notsavedyet'] = 'Nog niet bewaarde wijzigingen zullen verloren gaan.\nWeet je zeker dat je wilt doorgaan?'; +$lang['js']['notsavedyet'] = 'Nog niet bewaarde wijzigingen zullen verloren gaan. +Weet je zeker dat je wilt doorgaan?'; +$lang['js']['searchmedia'] = 'Zoek naar bestanden'; +$lang['js']['keepopen'] = 'Houd scherm open bij selectie'; +$lang['js']['hidedetails'] = 'Verberg details'; +$lang['js']['mediatitle'] = 'Linkinstellingen'; +$lang['js']['mediadisplay'] = 'Linktype'; +$lang['js']['mediaalign'] = 'Uitlijning'; +$lang['js']['mediasize'] = 'Afbeeldingsomvang'; +$lang['js']['mediatarget'] = 'Linkdoel'; +$lang['js']['mediaclose'] = 'Sluiten'; +$lang['js']['mediainsert'] = 'Invoegen'; +$lang['js']['mediadisplayimg'] = 'De afbeelding weergeven'; +$lang['js']['mediadisplaylnk'] = 'Alleen de link weergeven'; +$lang['js']['mediasmall'] = 'Kleine versie'; +$lang['js']['mediamedium'] = 'Middelgrote versie'; +$lang['js']['medialarge'] = 'Grote versie'; +$lang['js']['mediaoriginal'] = 'Originele versie'; +$lang['js']['medialnk'] = 'Link naar detailpagina'; +$lang['js']['mediadirect'] = 'Directe link naar origineel'; +$lang['js']['medianolnk'] = 'Geen link'; +$lang['js']['medianolink'] = 'Link niet naar de afbeelding'; +$lang['js']['medialeft'] = 'Afbeelding links uitlijnen'; +$lang['js']['mediaright'] = 'Afbeelding rechts uitlijnen'; +$lang['js']['mediacenter'] = 'Afbeelding centreren'; +$lang['js']['medianoalign'] = 'Geen uitlijning gebruiken'; +$lang['js']['nosmblinks'] = 'Linken naar Windows shares werkt alleen in Microsoft Internet Explorer. +Je kan de link wel kopiëren en plakken.'; +$lang['js']['linkwiz'] = 'Linkwizard'; +$lang['js']['linkto'] = 'Link naar:'; +$lang['js']['del_confirm'] = 'Item(s) verwijderen?'; +$lang['js']['mu_btn'] = 'Meerdere files tegelijk uploaden'; $lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: '; $lang['nothingfound'] = 'Er werd niets gevonden.'; $lang['mediaselect'] = 'Bestandsselectie'; @@ -120,15 +150,7 @@ $lang['deletefail'] = '"%s" kan niet worden verwijderd - controleer p $lang['mediainuse'] = 'Het bestand "%s" is niet verwijderd - het is nog in gebruik.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Beschikbare bestanden in'; -$lang['js']['searchmedia'] = 'Zoek naar bestanden'; -$lang['js']['keepopen'] = 'Houd scherm open bij selectie'; -$lang['js']['hidedetails'] = 'Verberg details'; -$lang['js']['nosmblinks'] = 'Linken naar Windows shares werkt alleen in Microsoft Internet Explorer. -Je kan de link wel kopiëren en plakken.'; -$lang['js']['linkwiz'] = 'Linkwizard'; -$lang['js']['linkto'] = 'Link naar:'; -$lang['js']['del_confirm'] = 'Item(s) verwijderen?'; -$lang['js']['mu_btn'] = 'Meerdere files tegelijk uploaden'; +$lang['accessdenied'] = 'U heeft geen toegang tot deze pagina.'; $lang['mediausage'] = 'Gebruik de volgende syntax om aan het bestand te refereren:'; $lang['mediaview'] = 'Bekijk het orginele bestand'; $lang['mediaroot'] = 'root'; @@ -144,6 +166,7 @@ $lang['current'] = 'huidige'; $lang['yours'] = 'Jouw versie'; $lang['diff'] = 'Toon verschillen met huidige revisie'; $lang['diff2'] = 'Toon verschillen tussen geselecteerde revisies'; +$lang['difflink'] = 'Link naar deze vergelijking'; $lang['line'] = 'Regel'; $lang['breadcrumb'] = 'Spoor'; $lang['youarehere'] = 'Je bent hier'; @@ -158,6 +181,7 @@ $lang['noflash'] = 'De <a href="http://www.adobe.com/products/flas $lang['download'] = 'Download fragment'; $lang['mail_newpage'] = 'pagina toegevoegd:'; $lang['mail_changed'] = 'pagina aangepast:'; +$lang['mail_subscribe_list'] = 'Pagina\'s veranderd in namespace:'; $lang['mail_new_user'] = 'nieuwe gebruiker:'; $lang['mail_upload'] = 'bestand geüpload:'; $lang['qb_bold'] = 'Vette tekst'; @@ -200,11 +224,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formaat'; $lang['img_camera'] = 'Camera'; $lang['img_keywords'] = 'Trefwoorden'; -$lang['subscribe_success'] = '%s toegevoegd aan de lijst voor %s'; -$lang['subscribe_error'] = 'Fout bij toevoegen van %s aan de lijst voor %s'; -$lang['subscribe_noaddress'] = 'Er is geen adres dat overeenkomt met je login, je kan niet toegevoegd worden aan de lijst'; -$lang['unsubscribe_success'] = '%s verwijderd van de lijst voor %s'; -$lang['unsubscribe_error'] = 'Fout bij verwijderen van %s van de lijst voor %s'; +$lang['subscr_subscribe_success'] = '%s is ingeschreven voor %s'; +$lang['subscr_subscribe_error'] = 'Fout bij inschrijven van %s voor %s'; +$lang['subscr_subscribe_noaddress'] = 'Er is geen emailadres geassocieerd met uw account, u kunt daardoor niet worden ingeschreven.'; +$lang['subscr_unsubscribe_success'] = '%s is nu uitgeschreven bij %s.'; +$lang['subscr_unsubscribe_error'] = 'Fout bij uitschrijven van %s bij %s.'; +$lang['subscr_already_subscribed'] = '%s is reeds ingeschreven bij %s.'; +$lang['subscr_not_subscribed'] = '%s is niet ingeschreven bij %s.'; +$lang['subscr_m_not_subscribed'] = 'Je bent momenteel niet ingeschreven bij de huidige pagina of namespace.'; +$lang['subscr_m_new_header'] = 'Inschrijving toevoegen'; +$lang['subscr_m_current_header'] = 'Huidige inschrijvingen'; +$lang['subscr_m_unsubscribe'] = 'Uitschrijven'; +$lang['subscr_m_subscribe'] = 'Inschrijven'; +$lang['subscr_m_receive'] = 'Ontvang'; +$lang['subscr_style_every'] = 'Email bij iedere wijziging'; +$lang['subscr_style_digest'] = 'Samenvattings-email met wijzigingen per pagina (elke %.2f dagen)'; +$lang['subscr_style_list'] = 'Lijst van veranderde pagina\'s sinds laatste email (elke %.2f dagen)'; $lang['authmodfailed'] = 'Ongeldige gebruikersauthenticatie-configuratie. Informeer de wikibeheerder.'; $lang['authtempfail'] = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.'; $lang['i_chooselang'] = 'Kies je taal'; @@ -228,6 +263,7 @@ $lang['i_pol0'] = 'Open wiki (lezen, schrijven, uploaden voor ied $lang['i_pol1'] = 'Publieke wiki (lezen voor iedereen, schrijven en uploaden voor geregistreerde gebruikers)'; $lang['i_pol2'] = 'Besloten wiki (lezen, schrijven en uploaden alleen voor geregistreerde gebruikers)'; $lang['i_retry'] = 'Opnieuw'; +$lang['i_license'] = 'Kies a.u.b. een licentie die u voor uw inhoud wilt gebruiken:'; $lang['mu_intro'] = 'Hiier kun je meerdere bestanden tegelijk uploaden. Klik de blader-knop om ze aan de lijst toe te voegen. Klik Upload als je klaar bent.'; $lang['mu_gridname'] = 'Bestandsnaam'; $lang['mu_gridsize'] = 'Grootte'; @@ -251,3 +287,4 @@ $lang['days'] = '%d dagen geleden'; $lang['hours'] = '%d uren geleden'; $lang['minutes'] = '%d minuten geleden'; $lang['seconds'] = '%d seconden geleden'; +$lang['wordblock'] = 'Uw wijziging is niet opgeslagen omdat deze niet-toegestane tekst bevat (spam).'; diff --git a/inc/lang/nl/subscr_digest.txt b/inc/lang/nl/subscr_digest.txt new file mode 100644 index 000000000..0e6c2c5ba --- /dev/null +++ b/inc/lang/nl/subscr_digest.txt @@ -0,0 +1,15 @@ +Halllo! + +De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vorige revisie: @OLDPAGE@ +Nieuwe revisie: @NEWPAGE@ + +Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven. + +-- +Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/nl/subscr_form.txt b/inc/lang/nl/subscr_form.txt new file mode 100644 index 000000000..a554f843e --- /dev/null +++ b/inc/lang/nl/subscr_form.txt @@ -0,0 +1,3 @@ +====== Beheer inschrijvingen ====== + +Deze pagina stelt u in staat uw inschrijven voor de huidige pagina en namespace te configureren.
\ No newline at end of file diff --git a/inc/lang/nl/subscr_list.txt b/inc/lang/nl/subscr_list.txt new file mode 100644 index 000000000..5e1a62144 --- /dev/null +++ b/inc/lang/nl/subscr_list.txt @@ -0,0 +1,12 @@ +Halllo! + +Pagina's in de namespace @PAGE@ van de @TITLE@ wiki zijn veranderd. Hier zijn de veranderde pagina's: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven. + +-- +Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/nl/subscr_single.txt b/inc/lang/nl/subscr_single.txt new file mode 100644 index 000000000..3e74bce17 --- /dev/null +++ b/inc/lang/nl/subscr_single.txt @@ -0,0 +1,18 @@ +Halllo! + +De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Datum: @DATE@ +Gebruiker: @USER@ +Wijzigingssamenvatting: @SUMMARY@ +Vorige revisie: @OLDPAGE@ +Nieuwe revisie: @NEWPAGE@ + +Om het verzenden van deze wijzigingsberichtente te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven. + +-- +Deze email is gegenereerd door DokuWiki op @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/nl/wordblock.txt b/inc/lang/nl/wordblock.txt deleted file mode 100644 index d887d7318..000000000 --- a/inc/lang/nl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM geblokkeerd ====== - -Je wijzigingen zijn **niet** opgeslagen omdat ze een of meer geblokkeerde woorden bevatten. Als je probeerde de Wiki te spammen -- Foei stouterd! Als je denkt dat dit een fout is neem dan contact op met de beheerder van deze Wiki. - diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 2dc2c8339..ca63c0094 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -105,7 +105,7 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Stengt av'; $lang['lockexpire'] = 'Avstengningen opphører'; $lang['willexpire'] = 'Din redigeringslås for dette dokumentet kommer snart til å opphøre.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.'; -$lang['notsavedyet'] = 'Ulagrede endringer vil gå tapt.\nVil du fortsette?'; +$lang['js']['notsavedyet'] = "Ulagrede endringer vil gå tapt.\nVil du fortsette?"; $lang['rssfailed'] = 'En feil oppstod da denne kilden skulle hentes:'; $lang['nothingfound'] = 'Ingen data funnet.'; $lang['mediaselect'] = 'Valg av mediafil'; diff --git a/inc/lang/no/wordblock.txt b/inc/lang/no/wordblock.txt deleted file mode 100644 index 30c4c31ce..000000000 --- a/inc/lang/no/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Ordsperre ====== - -Dine endringer har **ikke** blitt lagret på grunn av at de inneholder ett eller flere ord som er sperret. Hvis du har forsøkt å lagre søppel, eller såkalt ''spam'' -- Fy deg! Hvis du anser denne beskjeden som feilaktig kan du kontakte administratoren til denne wikien. - diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 882806577..0fac281f8 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -7,6 +7,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -40,9 +44,6 @@ $lang['btn_back'] = 'Wstecz'; $lang['btn_backlink'] = 'Odnośniki'; $lang['btn_backtomedia'] = 'Powrót do wyboru pliku'; $lang['btn_subscribe'] = 'Subskrybuj zmiany'; -$lang['btn_unsubscribe'] = 'Zaprzestań subskrypcji zmian'; -$lang['btn_subscribens'] = 'Subskrybuj zmiany w katalogu'; -$lang['btn_unsubscribens'] = 'Zaprzestań subskrypcji zmian w katalogu'; $lang['btn_profile'] = 'Aktualizuj profil'; $lang['btn_reset'] = 'Resetuj'; $lang['btn_resendpwd'] = 'Prześlij nowe hasło'; @@ -96,7 +97,38 @@ $lang['txt_overwrt'] = 'Nadpisać istniejący plik?'; $lang['lockedby'] = 'Aktualnie zablokowane przez'; $lang['lockexpire'] = 'Blokada wygasa'; $lang['willexpire'] = 'Za minutę Twoja blokada tej strony wygaśnie.\nW celu uniknięcia konfliktów wyświetl podgląd aby odnowić blokadę.'; -$lang['notsavedyet'] = 'Nie zapisane zmiany zostaną utracone.\nCzy na pewno kontynuować?'; +$lang['js']['notsavedyet'] = 'Nie zapisane zmiany zostaną utracone. +Czy na pewno kontynuować?'; +$lang['js']['searchmedia'] = 'Szukaj plików'; +$lang['js']['keepopen'] = 'Nie zamykaj okna po wyborze'; +$lang['js']['hidedetails'] = 'Ukryj szczegóły'; +$lang['js']['mediatitle'] = 'Ustawienia odnośników'; +$lang['js']['mediadisplay'] = 'Typ odnośnika'; +$lang['js']['mediaalign'] = 'Położenie'; +$lang['js']['mediasize'] = 'Rozmiar grafiki'; +$lang['js']['mediatarget'] = 'Cel odnośnika'; +$lang['js']['mediaclose'] = 'Zamknij'; +$lang['js']['mediainsert'] = 'Wstaw'; +$lang['js']['mediadisplayimg'] = 'Pokaż grafikę'; +$lang['js']['mediadisplaylnk'] = 'Pokaż tylko odnośnik.'; +$lang['js']['mediasmall'] = 'Mały rozmiar'; +$lang['js']['mediamedium'] = 'Średni rozmiar'; +$lang['js']['medialarge'] = 'Duży rozmiar'; +$lang['js']['mediaoriginal'] = 'Wersja oryginalna'; +$lang['js']['medialnk'] = 'Odnośnik do strony ze szczegółami'; +$lang['js']['mediadirect'] = 'Bezpośredni odnośnik do oryginału'; +$lang['js']['medianolnk'] = 'Bez odnośnika'; +$lang['js']['medianolink'] = 'Nie ustawiaj odnośnika do grafiki'; +$lang['js']['medialeft'] = 'Ustaw położenie po lewej stronie.'; +$lang['js']['mediaright'] = 'Ustaw położenie po prawej stronie.'; +$lang['js']['mediacenter'] = 'Ustaw położenie po środku.'; +$lang['js']['medianoalign'] = 'Nie ustawiaj położenia.'; +$lang['js']['nosmblinks'] = 'Odnośniki do zasobów sieci Windows działają tylko w przeglądarce Internet Explorer. +Możesz skopiować odnośnik.'; +$lang['js']['linkwiz'] = 'Tworzenie odnośników'; +$lang['js']['linkto'] = 'Link do'; +$lang['js']['del_confirm'] = 'Czy na pewno usunąć?'; +$lang['js']['mu_btn'] = 'Wyślij wiele plików na raz'; $lang['rssfailed'] = 'Wystąpił błąd przy pobieraniu tych danych: '; $lang['nothingfound'] = 'Nic nie znaleziono.'; $lang['mediaselect'] = 'Wysyłanie pliku'; @@ -114,15 +146,6 @@ $lang['deletefail'] = 'Plik "%s" nie został usunięty, sprawdź upra $lang['mediainuse'] = 'Plik "%s" nie został usunięty, ponieważ jest używany.'; $lang['namespaces'] = 'Katalogi'; $lang['mediafiles'] = 'Dostępne pliki'; -$lang['js']['searchmedia'] = 'Szukaj plików'; -$lang['js']['keepopen'] = 'Nie zamykaj okna po wyborze'; -$lang['js']['hidedetails'] = 'Ukryj szczegóły'; -$lang['js']['nosmblinks'] = 'Odnośniki do zasobów sieci Windows działają tylko w przeglądarce Internet Explorer. -Możesz skopiować odnośnik.'; -$lang['js']['linkwiz'] = 'Tworzenie odnośników'; -$lang['js']['linkto'] = 'Link do'; -$lang['js']['del_confirm'] = 'Czy na pewno usunąć?'; -$lang['js']['mu_btn'] = 'Wyślij wiele plików na raz'; $lang['mediausage'] = 'Użyj następującej składni w odnośniku do tego pliku:'; $lang['mediaview'] = 'Pokaż oryginalny plik'; $lang['mediaroot'] = 'główny'; @@ -152,6 +175,7 @@ $lang['noflash'] = 'Plugin <a href="http://www.adobe.com/products/ $lang['download'] = 'Pobierz zrzut'; $lang['mail_newpage'] = 'Strona dodana:'; $lang['mail_changed'] = 'Strona zmieniona:'; +$lang['mail_subscribe_list'] = 'Zmienione strony w katalogu:'; $lang['mail_new_user'] = 'Nowy użytkownik:'; $lang['mail_upload'] = 'Umieszczono plik:'; $lang['qb_bold'] = 'Pogrubienie'; @@ -194,11 +218,22 @@ $lang['img_copyr'] = 'Prawa autorskie'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Aparat'; $lang['img_keywords'] = 'Słowa kluczowe'; -$lang['subscribe_success'] = 'Dodano %s do listy subskrypcji strony %s'; -$lang['subscribe_error'] = 'Błąd przy dodawaniu %s do listy subskrypcji strony %s'; -$lang['subscribe_noaddress'] = 'Nie podałeś adresu e-mail przy rejestracji, nie możesz zostać dodany do listy subskrypcji.'; -$lang['unsubscribe_success'] = 'Usunięto %s z listy subskrypcji strony %s'; -$lang['unsubscribe_error'] = 'Błąd przy usuwaniu %s z listy subskrypcji strony %s'; +$lang['subscr_subscribe_success'] = 'Dodano %s do listy subskrypcji %s'; +$lang['subscr_subscribe_error'] = 'Błąd podczas dodawania %s do listy subskrypcji %s'; +$lang['subscr_subscribe_noaddress'] = 'Brak adresu skojarzonego z twoim loginem, nie możesz zostać dodany(a) do listy subskrypcji'; +$lang['subscr_unsubscribe_success'] = 'Usunięto %s z listy subskrypcji %s'; +$lang['subscr_unsubscribe_error'] = 'Błąd podczas usuwania %s z listy subskrypcji %s'; +$lang['subscr_already_subscribed'] = '%s jest już subskrybowany(a) przez %s'; +$lang['subscr_not_subscribed'] = '%s nie jest subskrybowany(a) przez %s'; +$lang['subscr_m_not_subscribed'] = 'Obecnie nie subskrybujesz bieżącej strony lub katalogu.'; +$lang['subscr_m_new_header'] = 'Dodaj subskrypcję'; +$lang['subscr_m_current_header'] = 'Aktualne subskrypcje'; +$lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji'; +$lang['subscr_m_subscribe'] = 'Subskrybuj'; +$lang['subscr_m_receive'] = 'Otrzymuj'; +$lang['subscr_style_every'] = 'email przy każdej zmianie'; +$lang['subscr_style_digest'] = 'email ze streszczeniem zmian dla każdej ze stron'; +$lang['subscr_style_list'] = 'lista zmienionych stron od czasu ostatniego emaila'; $lang['authmodfailed'] = 'Błąd uwierzytelnienia. Powiadom administratora tego wiki.'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.'; $lang['i_chooselang'] = 'Wybierz język'; @@ -246,3 +281,4 @@ $lang['days'] = '%d dni temu'; $lang['hours'] = '%d godzin temu'; $lang['minutes'] = '%d minut temu'; $lang['seconds'] = '%d sekund temu'; +$lang['wordblock'] = 'Twoje ustawienia nie zostały zapisane ponieważ zawierają niedozwoloną treść (spam).'; diff --git a/inc/lang/pl/subscr_digest.txt b/inc/lang/pl/subscr_digest.txt new file mode 100644 index 000000000..2b1f63c1b --- /dev/null +++ b/inc/lang/pl/subscr_digest.txt @@ -0,0 +1,21 @@ +Witaj! + +Treść strony @PAGE@ na wiki @TITLE@ uległa +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Stara wersja: @OLDPAGE@ +Nowa wersja: @NEWPAGE@ + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/pl/subscr_form.txt b/inc/lang/pl/subscr_form.txt new file mode 100644 index 000000000..59fdbdb89 --- /dev/null +++ b/inc/lang/pl/subscr_form.txt @@ -0,0 +1,3 @@ +====== Zarządzanie Subskrypcją ====== + +Ta strona pozwala Tobie na zarządzanie Twoimi subskrypcjami dla obecnej strony i katalogu.
\ No newline at end of file diff --git a/inc/lang/pl/subscr_list.txt b/inc/lang/pl/subscr_list.txt new file mode 100644 index 000000000..9a74d757b --- /dev/null +++ b/inc/lang/pl/subscr_list.txt @@ -0,0 +1,18 @@ +Witaj! + +Strony w katalogu @PAGE@ na wiki @TITLE@ uległy +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/pl/subscr_single.txt b/inc/lang/pl/subscr_single.txt new file mode 100644 index 000000000..3f4bc7314 --- /dev/null +++ b/inc/lang/pl/subscr_single.txt @@ -0,0 +1,24 @@ +Witaj! + +Treść strony @PAGE@ na wiki @TITLE@ uległa +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data: @DATE@ +Użytkownik: @USER@ +Podsumowanie zmian: @SUMMARY@ +Stara wersja: @OLDPAGE@ +Nowa wersja: @NEWPAGE@ + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/pl/wordblock.txt b/inc/lang/pl/wordblock.txt deleted file mode 100644 index 09edb25dd..000000000 --- a/inc/lang/pl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Blokowanie niedozwolonych treści i spamu ====== - -Twoje zmiany **nie** zostały zapisane, ponieważ zawierają niedozwolone słowa. Jeśli próbowałeś(aś) umieścić niedozwolone treści to wstydź się! - diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index ed7224c14..135d20d97 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -16,6 +16,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -49,9 +50,6 @@ $lang['btn_back'] = 'Voltar'; $lang['btn_backlink'] = 'Links reversos'; $lang['btn_backtomedia'] = 'Voltar à seleção do arquivo de mídia'; $lang['btn_subscribe'] = 'Monitorar alterações na página'; -$lang['btn_unsubscribe'] = 'Cancelar monitoramento da página'; -$lang['btn_subscribens'] = 'Monitorar alterações no espaço de nomes'; -$lang['btn_unsubscribens'] = 'Cancelar monitoramento do espaço de nomes'; $lang['btn_profile'] = 'Atualizar o perfil'; $lang['btn_reset'] = 'Limpar'; $lang['btn_resendpwd'] = 'Enviar uma nova senha'; @@ -97,13 +95,46 @@ $lang['resendpwdconfirm'] = 'Um link de confirmação foi enviado por e-mai $lang['resendpwdsuccess'] = 'Sua nova senha foi enviada por e-mail.'; $lang['license'] = 'Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:'; $lang['licenseok'] = 'Observe: editando esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:'; +$lang['searchmedia'] = 'Buscar arquivo:'; +$lang['searchmedia_in'] = 'Buscar em %s'; $lang['txt_upload'] = 'Selecione o arquivo a ser enviado'; $lang['txt_filename'] = 'Enviar como (opcional)'; $lang['txt_overwrt'] = 'Substituir o arquivo existente'; $lang['lockedby'] = 'Atualmente bloqueada por'; $lang['lockexpire'] = 'O bloqueio expira em'; $lang['willexpire'] = 'O seu bloqueio de edição deste página irá expirar em um minuto.\nPara evitar conflitos de edição, clique no botão de visualização para reiniciar o temporizador de bloqueio.'; -$lang['notsavedyet'] = 'As alterações não salvas serão perdidas.\nDeseja realmente continuar?'; +$lang['js']['notsavedyet'] = 'As alterações não salvas serão perdidas. +Deseja realmente continuar?'; +$lang['js']['searchmedia'] = 'Buscar por arquivos'; +$lang['js']['keepopen'] = 'Manter a janela aberta na seleção'; +$lang['js']['hidedetails'] = 'Esconder detalhes'; +$lang['js']['mediatitle'] = 'Configurações do Link'; +$lang['js']['mediadisplay'] = 'Tipo de Link'; +$lang['js']['mediaalign'] = 'Alinhamento'; +$lang['js']['mediasize'] = 'Tamanho da Imagem'; +$lang['js']['mediatarget'] = 'Alvo do Link'; +$lang['js']['mediaclose'] = 'Fechar'; +$lang['js']['mediainsert'] = 'Inserir'; +$lang['js']['mediadisplayimg'] = 'Mostrar Imagem.'; +$lang['js']['mediadisplaylnk'] = 'Mostrar apenas Link.'; +$lang['js']['mediasmall'] = 'Versão Pequena'; +$lang['js']['mediamedium'] = 'Versão Média'; +$lang['js']['medialarge'] = 'Versão Grande'; +$lang['js']['mediaoriginal'] = 'Versão Original'; +$lang['js']['medialnk'] = 'Link para pagina de detalhes'; +$lang['js']['mediadirect'] = 'Link direto para original'; +$lang['js']['medianolnk'] = 'Sem Link'; +$lang['js']['medianolink'] = 'Sem link na imagem'; +$lang['js']['medialeft'] = 'Alinhamento de imagem a esquerda'; +$lang['js']['mediaright'] = 'Alinhamento de imagem a direita'; +$lang['js']['mediacenter'] = 'Alinhamento de imagem ao centro'; +$lang['js']['medianoalign'] = 'Sem alinhamento'; +$lang['js']['nosmblinks'] = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer. +Entretanto, você ainda pode copiar e colar o atalho.'; +$lang['js']['linkwiz'] = 'Link Wizard'; +$lang['js']['linkto'] = 'Link para:'; +$lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?'; +$lang['js']['mu_btn'] = 'Enviar vários arquivos de uma vez'; $lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: '; $lang['nothingfound'] = 'Não foi encontrado nada.'; $lang['mediaselect'] = 'Arquivos de mídia'; @@ -121,13 +152,6 @@ $lang['deletefail'] = 'Não foi possível excluir "%s" - verifique as $lang['mediainuse'] = 'O arquivo "%s" não foi excluído - ele ainda está em uso.'; $lang['namespaces'] = 'Espaços de nome'; $lang['mediafiles'] = 'Arquivos disponíveis em'; -$lang['js']['keepopen'] = 'Manter a janela aberta na seleção'; -$lang['js']['hidedetails'] = 'Esconder detalhes'; -$lang['js']['nosmblinks'] = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer. -Entretanto, você ainda pode copiar e colar o atalho.'; -$lang['js']['linkto'] = 'Link para:'; -$lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?'; -$lang['js']['mu_btn'] = 'Enviar vários arquivos de uma vez'; $lang['mediausage'] = 'Use a seguinte sintaxe para referenciar esse arquivo:'; $lang['mediaview'] = 'Ver o arquivo original'; $lang['mediaroot'] = 'raiz'; @@ -154,8 +178,10 @@ $lang['restored'] = 'revisão anterior restaurada'; $lang['external_edit'] = 'edição externa'; $lang['summary'] = 'Resumo da edição'; $lang['noflash'] = 'O <a href="http://www.adobe.com/products/flashplayer/">plug-in Adobe Flash</a> é necessário para exibir este conteúdo.'; +$lang['download'] = 'Download Snippet'; $lang['mail_newpage'] = 'página adicionada:'; $lang['mail_changed'] = 'página modificada:'; +$lang['mail_subscribe_list'] = 'páginas alteradas no namespace:'; $lang['mail_new_user'] = 'novo usuário:'; $lang['mail_upload'] = 'arquivo enviado:'; $lang['qb_bold'] = 'Texto em negrito'; @@ -169,6 +195,10 @@ $lang['qb_h3'] = 'Cabeçalho de nível 3'; $lang['qb_h4'] = 'Cabeçalho de nível 4'; $lang['qb_h5'] = 'Cabeçalho de nível 5'; $lang['qb_h'] = 'Cabeçalho'; +$lang['qb_hs'] = 'Escolha o cabeçalho'; +$lang['qb_hplus'] = 'Cabeçalho de nível mais alto'; +$lang['qb_hminus'] = 'Cabeçalho de nível mais baixo'; +$lang['qb_hequal'] = 'Cabeçalho de mesmo nível'; $lang['qb_link'] = 'Link interno'; $lang['qb_extlink'] = 'Link externo'; $lang['qb_hr'] = 'Linha horizontal'; @@ -178,6 +208,7 @@ $lang['qb_media'] = 'Adicionar imagens e/ou outros arquivos'; $lang['qb_sig'] = 'Inserir assinatura'; $lang['qb_smileys'] = 'Carinhas'; $lang['qb_chars'] = 'Caracteres especiais'; +$lang['upperns'] = 'Pular para namespace acima'; $lang['admin_register'] = 'Adicionar novo usuário'; $lang['metaedit'] = 'Editar metadados'; $lang['metasaveerr'] = 'Não foi possível escrever os metadados'; @@ -193,11 +224,22 @@ $lang['img_copyr'] = 'Direitos autorais'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Câmera'; $lang['img_keywords'] = 'Palavras-chave'; -$lang['subscribe_success'] = '%s foi adicionado à lista de monitoramento de %s'; -$lang['subscribe_error'] = 'Ocorreu um erro ao tentar adicionar %s à lista de monitoramento de %s'; -$lang['subscribe_noaddress'] = 'Não existe nenhum endereço de e-mail associado ao seu usuário, você não pode ser adicionado à lista de monitoramento.'; -$lang['unsubscribe_success'] = '%s foi removido da lista de monitoramento de %s'; -$lang['unsubscribe_error'] = 'Ocorreu um erro ao tentar remover %s da lista de monitoramento de %s'; +$lang['subscr_subscribe_success'] = 'Adicionado %s para a lista de inscrição para %s'; +$lang['subscr_subscribe_error'] = 'Erro adicionando %s para a lista de inscrição para %s'; +$lang['subscr_subscribe_noaddress'] = 'Não há endereço associado com seu login, você não pode ser adicionado à lista de inscrição'; +$lang['subscr_unsubscribe_success'] = 'Removido %s da lista de inscrição para %s'; +$lang['subscr_unsubscribe_error'] = 'Erro removendo %s da lista de inscrição para %s'; +$lang['subscr_already_subscribed'] = '%s já está inscrito para s%'; +$lang['subscr_not_subscribed'] = 's% não está inscrito para s%'; +$lang['subscr_m_not_subscribed'] = 'Voce não está inscrito na pagina ou namespace corrent'; +$lang['subscr_m_new_header'] = 'Adicionar inscrição'; +$lang['subscr_m_current_header'] = 'Inscrições correntes'; +$lang['subscr_m_unsubscribe'] = 'cancelar inscrição'; +$lang['subscr_m_subscribe'] = 'Inscrição'; +$lang['subscr_m_receive'] = 'Receber'; +$lang['subscr_style_every'] = 'email em cada modificação'; +$lang['subscr_style_digest'] = 'digerir emails de mudanças para cada página (A cada %.2f dias)'; +$lang['subscr_style_list'] = 'Lista de mudanças desde o último email (A cada %.2f dias)'; $lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.'; $lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.'; $lang['i_chooselang'] = 'Selecione o seu idioma'; @@ -222,6 +264,7 @@ $lang['i_pol0'] = 'Wiki aberto (leitura, escrita e envio de arqui $lang['i_pol1'] = 'Wiki público (leitura por todos, escrita e envio de arquivos por usuários registrados)'; $lang['i_pol2'] = 'Wiki fechado (leitura, escrita e envio de arquivos somente por usuários registrados)'; $lang['i_retry'] = 'Tentar novamente'; +$lang['i_license'] = 'Por favor escolha a licença que voce deseja utilizar para seu conteúdo:'; $lang['mu_intro'] = 'Aqui você pode enviar vários arquivos de uma só vez. Clique no botão de navegação e adicione-os à fila. Pressione Enviar quando estiver pronto.'; $lang['mu_gridname'] = 'Nome do arquivo'; $lang['mu_gridsize'] = 'Tamanho'; @@ -245,3 +288,4 @@ $lang['days'] = '%d dias atrás'; $lang['hours'] = '%d horas atrás'; $lang['minutes'] = '%d minutos atrás'; $lang['seconds'] = '%d segundos atrás'; +$lang['wordblock'] = 'Suas mudanças não foram salvas pois contem texto bloqueados (spam)'; diff --git a/inc/lang/pt-br/subscr_digest.txt b/inc/lang/pt-br/subscr_digest.txt new file mode 100644 index 000000000..6632b1f57 --- /dev/null +++ b/inc/lang/pt-br/subscr_digest.txt @@ -0,0 +1,17 @@ +Olá! + +A página @PAGE@ na wiki @TITLE@ mudou. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Revisão antiga:@OLDPAGE@ +Nova Revisão:@NEWPAGE@ + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ +e então visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ diff --git a/inc/lang/pt-br/subscr_form.txt b/inc/lang/pt-br/subscr_form.txt new file mode 100644 index 000000000..1611ea95d --- /dev/null +++ b/inc/lang/pt-br/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gerenciamento de inscrição ====== + +Esta página permite voce gerencias as inscrições para a página e namespace corrente. diff --git a/inc/lang/pt-br/subscr_list.txt b/inc/lang/pt-br/subscr_list.txt new file mode 100644 index 000000000..8f4a66d1a --- /dev/null +++ b/inc/lang/pt-br/subscr_list.txt @@ -0,0 +1,17 @@ +Olá! + +Páginas no namespace @PAGE@ na wiki @TITLE@ mudaram. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ +e então visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ + + +preview.txt ====== Preview ====== diff --git a/inc/lang/pt-br/subscr_single.txt b/inc/lang/pt-br/subscr_single.txt new file mode 100644 index 000000000..1a103558c --- /dev/null +++ b/inc/lang/pt-br/subscr_single.txt @@ -0,0 +1,20 @@ +Olá! + +A página @PAGE@ na wiki @TITLE@ mudou. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usuário : @USER@ +Sumário : @SUMMARY@ +Revisão antiga:@OLDPAGE@ +Nova Revisão:@NEWPAGE@ + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ visite @NEWPAGE@ +e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ diff --git a/inc/lang/pt-br/wordblock.txt b/inc/lang/pt-br/wordblock.txt deleted file mode 100644 index c2c9cbdb0..000000000 --- a/inc/lang/pt-br/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Bloqueio de SPAM ====== - -Suas modificações **não** foram salvas porque elas contém uma ou mais palavras bloqueadas. Se você tentou enviar //spam// para o //wiki//, isso é feio, muito feio! Agora, se você acha que esse bloqueio foi indevido, por favor entre em contato com o administrador desse wiki. - diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index ef4c70785..d0861f3ef 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Escrever por cima do ficheiro já existente'; $lang['lockedby'] = 'Bloqueado por'; $lang['lockexpire'] = 'Expira em'; $lang['willexpire'] = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos de edição, clique no botão <Prever> para re-iniciar o temporizador de bloqueio.'; -$lang['notsavedyet'] = 'Existem alterações não gravadas, que serão perdidas se continuar.\nDeseja realmente continuar?'; +$lang['js']['notsavedyet'] = "Existem alterações não gravadas, que serão perdidas se continuar.\nDeseja realmente continuar?"; $lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: '; $lang['nothingfound'] = 'Nada foi encontrado.'; $lang['mediaselect'] = 'Selecção de ficheiros'; diff --git a/inc/lang/pt/wordblock.txt b/inc/lang/pt/wordblock.txt deleted file mode 100644 index a88063c9b..000000000 --- a/inc/lang/pt/wordblock.txt +++ /dev/null @@ -1,7 +0,0 @@ -====== Bloquear SPAM ====== - -As suas alterações foram **bloqueadas**, porque contêm uma ou mais palavras consideradas abusivas (SPAM). - -Se pensa que isto não está correcto, por favor contacte o administrador deste site Wiki. - ----- diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 87ee6ae0f..d21249d91 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -43,9 +43,6 @@ $lang['btn_back'] = 'Înapoi'; $lang['btn_backlink'] = 'Legătură anterioară'; $lang['btn_backtomedia'] = 'Înapoi la Selecţia Mediafile'; $lang['btn_subscribe'] = 'Subscrie Modificarea Paginii'; -$lang['btn_unsubscribe'] = 'Anulează Subscrierea Modificării Paginii'; -$lang['btn_subscribens'] = 'Subscrie Modificarea Spaţiului de Nume'; -$lang['btn_unsubscribens'] = 'Anulează Subscrierea Modificării Spaţiului de Nume'; $lang['btn_profile'] = 'Actualizează Profil'; $lang['btn_reset'] = 'Resetează'; $lang['btn_resendpwd'] = 'Trimite parola nouă'; @@ -99,7 +96,38 @@ $lang['txt_overwrt'] = 'Suprascrie fişierul existent'; $lang['lockedby'] = 'Momentan blocat de'; $lang['lockexpire'] = 'Blocarea expiră la'; $lang['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele foloseşte butonul de previzualizare pentru resetarea blocării.'; -$lang['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde.\nDoreşti să continui?'; +$lang['js']['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde. +Doreşti să continui?'; +$lang['js']['searchmedia'] = 'Caută fişiere'; +$lang['js']['keepopen'] = 'Menţine fereastra deschisă la selecţie'; +$lang['js']['hidedetails'] = 'Ascunde Detalii'; +$lang['js']['mediatitle'] = 'Setări link'; +$lang['js']['mediadisplay'] = 'Tip link'; +$lang['js']['mediaalign'] = 'Aliniere'; +$lang['js']['mediasize'] = 'Mărime imagine'; +$lang['js']['mediatarget'] = 'Ţintă link'; +$lang['js']['mediaclose'] = 'Închide'; +$lang['js']['mediainsert'] = 'Inserează'; +$lang['js']['mediadisplayimg'] = 'Afişează imaginea.'; +$lang['js']['mediadisplaylnk'] = 'Afişează doar linkul.'; +$lang['js']['mediasmall'] = 'Versiune mică'; +$lang['js']['mediamedium'] = 'Versiune medie'; +$lang['js']['medialarge'] = 'Versiune mare'; +$lang['js']['mediaoriginal'] = 'Versiune originală'; +$lang['js']['medialnk'] = 'Link către pagina detaliilor'; +$lang['js']['mediadirect'] = 'Link direct către original'; +$lang['js']['medianolnk'] = 'Fără link'; +$lang['js']['medianolink'] = 'Nu crea link către imagine'; +$lang['js']['medialeft'] = 'Aliniază imaginea la stânga.'; +$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta.'; +$lang['js']['mediacenter'] = 'Aliniază imaginea la centru.'; +$lang['js']['medianoalign'] = 'Nu utiliza aliniere.'; +$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcţioneaza numai in Microsoft Internet Explorer. +Puteţi însă copia şi insera legătura.'; +$lang['js']['linkwiz'] = 'Asistent legătură'; +$lang['js']['linkto'] = 'Legătură la:'; +$lang['js']['del_confirm'] = 'Doriţi într-adevăr ştergerea elementelor selectate?'; +$lang['js']['mu_btn'] = 'Încarcă mai multe fişiere simultan'; $lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui cîmp: '; $lang['nothingfound'] = 'Nu am găsit nimic.'; $lang['mediaselect'] = 'Selectare fişiere media'; @@ -117,15 +145,7 @@ $lang['deletefail'] = '"%s" nu a putut fi şters - verificaţi dreptu $lang['mediainuse'] = 'Fişierul "%s" nu a fost şters - este încă în uz.'; $lang['namespaces'] = 'Spaţii de nume'; $lang['mediafiles'] = 'Fişiere disponibile în'; -$lang['js']['searchmedia'] = 'Caută fişiere'; -$lang['js']['keepopen'] = 'Menţine fereastra deschisă la selecţie'; -$lang['js']['hidedetails'] = 'Ascunde Detalii'; -$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcţioneaza numai in Microsoft Internet Explorer. -Puteţi însă copia şi insera legătura.'; -$lang['js']['linkwiz'] = 'Asistent legătură'; -$lang['js']['linkto'] = 'Legătură la:'; -$lang['js']['del_confirm'] = 'Doriţi într-adevăr ştergerea elementelor selectate?'; -$lang['js']['mu_btn'] = 'Încarcă mai multe fişiere simultan'; +$lang['accessdenied'] = 'Nu vă este permis să vizualizaţi această pagină.'; $lang['mediausage'] = 'Folosiţi următoarea sintaxă pentru a face referinţă la acest fişier:'; $lang['mediaview'] = 'Vizualizează fişierul original'; $lang['mediaroot'] = 'root'; @@ -141,6 +161,7 @@ $lang['current'] = 'curent'; $lang['yours'] = 'Versiunea ta'; $lang['diff'] = 'arată diferenţele faţă de versiunea curentă'; $lang['diff2'] = 'Arată diferenţele dintre versiunile selectate'; +$lang['difflink'] = 'Link către această vizualizare comparativă'; $lang['line'] = 'Linia'; $lang['breadcrumb'] = 'Traseu'; $lang['youarehere'] = 'Sunteţi aici'; @@ -155,6 +176,7 @@ $lang['noflash'] = 'Plugin-ul <a href="http://www.adobe.com/produc $lang['download'] = 'Bloc descărcări'; $lang['mail_newpage'] = 'pagina adăugată:'; $lang['mail_changed'] = 'page schimbată:'; +$lang['mail_subscribe_list'] = 'pagini modificate în spaţiul de nume:'; $lang['mail_new_user'] = 'utilizator nou'; $lang['mail_upload'] = 'fişier încărcat:'; $lang['qb_bold'] = 'Text Îngroşat'; @@ -197,11 +219,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Camera'; $lang['img_keywords'] = 'Cuvinte cheie'; -$lang['subscribe_success'] = 'A fost adăugat %s la lista de subscriere pentru %s'; -$lang['subscribe_error'] = 'Eroare la adăugarea %s la lista de subscriere pentru %s'; -$lang['subscribe_noaddress'] = 'Nu este nici o adresă de mail asociată cu utilizatorul dvs. Nu puteţi fi adăugat la lista de subscriere'; -$lang['unsubscribe_success'] = '%s a fost eliminat din lista de subscriere pentru %s'; -$lang['unsubscribe_error'] = 'Eroare la eliminarea %s din lista de subscriere pentru %s'; +$lang['subscr_subscribe_success'] = 'Adăugat %s la lista de abonare pentru %s'; +$lang['subscr_subscribe_error'] = 'Eroare la adăugarea %s la lista de abonare pentru %s'; +$lang['subscr_subscribe_noaddress'] = 'Nu există adresa asociată cu logarea dvs., nu puteţi fi adăugat la lista de abonare'; +$lang['subscr_unsubscribe_success'] = 'Şters %s din lista de abonare pentru %s'; +$lang['subscr_unsubscribe_error'] = 'Eroare la ştergerea %s din lista de abonare pentru %s'; +$lang['subscr_already_subscribed'] = '%s este deja abonat la %s'; +$lang['subscr_not_subscribed'] = '%s nu este abonat la %s'; +$lang['subscr_m_not_subscribed'] = 'Momentan nu sunteţi abonat la pagina curentă sau la numele de spaţiu.'; +$lang['subscr_m_new_header'] = 'Adaugă abonare'; +$lang['subscr_m_current_header'] = 'Abonări curente'; +$lang['subscr_m_unsubscribe'] = 'Dezabonaţi-vă'; +$lang['subscr_m_subscribe'] = 'Abonaţi-vă'; +$lang['subscr_m_receive'] = 'Primiţi'; +$lang['subscr_style_every'] = 'email la ficare schimbare'; +$lang['subscr_style_digest'] = 'digerează email la schimbări pentru fiecare pagină (la fiecare %.2f zile)'; +$lang['subscr_style_list'] = 'lista paginilor schimbate de la ultimul email (la fiecare %.2f zile)'; $lang['authmodfailed'] = 'Configuraţia autentificării utilizatorului este eronată. Anunţaţi Wiki Admin-ul.'; $lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Anunţaţi Wiki Admin-ul.'; $lang['i_chooselang'] = 'Alegeţi limba'; @@ -226,6 +259,7 @@ $lang['i_pol0'] = 'Wiki Deschisă (citeşte, scrie şi încarcă $lang['i_pol1'] = 'Wiki Deschisă (citeste oricine, scrie şi încarcă doar utilizatorul înregistrat)'; $lang['i_pol2'] = 'Wiki Închisă (citeşte, scrie şi încarcă doar utilizatorul înregistrat)'; $lang['i_retry'] = 'Încearcă din nou'; +$lang['i_license'] = 'Vă rugăm alegeţi licenţa sub care doriţi să vă licenţiaţi materialul:'; $lang['mu_intro'] = 'Aici poţi încărca mai multe fişiere simultan. Apasă butonul Răsfoieşte pentru a le adăuga. Apasă Încarcă când ai terminat.'; $lang['mu_gridname'] = 'Numele fişierului'; $lang['mu_gridsize'] = 'Mărime'; @@ -249,3 +283,4 @@ $lang['days'] = 'acum %d zile'; $lang['hours'] = 'acum %d ore'; $lang['minutes'] = 'acum %d minute'; $lang['seconds'] = 'acum %d secunde'; +$lang['wordblock'] = 'Modificarea dvs. nu au fost salvate deoarece conţine text blocat (spam).'; diff --git a/inc/lang/ro/subscr_digest.txt b/inc/lang/ro/subscr_digest.txt new file mode 100644 index 000000000..b2f7c4ecb --- /dev/null +++ b/inc/lang/ro/subscr_digest.txt @@ -0,0 +1,20 @@ +Buna ziua! + +Pagina @PAGE@ în @TITLE@ wiki s-a modificat. +Acestea sunt modificările: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vechea revizie: @OLDPAGE@ +Noua revizie: @NEWPAGE@ + +Pentru a anula notificarea paginii, logaţi-vă pe wiki la +@DOKUWIKIURL@ apoi navigaţi la +@SUBSCRIBE@ +şi dezabonaţi-vă de la pagină şi/sau modificările numelui de spaţiu. + +-- +Acest mail a fost generat de DokuWiki la +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ro/subscr_form.txt b/inc/lang/ro/subscr_form.txt new file mode 100644 index 000000000..8ce7f09b8 --- /dev/null +++ b/inc/lang/ro/subscr_form.txt @@ -0,0 +1,3 @@ +====== Administrarea abonărilor ====== + +Această pagină vă permite să vă administraţi abonările pentru pagina curentă şi numele de spaţiu.
\ No newline at end of file diff --git a/inc/lang/ro/subscr_list.txt b/inc/lang/ro/subscr_list.txt new file mode 100644 index 000000000..84a5e1a3e --- /dev/null +++ b/inc/lang/ro/subscr_list.txt @@ -0,0 +1,17 @@ +Bună ziua! + +Paginile din numele de spaţiu @PAGE@ al @TITLE@ wiki s-au modificat. +Acestea sunt modificările: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pentru a anula notificarea paginii, logaţi-vă pe wiki la +@DOKUWIKIURL@ apoi navigaţi la +@SUBSCRIBE@ +şi dezabonaţi-vă de la pagină şi/sau modificările numelui de spaţiu. + +-- +Acest mail a fost generat de DokuWiki la +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ro/subscr_single.txt b/inc/lang/ro/subscr_single.txt new file mode 100644 index 000000000..aa6497b75 --- /dev/null +++ b/inc/lang/ro/subscr_single.txt @@ -0,0 +1,23 @@ +Bună ziua! + +Pagina @PAGE@ în @TITLE@ wiki s-a modificat. +Acestea sunt modificările: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data: @DATE@ +Utilizator: @USER@ +Sumarul editării: @SUMMARY@ +Vechea revizie: @OLDPAGE@ +Noua revizie: @NEWPAGE@ + +Pentru a anula notificarea paginii, logaţi-vă pe wiki la +@DOKUWIKIURL@ apoi navigaţi la +@SUBSCRIBE@ +şi dezabonaţi-vă de la pagină şi/sau modificările numelui de spaţiu. + +-- +Acest mail a fost generat de DokuWiki la +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ro/wordblock.txt b/inc/lang/ro/wordblock.txt deleted file mode 100644 index 1fa7bd6cd..000000000 --- a/inc/lang/ro/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocat ====== - -Modificările **nu** au fost salvate deoarece conţin unul sau mai multe cuvinte nepermise. Daca ai încercat să spamezi Wiki-ul -- Eşti un om rău! Dacă crezi că asta e o eroare, contactează administratorul acestui Wiki. - diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt index eee59efe6..2cc33cff7 100644 --- a/inc/lang/ru/denied.txt +++ b/inc/lang/ru/denied.txt @@ -1,3 +1,3 @@ -====== Доступ запрещен ====== +====== Доступ запрещён ====== -Извините, у вас не хватает прав для этого действия. Может быть, Вы забыли войти в вики под своим именем? +Извините, у вас не хватает прав для этого действия. Может быть, вы забыли войти в вики под своим логином? diff --git a/inc/lang/ru/edit.txt b/inc/lang/ru/edit.txt index 2237f082e..6398e8e83 100644 --- a/inc/lang/ru/edit.txt +++ b/inc/lang/ru/edit.txt @@ -1,2 +1,2 @@ -Отредактируйте страницу и нажмите ''Сохранить''. Прочтите [[wiki:syntax]] для ознакомления с синтаксисом вики. Пожалуйста, редактируйте только в том случае, если планируете **улучшить** содержимое. Если Вы просто хотите потестировать что-либо, воспользуйтесь специальной страницей: [[playground:playground]]. +Отредактируйте страницу и нажмите ''Сохранить''. Прочтите [[wiki:syntax]] для ознакомления с синтаксисом вики. Пожалуйста, редактируйте только в том случае, если планируете **улучшить** содержимое. Если вы просто хотите потестировать что-либо, воспользуйтесь специальной страницей: [[playground:playground]]. diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt index 376d58947..fc42f87ff 100644 --- a/inc/lang/ru/index.txt +++ b/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед Вами список доступных страниц, упорядоченный по пространствам имён ([[doku>namespaces|namespaces]]). +Перед вами список доступных страниц, упорядоченный по ([[doku>namespaces|пространствам имён]]). diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index f6cec8170..ebd2a10a1 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -15,6 +15,8 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['encoding'] = ' utf-8'; $lang['direction'] = 'ltr'; @@ -35,7 +37,7 @@ $lang['btn_newer'] = '<< более новые'; $lang['btn_older'] = 'более старые >>'; $lang['btn_revs'] = 'История страницы'; $lang['btn_recent'] = 'Недавние изменения'; -$lang['btn_upload'] = 'Закачать'; +$lang['btn_upload'] = 'Загрузить'; $lang['btn_cancel'] = 'Отменить'; $lang['btn_index'] = 'Все страницы'; $lang['btn_secedit'] = 'Править'; @@ -48,12 +50,9 @@ $lang['btn_back'] = 'Назад'; $lang['btn_backlink'] = 'Ссылки сюда'; $lang['btn_backtomedia'] = 'Вернуться к выбору медиа-файла'; $lang['btn_subscribe'] = 'Подписаться (все правки)'; -$lang['btn_unsubscribe'] = 'Отписаться (все правки)'; -$lang['btn_subscribens'] = 'Подписаться (правки этого раздела)'; -$lang['btn_unsubscribens'] = 'Отписаться (правки этого раздела)'; $lang['btn_profile'] = 'Профиль'; $lang['btn_reset'] = 'Сброс'; -$lang['btn_resendpwd'] = 'Послать новый пароль'; +$lang['btn_resendpwd'] = 'Выслать новый пароль'; $lang['btn_draft'] = 'Править черновик'; $lang['btn_recover'] = 'Восстановить черновик'; $lang['btn_draftdel'] = 'Удалить черновик'; @@ -66,75 +65,98 @@ $lang['oldpass'] = 'Введите текущий пароль'; $lang['passchk'] = 'повторите'; $lang['remember'] = 'Запомнить меня'; $lang['fullname'] = 'Полное имя'; -$lang['email'] = 'E-Mail'; +$lang['email'] = 'Эл. адрес'; $lang['register'] = 'Зарегистрироваться'; $lang['profile'] = 'Профиль пользователя'; $lang['badlogin'] = 'Извините, неверное имя пользователя или пароль.'; $lang['minoredit'] = 'Небольшие изменения'; $lang['draftdate'] = 'Черновик сохранён'; -$lang['nosecedit'] = 'За это время страница была изменена, и информация о секции устарела. Загружена полная версия страницы.'; +$lang['nosecedit'] = 'За это время страница была изменена и информация о секции устарела. Загружена полная версия страницы.'; $lang['regmissing'] = 'Извините, вам следует заполнить все поля.'; $lang['reguexists'] = 'Извините, пользователь с таким логином уже существует.'; -$lang['regsuccess'] = 'Пользователь создан, пароль выслан на e-mail.'; +$lang['regsuccess'] = 'Пользователь создан, пароль выслан на адрес электронной почты.'; $lang['regsuccess2'] = 'Пользователь создан.'; -$lang['regmailfail'] = 'Похоже, проблема с посылкой пароля по почте. Пожалуйста, сообщите администратору!'; -$lang['regbadmail'] = 'Данный Вами адрес e-mail выглядит неправильным. Если вы считаете это ошибкой, сообщите админу.'; +$lang['regmailfail'] = 'Похоже, проблема с отправкой пароля по почте. Пожалуйста, сообщите администратору.'; +$lang['regbadmail'] = 'Данный вами адрес электронной почты выглядит неправильным. Если вы считаете это ошибкой, сообщите админу.'; $lang['regbadpass'] = 'Два введённых пароля не идентичны. Пожалуйста, попробуйте ещё раз.'; $lang['regpwmail'] = 'Ваш пароль для системы DokuWiki'; -$lang['reghere'] = 'У вас ещё нет аккаунта? Извольте получить'; +$lang['reghere'] = 'У вас ещё нет аккаунта? Зарегистрируйтесь'; $lang['profna'] = 'Данная вики не поддерживает изменение профиля'; $lang['profnochange'] = 'Изменений не было внесено, профиль не обновлён.'; -$lang['profnoempty'] = 'Логин и адрес e-mail не могут быть пустыми.'; +$lang['profnoempty'] = 'Логин и адрес электронной почты не могут быть пустыми.'; $lang['profchanged'] = 'Профиль пользователя успешно обновлён.'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; $lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.'; $lang['resendpwd'] = 'Выслать пароль для'; $lang['resendpwdmissing'] = 'Вы должны заполнить все поля формы.'; $lang['resendpwdnouser'] = 'Пользователь с таким логином не обнаружен в нашей базе данных.'; -$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. Убедитесь, что Вы полностью скопировали ссылку. '; -$lang['resendpwdconfirm'] = 'Ссылка для подтверждения пароля была выслана по e-mail. '; -$lang['resendpwdsuccess'] = 'Ваш новый пароль был выслан по e-mail.'; +$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. Убедитесь, что вы полностью скопировали ссылку. '; +$lang['resendpwdconfirm'] = 'Ссылка для подтверждения пароля была выслана по электронной почте. '; +$lang['resendpwdsuccess'] = 'Ваш новый пароль был выслан по электронной почте.'; $lang['license'] = 'За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:'; -$lang['licenseok'] = 'Примечание: редактируя эту страницу, Вы соглашаетесь на использование вашего вклада на условиях следующей лицензии:'; +$lang['licenseok'] = 'Примечание: редактируя эту страницу, вы соглашаетесь на использование вашего вклада на условиях следующей лицензии:'; $lang['searchmedia'] = 'Поиск по имени файла:'; $lang['searchmedia_in'] = 'Поиск в %s'; -$lang['txt_upload'] = 'Выберите файл для закачки'; +$lang['txt_upload'] = 'Выберите файл для загрузки'; $lang['txt_filename'] = 'Введите имя файла в вики (необязательно)'; $lang['txt_overwrt'] = 'Перезаписать существующий файл'; $lang['lockedby'] = 'В данный момент заблокирован'; $lang['lockexpire'] = 'Блокировка истекает в'; $lang['willexpire'] = 'Ваша блокировка редактирования этой страницы истекает в течение минуты.\nЧтобы избежать конфликтов и сбросить таймер блокировки, нажмите кнопку просмотра.'; -$lang['notsavedyet'] = 'Несохранённые изменения будут потеряны.\nВы действительно хотите продолжить?'; +$lang['js']['notsavedyet'] = 'Несохранённые изменения будут потеряны. +Вы действительно хотите продолжить?'; +$lang['js']['searchmedia'] = 'Поиск файлов'; +$lang['js']['keepopen'] = 'Не закрывать окно после выбора'; +$lang['js']['hidedetails'] = 'Скрыть детали'; +$lang['js']['mediatitle'] = 'Настройки ссылок'; +$lang['js']['mediadisplay'] = 'Тип ссылки'; +$lang['js']['mediaalign'] = 'Выравнивание'; +$lang['js']['mediasize'] = 'Размер изображения'; +$lang['js']['mediatarget'] = 'target ссылки'; +$lang['js']['mediaclose'] = 'Закрыть'; +$lang['js']['mediainsert'] = 'Вставить'; +$lang['js']['mediadisplayimg'] = 'Показывать изображение.'; +$lang['js']['mediadisplaylnk'] = 'Показывать только ссылку.'; +$lang['js']['mediasmall'] = 'Малая версия'; +$lang['js']['mediamedium'] = 'Средняя версия'; +$lang['js']['medialarge'] = 'Крупная версия'; +$lang['js']['mediaoriginal'] = 'Исходная версия'; +$lang['js']['medialnk'] = 'Ссылка на подробности'; +$lang['js']['mediadirect'] = 'Прямая ссылка на оригинал'; +$lang['js']['medianolnk'] = 'Без ссылки'; +$lang['js']['medianolink'] = 'Не давать ссылку на изображение'; +$lang['js']['medialeft'] = 'Выровнять изображение по левому краю.'; +$lang['js']['mediaright'] = 'Выровнять изображение по правому краю.'; +$lang['js']['mediacenter'] = 'Выровнять изображение по центру.'; +$lang['js']['medianoalign'] = 'Не выравнивать.'; +$lang['js']['nosmblinks'] = 'Ссылка на сетевые каталоги Windows работает только из Интернет Эксплорера +Но вы можете скопировать ссылку.'; +$lang['js']['linkwiz'] = 'Мастер ссылок'; +$lang['js']['linkto'] = 'Ссылка на:'; +$lang['js']['del_confirm'] = 'Вы на самом деле желаете удалить выбранное?'; +$lang['js']['mu_btn'] = 'Загрузить несколько файлов одновременно'; $lang['rssfailed'] = 'Произошла ошибка при получении следующей новостной ленты: '; $lang['nothingfound'] = 'Ничего не найдено.'; $lang['mediaselect'] = 'Выбор медиа-файла'; -$lang['fileupload'] = 'Закачка медиа-файла'; -$lang['uploadsucc'] = 'Закачка произведена успешно'; -$lang['uploadfail'] = 'Закачка не удалась. Возможно, проблемы с правами доступа?'; -$lang['uploadwrong'] = 'В закачке отказано. Файлы с таким расширением запрещены. '; +$lang['fileupload'] = 'Загрузка медиа-файла'; +$lang['uploadsucc'] = 'Загрузка произведена успешно'; +$lang['uploadfail'] = 'Загрузка не удалась. Возможно, проблемы с правами доступа?'; +$lang['uploadwrong'] = 'В загрузке отказано. Файлы с таким расширением запрещены. '; $lang['uploadexist'] = 'Файл с таким именем существует. Загрузка не произведена.'; $lang['uploadbadcontent'] = 'Содержание файла не соответствует расширению %s.'; -$lang['uploadspam'] = 'Закачка заблокирована спам-фильтром.'; -$lang['uploadxss'] = 'Закачка заблокирована по соображениям безопасности.'; +$lang['uploadspam'] = 'Загрузка заблокирована спам-фильтром.'; +$lang['uploadxss'] = 'Загрузка заблокирована по соображениям безопасности.'; $lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)'; $lang['deletesucc'] = 'Файл "%s" был удалён.'; $lang['deletefail'] = 'Невозможно удалить файл "%s". Проверьте права доступа к файлу.'; $lang['mediainuse'] = 'Файл "%s" не был удалён - файл всё ещё используется.'; $lang['namespaces'] = 'Пространства имён'; $lang['mediafiles'] = 'Доступные файлы'; -$lang['js']['searchmedia'] = 'Поиск файлов'; -$lang['js']['keepopen'] = 'Не закрывать окно после выбора'; -$lang['js']['hidedetails'] = 'Скрыть детали'; -$lang['js']['nosmblinks'] = 'Ссылка на сетевые каталоги Windows работает только из Интернет Эксплорера -Но Вы можете скопировать ссылку.'; -$lang['js']['linkwiz'] = 'Мастер ссылок'; -$lang['js']['linkto'] = 'Ссылка на:'; -$lang['js']['del_confirm'] = 'Вы на самом деле желаете удалить выбранное?'; -$lang['js']['mu_btn'] = 'Загрузить несколько файлов одновременно'; +$lang['accessdenied'] = 'Вы не можете просмотреть эту страницу.'; $lang['mediausage'] = 'Для ссылки на этот файл используйте следующий синтаксис:'; $lang['mediaview'] = 'Посмотреть исходный файл'; $lang['mediaroot'] = 'корень'; -$lang['mediaupload'] = 'Здесь можно загрузить файл в текущий каталог ("пространство имен"). Чтобы создать подкаталоги, добавьте их к началу имени файла ("Загрузить как"). Имена подкаталогов разделяются двоеточиями. '; +$lang['mediaupload'] = 'Здесь можно загрузить файл в текущий каталог («пространство имен»). Чтобы создать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделяются двоеточиями. '; $lang['mediaextchange'] = 'Расширение изменилось: с .%s на .%s!'; $lang['reference'] = 'Ссылки для'; $lang['ref_inuse'] = 'Этот файл не может быть удалён, так как он используется следующими страницами:'; @@ -146,11 +168,12 @@ $lang['current'] = 'текущий'; $lang['yours'] = 'Ваша версия'; $lang['diff'] = 'показать отличия от текущей версии'; $lang['diff2'] = 'Показать различия между ревизиями '; +$lang['difflink'] = 'Ссылка на это сравнение'; $lang['line'] = 'Строка'; $lang['breadcrumb'] = 'Вы посетили'; $lang['youarehere'] = 'Вы находитесь здесь'; $lang['lastmod'] = 'Последние изменения'; -$lang['by'] = ' От'; +$lang['by'] = ' от'; $lang['deleted'] = 'удалено'; $lang['created'] = 'создано'; $lang['restored'] = 'старая ревизия восстановлена'; @@ -160,13 +183,14 @@ $lang['noflash'] = 'Для просмотра этого соде $lang['download'] = 'Скачать код'; $lang['mail_newpage'] = 'страница добавлена:'; $lang['mail_changed'] = 'страница изменена:'; +$lang['mail_subscribe_list'] = 'изменились страницы в пространстве имен:'; $lang['mail_new_user'] = 'новый пользователь:'; $lang['mail_upload'] = 'файл закачан:'; -$lang['qb_bold'] = 'Полужирный шрифт'; -$lang['qb_italic'] = 'Курсивный шрифт'; -$lang['qb_underl'] = 'Подчеркивание'; +$lang['qb_bold'] = 'Полужирный'; +$lang['qb_italic'] = 'Курсив'; +$lang['qb_underl'] = 'Подчёркнутый'; $lang['qb_code'] = 'Текст кода'; -$lang['qb_strike'] = 'Зачёркнутый шрифт'; +$lang['qb_strike'] = 'Зачёркнутый'; $lang['qb_h1'] = 'Заголовок уровня 1'; $lang['qb_h2'] = 'Заголовок уровня 2'; $lang['qb_h3'] = 'Заголовок уровня 3'; @@ -182,7 +206,7 @@ $lang['qb_extlink'] = 'Внешняя ссылка'; $lang['qb_hr'] = 'Разделитель'; $lang['qb_ol'] = 'Элемент нумерованного списка'; $lang['qb_ul'] = 'Элемент ненумерованного списка'; -$lang['qb_media'] = 'Добавить картинки и другие файлы'; +$lang['qb_media'] = 'Добавить изображения или другие файлы'; $lang['qb_sig'] = 'Вставить подпись'; $lang['qb_smileys'] = 'Смайлики'; $lang['qb_chars'] = 'Специальные символы'; @@ -202,38 +226,50 @@ $lang['img_copyr'] = 'Авторские права'; $lang['img_format'] = 'Формат'; $lang['img_camera'] = 'Модель'; $lang['img_keywords'] = 'Ключевые слова'; -$lang['subscribe_success'] = '%s добавлен(а) в список рассылки для страницы %s'; -$lang['subscribe_error'] = 'Ошибка добавления пользователя %s в список рассылки для страницы %s'; -$lang['subscribe_noaddress'] = 'В вашем профиле не указан адрес электронной почты. Ввиду этого вы не можете подписываться на рассылки.'; -$lang['unsubscribe_success'] = '%s удален(а) из списка рассылки для страницы %s'; -$lang['unsubscribe_error'] = 'Ошибка удаления %s из списка рассылки для страницы %s'; +$lang['subscr_subscribe_success'] = 'Добавлен %s в подписку на %s'; +$lang['subscr_subscribe_error'] = 'Невозможно добавить %s в подписку на %s'; +$lang['subscr_subscribe_noaddress'] = 'Нет адреса электронной почты, сопоставленного с вашей учётной записью. Вы не можете подписаться на рассылку'; +$lang['subscr_unsubscribe_success'] = 'Удален %s из подписки на %s'; +$lang['subscr_unsubscribe_error'] = 'Ошибка удаления %s из подписки на %s'; +$lang['subscr_already_subscribed'] = '%s уже подписан на %s'; +$lang['subscr_not_subscribed'] = '%s не подписан на %s'; +$lang['subscr_m_not_subscribed'] = 'Вы не подписаны на текущую страницу или пространство имен.'; +$lang['subscr_m_new_header'] = 'Добавить подписку'; +$lang['subscr_m_current_header'] = 'Текущие подписки'; +$lang['subscr_m_unsubscribe'] = 'Отменить подписку'; +$lang['subscr_m_subscribe'] = 'Подписаться'; +$lang['subscr_m_receive'] = 'Получить'; +$lang['subscr_style_every'] = 'уведомлять о каждом изменении'; +$lang['subscr_style_digest'] = 'сводка изменений по каждой странице'; +$lang['subscr_style_list'] = 'перечислять изменившиеся страницы с прошлого уведомления'; $lang['authmodfailed'] = 'Неправильная конфигурация аутентификации пользователя. Пожалуйста, сообщите об этом вашему администратору вики.'; $lang['authtempfail'] = 'Аутентификация пользователей временно недоступна. Если проблема продолжается какое-то время, пожалуйста, сообщите об этом вашему администратору вики.'; -$lang['i_chooselang'] = 'Выберите Ваш язык/Language'; +$lang['i_chooselang'] = 'Выберите свой язык/Choose your language'; $lang['i_installer'] = 'Установка DokuWiki'; $lang['i_wikiname'] = 'Название вики'; $lang['i_enableacl'] = 'Разрешить ограничение прав доступа (рекомендуется)'; -$lang['i_superuser'] = 'Суперюзер'; +$lang['i_superuser'] = 'Суперпользователь'; $lang['i_problems'] = 'Программа установки столкнулась с проблемами, перечисленными ниже. Чтобы продолжить, вам необходимо их устранить. '; $lang['i_modified'] = 'Из соображений безопасности эта программа запускается только на новой, неизменённой установке DokuWiki. - Вам нужно либо заново распаковать скачанный пакет установки, либо обратиться к полной - <a href="http://dokuwiki.org/install">инструкции по установке DokuWiki</a>'; -$lang['i_funcna'] = 'Функция PHP <code>%s</code> недоступна. Может быть, она по какой-то причине заблокирована Вашим хостингом?'; +Вам нужно либо заново распаковать скачанный пакет установки, либо обратиться к полной +<a href="http://dokuwiki.org/install">инструкции по установке DokuWiki</a>'; +$lang['i_funcna'] = 'Функция PHP <code>%s</code> недоступна. Может быть, она по какой-то причине заблокирована вашим хостером?'; $lang['i_phpver'] = 'Ваша версия PHP (<code>%s</code>) ниже требуемой (<code>%s</code>). Вам необходимо обновить установленную версию PHP.'; $lang['i_permfail'] = '<code>%s</code> недоступна для записи DokuWiki. Вам необходимо исправить системные права доступа для этой директории!'; $lang['i_confexists'] = '<code>%s</code> уже существует'; $lang['i_writeerr'] = 'Не удалось создать <code>%s</code>. Вам необходимо проверить системные права доступа к файлу/директориям и создать файл вручную. '; $lang['i_badhash'] = 'dokuwiki.php не распознана или изменена (хэш=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code> - недопустимое или пустое значение'; +$lang['i_badval'] = '<code>%s</code> — недопустимое или пустое значение'; $lang['i_success'] = 'Конфигурация прошла успешно. Теперь вы можете удалить файл install.php. Переходите к <a href="doku.php">вашей новой DokuWiki</a>.'; -$lang['i_failure'] = 'При записи в файлы конфигурации были обнаружены ошибки. Возможно, вам придется исправить их вручную, прежде чем вы сможете использовать <a href="doku.php">Вашу новую DokuWiki</a>.'; +$lang['i_failure'] = 'При записи в файлы конфигурации были обнаружены ошибки. Возможно, вам придется исправить их вручную, прежде чем вы сможете использовать <a href="doku.php">вашу новую DokuWiki</a>.'; $lang['i_policy'] = 'Исходная политика прав доступа'; $lang['i_pol0'] = 'Открытая вики (чтение, запись, закачка файлов для всех)'; $lang['i_pol1'] = 'Общедоступная вики (чтение для всех, запись и загрузка файлов для зарегистрированных пользователей)'; $lang['i_pol2'] = 'Закрытая вики (чтение, запись и загрузка файлов только для зарегистрированных пользователей)'; $lang['i_retry'] = 'Повторить попытку'; -$lang['mu_intro'] = 'Здесь Вы можете загрузить несколько файлов сразу. Кликните на "обзор", чтобы добавить их в список. Нажмите "загрузить" когда будете готовы.'; +$lang['i_license'] = 'Пожалуйста, выберите тип лицензии для вашей вики:'; +$lang['mu_intro'] = 'Здесь вы можете загрузить несколько файлов сразу. Кликните на «обзор», чтобы добавить их в список. Нажмите «загрузить» когда будете готовы.'; $lang['mu_gridname'] = 'Имя файла'; $lang['mu_gridsize'] = 'Размер'; $lang['mu_gridstat'] = 'Статус'; @@ -256,3 +292,4 @@ $lang['days'] = '%d дней назад'; $lang['hours'] = '%d час(ов) назад'; $lang['minutes'] = '%d минут назад'; $lang['seconds'] = '%d секунд назад'; +$lang['wordblock'] = 'Ваши изменения не сохранены, поскольку они содержат блокируемые слова (спам).'; diff --git a/inc/lang/ru/login.txt b/inc/lang/ru/login.txt index 967131874..22d4dafcc 100644 --- a/inc/lang/ru/login.txt +++ b/inc/lang/ru/login.txt @@ -1,4 +1,4 @@ ====== Авторизация ====== -В данный момент Вы не в системе. Авторизируйтесь при помощи следующей формы. //Замечание:// для работы у вас должны быть включены cookies. +В данный момент вы не в системе. Авторизируйтесь при помощи следующей формы. //Замечание:// для работы у вас должны быть включены cookies. diff --git a/inc/lang/ru/mailtext.txt b/inc/lang/ru/mailtext.txt index 596fd8275..f7b9d4462 100644 --- a/inc/lang/ru/mailtext.txt +++ b/inc/lang/ru/mailtext.txt @@ -1,13 +1,13 @@ -В вашей DokuWiki была добавлена или изменена страница. Подробности: +В вашей вики была добавлена или изменена страница. Подробности: Дата : @DATE@ Браузер : @BROWSER@ IP-адрес : @IPADDRESS@ Хост : @HOSTNAME@ -Старая версия : @OLDPAGE@ -Новая версия : @NEWPAGE@ +Старая версия : @OLDPAGE@ +Новая версия : @NEWPAGE@ Сводка изменений : @SUMMARY@ -Пользователь : @USER@ +Пользователь : @USER@ @DIFF@ diff --git a/inc/lang/ru/newpage.txt b/inc/lang/ru/newpage.txt index 042941310..ea8e35bf5 100644 --- a/inc/lang/ru/newpage.txt +++ b/inc/lang/ru/newpage.txt @@ -1,3 +1,3 @@ ====== Эта страница ещё не существует ====== -Вы перешли по ссылке на тему, для которой ещё не создана страница. Если позволяют Ваши права доступа, Вы можете создать её, нажав на кнопку "Создать страницу". +Вы перешли по ссылке на тему, для которой ещё не создана страница. Если позволяют ваши права доступа, вы можете создать её, нажав на кнопку «Создать страницу». diff --git a/inc/lang/ru/preview.txt b/inc/lang/ru/preview.txt index a3f37843d..2bc383eb2 100644 --- a/inc/lang/ru/preview.txt +++ b/inc/lang/ru/preview.txt @@ -1,4 +1,4 @@ ====== Просмотр ====== -Здесь показано, как Ваш текст будет выглядеть. Внимание: текст ещё **не сохранён!** +Здесь показано, как ваш текст будет выглядеть. Внимание: текст ещё **не сохранён!** diff --git a/inc/lang/ru/pwconfirm.txt b/inc/lang/ru/pwconfirm.txt index 89c84791e..ecf416210 100644 --- a/inc/lang/ru/pwconfirm.txt +++ b/inc/lang/ru/pwconfirm.txt @@ -2,9 +2,9 @@ Кто-то запросил новый пароль для входа в @TITLE@ по адресу @DOKUWIKIURL@ -Если Вы не запрашивали новый пароль, просто проигнорируйте этот e-mail. +Если вы не запрашивали новый пароль, просто проигнорируйте это письмо. -Для подтверждения, что запрос был действительно сделан Вами, пожалуйста, перейдите по следующей ссылке. +Для подтверждения, что запрос был действительно сделан вами, пожалуйста, перейдите по следующей ссылке. @CONFIRM@ diff --git a/inc/lang/ru/read.txt b/inc/lang/ru/read.txt index ed2754ac7..fd52d1a52 100644 --- a/inc/lang/ru/read.txt +++ b/inc/lang/ru/read.txt @@ -1,2 +1,2 @@ -Эта страница — только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. +Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. diff --git a/inc/lang/ru/register.txt b/inc/lang/ru/register.txt index 23ed33656..2d5d9878e 100644 --- a/inc/lang/ru/register.txt +++ b/inc/lang/ru/register.txt @@ -1,3 +1,3 @@ ====== Регистрация нового пользователя ====== -Для регистрации в вики заполните все поля ниже. Обратите внимание на **правильность адреса е-мэйл** - туда будет выслан пароль в том случае, если Вас не просят самостоятельно ввести его здесь. Логин должен удовлетворять ограничениям для [[doku>pagename|идентификатора страницы]]. +Для регистрации в вики заполните все поля ниже. Обратите внимание на **правильность адреса электронной почты** — туда будет выслан пароль в том случае, если вас не просят самостоятельно ввести его здесь. Логин должен удовлетворять ограничениям для [[doku>pagename|идентификатора страницы]]. diff --git a/inc/lang/ru/registermail.txt b/inc/lang/ru/registermail.txt index 615cff543..496db229e 100644 --- a/inc/lang/ru/registermail.txt +++ b/inc/lang/ru/registermail.txt @@ -2,7 +2,7 @@ Логин : @NEWUSER@ Полное имя : @NEWNAME@ -E-mail : @NEWEMAIL@ +Эл. адрес : @NEWEMAIL@ Дата : @DATE@ Браузер : @BROWSER@ diff --git a/inc/lang/ru/resendpwd.txt b/inc/lang/ru/resendpwd.txt index 9bcd98dea..3cd05049a 100644 --- a/inc/lang/ru/resendpwd.txt +++ b/inc/lang/ru/resendpwd.txt @@ -1,3 +1,3 @@ -====== Послать новый пароль ====== +====== Выслать новый пароль ====== -Для получения нового пароля введите требуемые данные ниже. Ваш новый пароль будет послан по адресу е-мэйл, зарегистрированному на Ваше имя. Указанное ниже имя должно быть Вашим логином в этой вики. +Для получения нового пароля введите требуемые данные ниже. Ваш новый пароль будет послан по адресу электронной почты, зарегистрированному на ваше имя. Указанное ниже имя должно быть вашим логином в этой вики. diff --git a/inc/lang/ru/revisions.txt b/inc/lang/ru/revisions.txt index 4341969a3..06022323f 100644 --- a/inc/lang/ru/revisions.txt +++ b/inc/lang/ru/revisions.txt @@ -1,3 +1,3 @@ ====== История страницы ====== -Перед Вами — история правок текущего документа. Чтобы вернуться к одной из предыдущих версий, выберите нужную, нажмите ''Править страницу'' и сохраните. +Перед вами — история правок текущего документа. Чтобы вернуться к одной из предыдущих версий, выберите нужную, нажмите ''Править страницу'' и сохраните. diff --git a/inc/lang/ru/searchpage.txt b/inc/lang/ru/searchpage.txt index 33cac358a..608220495 100644 --- a/inc/lang/ru/searchpage.txt +++ b/inc/lang/ru/searchpage.txt @@ -1,5 +1,5 @@ ====== Поиск ====== -Перед Вами — результаты поиска. Если Вы не нашли то, что искали, Вы можете создать новую страницу с именем, совпадающим с запросом. Чтобы сделать это, просто нажмите на кнопку ''Создать страницу''. +Перед вами результаты поиска. Если вы не нашли то, что искали, вы можете создать новую страницу с именем, совпадающим с запросом. Чтобы сделать это, просто нажмите на кнопку ''Создать страницу''. ===== Результаты =====
\ No newline at end of file diff --git a/inc/lang/ru/showrev.txt b/inc/lang/ru/showrev.txt index acb814e17..b3f3852eb 100644 --- a/inc/lang/ru/showrev.txt +++ b/inc/lang/ru/showrev.txt @@ -1,2 +1,2 @@ -**Это — старая версия документа!** +**Это старая версия документа!** ---- diff --git a/inc/lang/ru/subscr_digest.txt b/inc/lang/ru/subscr_digest.txt new file mode 100644 index 000000000..0e1ce5dce --- /dev/null +++ b/inc/lang/ru/subscr_digest.txt @@ -0,0 +1,20 @@ +Привет! + +Страница @PAGE@ в вики @TITLE@ изменилась. +Список изменений: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Старая версия: @OLDPAGE@ +Новая версия: @NEWPAGE@ + +Чтобы отписаться от уведомлений об изменениях, войдите в вики +@DOKUWIKIURL@ в раздел +@SUBSCRIBE@ +и отмените подписку на страницу и/или пространство имен. + +-- +Это письмо создано DokuWiki с сайта +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ru/subscr_form.txt b/inc/lang/ru/subscr_form.txt new file mode 100644 index 000000000..67643cdb8 --- /dev/null +++ b/inc/lang/ru/subscr_form.txt @@ -0,0 +1,3 @@ +====== Управление подписками ====== + +Здесь вы можете управлять подписками для текущей страницы и пространства имен.
\ No newline at end of file diff --git a/inc/lang/ru/subscr_list.txt b/inc/lang/ru/subscr_list.txt new file mode 100644 index 000000000..b543f8da9 --- /dev/null +++ b/inc/lang/ru/subscr_list.txt @@ -0,0 +1,17 @@ +Привет! + +Страницы в пространстве имен @PAGE@ в вики @TITLE@ были изменены. +Список изменившихся страниц: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Чтобы отписаться от уведомлений об изменениях, войдите в вики +@DOKUWIKIURL@ в раздел +@SUBSCRIBE@ +и отмените подписку на страницу и/или пространство имен. + +-- +Это письмо создано DokuWiki с сайта +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ru/subscr_single.txt b/inc/lang/ru/subscr_single.txt new file mode 100644 index 000000000..22277f0c8 --- /dev/null +++ b/inc/lang/ru/subscr_single.txt @@ -0,0 +1,23 @@ +Привет! + +Страница @PAGE@ в вики @TITLE@ изменилась. +Список изменений: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Дата : @DATE@ +Автор : @USER@ +Примечание: @SUMMARY@ +Старая версия: @OLDPAGE@ +Новая версия: @NEWPAGE@ + +Чтобы отписаться от уведомлений об изменениях, войдите в вики +@DOKUWIKIURL@ в раздел +@SUBSCRIBE@ +и отмените подписку на страницу и/или пространство имен. + +-- +Это письмо создано DokuWiki с сайта +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/ru/updateprofile.txt b/inc/lang/ru/updateprofile.txt index 136184467..b1f9f56ef 100644 --- a/inc/lang/ru/updateprofile.txt +++ b/inc/lang/ru/updateprofile.txt @@ -1,5 +1,5 @@ ====== Обновить профиль ====== -Необходимо заполнить только те поля, которые Вы хотите изменить. Имя пользователя не может быть изменено. +Необходимо заполнить только те поля, которые вы хотите изменить. Имя пользователя не может быть изменено. diff --git a/inc/lang/ru/uploadmail.txt b/inc/lang/ru/uploadmail.txt index 07dbf186d..4dd43e603 100644 --- a/inc/lang/ru/uploadmail.txt +++ b/inc/lang/ru/uploadmail.txt @@ -1,4 +1,4 @@ -В вашу DokuWiki был закачан файл. Подробная информация: +В вашу вики был закачан файл. Подробная информация: Файл : @MEDIA@ Дата : @DATE@ diff --git a/inc/lang/sk/admin.txt b/inc/lang/sk/admin.txt index 039da2ae2..510eeb9c8 100644 --- a/inc/lang/sk/admin.txt +++ b/inc/lang/sk/admin.txt @@ -1,5 +1,5 @@ ====== Administrácia ====== -Nižšie môžte nájsť zoznam administratívnych úloch, ktoré môžte vykonávať v DokuWiki. +Nižšie môžete nájsť zoznam administratívnych úloh dostupných v DokuWiki. diff --git a/inc/lang/sk/adminplugins.txt b/inc/lang/sk/adminplugins.txt new file mode 100644 index 000000000..64d2ca774 --- /dev/null +++ b/inc/lang/sk/adminplugins.txt @@ -0,0 +1 @@ +===== Ďalšie pluginy =====
\ No newline at end of file diff --git a/inc/lang/sk/conflict.txt b/inc/lang/sk/conflict.txt index d3cd0f590..5dab2dbe1 100644 --- a/inc/lang/sk/conflict.txt +++ b/inc/lang/sk/conflict.txt @@ -1,5 +1,5 @@ ====== Existuje novšia verzia ====== -Existuje novšia verzia práve upravovaného dokumentu. To se stáva, keď niekto iný zmenil dokument, ktorý práve upravujete. +Existuje novšia verzia práve upravovaného dokumentu. To sa stáva, keď niekto iný zmenil dokument, ktorý práve upravujete. Prehliadnite si nižšie uvedené rozdiely, prípadne rozdiely z obidvoch verzií ručne spojte dohromady a rozhodnite sa, ktorú verziu uchovať. Ak zvolíte ''Uložiť', bude uložená vaša verzia. V opačnom prípade stlačte ''Storno'' pre uchovanie pôvodnej verzie. diff --git a/inc/lang/sk/denied.txt b/inc/lang/sk/denied.txt index 6f673c7d6..6e9c98496 100644 --- a/inc/lang/sk/denied.txt +++ b/inc/lang/sk/denied.txt @@ -1,3 +1,3 @@ ====== Nepovolená akcia ====== -Prepáčte, ale nemáte dostatočné oprávnenie k tejto činnosti. Možno ste se zabudli prihlásiť? +Prepáčte, ale nemáte dostatočné oprávnenie k tejto činnosti. Možno ste sa zabudli prihlásiť? diff --git a/inc/lang/sk/diff.txt b/inc/lang/sk/diff.txt index 0e29e7f7b..0548ea5d6 100644 --- a/inc/lang/sk/diff.txt +++ b/inc/lang/sk/diff.txt @@ -1,4 +1,4 @@ ====== Rozdiely ====== -Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verzou danej stránky. +Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky. diff --git a/inc/lang/sk/draft.txt b/inc/lang/sk/draft.txt index 7e6776deb..96a4e91b2 100644 --- a/inc/lang/sk/draft.txt +++ b/inc/lang/sk/draft.txt @@ -2,5 +2,5 @@ Vaša posledná editácia tejto stránky nebola ukončená korektne. Dokuwiki automaticky uložila počas vašej práce koncept a ten môžete teraz použiť pre pokračovanie editácie. Nižšie môžete vidieť dáta, ktoré boli uložené. -Prosím, rozhodnite sa, či chcete //obnoviť// vašu poslednú editáciu, //zmazať// automaticky uložený koncept, alebo //stornovať// proces editácie. +Prosím, rozhodnite sa, či chcete //obnoviť// vašu poslednú editáciu, //zmazať// automaticky uložený koncept alebo //stornovať// proces editácie. diff --git a/inc/lang/sk/edit.txt b/inc/lang/sk/edit.txt index 1adf4e16f..b8d63fb72 100644 --- a/inc/lang/sk/edit.txt +++ b/inc/lang/sk/edit.txt @@ -1 +1 @@ -Upravte stránku a stlačte ''Uložiť''. Na stránke [[wiki:syntax]] sa môžete dozvedieť viac o Wiki syntaxi. Prosím upravujte stránky len pokiaľ ich môžete **vylepšit**. Pokiaľ si chcete niečo len vyskúšať, použite [[playground:playground| pieskovisko]]. +Upravte stránku a stlačte ''Uložiť''. Na stránke [[wiki:syntax]] sa môžete dozvedieť viac o Wiki syntaxi. Prosím upravujte stránky, len pokiaľ ich môžete **zdokonaliť**. Pokiaľ si chcete niečo len vyskúšať, použite [[playground:playground| pieskovisko]]. diff --git a/inc/lang/sk/editrev.txt b/inc/lang/sk/editrev.txt index 6a837c244..ed15e791c 100644 --- a/inc/lang/sk/editrev.txt +++ b/inc/lang/sk/editrev.txt @@ -1 +1 @@ -**Máte načítanú staršiu verziu dokumentu!** Pokiaľ ju uložíte, vytvoríte tým novú aktuálnú verziu. +**Máte načítanú staršiu verziu dokumentu!** Pokiaľ ju uložíte, vytvoríte tým novú aktuálnu verziu. diff --git a/inc/lang/sk/index.txt b/inc/lang/sk/index.txt index 7b26d42ce..b4189f214 100644 --- a/inc/lang/sk/index.txt +++ b/inc/lang/sk/index.txt @@ -1,3 +1,3 @@ ====== Index ====== -Tu je k dispozícii index všetkých dostupných stránok Zoradených podľa [[doku>namespaces|menných priestorov]]. +Tu je k dispozícii index všetkých dostupných stránok zoradených podľa [[doku>namespaces|menných priestorov]]. diff --git a/inc/lang/sk/install.html b/inc/lang/sk/install.html index c45b82005..e31d7457c 100644 --- a/inc/lang/sk/install.html +++ b/inc/lang/sk/install.html @@ -1,23 +1,23 @@ <p>Táto stránka sprevádza prvou inštaláciou a konfiguráciou -<a href="http://dokuwiki.org">Dokuwiki</a>. Viac informácií o tomto Inštalátore je dostupných na jeho +<a href="http://dokuwiki.org">Dokuwiki</a>. Viac informácií o tomto inštalátore je dostupných na jeho <a href="http://dokuwiki.org/installer">dokumentačnej stránke</a>.</p> <p>DokuWiki používa bežné súbory pre ukladanie wiki stránok a iných informácií priradených k týmto stránkam (napr. obrázkov, vyhľadávacích indexov, starých revízií). Ak chcete úspešne narábať s DokuWiki, <strong>musí</strong> -mať práva pre zápis do adresárov, kde sa ukladajú tieto súbory. Tento Inštalátor +mať práva pre zápis do adresárov, kde sa ukladajú tieto súbory. Tento inštalátor nie je schopný nastaviť prístupové práva pre adresáre. Je potrebné to urobiť -priamo cez príkazový riadok, alebo ak využívate webhosting, cez FTP, alebo vaše +priamo cez príkazový riadok alebo, ak využívate webhosting, cez FTP alebo vaše webhostingové administračné rozhranie.</p> -<p>Tento Inštalátor nastaví <acronym title="access control list - zoznam prístupových práv">ACL</acronym> +<p>Tento inštalátor nastaví <acronym title="access control list - zoznam prístupových práv">ACL</acronym> konfiguráciu vašej Dokuwiki. Umožňuje vytvoriť administrátorské konto s prístupom do administračného menu s možnosťou inštalácie pluginov, správy užívateľov, správy prístupových práv k wiki stránkam a zmeny konfiguračných nastavení. Nie je nevyhnutné pre používanie Dokuwiki, ale umožňuje to ľahšie spravovať Dokuwiki.</p> -<p>Skúsení užívatelia, alebo užívatelia so špeciálnymi požiadavkami môžu použiť +<p>Skúsení užívatelia alebo užívatelia so špeciálnymi požiadavkami môžu použiť tieto odkazy pre bližšie informácie týkajúce sa <a href="http://dokuwiki.org/install">inštalačných pokynov</a> a <a href="http://dokuwiki.org/config">konfiguračných nastavení</a>.</p> diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 2d9c8efea..b1783008b 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -25,7 +25,7 @@ $lang['btn_preview'] = 'Náhľad'; $lang['btn_top'] = 'Hore'; $lang['btn_newer'] = '<< novšie'; $lang['btn_older'] = 'staršie >>'; -$lang['btn_revs'] = 'Staršia verzia'; +$lang['btn_revs'] = 'Staršie verzie'; $lang['btn_recent'] = 'Posledné úpravy'; $lang['btn_upload'] = 'Nahrať'; $lang['btn_cancel'] = 'Storno'; @@ -39,16 +39,14 @@ $lang['btn_delete'] = 'Zmazať'; $lang['btn_back'] = 'Späť'; $lang['btn_backlink'] = 'Spätné linky'; $lang['btn_backtomedia'] = 'Späť na výber média'; -$lang['btn_subscribe'] = 'Posielať zmeny'; -$lang['btn_unsubscribe'] = 'Neposielať zmeny'; -$lang['btn_subscribens'] = 'Posielať zmeny menných priestorov'; -$lang['btn_unsubscribens'] = 'Neposielať zmeny menných priestorov'; +$lang['btn_subscribe'] = 'Sledovať zmeny'; $lang['btn_profile'] = 'Aktualizovať profil'; $lang['btn_reset'] = 'Zrušiť'; $lang['btn_resendpwd'] = 'Poslať nové heslo'; $lang['btn_draft'] = 'Upraviť koncept'; $lang['btn_recover'] = 'Obnoviť koncept'; $lang['btn_draftdel'] = 'Zmazať koncept'; +$lang['btn_revert'] = 'Obnoviť'; $lang['loggedinas'] = 'Prihlásený(á) ako'; $lang['user'] = 'Užívateľské meno'; $lang['pass'] = 'Heslo'; @@ -63,22 +61,22 @@ $lang['profile'] = 'Užívateľský profil'; $lang['badlogin'] = 'Zadané užívateľské meno a heslo nie je správne.'; $lang['minoredit'] = 'Menšie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; -$lang['nosecedit'] = 'Skránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; +$lang['nosecedit'] = 'Stránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; $lang['regmissing'] = 'Musíte vyplniť všetky údaje.'; $lang['reguexists'] = 'Užívateľ s rovnakým menom je už zaregistrovaný.'; $lang['regsuccess'] = 'Užívateľský účet bol vytvorený a heslo zaslané mailom.'; $lang['regsuccess2'] = 'Užívateľský účet bol vytvorený.'; $lang['regmailfail'] = 'Zdá sa, že nastala chyba pri posielaní mailu s heslom. Skúste kontaktovať správcu.'; $lang['regbadmail'] = 'Zadaná mailová adresa nie je platná. Pokiaľ si myslíte, že to je zle, skúste kontaktovať správcu.'; -$lang['regbadpass'] = 'Dve zadané heslá nie sú rovnaké, skúste prosím znovu.'; +$lang['regbadpass'] = 'Zadané heslá nie sú rovnaké, zadajte ich prosím znovu.'; $lang['regpwmail'] = 'Vaše heslo do systému DokuWiki'; -$lang['reghere'] = 'Nemáte uživateľský účet? Vytvorte si ho'; -$lang['profna'] = 'Toto wiki nepodporuje zmenu profilu'; +$lang['reghere'] = 'Nemáte užívateľský účet? Vytvorte si ho'; +$lang['profna'] = 'Táto wiki nepodporuje zmenu profilu'; $lang['profnochange'] = 'Žiadne zmeny, nie je čo robiť.'; -$lang['profnoempty'] = 'Prázdne meno, alebo e-mailová adresa nie sú povolené.'; +$lang['profnoempty'] = 'Prázdne meno alebo e-mailová adresa nie sú povolené.'; $lang['profchanged'] = 'Užívateľský účet úspešne zmenený.'; $lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!'; -$lang['resendna'] = 'Toto wiki nepodporuje znovuposielanie hesla.'; +$lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'Pošli nové heslo pre'; $lang['resendpwdmissing'] = 'Prepáčte, musíte vyplniť všetky polia.'; $lang['resendpwdnouser'] = 'Prepáčte, nemôžeme nájsť zadaného užívateľa v databáze.'; @@ -87,13 +85,46 @@ $lang['resendpwdconfirm'] = 'Autorizačný odkaz bol zaslaný na e-mail.'; $lang['resendpwdsuccess'] = 'Vaše nové heslo bolo zaslané na e-mail.'; $lang['license'] = 'Ak nie je uvedené inak, obsah tejto wiki je uverejnený pod nasledujúcou licenciou:'; $lang['licenseok'] = 'Poznámka: Zmenou tejto stránky súhlasíte s uverejnením obsahu pod nasledujúcou licenciou:'; +$lang['searchmedia'] = 'Hľadať meno súboru:'; +$lang['searchmedia_in'] = 'Hľadať v %s'; $lang['txt_upload'] = 'Vyberte súbor ako prílohu'; -$lang['txt_filename'] = 'Wiki meno (volitelné)'; +$lang['txt_filename'] = 'Uložiť ako (voliteľné)'; $lang['txt_overwrt'] = 'Prepísať existujúci súbor'; $lang['lockedby'] = 'Práve zamknuté:'; -$lang['lockexpire'] = 'Zámok vyprší:'; -$lang['willexpire'] = 'Váš zámok pre editáciu za chvílu vyprší.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; -$lang['notsavedyet'] = 'Neuložené zmeny budú stratené.\nChcete naozaj pokračovať?'; +$lang['lockexpire'] = 'Zámok stratí platnosť:'; +$lang['willexpire'] = 'Váš zámok pre editáciu za chvíľu stratí platnosť.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; +$lang['js']['notsavedyet'] = 'Neuložené zmeny budú stratené. +Chcete naozaj pokračovať?'; +$lang['js']['searchmedia'] = 'Hľadať súbory'; +$lang['js']['keepopen'] = 'Po vybraní súboru ponechať okno otvorené'; +$lang['js']['hidedetails'] = 'Skryť detaily'; +$lang['js']['mediatitle'] = 'Nastavenia odkazu'; +$lang['js']['mediadisplay'] = 'Typ odkazu'; +$lang['js']['mediaalign'] = 'Zarovnanie'; +$lang['js']['mediasize'] = 'Veľkosť obrázku'; +$lang['js']['mediatarget'] = 'Cieľ odkazu'; +$lang['js']['mediaclose'] = 'Zatvoriť'; +$lang['js']['mediainsert'] = 'Vložiť'; +$lang['js']['mediadisplayimg'] = 'Zobraziť obrázok.'; +$lang['js']['mediadisplaylnk'] = 'Zobraziť iba odkaz.'; +$lang['js']['mediasmall'] = 'Malý'; +$lang['js']['mediamedium'] = 'Stredný'; +$lang['js']['medialarge'] = 'Veľký'; +$lang['js']['mediaoriginal'] = 'Originál'; +$lang['js']['medialnk'] = 'Odkaz na stránku s detailným popisom'; +$lang['js']['mediadirect'] = 'Priamy odkaz na originál'; +$lang['js']['medianolnk'] = 'Žiadny odkaz'; +$lang['js']['medianolink'] = 'Bez odkazu na obrázok'; +$lang['js']['medialeft'] = 'Zarovnať obrázok vľavo.'; +$lang['js']['mediaright'] = 'Zarovnať obrázok vpravo.'; +$lang['js']['mediacenter'] = 'Zarovnať obrázok na stred.'; +$lang['js']['medianoalign'] = 'Nepoužívať zarovnanie.'; +$lang['js']['nosmblinks'] = 'Odkazovanie na zdielané prostriedky Windows funguje len v Internet Explorer. +Aj napriek tomu tento odkaz môžete skopírovať a vložiť inde.'; +$lang['js']['linkwiz'] = 'Sprievodca odkazmi'; +$lang['js']['linkto'] = 'Odkaz na:'; +$lang['js']['del_confirm'] = 'Zmazať túto položku?'; +$lang['js']['mu_btn'] = 'Nahrať viac súborov súčasne'; $lang['rssfailed'] = 'Nastala chyba pri vytváraní tohto RSS: '; $lang['nothingfound'] = 'Nič nenájdené.'; $lang['mediaselect'] = 'Výber dokumentu'; @@ -101,7 +132,7 @@ $lang['fileupload'] = 'Nahrávanie dokumentu'; $lang['uploadsucc'] = 'Prenos prebehol v poriadku'; $lang['uploadfail'] = 'Chyba pri nahrávaní. Možno kvôli zle nastaveným právam?'; $lang['uploadwrong'] = 'Prenos súboru s takouto príponou nie je dovolený.'; -$lang['uploadexist'] = 'Súbor skutočne existuje. Nie je čo robiť.'; +$lang['uploadexist'] = 'Súbor už existuje. Žiadna akcia.'; $lang['uploadbadcontent'] = 'Nahraný obsah sa nezhoduje s príponou súboru %s.'; $lang['uploadspam'] = 'Nahrávanie bolo zablokované spamovým blacklistom.'; $lang['uploadxss'] = 'Nahrávanie bolo zablokované kvôli potenciálnemu škodlivému obsahu.'; @@ -111,40 +142,37 @@ $lang['deletefail'] = '"%s" nie je možné zmazať - skontrolujte opr $lang['mediainuse'] = 'Súbor "%s" nebol zmazaný - je stále používaný.'; $lang['namespaces'] = 'Menné priestory'; $lang['mediafiles'] = 'Dostupné súbory'; -$lang['js']['keepopen'] = 'Po vybraní súboru ponechať okno otvorené'; -$lang['js']['hidedetails'] = 'Skryť detaily'; -$lang['js']['nosmblinks'] = 'Odkazovanie na zdielané prostriedky Windows funguje len v Internet Explorer. -Aj napriek tomu tento odkaz môžete skopírovat a vložit inde.'; -$lang['js']['mu_btn'] = 'Nahrať viac súborov naraz'; $lang['mediausage'] = 'Pre odkázanie na súbor použite nasledujúcu syntax:'; $lang['mediaview'] = 'Zobraziť pôvodný súbor'; $lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Nahrať súbor do aktuálneho menného priestoru. Pre vytvorenie menného podpriestoru, pridajte jeho názov na začiatok wiki mena (oddelený dvojbodkou)'; +$lang['mediaupload'] = 'Nahrať súbor do aktuálneho menného priestoru. Pre vytvorenie menného podpriestoru, pridajte jeho názov na začiatok mena súboru (oddelený dvojbodkou)'; $lang['mediaextchange'] = 'Prípona súboru bola zmenená z .%s na .%s!'; $lang['reference'] = 'Referencie pre'; $lang['ref_inuse'] = 'Súbor nemôže byť zmazaný, pretože je stále používaný nasledujúcimi stránkami:'; -$lang['ref_hidden'] = 'Niektoré referencie sú na stránky pre ktoré nemáte právo na čítanie'; +$lang['ref_hidden'] = 'Niektoré referencie sú na stránky, pre ktoré nemáte právo na čítanie'; $lang['hits'] = '- počet výskytov'; $lang['quickhits'] = 'Zodpovedajúce stránky'; $lang['toc'] = 'Obsah'; $lang['current'] = 'aktuálne'; $lang['yours'] = 'Vaša verzia'; -$lang['diff'] = 'zobrazit rozdiely voči aktuálnej verzii'; -$lang['diff2'] = 'Ukázať rozdiely medzi vybranými verziami'; +$lang['diff'] = 'Zobraziť rozdiely voči aktuálnej verzii'; +$lang['diff2'] = 'Zobraziť rozdiely medzi vybranými verziami'; $lang['line'] = 'Riadok'; $lang['breadcrumb'] = 'História'; $lang['youarehere'] = 'Nachádzate sa'; $lang['lastmod'] = 'Posledná úprava'; $lang['by'] = 'od'; -$lang['deleted'] = 'odstranené'; +$lang['deleted'] = 'odstránené'; $lang['created'] = 'vytvorené'; -$lang['restored'] = 'stará verzia bola obnovena'; +$lang['restored'] = 'stará verzia bola obnovená'; $lang['external_edit'] = 'externá úprava'; $lang['summary'] = 'Komentár k úpravám'; $lang['noflash'] = 'Pre zobrazenie tohto obsahu potrebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; +$lang['download'] = 'Stiahnuť'; $lang['mail_newpage'] = 'stránka pridaná:'; $lang['mail_changed'] = 'stránka zmenená:'; -$lang['mail_new_user'] = 'Nový užívateľ:'; +$lang['mail_subscribe_list'] = 'stránky zmenené v mennom priestore:'; +$lang['mail_new_user'] = 'nový užívateľ:'; $lang['mail_upload'] = 'nahraný súbor:'; $lang['qb_bold'] = 'Tučné'; $lang['qb_italic'] = 'Kurzíva'; @@ -156,6 +184,11 @@ $lang['qb_h2'] = 'Nadpis 2. úrovne'; $lang['qb_h3'] = 'Nadpis 3. úrovne'; $lang['qb_h4'] = 'Nadpis 4. úrovne'; $lang['qb_h5'] = 'Nadpis 5. úrovne'; +$lang['qb_h'] = 'Nadpis'; +$lang['qb_hs'] = 'Zvoliť nadpis'; +$lang['qb_hplus'] = 'Nadpis vyššej úrovne'; +$lang['qb_hminus'] = 'Nadpis nižšej úrovne'; +$lang['qb_hequal'] = 'Nadpis predchádzajúcej úrovne'; $lang['qb_link'] = 'Interný odkaz'; $lang['qb_extlink'] = 'Externý odkaz'; $lang['qb_hr'] = 'Horizontálna linka'; @@ -165,7 +198,7 @@ $lang['qb_media'] = 'Vložiť obrázky alebo iné súbory'; $lang['qb_sig'] = 'Vložiť podpis'; $lang['qb_smileys'] = 'Smajlíky'; $lang['qb_chars'] = 'Špeciálne znaky'; -$lang['js']['del_confirm'] = 'Zmazať túto položku?'; +$lang['upperns'] = 'návrat do nadradeného menného priestoru'; $lang['admin_register'] = 'Pridaj nového užívateľa'; $lang['metaedit'] = 'Upraviť metainformácie'; $lang['metasaveerr'] = 'Zápis metainformácií zlyhal'; @@ -180,48 +213,67 @@ $lang['img_artist'] = 'Fotograf'; $lang['img_copyr'] = 'Kopírovacie práva'; $lang['img_format'] = 'Formát'; $lang['img_camera'] = 'Fotoaparát'; -$lang['img_keywords'] = 'Klúčové slová'; -$lang['subscribe_success'] = 'Pridané %s do zoznamu objednávok pre %s'; -$lang['subscribe_error'] = 'Chyba pri pridaní %s do zoznamu objednávok pre %s'; -$lang['subscribe_noaddress'] = 'Nie je žiadna e-mailová adresa priradená k vašemu menu,nemôžte byť pridaný do zoznamu objednávok'; -$lang['unsubscribe_success'] = 'Odobrané %s zo zoznamu objednávok pre %s'; -$lang['unsubscribe_error'] = 'Chaba pri odobraní %s zo zoznamu objednávok pre %s'; -$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu tohto systému.'; -$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrvá, prosím informujte správcu tohto systému.'; +$lang['img_keywords'] = 'Kľúčové slová'; +$lang['subscr_subscribe_success'] = 'Používateľ %s bol pridaný do zoznamu hlásení o zmenách %s'; +$lang['subscr_subscribe_error'] = 'Chyba pri pridaní používateľa %s do zoznamu hlásení o zmenách %s'; +$lang['subscr_subscribe_noaddress'] = 'Vaše prihlasovacie meno nemá priradenú žiadnu email adresu, nemôžete byť pridaný do zoznamu hlásení o zmenách'; +$lang['subscr_unsubscribe_success'] = 'Používateľ %s bol odstánený zo zoznamu hlásení o zmenách %s'; +$lang['subscr_unsubscribe_error'] = 'Chyba pri odstánení používateľa %s zo zoznamu hlásení o zmenách %s'; +$lang['subscr_already_subscribed'] = 'Používateľ %s už je v zozname hlásení o zmenách %s'; +$lang['subscr_not_subscribed'] = 'Používateľ %s nie je v zozname hlásení o zmenách %s'; +$lang['subscr_m_not_subscribed'] = 'Momentálne nesledujete zmeny aktuálnej stránky alebo menného priestoru.'; +$lang['subscr_m_new_header'] = 'Pridať sledovanie zmien'; +$lang['subscr_m_current_header'] = 'Aktuálne sledované zmeny'; +$lang['subscr_m_unsubscribe'] = 'Nesledovať zmeny'; +$lang['subscr_m_subscribe'] = 'Sledovať zmeny'; +$lang['subscr_m_receive'] = 'Dostávať'; +$lang['subscr_style_every'] = 'email pri každej zmene'; +$lang['subscr_style_digest'] = 'email so zhrnutím zmien pre každú stránku'; +$lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu'; +$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.'; +$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.'; $lang['i_chooselang'] = 'Zvoľte váš jazyk'; $lang['i_installer'] = 'DokuWiki inštalátor'; $lang['i_wikiname'] = 'Názov Wiki'; $lang['i_enableacl'] = 'Aktivovať ACL (doporučené)'; $lang['i_superuser'] = 'Správca'; $lang['i_problems'] = 'Inštalátor narazil na nižšie uvedené problémy. Nemôžete pokračovať, pokiaľ ich neodstránite.'; -$lang['i_modified'] = 'Z bezpečnostných dôvodov bude tento skript fungovať iba s novou, neupravenou inštaláciou Dokuwiki. Môžete buď znovu rozbaliť stiahnutý inštalačný balíček, alebo preštudovať <a href="http://dokuwiki.org/install"> inštalačné inštrukcie Dokuwiki</a>'; +$lang['i_modified'] = 'Z bezpečnostných dôvodov bude tento skript fungovať iba s novou, neupravenou inštaláciou Dokuwiki. Môžete buď znovu rozbaliť stiahnutý inštalačný balíček alebo preštudovať <a href="http://dokuwiki.org/install"> inštalačné inštrukcie Dokuwiki</a>'; $lang['i_funcna'] = 'PHP funkcia <code>%s</code> nie je dostupná. Je možné, že ju z určitých dôvodov zablokoval váš poskytovateľ webhostingu?'; -$lang['i_phpver'] = 'Vaša verzia PHP <code>%s</code> je nižšia ako požadovaná <code>%s</code>. Potrebujete aktualizovať Vašu instaláciu PHP.'; +$lang['i_phpver'] = 'Vaša verzia PHP <code>%s</code> je nižšia ako požadovaná <code>%s</code>. Potrebujete aktualizovať Vašu inštaláciu PHP.'; $lang['i_permfail'] = '<code>%s</code> nie je zapisovateľný pre DokuWiki. Musíte zmeniť prístupové práva pre tento adresár!'; $lang['i_confexists'] = '<code>%s</code> už existuje'; $lang['i_writeerr'] = 'Nie je možné vytvoriť <code>%s</code>. Potrebujete skontrolovať prístupové práva pre adresár/súbor a vytvoriť ho manuálne.'; -$lang['i_badhash'] = 'nerozpoznaný, alebo zmenený súbor dokuwiki.php (hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code> - bola zadaná nesprávna, alebo žiadna hodnota'; -$lang['i_success'] = 'Konfigurácia bola úspešne ukončená. Teraz môžte zmazať súbor install.php. Pokračujte vo - <a href="doku.php">vašej novej DokuWiki</a>.'; -$lang['i_failure'] = 'Pri zápise konfiguračného súboru nastali nejaké chyby. Potrebujete ich opraviť manuálne pred tým ako budete môcť používať - <a href="doku.php">vašu novú DokuWiki</a>.'; +$lang['i_badhash'] = 'neznámy alebo zmenený súbor dokuwiki.php (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - nesprávna alebo žiadna hodnota'; +$lang['i_success'] = 'Konfigurácia bola úspešne ukončená. Teraz môžete zmazať súbor install.php. Pokračujte vo <a href="doku.php">vašej novej DokuWiki</a>.'; +$lang['i_failure'] = 'Pri zápise konfiguračného súboru nastali nejaké chyby. Potrebujete ich opraviť manuálne pred tým, ako budete môcť používať <a href="doku.php">vašu novú DokuWiki</a>.'; $lang['i_policy'] = 'Počiatočná ACL politika'; $lang['i_pol0'] = 'Otvorená Wiki (čítanie, zápis a nahrávanie pre každého)'; $lang['i_pol1'] = 'Verejná Wiki (čítanie pre každého, zápis a nahrávanie pre registrovaných užívateľov)'; $lang['i_pol2'] = 'Uzatvorená Wiki (čítanie, zápis a nahrávanie len pre registrovaných užívateľov)'; $lang['i_retry'] = 'Skúsiť znovu'; -$lang['mu_intro'] = 'Na tomto mieste môžete nahrávať viac súborov naraz. Tlačidlom Prehľadávať pridáte súbory do zoznamu. Tlačidlom Nahrať vykonáte prenos súborov.'; +$lang['mu_intro'] = 'Na tomto mieste môžete nahrávať viac súborov súčasne. Tlačidlom Prehľadávať pridáte súbory do zoznamu. Tlačidlom Nahrať vykonáte prenos súborov.'; $lang['mu_gridname'] = 'Názov súboru'; $lang['mu_gridsize'] = 'Veľkosť'; $lang['mu_gridstat'] = 'Status'; -$lang['mu_namespace'] = 'Oblasť mien'; +$lang['mu_namespace'] = 'Menný priestor'; $lang['mu_browse'] = 'Prehľadávať'; $lang['mu_toobig'] = 'príliš veľký'; $lang['mu_ready'] = 'pripravený na nahratie'; $lang['mu_done'] = 'dokončený'; $lang['mu_fail'] = 'neúspešný'; -$lang['mu_authfail'] = 'spojenie vypršalo'; +$lang['mu_authfail'] = 'pripojenie stratilo platnosť'; $lang['mu_progress'] = '@PCT@% nahraných'; $lang['mu_filetypes'] = 'Povolené typy súborov'; +$lang['mu_info'] = 'nahraných súborov.'; +$lang['mu_lasterr'] = 'Posledná chyba:'; $lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore <b>%s</b>. Môžete si tiež pozrieť <a href="%s">aktuálne zmeny celej wiki</a>.'; +$lang['years'] = 'pred %d rokmi'; +$lang['months'] = 'pred %d mesiacmi'; +$lang['weeks'] = 'pred %d týždňami'; +$lang['days'] = 'pred %d dňami'; +$lang['hours'] = 'pred %d hodinami'; +$lang['minutes'] = 'pred %d minútami'; +$lang['seconds'] = 'pred %d sekundami'; +$lang['wordblock'] = 'Vaše zmeny neboli uložené, pretože obsahovali nepovolený text (spam).'; diff --git a/inc/lang/sk/locked.txt b/inc/lang/sk/locked.txt index 0e7d9645e..5063c0605 100644 --- a/inc/lang/sk/locked.txt +++ b/inc/lang/sk/locked.txt @@ -1,3 +1,3 @@ ====== Stránka je uzamknutá ====== -Tato stránka je práve uzamknutá pre úpravy iným užívateľom. Musíte počkať pokým daný užívateľ dokončí svoje úpravy, alebo pokým tento zámok vyprší. +Tato stránka je práve uzamknutá pre úpravy iným užívateľom. Musíte počkať dovtedy, pokiaľ daný užívateľ dokončí svoje úpravy alebo pokiaľ tento zámok stratí platnosť. diff --git a/inc/lang/sk/mailtext.txt b/inc/lang/sk/mailtext.txt index 78757799e..30b7f5c37 100644 --- a/inc/lang/sk/mailtext.txt +++ b/inc/lang/sk/mailtext.txt @@ -1,17 +1,17 @@ -Stránka vo vašom DokuWiki bola zmenená. Tu sú podrobnosti: +Stránka vo vašej DokuWiki bola zmenená. Tu sú podrobnosti: -Dátum : @DATE@ -Prehliadač : @BROWSER@ -IP adresa : @IPADDRESS@ -Hostitel : @HOSTNAME@ +Dátum : @DATE@ +Prehliadač : @BROWSER@ +IP adresa : @IPADDRESS@ +Adresa : @HOSTNAME@ Stará verzia : @OLDPAGE@ -Nová verzia : @NEWPAGE@ -Komentár : @SUMMARY@ -User : @USER@ +Nová verzia : @NEWPAGE@ +Komentár : @SUMMARY@ +User : @USER@ @DIFF@ -- -Táto správa bola vygenerovaná systémom DokuWiki: +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/password.txt b/inc/lang/sk/password.txt index 17e5dda9d..2b85e9c39 100644 --- a/inc/lang/sk/password.txt +++ b/inc/lang/sk/password.txt @@ -2,10 +2,10 @@ Dobrý deň, Tu sú prihlasovacie informácie pre @TITLE@ (@DOKUWIKIURL@) -Meno : @FULLNAME@ +Meno : @FULLNAME@ Užívateľské meno : @LOGIN@ -Heslo : @PASSWORD@ +Heslo : @PASSWORD@ -- -Tato správa bola vygenerována systémom DokuWiki: +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/pwconfirm.txt b/inc/lang/sk/pwconfirm.txt index 19903203d..210740da7 100644 --- a/inc/lang/sk/pwconfirm.txt +++ b/inc/lang/sk/pwconfirm.txt @@ -11,5 +11,5 @@ použite prosím nasledujúci odkaz. @CONFIRM@ -- -Tento mail bol generovaný Dokuwiki na adrese +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/read.txt b/inc/lang/sk/read.txt index a50b2afb6..64b7ed26e 100644 --- a/inc/lang/sk/read.txt +++ b/inc/lang/sk/read.txt @@ -1,2 +1,2 @@ -Táto stránka je iba na čítanie. Môžete si iba prehliadnuť zdrojový kód, ale nie meniť ho. Opýtajte sa správcu, ak si myslíťe že niečo nie je v poriadku. +Táto stránka je iba na čítanie. Môžete si prehliadnuť zdrojový kód, ale nemôžete ho meniť. Opýtajte sa správcu, ak si myslíte, že niečo nie je v poriadku. diff --git a/inc/lang/sk/register.txt b/inc/lang/sk/register.txt index 8dfe6be4e..1e694ca79 100644 --- a/inc/lang/sk/register.txt +++ b/inc/lang/sk/register.txt @@ -1,3 +1,3 @@ ====== Zaregistrujte sa ako nový užívateľ ====== -Aby ste získali uživateľský účet, vyplňťe prosím všetky informácie v následujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. Uživateľské meno musí byť v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). +Aby ste získali užívateľský účet, vyplňte prosím všetky informácie v následujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. Užívateľské meno musí byť v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). diff --git a/inc/lang/sk/registermail.txt b/inc/lang/sk/registermail.txt index 3fdc63f74..a0bf9e314 100644 --- a/inc/lang/sk/registermail.txt +++ b/inc/lang/sk/registermail.txt @@ -10,5 +10,5 @@ IP adresa : @IPADDRESS@ Meno servera : @HOSTNAME@ -- -Tento mail bol generovaný Dokuwiki na adrese +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/resendpwd.txt b/inc/lang/sk/resendpwd.txt index b51706c96..6f52486f1 100644 --- a/inc/lang/sk/resendpwd.txt +++ b/inc/lang/sk/resendpwd.txt @@ -1,4 +1,4 @@ ====== Poslať nové heslo ====== -Vyplnte niežšie požadované informácie pre získanie nového hesla pre váš účet v tomto wiki. Vaše nové heslo bude zaslané na vašu registrovanú e-mailovú adresu. Užívateľské meno má byť vaše prihlasovaciemeno do wiki. +Vyplňte nižšie požadované informácie pre získanie nového hesla pre váš účet v tejto wiki. Vaše nové heslo bude zaslané na vašu registrovanú e-mailovú adresu. Užívateľské meno má byť vaše prihlasovacie meno do wiki. diff --git a/inc/lang/sk/stopwords.txt b/inc/lang/sk/stopwords.txt index 86eb84046..060ee495f 100644 --- a/inc/lang/sk/stopwords.txt +++ b/inc/lang/sk/stopwords.txt @@ -1,6 +1,6 @@ -#Toto je zoznam slov ignorovaných indexérom, jedno slovo na riadok +#Toto je zoznam slov ignorovaných indexáciou, jedno slovo na riadok # Keď editujete tento súbor, uistite sa, či používate UNIXové konce riadkov (jednoduchý nový riadok) -# Nie je potrebné vkladať slová kraťšie ako 3 znaky - tie sú ignorované vždy. +# Nie je potrebné vkladať slová kratšie ako 3 znaky - tie sú ignorované vždy. # Tento zoznam je založený na inom nájdenom na http://www.ranks.nl/stopwords/ okolo tvoj diff --git a/inc/lang/sk/subscr_digest.txt b/inc/lang/sk/subscr_digest.txt new file mode 100644 index 000000000..273cc7e26 --- /dev/null +++ b/inc/lang/sk/subscr_digest.txt @@ -0,0 +1,20 @@ +Dobrý deň! + +Stránka @PAGE@ wiki @TITLE@ bola zmenená. +Zoznam zmien: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Stará verzia: @OLDPAGE@ +Nová verzia: @NEWPAGE@ + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sk/subscr_form.txt b/inc/lang/sk/subscr_form.txt new file mode 100644 index 000000000..1f12e9a15 --- /dev/null +++ b/inc/lang/sk/subscr_form.txt @@ -0,0 +1,3 @@ +====== Sledovanie zmien ====== + +Táto stánka umožňuje sledovať zmeny aktuálnej stránky a menného priestoru.
\ No newline at end of file diff --git a/inc/lang/sk/subscr_list.txt b/inc/lang/sk/subscr_list.txt new file mode 100644 index 000000000..3a5bfb572 --- /dev/null +++ b/inc/lang/sk/subscr_list.txt @@ -0,0 +1,17 @@ +Dobrý deň! + +Stránky v mennom priestore @PAGE@ wiki @TITLE@ boli zmenené. +Zoznam zmenených stránok: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sk/subscr_single.txt b/inc/lang/sk/subscr_single.txt new file mode 100644 index 000000000..3abbc40b8 --- /dev/null +++ b/inc/lang/sk/subscr_single.txt @@ -0,0 +1,23 @@ +Dobrý deň! + +Stránka @PAGE@ wiki @TITLE@ bola zmenená. +Zoznam zmien: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dátum : @DATE@ +Používateľ : @USER@ +Komentár: @SUMMARY@ +Stará verzia: @OLDPAGE@ +Nová verzia: @NEWPAGE@ + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sk/uploadmail.txt b/inc/lang/sk/uploadmail.txt index 871fcaeb2..18293799f 100644 --- a/inc/lang/sk/uploadmail.txt +++ b/inc/lang/sk/uploadmail.txt @@ -10,5 +10,5 @@ MIME Typ : @MIME@ Užívateľ : @USER@ -- -Tento mail vygenerovalo DokuWiki na +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sk/wordblock.txt b/inc/lang/sk/wordblock.txt deleted file mode 100644 index 4901b2aab..000000000 --- a/inc/lang/sk/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM nebol povolený ====== - -Vaše zmeny **neboli uložené**, pretože obsahujú jedno alebo viacej nepovolených slov. Wiki si nepotrpí na spam! Pokiaľ sa domnievate, že ide o omyl, kontaktujte správcu. diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index bbffcfbb1..9d94bab49 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -78,7 +78,7 @@ $lang['txt_overwrt'] = 'Prepiši obstoječo datoteko'; $lang['lockedby'] = 'Trenutno zaklenjeno od'; $lang['lockexpire'] = 'Zaklep preteče'; $lang['willexpire'] = 'Vaš zaklep za urejevanje bo pretekel čez eno minuto.\nDa se izognete konfliktom, uporabite predogled, da se merilnik časa za zaklep ponastavi.'; -$lang['notsavedyet'] = 'Obstajajo neshranjene spremembe, ki bodo izgubljene.\nRes želite nadaljevati?'; +$lang['js']['notsavedyet'] = "Obstajajo neshranjene spremembe, ki bodo izgubljene.\nRes želite nadaljevati?"; $lang['rssfailed'] = 'Prišlo je do napake pri prenašanju tega dovoda: '; $lang['nothingfound'] = 'Nič ni bilo najdeno.'; $lang['mediaselect'] = 'Mediafile Izbira'; diff --git a/inc/lang/sl/wordblock.txt b/inc/lang/sl/wordblock.txt deleted file mode 100644 index c9d9c1ca0..000000000 --- a/inc/lang/sl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Blokiran SPAM ====== - -Vaše spremembe **niso** bile shranjene, ker so vsebovale eno ali več prepovedanih besed. Če ste poskusili nasmetiti Wiki -- Fuj Fido! Če mislite da je to napaka, stopite v stik z administratorjem. - diff --git a/inc/lang/sq/admin.txt b/inc/lang/sq/admin.txt new file mode 100644 index 000000000..6edbf8a19 --- /dev/null +++ b/inc/lang/sq/admin.txt @@ -0,0 +1,3 @@ +====== Administrimi ====== + +Poshtë është një listë e punëve administrative të disponueshme në DokuWiki.
\ No newline at end of file diff --git a/inc/lang/sq/adminplugins.txt b/inc/lang/sq/adminplugins.txt new file mode 100644 index 000000000..f87626c8e --- /dev/null +++ b/inc/lang/sq/adminplugins.txt @@ -0,0 +1 @@ +===== Plugin-e Shtesë =====
\ No newline at end of file diff --git a/inc/lang/sq/backlinks.txt b/inc/lang/sq/backlinks.txt new file mode 100644 index 000000000..b25df00be --- /dev/null +++ b/inc/lang/sq/backlinks.txt @@ -0,0 +1,3 @@ +====== Linke të kthyeshëm ====== + +Kjo është një listë e faqeve që duket se lidhen mbrapsht te kjo faqe aktuale.
\ No newline at end of file diff --git a/inc/lang/sq/conflict.txt b/inc/lang/sq/conflict.txt new file mode 100644 index 000000000..9c6cc940d --- /dev/null +++ b/inc/lang/sq/conflict.txt @@ -0,0 +1,5 @@ +====== Ekziston një version më i ri ====== + +Ekziston një version më i ri i dokumentit që ju redaktuat. Kjo ndodh kur një përdorues tjetër e ndryshoi dokumentin ndërkohë që ju po e redaktonit atë. + +Gjeni ndryshimet e treguara më poshtë dhe pastaj vendosni se kë version doni të mbani. Nëse zgjidhni "ruaj", versioni juaj do të ruhet. Klikon "fshi" për të mbajtur versioni aktual.
\ No newline at end of file diff --git a/inc/lang/sq/denied.txt b/inc/lang/sq/denied.txt new file mode 100644 index 000000000..03e10527f --- /dev/null +++ b/inc/lang/sq/denied.txt @@ -0,0 +1,3 @@ +====== Leja Refuzohet ====== + +Na vjen keq, ju nuk keni të drejta të mjaftueshme për të vazhduar. Mbase harruat të hyni?
\ No newline at end of file diff --git a/inc/lang/sq/diff.txt b/inc/lang/sq/diff.txt new file mode 100644 index 000000000..ab03a283f --- /dev/null +++ b/inc/lang/sq/diff.txt @@ -0,0 +1,3 @@ +====== Ndryshimet ====== + +Kjo tregon ndryshimet midis dy versioneve të faqes.
\ No newline at end of file diff --git a/inc/lang/sq/draft.txt b/inc/lang/sq/draft.txt new file mode 100644 index 000000000..80634a780 --- /dev/null +++ b/inc/lang/sq/draft.txt @@ -0,0 +1,5 @@ +====== Skedari skicë u gjend ====== + +Sesioni juaj i fundit i redaktimit në këtë faqe nuk përfundoi me sukses. DokuWiki ruajti automatikisht një skicë gjatë punës tuaj të cilën mund ta përdorni tani për të vazhduar redaktimin tuaj. Më poshtë mund të shihni të dhënat që janë ruajtur nga sesioni juaj i fundit. + +Ju lutem vendosni nëse doni të //rekuperoni// sesionin tuaj të humbur të redaktimit, //fshini// skicën e ruajtur automatikisht ose //dilni// nga proçesi i redaktimit.
\ No newline at end of file diff --git a/inc/lang/sq/edit.txt b/inc/lang/sq/edit.txt new file mode 100644 index 000000000..1f038ead7 --- /dev/null +++ b/inc/lang/sq/edit.txt @@ -0,0 +1 @@ +Redaktoni faqen dhe shtypni "Ruaj". Shikoni [[wiki:syntax]] për sintaksën e Wiki-t. Nëse doni të provoni disa gjëra, mësoni të hidhni hapat e parë në [[playground:playground|playground]].
\ No newline at end of file diff --git a/inc/lang/sq/editrev.txt b/inc/lang/sq/editrev.txt new file mode 100644 index 000000000..08792eafb --- /dev/null +++ b/inc/lang/sq/editrev.txt @@ -0,0 +1,2 @@ +**Keni ngarkuar një rishikim të vjetër të dokumentit!** Nëse e ruani, do të krijoni një version të ri me këto të dhëna. +----
\ No newline at end of file diff --git a/inc/lang/sq/index.txt b/inc/lang/sq/index.txt new file mode 100644 index 000000000..6daef1c30 --- /dev/null +++ b/inc/lang/sq/index.txt @@ -0,0 +1,3 @@ +====== Index ====== + +Ky është një index mbi të gjitha faqet e disponueshme të renditura sipas [[doku>namespaces|namespaces]].
\ No newline at end of file diff --git a/inc/lang/sq/install.html b/inc/lang/sq/install.html new file mode 100644 index 000000000..f9f69f473 --- /dev/null +++ b/inc/lang/sq/install.html @@ -0,0 +1,8 @@ +<p>Kjo faqe ndihmon në instalimin dhe konfigurimin për herë të parë të <a href="http://dokuwiki.org">Dokuwiki-t</a>. Më shumë informacion mbi këtë installer gjendet në <a href="http://dokuwiki.org/installer">faqen e tij të dokumentimit</a>.</p> + +<p>Dokuwiki përdor skedarë të zakonshëm për ruajtjen e faqeve wiki dhe informacioneve të tjera të lidhura me ato faqe (psh imazhe, indekse kërkimi, rishikime të vjetra etj). Në mënyrë që të funksionojë me sukses DokuWiki <strong>duhet</strong> të ketë akses shkrimi mbi direktoritë që mbajnë këto skedarë. Ky installer nuk është në gjendje të vendosë leje mbi direktoritë. Kjo normalisht duhet bërë drejtpërdrejt nga një command shell ose nëse jeni duke përdorur hostimin, nëpërmjet FTP ose panelit të kontrollit të hostit (psh cPanel).</p> + +<p>Ky installer do të instalojë konfigurimin e DokuWiki-t tuaj +për <acronym title="access control list">ACL</acronym>, që në këmbim lejon hyrje si administrator dhe akses të menusë së administrimit të DokuWiki-t për të instaluar plugin-e, menaxhuar përdoruesit, menaxhuar akses në faqet wiki dhe ndryshim të konfigurimeve. Nuk është e domosdoshme për DokuWiki-n të funksionojë, megjithatë do ta bëjë DokuWiki-n më të lehtë për tu administruar.</p> + +<p>Përduruesit me përvojë ose përdoruesit me kërkesa speciale për instalim duhet të përdorin këto linke për detaje mbi <a href="http://dokuwiki.org/install">instruksionet e instalimit</a> dhe <a href="http://dokuwiki.org/config">konfigurimeve</a>.</p>
\ No newline at end of file diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php new file mode 100644 index 000000000..0213ba28b --- /dev/null +++ b/inc/lang/sq/lang.php @@ -0,0 +1,258 @@ +<?php +/** + * sq language file + * + * This file was initially built by fetching translations from other + * Wiki projects. See the @url lines below. Additional translations + * and fixes where done for DokuWiki by the people mentioned in the + * lines starting with @author + * + * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesSq.php?view=co + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; +$lang['singlequoteopening'] = '\''; +$lang['singlequoteclosing'] = '\''; +$lang['apostrophe'] = '\''; +$lang['btn_edit'] = 'Redaktoni këtë faqe'; +$lang['btn_source'] = 'Trego kodin burim të faqes'; +$lang['btn_show'] = 'Trego faqen'; +$lang['btn_create'] = 'Krijo këtë faqe'; +$lang['btn_search'] = 'Kërko'; +$lang['btn_save'] = 'Ruaj'; +$lang['btn_preview'] = 'Shikim paraprak'; +$lang['btn_top'] = 'Kthehu ne krye'; +$lang['btn_newer'] = '<< më të hershme'; +$lang['btn_older'] = 'më të vonshme'; +$lang['btn_revs'] = 'Shqyrtime të vjetra'; +$lang['btn_recent'] = 'Ndryshime së fundmi'; +$lang['btn_upload'] = 'Ngarko'; +$lang['btn_cancel'] = 'Harroji'; +$lang['btn_index'] = 'Kreu'; +$lang['btn_secedit'] = 'Redaktoni'; +$lang['btn_login'] = 'Hyrje'; +$lang['btn_logout'] = 'Dalje'; +$lang['btn_admin'] = 'Admin'; +$lang['btn_update'] = 'Përditëso'; +$lang['btn_delete'] = 'Fshi'; +$lang['btn_back'] = 'Mbrapa'; +$lang['btn_backlink'] = 'Lidhjet këtu'; +$lang['btn_backtomedia'] = 'Mbrapa tek Përzgjedhja e Media-ve'; +$lang['btn_subscribe'] = 'Menaxho Abonimet'; +$lang['btn_profile'] = 'Përditëso Profilin'; +$lang['btn_reset'] = 'Rivendos'; +$lang['btn_resendpwd'] = 'Dërgo fjalëkalim të ri'; +$lang['btn_draft'] = 'Redakto skicën'; +$lang['btn_recover'] = 'Rekupero skicën'; +$lang['btn_draftdel'] = 'Fshi skicën'; +$lang['btn_revert'] = 'Kthe si më parë'; +$lang['loggedinas'] = 'Regjistruar si '; +$lang['user'] = 'Nofka e përdoruesit:'; +$lang['pass'] = 'Fjalëkalimi'; +$lang['newpass'] = 'Fjalëkalim i ri'; +$lang['oldpass'] = 'Konfirmo fjalëkalimin aktual'; +$lang['passchk'] = 'Edhe një herë'; +$lang['remember'] = 'Më mbaj mend'; +$lang['fullname'] = 'Emri i vërtetë'; +$lang['email'] = 'Adresa e email-it*'; +$lang['register'] = 'Regjsitrohuni'; +$lang['profile'] = 'Profili i përdoruesit'; +$lang['badlogin'] = 'Na vjen keq, emri ose fjalëkalimi është gabim.'; +$lang['minoredit'] = 'Ndryshime të Vogla'; +$lang['draftdate'] = 'Skica u ruajt automatikisht në'; +$lang['nosecedit'] = 'Faqja u ndryshua ndëwrkohë, informacioni i kwtij seksioni ishte i vjetër, u ngarkua faqja e tërë në vend të saj.'; +$lang['regmissing'] = 'Na vjen keq, duhet të plotësoni të gjitha fushat.'; +$lang['reguexists'] = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.'; +$lang['regsuccess'] = 'Përdoruesi u regjistrua dhe fjalëkalimi u dërgua me email.'; +$lang['regsuccess2'] = 'Llogarija e Përdoruesit u krijua'; +$lang['regmailfail'] = 'Duket se ka ndodhur një gabim gjatë dërgimit të fjalëkalimit me e-mail. Ju lutemi kontaktoni administratorin!'; +$lang['regbadmail'] = 'Adresa email e dhënë nuk mund të pranohet sepse nuk duket e rregullt. Ju lutem fusni një adresë të rregullt ose boshatisni kutinë e shtypit.'; +$lang['regbadpass'] = 'Dy fjalëkalimet e dhëna nuk janë njësoj, ju lutemi provoni përsëri.'; +$lang['regpwmail'] = 'Fjalëkalimi juaj i DokuWiki-it.'; +$lang['reghere'] = 'Ende nuk keni llogari? Hap një'; +$lang['profna'] = 'Ky wiki nuk e lejon ndryshimin e profilit.'; +$lang['profnochange'] = 'Asnjë ndryshim, asgjë për të bërë.'; +$lang['profnoempty'] = 'Një emër bosh ose adresë email-i bosh nuk lejohet.'; +$lang['profchanged'] = 'Profili i përdoruesit u përditësua me sukses.'; +$lang['pwdforget'] = 'E harruat fjalëkalimin? Merni një të ri'; +$lang['resendna'] = 'Ky wiki nuk e lejon ridërgimin e fjalëkalimeve.'; +$lang['resendpwd'] = 'Dërgo një fjalëkalim të ri për'; +$lang['resendpwdmissing'] = 'Na vjen keq, duhet t\'i plotësoni të gjitha fushat.'; +$lang['resendpwdnouser'] = 'Na vjen keq, nuk mund ta gjejmë këtë përdorues në bazën tonë të të dhënave.'; +$lang['resendpwdbadauth'] = 'Na vjen keq, ky kod autorizimi nuk është i vlefshëm. Sigurohuni që përdoret linkun e plotë të konfirmimit.'; +$lang['resendpwdconfirm'] = 'U dërgua një link konfirmimi nëpërmjet eMail-it.'; +$lang['resendpwdsuccess'] = 'Fjalëkalimi juaj i ri u dërgua nëpërmjet eMail-it.'; +$lang['license'] = 'Përveç rasteve të përcaktuara, përmbajtja në këtë wiki është e liçnsuar nën liçensën e mëposhtme:'; +$lang['licenseok'] = 'Shënim: Duke redaktuar këtë faqe ju bini dakort të liçensoni përmbajtjen tuaj nën liçensën e mëposhtme:'; +$lang['searchmedia'] = 'Kërko emrin e skedarit:'; +$lang['searchmedia_in'] = 'Kërko në %s'; +$lang['txt_upload'] = 'Zgjidh skedarin për ngarkim'; +$lang['txt_filename'] = 'Ngarko si (alternative)'; +$lang['txt_overwrt'] = 'Zëvendëso skedarin ekzistues'; +$lang['lockedby'] = 'Kyçur momentalisht nga'; +$lang['lockexpire'] = 'Kyçi skadon në'; +$lang['willexpire'] = 'Kyçi juaj për redaktimin e kësaj faqeje është duke skaduar.\nPër të shmangur konflikte përdorni butonin Shiko Paraprakisht për të rivendosur kohën e kyçjes.'; +$lang['js']['notsavedyet'] = "Ndryshimet e paruajtura do të humbasin.\nVazhdo me të vërtetë?"; +$lang['rssfailed'] = 'Ndoshi një gabim gjatë kapjes së këtij lajmi:'; +$lang['nothingfound'] = 'Nuk u gjet asgjë.'; +$lang['mediaselect'] = 'Skedarët e Medias'; +$lang['fileupload'] = 'Ngarkoje'; +$lang['uploadsucc'] = 'Ngarkim i suksesshëm'; +$lang['uploadfail'] = 'Ngarkimi dështoi. Ndoshta leje të gabuara?'; +$lang['uploadwrong'] = 'Ngarkimi u refuzua! Prapashtesa e skedarit është e ndaluar!'; +$lang['uploadexist'] = 'Skedari ekziston. Nuk u bë asgjë.'; +$lang['uploadbadcontent'] = 'Përmbajtja e ngarkimit nuk përkoi me prapshtesën e skedarit %s'; +$lang['uploadspam'] = 'Ngarkimi u bllokua nga lista e zezë e spam-eve.'; +$lang['uploadxss'] = 'Ngarkimi u bllokua për dyshim përmbajtjeje jo të sigurt.'; +$lang['uploadsize'] = 'Skedari i ngarkuar ishte tepër i madh. (maksimumi %s)'; +$lang['deletesucc'] = 'Skedari "%s" u fshi.'; +$lang['deletefail'] = '"%s" nuk mundi të fshihej. Kontrollo lejet.'; +$lang['mediainuse'] = 'Skedari "%s" nuk u fshi - është ende në përdorim.'; +$lang['namespaces'] = 'Hapësirat e Emrave'; +$lang['mediafiles'] = 'Skedarët e disponueshëm në'; +$lang['js']['searchmedia'] = 'Kërko për skedarë'; +$lang['js']['keepopen'] = 'Mbaje dritaren të hapur gjatë përzgjedhjes'; +$lang['js']['hidedetails'] = 'Fshih Detajet'; +$lang['js']['nosmblinks'] = 'Lidhja te Windows shares funksionon vetëm në Microsoft Internet Explorer. Ju prapë mund ta kopjoni dhe ngjitni linkun.'; +$lang['js']['linkwiz'] = 'Magjistari i Link'; +$lang['js']['linkto'] = 'Lidh tek:'; +$lang['js']['del_confirm'] = 'Fshiji vërtetë objektet e përzgjedhura?'; +$lang['js']['mu_btn'] = 'Ngarko shumë skedarë njëkohësisht'; +$lang['mediausage'] = 'Përdor sintaksën e mëposhtme për të referuar këtë skedar:'; +$lang['mediaview'] = 'Shiko skedarin origjinal'; +$lang['mediaroot'] = 'rrënja'; +$lang['mediaupload'] = 'Ngarko një skedar tek hapësira e emrit aktuale këtu. Për të krijuaj nënhapësira emri, bashkangjiti ato pas emrit të skedarit "Ngarko Si" duke e ndarë me dy pika (:).'; +$lang['mediaextchange'] = 'Prapashtesa e skedarit u ndërrua nga .%s në .%s!'; +$lang['reference'] = 'Referenca për:'; +$lang['ref_inuse'] = 'Skedari nuk mund të fshihet, sepse është duke u përdorur ende nga faqet e mëposhtme:'; +$lang['ref_hidden'] = 'Disa referenca janë në faqe të cilat ju nuk keni leje t\'i lexoni.'; +$lang['hits'] = 'Pamje'; +$lang['quickhits'] = 'Emrat e faqeve që përkojnë'; +$lang['toc'] = 'Tabela e Përmbajtjeve'; +$lang['current'] = 'aktuale'; +$lang['yours'] = 'Versioni Juaj'; +$lang['diff'] = 'Trego ndryshimet nga rishikimet aktuale'; +$lang['diff2'] = 'Trego ndryshimet mes rishikimeve të përzgjedhura'; +$lang['line'] = 'Vijë'; +$lang['breadcrumb'] = 'Gjurmë'; +$lang['youarehere'] = 'Ju jeni këtu'; +$lang['lastmod'] = 'Redaktuar për herë të fundit'; +$lang['by'] = 'nga'; +$lang['deleted'] = 'u fshi'; +$lang['created'] = 'u krijua'; +$lang['restored'] = 'Kthehu tek një version i vjetër'; +$lang['external_edit'] = 'redaktim i jashtëm'; +$lang['summary'] = 'Përmbledhja redaktimit'; +$lang['noflash'] = 'Nevojitet <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> për të paraqitur këtë përmbajtje.'; +$lang['download'] = 'Shkarko Copën'; +$lang['mail_newpage'] = 'faqje u shtua:'; +$lang['mail_changed'] = 'faqja u ndryshua:'; +$lang['mail_subscribe_list'] = 'faqet u ndryshuan në hapësirën e emrave:'; +$lang['mail_new_user'] = 'përdorues i ri:'; +$lang['mail_upload'] = 'skedari u ngarkua:'; +$lang['qb_bold'] = 'Tekst i Theksuar'; +$lang['qb_italic'] = 'Tekst i Pjerrët'; +$lang['qb_underl'] = 'Tekst i Nënvijëzuar'; +$lang['qb_code'] = 'Tekst Kodi'; +$lang['qb_strike'] = 'Tekst me Vijë Mespërmes'; +$lang['qb_h1'] = 'Titull me Nivel 1'; +$lang['qb_h2'] = 'Titull me Nivel 2'; +$lang['qb_h3'] = 'Titull me Nivel 3'; +$lang['qb_h4'] = 'Titull me Nivel 4'; +$lang['qb_h5'] = 'Titull me Nivel 5'; +$lang['qb_h'] = 'Titull'; +$lang['qb_hs'] = 'Përzgjidh Titull'; +$lang['qb_hplus'] = 'Titull Më i Lartë'; +$lang['qb_hminus'] = 'Titull Më i Ulët'; +$lang['qb_hequal'] = 'Titull i të Njëjtit Nivel'; +$lang['qb_link'] = 'Lidhje e Brendshme'; +$lang['qb_extlink'] = 'Lidhje e Jashtme '; +$lang['qb_hr'] = 'Vijë Horizontale'; +$lang['qb_ol'] = 'Listë Objektesh të Renditur'; +$lang['qb_ul'] = 'Listë Objektesh të Parenditura'; +$lang['qb_media'] = 'Shto imazhe dhe skedarë të tjerë'; +$lang['qb_sig'] = 'Fut Firmën'; +$lang['qb_smileys'] = 'Smileys'; +$lang['qb_chars'] = 'Karaktere Speciale'; +$lang['upperns'] = 'kërce tek hapësira e emrit prind'; +$lang['admin_register'] = 'Shto Përdorues të Ri'; +$lang['metaedit'] = 'Redakto Metadata'; +$lang['metasaveerr'] = 'Shkrimi i metadata-ve dështoi'; +$lang['metasaveok'] = 'Metadata u ruajt'; +$lang['img_backto'] = 'Mbrapa te'; +$lang['img_title'] = 'Titulli '; +$lang['img_caption'] = 'Titra'; +$lang['img_date'] = 'Data'; +$lang['img_fname'] = 'Emri Skedarit'; +$lang['img_fsize'] = 'Madhësia'; +$lang['img_artist'] = 'Autor'; +$lang['img_copyr'] = 'Mbajtësi i të drejtave të autorit'; +$lang['img_format'] = 'Formati'; +$lang['img_camera'] = 'Kamera'; +$lang['img_keywords'] = 'Fjalë Kyçe'; +$lang['subscr_subscribe_success'] = 'Iu shtua %s listës së abonimeve për %s'; +$lang['subscr_subscribe_error'] = 'Gabim gjatë shtimit të %s listës së abonimeve për %s'; +$lang['subscr_subscribe_noaddress'] = 'Nuk ekziston asnjë adresë e lidhur me regjistrimin tuaj, ju nuk mund t\'i shtoheni listës së abonimeve.'; +$lang['subscr_unsubscribe_success'] = 'U hoq %s nga lista e abonimeve për %s'; +$lang['subscr_unsubscribe_error'] = 'Gabim në heqjen e %s nga lista e abonimeve për %s'; +$lang['subscr_already_subscribed'] = '%s është abonuar njëherë te %s'; +$lang['subscr_not_subscribed'] = '%s nuk është abonuar te %s'; +$lang['subscr_m_not_subscribed'] = 'Momentalisht ju nuk jeni i abonuar në faqen aktuale apo hapësirën e emrit aktual.'; +$lang['subscr_m_new_header'] = 'Shto abonim'; +$lang['subscr_m_current_header'] = 'Abonimet aktuale'; +$lang['subscr_m_unsubscribe'] = 'Fshi Abonimin'; +$lang['subscr_m_subscribe'] = 'Abonohu'; +$lang['subscr_m_receive'] = 'Mer'; +$lang['subscr_style_every'] = 'email mbi çdo ndryshim'; +$lang['subscr_style_digest'] = 'pasqyro email-e ndryshimi pér çdo faqe'; +$lang['subscr_style_list'] = 'listë e faqeve të ndryshuara që nga emaili i fundit'; +$lang['authmodfailed'] = 'Konfigurim i gabuar i autentikimit të përdoruesit. Ju lutem informoni Administratorin tuaj të Wiki-it.'; +$lang['authtempfail'] = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.'; +$lang['i_chooselang'] = 'Zgjidhni gjuhën tuaj'; +$lang['i_installer'] = 'Installer-i DokuWiki'; +$lang['i_wikiname'] = 'Emri Wiki-it'; +$lang['i_enableacl'] = 'Aktivizo ACL (rekomanduar)'; +$lang['i_superuser'] = 'Superpërdorues'; +$lang['i_problems'] = 'Installer-i gjeti disa probleme, të shfaqura më poshtë. Nuk mund të vazhdoni derisa t\'i keni rregulluar.'; +$lang['i_modified'] = 'Për arsye sigurie ky skript do të punojë vetëm me një instalim të ri dhe të pamodifikuar DokuWiki. +Ose duhet të ekstraktoni skedarët nga e para nga pakoja e shkarkimit ose konsultohuni me <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; +$lang['i_funcna'] = 'Funksioni PHP <code>%s</code> nuk është i disponueshëm. Mbase siguruesi juaj i host-it e ka çaktivizuar për ndonjë arsye?'; +$lang['i_phpver'] = 'Versioni juaj i PHP <code>%s</code> është më i vogël se ai i duhuri <code>%s</code>. Duhet të përditësoni instalimin tuaj të PHP-së.'; +$lang['i_permfail'] = '<code>%s</code> nuk është e shkruajtshme nga DokuWiki. Duhet të rregulloni lejet e përdorimit për këtë direktori.'; +$lang['i_confexists'] = '<code>%s</code> ekziston njëherë'; +$lang['i_writeerr'] = '<code>%s</code> nuk mundi të krijohej. Duhet të kontrolloni lejet e dirkektorisë/skedarit dhe ta krijoni skedarin manualisht.'; +$lang['i_badhash'] = 'dokuwiki.php e panjohur ose e ndryshuar (hash=code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - vlerë e palejuar ose boshe'; +$lang['i_success'] = 'Konfigurimi u mbarua me sukses. Tani mund ta fshini skedarin install.php. Vazhdoni tek <a href="doku.php">DokuWiki juaj i ri.</a>.'; +$lang['i_failure'] = 'Ndodhën disa gabime gjatë shkrimit të skedarit të konfigurimit. Do t\'ju duhet t\'i rregulloni manualisht para se të përdorni <a href="doku.php">DokuWiki-in tuaj të ri.</a>.'; +$lang['i_policy'] = 'Veprimi fillestar ACL'; +$lang['i_pol0'] = 'Wiki i Hapur (lexim, shkrim, ngarkim për këdo)'; +$lang['i_pol1'] = 'Wiki Publike (lexim për këdo, shkrim dhe ngarkim për përdoruesit e regjistruar)'; +$lang['i_pol2'] = 'Wiki e Mbyllur (lexim, shkrim, ngarkim vetëm për përdoruesit e regjistruar)'; +$lang['i_retry'] = 'Provo Përsëri'; +$lang['mu_intro'] = 'Këtu mund të ngarkoni disa skedarë njëkohësisht. Klikoni butonin e shfletuesit për t\'i shtuar ata në radhë. Klikoni Ngarko kur të keni mbaruar.'; +$lang['mu_gridname'] = 'Emri Skedari'; +$lang['mu_gridsize'] = 'Madhësia'; +$lang['mu_gridstat'] = 'Statusi'; +$lang['mu_namespace'] = 'Hapësira Emrit'; +$lang['mu_browse'] = 'Shfleto'; +$lang['mu_toobig'] = 'shumë i/e madhe'; +$lang['mu_ready'] = 'gati për ngarkim'; +$lang['mu_done'] = 'përfundoi'; +$lang['mu_fail'] = 'dështoi'; +$lang['mu_authfail'] = 'sesioni skadoi'; +$lang['mu_progress'] = '@PCT@% u ngarkua'; +$lang['mu_filetypes'] = 'Tipet e Skedarëve të Lejuar'; +$lang['mu_info'] = 'skedarët e ngarkuar'; +$lang['mu_lasterr'] = 'Gabimi i fundit:'; +$lang['recent_global'] = 'Momentalisht jeni duke parë ndryshimet brenda hapësirës së emrit <b>%s</b>. Gjithashtu mund <a href="%s">të shihni ndryshimet më të fundit në të gjithë wiki-n</a>.'; +$lang['years'] = '%d vite më parë'; +$lang['months'] = '%d muaj më parë'; +$lang['weeks'] = '%d javë më parë'; +$lang['days'] = '%d ditë më parë'; +$lang['hours'] = '%d orë më parë'; +$lang['minutes'] = '%d minuta më parë'; +$lang['seconds'] = '%d sekonda më parë'; diff --git a/inc/lang/sq/locked.txt b/inc/lang/sq/locked.txt new file mode 100644 index 000000000..8c86c8be0 --- /dev/null +++ b/inc/lang/sq/locked.txt @@ -0,0 +1,3 @@ +====== Faqe e kyçur ====== + +Kjo faqe është përkohësisht e kyçur për redaktim nga një përdorues tjetër. Duhet të prisni derisa ky përdorues të mbarojë redaktimin ose çelësi të skadojë.
\ No newline at end of file diff --git a/inc/lang/sq/login.txt b/inc/lang/sq/login.txt new file mode 100644 index 000000000..843e47652 --- /dev/null +++ b/inc/lang/sq/login.txt @@ -0,0 +1,3 @@ +====== Hyrje ====== + +Momentalisht nuk jeni të futur në Wiki! Futni informacionet tuaja të autentikimit më poshtë për të hyrë. Duhet t'i keni cookies të aktivizuara për të hyrë.
\ No newline at end of file diff --git a/inc/lang/sq/mailtext.txt b/inc/lang/sq/mailtext.txt new file mode 100644 index 000000000..0746ca42c --- /dev/null +++ b/inc/lang/sq/mailtext.txt @@ -0,0 +1,16 @@ +Një faqe në DokuWiki-n tuaj u shtua ose u ndryshua. Këto janë detajet: + +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ +Përmbledhja redaktimit: @SUMMARY@ +Përdoruesi: @USER@ + +@DIFF@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/newpage.txt b/inc/lang/sq/newpage.txt new file mode 100644 index 000000000..1db750d00 --- /dev/null +++ b/inc/lang/sq/newpage.txt @@ -0,0 +1,3 @@ +====== Kjo temë nuk ekziston ende ====== + +Keni ndjekur një link për në një temë që nuk ekziston ende. Nëse ua lejojnë të drejtat, mund ta krijoni duke klikuar butonin "Krijo këtë faqe".
\ No newline at end of file diff --git a/inc/lang/sq/norev.txt b/inc/lang/sq/norev.txt new file mode 100644 index 000000000..0e73223a9 --- /dev/null +++ b/inc/lang/sq/norev.txt @@ -0,0 +1,3 @@ +====== Nuk ekzistion një rishikim i tillë ====== + +Rishikimi i specifikuar nuk ekziston. Përdor buttonin "Rishikime të vjetra" për një listë të rishikimeve të vjetra të këtij dokumenti.
\ No newline at end of file diff --git a/inc/lang/sq/password.txt b/inc/lang/sq/password.txt new file mode 100644 index 000000000..1c8a8694a --- /dev/null +++ b/inc/lang/sq/password.txt @@ -0,0 +1,10 @@ +Përshëndetje @FULLNAME@! + +Këtu janë të dhënat e përdoruesit për @TITLE@ në @DOKUWIKIURL@ + +Hyrje: @LOGIN@ +Fjalëkalimi: @PASSWORD@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/preview.txt b/inc/lang/sq/preview.txt new file mode 100644 index 000000000..07148b842 --- /dev/null +++ b/inc/lang/sq/preview.txt @@ -0,0 +1,3 @@ +====== Shikim Paraprak ====== + +Ky është një shikim paraprak i tekstit tuaj. Kujtohuni: **Nuk** është ruajtur ende!
\ No newline at end of file diff --git a/inc/lang/sq/pwconfirm.txt b/inc/lang/sq/pwconfirm.txt new file mode 100644 index 000000000..44d6c2dfe --- /dev/null +++ b/inc/lang/sq/pwconfirm.txt @@ -0,0 +1,13 @@ +Përshëndetje @FULLNAME@! + +Dikush kërkoi një fjalëkalim të ri për hyrjen tuaj @TITLE@ në @DOKUWIKIURL@ + +Nëse nuk kërkuat një fjalëkalim të ri atëherë thjesht injorojeni këtë email. + +Për të konfirmuar që kërkesa u dërgua me të vërtetë nga ju, ju lutemi përdorni link-un e mëposhtëm. + +@CONFIRM@ + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/read.txt b/inc/lang/sq/read.txt new file mode 100644 index 000000000..cbb028048 --- /dev/null +++ b/inc/lang/sq/read.txt @@ -0,0 +1 @@ +Kjo faqe është vetëm për lexim. Mund të shihni kodin burim, por nuk mund ta ndryshoni atë. Kontaktoni administratorin nëse mendoni se kjo është e gabuar.
\ No newline at end of file diff --git a/inc/lang/sq/recent.txt b/inc/lang/sq/recent.txt new file mode 100644 index 000000000..4b3bdf48d --- /dev/null +++ b/inc/lang/sq/recent.txt @@ -0,0 +1,3 @@ +====== Ndryshimet e kohëve të fundit ====== + +Faqet e mëposhtme janë ndryshuar së fundmi.
\ No newline at end of file diff --git a/inc/lang/sq/register.txt b/inc/lang/sq/register.txt new file mode 100644 index 000000000..d4a3ca36b --- /dev/null +++ b/inc/lang/sq/register.txt @@ -0,0 +1,3 @@ +====== Regjistrohuni si një përdorues i ri ====== + +Plotësoni të gjitha informacionet e mëposhtme për të krijuar një llogari në këtë wiki. Sigorohuni që të jepni një **adresë email-i të vlefshme**. Nëse nuk ju kërkohet të futni një fjalëkalim këtu, një fjalëkalim i ri do t'ju dërgohet në adresën e email-it që specifikuat. Emri i hyrjes duhet të një [[doku>pagename|pagename]] e vlefshme.
\ No newline at end of file diff --git a/inc/lang/sq/registermail.txt b/inc/lang/sq/registermail.txt new file mode 100644 index 000000000..ef90e455e --- /dev/null +++ b/inc/lang/sq/registermail.txt @@ -0,0 +1,14 @@ +Një përdorues i ri u regjistrua. Këto janë detajet: + +Emri përdoruesit: @NEWUSER@ +Emri i plotë i përdoruesit: @NEWNAME@ +E-mail: @NEWEMAIL@ + +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/resendpwd.txt b/inc/lang/sq/resendpwd.txt new file mode 100644 index 000000000..79d0b3e8e --- /dev/null +++ b/inc/lang/sq/resendpwd.txt @@ -0,0 +1,3 @@ +====== Dërgo fjalëkalim të ri ====== + +Ju lutemi futni emrin tuaj të përdorimit në formën e mëposhtme për të kërkuar një fjalëkalim të ri për llogarinë tuaj në këtë wiki. Një link konfirmimi do të dërgohet në adresën tuaj të eMail-it.
\ No newline at end of file diff --git a/inc/lang/sq/revisions.txt b/inc/lang/sq/revisions.txt new file mode 100644 index 000000000..349631ffb --- /dev/null +++ b/inc/lang/sq/revisions.txt @@ -0,0 +1,3 @@ +====== Rishikime të vjetra ====== + +Këto janë rishikimet e vjetra të dokumentit aktual. Për t'u kthyer në një rishikim të vjetër, zgjidhni nga këtu poshtë, klikoni "Redaktoni këtë faqe" dhe ruajeni atë. diff --git a/inc/lang/sq/searchpage.txt b/inc/lang/sq/searchpage.txt new file mode 100644 index 000000000..2f34cabb9 --- /dev/null +++ b/inc/lang/sq/searchpage.txt @@ -0,0 +1,5 @@ +====== Kërko ====== + +Mund të gjeni rezultatet e kërkimit tuaj më poshtë. Nëse nuk e gjetët atë që po kërkonit, mund të krijoni ose redaktoni një faqe pas pyetjes suaj me butonin përkatës. + +===== Rezultate =====
\ No newline at end of file diff --git a/inc/lang/sq/showrev.txt b/inc/lang/sq/showrev.txt new file mode 100644 index 000000000..9c1f761dc --- /dev/null +++ b/inc/lang/sq/showrev.txt @@ -0,0 +1,2 @@ +**Ky është një rishikim i vjetër i dokumentit!** +----
\ No newline at end of file diff --git a/inc/lang/sq/stopwords.txt b/inc/lang/sq/stopwords.txt new file mode 100644 index 000000000..e35669410 --- /dev/null +++ b/inc/lang/sq/stopwords.txt @@ -0,0 +1,39 @@ +# Kjo është një listë e fjalëve që indexer-i injoron, një fjalë për rresht +# Kur të redaktoni këtë faqe sigurohuni që të përdorni fund-rreshtash UNIX (rresht i ri i vetëm) +# Nuk është nevoja të përfshini fjalë më të shkurtra se tre karaktere - këtë injorohen gjithsesi +# Kjo listë bazohet mbi ato që gjenden në http://www.ranks.nl/stopwords/ +about +are +as +an +and +you +your +them +their +com +for +from +into +if +in +is +it +how +of +on +or +that +the +this +to +was +what +when +where +who +will +with +und +the +www
\ No newline at end of file diff --git a/inc/lang/sq/subscr_digest.txt b/inc/lang/sq/subscr_digest.txt new file mode 100644 index 000000000..41404cff9 --- /dev/null +++ b/inc/lang/sq/subscr_digest.txt @@ -0,0 +1,20 @@ +Përshëndetje! + +Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi. +Këtu janë ndryshimet: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ + +Për të fshirë lajmërimet e faqes, mund të hyni tek wiki në +@DOKUWIKIURL@ pastaj vizitoni +@SUBSCRIBE@ +dhe ç'regjistro faqen dhe/ose ndryshimet e hapësirës së emrit. + +-- +Ky eMail është gjeneruar nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/subscr_form.txt b/inc/lang/sq/subscr_form.txt new file mode 100644 index 000000000..7c71a4c73 --- /dev/null +++ b/inc/lang/sq/subscr_form.txt @@ -0,0 +1,3 @@ +====== Menaxhimi i Abonimeve ====== + +Kjo faqe lejon menaxhimin e abonimeve tuaja për faqen dhe hapësirën e emrit aktual.
\ No newline at end of file diff --git a/inc/lang/sq/subscr_list.txt b/inc/lang/sq/subscr_list.txt new file mode 100644 index 000000000..cb10d4223 --- /dev/null +++ b/inc/lang/sq/subscr_list.txt @@ -0,0 +1,13 @@ +Përshëndetje! + +Faqet në hapësirën e emrit @PAGE@ të wiki-t @TITLE@ ndryshuan. Këto janë faqet e ndryshuara: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Për të fshirë lajmërimet e faqes, hyni në wiki-n tek @DOKUWIKIURL@ dhe pastaj vizitoni @SUBSCRIBE@ dhe fshini ndryshimet e faqes dhe/ose të hapësirës së emrit. + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/subscr_single.txt b/inc/lang/sq/subscr_single.txt new file mode 100644 index 000000000..90520be4f --- /dev/null +++ b/inc/lang/sq/subscr_single.txt @@ -0,0 +1,23 @@ +Përshëndetje! + +Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi. +Këto janë ndryshimet: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Përdoruesi : @USER@ +Përmbledhja redaktimit: @SUMMARY@ +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ + +Për të fshirë lajmërimet e faqes, hyni në wiki tek +@DOKUWIKIURL@ dhe pastaj vizitoni +@NEWPAGE@ +dhe fshini ndryshimet e faqes dhe/ose hapësirës së emrit. + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sq/updateprofile.txt b/inc/lang/sq/updateprofile.txt new file mode 100644 index 000000000..ba76beb1f --- /dev/null +++ b/inc/lang/sq/updateprofile.txt @@ -0,0 +1,3 @@ +====== Përditësoni profilin e llogarisë tuaj ====== + +Duhet vetëm të plotësoni ato fusha që doni të ndryshoni. Mund të mos e ndryshoni emrin tuaj të përdoruesit.
\ No newline at end of file diff --git a/inc/lang/sq/uploadmail.txt b/inc/lang/sq/uploadmail.txt new file mode 100644 index 000000000..e7c62df15 --- /dev/null +++ b/inc/lang/sq/uploadmail.txt @@ -0,0 +1,14 @@ +Një skedar u ngarkua në DokuWiki-n tënd. Detajet janë: + +Skedar: @MEDIA@ +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ +Madhësia: @SIZE@ +Tipi MIME: @MIME@ +Përdoruesi: @USER@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sr/adminplugins.txt b/inc/lang/sr/adminplugins.txt new file mode 100644 index 000000000..02b1a0452 --- /dev/null +++ b/inc/lang/sr/adminplugins.txt @@ -0,0 +1 @@ +===== Остали додаци =====
\ No newline at end of file diff --git a/inc/lang/sr/draft.txt b/inc/lang/sr/draft.txt index 046c709cf..44affdd34 100644 --- a/inc/lang/sr/draft.txt +++ b/inc/lang/sr/draft.txt @@ -1 +1,5 @@ -====== Пронађена је скица датотеке ======
\ No newline at end of file +====== Пронађена је скица датотеке ====== + +Прошли пут кад сте покушали нешто да измените на овој страници ваше измене нису успешно сачуване. DokuWiki је аутоматски сачувао скицу вашег рада коју сада можете да искористите да бисте наставили са изменама. Испод можете да видите податке који су сачувани током ваше последње посете. + +Молимо вас, одаберите да ли желите да //повратите// ваше измене, //обришете// аутоматски сачувану скицу, или //поништите// цео процес измена.
\ No newline at end of file diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 94829d314..71dde4062 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -6,6 +6,7 @@ * @author Filip Brcic <brcha@users.sourceforge.net> * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,15 +40,13 @@ $lang['btn_back'] = 'Натраг'; $lang['btn_backlink'] = 'Повратне везе'; $lang['btn_backtomedia'] = 'Врати се на избор медијске датотеке'; $lang['btn_subscribe'] = 'Пријави се на измене'; -$lang['btn_unsubscribe'] = 'Одјави се са измена'; -$lang['btn_subscribens'] = 'Претплати се на промене у именском простору'; -$lang['btn_unsubscribens'] = 'Откажи претплату на промене у именском простору'; $lang['btn_profile'] = 'Ажурирај профил'; $lang['btn_reset'] = 'Поништи'; $lang['btn_resendpwd'] = 'Пошаљи нову лозинку'; $lang['btn_draft'] = 'Измени нацрт'; $lang['btn_recover'] = 'Опорави нацрт'; $lang['btn_draftdel'] = 'Обриши нацрт'; +$lang['btn_revert'] = 'Врати на пређашњу верзију'; $lang['loggedinas'] = 'Пријављен као'; $lang['user'] = 'Корисничко име'; $lang['pass'] = 'Лозинка'; @@ -86,13 +85,46 @@ $lang['resendpwdconfirm'] = 'Потврдни линк је постат к $lang['resendpwdsuccess'] = 'Ваша нова лозинка је послата као е-порука.'; $lang['license'] = 'Осим где је другачије назначено, материјал на овом викију је под следећом лиценцом:'; $lang['licenseok'] = 'Напомена: Изменом ове стране слажете се да ће ваше измене бити под следећом лиценцом:'; +$lang['searchmedia'] = 'Претражи по имену фајла'; +$lang['searchmedia_in'] = 'Претражи у %s'; $lang['txt_upload'] = 'Изаберите датотеку за слање'; $lang['txt_filename'] = 'Унесите вики-име (опционо)'; $lang['txt_overwrt'] = 'Препишите тренутни фајл'; $lang['lockedby'] = 'Тренутно закључано од стране'; $lang['lockexpire'] = 'Закључавање истиче'; $lang['willexpire'] = 'Ваше закључавање за измену ове странице ће да истекне за један минут.\nДа би сте избегли конфликте, искористите дугме за преглед како би сте ресетовали тајмер закључавања.'; -$lang['notsavedyet'] = 'Несачуване измене ће бити изгубљене.\nДа ли стварно желите да наставите?'; +$lang['js']['notsavedyet'] = 'Несачуване измене ће бити изгубљене. +Да ли стварно желите да наставите?'; +$lang['js']['searchmedia'] = 'Потражи фајлове'; +$lang['js']['keepopen'] = 'Задржи отворен прозор након одабира'; +$lang['js']['hidedetails'] = 'Сакриј детаље'; +$lang['js']['mediatitle'] = 'Подешаванја везе'; +$lang['js']['mediadisplay'] = 'Тип везе'; +$lang['js']['mediaalign'] = 'Поравнање'; +$lang['js']['mediasize'] = 'Величина слике'; +$lang['js']['mediatarget'] = 'веза води ка:'; +$lang['js']['mediaclose'] = 'Затвори'; +$lang['js']['mediainsert'] = 'Убаци'; +$lang['js']['mediadisplayimg'] = 'Покажи слику'; +$lang['js']['mediadisplaylnk'] = 'Покажи само везу'; +$lang['js']['mediasmall'] = 'Мала верзија'; +$lang['js']['mediamedium'] = 'Средња верзија'; +$lang['js']['medialarge'] = 'Велика верзија'; +$lang['js']['mediaoriginal'] = 'Оригинална верзија'; +$lang['js']['medialnk'] = 'Веза ка страници са детаљима'; +$lang['js']['mediadirect'] = 'Директна веза ка оригиналу'; +$lang['js']['medianolnk'] = 'Без везе'; +$lang['js']['medianolink'] = 'Не постављај слику као везу'; +$lang['js']['medialeft'] = 'Поравнај слику на лево'; +$lang['js']['mediaright'] = 'Поравнај слику на десно'; +$lang['js']['mediacenter'] = 'Поравнај слику по средини'; +$lang['js']['medianoalign'] = 'Без поравнања'; +$lang['js']['nosmblinks'] = 'Повезивање са Windows дељеним фолдерима ради само у Мајкрософтовом Интернет Претраживачу. +Ипак, можете да ископирате и залепите везу.'; +$lang['js']['linkwiz'] = 'Чаробњак за стварање везе'; +$lang['js']['linkto'] = 'Повежи ка:'; +$lang['js']['del_confirm'] = 'Обриши овај унос?'; +$lang['js']['mu_btn'] = 'Слање више датотека одједном'; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ништа није нађено.'; $lang['mediaselect'] = 'Избор медијске датотеке'; @@ -110,11 +142,7 @@ $lang['deletefail'] = '"%s" није могао да буде изб $lang['mediainuse'] = 'Фајл "%s" није избрисан - још је у употреби.'; $lang['namespaces'] = 'Именски простори'; $lang['mediafiles'] = 'Доступни фајлови у'; -$lang['js']['keepopen'] = 'Задржи отворен прозор након одабира'; -$lang['js']['hidedetails'] = 'Сакриј детаље'; -$lang['js']['nosmblinks'] = 'Повезивање са Windows дељеним фолдерима ради само у Мајкрософтовом Интернет Претраживачу. -Ипак, можете да ископирате и залепите везу.'; -$lang['js']['mu_btn'] = 'Слање више датотека одједном'; +$lang['accessdenied'] = 'Немате дозволу да видите ову страницу.'; $lang['mediausage'] = 'Користите следећу синтаксу за референцу ка овој датотеци:'; $lang['mediaview'] = 'Прикажи оригиналну датотеку'; $lang['mediaroot'] = 'почетак'; @@ -130,6 +158,7 @@ $lang['current'] = 'тренутно'; $lang['yours'] = 'Ваша верзија'; $lang['diff'] = 'прикажи разлике до тренутне верзије'; $lang['diff2'] = 'Прикажи разлике између одабраних ревизија'; +$lang['difflink'] = 'Постави везу ка овом компаративном приказу'; $lang['line'] = 'Линија'; $lang['breadcrumb'] = 'Траг'; $lang['youarehere'] = 'Сада сте овде'; @@ -141,8 +170,10 @@ $lang['restored'] = 'стара верзија повраћена'; $lang['external_edit'] = 'спољна измена'; $lang['summary'] = 'Сажетак измене'; $lang['noflash'] = 'За приказивање ове врсте материјала потребан вам је <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.'; +$lang['download'] = 'Преузми снипет'; $lang['mail_newpage'] = 'страница додата:'; $lang['mail_changed'] = 'страница измењена:'; +$lang['mail_subscribe_list'] = 'Странице промењене у именском простору:'; $lang['mail_new_user'] = 'нови корисник:'; $lang['mail_upload'] = 'послата датотека:'; $lang['qb_bold'] = 'Мастан текст'; @@ -155,6 +186,11 @@ $lang['qb_h2'] = 'Наслов 2. нивоа'; $lang['qb_h3'] = 'Наслов 3. нивоа'; $lang['qb_h4'] = 'Наслов 4. нивоа'; $lang['qb_h5'] = 'Наслов 5. нивоа'; +$lang['qb_h'] = 'Наслов'; +$lang['qb_hs'] = 'Одабери наслов'; +$lang['qb_hplus'] = 'Виши наслов'; +$lang['qb_hminus'] = 'Нижи наслов'; +$lang['qb_hequal'] = 'Наслов на истом нивоу'; $lang['qb_link'] = 'Унутрашња веза'; $lang['qb_extlink'] = 'Спољашња веза'; $lang['qb_hr'] = 'Хоризонтална линија'; @@ -164,7 +200,7 @@ $lang['qb_media'] = 'Додај слике и друге фајло $lang['qb_sig'] = 'Убаци потпис'; $lang['qb_smileys'] = 'Смешко'; $lang['qb_chars'] = 'Посебни карактери'; -$lang['js']['del_confirm'] = 'Обриши овај унос?'; +$lang['upperns'] = 'Скочи на виши именски простор'; $lang['admin_register'] = 'Додај новог корисника'; $lang['metaedit'] = 'Измени мета-податке'; $lang['metasaveerr'] = 'Записивање мета-података није било успешно'; @@ -180,11 +216,22 @@ $lang['img_copyr'] = 'Права копирања'; $lang['img_format'] = 'Формат'; $lang['img_camera'] = 'Камера'; $lang['img_keywords'] = 'Кључне речи'; -$lang['subscribe_success'] = 'Додао сам %s на листу претплатника за %s'; -$lang['subscribe_error'] = 'Дошло је до грешке при додавању %s на листу претплатника за %s'; -$lang['subscribe_noaddress'] = 'Не постоји е-адреса асоцирана са Вашим налогом. Не можете да будете додати на листу претплатника'; -$lang['unsubscribe_success'] = 'Избрисао сам %s са листе претплатника за %s'; -$lang['unsubscribe_error'] = 'Дошло је до грешке приликом брисања %s са листе претплатника за %s'; +$lang['subscr_subscribe_success'] = '%s је додат на списак претплатника %s'; +$lang['subscr_subscribe_error'] = 'Грешка приликом додавања %s на списак претплатника %s'; +$lang['subscr_subscribe_noaddress'] = 'Не постоји адреса повезана са вашим подацима, стога вас не можемо додати на списак претплатника.'; +$lang['subscr_unsubscribe_success'] = '%s уклоњен са списка претплатника %s'; +$lang['subscr_unsubscribe_error'] = 'Грешка приликом уклањања %s са списка претплатника %s'; +$lang['subscr_already_subscribed'] = '%s је већ претплаћен на %s'; +$lang['subscr_not_subscribed'] = '%s још није претплаћен на %s'; +$lang['subscr_m_not_subscribed'] = 'Тренутно нисте претплаћени на ову страницу или именски простор.'; +$lang['subscr_m_new_header'] = 'Додај претплату'; +$lang['subscr_m_current_header'] = 'Тренутне претплате'; +$lang['subscr_m_unsubscribe'] = 'Уклони претплату'; +$lang['subscr_m_subscribe'] = 'Претплати се'; +$lang['subscr_m_receive'] = 'Прими'; +$lang['subscr_style_every'] = 'имејл о свакој промени'; +$lang['subscr_style_digest'] = 'скраћени имејл о променама за сваку страницу (сваких %.2f дана)'; +$lang['subscr_style_list'] = 'Списак страница промењених након последњег имејла (сваких %.2f дана)'; $lang['authmodfailed'] = 'Лоше подешена провера корисника. Молим Вас да обавестите администратора викија.'; $lang['authtempfail'] = 'Провера корисника је тренутно недоступна. Ако се ситуација настави, молимо Вас да обавестите администратора викија.'; $lang['i_chooselang'] = 'Одаберите језик'; @@ -208,6 +255,7 @@ $lang['i_pol0'] = 'Отворени вики (читање, пи $lang['i_pol1'] = 'Јавни вики (читање за све, писање и слање датотека само за регистроване кориснике)'; $lang['i_pol2'] = 'Затворени вики (читање, писање и слање датотека само за регистроване кориснике)'; $lang['i_retry'] = 'Понови'; +$lang['i_license'] = 'Молимо вас, одаберите лиценцу под коју желите да ставите свој садржај:'; $lang['mu_intro'] = 'Одавде можете послати више датотека одједном. Кликните на дугме Тражи да бисте додали датотеке на листу. Када завршите са одабирањем кликните на Пошаљи.'; $lang['mu_gridname'] = 'Назив датотеке'; $lang['mu_gridsize'] = 'Величина'; @@ -221,4 +269,14 @@ $lang['mu_fail'] = 'није успело'; $lang['mu_authfail'] = 'сесија је истекла'; $lang['mu_progress'] = '@PCT@% послато'; $lang['mu_filetypes'] = 'Дозвољени типови датотека'; +$lang['mu_info'] = 'Фајлови послати'; +$lang['mu_lasterr'] = 'Последња грешка:'; $lang['recent_global'] = 'Тренутно пратите промене у именском простору <b>%s</b>. Такође, можете пратити <a href="%s">прмене на целом викију</a>.'; +$lang['years'] = 'Пре %d година'; +$lang['months'] = 'Пре %d месеци'; +$lang['weeks'] = 'Пре %d недеља'; +$lang['days'] = 'Пре %d дана'; +$lang['hours'] = 'Пре %d сати'; +$lang['minutes'] = 'Пре %d минута'; +$lang['seconds'] = 'Пре %d секунди'; +$lang['wordblock'] = 'Ваше измене нису сачуване јер садрже забрањен текст (спам)'; diff --git a/inc/lang/sr/subscr_digest.txt b/inc/lang/sr/subscr_digest.txt new file mode 100644 index 000000000..db8416833 --- /dev/null +++ b/inc/lang/sr/subscr_digest.txt @@ -0,0 +1,20 @@ +Здраво! + +Страница @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промене: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Стара верзија: @OLDPAGE@ +Нова верзија: @NEWPAGE@ + + +Да бисте поништили обавештења о променама страница, улогујте се на Вики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@ diff --git a/inc/lang/sr/subscr_form.txt b/inc/lang/sr/subscr_form.txt new file mode 100644 index 000000000..9bf72e424 --- /dev/null +++ b/inc/lang/sr/subscr_form.txt @@ -0,0 +1,3 @@ +===== Управљање претплатама ===== + +Ова страница вам омогућава да управљате својим претплатама на страницу и именски простор на којима се налазите.
\ No newline at end of file diff --git a/inc/lang/sr/subscr_list.txt b/inc/lang/sr/subscr_list.txt new file mode 100644 index 000000000..b3887013b --- /dev/null +++ b/inc/lang/sr/subscr_list.txt @@ -0,0 +1,17 @@ +Здраво! + +Страница у именском простору @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промењене странице: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + + +Да бисте поништили обавештења о променама страница, улогујте се на Вики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sr/subscr_single.txt b/inc/lang/sr/subscr_single.txt new file mode 100644 index 000000000..c0ed4d87a --- /dev/null +++ b/inc/lang/sr/subscr_single.txt @@ -0,0 +1,23 @@ +Здраво! + +Страница @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промене: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Датум : @DATE@ +Корисникr : @USER@ +Измени сиже: @SUMMARY@ +Стара верзија: @OLDPAGE@ +Нова верзија: @NEWPAGE@ + + +Да бисте поништили обавештења о променама страница, улогујте се на Бики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/sr/wordblock.txt b/inc/lang/sr/wordblock.txt deleted file mode 100644 index 56ecde3fd..000000000 --- a/inc/lang/sr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== СПАМ је блокиран ====== - -Ваше измене **нису** сачуване јер садрже једну или више блокираних речи. Ако сте покушали да спамујете вики -- надрљаћете! Ако мислите да је ово грешка, контактирајте администратора овог викија. - diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index 062e83a31..09dec8edd 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -106,7 +106,7 @@ $lang['txt_overwrt'] = 'Skriv över befintlig fil'; $lang['lockedby'] = 'Låst av'; $lang['lockexpire'] = 'Lås upphör att gälla'; $lang['willexpire'] = 'Ditt redigeringslås för detta dokument kommer snart att upphöra.\nFör att undvika versionskonflikter bör du förhandsgranska ditt dokument för att förlänga redigeringslåset.'; -$lang['notsavedyet'] = 'Det finns ändringar som inte är sparade.\nÄr du säker på att du vill fortsätta?'; +$lang['js']['notsavedyet'] = "Det finns ändringar som inte är sparade.\nÄr du säker på att du vill fortsätta?"; $lang['rssfailed'] = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: '; $lang['nothingfound'] = 'Inga filer hittades.'; $lang['mediaselect'] = 'Mediafiler'; diff --git a/inc/lang/sv/wordblock.txt b/inc/lang/sv/wordblock.txt deleted file mode 100644 index e1b632ce4..000000000 --- a/inc/lang/sv/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Stoppade SPAM ====== - -Dina ändringar har **inte** sparats på grund av att de innehåller ett eller flera ord som spärrats. Om du har försökt att spara skräp, s k ''spam'' -- Fyyy på dig! Om du anser att det här beror på ett fel, kontakta wikins administratör. - diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index e7937ecbc..ea27793b8 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -102,7 +102,7 @@ $lang['txt_overwrt'] = 'เขียนทับไฟล์ที่ $lang['lockedby'] = 'ตอนนี้ถูกล๊อคโดย'; $lang['lockexpire'] = 'การล๊อคจะหมดอายุเมื่อ'; $lang['willexpire'] = 'การล๊อคเพื่อแก้ไขหน้านี้กำลังจะหมดเวลาในอีก \n นาที เพื่อที่จะหลีกเลี่ยงข้อขัดแย้งให้ใช้ปุ่ม "Preview" เพื่อรีเซ็ทเวลาใหม่'; -$lang['notsavedyet'] = 'การแก้ไขที่ไม่ได้บันทึกจะสูญหาย \n ต้องการทำต่อจริงๆหรือ?'; +$lang['js']['notsavedyet'] = "การแก้ไขที่ไม่ได้บันทึกจะสูญหาย \n ต้องการทำต่อจริงๆหรือ?"; $lang['rssfailed'] = 'มีข้อผิดพลาดขณะดูดฟีดนี้'; $lang['nothingfound'] = 'ไม่พบสิ่งใด'; $lang['mediaselect'] = 'ไฟล์สื่อ'; diff --git a/inc/lang/th/wordblock.txt b/inc/lang/th/wordblock.txt deleted file mode 100644 index 653e341e7..000000000 --- a/inc/lang/th/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== สแปมถูกกีดกัน ====== - -การเปลี่ยนแปลงของคุณ **ไม่**ได้รับการบันทึกเพราะมันมีหนึ่งข้อความต้องห้ามหรือมากกว่า ถ้าคุณพยายามสแปมวิกินี้ --คุณไม่น่ารักเลยนะ เด็กโง่! แต่ถ้าคุณคิดว่านี่เป็นข้อผิดพลาดแล้วละก็ ช่วยติดต่อผู้ดูแลวิกินี้ให้ด้วย
\ No newline at end of file diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index dd045a6c7..c6d20c805 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -42,15 +42,13 @@ $lang['btn_back'] = 'Geri'; $lang['btn_backlink'] = 'Geri linkler'; $lang['btn_backtomedia'] = 'Çokluortam dosyası seçimine dön'; $lang['btn_subscribe'] = 'Sayfa Değişikliklerini Bildir'; -$lang['btn_unsubscribe'] = 'Sayfa Değişikliklerini Bildirme'; -$lang['btn_subscribens'] = 'Namespace Değişikliklerini Bildir'; -$lang['btn_unsubscribens'] = 'Namespace Değişikliklerini Bildirme'; $lang['btn_profile'] = 'Kullanıcı Bilgilerini Güncelle'; $lang['btn_reset'] = 'Sıfırla'; $lang['btn_resendpwd'] = 'Yeni parola gönder'; $lang['btn_draft'] = 'Taslağı düzenle'; $lang['btn_recover'] = 'Taslağı geri yükle'; $lang['btn_draftdel'] = 'Taslağı sil'; +$lang['btn_revert'] = 'Geri Yükle'; $lang['loggedinas'] = 'Giriş ismi'; $lang['user'] = 'Kullanıcı ismi'; $lang['pass'] = 'Parola'; @@ -89,13 +87,45 @@ $lang['resendpwdconfirm'] = 'Doğrulama linki e-posta adresinize gönderild $lang['resendpwdsuccess'] = 'Yeni parolanız e-posta adresinize gönderildi.'; $lang['license'] = 'Aksi belirtilmediği halde, bu wikinin içeriğinin telif hakları şu lisans ile korunmaktadır:'; $lang['licenseok'] = 'Not: Bu sayfayı değiştirerek yazınızın şu lisans ile yayınlanmasını kabul etmiş olacaksınız:'; +$lang['searchmedia'] = 'Dosya Adı Ara:'; +$lang['searchmedia_in'] = '%s içinde ara'; $lang['txt_upload'] = 'Yüklenecek dosyayı seç'; $lang['txt_filename'] = 'Dosya adı (zorunlu değil)'; $lang['txt_overwrt'] = 'Mevcut dosyanın üstüne yaz'; $lang['lockedby'] = 'Şu an şunun tarafından kilitli:'; $lang['lockexpire'] = 'Kilitin açılma tarihi:'; $lang['willexpire'] = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.'; -$lang['notsavedyet'] = 'Kaydedilmemiş değişiklikler kaybolacak.\nDevam etmek istiyor musunuz?'; +$lang['js']['notsavedyet'] = 'Kaydedilmemiş değişiklikler kaybolacak. +Devam etmek istiyor musunuz?'; +$lang['js']['searchmedia'] = 'Dosyalar için Ara'; +$lang['js']['keepopen'] = 'Seçim yapıldığında bu pencereyi açık tut'; +$lang['js']['hidedetails'] = 'Ayrıntıları gizle'; +$lang['js']['mediatitle'] = 'Bağlantı Ayarları'; +$lang['js']['mediadisplay'] = 'Bağlantı Tipi'; +$lang['js']['mediaalign'] = 'Hizalama'; +$lang['js']['mediasize'] = 'Resim büyüklüğü'; +$lang['js']['mediatarget'] = 'Bağlantı hedefi'; +$lang['js']['mediaclose'] = 'Kapat'; +$lang['js']['mediainsert'] = 'Ekle'; +$lang['js']['mediadisplayimg'] = 'Resmi görüntüle'; +$lang['js']['mediadisplaylnk'] = 'Sadece bağlantıyı görüntüle '; +$lang['js']['mediasmall'] = 'Küçük versiyon'; +$lang['js']['mediamedium'] = 'Orta versiyon'; +$lang['js']['medialarge'] = 'Büyük versiyon'; +$lang['js']['mediaoriginal'] = 'Orjinal versiyon'; +$lang['js']['medialnk'] = 'Detay sayfasına bağlantı'; +$lang['js']['mediadirect'] = 'Orjinal sayfaya bağlantı'; +$lang['js']['medianolnk'] = 'Bağlantı yok'; +$lang['js']['medianolink'] = 'Resme bağlantı verme'; +$lang['js']['medialeft'] = 'Resmi sola hizala'; +$lang['js']['mediaright'] = 'Resmi sağa hizala'; +$lang['js']['mediacenter'] = 'Resmi ortaya hizala'; +$lang['js']['medianoalign'] = 'Hizalama kullanma'; +$lang['js']['nosmblinks'] = 'Windows paylaşımı sadece Microsoft Internet Explorer ile çalışmaktadır. Yine de hala bağlantıyı kopyalayıp yapıştırarak kullanabilirsiniz. '; +$lang['js']['linkwiz'] = 'Bağlantı sihirbazı'; +$lang['js']['linkto'] = 'Bağlantı:'; +$lang['js']['del_confirm'] = 'Bu girişi sil?'; +$lang['js']['mu_btn'] = 'Birden fazla dosyayı bir seferde gönder'; $lang['rssfailed'] = 'Bu beslemeyi çekerken hata oluştu: '; $lang['nothingfound'] = 'Hiçbir şey yok.'; $lang['mediaselect'] = 'Çokluortam dosyası seçimi'; @@ -113,10 +143,7 @@ $lang['deletefail'] = '"%s" silinemedi - yetkileri kontrol et.'; $lang['mediainuse'] = '"%s" dosyası silinmedi, hala kullanımda.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Şuradaki kullanıma hazır dosyalar:'; -$lang['js']['keepopen'] = 'Seçim yapıldığında bu pencereyi açık tut'; -$lang['js']['hidedetails'] = 'Ayrıntıları gizle'; -$lang['js']['nosmblinks'] = 'Windows paylaşımı sadece Microsoft Internet Explorer ile çalışmaktadır. Yine de hala bağlantıyı kopyalayıp yapıştırarak kullanabilirsiniz. '; -$lang['js']['mu_btn'] = 'Birden fazla dosyayı bir seferde gönder'; +$lang['accessdenied'] = 'Bu sayfayı görüntüleme yetkiniz bulunmamaktadır'; $lang['mediausage'] = 'Şu '; $lang['mediaview'] = 'Özgün dosyayı göster'; $lang['mediaroot'] = 'Kök dizini'; @@ -132,6 +159,7 @@ $lang['current'] = 'mevcut'; $lang['yours'] = 'Senin Sürümün'; $lang['diff'] = 'Kullanılan sürüm ile farkları göster'; $lang['diff2'] = 'Seçili sürümler arasındaki farkı göster'; +$lang['difflink'] = 'Karşılaştırma görünümüne bağlantı'; $lang['line'] = 'Satır'; $lang['breadcrumb'] = 'İz'; $lang['youarehere'] = 'Buradasınız'; @@ -143,6 +171,7 @@ $lang['restored'] = 'eski sürüme dönüldü'; $lang['external_edit'] = 'Dışarıdan düzenle'; $lang['summary'] = 'Özeti düzenle'; $lang['noflash'] = 'Bu içeriği göstermek için <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Eklentisi</a> gerekmektedir.'; +$lang['download'] = 'Parçacığı indir'; $lang['mail_newpage'] = 'sayfa eklenme:'; $lang['mail_changed'] = 'sayfa değiştirilme:'; $lang['mail_new_user'] = 'yeni kullanıcı'; @@ -166,7 +195,6 @@ $lang['qb_media'] = 'Resim ve başka dosyalar ekle'; $lang['qb_sig'] = 'İmza Ekle'; $lang['qb_smileys'] = 'Gülen Yüzler'; $lang['qb_chars'] = 'Özel Karakterler'; -$lang['js']['del_confirm'] = 'Bu girişi sil?'; $lang['admin_register'] = 'Yeni kullanıcı ekle...'; $lang['metaedit'] = 'Metaverileri Değiştir'; $lang['metasaveerr'] = 'Metaveri yazma başarısız '; @@ -182,11 +210,6 @@ $lang['img_copyr'] = 'Telif Hakkı'; $lang['img_format'] = 'Biçim'; $lang['img_camera'] = 'Fotoğraf Makinası'; $lang['img_keywords'] = 'Anahtar Sözcükler'; -$lang['subscribe_success'] = '%s, %s\'in abonelik listesine eklendi'; -$lang['subscribe_error'] = '%s; %s\'in abonelik listesine eklenirken hata oluştu'; -$lang['subscribe_noaddress'] = 'Giriş bilgilerinizle ilişkili bir adres yok, abonelik listesine eklenemezsiniz'; -$lang['unsubscribe_success'] = '%s, %s\'in abonelik listesinden çıkartıldı'; -$lang['unsubscribe_error'] = '%s, %s\'in listesinden çıkartılırken hata oluştu'; $lang['authmodfailed'] = 'Yanlış kullanıcı onaylama ayarı. Lütfen Wiki yöneticisine bildiriniz.'; $lang['authtempfail'] = 'Kullanıcı doğrulama geçici olarak yapılamıyor. Eğer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.'; $lang['i_chooselang'] = 'Dili seçiniz'; diff --git a/inc/lang/tr/wordblock.txt b/inc/lang/tr/wordblock.txt deleted file mode 100644 index 506cbc793..000000000 --- a/inc/lang/tr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM bloke edildi ====== - -Değişiklikleriniz **kaydedilmedi**, çünkü değişikliklerinizde bir veya daha fazla engellenen kelime var. Eğer Wikiyi spamlamaya çalışıyorsan -- Oh olsun! Eğer bunun bir hata olduğunu düşünüyorsanız, bu Wiki yöneticisiyle iletişime geçin. - diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 5f94d9b47..d3d5d7acf 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -8,6 +8,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,9 +42,6 @@ $lang['btn_back'] = 'Назад'; $lang['btn_backlink'] = 'Посилання сюди'; $lang['btn_backtomedia'] = 'Назад до вибору медіа-файлу'; $lang['btn_subscribe'] = 'Підписатися'; -$lang['btn_unsubscribe'] = 'Відписатися'; -$lang['btn_subscribens'] = 'Підписатися на зміни в просторі імен'; -$lang['btn_unsubscribens'] = 'Відписатися від змін простору імен'; $lang['btn_profile'] = 'Оновити профіль'; $lang['btn_reset'] = 'Очисти'; $lang['btn_resendpwd'] = 'Надіслати новий пароль'; @@ -97,7 +95,38 @@ $lang['txt_overwrt'] = 'Перезаписати існуючий фа $lang['lockedby'] = 'Заблоковано'; $lang['lockexpire'] = 'Блокування завершується в'; $lang['willexpire'] = 'Блокування редагування цієї сторінки закінчується через хвилину.\n Щоб уникнути конфліктів використовуйте кнопку перегляду для продовження блокування.'; -$lang['notsavedyet'] = 'Незбережені зміни будуть втрачені.\n Дійсно продовжити?'; +$lang['js']['notsavedyet'] = 'Незбережені зміни будуть втрачені. + Дійсно продовжити?'; +$lang['js']['searchmedia'] = 'Шукати файли'; +$lang['js']['keepopen'] = 'Тримати вікно відкритим під час вибору'; +$lang['js']['hidedetails'] = 'Сховати деталі'; +$lang['js']['mediatitle'] = 'Налаштунки посилання'; +$lang['js']['mediadisplay'] = 'Тип посилання'; +$lang['js']['mediaalign'] = 'Вирівнювання'; +$lang['js']['mediasize'] = 'Розмір зображення'; +$lang['js']['mediatarget'] = 'Ціль посилання'; +$lang['js']['mediaclose'] = 'Закрити'; +$lang['js']['mediainsert'] = 'Вставити'; +$lang['js']['mediadisplayimg'] = 'Показати зображення.'; +$lang['js']['mediadisplaylnk'] = 'Показати тілки посилання.'; +$lang['js']['mediasmall'] = 'Зменшена версіяЁ'; +$lang['js']['mediamedium'] = 'Середня версія'; +$lang['js']['medialarge'] = 'Велика версія'; +$lang['js']['mediaoriginal'] = 'Оигінальна версія'; +$lang['js']['medialnk'] = 'Посилання на сторінку з описом'; +$lang['js']['mediadirect'] = 'Пряме посилання на оригінал'; +$lang['js']['medianolnk'] = 'Немає посилання'; +$lang['js']['medianolink'] = 'Не посилайтеся на зображення'; +$lang['js']['medialeft'] = 'Вирівняти зображення по лівому краю.'; +$lang['js']['mediaright'] = 'Вирівняти зображення по правому краю.'; +$lang['js']['mediacenter'] = 'Вирівняти зображення по центру.'; +$lang['js']['medianoalign'] = 'Не вирівнювати зображення.'; +$lang['js']['nosmblinks'] = 'Посилання на мережеві папки працює лише в Internet Explorer. +Ви можете скопіювати посилання і відкрити його за допомогою Internet Explorer.'; +$lang['js']['linkwiz'] = 'Чарівник посилань'; +$lang['js']['linkto'] = 'Посилання на:'; +$lang['js']['del_confirm'] = 'Дійсно знищити обрані елементи?'; +$lang['js']['mu_btn'] = 'Завантажити одночасно кілька файлів'; $lang['rssfailed'] = 'Виникла помилка під час отримання RSS-стрічки: '; $lang['nothingfound'] = 'Нічого не знайдено.'; $lang['mediaselect'] = 'Вибір медіа-файлу'; @@ -115,15 +144,7 @@ $lang['deletefail'] = 'Неможливо знищити "%s" - пе $lang['mediainuse'] = '"%s" не знищено - файл використовується.'; $lang['namespaces'] = 'Простори імен'; $lang['mediafiles'] = 'Доступні файли'; -$lang['js']['searchmedia'] = 'Шукати файли'; -$lang['js']['keepopen'] = 'Тримати вікно відкритим під час вибору'; -$lang['js']['hidedetails'] = 'Сховати деталі'; -$lang['js']['nosmblinks'] = 'Посилання на мережеві папки працює лише в Internet Explorer. -Ви можете скопіювати посилання і відкрити його за допомогою Internet Explorer.'; -$lang['js']['linkwiz'] = 'Чарівник посилань'; -$lang['js']['linkto'] = 'Посилання на:'; -$lang['js']['del_confirm'] = 'Дійсно знищити обрані елементи?'; -$lang['js']['mu_btn'] = 'Завантажити одночасно кілька файлів'; +$lang['accessdenied'] = 'Вам не дозволено переглядати цю сторінку.'; $lang['mediausage'] = 'Для посилання на цей файл використовуйте такий синтаксис:'; $lang['mediaview'] = 'Переглянути початковий файл'; $lang['mediaroot'] = 'корінь'; @@ -139,6 +160,7 @@ $lang['current'] = 'поточний'; $lang['yours'] = 'Ваша версія'; $lang['diff'] = 'показати відмінності від поточної версії'; $lang['diff2'] = 'Показати відмінності між вибраними версіями'; +$lang['difflink'] = 'Посилання на цей список змін'; $lang['line'] = 'Рядок'; $lang['breadcrumb'] = 'Відвідано'; $lang['youarehere'] = 'Ви тут'; @@ -153,6 +175,7 @@ $lang['noflash'] = 'Для перегляду цієї сторі $lang['download'] = 'Завантажити фрагмент'; $lang['mail_newpage'] = 'сторінку додано:'; $lang['mail_changed'] = 'сторінку змінено:'; +$lang['mail_subscribe_list'] = 'сторінки, що змінено у просторі імен:'; $lang['mail_new_user'] = 'новий користувач:'; $lang['mail_upload'] = 'завантажено файл:'; $lang['qb_bold'] = 'Напівжирний текст'; @@ -195,11 +218,22 @@ $lang['img_copyr'] = 'Авторські права'; $lang['img_format'] = 'Формат'; $lang['img_camera'] = 'Камера'; $lang['img_keywords'] = 'Ключові слова'; -$lang['subscribe_success'] = '%s доданий(на) до списку розсилки для сторінки %s'; -$lang['subscribe_error'] = 'Помилка при доданні %s до списку розсилки для сторінки %s'; -$lang['subscribe_noaddress'] = 'У вашому профілі немає адреси e-mail, ви не можете користуватися списками розсилки'; -$lang['unsubscribe_success'] = '%s вилучено зі списку розсилки для сторінки %s'; -$lang['unsubscribe_error'] = 'Помилка при вилученні %s зі списку розсилки для %s'; +$lang['subscr_subscribe_success'] = 'Додано %s до списку підписки для %s'; +$lang['subscr_subscribe_error'] = 'Помилка при додавані %s до списку підписки для %s'; +$lang['subscr_subscribe_noaddress'] = 'Немає адреси, асоційованої з Вашим логіном, тому Ві не можете бути додані до списку підписки.'; +$lang['subscr_unsubscribe_success'] = 'Видалено %s із списку підписки для %s'; +$lang['subscr_unsubscribe_error'] = 'Помилка при видаленні %s із списку підписки для %s'; +$lang['subscr_already_subscribed'] = '%s вже підписаний до %s'; +$lang['subscr_not_subscribed'] = '%s не підписаний до %s'; +$lang['subscr_m_not_subscribed'] = 'Ви зараз не підписані до цієї сторінки або простору імен.'; +$lang['subscr_m_new_header'] = 'Додати підписку'; +$lang['subscr_m_current_header'] = 'Поточні підписки'; +$lang['subscr_m_unsubscribe'] = 'Відписатися'; +$lang['subscr_m_subscribe'] = 'Підписатися'; +$lang['subscr_m_receive'] = 'Отримувати'; +$lang['subscr_style_every'] = 'пошту про кожну зміну'; +$lang['subscr_style_digest'] = 'лист з дайджестом для зміни кожної сторінки (кожні %.2f днів)'; +$lang['subscr_style_list'] = 'список змінених сторінок від часу отримання останньоголиста (кожні %.2f днів)'; $lang['authmodfailed'] = 'Неправильна настройка автентифікації користувача. Будь ласка, повідомте про це адміністратора.'; $lang['authtempfail'] = 'Автентифікація користувача тимчасово не доступна. Якщо це буде продовжуватись, будь ласка, повідомте адміністратора.'; $lang['i_chooselang'] = 'Виберіть мову'; @@ -226,6 +260,7 @@ $lang['i_pol0'] = 'Відкрита Вікі (читання, з $lang['i_pol1'] = 'Публічна Вікі (читання для всіх, запис та завантаження для зареєстрованих користувачів)'; $lang['i_pol2'] = 'Закрита Вікі (читання, запис та завантаження тільки для зареєстрованих користувачів)'; $lang['i_retry'] = 'Повторити'; +$lang['i_license'] = 'Будь ласка, виберіть тип ліцензії, під якою Ві бажаєте опублікувати матеріал:'; $lang['mu_intro'] = 'Тут ви можете завантажити одночасно кілька файлів. Натисніть кнопку "Вибрати", щоб додати файли в чергу. Після закінчення натисніть кнопку "Завантажити"'; $lang['mu_gridname'] = 'Ім’я файлу'; $lang['mu_gridsize'] = 'Розмір'; @@ -242,3 +277,11 @@ $lang['mu_filetypes'] = 'Дозволені типи файлів'; $lang['mu_info'] = 'Файли завантажено'; $lang['mu_lasterr'] = 'Остання помилка:'; $lang['recent_global'] = 'Ви переглядаєте зміни в межах простору імен <b>%s</b>. Також можна <a href="%s">переглянути зміни в межах усієї Вікі</a>.'; +$lang['years'] = '%d років тому'; +$lang['months'] = '%d місяців тому'; +$lang['weeks'] = '%d тижнів тому'; +$lang['days'] = '%d днів тому'; +$lang['hours'] = '%d годин тому'; +$lang['minutes'] = '%d хвилин тому'; +$lang['seconds'] = '%d секунд тому'; +$lang['wordblock'] = 'Ваші зміни не збережено, тому що вони розпізнані як такі, що містять заблокований текст(спам).'; diff --git a/inc/lang/uk/pwconfirm.txt b/inc/lang/uk/pwconfirm.txt index 7a46f536a..54d7a200c 100644 --- a/inc/lang/uk/pwconfirm.txt +++ b/inc/lang/uk/pwconfirm.txt @@ -9,6 +9,5 @@ @CONFIRM@ --- -Це повідомлення створене ДокуВікі з -@DOKUWIKIURL@ +-- +Цей лист було надіслано за допомогою служби повідомлень DokuWiki, сайту @DOKUWIKIURL@ diff --git a/inc/lang/uk/registermail.txt b/inc/lang/uk/registermail.txt index 9b55d85bf..28735ed79 100644 --- a/inc/lang/uk/registermail.txt +++ b/inc/lang/uk/registermail.txt @@ -9,6 +9,5 @@ E-Mail : @NEWEMAIL@ Адреса IP : @IPADDRESS@ Назва хосту : @HOSTNAME@ --- -Це повідомлення створене ДокуВікі з -@DOKUWIKIURL@ +-- +Цей лист було надіслано за допомогою служби повідомлень DokuWiki, сайту @DOKUWIKIURL@ diff --git a/inc/lang/uk/subscr_digest.txt b/inc/lang/uk/subscr_digest.txt new file mode 100644 index 000000000..32379182b --- /dev/null +++ b/inc/lang/uk/subscr_digest.txt @@ -0,0 +1,17 @@ +Доброго дня! + +Сторінку @PAGE@ у @TITLE@ було змінено. +Зміни, які відбулися: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Стара версія: @OLDPAGE@ +Нова версія: @NEWPAGE@ + +Щоб відмовитися від повідомлень про редагування сторінок, зайдіть під своїм ім'ям на сайт @DOKUWIKIURL@, потім відвідайте сторінку @SUBSCRIBE@ +та відпишіться від повідомлень про зміну сторінки та/або простору імен. + +-- +Цей лист було надіслано за допомогою служби повідомлень DokuWiki, сайту @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/uk/subscr_form.txt b/inc/lang/uk/subscr_form.txt new file mode 100644 index 000000000..1c9d6d229 --- /dev/null +++ b/inc/lang/uk/subscr_form.txt @@ -0,0 +1,3 @@ +====== Керування підписками ====== + +Ця сторінка дозволяє Вам керувати Вашими підписками для цієї сторінки та простору імен.
\ No newline at end of file diff --git a/inc/lang/uk/subscr_list.txt b/inc/lang/uk/subscr_list.txt new file mode 100644 index 000000000..7a538bc1f --- /dev/null +++ b/inc/lang/uk/subscr_list.txt @@ -0,0 +1,14 @@ +Доброго дня! + +Було змінено сторінки простору імен @PAGE@ у @TITLE@. +Зміни, які вібдулися: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Щоб відмовитися від повідомлень про редагування сторінок, зайдіть під своїм ім'ям на сайт @DOKUWIKIURL@, потім відвідайте сторінку @SUBSCRIBE@ +та відпишіться від повідомлень про зміну сторінки та/або простору імен. + +-- +Цей лист було надіслано за допомогою служби повідомлень DokuWiki, сайту @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/uk/subscr_single.txt b/inc/lang/uk/subscr_single.txt new file mode 100644 index 000000000..22a06917e --- /dev/null +++ b/inc/lang/uk/subscr_single.txt @@ -0,0 +1,20 @@ +Доброго часу! + +Сторінку @PAGE@ у @TITLE@ було змінено. +Зміни, що відбулися: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Дата : @DATE@ +Користувач : @USER@ +Підсумок: @SUMMARY@ +Стара версія: @OLDPAGE@ +Нова версія: @NEWPAGE@ + +Щоб відмовитися від повідомлень про редагування сторінок, зайдіть під своїм ім'ям на сайт @DOKUWIKIURL@, потім відвідайте сторінку @NEWPAGE@ +та відпишіться від повідомлень про зміну сторінки та/або простору імен. + +-- +Цей лист було надіслано за допомогою служби повідомлень DokuWiki, сайту @DOKUWIKIURL@
\ No newline at end of file diff --git a/inc/lang/uk/wordblock.txt b/inc/lang/uk/wordblock.txt deleted file mode 100644 index 869f93a87..000000000 --- a/inc/lang/uk/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Заблокований СПАМ ====== - -Ваші зміни **не були** збережені тому що вони містять одне чи декілька заблокованих слів. Якщо ви намагались додати спам до вікі, то нехай вам буде соромно. Якщо ви вважаєте, що це помилка, зверніться до адміністратора цієї Вікі. - diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 23f42d69a..168fe3595 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -51,7 +51,7 @@ $lang['lockedby'] = 'Đang khoá bởi'; $lang['lockexpire'] = 'Khoá sẽ hết hạn vào lúc'; $lang['willexpire'] = 'Khoá của bạn để biên soạn trang này sẽ hết hạn trong vòng 1 phút.\nĐể tránh xung đột, bạn nên bấm nút xem trước để lập lại thời gian khoá'; -$lang['notsavedyet'] = 'Hiện có những thay đổi chưa được bảo lưu, và sẽ mất.\nBạn thật sự muốn tiếp tục?'; +$lang['js']['notsavedyet'] = "Hiện có những thay đổi chưa được bảo lưu, và sẽ mất.\nBạn thật sự muốn tiếp tục?"; $lang['rssfailed'] = 'Rút nguồn này gặp phải lỗi'; $lang['nothingfound']= 'Không tìm được gì'; diff --git a/inc/lang/vi/wordblock.txt b/inc/lang/vi/wordblock.txt deleted file mode 100644 index b219ca141..000000000 --- a/inc/lang/vi/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM bị chận ====== - -Các thay đổi **không** được bảo lưu vì có một hoặc nhiều từ bị ngăn chận. Nếu muốn spam Wiki này -- ngưng liền! Nếu đây là một sai lầm, liên lạc với người quản lý của Wiki. diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index f936123f4..eca7de4c8 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = '是否要覆蓋原有檔案'; $lang['lockedby'] = '目前已被下列人員鎖定'; $lang['lockexpire'] = '預計解除鎖定於'; $lang['willexpire'] = '您目前編輯這頁的鎖定將會在一分鐘內解除。\若要避免發生意外,請按「預覽」鍵來重新設定鎖定狀態'; -$lang['notsavedyet'] = '有尚未儲存的變更將會遺失。\n真的要繼續嗎?'; +$lang['js']['notsavedyet'] = "有尚未儲存的變更將會遺失。\n真的要繼續嗎?"; $lang['rssfailed'] = '當抓取餵送過來的 RSS 資料時發生錯誤: '; $lang['nothingfound'] = '沒找到任何結果。'; $lang['mediaselect'] = '選擇圖檔'; diff --git a/inc/lang/zh-tw/wordblock.txt b/inc/lang/zh-tw/wordblock.txt deleted file mode 100644 index 671e88b87..000000000 --- a/inc/lang/zh-tw/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== 拒絕垃圾資料(SPAM blocked) ====== - -您的變更並**不會**被存起來,因為它包含了一些被限制的字眼。若您還試著要丟垃圾資料到 Wiki 的話, -- Bad dog! 不過,若您認為這是誤判,那麼請與這個 Wiki 的管理員(Admin)談。 - diff --git a/inc/lang/zh/adminplugins.txt b/inc/lang/zh/adminplugins.txt new file mode 100644 index 000000000..66cee4509 --- /dev/null +++ b/inc/lang/zh/adminplugins.txt @@ -0,0 +1 @@ +===== 附加插件 =====
\ No newline at end of file diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index ffb759fde..2de962ce9 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -50,6 +51,7 @@ $lang['btn_resendpwd'] = '发送新密码'; $lang['btn_draft'] = '编辑草稿'; $lang['btn_recover'] = '恢复草稿'; $lang['btn_draftdel'] = '删除草稿'; +$lang['btn_revert'] = '恢复'; $lang['loggedinas'] = '登录为'; $lang['user'] = '用户名'; $lang['pass'] = '密码'; @@ -88,13 +90,15 @@ $lang['resendpwdconfirm'] = '确认链接已经通过邮件发送给您了 $lang['resendpwdsuccess'] = '您的新密码已经通过邮件发送给您了。'; $lang['license'] = '除额外注明的地方外,本维基上的内容按下列许可协议发布:'; $lang['licenseok'] = '当您选择开始编辑本页,即寓示你同意将你贡献的内容按下列许可协议发布:'; +$lang['searchmedia'] = '查找文件名:'; +$lang['searchmedia_in'] = '在%s中查找'; $lang['txt_upload'] = '选择要上传的文件'; $lang['txt_filename'] = '上传并重命名为(可选)'; $lang['txt_overwrt'] = '覆盖已存在的同名文件'; $lang['lockedby'] = '目前已被下列人员锁定'; $lang['lockexpire'] = '预计锁定解除于'; $lang['willexpire'] = '您对本页的独有编辑权将于一分钟之后解除。\n为了防止与其他人的编辑冲突,请使用预览按钮重设计时器。'; -$lang['notsavedyet'] = '未保存的更改将丢失。\n真的要继续?'; +$lang['js']['notsavedyet'] = "未保存的更改将丢失。\n真的要继续?"; $lang['rssfailed'] = '获取该 RSS 信息时产生错误:'; $lang['nothingfound'] = '什么都没有找到。'; $lang['mediaselect'] = '媒体文件'; @@ -112,10 +116,14 @@ $lang['deletefail'] = '无法删除“%s”- 请检查权限。'; $lang['mediainuse'] = '文件“%s”无法删除 - 它正被使用中。'; $lang['namespaces'] = '命名空间'; $lang['mediafiles'] = '可用的文件'; +$lang['js']['searchmedia'] = '查找文件'; $lang['js']['keepopen'] = '选中后不自动关闭窗口'; $lang['js']['hidedetails'] = '隐藏详细信息'; $lang['js']['nosmblinks'] = '连接到 Windows 共享功能只有在 IE 浏览器中才能正常使用。 但您仍能复制并粘贴该链接。'; +$lang['js']['linkwiz'] = '链接向导'; +$lang['js']['linkto'] = '链接到:'; +$lang['js']['del_confirm'] = '真的要删除选中的项目吗?'; $lang['js']['mu_btn'] = '一次上传了多个文件'; $lang['mediausage'] = '使用下列字符链接到该文件:'; $lang['mediaview'] = '查看该文件'; @@ -157,6 +165,11 @@ $lang['qb_h2'] = '标题 H2 '; $lang['qb_h3'] = '标题 H3'; $lang['qb_h4'] = '标题 H4'; $lang['qb_h5'] = '标题 H5'; +$lang['qb_h'] = '标题'; +$lang['qb_hs'] = '选择标题'; +$lang['qb_hplus'] = '上级标题'; +$lang['qb_hminus'] = '下级标题'; +$lang['qb_hequal'] = '同级标题'; $lang['qb_link'] = '内部链接'; $lang['qb_extlink'] = '外部链接'; $lang['qb_hr'] = '水平线'; @@ -166,7 +179,7 @@ $lang['qb_media'] = '插入图像或其他文件'; $lang['qb_sig'] = '插入签名'; $lang['qb_smileys'] = '表情符号'; $lang['qb_chars'] = '特殊字符'; -$lang['js']['del_confirm'] = '真的要删除选中的项目吗?'; +$lang['upperns'] = '跳转到父级名空间'; $lang['admin_register'] = '添加新用户'; $lang['metaedit'] = '编辑元数据'; $lang['metasaveerr'] = '写入元数据失败'; @@ -227,4 +240,12 @@ $lang['mu_fail'] = '失败'; $lang['mu_authfail'] = '会话过期'; $lang['mu_progress'] = '@PCT@% 上传完成'; $lang['mu_filetypes'] = '允许的文件类型'; +$lang['mu_info'] = '文件已上传。'; $lang['recent_global'] = '您当前看到的是<b>%s</b> 名称空间的变动。你还可以在<a href="%s">查看整个维基的近期变动</a>。'; +$lang['years'] = '%d年前'; +$lang['months'] = '%d月前'; +$lang['weeks'] = '%d周前'; +$lang['days'] = '%d天前'; +$lang['hours'] = '%d小时前'; +$lang['minutes'] = '%d分钟前'; +$lang['seconds'] = '%d秒前'; diff --git a/inc/lang/zh/wordblock.txt b/inc/lang/zh/wordblock.txt deleted file mode 100644 index 72c473a59..000000000 --- a/inc/lang/zh/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== 拒绝垃圾资料 ====== - -您的更改 **并没有** 保存,因为它包含了一个或多个被限制的字眼。如果您尝试为本维基添加垃圾信息 -- 你是一个大坏蛋!如果您认为这是一个系统错误,请联系本维基的管理员。 diff --git a/inc/load.php b/inc/load.php new file mode 100644 index 000000000..2f5be6d63 --- /dev/null +++ b/inc/load.php @@ -0,0 +1,89 @@ +<?php +/** + * Load all internal libraries and setup class autoloader + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// setup class autoloader +spl_autoload_register('load_autoload'); + +// require all the common libraries +// for a few of these order does matter +require_once(DOKU_INC.'inc/blowfish.php'); +require_once(DOKU_INC.'inc/actions.php'); +require_once(DOKU_INC.'inc/changelog.php'); +require_once(DOKU_INC.'inc/common.php'); +require_once(DOKU_INC.'inc/confutils.php'); +require_once(DOKU_INC.'inc/pluginutils.php'); +require_once(DOKU_INC.'inc/plugin.php'); +require_once(DOKU_INC.'inc/events.php'); +require_once(DOKU_INC.'inc/form.php'); +require_once(DOKU_INC.'inc/fulltext.php'); +require_once(DOKU_INC.'inc/html.php'); +require_once(DOKU_INC.'inc/httputils.php'); +require_once(DOKU_INC.'inc/indexer.php'); +require_once(DOKU_INC.'inc/infoutils.php'); +require_once(DOKU_INC.'inc/io.php'); +require_once(DOKU_INC.'inc/mail.php'); +require_once(DOKU_INC.'inc/media.php'); +require_once(DOKU_INC.'inc/pageutils.php'); +require_once(DOKU_INC.'inc/parserutils.php'); +require_once(DOKU_INC.'inc/search.php'); +require_once(DOKU_INC.'inc/subscription.php'); +require_once(DOKU_INC.'inc/template.php'); +require_once(DOKU_INC.'inc/toolbar.php'); +require_once(DOKU_INC.'inc/utf8.php'); +require_once(DOKU_INC.'inc/auth.php'); + +/** + * spl_autoload_register callback + * + * Contains a static list of DokuWiki's core classes and automatically + * require()s their associated php files when an object is instantiated. + * + * @author Andreas Gohr <andi@splitbrain.org> + * @todo add generic loading of plugins and other generically named classes + */ +function load_autoload($name){ + static $classes = null; + if(is_null($classes)) $classes = array( + 'DokuHTTPClient' => DOKU_INC.'inc/HTTPClient.php', + 'JSON' => DOKU_INC.'inc/JSON.php', + 'adLDAP' => DOKU_INC.'inc/adLDAP.php', + 'Diff' => DOKU_INC.'inc/DifferenceEngine.php', + 'UnifiedDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php', + 'TableDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php', + 'cache' => DOKU_INC.'inc/cache.php', + 'cache_parser' => DOKU_INC.'inc/cache.php', + 'cache_instructions' => DOKU_INC.'inc/cache.php', + 'cache_renderer' => DOKU_INC.'inc/cache.php', + 'Doku_Event' => DOKU_INC.'inc/events.php', + 'Doku_Event_Handler' => DOKU_INC.'inc/events.php', + 'EmailAddressValidator' => DOKU_INC.'inc/EmailAddressValidator.php', + 'JpegMeta' => DOKU_INC.'inc/JpegMeta.php', + 'SimplePie' => DOKU_INC.'inc/SimplePie.php', + 'FeedParser' => DOKU_INC.'inc/FeedParser.php', + 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php', + 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', + 'IXR_IntrospectionServer' => DOKU_INC.'inc/IXR_Library.php', + 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', + 'GeSHi' => DOKU_INC.'inc/geshi.php', + 'TarLib' => DOKU_INC.'inc/TarLib.class.php', + 'ZipLib' => DOKU_INC.'inc/ZipLib.class.php', + 'DokuWikiFeedCreator' => DOKU_INC.'inc/feedcreator.class.php', + 'Doku_Parser_Mode' => DOKU_INC.'inc/parser/parser.php', + 'SafeFN' => DOKU_INC.'inc/SafeFN.class.php', + + 'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php', + 'DokuWiki_Admin_Plugin' => DOKU_PLUGIN.'admin.php', + 'DokuWiki_Syntax_Plugin' => DOKU_PLUGIN.'syntax.php', + + ); + + if(isset($classes[$name])){ + require_once($classes[$name]); + return; + } +} + diff --git a/inc/mail.php b/inc/mail.php index 3b0592b8b..38232d110 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -7,12 +7,11 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/EmailAddressValidator.php'); // end of line for mail lines - RFC822 says CRLF but postfix (and other MTAs?) // think different if(!defined('MAILHEADER_EOL')) define('MAILHEADER_EOL',"\n"); +if(!defined('QUOTEDPRINTABLE_EOL')) define('QUOTEDPRINTABLE_EOL',"\015\012"); #define('MAILHEADER_ASCIIONLY',1); /** @@ -256,11 +255,11 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true) // but this wouldn't be caught by such an easy RegExp if($maxlen){ preg_match_all( '/.{1,'.($maxlen - 2).'}([^=]{0,2})?/', $sLine, $aMatch ); - $sLine = implode( '=' . MAILHEADER_EOL, $aMatch[0] ); // add soft crlf's + $sLine = implode( '=' . QUOTEDPRINTABLE_EOL, $aMatch[0] ); // add soft crlf's } } // join lines into text - return implode(MAILHEADER_EOL,$aLines); + return implode(QUOTEDPRINTABLE_EOL,$aLines); } diff --git a/inc/media.php b/inc/media.php index 3850f4e33..668f42d6a 100644 --- a/inc/media.php +++ b/inc/media.php @@ -8,9 +8,6 @@ if(!defined('DOKU_INC')) die('meh.'); if(!defined('NL')) define('NL',"\n"); -require_once(DOKU_INC.'inc/html.php'); -require_once(DOKU_INC.'inc/search.php'); -require_once(DOKU_INC.'inc/JpegMeta.php'); /** * Lists pages which currently use a media file selected for deletion @@ -152,7 +149,6 @@ function media_inuse($id) { global $conf; $mediareferences = array(); if($conf['refcheck']){ - require_once(DOKU_INC.'inc/fulltext.php'); $mediareferences = ft_mediause($id,$conf['refshow']); if(!count($mediareferences)) { return false; @@ -230,7 +226,6 @@ function media_delete($id,$auth){ function media_upload($ns,$auth){ if($auth < AUTH_UPLOAD) return false; if(!checkSecurityToken()) return false; - require_once(DOKU_INC.'inc/confutils.php'); global $lang; global $conf; diff --git a/inc/pageutils.php b/inc/pageutils.php index 9c192e5e6..969a6ea0d 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -23,10 +23,11 @@ function getID($param='id',$clean=true){ $id = isset($_REQUEST[$param]) ? $_REQUEST[$param] : null; - $request = $_SERVER['REQUEST_URI']; - //construct page id from request URI if(empty($id) && $conf['userewrite'] == 2){ + $request = $_SERVER['REQUEST_URI']; + $script = ''; + //get the script URL if($conf['basedir']){ $relpath = ''; @@ -35,15 +36,14 @@ function getID($param='id',$clean=true){ } $script = $conf['basedir'].$relpath.basename($_SERVER['SCRIPT_FILENAME']); - }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['PATH_TRANSLATED']){ - $request = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','', - $_SERVER['PATH_TRANSLATED']); + }elseif($_SERVER['PATH_INFO']){ + $request = $_SERVER['PATH_INFO']; + }elseif($_SERVER['SCRIPT_NAME']){ + $script = $_SERVER['SCRIPT_NAME']; }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['SCRIPT_FILENAME']){ $script = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','', $_SERVER['SCRIPT_FILENAME']); $script = '/'.$script; - }else{ - $script = $_SERVER['SCRIPT_NAME']; } //clean script and request (fixes a windows problem) @@ -185,10 +185,10 @@ function noNSorNS($id) { global $conf; $p = noNS($id); - if ($p == $conf['start']) { + if ($p == $conf['start'] || $p == false) { $p = curNS($id); if ($p == false) { - return noNS($id); + return $conf['start']; } } return $p; @@ -198,7 +198,7 @@ function noNSorNS($id) { * Creates a XHTML valid linkid from a given headline title * * @param string $title The headline title - * @param array $check List of existing IDs + * @param array $check Existing IDs (title => number) * @author Andreas Gohr <andi@splitbrain.org> */ function sectionID($title,&$check) { @@ -212,12 +212,11 @@ function sectionID($title,&$check) { if(is_array($check)){ // make sure tiles are unique - $num = ''; - while(in_array($title.$num,$check)){ - ($num) ? $num++ : $num = 1; + if (!array_key_exists ($title,$check)) { + $check[$title] = 0; + } else { + $title .= ++ $check[$title]; } - $title = $title.$num; - $check[] = $title; } return $title; @@ -319,15 +318,7 @@ function metaFiles($id){ $ns = getNS($id); $dir = ($ns) ? metaFN($ns,'').'/' : metaFN($ns,''); $files = array(); - - $dh = @opendir($dir); - if(!$dh) return $files; - while(($file = readdir($dh)) !== false){ - if(strpos($file,$name.'.') === 0 && !is_dir($dir.$file)) - $files[] = $dir.$file; - } - closedir($dh); - + $files = glob($dir.$name.'.*'); return $files; } @@ -446,7 +437,8 @@ function resolve_pageid($ns,&$page,&$exists){ $file = wikiFN($page); // if ends with colon or slash we have a namespace link - if(substr($page,-1) == ':' || ($conf['useslash'] && substr($page,-1) == '/')){ + if(in_array(substr($page,-1), array(':', ';')) || + ($conf['useslash'] && substr($page,-1) == '/')){ if(page_exists($page.$conf['start'])){ // start page inside namespace $page = $page.$conf['start']; @@ -534,4 +526,71 @@ function isVisiblePage($id){ return !isHiddenPage($id); } +/** + * Format an id for output to a user + * + * Namespaces are denoted by a trailing “:*”. The root namespace is + * “*”. Output is escaped. + * + * @author Adrian Lang <lang@cosmocode.de> + */ + +function prettyprint_id($id) { + if (!$id || $id === ':') { + return '*'; + } + if ((substr($id, -1, 1) === ':')) { + $id .= '*'; + } + return hsc($id); +} + +/** + * Encode a UTF-8 filename to use on any filesystem + * + * Uses the 'fnencode' option to determine encoding + * + * When the second parameter is true the string will + * be encoded only if non ASCII characters are detected - + * This makes it safe to run it multiple times on the + * same string (default is true) + * + * @author Andreas Gohr <andi@splitbrain.org> + * @see urlencode + */ +function utf8_encodeFN($file,$safe=true){ + global $conf; + if($conf['fnencode'] == 'utf-8') return $file; + + if($safe && preg_match('#^[a-zA-Z0-9/_\-\.%]+$#',$file)){ + return $file; + } + + if($conf['fnencode'] == 'safe'){ + return SafeFN::encode($file); + } + + $file = urlencode($file); + $file = str_replace('%2F','/',$file); + return $file; +} + +/** + * Decode a filename back to UTF-8 + * + * Uses the 'fnencode' option to determine encoding + * + * @author Andreas Gohr <andi@splitbrain.org> + * @see urldecode + */ +function utf8_decodeFN($file){ + global $conf; + if($conf['fnencode'] == 'utf-8') return $file; + + if($conf['fnencode'] == 'safe'){ + return SafeFN::decode($file); + } + + return urldecode($file); +} diff --git a/inc/parser/handler.php b/inc/parser/handler.php index 9fe5866ad..0b8b79254 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -12,15 +12,12 @@ class Doku_Handler { var $status = array( 'section' => false, - 'section_edit_start' => -1, - 'section_edit_level' => 1, - 'section_edit_title' => '' ); var $rewriteBlocks = true; function Doku_Handler() { - $this->CallWriter = & new Doku_Handler_CallWriter($this); + $this->CallWriter = new Doku_Handler_CallWriter($this); } function _addCall($handler, $args, $pos) { @@ -40,14 +37,10 @@ class Doku_Handler { if ( $this->status['section'] ) { $last_call = end($this->calls); array_push($this->calls,array('section_close',array(), $last_call[2])); - if ($this->status['section_edit_start']>1) { - // ignore last edit section if there is only one header - array_push($this->calls,array('section_edit',array($this->status['section_edit_start'], 0, $this->status['section_edit_level'], $this->status['section_edit_title']), $last_call[2])); - } } if ( $this->rewriteBlocks ) { - $B = & new Doku_Handler_Block(); + $B = new Doku_Handler_Block(); $this->calls = $B->process($this->calls); } @@ -97,8 +90,6 @@ class Doku_Handler { } function header($match, $state, $pos) { - global $conf; - // get level and title $title = trim($match); $level = 7 - strspn($title,'='); @@ -108,13 +99,6 @@ class Doku_Handler { if ($this->status['section']) $this->_addCall('section_close',array(),$pos); - if ($level<=$conf['maxseclevel']) { - $this->_addCall('section_edit',array($this->status['section_edit_start'], $pos-1, $this->status['section_edit_level'], $this->status['section_edit_title']), $pos); - $this->status['section_edit_start'] = $pos; - $this->status['section_edit_level'] = $level; - $this->status['section_edit_title'] = $title; - } - $this->_addCall('header',array($title,$level,$pos), $pos); $this->_addCall('section_open',array($level),$pos); @@ -212,7 +196,7 @@ class Doku_Handler { $this->_footnote = true; - $ReWriter = & new Doku_Handler_Nest($this->CallWriter,'footnote_close'); + $ReWriter = new Doku_Handler_Nest($this->CallWriter,'footnote_close'); $this->CallWriter = & $ReWriter; $this->_addCall('footnote_open', array(), $pos); break; @@ -240,7 +224,7 @@ class Doku_Handler { function listblock($match, $state, $pos) { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_List($this->CallWriter); + $ReWriter = new Doku_Handler_List($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('list_open', array($match), $pos); break; @@ -302,7 +286,7 @@ class Doku_Handler { function preformatted($match, $state, $pos) { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Preformatted($this->CallWriter); + $ReWriter = new Doku_Handler_Preformatted($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('preformatted_start',array(), $pos); break; @@ -328,7 +312,7 @@ class Doku_Handler { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Quote($this->CallWriter); + $ReWriter = new Doku_Handler_Quote($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('quote_start',array($match), $pos); break; @@ -360,21 +344,16 @@ class Doku_Handler { function code($match, $state, $pos, $type='code') { if ( $state == DOKU_LEXER_UNMATCHED ) { $matches = explode('>',$match,2); - $matches[0] = trim($matches[0]); - - list($language,$filename) = explode(' ',$matches[0],2); - $language = trim($language); - $filename = trim($filename); - if ( $language == '' ) $language = null; - if ( $language == '-' ) $language = null; - if ( $filename == '' ) $filename = null; - # We shortcut html here. - if($language == 'html') $language = 'html4strict'; - $this->_addCall( - $type, - array($matches[1],$language,$filename), - $pos - ); + + $param = preg_split('/\s+/', $matches[0], 2, PREG_SPLIT_NO_EMPTY); + while(count($param) < 2) array_push($param, null); + + // We shortcut html here. + if ($param[0] == 'html') $param[0] = 'html4strict'; + if ($param[0] == '-') $param[0] = null; + array_unshift($param, $matches[1]); + + $this->_addCall($type, $param, $pos); } return true; } @@ -580,10 +559,10 @@ class Doku_Handler { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Table($this->CallWriter); + $ReWriter = new Doku_Handler_Table($this->CallWriter); $this->CallWriter = & $ReWriter; - $this->_addCall('table_start', array(), $pos); + $this->_addCall('table_start', array($pos + 1), $pos); if ( trim($match) == '^' ) { $this->_addCall('tableheader', array(), $pos); } else { @@ -592,7 +571,7 @@ class Doku_Handler { break; case DOKU_LEXER_EXIT: - $this->_addCall('table_end', array(), $pos); + $this->_addCall('table_end', array($pos), $pos); $this->CallWriter->process(); $ReWriter = & $this->CallWriter; $this->CallWriter = & $ReWriter->CallWriter; @@ -1196,7 +1175,7 @@ class Doku_Handler_Table { $this->tableStart($call); break; case 'table_row': - $this->tableRowClose(array('tablerow_close',$call[1],$call[2])); + $this->tableRowClose($call); $this->tableRowOpen(array('tablerow_open',$call[1],$call[2])); break; case 'tableheader': @@ -1204,7 +1183,7 @@ class Doku_Handler_Table { $this->tableCell($call); break; case 'table_end': - $this->tableRowClose(array('tablerow_close',$call[1],$call[2])); + $this->tableRowClose($call); $this->tableEnd($call); break; default: @@ -1216,13 +1195,13 @@ class Doku_Handler_Table { } function tableStart($call) { - $this->tableCalls[] = array('table_open',array(),$call[2]); + $this->tableCalls[] = array('table_open',$call[1],$call[2]); $this->tableCalls[] = array('tablerow_open',array(),$call[2]); $this->firstCell = true; } function tableEnd($call) { - $this->tableCalls[] = array('table_close',array(),$call[2]); + $this->tableCalls[] = array('table_close',$call[1],$call[2]); $this->finalizeTable(); } @@ -1242,7 +1221,7 @@ class Doku_Handler_Table { break; } } - $this->tableCalls[] = $call; + $this->tableCalls[] = array('tablerow_close', array(), $call[2]); if ( $this->currentCols > $this->maxCols ) { $this->maxCols = $this->currentCols; @@ -1287,6 +1266,7 @@ class Doku_Handler_Table { // Adjust to num cols not num col delimeters $this->tableCalls[0][1][] = $this->maxCols - 1; $this->tableCalls[0][1][] = $this->maxRows; + $this->tableCalls[0][1][] = array_shift($this->tableCalls[0][1]); } else { trigger_error('First element in table call list is not table_open'); } @@ -1299,19 +1279,24 @@ class Doku_Handler_Table { // Look for the colspan elements and increment the colspan on the // previous non-empty opening cell. Once done, delete all the cells // that contain colspans - foreach ( $this->tableCalls as $key => $call ) { + for ($key = 0 ; $key < count($this->tableCalls) ; ++$key) { + $call = $this->tableCalls[$key]; - if ( $call[0] == 'tablerow_open' ) { + switch ($call[0]) { + case 'tablerow_open': $lastRow++; $lastCell = 0; + break; - } else if ( $call[0] == 'tablecell_open' || $call[0] == 'tableheader_open' ) { + case 'tablecell_open': + case 'tableheader_open': $lastCell++; $cellKey[$lastRow][$lastCell] = $key; + break; - } else if ( $call[0] == 'table_align' ) { + case 'table_align': $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open')); $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close')); @@ -1335,8 +1320,9 @@ class Doku_Handler_Table { // Now convert the whitespace back to cdata $this->tableCalls[$key][0] = 'cdata'; + break; - } else if ( $call[0] == 'colspan' ) { + case 'colspan': $this->tableCalls[$key-1][1][0] = false; @@ -1356,8 +1342,9 @@ class Doku_Handler_Table { $toDelete[] = $key-1; $toDelete[] = $key; $toDelete[] = $key+1; + break; - } else if ( $call[0] == 'rowspan' ) { + case 'rowspan': if ( $this->tableCalls[$key-1][0] == 'cdata' ) { // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex @@ -1365,25 +1352,48 @@ class Doku_Handler_Table { } else { - $this->tableCalls[$key-1][1][2] = false; - + $spanning_cell = null; for($i = $lastRow-1; $i > 0; $i--) { if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) { - if ( false !== $this->tableCalls[$cellKey[$i][$lastCell]][1][2] ) { - $this->tableCalls[$cellKey[$i][$lastCell]][1][2]++; + if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) { + $spanning_cell = $i; break; } } } + if (is_null($spanning_cell)) { + // No spanning cell found, so convert this cell to + // an empty one to avoid broken tables + $this->tableCells[$key][1][1] = ''; + continue; + } + $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++; + + $this->tableCalls[$key-1][1][2] = false; $toDelete[] = $key-1; $toDelete[] = $key; - $toDelete[] = $key+1; + $toDelete[] = $key+1; } + break; + + case 'tablerow_close': + + // Fix broken tables by adding missing cells + while (++$lastCell < $this->maxCols) { + array_splice($this->tableCalls, $key, 0, array( + array('tablecell_open', array(1, null, 1), $call[2]), + array('cdata', array(''), $call[2]), + array('tablecell_close', array(), $call[2]))); + $key += 3; + } + + break; + } } @@ -1504,13 +1514,7 @@ class Doku_Handler_Block { //remove the whole paragraph array_splice($this->calls,$i); }else{ - if ($this->calls[count($this->calls)-1][0] == 'section_edit') { - $tmp = array_pop($this->calls); - $this->calls[] = array('p_close',array(), $pos); - $this->calls[] = $tmp; - } else { - $this->calls[] = array('p_close',array(), $pos); - } + $this->calls[] = array('p_close',array(), $pos); } $this->inParagraph = false; diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php index afd260a05..211945d8f 100644 --- a/inc/parser/lexer.php +++ b/inc/parser/lexer.php @@ -295,7 +295,7 @@ class Doku_Lexer { $this->_case = $case; $this->_regexes = array(); $this->_parser = &$parser; - $this->_mode = &new Doku_LexerStateStack($start); + $this->_mode = new Doku_LexerStateStack($start); $this->_mode_handlers = array(); } diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php index fc60e5774..f635ea1d5 100644 --- a/inc/parser/metadata.php +++ b/inc/parser/metadata.php @@ -334,8 +334,7 @@ class Doku_Renderer_metadata extends Doku_Renderer { $this->_firstimage($name['src']); if ($this->capture){ - if ($name) $this->doc .= $name; - else $this->doc .= '<'.$url.'>'; + $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>'); } } @@ -345,7 +344,7 @@ class Doku_Renderer_metadata extends Doku_Renderer { if ($this->capture){ list($wikiUri, $hash) = explode('#', $wikiUri, 2); - $name = $this->_getLinkTitle($name, $wikiName.'>'.$wikiUri); + $name = $this->_getLinkTitle($name, $wikiUri); $this->doc .= $name; } } diff --git a/inc/parser/parser.php b/inc/parser/parser.php index a78b08a29..435b8aa46 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -61,7 +61,7 @@ class Doku_Parser { function addBaseMode(& $BaseMode) { $this->modes['base'] = & $BaseMode; if ( !$this->Lexer ) { - $this->Lexer = & new Doku_Lexer($this->Handler,'base', true); + $this->Lexer = new Doku_Lexer($this->Handler,'base', true); } $this->modes['base']->Lexer = & $this->Lexer; } @@ -413,8 +413,8 @@ class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { } function connectTo($mode) { - $this->Lexer->addEntryPattern('\n {2,}[\-\*]',$mode,'listblock'); - $this->Lexer->addEntryPattern('\n\t{1,}[\-\*]',$mode,'listblock'); + $this->Lexer->addEntryPattern('[ \t]*\n {2,}[\-\*]',$mode,'listblock'); + $this->Lexer->addEntryPattern('[ \t]*\n\t{1,}[\-\*]',$mode,'listblock'); $this->Lexer->addPattern('\n {2,}[\-\*]','listblock'); $this->Lexer->addPattern('\n\t{1,}[\-\*]','listblock'); diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 6082e935d..7e52cfce2 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -49,6 +49,15 @@ class Doku_Renderer extends DokuWiki_Plugin { trigger_error('getFormat() not implemented in '.get_class($this), E_USER_WARNING); } + /** + * Allow the plugin to prevent DokuWiki from reusing an instance + * + * @return bool false if the plugin has to be instantiated + */ + function isSingleton() { + return false; + } + //handle plugin rendering function plugin($name,$data){ @@ -85,8 +94,6 @@ class Doku_Renderer extends DokuWiki_Plugin { function header($text, $level, $pos) {} - function section_edit($start, $end, $level, $name) {} - function section_open($level) {} function section_close() {} @@ -231,9 +238,9 @@ class Doku_Renderer extends DokuWiki_Plugin { $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL ) {} - function table_open($maxcols = NULL, $numrows = NULL){} + function table_open($maxcols = NULL, $numrows = NULL, $pos){} - function table_close(){} + function table_close($pos){} function tablerow_open(){} @@ -264,20 +271,12 @@ class Doku_Renderer extends DokuWiki_Plugin { list($name,$hash) = explode('#',$name,2); if($hash) return $hash; - //trim colons or slash of a namespace link - $name = rtrim($name,':'); - if($conf['useslash']) - $name = rtrim($name,'/'); - + $name = strtr($name,';',':'); if($conf['useslash']){ - $nssep = '[:;/]'; - }else{ - $nssep = '[:;]'; + $name = strtr($name,'/',':'); } - $name = preg_replace('!.*'.$nssep.'!','',$name); - if(!$name) return $this->_simpleTitle($conf['start']); - return $name; + return noNSorNS($name); } /** diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 4d5333f7a..5a3d945d1 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -29,6 +29,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { var $doc = ''; // will contain the whole document var $toc = array(); // will contain the Table of Contents + private $sectionedits = array(); // A stack of section edit data var $headers = array(); var $footnotes = array(); @@ -39,6 +40,40 @@ class Doku_Renderer_xhtml extends Doku_Renderer { var $_counter = array(); // used as global counter, introduced for table classes var $_codeblock = 0; // counts the code and file blocks, used to provide download links + /** + * Register a new edit section range + * + * @param $type string The section type identifier + * @param $title string The section title + * @param $start int The byte position for the edit start + * @return string A marker class for the starting HTML element + * @author Adrian Lang <lang@cosmocode.de> + */ + public function startSectionEdit($start, $type, $title = null) { + static $lastsecid = 0; + $this->sectionedits[] = array(++$lastsecid, $start, $type, $title); + return 'sectionedit' . $lastsecid; + } + + /** + * Finish an edit section range + * + * @param $end int The byte position for the edit end; null for the rest of + the page + * @author Adrian Lang <lang@cosmocode.de> + */ + public function finishSectionEdit($end = null) { + list($id, $start, $type, $title) = array_pop($this->sectionedits); + if (!is_null($end) && $end <= $start) { + return; + } + $this->doc .= "<!-- EDIT$id " . strtoupper($type) . ' '; + if (!is_null($title)) { + $this->doc .= '"' . str_replace('"', '', $title) . '" '; + } + $this->doc .= "[$start-" . (is_null($end) ? '' : $end) . '] -->'; + } + function getFormat(){ return 'xhtml'; } @@ -51,6 +86,17 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } function document_end() { + // Finish open section edits. + while (count($this->sectionedits) > 0) { + if ($this->sectionedits[count($this->sectionedits) - 1][1] <= 1) { + // If there is only one section, do not write a section edit + // marker. + array_pop($this->sectionedits); + } else { + $this->finishSectionEdit(); + } + } + if ( count ($this->footnotes) > 0 ) { $this->doc .= '<div class="footnotes">'.DOKU_LF; @@ -106,6 +152,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } function header($text, $level, $pos) { + global $conf; + if(!$text) return; //skip empty headlines $hid = $this->_headerToLink($text,true); @@ -122,30 +170,24 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } $this->lastlevel = $level; + if ($level <= $conf['maxseclevel'] && + count($this->sectionedits) > 0 && + $this->sectionedits[count($this->sectionedits) - 1][2] === 'section') { + $this->finishSectionEdit($pos - 1); + } + // write the header - $this->doc .= DOKU_LF.'<h'.$level.'><a name="'.$hid.'" id="'.$hid.'">'; + $this->doc .= DOKU_LF.'<h'.$level; + if ($level <= $conf['maxseclevel']) { + $this->doc .= ' class="' . $this->startSectionEdit($pos, 'section', $text) . '"'; + } + $this->doc .= '><a name="'.$hid.'" id="'.$hid.'">'; $this->doc .= $this->_xmlEntities($text); $this->doc .= "</a></h$level>".DOKU_LF; } - /** - * Section edit marker is replaced by an edit button when - * the page is editable. Replacement done in 'inc/html.php#html_secedit' - * - * @author Andreas Gohr <andi@splitbrain.org> - * @author Ben Coburn <btcoburn@silicodon.net> - */ - function section_edit($start, $end, $level, $name) { - global $conf; - - if ($start!=-1 && $level<=$conf['maxseclevel']) { - $name = str_replace('"', '', $name); - $this->doc .= '<!-- SECTION "'.$name.'" ['.$start.'-'.(($end===0)?'':$end).'] -->'; - } - } - function section_open($level) { - $this->doc .= "<div class=\"level$level\">".DOKU_LF; + $this->doc .= '<div class="level' . $level . '">' . DOKU_LF; } function section_close() { @@ -400,6 +442,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $this->doc .= '</a></dt>'.DOKU_LF.'<dd>'; } + if ($text{0} == "\n") { + $text = substr($text, 1); + } + if (substr($text, -1) == "\n") { + $text = substr($text, 0, -1); + } + if ( is_null($language) ) { $this->doc .= '<pre class="'.$type.'">'.$this->_xmlEntities($text).'</pre>'.DOKU_LF; } else { @@ -517,6 +566,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer { function internallink($id, $name = NULL, $search=NULL,$returnonly=false,$linktype='content') { global $conf; global $ID; + + $params = ''; + $parts = explode('?', $id, 2); + if (count($parts) === 2) { + $id = $parts[0]; + $params = $parts[1]; + } + // default name is based on $id as given $default = $this->_simpleTitle($id); @@ -550,7 +607,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } $link['more'] = ''; $link['class'] = $class; - $link['url'] = wl($id); + $link['url'] = wl($id, $params); $link['name'] = $name; $link['title'] = $id; //add search string @@ -845,14 +902,16 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } // $numrows not yet implemented - function table_open($maxcols = NULL, $numrows = NULL){ + function table_open($maxcols = NULL, $numrows = NULL, $pos){ + global $lang; // initialize the row counter used for classes $this->_counter['row_counter'] = 0; - $this->doc .= '<table class="inline">'.DOKU_LF; + $this->doc .= '<div class="table ' . $this->startSectionEdit($pos, 'table') . '"><table class="inline">'.DOKU_LF; } - function table_close(){ - $this->doc .= '</table>'.DOKU_LF; + function table_close($pos){ + $this->doc .= '</table></div>'.DOKU_LF; + $this->finishSectionEdit($pos); } function tablerow_open(){ @@ -966,7 +1025,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { }elseif($ext == 'jpg' || $ext == 'jpeg'){ //try to use the caption from IPTC/EXIF require_once(DOKU_INC.'inc/JpegMeta.php'); - $jpeg =& new JpegMeta(mediaFN($src)); + $jpeg =new JpegMeta(mediaFN($src)); if($jpeg !== false) $cap = $jpeg->getTitle(); if($cap){ $title = $this->_xmlEntities($cap); @@ -1019,7 +1078,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $att['class'] = "media$align"; if($align == 'right') $att['align'] = 'right'; if($align == 'left') $att['align'] = 'left'; - $ret .= html_flashobject(ml($src,array('cache'=>$cache)),$width,$height, + $ret .= html_flashobject(ml($src,array('cache'=>$cache),true,'&'),$width,$height, array('quality' => 'high'), null, $att, diff --git a/inc/parserutils.php b/inc/parserutils.php index e2dd85979..35ccdc1d6 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -8,10 +8,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/confutils.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/pluginutils.php'); -require_once(DOKU_INC.'inc/cache.php'); /** * Returns the parsed Wikitext in XHTML for the given id and revision. @@ -204,10 +200,10 @@ function p_get_instructions($text){ $modes = p_get_parsermodes(); // Create the parser - $Parser = & new Doku_Parser(); + $Parser = new Doku_Parser(); // Add the Handler - $Parser->Handler = & new Doku_Handler(); + $Parser->Handler = new Doku_Handler(); //add modes to parser foreach($modes as $mode){ @@ -226,7 +222,7 @@ function p_get_instructions($text){ * * @author Esther Brunner <esther@kaffeehaus.ch> */ -function p_get_metadata($id, $key=false, $render=false){ +function p_get_metadata($id, $key='', $render=false){ global $ID, $INFO, $cache_metadata; // cache the current page @@ -245,19 +241,16 @@ function p_get_metadata($id, $key=false, $render=false){ if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } } - // filter by $key - if ($key){ - list($key, $subkey) = explode(' ', $key, 2); - $subkey = trim($subkey); + $val = $meta['current']; - if ($subkey) { - return isset($meta['current'][$key][$subkey]) ? $meta['current'][$key][$subkey] : null; + // filter by $key + foreach(preg_split('/\s+/', $key, 2, PREG_SPLIT_NO_EMPTY) as $cur_key) { + if (!isset($val[$cur_key])) { + return null; } - - return isset($meta['current'][$key]) ? $meta['current'][$key] : null; + $val = $val[$cur_key]; } - - return $meta['current']; + return $val; } /** @@ -416,14 +409,14 @@ function p_render_metadata($id, $orig){ } // set up the renderer - $renderer = & new Doku_Renderer_metadata(); + $renderer = new Doku_Renderer_metadata(); $renderer->meta = $orig['current']; $renderer->persistent = $orig['persistent']; // loop through the instructions foreach ($instructions as $instruction){ // execute the callback against the renderer - call_user_func_array(array(&$renderer, $instruction[0]), $instruction[1]); + call_user_func_array(array(&$renderer, $instruction[0]), (array) $instruction[1]); } $evt->result = array('current'=>$renderer->meta,'persistent'=>$renderer->persistent); @@ -587,12 +580,12 @@ function & p_get_renderer($mode) { msg("Renderer '$rname' for $mode not valid",-1); return null; } - $Renderer = & new $rclass(); + $Renderer = new $rclass(); }else{ // Maybe a plugin/component is available? list($plugin, $component) = $plugin_controller->_splitName($rname); if (!$plugin_controller->isdisabled($plugin)){ - $Renderer =& $plugin_controller->load('renderer',$rname, true); + $Renderer =& $plugin_controller->load('renderer',$rname); } if(is_null($Renderer)){ @@ -648,8 +641,6 @@ function p_xhtml_cached_geshi($code, $language, $wrapper='pre') { } else { - require_once(DOKU_INC . 'inc/geshi.php'); - $geshi = new GeSHi($code, $language, DOKU_INC . 'inc/geshi'); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); diff --git a/inc/plugin.php b/inc/plugin.php index 364534739..aff07c1e5 100644 --- a/inc/plugin.php +++ b/inc/plugin.php @@ -231,12 +231,12 @@ class DokuWiki_Plugin { } /** - * Allow the plugin to prevent DokuWiki creating a second instance of itself + * Allow the plugin to prevent DokuWiki from reusing an instance * - * @return bool true if the plugin can not be instantiated more than once + * @return bool false if the plugin has to be instantiated */ function isSingleton() { - return false; + return true; } // deprecated functions diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php index 4400a4187..ad394e11f 100644 --- a/inc/plugincontroller.class.php +++ b/inc/plugincontroller.class.php @@ -55,18 +55,26 @@ class Doku_Plugin_Controller { * * @author Andreas Gohr <andi@splitbrain.org> * - * @param $type string type of plugin to load - * @param $name string name of the plugin to load - * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance + * @param $type string type of plugin to load + * @param $name string name of the plugin to load + * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance + * @param $disabled bool true to load even disabled plugins * @return objectreference the plugin object or null on failure */ - function &load($type,$name,$new=false){ + function &load($type,$name,$new=false,$disabled=false){ //we keep all loaded plugins available in global scope for reuse global $DOKU_PLUGINS; + list($plugin,$component) = $this->_splitName($name); + + // check if disabled + if(!$disabled && $this->isdisabled($plugin)){ + return null; + } + //plugin already loaded? if(!empty($DOKU_PLUGINS[$type][$name])){ - if ($new && !$DOKU_PLUGINS[$type][$name]->isSingleton()) { + if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) { $class = $type.'_plugin_'.$name; return class_exists($class) ? new $class : null; } else { @@ -75,7 +83,6 @@ class Doku_Plugin_Controller { } //try to load the wanted plugin file - list($plugin,$component) = $this->_splitName($name); $dir = $this->get_directory($plugin); $file = $component ? "$type/$component.php" : "$type.php"; @@ -120,8 +127,8 @@ class Doku_Plugin_Controller { function _populateMasterList() { if ($dh = opendir(DOKU_PLUGIN)) { while (false !== ($plugin = readdir($dh))) { - if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp') continue; - if (is_file(DOKU_PLUGIN.$plugin)) continue; + if ($plugin[0] == '.') continue; // skip hidden entries + if (is_file(DOKU_PLUGIN.$plugin)) continue; // skip files, we're only interested in directories if (substr($plugin,-9) == '.disabled') { // the plugin was disabled by rc2009-01-26 diff --git a/inc/pluginutils.php b/inc/pluginutils.php index 8294d1ec8..85bcaee1e 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -8,14 +8,6 @@ // plugin related constants if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_INC.'inc/plugincontroller.class.php'); - -$plugin_types = array('admin','syntax','action','renderer', 'helper'); - -global $plugin_controller_class, $plugin_controller; -if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; - -$plugin_controller = new $plugin_controller_class(); /** * Original plugin functions, remain for backwards compatibility @@ -24,9 +16,9 @@ function plugin_list($type='',$all=false) { global $plugin_controller; return $plugin_controller->getList($type,$all); } -function &plugin_load($type,$name,$new=false) { +function &plugin_load($type,$name,$new=false,$disabled=false) { global $plugin_controller; - return $plugin_controller->load($type,$name,$new); + return $plugin_controller->load($type,$name,$new,$disabled); } function plugin_isdisabled($plugin) { global $plugin_controller; @@ -44,4 +36,3 @@ function plugin_directory($plugin) { global $plugin_controller; return $plugin_controller->get_directory($plugin); } - diff --git a/inc/search.php b/inc/search.php index 2b9a51fb3..ea8897662 100644 --- a/inc/search.php +++ b/inc/search.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); /** * recurse direcory @@ -195,13 +194,12 @@ function search_media(&$data,$base,$file,$type,$lvl,$opts){ $info['writable'] = is_writable($base.'/'.$file); if(preg_match("/\.(jpe?g|gif|png)$/",$file)){ $info['isimg'] = true; - require_once(DOKU_INC.'inc/JpegMeta.php'); $info['meta'] = new JpegMeta($base.'/'.$file); }else{ $info['isimg'] = false; } if($opts['hash']){ - $info['hash'] = md5(io_readFile(wikiFN($info['id']),false)); + $info['hash'] = md5(io_readFile(mediaFN($info['id']),false)); } $data[] = $info; @@ -321,7 +319,6 @@ function search_backlinks(&$data,$base,$file,$type,$lvl,$opts){ } //fetch instructions - require_once(DOKU_INC.'inc/parserutils.php'); $instructions = p_cached_instructions($base.$file,true); if(is_null($instructions)) return false; @@ -552,7 +549,7 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){ $return = true; // get ID and check if it is a valid one - $item['id'] = pathID($file); + $item['id'] = pathID($file,$opts['keeptxt']); if($item['id'] != cleanID($item['id'])){ if($opts['showmsg']) msg(hsc($item['id']).' is not a valid file name for DokuWiki - skipped',-1); diff --git a/inc/subscription.php b/inc/subscription.php new file mode 100644 index 000000000..f39b87eb5 --- /dev/null +++ b/inc/subscription.php @@ -0,0 +1,372 @@ +<?php +/** + * Utilities for handling (email) subscriptions + * + * The public interface of this file consists of the functions + * - subscription_find + * - subscription_send_digest + * - subscription_send_list + * - subscription_set + * - get_info_subscribed + * - subscription_addresslist + * - subscription_lock + * - subscription_unlock + * + * @author Adrian Lang <lang@cosmocode.de> + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + */ + +/** + * Get the name of the metafile tracking subscriptions to target page or + * namespace + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_filename($id) { + $meta_fname = '.mlist'; + if ((substr($id, -1, 1) === ':')) { + $meta_froot = getNS($id); + $meta_fname = '/' . $meta_fname; + } else { + $meta_froot = $id; + } + return metaFN((string) $meta_froot, $meta_fname); +} + +/** + * Lock subscription info for an ID + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_lock($id) { + $lockf = subscription_filename($id) . '.lock'; + return !file_exists($lockf) && touch($lockf); +} + +/** + * Unlock subscription info for an ID + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_unlock($id) { + $lockf = subscription_filename($id) . '.lock'; + return file_exists($lockf) && unlink($lockf); +} + +/** + * Set subscription information + * + * Allows to set subscription informations for permanent storage in meta files. + * Subscriptions consist of a target object, a subscribing user, a subscribe + * style and optional data. + * A subscription may be deleted by specifying an empty subscribe style. + * Only one subscription per target and user is allowed. + * The function returns false on error, otherwise true. Note that no error is + * returned if a subscription should be deleted but the user is not subscribed + * and the subscription meta file exists. + * + * @param string $user The subscriber or unsubscriber + * @param string $page The target object (page or namespace), specified by + * id; Namespaces are identified by a trailing colon. + * @param string $style The subscribe style; DokuWiki currently implements + * “every”, “digest”, and “list”. + * @param string $data An optional data blob + * @param bool $overwrite Whether an existing subscription may be overwritten + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_set($user, $page, $style, $data = null, + $overwrite = false) { + global $lang; + if (is_null($style)) { + // Delete subscription. + $file = subscription_filename($page); + if (!@file_exists($file)) { + msg(sprintf($lang['subscr_not_subscribed'], $user, + prettyprint_id($page)), -1); + return false; + } + + // io_deleteFromFile does not return false if no line matched. + return io_deleteFromFile($file, + subscription_regex(array('user' => $user)), + true); + } + + // Delete subscription if one exists and $overwrite is true. If $overwrite + // is false, fail. + $subs = subscription_find($page, array('user' => $user)); + if (count($subs) > 0 && array_pop(array_keys($subs)) === $page) { + if (!$overwrite) { + msg(sprintf($lang['subscr_already_subscribed'], $user, + prettyprint_id($page)), -1); + return false; + } + // Fail if deletion failed, else continue. + if (!subscription_set($user, $page, null)) { + return false; + } + } + + $file = subscription_filename($page); + $content = auth_nameencode($user) . ' ' . $style; + if (!is_null($data)) { + $content .= ' ' . $data; + } + return io_saveFile($file, $content . "\n", true); +} + +/** + * Recursively search for matching subscriptions + * + * This function searches all relevant subscription files for a page or + * namespace. + * + * @param string $page The target object’s (namespace or page) id + * @param array $pre A hash of predefined values + * + * @see function subscription_regex for $pre documentation + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_find($page, $pre) { + // Construct list of files which may contain relevant subscriptions. + $filenames = array(':' => subscription_filename(':')); + do { + $filenames[$page] = subscription_filename($page); + $page = getNS(rtrim($page, ':')) . ':'; + } while ($page !== ':'); + + // Handle files. + $matches = array(); + foreach ($filenames as $cur_page => $filename) { + if (!@file_exists($filename)) { + continue; + } + $subscriptions = file($filename); + foreach ($subscriptions as $subscription) { + if (strpos($subscription, ' ') === false) { + // This is an old subscription file. + $subscription = trim($subscription) . " every\n"; + } + if (preg_match(subscription_regex($pre), $subscription, + $line_matches) === 0) { + continue; + } + $match = array_slice($line_matches, 1); + if (!isset($matches[$cur_page])) { + $matches[$cur_page] = array(); + } + $matches[$cur_page][] = $match; + } + } + return array_reverse($matches); +} + +/** + * Get data for $INFO['subscribed'] + * + * $INFO['subscribed'] is either false if no subscription for the current page + * and user is in effect. Else it contains an array of arrays with the fields + * “target”, “style”, and optionally “data”. + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function get_info_subscribed() { + global $ID; + global $conf; + if (!$conf['subscribers']) { + return false; + } + + $subs = subscription_find($ID, array('user' => $_SERVER['REMOTE_USER'])); + if (count($subs) === 0) { + return false; + } + + $_ret = array(); + foreach ($subs as $target => $subs_data) { + $new = array('target' => $target, + 'style' => $subs_data[0][0]); + if (count($subs_data[0]) > 1) { + $new['data'] = $subs_data[0][1]; + } + $_ret[] = $new; + } + + return $_ret; +} + +/** + * Construct a regular expression parsing a subscription definition line + * + * @param array $pre A hash of predefined values; “user”, “style”, and + * “data” may be set to limit the results to + * subscriptions matching these parameters. If + * “escaped” is true, these fields are inserted into the + * regular expression without escaping. + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_regex($pre = array()) { + if (!isset($pre['escaped']) || $pre['escaped'] === false) { + $pre = array_map('preg_quote_cb', $pre); + } + foreach (array('user', 'style', 'data') as $key) { + if (!isset($pre[$key])) { + $pre[$key] = '(\S+)'; + } + } + return '/^' . $pre['user'] . '(?: ' . $pre['style'] . + '(?: ' . $pre['data'] . ')?)?$/'; +} + +/** + * Return a string with the email addresses of all the + * users subscribed to a page + * + * This is the default action for COMMON_NOTIFY_ADDRESSLIST. + * + * @param array $data Containing $id (the page id), $self (whether the author + * should be notified, $addresslist (current email address + * list) + * + * @author Steven Danz <steven-danz@kc.rr.com> + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_addresslist(&$data){ + global $conf; + global $auth; + + $id = $data['id']; + $self = $data['self']; + $addresslist = $data['addresslist']; + + if (!$conf['subscribers']) { + return ''; + } + $pres = array('style' => 'every', 'escaped' => true); + if (!$self && isset($_SERVER['REMOTE_USER'])) { + $pres['user'] = '((?:(?!' . preg_quote_cb($_SERVER['REMOTE_USER']) . + ')\S?)+)'; + } + $subs = subscription_find($id, $pres); + $emails = array(); + foreach ($subs as $by_targets) { + foreach ($by_targets as $sub) { + $info = $auth->getUserData($sub[0]); + if ($info === false) continue; + $level = auth_aclcheck($id, $sub[0], $info['grps']); + if ($level >= AUTH_READ) { + if (strcasecmp($info['mail'], $conf['notify']) != 0) { + $emails[$sub[0]] = $info['mail']; + } + } + } + } + $data['addresslist'] = trim($addresslist . ',' . implode(',', $emails), ','); +} + +/** + * Send a digest mail + * + * Sends a digest mail showing a bunch of changes. + * + * @param string $subscriber_mail The target mail address + * @param array $id The ID + * @param int $lastupdate Time of the last notification + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_send_digest($subscriber_mail, $id, $lastupdate) { + $n = 0; + do { + $rev = getRevisions($id, $n++, 1); + $rev = (count($rev) > 0) ? $rev[0] : null; + } while (!is_null($rev) && $rev > $lastupdate); + + $replaces = array('NEWPAGE' => wl($id, '', true, '&'), + 'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&')); + if (!is_null($rev)) { + $subject = 'changed'; + $replaces['OLDPAGE'] = wl($id, "rev=$rev", true, '&'); + $df = new Diff(explode("\n", rawWiki($id, $rev)), + explode("\n", rawWiki($id))); + $dformat = new UnifiedDiffFormatter(); + $replaces['DIFF'] = $dformat->format($df); + } else { + $subject = 'newpage'; + $replaces['OLDPAGE'] = 'none'; + $replaces['DIFF'] = rawWiki($id); + } + subscription_send($subscriber_mail, $replaces, $subject, $id, + 'subscr_digest'); +} + +/** + * Send a list mail + * + * Sends a list mail showing a list of changed pages. + * + * @param string $subscriber_mail The target mail address + * @param array $ids Array of ids + * @param string $ns_id The id of the namespace + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_send_list($subscriber_mail, $ids, $ns_id) { + if (count($ids) === 0) return; + global $conf; + $list = ''; + foreach ($ids as $id) { + $list .= '* ' . wl($id, array(), true) . NL; + } + subscription_send($subscriber_mail, + array('DIFF' => rtrim($list), + 'SUBSCRIBE' => wl($ns_id . $conf['start'], + array('do' => 'subscribe'), + true, '&')), + 'subscribe_list', + prettyprint_id($ns_id), + 'subscr_list'); +} + +/** + * Helper function for sending a mail + * + * @param string $subscriber_mail The target mail address + * @param array $replaces Predefined parameters used to parse the + * template + * @param string $subject The lang id of the mail subject (without the + * prefix “mail_”) + * @param string $id The page or namespace id + * @param string $template The name of the mail template + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function subscription_send($subscriber_mail, $replaces, $subject, $id, $template) { + global $conf; + + $text = rawLocale($template); + $replaces = array_merge($replaces, array('TITLE' => $conf['title'], + 'DOKUWIKIURL' => DOKU_URL, + 'PAGE' => $id)); + + foreach ($replaces as $key => $substitution) { + $text = str_replace('@'.strtoupper($key).'@', $substitution, $text); + } + + global $lang; + $subject = $lang['mail_' . $subject] . ' ' . $id; + mail_send('', '['.$conf['title'].'] '. $subject, $text, + $conf['mailfrom'], '', $subscriber_mail); +} diff --git a/inc/template.php b/inc/template.php index 8fc70cfb8..003febe46 100644 --- a/inc/template.php +++ b/inc/template.php @@ -15,12 +15,12 @@ if(!defined('DOKU_INC')) die('meh.'); * @author Andreas Gohr <andi@splitbrain.org> */ function template($tpl){ - global $conf; + global $conf; - if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl)) - return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl; + if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl)) + return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl; - return DOKU_INC.'lib/tpl/default/'.$tpl; + return DOKU_INC.'lib/tpl/default/'.$tpl; } /** @@ -49,92 +49,88 @@ function tpl_content($prependTOC=true) { } function tpl_content_core(){ - global $ACT; - global $TEXT; - global $PRE; - global $SUF; - global $SUM; - global $IDX; - - switch($ACT){ - case 'show': - html_show(); - break; - case 'preview': - html_edit($TEXT); - html_show($TEXT); - break; - case 'recover': - html_edit($TEXT); - break; - case 'edit': - html_edit(); - break; - case 'draft': - html_draft(); - break; - case 'wordblock': - html_edit($TEXT,'wordblock'); - break; - case 'search': - html_search(); - break; - case 'revisions': - $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; - html_revisions($first); - break; - case 'diff': - html_diff(); - break; - case 'recent': - if (is_array($_REQUEST['first'])) { - $_REQUEST['first'] = array_keys($_REQUEST['first']); - $_REQUEST['first'] = $_REQUEST['first'][0]; - } - $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; - html_recent($first); - break; - case 'index': - html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly? - break; - case 'backlink': - html_backlinks(); - break; - case 'conflict': - html_conflict(con($PRE,$TEXT,$SUF),$SUM); - html_diff(con($PRE,$TEXT,$SUF),false); - break; - case 'locked': - html_locked(); - html_edit(); - break; - case 'login': - html_login(); - break; - case 'register': - html_register(); - break; - case 'resendpwd': - html_resendpwd(); - break; - case 'denied': - print p_locale_xhtml('denied'); - break; - case 'profile' : - html_updateprofile(); - break; - case 'admin': - tpl_admin(); - break; - default: - $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT); - if ($evt->advise_before()) - msg("Failed to handle command: ".hsc($ACT),-1); - $evt->advise_after(); - unset($evt); - return false; - } - return true; + global $ACT; + global $TEXT; + global $PRE; + global $SUF; + global $SUM; + global $IDX; + + switch($ACT){ + case 'show': + html_show(); + break; + case 'locked': + html_locked(); + case 'edit': + case 'recover': + html_edit(); + break; + case 'preview': + html_edit(); + html_show($TEXT); + break; + case 'draft': + html_draft(); + break; + case 'search': + html_search(); + break; + case 'revisions': + $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; + html_revisions($first); + break; + case 'diff': + html_diff(); + break; + case 'recent': + if (is_array($_REQUEST['first'])) { + $_REQUEST['first'] = array_keys($_REQUEST['first']); + $_REQUEST['first'] = $_REQUEST['first'][0]; + } + $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; + html_recent($first); + break; + case 'index': + html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly? + break; + case 'backlink': + html_backlinks(); + break; + case 'conflict': + html_conflict(con($PRE,$TEXT,$SUF),$SUM); + html_diff(con($PRE,$TEXT,$SUF),false); + break; + case 'login': + html_login(); + break; + case 'register': + html_register(); + break; + case 'resendpwd': + html_resendpwd(); + break; + case 'denied': + print p_locale_xhtml('denied'); + break; + case 'profile' : + html_updateprofile(); + break; + case 'admin': + tpl_admin(); + break; + case 'subscribe': + tpl_subscribe(); + break; + default: + $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT); + if ($evt->advise_before()) + msg("Failed to handle command: ".hsc($ACT),-1); + $evt->advise_after(); + unset($evt); + return false; + } + return true; } /** @@ -180,13 +176,13 @@ function tpl_toc($return=false){ } } if ( ($plugin !== null) && - (!$plugin->forAdminOnly() || $INFO['isadmin']) ){ + (!$plugin->forAdminOnly() || $INFO['isadmin']) ){ $toc = $plugin->getTOC(); $TOC = $toc; // avoid later rebuild } } - trigger_event('TPL_TOC_RENDER', $toc, NULL, false); + trigger_event('TPL_TOC_RENDER', $toc, null, false); $html = html_TOC($toc); if($return) return $html; echo $html; @@ -207,8 +203,8 @@ function tpl_admin(){ if (in_array($_REQUEST['page'], $pluginlist)) { - // attempt to load the plugin - $plugin =& plugin_load('admin',$_REQUEST['page']); + // attempt to load the plugin + $plugin =& plugin_load('admin',$_REQUEST['page']); } } @@ -237,130 +233,126 @@ function tpl_admin(){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_metaheaders($alt=true){ - global $ID; - global $REV; - global $INFO; - global $JSINFO; - global $ACT; - global $QUERY; - global $lang; - global $conf; - $it=2; - - // prepare the head array - $head = array(); - - // prepare seed for js and css - $tseed = 0; - $depends = getConfigFiles('main'); - foreach($depends as $f) { - $time = @filemtime($f); - if($time > $tseed) $tseed = $time; - } - - // the usual stuff - $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki '.getVersion() ); - $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml', - 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] ); - $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE ); - if(actionOK('index')){ - $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'), - 'title'=>$lang['btn_index'] ); - } - - if($alt){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php'); - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Current Namespace', - 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']); - if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){ - $head['link'][] = array( 'rel'=>'edit', - 'title'=>$lang['btn_edit'], - 'href'=> wl($ID,'do=edit',false,'&')); - } + global $ID; + global $REV; + global $INFO; + global $JSINFO; + global $ACT; + global $QUERY; + global $lang; + global $conf; + $it=2; - if($ACT == 'search'){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Search Result', - 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY); + // prepare the head array + $head = array(); + + // prepare seed for js and css + $tseed = 0; + $depends = getConfigFiles('main'); + foreach($depends as $f) { + $time = @filemtime($f); + if($time > $tseed) $tseed = $time; } - if(actionOK('export_xhtml')){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML', - 'href'=>exportlink($ID, 'xhtml', '', false, '&')); + // the usual stuff + $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki'); + $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml', + 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] ); + $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE ); + if(actionOK('index')){ + $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'), + 'title'=>$lang['btn_index'] ); } - if(actionOK('export_raw')){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup', - 'href'=>exportlink($ID, 'raw', '', false, '&')); + if($alt){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php'); + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Current Namespace', + 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']); + if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){ + $head['link'][] = array( 'rel'=>'edit', + 'title'=>$lang['btn_edit'], + 'href'=> wl($ID,'do=edit',false,'&')); + } + + if($ACT == 'search'){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Search Result', + 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY); + } + + if(actionOK('export_xhtml')){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML', + 'href'=>exportlink($ID, 'xhtml', '', false, '&')); + } + + if(actionOK('export_raw')){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup', + 'href'=>exportlink($ID, 'raw', '', false, '&')); + } } - } - // setup robot tags apropriate for different modes - if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){ - if($INFO['exists']){ - //delay indexing: - if((time() - $INFO['lastmod']) >= $conf['indexdelay']){ + // setup robot tags apropriate for different modes + if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){ + if($INFO['exists']){ + //delay indexing: + if((time() - $INFO['lastmod']) >= $conf['indexdelay']){ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); + }else{ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); + } + $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') ); + }else{ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow'); + } + }elseif(defined('DOKU_MEDIADETAIL')){ $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); - }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); - } - $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') ); }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow'); + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); } - }elseif(defined('DOKU_MEDIADETAIL')){ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); - }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); - } - - // set metadata - if($ACT == 'show' || $ACT=='export_xhtml'){ - // date of modification - if($REV){ - $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV)); - }else{ - $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod'])); + + // set metadata + if($ACT == 'show' || $ACT=='export_xhtml'){ + // date of modification + if($REV){ + $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV)); + }else{ + $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod'])); + } + + // keywords (explicit or implicit) + if(!empty($INFO['meta']['subject'])){ + $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject'])); + }else{ + $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID)); + } } - // keywords (explicit or implicit) - if(!empty($INFO['meta']['subject'])){ - $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject'])); - }else{ - $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID)); + // load stylesheets + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'screen', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed); + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'print', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); + + // make $INFO and other vars available to JavaScripts + $json = new JSON(); + $script = "var NS='".$INFO['namespace']."';"; + if($conf['useacl'] && $_SERVER['REMOTE_USER']){ + $script .= "var SIG='".toolbar_signature()."';"; } - } - - // load stylesheets - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'screen', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed); - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'print', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); - - // make $INFO and other vars available to JavaScripts - require_once(DOKU_INC.'inc/JSON.php'); - $json = new JSON(); - $script = "var NS='".$INFO['namespace']."';"; - if($conf['useacl'] && $_SERVER['REMOTE_USER']){ - require_once(DOKU_INC.'inc/toolbar.php'); - $script .= "var SIG='".toolbar_signature()."';"; - } - $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; - $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', - '_data'=> $script); - - // load external javascript - $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'', - 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed); - - - // trigger event here - trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true); - return true; + $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; + $head['script'][] = array( 'type'=>'text/javascript', '_data'=> $script); + + // load external javascript + $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'', + 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed); + + // trigger event here + trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true); + return true; } /** @@ -376,22 +368,22 @@ function tpl_metaheaders($alt=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function _tpl_metaheaders_action($data){ - foreach($data as $tag => $inst){ - foreach($inst as $attr){ - echo '<',$tag,' ',buildAttributes($attr); - if(isset($attr['_data']) || $tag == 'script'){ - if($tag == 'script' && $attr['_data']) - $attr['_data'] = "<!--//--><![CDATA[//><!--\n". - $attr['_data']. - "\n//--><!]]>"; - - echo '>',$attr['_data'],'</',$tag,'>'; - }else{ - echo '/>'; - } - echo "\n"; + foreach($data as $tag => $inst){ + foreach($inst as $attr){ + echo '<',$tag,' ',buildAttributes($attr); + if(isset($attr['_data']) || $tag == 'script'){ + if($tag == 'script' && $attr['_data']) + $attr['_data'] = "<!--//--><![CDATA[//><!--\n". + $attr['_data']. + "\n//--><!]]>"; + + echo '>',$attr['_data'],'</',$tag,'>'; + }else{ + echo '/>'; + } + echo "\n"; + } } - } } /** @@ -402,12 +394,12 @@ function _tpl_metaheaders_action($data){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_link($url,$name,$more='',$return=false){ - $out = '<a href="'.$url.'" '; - if ($more) $out .= ' '.$more; - $out .= ">$name</a>"; - if ($return) return $out; - print $out; - return true; + $out = '<a href="'.$url.'" '; + if ($more) $out .= ' '.$more; + $out .= ">$name</a>"; + if ($return) return $out; + print $out; + return true; } /** @@ -417,9 +409,9 @@ function tpl_link($url,$name,$more='',$return=false){ * * @author Andreas Gohr <andi@splitbrain.org> */ -function tpl_pagelink($id,$name=NULL){ - print html_wikilink($id,$name); - return true; +function tpl_pagelink($id,$name=null){ + print html_wikilink($id,$name); + return true; } /** @@ -431,342 +423,209 @@ function tpl_pagelink($id,$name=NULL){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_getparent($id){ - global $conf; - $parent = getNS($id).':'; - resolve_pageid('',$parent,$exists); - if($parent == $id) { - $pos = strrpos (getNS($id),':'); - $parent = substr($parent,0,$pos).':'; + global $conf; + $parent = getNS($id).':'; resolve_pageid('',$parent,$exists); - if($parent == $id) return false; - } - return $parent; + if($parent == $id) { + $pos = strrpos (getNS($id),':'); + $parent = substr($parent,0,$pos).':'; + resolve_pageid('',$parent,$exists); + if($parent == $id) return false; + } + return $parent; } /** * Print one of the buttons * - * Available Buttons are - * - * edit - edit/create/show/draft button - * history - old revisions - * recent - recent changes - * login - login/logout button - if ACL enabled - * profile - user profile button (if logged in) - * index - The index - * admin - admin page - if enough rights - * top - a back to top button - * back - a back to parent button - if available - * backlink - links to the list of backlinks - * subscription- subscribe/unsubscribe button - * - * @author Andreas Gohr <andi@splitbrain.org> - * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * @author Adrian Lang <mail@adrianlang.de> + * @see tpl_get_action */ function tpl_button($type,$return=false){ - global $ACT; - global $ID; - global $REV; - global $NS; - global $INFO; - global $conf; - global $auth; - - // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; - - $out = ''; - switch($type){ - case 'edit': - #most complicated type - we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])){ - $out .= html_btn('draft',$ID,'e',array('do' => 'draft'),'post'); - }else{ - if($INFO['exists']){ - $out .= html_btn('edit',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); - }else{ - $out .= html_btn('create',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); - } - } - }else{ - if(!actionOK('source')) return false; //pseudo action - $out .= html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post'); - } - }else{ - $out .= html_btn('show',$ID,'v',array('do' => 'show')); - } - break; - case 'history': - if(actionOK('revisions')) - $out .= html_btn('revs',$ID,'o',array('do' => 'revisions')); - break; - case 'recent': - if(actionOK('recent')) - $out .= html_btn('recent',$ID,'r',array('do' => 'recent')); - break; - case 'index': - if(actionOK('index')) - $out .= html_btn('index',$ID,'x',array('do' => 'index')); - break; - case 'back': - if ($parent = tpl_getparent($ID)) { - $out .= html_btn('back',$parent,'b',array('do' => 'show')); - } - break; - case 'top': - $out .= html_topbtn(); - break; - case 'login': - if($conf['useacl'] && $auth){ - if(isset($_SERVER['REMOTE_USER'])){ - $out .= html_btn('logout',$ID,'',array('do' => 'logout', 'sectok' => getSecurityToken())); - }else{ - $out .= html_btn('login',$ID,'',array('do' => 'login', 'sectok' => getSecurityToken())); - } - } - break; - case 'admin': - if($INFO['ismanager']){ - $out .= html_btn('admin',$ID,'',array('do' => 'admin')); - } - break; - case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= html_btn('revert',$ID,'',array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())); - } - break; - case 'subscribe': - case 'subscription': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']){ - if(actionOK('unsubscribe')) - $out .= html_btn('unsubscribe',$ID,'',array('do' => 'unsubscribe',)); - } else { - if(actionOK('subscribe')) - $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); - } + $data = tpl_get_action($type); + if ($data === false) { + return false; + } elseif (!is_array($data)) { + $out = sprintf($data, 'button'); + } else { + extract($data); + if ($id === '#dokuwiki__top') { + $out = html_topbtn(); + } else { + $out = html_btn($type, $id, $accesskey, $params, $method); } - } - if($type == 'subscribe') break; - // else: fall through for backward compatibility - case 'subscribens': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']){ - if(actionOK('unsubscribens')) - $out .= html_btn('unsubscribens',$ID,'',array('do' => 'unsubscribens',)); - } else { - if(actionOK('subscribens')) - $out .= html_btn('subscribens',$ID,'',array('do' => 'subscribens',)); - } - } - } - break; - case 'backlink': - if(actionOK('backlink')) - $out .= html_btn('backlink',$ID,'',array('do' => 'backlink')); - break; - case 'profile': - if($conf['useacl'] && isset($_SERVER['REMOTE_USER']) && $auth && - $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= html_btn('profile',$ID,'',array('do' => 'profile')); - } - break; - default: - $out .= '[unknown button type]'; - break; - } - if ($return) return $out; - print $out; - return $out ? true : false; + } + if ($return) return $out; + echo $out; + return true; } /** * Like the action buttons but links * - * Available links are + * @author Adrian Lang <mail@adrianlang.de> + * @see tpl_get_action + */ +function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ + global $lang; + $data = tpl_get_action($type); + if ($data === false) { + return false; + } elseif (!is_array($data)) { + $out = sprintf($data, 'link'); + } else { + extract($data); + if (strpos($id, '#') === 0) { + $linktarget = $id; + } else { + $linktarget = wl($id, $params); + } + $caption = $lang['btn_' . $type]; + $out = tpl_link($linktarget, $pre.(($inner)?$inner:$caption).$suf, + 'class="action ' . $type . '" ' . + 'accesskey="' . $accesskey . '" rel="nofollow" ' . + 'title="' . hsc($caption) . '"', 1); + } + if ($return) return $out; + echo $out; + return true; +} + +/** + * Check the actions and get data for buttons and links + * + * Available actions are * - * edit - edit/create/show link - * history - old revisions - * recent - recent changes - * login - login/logout link - if ACL enabled - * profile - user profile link (if logged in) - * index - The index - * admin - admin page - if enough rights - * top - a back to top link - * back - a back to parent link - if available - * backlink - links to the list of backlinks - * subscribe/subscription - subscribe/unsubscribe link + * edit - edit/create/show/draft + * history - old revisions + * recent - recent changes + * login - login/logout - if ACL enabled + * profile - user profile (if logged in) + * index - The index + * admin - admin page - if enough rights + * top - back to top + * back - back to parent - if available + * backlink - links to the list of backlinks + * subscribe/subscription- subscribe/unsubscribe * * @author Andreas Gohr <andi@splitbrain.org> * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> - * @see tpl_button + * @author Adrian Lang <mail@adrianlang.de> */ -function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ - global $ID; - global $INFO; - global $REV; - global $ACT; - global $conf; - global $lang; - global $auth; - - // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; - - $out = ''; - switch($type){ - case 'edit': - #most complicated type - we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])) { - $out .= tpl_link(wl($ID,'do=draft'), - $pre.(($inner)?$inner:$lang['btn_draft']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); - } else { - if($INFO['exists']){ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_edit']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); +function tpl_get_action($type) { + global $ID; + global $INFO; + global $REV; + global $ACT; + global $conf; + global $auth; + + // check disabled actions and fix the badly named ones + if($type == 'history') $type='revisions'; + if(!actionOK($type)) return false; + + $accesskey = null; + $id = $ID; + $method = 'get'; + $params = array('do' => $type); + switch($type){ + case 'edit': + // most complicated type - we need to decide on current action + if($ACT == 'show' || $ACT == 'search'){ + $method = 'post'; + if($INFO['writable']){ + $accesskey = 'e'; + if(!empty($INFO['draft'])) { + $type = 'draft'; + $params['do'] = 'draft'; + } else { + $params['rev'] = $REV; + if(!$INFO['exists']){ + $type = 'create'; + } + } + }else{ + if(!actionOK('source')) return false; //pseudo action + $params['rev'] = $REV; + $type = 'source'; + $accesskey = 'v'; + } }else{ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_create']).$suf, - 'class="action create" accesskey="e" rel="nofollow"',1); + $params = ''; + $type = 'show'; + $accesskey = 'v'; } - } - }else{ - if(actionOK('source')) //pseudo action - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_source']).$suf, - 'class="action source" accesskey="v" rel="nofollow"',1); - } - }else{ - $out .= tpl_link(wl($ID,'do=show'), - $pre.(($inner)?$inner:$lang['btn_show']).$suf, - 'class="action show" accesskey="v" rel="nofollow"',1); - } - break; - case 'history': - if(actionOK('revisions')) - $out .= tpl_link(wl($ID,'do=revisions'), - $pre.(($inner)?$inner:$lang['btn_revs']).$suf, - 'class="action revisions" accesskey="o" rel="nofollow"',1); - break; - case 'recent': - if(actionOK('recent')) - $out .= tpl_link(wl($ID,'do=recent'), - $pre.(($inner)?$inner:$lang['btn_recent']).$suf, - 'class="action recent" accesskey="r" rel="nofollow"',1); - break; - case 'index': - if(actionOK('index')) - $out .= tpl_link(wl($ID,'do=index'), - $pre.(($inner)?$inner:$lang['btn_index']).$suf, - 'class="action index" accesskey="x" rel="nofollow"',1); - break; - case 'top': - $out .= '<a href="#dokuwiki__top" class="action top" accesskey="x">'. - $pre.(($inner)?$inner:$lang['btn_top']).$suf.'</a>'; - break; - case 'back': - if ($parent = tpl_getparent($ID)) { - $out .= tpl_link(wl($parent,'do=show'), - $pre.(($inner)?$inner:$lang['btn_back']).$suf, - 'class="action back" accesskey="b" rel="nofollow"',1); - } - break; - case 'login': - if($conf['useacl'] && $auth){ - if($_SERVER['REMOTE_USER']){ - $out .= tpl_link(wl($ID,'do=logout&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_logout']).$suf, - 'class="action logout" rel="nofollow"',1); - }else{ - $out .= tpl_link(wl($ID,'do=login&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_login']).$suf, - 'class="action login" rel="nofollow"',1); - } - } - break; - case 'admin': - if($INFO['ismanager']){ - $out .= tpl_link(wl($ID,'do=admin'), - $pre.(($inner)?$inner:$lang['btn_admin']).$suf, - 'class="action admin" rel="nofollow"',1); - } - break; - case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= tpl_link(wl($ID,array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())), - $pre.(($inner)?$inner:$lang['btn_revert']).$suf, - 'class="action revert" rel="nofollow"',1); - } - break; - case 'subscribe': - case 'subscription': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']) { - if(actionOK('unsubscribe')) - $out .= tpl_link(wl($ID,'do=unsubscribe'), - $pre.(($inner)?$inner:$lang['btn_unsubscribe']).$suf, - 'class="action unsubscribe" rel="nofollow"',1); - } else { - if(actionOK('subscribe')) - $out .= tpl_link(wl($ID,'do=subscribe'), - $pre.(($inner)?$inner:$lang['btn_subscribe']).$suf, - 'class="action subscribe" rel="nofollow"',1); - } - } - } - if($type == 'subscribe') break; - // else: fall through for backward compatibility - case 'subscribens': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']) { - if(actionOK('unsubscribens')) - $out .= tpl_link(wl($ID,'do=unsubscribens'), - $pre.(($inner)?$inner:$lang['btn_unsubscribens']).$suf, - 'class="action unsubscribens" rel="nofollow"',1); - } else { - if(actionOK('subscribens')) - $out .= tpl_link(wl($ID,'do=subscribens'), - $pre.(($inner)?$inner:$lang['btn_subscribens']).$suf, - 'class="action subscribens" rel="nofollow"',1); - } - } - } - break; - case 'backlink': - if(actionOK('backlink')) - $out .= tpl_link(wl($ID,'do=backlink'), - $pre.(($inner)?$inner:$lang['btn_backlink']).$suf, - 'class="action backlink" rel="nofollow"',1); - break; - case 'profile': - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= tpl_link(wl($ID,'do=profile'), - $pre.(($inner)?$inner:$lang['btn_profile']).$suf, - 'class="action profile" rel="nofollow"',1); - } - break; - default: - $out .= '[unknown link type]'; - break; - } - if ($return) return $out; - print $out; - return $out ? true : false; + break; + case 'revisions': + $type = 'revs'; + $accesskey = 'o'; + break; + case 'recent': + $accesskey = 'r'; + break; + case 'index': + $accesskey = 'x'; + break; + case 'top': + $accesskey = 'x'; + $params = ''; + $id = '#dokuwiki__top'; + break; + case 'back': + $parent = tpl_getparent($ID); + if (!$parent) { + return false; + } + $id = $parent; + $params = ''; + $accesskey = 'b'; + break; + case 'login': + if(!$conf['useacl'] || !$auth){ + return false; + } + $params['sectok'] = getSecurityToken(); + if(isset($_SERVER['REMOTE_USER'])){ + if (!$auth->canDo('logout')) { + return false; + } + $params['do'] = 'logout'; + $type = 'logout'; + } + break; + case 'admin': + if(!$INFO['ismanager']){ + return false; + } + break; + case 'revert': + if(!$INFO['ismanager'] || !$REV || !$INFO['writable']) { + return false; + } + $params['rev'] = $REV; + $params['sectok'] = getSecurityToken(); + break; + case 'subscription': + $type = 'subscribe'; + $params['do'] = 'subscribe'; + case 'subscribe': + if(!$conf['useacl'] || !$auth || $ACT !== 'show' || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){ + return false; + } + break; + case 'backlink': + break; + case 'profile': + if(!$conf['useacl'] || !$auth || !isset($_SERVER['REMOTE_USER']) || + !$auth->canDo('Profile') || ($ACT=='profile')){ + return false; + } + break; + default: + return '[unknown %s type]'; + break; + } + return compact('accesskey', 'type', 'id', 'method', 'params'); } /** @@ -798,23 +657,23 @@ function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_searchform($ajax=true,$autocomplete=true){ - global $lang; - global $ACT; - global $QUERY; - - // don't print the search form if search action has been disabled - if (!actionOk('search')) return false; - - print '<form action="'.wl().'" accept-charset="utf-8" class="search" id="dw__search"><div class="no">'; - print '<input type="hidden" name="do" value="search" />'; - print '<input type="text" '; - if($ACT == 'search') print 'value="'.htmlspecialchars($QUERY).'" '; - if(!$autocomplete) print 'autocomplete="off" '; - print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />'; - print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />'; - if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>'; - print '</div></form>'; - return true; + global $lang; + global $ACT; + global $QUERY; + + // don't print the search form if search action has been disabled + if (!actionOk('search')) return false; + + print '<form action="'.wl().'" accept-charset="utf-8" class="search" id="dw__search"><div class="no">'; + print '<input type="hidden" name="do" value="search" />'; + print '<input type="text" '; + if($ACT == 'search') print 'value="'.htmlspecialchars($QUERY).'" '; + if(!$autocomplete) print 'autocomplete="off" '; + print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />'; + print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />'; + if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>'; + print '</div></form>'; + return true; } /** @@ -823,34 +682,34 @@ function tpl_searchform($ajax=true,$autocomplete=true){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_breadcrumbs($sep='»'){ - global $lang; - global $conf; - - //check if enabled - if(!$conf['breadcrumbs']) return false; - - $crumbs = breadcrumbs(); //setup crumb trace - - //reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups - if($lang['direction'] == 'rtl') { - $crumbs = array_reverse($crumbs,true); - $crumbs_sep = ' ‏<span class="bcsep">'.$sep.'</span>‏ '; - } else { - $crumbs_sep = ' <span class="bcsep">'.$sep.'</span> '; - } - - //render crumbs, highlight the last one - print '<span class="bchead">'.$lang['breadcrumb'].':</span>'; - $last = count($crumbs); - $i = 0; - foreach ($crumbs as $id => $name){ - $i++; - echo $crumbs_sep; - if ($i == $last) print '<span class="curid">'; - tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"'); - if ($i == $last) print '</span>'; - } - return true; + global $lang; + global $conf; + + //check if enabled + if(!$conf['breadcrumbs']) return false; + + $crumbs = breadcrumbs(); //setup crumb trace + + //reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups + if($lang['direction'] == 'rtl') { + $crumbs = array_reverse($crumbs,true); + $crumbs_sep = ' ‏<span class="bcsep">'.$sep.'</span>‏ '; + } else { + $crumbs_sep = ' <span class="bcsep">'.$sep.'</span> '; + } + + //render crumbs, highlight the last one + print '<span class="bchead">'.$lang['breadcrumb'].':</span>'; + $last = count($crumbs); + $i = 0; + foreach ($crumbs as $id => $name){ + $i++; + echo $crumbs_sep; + if ($i == $last) print '<span class="curid">'; + tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"'); + if ($i == $last) print '</span>'; + } + return true; } /** @@ -866,59 +725,59 @@ function tpl_breadcrumbs($sep='»'){ * @todo May behave strangely in RTL languages */ function tpl_youarehere($sep=' » '){ - global $conf; - global $ID; - global $lang; - - // check if enabled - if(!$conf['youarehere']) return false; - - $parts = explode(':', $ID); - $count = count($parts); - - if($GLOBALS['ACT'] == 'search') - { - $parts = array($conf['start']); - $count = 1; - } - - echo '<span class="bchead">'.$lang['youarehere'].': </span>'; - - // always print the startpage - $title = useHeading('navigation') ? p_get_first_heading($conf['start']) : $conf['start']; - if(!$title) $title = $conf['start']; - tpl_link(wl($conf['start']),hsc($title),'title="'.$conf['start'].'"'); - - // print intermediate namespace links - $part = ''; - for($i=0; $i<$count - 1; $i++){ - $part .= $parts[$i].':'; - $page = $part; - resolve_pageid('',$page,$exists); - if ($page == $conf['start']) continue; // Skip startpage - - // output + global $conf; + global $ID; + global $lang; + + // check if enabled + if(!$conf['youarehere']) return false; + + $parts = explode(':', $ID); + $count = count($parts); + + if($GLOBALS['ACT'] == 'search') + { + $parts = array($conf['start']); + $count = 1; + } + + echo '<span class="bchead">'.$lang['youarehere'].': </span>'; + + // always print the startpage + $title = useHeading('navigation') ? p_get_first_heading($conf['start']) : $conf['start']; + if(!$title) $title = $conf['start']; + tpl_link(wl($conf['start']),hsc($title),'title="'.$conf['start'].'"'); + + // print intermediate namespace links + $part = ''; + for($i=0; $i<$count - 1; $i++){ + $part .= $parts[$i].':'; + $page = $part; + resolve_pageid('',$page,$exists); + if ($page == $conf['start']) continue; // Skip startpage + + // output + echo $sep; + if($exists){ + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + }else{ + tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + } + } + + // print current page, skipping start page, skipping for namespace index + if(isset($page) && $page==$part.$parts[$i]) return; + $page = $part.$parts[$i]; + if($page == $conf['start']) return; echo $sep; - if($exists){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + if(page_exists($page)){ + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ - tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } - } - - // print current page, skipping start page, skipping for namespace index - if(isset($page) && $page==$part.$parts[$i]) return; - $page = $part.$parts[$i]; - if($page == $conf['start']) return; - echo $sep; - if(page_exists($page)){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); - }else{ - tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); - } - return true; + return true; } /** @@ -930,98 +789,98 @@ function tpl_youarehere($sep=' » '){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_userinfo(){ - global $lang; - global $INFO; - if(isset($_SERVER['REMOTE_USER'])){ - print $lang['loggedinas'].': '.$INFO['userinfo']['name'].' ('.$_SERVER['REMOTE_USER'].')'; - return true; - } - return false; -} + global $lang; + global $INFO; + if(isset($_SERVER['REMOTE_USER'])){ + print $lang['loggedinas'].': '.$INFO['userinfo']['name'].' ('.$_SERVER['REMOTE_USER'].')'; + return true; + } + return false; + } -/** - * Print some info about the current page - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function tpl_pageinfo($ret=false){ - global $conf; - global $lang; - global $INFO; - global $ID; - - // return if we are not allowed to view the page - if (!auth_quickaclcheck($ID)) { return false; } - - // prepare date and path - $fn = $INFO['filepath']; - if(!$conf['fullpath']){ - if($INFO['rev']){ - $fn = str_replace(fullpath($conf['olddir']).'/','',$fn); - }else{ - $fn = str_replace(fullpath($conf['datadir']).'/','',$fn); + /** + * Print some info about the current page + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + function tpl_pageinfo($ret=false){ + global $conf; + global $lang; + global $INFO; + global $ID; + + // return if we are not allowed to view the page + if (!auth_quickaclcheck($ID)) { return false; } + + // prepare date and path + $fn = $INFO['filepath']; + if(!$conf['fullpath']){ + if($INFO['rev']){ + $fn = str_replace(fullpath($conf['olddir']).'/','',$fn); + }else{ + $fn = str_replace(fullpath($conf['datadir']).'/','',$fn); + } + } + $fn = utf8_decodeFN($fn); + $date = dformat($INFO['lastmod']); + + // print it + if($INFO['exists']){ + $out = ''; + $out .= $fn; + $out .= ' · '; + $out .= $lang['lastmod']; + $out .= ': '; + $out .= $date; + if($INFO['editor']){ + $out .= ' '.$lang['by'].' '; + $out .= editorinfo($INFO['editor']); + }else{ + $out .= ' ('.$lang['external_edit'].')'; + } + if($INFO['locked']){ + $out .= ' · '; + $out .= $lang['lockedby']; + $out .= ': '; + $out .= editorinfo($INFO['locked']); + } + if($ret){ + return $out; + }else{ + echo $out; + return true; + } + } + return false; + } + + /** + * Prints or returns the name of the given page (current one if none given). + * + * If useheading is enabled this will use the first headline else + * the given ID is used. + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function tpl_pagetitle($id=null, $ret=false){ + global $conf; + if(is_null($id)){ + global $ID; + $id = $ID; } - } - $fn = utf8_decodeFN($fn); - $date = dformat($INFO['lastmod']); - // print it - if($INFO['exists']){ - $out = ''; - $out .= $fn; - $out .= ' · '; - $out .= $lang['lastmod']; - $out .= ': '; - $out .= $date; - if($INFO['editor']){ - $out .= ' '.$lang['by'].' '; - $out .= editorinfo($INFO['editor']); - }else{ - $out .= ' ('.$lang['external_edit'].')'; - } - if($INFO['locked']){ - $out .= ' · '; - $out .= $lang['lockedby']; - $out .= ': '; - $out .= editorinfo($INFO['locked']); + $name = $id; + if (useHeading('navigation')) { + $title = p_get_first_heading($id); + if ($title) $name = $title; } - if($ret){ - return $out; - }else{ - echo $out; + + if ($ret) { + return hsc($name); + } else { + print hsc($name); return true; } - } - return false; -} - -/** - * Prints or returns the name of the given page (current one if none given). - * - * If useheading is enabled this will use the first headline else - * the given ID is used. - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function tpl_pagetitle($id=null, $ret=false){ - global $conf; - if(is_null($id)){ - global $ID; - $id = $ID; - } - - $name = $id; - if (useHeading('navigation')) { - $title = p_get_first_heading($id); - if ($title) $name = $title; - } - - if ($ret) { - return hsc($name); - } else { - print hsc($name); - return true; - } } /** @@ -1039,71 +898,90 @@ function tpl_pagetitle($id=null, $ret=false){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_img_getTag($tags,$alt='',$src=null){ - // Init Exif Reader - global $SRC; + // Init Exif Reader + global $SRC; - if(is_null($src)) $src = $SRC; + if(is_null($src)) $src = $SRC; - static $meta = null; - if(is_null($meta)) $meta = new JpegMeta($src); - if($meta === false) return $alt; - $info = $meta->getField($tags); - if($info == false) return $alt; - return $info; + static $meta = null; + if(is_null($meta)) $meta = new JpegMeta($src); + if($meta === false) return $alt; + $info = $meta->getField($tags); + if($info == false) return $alt; + return $info; } /** * Prints the image with a link to the full sized version * * Only allowed in: detail.php + * + * @param $maxwidth int - maximal width of the image + * @param $maxheight int - maximal height of the image + * @param $link bool - link to the orginal size? + * @param $params array - additional image attributes */ -function tpl_img($maxwidth=0,$maxheight=0){ - global $IMG; - $w = tpl_img_getTag('File.Width'); - $h = tpl_img_getTag('File.Height'); - - //resize to given max values - $ratio = 1; - if($w >= $h){ - if($maxwidth && $w >= $maxwidth){ - $ratio = $maxwidth/$w; - }elseif($maxheight && $h > $maxheight){ - $ratio = $maxheight/$h; +function tpl_img($maxwidth=0,$maxheight=0,$link=true,$params=null){ + global $IMG; + $w = tpl_img_getTag('File.Width'); + $h = tpl_img_getTag('File.Height'); + + //resize to given max values + $ratio = 1; + if($w >= $h){ + if($maxwidth && $w >= $maxwidth){ + $ratio = $maxwidth/$w; + }elseif($maxheight && $h > $maxheight){ + $ratio = $maxheight/$h; + } + }else{ + if($maxheight && $h >= $maxheight){ + $ratio = $maxheight/$h; + }elseif($maxwidth && $w > $maxwidth){ + $ratio = $maxwidth/$w; + } + } + if($ratio){ + $w = floor($ratio*$w); + $h = floor($ratio*$h); + } + + //prepare URLs + $url=ml($IMG,array('cache'=>$_REQUEST['cache']),true,'&'); + $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h),true,'&'); + + //prepare attributes + $alt=tpl_img_getTag('Simple.Title'); + if(is_null($params)){ + $p = array(); + }else{ + $p = $params; } - }else{ - if($maxheight && $h >= $maxheight){ - $ratio = $maxheight/$h; - }elseif($maxwidth && $w > $maxwidth){ - $ratio = $maxwidth/$w; + if($w) $p['width'] = $w; + if($h) $p['height'] = $h; + $p['class'] = 'img_detail'; + if($alt){ + $p['alt'] = $alt; + $p['title'] = $alt; + }else{ + $p['alt'] = ''; } - } - if($ratio){ - $w = floor($ratio*$w); - $h = floor($ratio*$h); - } - - //prepare URLs - $url=ml($IMG,array('cache'=>$_REQUEST['cache'])); - $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h)); - - //prepare attributes - $alt=tpl_img_getTag('Simple.Title'); - $p = array(); - if($w) $p['width'] = $w; - if($h) $p['height'] = $h; - $p['class'] = 'img_detail'; - if($alt){ - $p['alt'] = $alt; - $p['title'] = $alt; - }else{ - $p['alt'] = ''; - } - $p = buildAttributes($p); - - print '<a href="'.$url.'">'; - print '<img src="'.$src.'" '.$p.'/>'; - print '</a>'; - return true; + $p['src'] = $src; + + $data = array('url'=>($link?$url:null), 'params'=>$p); + return trigger_event('TPL_IMG_DISPLAY',$data,'_tpl_img_action',true); +} + +/** + * Default action for TPL_IMG_DISPLAY + */ +function _tpl_img_action($data, $param=NULL) { + $p = buildAttributes($data['params']); + + if($data['url']) print '<a href="'.hsc($data['url']).'">'; + print '<img '.$p.'/>'; + if($data['url']) print '</a>'; + return true; } /** @@ -1114,21 +992,21 @@ function tpl_img($maxwidth=0,$maxheight=0){ * template */ function tpl_indexerWebBug(){ - global $ID; - global $INFO; - if(!$INFO['exists']) return false; - - if(isHiddenPage($ID)) return false; //no need to index hidden pages - - $p = array(); - $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID). - '&'.time(); - $p['width'] = 1; - $p['height'] = 1; - $p['alt'] = ''; - $att = buildAttributes($p); - print "<img $att />"; - return true; + global $ID; + global $INFO; + if(!$INFO['exists']) return false; + + if(isHiddenPage($ID)) return false; //no need to index hidden pages + + $p = array(); + $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID). + '&'.time(); + $p['width'] = 1; + $p['height'] = 1; + $p['alt'] = ''; + $att = buildAttributes($p); + print "<img $att />"; + return true; } // configuration methods @@ -1138,23 +1016,23 @@ function tpl_indexerWebBug(){ * use this function to access template configuration variables */ function tpl_getConf($id){ - global $conf; - global $tpl_configloaded; - - $tpl = $conf['template']; - - if (!$tpl_configloaded){ - $tconf = tpl_loadConfig(); - if ($tconf !== false){ - foreach ($tconf as $key => $value){ - if (isset($conf['tpl'][$tpl][$key])) continue; - $conf['tpl'][$tpl][$key] = $value; - } - $tpl_configloaded = true; + global $conf; + global $tpl_configloaded; + + $tpl = $conf['template']; + + if (!$tpl_configloaded){ + $tconf = tpl_loadConfig(); + if ($tconf !== false){ + foreach ($tconf as $key => $value){ + if (isset($conf['tpl'][$tpl][$key])) continue; + $conf['tpl'][$tpl][$key] = $value; + } + $tpl_configloaded = true; + } } - } - return $conf['tpl'][$tpl][$id]; + return $conf['tpl'][$tpl][$id]; } /** @@ -1164,15 +1042,15 @@ function tpl_getConf($id){ */ function tpl_loadConfig(){ - $file = DOKU_TPLINC.'/conf/default.php'; - $conf = array(); + $file = DOKU_TPLINC.'/conf/default.php'; + $conf = array(); - if (!@file_exists($file)) return false; + if (!@file_exists($file)) return false; - // load default config file - include($file); + // load default config file + include($file); - return $conf; + return $conf; } /** @@ -1189,50 +1067,50 @@ function tpl_loadConfig(){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_mediaContent($fromajax=false){ - global $IMG; - global $AUTH; - global $INUSE; - global $NS; - global $JUMPTO; - - if(is_array($_REQUEST['do'])){ - $do = array_shift(array_keys($_REQUEST['do'])); - }else{ - $do = $_REQUEST['do']; - } - if(in_array($do,array('save','cancel'))) $do = ''; - - if(!$do){ - if($_REQUEST['edit']){ - $do = 'metaform'; - }elseif(is_array($INUSE)){ - $do = 'filesinuse'; - }else{ - $do = 'filelist'; - } - } - - // output the content pane, wrapped in an event. - if(!$fromajax) ptln('<div id="media__content">'); - $data = array( 'do' => $do); - $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data); - if ($evt->advise_before()) { - $do = $data['do']; - if($do == 'metaform'){ - media_metaform($IMG,$AUTH); - }elseif($do == 'filesinuse'){ - media_filesinuse($INUSE,$IMG); - }elseif($do == 'filelist'){ - media_filelist($NS,$AUTH,$JUMPTO); - }elseif($do == 'searchlist'){ - media_searchlist($_REQUEST['q'],$NS,$AUTH); + global $IMG; + global $AUTH; + global $INUSE; + global $NS; + global $JUMPTO; + + if(is_array($_REQUEST['do'])){ + $do = array_shift(array_keys($_REQUEST['do'])); }else{ - msg('Unknown action '.hsc($do),-1); + $do = $_REQUEST['do']; + } + if(in_array($do,array('save','cancel'))) $do = ''; + + if(!$do){ + if($_REQUEST['edit']){ + $do = 'metaform'; + }elseif(is_array($INUSE)){ + $do = 'filesinuse'; + }else{ + $do = 'filelist'; + } + } + + // output the content pane, wrapped in an event. + if(!$fromajax) ptln('<div id="media__content">'); + $data = array( 'do' => $do); + $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data); + if ($evt->advise_before()) { + $do = $data['do']; + if($do == 'metaform'){ + media_metaform($IMG,$AUTH); + }elseif($do == 'filesinuse'){ + media_filesinuse($INUSE,$IMG); + }elseif($do == 'filelist'){ + media_filelist($NS,$AUTH,$JUMPTO); + }elseif($do == 'searchlist'){ + media_searchlist($_REQUEST['q'],$NS,$AUTH); + }else{ + msg('Unknown action '.hsc($do),-1); + } } - } - $evt->advise_after(); - unset($evt); - if(!$fromajax) ptln('</div>'); + $evt->advise_after(); + unset($evt); + if(!$fromajax) ptln('</div>'); } @@ -1244,11 +1122,11 @@ function tpl_mediaContent($fromajax=false){ * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_mediaTree(){ - global $NS; + global $NS; - ptln('<div id="media__tree">'); - media_nstree($NS); - ptln('</div>'); + ptln('<div id="media__tree">'); + media_nstree($NS); + ptln('</div>'); } @@ -1268,7 +1146,6 @@ function tpl_actiondropdown($empty='',$button='>'){ global $lang; global $auth; - echo '<form method="post" accept-charset="utf-8">'; #FIXME action echo '<input type="hidden" name="id" value="'.$ID.'" />'; if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />'; @@ -1278,74 +1155,39 @@ function tpl_actiondropdown($empty='',$button='>'){ echo '<option value="">'.$empty.'</option>'; echo '<optgroup label=" — ">'; - // 'edit' - most complicated type, we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])) { - echo '<option value="edit">'.$lang['btn_draft'].'</option>'; - } else { - if($INFO['exists']){ - echo '<option value="edit">'.$lang['btn_edit'].'</option>'; - }else{ - echo '<option value="edit">'.$lang['btn_create'].'</option>'; - } - } - }else if(actionOK('source')) { //pseudo action - echo '<option value="edit">'.$lang['btn_source'].'</option>'; - } - }else{ - echo '<option value="show">'.$lang['btn_show'].'</option>'; - } + $act = tpl_get_action('edit'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '<option value="revisions">'.$lang['btn_revs'].'</option>'; - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - echo '<option value="revert">'.$lang['btn_revert'].'</option>'; - } - echo '<option value="backlink">'.$lang['btn_backlink'].'</option>'; + $act = tpl_get_action('revisions'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; + + $act = tpl_get_action('revert'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; + + $act = tpl_get_action('backlink'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; echo '</optgroup>'; echo '<optgroup label=" — ">'; - echo '<option value="recent">'.$lang['btn_recent'].'</option>'; - echo '<option value="index">'.$lang['btn_index'].'</option>'; + $act = tpl_get_action('recent'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; + + $act = tpl_get_action('index'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; echo '</optgroup>'; echo '<optgroup label=" — ">'; - if($conf['useacl'] && $auth){ - if($_SERVER['REMOTE_USER']){ - echo '<option value="logout">'.$lang['btn_logout'].'</option>'; - }else{ - echo '<option value="login">'.$lang['btn_login'].'</option>'; - } - } + $act = tpl_get_action('login'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - echo '<option value="profile">'.$lang['btn_profile'].'</option>'; - } - - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']) { - echo '<option value="unsubscribe">'.$lang['btn_unsubscribe'].'</option>'; - } else { - echo '<option value="subscribe">'.$lang['btn_subscribe'].'</option>'; - } - } - } + $act = tpl_get_action('profile'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']) { - echo '<option value="unsubscribens">'.$lang['btn_unsubscribens'].'</option>'; - } else { - echo '<option value="subscribens">'.$lang['btn_subscribens'].'</option>'; - } - } - } + $act = tpl_get_action('subscribe'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - if($INFO['ismanager']){ - echo '<option value="admin">'.$lang['btn_admin'].'</option>'; - } + $act = tpl_get_action('admin'); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; echo '</optgroup>'; echo '</select>'; @@ -1373,14 +1215,14 @@ function tpl_license($img='badge',$imgonly=false,$return=false){ $src = license_img($img); if($src){ $out .= '<a href="'.$lic['url'].'" rel="license"'; - if($conf['target']['external']) $out .= ' target="'.$conf['target']['external'].'"'; + if($conf['target']['extern']) $out .= ' target="'.$conf['target']['extern'].'"'; $out .= '><img src="'.DOKU_BASE.$src.'" class="medialeft lic'.$img.'" alt="'.$lic['name'].'" /></a> '; } } if(!$imgonly) { $out .= $lang['license']; $out .= '<a href="'.$lic['url'].'" rel="license" class="urlextern"'; - if(isset($conf['target']['external'])) $out .= ' target="'.$conf['target']['external'].'"'; + if($conf['target']['extern']) $out .= ' target="'.$conf['target']['extern'].'"'; $out .= '>'.$lic['name'].'</a>'; } $out .= '</div>'; @@ -1406,5 +1248,89 @@ function tpl_include_page($pageid,$print=true){ echo $html; } +/** + * Display the subscribe form + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function tpl_subscribe() { + global $INFO; + global $ID; + global $lang; + global $conf; + + echo p_locale_xhtml('subscr_form'); + echo '<h2>' . $lang['subscr_m_current_header'] . '</h2>'; + echo '<div class="level2">'; + if ($INFO['subscribed'] === false) { + echo '<p>' . $lang['subscr_m_not_subscribed'] . '</p>'; + } else { + echo '<ul>'; + foreach($INFO['subscribed'] as $sub) { + echo '<li><div class="li">'; + if ($sub['target'] !== $ID) { + echo '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>'; + } else { + echo '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>'; + } + $sstl = $lang['subscr_style_'.$sub['style']]; + if(!$sstl) $sstl = hsc($sub['style']); + echo ' ('.$sstl.') '; + + echo '<a href="' . wl($ID, + array('do'=>'subscribe', + 'sub_target'=>$sub['target'], + 'sub_style'=>$sub['style'], + 'sub_action'=>'unsubscribe', + 'sectok' => getSecurityToken())) . + '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'] . + '</a></div></li>'; + } + echo '</ul>'; + } + echo '</div>'; + + // Add new subscription form + echo '<h2>' . $lang['subscr_m_new_header'] . '</h2>'; + echo '<div class="level2">'; + $ns = getNS($ID).':'; + $targets = array( + $ID => '<code class="page">'.prettyprint_id($ID).'</code>', + $ns => '<code class="ns">'.prettyprint_id($ns).'</code>', + ); + $stime_days = $conf['subscribe_time']/60/60/24; + $styles = array( + 'every' => $lang['subscr_style_every'], + 'digest' => sprintf($lang['subscr_style_digest'], $stime_days), + 'list' => sprintf($lang['subscr_style_list'], $stime_days), + ); + + $form = new Doku_Form(array('id' => 'subscribe__form')); + $form->startFieldset($lang['subscr_m_subscribe']); + $form->addRadioSet('sub_target', $targets); + $form->startFieldset($lang['subscr_m_receive']); + $form->addRadioSet('sub_style', $styles); + $form->addHidden('sub_action', 'subscribe'); + $form->addHidden('do', 'subscribe'); + $form->addHidden('id', $ID); + $form->endFieldset(); + $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe'])); + html_form('SUBSCRIBE', $form); + echo '</div>'; +} + +/** + * Tries to send already created content right to the browser + * + * Wraps around ob_flush() and flush() + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function tpl_flush(){ + ob_flush(); + flush(); +} + + //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/toolbar.php b/inc/toolbar.php index 9140970d1..a07bfb93d 100644 --- a/inc/toolbar.php +++ b/inc/toolbar.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/JSON.php'); - /** * Prepares and prints an JavaScript array with all toolbar buttons @@ -36,6 +34,7 @@ function toolbar_JSdefines($varname){ 'key' => 'b', 'open' => '**', 'close' => '**', + 'block' => false ), array( 'type' => 'format', @@ -44,6 +43,7 @@ function toolbar_JSdefines($varname){ 'key' => 'i', 'open' => '//', 'close' => '//', + 'block' => false ), array( 'type' => 'format', @@ -52,6 +52,7 @@ function toolbar_JSdefines($varname){ 'key' => 'u', 'open' => '__', 'close' => '__', + 'block' => false ), array( 'type' => 'format', @@ -60,6 +61,7 @@ function toolbar_JSdefines($varname){ 'key' => 'c', 'open' => "''", 'close' => "''", + 'block' => false ), array( 'type' => 'format', @@ -68,6 +70,7 @@ function toolbar_JSdefines($varname){ 'key' => 'd', 'open' => '<del>', 'close' => '</del>', + 'block' => false ), array( @@ -76,7 +79,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hequal.png', 'key' => '8', 'text' => $lang['qb_h'], - 'mod' => 0 + 'mod' => 0, + 'block' => true ), array( 'type' => 'autohead', @@ -84,7 +88,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hminus.png', 'key' => '9', 'text' => $lang['qb_h'], - 'mod' => 1 + 'mod' => 1, + 'block' => true ), array( 'type' => 'autohead', @@ -92,7 +97,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hplus.png', 'key' => '0', 'text' => $lang['qb_h'], - 'mod' => -1 + 'mod' => -1, + 'block' => true ), array( @@ -141,7 +147,8 @@ function toolbar_JSdefines($varname){ 'open' => '== ', 'close' => ' ==\n', ), - ) + ), + 'block' => true ), array( @@ -151,6 +158,7 @@ function toolbar_JSdefines($varname){ 'key' => 'l', 'open' => '[[', 'close' => ']]', + 'block' => false ), array( 'type' => 'format', @@ -159,6 +167,7 @@ function toolbar_JSdefines($varname){ 'open' => '[[', 'close' => ']]', 'sample' => 'http://example.com|'.$lang['qb_extlink'], + 'block' => false ), array( 'type' => 'formatln', @@ -167,6 +176,7 @@ function toolbar_JSdefines($varname){ 'open' => ' - ', 'close' => '', 'key' => '-', + 'block' => true ), array( 'type' => 'formatln', @@ -175,12 +185,14 @@ function toolbar_JSdefines($varname){ 'open' => ' * ', 'close' => '', 'key' => '.', + 'block' => true ), array( 'type' => 'insert', 'title' => $lang['qb_hr'], 'icon' => 'hr.png', 'insert' => '\n----\n', + 'block' => true ), array( 'type' => 'mediapopup', @@ -189,6 +201,7 @@ function toolbar_JSdefines($varname){ 'url' => 'lib/exe/mediamanager.php?ns=', 'name' => 'mediaselect', 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes', + 'block' => false ), array( 'type' => 'picker', @@ -196,18 +209,21 @@ function toolbar_JSdefines($varname){ 'icon' => 'smiley.png', 'list' => getSmileys(), 'icobase'=> 'smileys', + 'block' => false ), array( 'type' => 'picker', 'title' => $lang['qb_chars'], 'icon' => 'chars.png', 'list' => explode(' ','À à Á á  â à ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Œ œ Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π π ρ Σ σ Τ τ υ Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☝ ☞ ☟ ☹ ☺ ✔ ✘ × „ “ ” ‚ ‘ ’ « » ‹ › — – … ← ↑ → ↓ ↔ ⇐ ⇑ ⇒ ⇓ ⇔ © ™ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'), + 'block' => false ), array( 'type' => 'signature', 'title' => $lang['qb_sig'], 'icon' => 'sig.png', 'key' => 'y', + 'block' => false ), )); } // end event TOOLBAR_DEFINE default action diff --git a/inc/utf8.php b/inc/utf8.php index b078540d2..47e7ed61f 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -2,7 +2,7 @@ /** * UTF8 helper functions * - * @license LGPL (http://www.gnu.org/copyleft/lesser.html) + * @license LGPL 2.1 (http://www.gnu.org/copyleft/lesser.html) * @author Andreas Gohr <andi@splitbrain.org> */ @@ -19,45 +19,6 @@ if(!defined('UTF8_MBSTRING')){ if(UTF8_MBSTRING){ mb_internal_encoding('UTF-8'); } -if(!function_exists('utf8_encodeFN')){ - /** - * URL-Encode a filename to allow unicodecharacters - * - * Slashes are not encoded - * - * When the second parameter is true the string will - * be encoded only if non ASCII characters are detected - - * This makes it safe to run it multiple times on the - * same string (default is true) - * - * @author Andreas Gohr <andi@splitbrain.org> - * @see urlencode - */ - function utf8_encodeFN($file,$safe=true){ - if($safe && preg_match('#^[a-zA-Z0-9/_\-.%]+$#',$file)){ - return $file; - } - $file = urlencode($file); - $file = str_replace('%2F','/',$file); - return $file; - } -} - -if(!function_exists('utf8_decodeFN')){ - /** - * URL-Decode a filename - * - * This is just a wrapper around urldecode - * - * @author Andreas Gohr <andi@splitbrain.org> - * @see urldecode - */ - function utf8_decodeFN($file){ - $file = urldecode($file); - return $file; - } -} - if(!function_exists('utf8_isASCII')){ /** * Checks if a string contains 7bit ASCII only diff --git a/install.php b/install.php index 414d3e99e..5a53070a0 100644 --- a/install.php +++ b/install.php @@ -45,7 +45,8 @@ $dokuwiki_hash = array( '2007-06-26' => 'b3ca19c7a654823144119980be73cd77', '2008-05-04' => '1e5c42eac3219d9e21927c39e3240aad', '2009-02-14' => 'ec8c04210732a14fdfce0f7f6eead865', - '2009-12-25' => '993c4b2b385643efe5abf8e7010e11f4', + '2009-12-25' => '993c4b2b385643efe5abf8e7010e11f4', + '2010-08-29rc' => '7921d48195f4db21b8ead6d9bea801b8' ); @@ -68,6 +69,7 @@ header('Content-Type: text/html; charset=utf-8'); fieldset { border: none } label { display: block; margin-top: 0.5em; } select.text, input.text { width: 30em; margin: 0 0.5em; } + a {text-decoration: none} </style> <script type="text/javascript" language="javascript"> function acltoggle(){ @@ -150,6 +152,8 @@ function print_form($d){ global $lang; global $LC; + include(DOKU_CONF.'license.php'); + if(!is_array($d)) $d = array(); $d = array_map('htmlspecialchars',$d); @@ -190,9 +194,26 @@ function print_form($d){ <option value="1" <?php echo ($d['policy'] == 1)?'selected="selected"':'' ?>><?php echo $lang['i_pol1']?></option> <option value="2" <?php echo ($d['policy'] == 2)?'selected="selected"':'' ?>><?php echo $lang['i_pol2']?></option> </select> + </fieldset> </fieldset> + <fieldset> + <p><?php echo $lang['i_license']?></p> + <?php + array_unshift($license,array('name' => 'None', 'url'=>'')); + if(!isset($d['license'])) $d['license'] = 'cc-by-sa'; + foreach($license as $key => $lic){ + echo '<label for="lic_'.$key.'">'; + echo '<input type="radio" name="d[license]" value="'.htmlspecialchars($key).'" id="lic_'.$key.'"'. + (($d['license'] == $key)?'checked="checked"':'').'>'; + echo htmlspecialchars($lic['name']); + if($lic['url']) echo ' <a href="'.$lic['url'].'" target="_blank"><sup>[?]</sup></a>'; + echo '</label>'; + } + ?> + </fieldset> + </fieldset> <fieldset id="process"> <input class="button" type="submit" name="submit" value="<?php echo $lang['btn_save']?>" /> @@ -202,16 +223,16 @@ function print_form($d){ } function print_retry() { - global $lang; - global $LC; -?> + global $lang; + global $LC; + ?> <form action="" method="get"> <fieldset> <input type="hidden" name="l" value="<?php echo $LC ?>" /> <input class="button" type="submit" value="<?php echo $lang['i_retry'];?>" /> </fieldset> </form> -<?php + <?php } /** @@ -234,7 +255,7 @@ function check_data(&$d){ $ok = false; } if($d['acl']){ - if(!preg_match('/^[a-z1-9_]+$/',$d['superuser'])){ + if(!preg_match('/^[a-z0-9_]+$/',$d['superuser'])){ $error[] = sprintf($lang['i_badval'],$lang['i_superuser']); $ok = false; } @@ -281,6 +302,7 @@ function store_data($d){ EOT; $output .= '$conf[\'title\'] = \''.addslashes($d['title'])."';\n"; $output .= '$conf[\'lang\'] = \''.addslashes($LC)."';\n"; + $output .= '$conf[\'license\'] = \''.addslashes($d['license'])."';\n"; if($d['acl']){ $output .= '$conf[\'useacl\'] = 1'.";\n"; $output .= "\$conf['superuser'] = '@admin';\n"; @@ -360,7 +382,6 @@ function check_configs(){ 'auth' => DOKU_LOCAL.'acl.auth.php' ); - // main dokuwiki config file (conf/dokuwiki.php) must not have been modified $installation_hash = md5(preg_replace("/(\015\012)|(\015)/","\012", @file_get_contents(DOKU_CONF.'dokuwiki.php'))); @@ -437,8 +458,8 @@ function check_functions(){ 'preg_replace file_get_contents htmlspecialchars_decode'); if (!function_exists('mb_substr')) { - $funcs[] = 'utf8_encode'; - $funcs[] = 'utf8_decode'; + $funcs[] = 'utf8_encode'; + $funcs[] = 'utf8_decode'; } foreach($funcs as $func){ @@ -505,12 +526,12 @@ function print_errors(){ * @author Andreas Gohr <andi@splitbrain.org> */ function remove_magic_quotes(&$array) { - foreach (array_keys($array) as $key) { - if (is_array($array[$key])) { - remove_magic_quotes($array[$key]); - }else { - $array[$key] = stripslashes($array[$key]); + foreach (array_keys($array) as $key) { + if (is_array($array[$key])) { + remove_magic_quotes($array[$key]); + }else { + $array[$key] = stripslashes($array[$key]); + } } - } } diff --git a/lib/_fla/MultipleUpload.as b/lib/_fla/MultipleUpload.as index c5e7799f9..259441656 100644 --- a/lib/_fla/MultipleUpload.as +++ b/lib/_fla/MultipleUpload.as @@ -6,6 +6,7 @@ * @link http://blog.vixiom.com/2006/09/08/multiple-file-upload-with-flash-and-ruby-on-rails/ * @author Alastair Dawson * @author Andreas Gohr <andi@splitbrain.org> + * @license MIT <http://www.opensource.org/licenses/mit-license.php> */ // delegate diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index 4618abd71..533b8f91c 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -7,16 +7,13 @@ */ //fix for Opera XMLHttpRequests -if(!count($_POST) && $HTTP_RAW_POST_DATA){ +if(!count($_POST) && !empty($HTTP_RAW_POST_DATA)){ parse_str($HTTP_RAW_POST_DATA, $_POST); } if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/auth.php'); -//close sesseion +//close session session_write_close(); header('Content-Type: text/html; charset=utf-8'); @@ -53,30 +50,28 @@ function ajax_qsearch(){ global $conf; global $lang; - $query = cleanID($_POST['q']); - if(empty($query)) $query = cleanID($_GET['q']); + $query = $_POST['q']; + if(empty($query)) $query = $_GET['q']; if(empty($query)) return; - require_once(DOKU_INC.'inc/html.php'); - require_once(DOKU_INC.'inc/fulltext.php'); - - $data = array(); - $data = ft_pageLookup($query); + $data = ft_pageLookup($query, true, useHeading('navigation')); if(!count($data)) return; print '<strong>'.$lang['quickhits'].'</strong>'; print '<ul>'; - foreach($data as $id){ - print '<li>'; - $ns = getNS($id); - if($ns){ - $name = shorten(noNS($id), ' ('.$ns.')',30); - }else{ - $name = $id; + foreach($data as $id => $title){ + if (useHeading('navigation')) { + $name = $title; + } else { + $ns = getNS($id); + if($ns){ + $name = shorten(noNS($id), ' ('.$ns.')',30); + }else{ + $name = $id; + } } - print html_wikilink(':'.$id,$name); - print '</li>'; + echo '<li>' . html_wikilink(':'.$id,$name) . '</li>'; } print '</ul>'; } @@ -95,13 +90,10 @@ function ajax_suggestions() { if(empty($query)) $query = cleanID($_GET['q']); if(empty($query)) return; - require_once(DOKU_INC.'inc/html.php'); - require_once(DOKU_INC.'inc/fulltext.php'); - require_once(DOKU_INC.'inc/JSON.php'); - $data = array(); $data = ft_pageLookup($query); if(!count($data)) return; + $data = array_keys($data); // limit results to 15 hits $data = array_slice($data, 0, 15); @@ -147,7 +139,7 @@ function ajax_lock(){ 'prefix' => $_POST['prefix'], 'text' => $_POST['wikitext'], 'suffix' => $_POST['suffix'], - 'date' => $_POST['date'], + 'date' => (int) $_POST['date'], 'client' => $client, ); $cname = getCacheName($draft['client'].$id,'.draft'); @@ -164,7 +156,7 @@ function ajax_lock(){ * @author Andreas Gohr <andi@splitbrain.org> */ function ajax_draftdel(){ - $id = cleanID($_POST['id']); + $id = cleanID($_REQUEST['id']); if(empty($id)) return; $client = $_SERVER['REMOTE_USER']; @@ -181,8 +173,6 @@ function ajax_draftdel(){ */ function ajax_medians(){ global $conf; - require_once(DOKU_INC.'inc/search.php'); - require_once(DOKU_INC.'inc/media.php'); // wanted namespace $ns = cleanID($_POST['ns']); @@ -208,34 +198,18 @@ function ajax_medians(){ function ajax_medialist(){ global $conf; global $NS; - require_once(DOKU_INC.'inc/media.php'); - require_once(DOKU_INC.'inc/template.php'); $NS = $_POST['ns']; tpl_mediaContent(true); } /** - * Return list of search result for the Mediamanager - * - * @author Tobias Sarnowski <sarnowski@cosmocode.de> - */ -function ajax_mediasearchlist(){ - global $conf; - require_once(DOKU_INC.'inc/media.php'); - - media_searchlist($_POST['ns']); -} - -/** * Return sub index for index view * * @author Andreas Gohr <andi@splitbrain.org> */ function ajax_index(){ global $conf; - require_once(DOKU_INC.'inc/search.php'); - require_once(DOKU_INC.'inc/html.php'); // wanted namespace $ns = cleanID($_POST['idx']); @@ -263,7 +237,6 @@ function ajax_index(){ function ajax_linkwiz(){ global $conf; global $lang; - require_once(DOKU_INC.'inc/html.php'); $q = ltrim($_POST['q'],':'); $id = noNS($q); @@ -279,29 +252,28 @@ function ajax_linkwiz(){ if($q && !$ns){ // use index to lookup matching pages - require_once(DOKU_INC.'inc/fulltext.php'); - require_once(DOKU_INC.'inc/parserutils.php'); $pages = array(); - $pages = ft_pageLookup($id,false); + $pages = ft_pageLookup($id,true); // result contains matches in pages and namespaces // we now extract the matching namespaces to show // them seperately $dirs = array(); - $count = count($pages); - for($i=0; $i<$count; $i++){ - if(strpos(noNS($pages[$i]),$id) === false){ + + + foreach($pages as $pid => $title){ + if(strpos(noNS($pid),$id) === false){ // match was in the namespace - $dirs[getNS($pages[$i])] = 1; // assoc array avoids dupes + $dirs[getNS($pid)] = 1; // assoc array avoids dupes }else{ // it is a matching page, add it to the result $data[] = array( - 'id' => $pages[$i], - 'title' => p_get_first_heading($pages[$i],false), + 'id' => $pid, + 'title' => $title, 'type' => 'f', ); } - unset($pages[$i]); + unset($pages[$pid]); } foreach($dirs as $dir => $junk){ $data[] = array( @@ -312,13 +284,13 @@ function ajax_linkwiz(){ }else{ - require_once(DOKU_INC.'inc/search.php'); $opts = array( 'depth' => 1, 'listfiles' => true, 'listdirs' => true, 'pagesonly' => true, 'firsthead' => true, + 'sneakyacl' => $conf['sneaky_index'], ); if($id) $opts['filematch'] = '^.*\/'.$id; if($id) $opts['dirmatch'] = '^.*\/'.$id; diff --git a/lib/exe/css.php b/lib/exe/css.php index cb689d015..76f40c7bb 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -10,10 +10,6 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching) if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT',1); // we gzip ourself here require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/httputils.php'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/confutils.php'); // Main (don't run when UNIT test) if(!defined('SIMPLE_TEST')){ @@ -32,6 +28,8 @@ if(!defined('SIMPLE_TEST')){ function css_out(){ global $conf; global $lang; + global $config_cascade; + $style = ''; if (isset($_REQUEST['s']) && in_array($_REQUEST['s'], array('all', 'print', 'feed'))) { @@ -68,7 +66,10 @@ function css_out(){ // load plugin, template, user styles $files = array_merge($files, css_pluginstyles($style)); if (isset($tplstyles[$style])) $files = array_merge($files, $tplstyles[$style]); - $files[DOKU_CONF.'user'.$style.'.css'] = DOKU_BASE; + + if(isset($config_cascade['userstyle'][$style])){ + $files[$config_cascade['userstyle'][$style]] = DOKU_BASE; + } }else{ $files[DOKU_INC.'lib/styles/style.css'] = DOKU_BASE.'lib/styles/'; // load plugin, template, user styles @@ -77,7 +78,9 @@ function css_out(){ if($lang['direction'] == 'rtl'){ if (isset($tplstyles['rtl'])) $files = array_merge($files, $tplstyles['rtl']); } - $files[DOKU_CONF.'userstyle.css'] = DOKU_BASE; + if(isset($config_cascade['userstyle']['default'])){ + $files[$config_cascade['userstyle']['default']] = DOKU_BASE; + } } // check cache age & handle conditional request diff --git a/lib/exe/detail.php b/lib/exe/detail.php index f30e039d4..3a04b7b09 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -2,13 +2,6 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); define('DOKU_MEDIADETAIL',1); require_once(DOKU_INC.'inc/init.php'); - require_once(DOKU_INC.'inc/common.php'); - require_once(DOKU_INC.'inc/lang/en/lang.php'); - require_once(DOKU_INC.'inc/lang/'.$conf['lang'].'/lang.php'); - require_once(DOKU_INC.'inc/JpegMeta.php'); - require_once(DOKU_INC.'inc/html.php'); - require_once(DOKU_INC.'inc/template.php'); - require_once(DOKU_INC.'inc/auth.php'); //close session session_write_close(); diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index 11877ef36..680fd9ae4 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -9,14 +9,8 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); define('DOKU_DISABLE_GZIP_OUTPUT', 1); require_once(DOKU_INC.'inc/init.php'); - require_once(DOKU_INC.'inc/common.php'); - require_once(DOKU_INC.'inc/media.php'); - require_once(DOKU_INC.'inc/pageutils.php'); - require_once(DOKU_INC.'inc/httputils.php'); - require_once(DOKU_INC.'inc/confutils.php'); - require_once(DOKU_INC.'inc/auth.php'); - - //close sesseion + + //close session session_write_close(); $mimetypes = getMimeTypes(); @@ -33,72 +27,59 @@ $DL = true; } - //media to local file - if(preg_match('#^(https?)://#i',$MEDIA)){ - //check hash - if(substr(md5(auth_cookiesalt().$MEDIA),0,6) != $_REQUEST['hash']){ - header("HTTP/1.0 412 Precondition Failed"); - print 'Precondition Failed'; - exit; - } - //handle external images - if(strncmp($MIME,'image/',6) == 0) $FILE = media_get_from_URL($MEDIA,$EXT,$CACHE); - if(!$FILE){ - //download failed - redirect to original URL - header('Location: '.$MEDIA); - exit; + // check for permissions, preconditions and cache external files + list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE); + + // prepare data for plugin events + $data = array('media' => $MEDIA, + 'file' => $FILE, + 'orig' => $FILE, + 'mime' => $MIME, + 'download' => $DL, + 'cache' => $CACHE, + 'ext' => $EXT, + 'width' => $WIDTH, + 'height' => $HEIGHT, + 'status' => $STATUS, + 'statusmessage' => $STATUSMESSAGE, + ); + + // handle the file status + $evt = new Doku_Event('FETCH_MEDIA_STATUS', $data); + if ( $evt->advise_before() ) { + // redirects + if($data['status'] > 300 && $data['status'] <= 304){ + send_redirect($data['statusmessage']); } - }else{ - $MEDIA = cleanID($MEDIA); - if(empty($MEDIA)){ - header("HTTP/1.0 400 Bad Request"); - print 'Bad request'; - exit; + // send any non 200 status + if($data['status'] != 200){ + header('HTTP/1.0 ' . $data['status'] . ' ' . $data['statusmessage']); } - - //check permissions (namespace only) - if(auth_quickaclcheck(getNS($MEDIA).':X') < AUTH_READ){ - header("HTTP/1.0 401 Unauthorized"); - //fixme add some image for imagefiles - print 'Unauthorized'; + // die on errors + if($data['status'] > 203){ + print $data['statusmessage']; exit; } - $FILE = mediaFN($MEDIA); - } - - //check file existance - if(!@file_exists($FILE)){ - header("HTTP/1.0 404 Not Found"); - //FIXME add some default broken image - print 'Not Found'; - exit; } - - $ORIG = $FILE; + $evt->advise_after(); + unset($evt); //handle image resizing/cropping if((substr($MIME,0,5) == 'image') && $WIDTH){ if($HEIGHT){ - $FILE = media_crop_image($FILE,$EXT,$WIDTH,$HEIGHT); + $data['file'] = $FILE = media_crop_image($data['file'],$EXT,$WIDTH,$HEIGHT); }else{ - $FILE = media_resize_image($FILE,$EXT,$WIDTH,$HEIGHT); + $data['file'] = $FILE = media_resize_image($data['file'],$EXT,$WIDTH,$HEIGHT); } } // finally send the file to the client - $data = array('file' => $FILE, - 'mime' => $MIME, - 'download' => $DL, - 'cache' => $CACHE, - 'orig' => $ORIG, - 'ext' => $EXT, - 'width' => $WIDTH, - 'height' => $HEIGHT); - $evt = new Doku_Event('MEDIA_SENDFILE', $data); if ($evt->advise_before()) { sendFile($data['file'],$data['mime'],$data['download'],$data['cache']); } + // Do something after the download finished. + $evt->advise_after(); /* ------------------------------------------------------------------------ */ @@ -156,6 +137,53 @@ function sendFile($file,$mime,$dl,$cache){ } /** + * Check for media for preconditions and return correct status code + * + * READ: MEDIA, MIME, EXT, CACHE + * WRITE: MEDIA, FILE, array( STATUS, STATUSMESSAGE ) + * + * @author Gerry Weissbach <gerry.w@gammaproduction.de> + * @param $media reference to the media id + * @param $file reference to the file variable + * @returns array(STATUS, STATUSMESSAGE) + */ +function checkFileStatus(&$media, &$file) { + global $MIME, $EXT, $CACHE; + + //media to local file + if(preg_match('#^(https?)://#i',$media)){ + //check hash + if(substr(md5(auth_cookiesalt().$media),0,6) != $_REQUEST['hash']){ + return array( 412, 'Precondition Failed'); + } + //handle external images + if(strncmp($MIME,'image/',6) == 0) $file = media_get_from_URL($media,$EXT,$CACHE); + if(!$file){ + //download failed - redirect to original URL + return array( 302, $media ); + } + }else{ + $media = cleanID($media); + if(empty($media)){ + return array( 400, 'Bad request' ); + } + + //check permissions (namespace only) + if(auth_quickaclcheck(getNS($media).':X') < AUTH_READ){ + return array( 403, 'Forbidden' ); + } + $file = mediaFN($media); + } + + //check file existance + if(!@file_exists($file)){ + return array( 404, 'Not Found' ); + } + + return array(200, null); +} + +/** * Returns the wanted cachetime in seconds * * Resolves named constants diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 1c4128eb7..f8e2f7981 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -8,8 +8,6 @@ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); define('DOKU_DISABLE_GZIP_OUTPUT',1); require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/auth.php'); -require_once(DOKU_INC.'inc/events.php'); session_write_close(); //close session if(!defined('NL')) define('NL',"\n"); @@ -37,6 +35,7 @@ if ($evt->advise_before()) { runIndexer() or metaUpdate() or runSitemapper() or + sendDigest() or runTrimRecentChanges() or runTrimRecentChanges(true) or $evt->advise_after(); @@ -135,18 +134,6 @@ function runIndexer(){ global $conf; print "runIndexer(): started".NL; - // Move index files (if needed) - // Uses the importoldindex plugin to upgrade the index automatically. - // FIXME: Remove this from runIndexer when it is no longer needed. - if (@file_exists($conf['cachedir'].'/page.idx') && - (!@file_exists($conf['indexdir'].'/page.idx') || - !filesize($conf['indexdir'].'/page.idx')) && - !@file_exists($conf['indexdir'].'/index_importing')) { - echo "trigger TEMPORARY_INDEX_UPGRADE_EVENT\n"; - $tmp = array(); // no event data - trigger_event('TEMPORARY_INDEX_UPGRADE_EVENT', $tmp); - } - if(!$ID) return false; // check if indexing needed @@ -176,8 +163,6 @@ function runIndexer(){ } if($conf['dperm']) chmod($lock, $conf['dperm']); - require_once(DOKU_INC.'inc/indexer.php'); - // upgrade to version 2 if (!@file_exists($conf['indexdir'].'/pageword.idx')) idx_upgradePageWords(); @@ -210,11 +195,8 @@ function metaUpdate(){ if (@file_exists($file)) return false; if (!@file_exists(wikiFN($ID))) return false; - require_once(DOKU_INC.'inc/common.php'); - require_once(DOKU_INC.'inc/parserutils.php'); global $conf; - // gather some additional info from changelog $info = io_grep($conf['changelog'], '/^(\d+)\t(\d+\.\d+\.\d+\.\d+)\t'.preg_quote($ID,'/').'\t([^\t]+)\t([^\t\n]+)/', @@ -273,7 +255,7 @@ function runSitemapper(){ return false; } - $pages = file($conf['indexdir'].'/page.idx'); + $pages = idx_getIndex('page', ''); print 'runSitemapper(): creating sitemap using '.count($pages).' pages'.NL; // build the sitemap @@ -335,6 +317,98 @@ function runSitemapper(){ } /** + * Send digest and list mails for all subscriptions which are in effect for the + * current page + * + * @author Adrian Lang <lang@cosmocode.de> + */ +function sendDigest() { + echo 'sendDigest(): start'.NL; + global $ID; + global $conf; + if (!$conf['subscribers']) { + return; + } + $subscriptions = subscription_find($ID, array('style' => '(digest|list)', + 'escaped' => true)); + global $auth; + global $lang; + global $conf; + global $USERINFO; + + // remember current user info + $olduinfo = $USERINFO; + $olduser = $_SERVER['REMOTE_USER']; + + foreach($subscriptions as $id => $users) { + if (!subscription_lock($id)) { + continue; + } + foreach($users as $data) { + list($user, $style, $lastupdate) = $data; + $lastupdate = (int) $lastupdate; + if ($lastupdate + $conf['subscribe_time'] > time()) { + // Less than the configured time period passed since last + // update. + continue; + } + + // Work as the user to make sure ACLs apply correctly + $USERINFO = $auth->getUserData($user); + $_SERVER['REMOTE_USER'] = $user; + if ($USERINFO === false) { + continue; + } + + if (substr($id, -1, 1) === ':') { + // The subscription target is a namespace + $changes = getRecentsSince($lastupdate, null, getNS($id)); + } else { + if(auth_quickaclcheck($id) < AUTH_READ) continue; + + $meta = p_get_metadata($id); + $changes = array($meta['last_change']); + } + + // Filter out pages only changed in small and own edits + $change_ids = array(); + foreach($changes as $rev) { + $n = 0; + while (!is_null($rev) && $rev['date'] >= $lastupdate && + ($_SERVER['REMOTE_USER'] === $rev['user'] || + $rev['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT)) { + $rev = getRevisions($rev['id'], $n++, 1); + $rev = (count($rev) > 0) ? $rev[0] : null; + } + + if (!is_null($rev) && $rev['date'] >= $lastupdate) { + // Some change was not a minor one and not by myself + $change_ids[] = $rev['id']; + } + } + + if ($style === 'digest') { + foreach($change_ids as $change_id) { + subscription_send_digest($USERINFO['mail'], $change_id, + $lastupdate); + } + } elseif ($style === 'list') { + subscription_send_list($USERINFO['mail'], $change_ids, $id); + } + // TODO: Handle duplicate subscriptions. + + // Update notification time. + subscription_set($user, $id, $style, time(), true); + } + subscription_unlock($id); + } + + // restore current user info + $USERINFO = $olduinfo; + $_SERVER['REMOTE_USER'] = $olduser; +} + +/** * Formats a timestamp as ISO 8601 date * * @author <ungu at terong dot com> diff --git a/lib/exe/js.php b/lib/exe/js.php index ab67288cd..3756c43b9 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -11,10 +11,6 @@ if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session o if(!defined('NL')) define('NL',"\n"); if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT',1); // we gzip ourself here require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/httputils.php'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/JSON.php'); // Main (don't run when UNIT test) if(!defined('SIMPLE_TEST')){ @@ -33,6 +29,7 @@ if(!defined('SIMPLE_TEST')){ function js_out(){ global $conf; global $lang; + global $config_cascade; // The generated script depends on some dynamic options $cache = getCacheName('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.js'); @@ -41,6 +38,7 @@ function js_out(){ $files = array( DOKU_INC.'lib/scripts/helpers.js', DOKU_INC.'lib/scripts/events.js', + DOKU_INC.'lib/scripts/delay.js', DOKU_INC.'lib/scripts/cookie.js', DOKU_INC.'lib/scripts/script.js', DOKU_INC.'lib/scripts/tw-sack.js', @@ -52,12 +50,16 @@ function js_out(){ DOKU_INC.'lib/scripts/edit.js', DOKU_INC.'lib/scripts/linkwiz.js', DOKU_INC.'lib/scripts/media.js', + DOKU_INC.'lib/scripts/subscriptions.js', + DOKU_INC.'lib/scripts/hotkeys.js', DOKU_TPLINC.'script.js', ); // add possible plugin scripts and userscript $files = array_merge($files,js_pluginscripts()); - $files[] = DOKU_CONF.'userscript.js'; + if(isset($config_cascade['userscript']['default'])){ + $files[] = $config_cascade['userscript']['default']; + } // check cache age & handle conditional request header('Cache-Control: public, max-age=3600'); @@ -94,7 +96,6 @@ function js_out(){ echo 'LANG = '.$json->encode($lang['js']).";\n"; // load toolbar - require_once(DOKU_INC.'inc/toolbar.php'); toolbar_JSdefines('toolbar'); // load files @@ -106,15 +107,17 @@ function js_out(){ // init stuff - js_runonstart("ajax_qsearch.init('qsearch__in','qsearch__out')"); js_runonstart("addEvent(document,'click',closePopups)"); js_runonstart('addTocToggle()'); js_runonstart("initSizeCtl('size__ctl','wiki__text')"); js_runonstart("initToolbar('tool__bar','wiki__text',toolbar)"); - js_runonstart("initChangeCheck('".js_escape($lang['notsavedyet'])."')"); - js_runonstart("locktimer.init(".($conf['locktime'] - 60).",'".js_escape($lang['willexpire'])."',".$conf['usedraft'].")"); + if($conf['locktime'] != 0){ + js_runonstart("locktimer.init(".($conf['locktime'] - 60).",'".js_escape($lang['willexpire'])."',".$conf['usedraft'].")"); + } js_runonstart('scrollToMarker()'); js_runonstart('focusMarker()'); + // init hotkeys - must have been done after init of toolbar + js_runonstart('initializeHotkeys()'); // end output buffering and get contents $js = ob_get_contents(); @@ -151,7 +154,7 @@ function js_load($file){ static $loaded = array(); $data = io_readFile($file); - while(preg_match('#/\*\s*DOKUWIKI:include(_once)?\s+([\w\./]+)\s*\*/#',$data,$match)){ + while(preg_match('#/\*\s*DOKUWIKI:include(_once)?\s+([\w\.\-_/]+)\s*\*/#',$data,$match)){ $ifile = $match[2]; // is it a include_once? diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index f6e91b858..c79a25c08 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -6,13 +6,6 @@ @ini_set('session.use_only_cookies',0); require_once(DOKU_INC.'inc/init.php'); - require_once(DOKU_INC.'inc/lang/en/lang.php'); - require_once(DOKU_INC.'inc/lang/'.$conf['lang'].'/lang.php'); - require_once(DOKU_INC.'inc/media.php'); - require_once(DOKU_INC.'inc/common.php'); - require_once(DOKU_INC.'inc/search.php'); - require_once(DOKU_INC.'inc/template.php'); - require_once(DOKU_INC.'inc/auth.php'); trigger_event('MEDIAMANAGER_STARTED',$tmp=array()); session_write_close(); //close session @@ -41,6 +34,12 @@ // check auth $AUTH = auth_quickaclcheck("$NS:*"); + // do not display the manager if user does not have read access + if($AUTH < AUTH_READ) { + header('HTTP/1.0 403 Forbidden'); + die($lang['accessdenied']); + } + // create the given namespace (just for beautification) if($AUTH >= AUTH_UPLOAD) { io_createNamespace("$NS:xxx", 'media'); } diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index d3913482f..f06792361 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -7,18 +7,13 @@ if(isset($HTTP_RAW_POST_DATA)) $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA); /** * Increased whenever the API is changed */ -define('DOKU_XMLRPC_API_VERSION',2); +define('DOKU_XMLRPC_API_VERSION',4); require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/auth.php'); session_write_close(); //close session if(!$conf['xmlrpc']) die('XML-RPC server not enabled.'); -require_once(DOKU_INC.'inc/IXR_Library.php'); - - /** * Contains needed wrapper functions and registers all available * XMLRPC functions. @@ -119,6 +114,13 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { ); $this->addCallback( + 'dokuwiki.search', + 'this:search', + array('struct','string'), + 'Perform a fulltext search and return a list of matching pages' + ); + + $this->addCallback( 'dokuwiki.getTime', 'time', array('int'), @@ -132,6 +134,15 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { 'Lock or unlock pages.' ); + + $this->addCallback( + 'dokuwiki.getTitle', + 'this:getTitle', + array('string'), + 'Returns the wiki title.', + true + ); + /* Wiki API v2 http://www.jspwiki.org/wiki/WikiRPCInterface2 */ $this->addCallback( 'wiki.getRPCVersionSupported', @@ -283,8 +294,7 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { } $text = rawWiki($id,$rev); if(!$text) { - $data = array($id); - return trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true); + return pageTemplate($id); } else { return $text; } @@ -344,24 +354,22 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { * List all pages - we use the indexer list here */ function listPages(){ - global $conf; - $list = array(); - $pages = file($conf['indexdir'] . '/page.idx'); - $pages = array_filter($pages, 'isVisiblePage'); + $pages = array_filter(array_filter(idx_getIndex('page', ''), + 'isVisiblePage'), + 'page_exists'); foreach(array_keys($pages) as $idx) { - if(page_exists($pages[$idx])) { - $perm = auth_quickaclcheck($pages[$idx]); - if($perm >= AUTH_READ) { - $page = array(); - $page['id'] = trim($pages[$idx]); - $page['perms'] = $perm; - $page['size'] = @filesize(wikiFN($pages[$idx])); - $page['lastModified'] = new IXR_Date(@filemtime(wikiFN($pages[$idx]))); - $list[] = $page; - } + $perm = auth_quickaclcheck($pages[$idx]); + if($perm < AUTH_READ) { + continue; } + $page = array(); + $page['id'] = trim($pages[$idx]); + $page['perms'] = $perm; + $page['size'] = @filesize(wikiFN($pages[$idx])); + $page['lastModified'] = new IXR_Date(@filemtime(wikiFN($pages[$idx]))); + $list[] = $page; } return $list; @@ -378,13 +386,54 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { $ns = cleanID($ns); $dir = utf8_encodeFN(str_replace(':', '/', $ns)); $data = array(); - require_once(DOKU_INC.'inc/search.php'); $opts['skipacl'] = 0; // no ACL skipping for XMLRPC search($data, $conf['datadir'], 'search_allpages', $opts, $dir); return $data; } /** + * List all pages in the given namespace (and below) + */ + function search($query){ + require_once(DOKU_INC.'inc/fulltext.php'); + + $regex = ''; + $data = ft_pageSearch($query,$regex); + $pages = array(); + + // prepare additional data + $idx = 0; + foreach($data as $id => $score){ + $file = wikiFN($id); + + if($idx < FT_SNIPPET_NUMBER){ + $snippet = ft_snippet($id,$regex); + $idx++; + }else{ + $snippet = ''; + } + + $pages[] = array( + 'id' => $id, + 'score' => $score, + 'rev' => filemtime($file), + 'mtime' => filemtime($file), + 'size' => filesize($file), + 'snippet' => $snippet, + ); + } + return $pages; + } + + /** + * Returns the wiki title. + */ + function getTitle(){ + global $conf; + return $conf['title']; + } + + /** * List all media files. * * Available options are 'recursive' for also including the subnamespaces @@ -407,7 +456,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { $dir = utf8_encodeFN(str_replace(':', '/', $ns)); $data = array(); - require_once(DOKU_INC.'inc/search.php'); search($data, $conf['mediadir'], 'search_media', $options, $dir); $len = count($data); if(!$len) return array(); @@ -426,8 +474,7 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { * Return a list of backlinks */ function listBackLinks($id){ - require_once(DOKU_INC.'inc/fulltext.php'); - return ft_backlinks($id); + return ft_backlinks(cleanID($id)); } /** @@ -519,8 +566,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { } if($conf['dperm']) chmod($lock, $conf['dperm']); - require_once(DOKU_INC.'inc/indexer.php'); - // do the work idx_addPage($id); @@ -547,7 +592,7 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { return new IXR_ERROR(1, 'Filename not given.'); } - $ftmp = $conf['tmpdir'] . '/' . $id; + $ftmp = $conf['tmpdir'] . '/' . md5($id.clientIP()); // save temporary file @unlink($ftmp); @@ -572,7 +617,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { return new IXR_ERROR(1, $lang['uploadexist'].'1'); } // check for valid content - @require_once(DOKU_INC.'inc/media.php'); $ok = media_contentcheck($ftmp, $imime); if($ok == -1) { return new IXR_ERROR(1, sprintf($lang['uploadexist'].'2', ".$iext")); @@ -590,7 +634,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { $data[4] = $overwrite; // trigger event - require_once(DOKU_INC.'inc/events.php'); return trigger_event('MEDIA_UPLOAD_FINISH', $data, array($this, '_media_upload_action'), true); } else { @@ -615,14 +658,12 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { // check for references if needed $mediareferences = array(); if($conf['refcheck']){ - require_once(DOKU_INC.'inc/fulltext.php'); $mediareferences = ft_mediause($id,$conf['refshow']); } if(!count($mediareferences)){ $file = mediaFN($id); if(@unlink($file)){ - require_once(DOKU_INC.'inc/changelog.php'); addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE); io_sweepNS($id,'mediadir'); return 0; @@ -648,7 +689,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { chmod($data[1], $conf['fmode']); media_notify($data[2], $data[1], $data[3]); // add a log entry to the media changelog - require_once(DOKU_INC.'inc/changelog.php'); if ($data[4]) { addMediaLogEntry(time(), $data[2], DOKU_CHANGE_TYPE_EDIT); } else { @@ -728,9 +768,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { if(strlen($timestamp) != 10) return new IXR_Error(20, 'The provided value is not a valid timestamp'); - require_once(DOKU_INC.'inc/changelog.php'); - require_once(DOKU_INC.'inc/pageutils.php'); - $recents = getRecentsSince($timestamp); $changes = array(); @@ -764,9 +801,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { if(strlen($timestamp) != 10) return new IXR_Error(20, 'The provided value is not a valid timestamp'); - require_once(DOKU_INC.'inc/changelog.php'); - require_once(DOKU_INC.'inc/pageutils.php'); - $recents = getRecentsSince($timestamp, null, '', RECENTS_MEDIA_CHANGES); $changes = array(); @@ -803,8 +837,6 @@ class dokuwiki_xmlrpc_server extends IXR_IntrospectionServer { if(empty($id)) return new IXR_Error(1, 'Empty page ID'); - require_once(DOKU_INC.'inc/changelog.php'); - $revisions = getRevisions($id, $first, $conf['recent']+1); if(count($revisions)==0 && $first!=0) { diff --git a/lib/images/fileicons/7z.png b/lib/images/fileicons/7z.png Binary files differnew file mode 100644 index 000000000..52f7d5d72 --- /dev/null +++ b/lib/images/fileicons/7z.png diff --git a/lib/images/fileicons/audio.png b/lib/images/fileicons/audio.png Binary files differnew file mode 100644 index 000000000..98883256d --- /dev/null +++ b/lib/images/fileicons/audio.png diff --git a/lib/images/fileicons/csv.png b/lib/images/fileicons/csv.png Binary files differnew file mode 100644 index 000000000..3a8835360 --- /dev/null +++ b/lib/images/fileicons/csv.png diff --git a/lib/images/fileicons/docx.png b/lib/images/fileicons/docx.png Binary files differnew file mode 100644 index 000000000..932567f8a --- /dev/null +++ b/lib/images/fileicons/docx.png diff --git a/lib/images/fileicons/mp3.png b/lib/images/fileicons/mp3.png Binary files differnew file mode 100644 index 000000000..928705d7a --- /dev/null +++ b/lib/images/fileicons/mp3.png diff --git a/lib/images/fileicons/ogg.png b/lib/images/fileicons/ogg.png Binary files differnew file mode 100644 index 000000000..62cea6aaa --- /dev/null +++ b/lib/images/fileicons/ogg.png diff --git a/lib/images/fileicons/pptx.png b/lib/images/fileicons/pptx.png Binary files differnew file mode 100644 index 000000000..adaefc602 --- /dev/null +++ b/lib/images/fileicons/pptx.png diff --git a/lib/images/fileicons/sql.png b/lib/images/fileicons/sql.png Binary files differnew file mode 100644 index 000000000..f60054a3a --- /dev/null +++ b/lib/images/fileicons/sql.png diff --git a/lib/images/fileicons/wav.png b/lib/images/fileicons/wav.png Binary files differnew file mode 100644 index 000000000..79e80760e --- /dev/null +++ b/lib/images/fileicons/wav.png diff --git a/lib/images/fileicons/xlsx.png b/lib/images/fileicons/xlsx.png Binary files differnew file mode 100644 index 000000000..e8cd58dc0 --- /dev/null +++ b/lib/images/fileicons/xlsx.png diff --git a/lib/images/license/badge/cc-zero.png b/lib/images/license/badge/cc-zero.png Binary files differnew file mode 100644 index 000000000..8a0ef3e3b --- /dev/null +++ b/lib/images/license/badge/cc-zero.png diff --git a/lib/images/license/button/cc-zero.png b/lib/images/license/button/cc-zero.png Binary files differnew file mode 100644 index 000000000..fc99eff61 --- /dev/null +++ b/lib/images/license/button/cc-zero.png diff --git a/lib/images/media_align_center.png b/lib/images/media_align_center.png Binary files differnew file mode 100644 index 000000000..3db90fc17 --- /dev/null +++ b/lib/images/media_align_center.png diff --git a/lib/images/media_align_left.png b/lib/images/media_align_left.png Binary files differnew file mode 100644 index 000000000..cebbb1a9a --- /dev/null +++ b/lib/images/media_align_left.png diff --git a/lib/images/media_align_noalign.png b/lib/images/media_align_noalign.png Binary files differnew file mode 100644 index 000000000..74f34e5f1 --- /dev/null +++ b/lib/images/media_align_noalign.png diff --git a/lib/images/media_align_right.png b/lib/images/media_align_right.png Binary files differnew file mode 100644 index 000000000..5f54a4a49 --- /dev/null +++ b/lib/images/media_align_right.png diff --git a/lib/images/media_link_direct.png b/lib/images/media_link_direct.png Binary files differnew file mode 100644 index 000000000..4bdb3541e --- /dev/null +++ b/lib/images/media_link_direct.png diff --git a/lib/images/media_link_displaylnk.png b/lib/images/media_link_displaylnk.png Binary files differnew file mode 100644 index 000000000..25eacb7c2 --- /dev/null +++ b/lib/images/media_link_displaylnk.png diff --git a/lib/images/media_link_lnk.png b/lib/images/media_link_lnk.png Binary files differnew file mode 100644 index 000000000..1209164ca --- /dev/null +++ b/lib/images/media_link_lnk.png diff --git a/lib/images/media_link_nolnk.png b/lib/images/media_link_nolnk.png Binary files differnew file mode 100644 index 000000000..fc3c393ca --- /dev/null +++ b/lib/images/media_link_nolnk.png diff --git a/lib/images/media_size_large.png b/lib/images/media_size_large.png Binary files differnew file mode 100644 index 000000000..e2fb548d9 --- /dev/null +++ b/lib/images/media_size_large.png diff --git a/lib/images/media_size_medium.png b/lib/images/media_size_medium.png Binary files differnew file mode 100644 index 000000000..b33157256 --- /dev/null +++ b/lib/images/media_size_medium.png diff --git a/lib/images/media_size_original.png b/lib/images/media_size_original.png Binary files differnew file mode 100644 index 000000000..d179aa2db --- /dev/null +++ b/lib/images/media_size_original.png diff --git a/lib/images/media_size_small.png b/lib/images/media_size_small.png Binary files differnew file mode 100644 index 000000000..04efe7080 --- /dev/null +++ b/lib/images/media_size_small.png diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index a3fb4636d..84932f7ac 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -10,9 +10,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'admin.php'); - /** * All DokuWiki plugins to extend the admin function * need to inherit from this class @@ -20,6 +17,15 @@ require_once(DOKU_PLUGIN.'admin.php'); class admin_plugin_acl extends DokuWiki_Admin_Plugin { var $acl = null; var $ns = null; + /** + * The currently selected item, associative array with id and type. + * Populated from (in this order): + * $_REQUEST['current_ns'] + * $_REQUEST['current_id'] + * $ns + * $ID + */ + var $current_item = null; var $who = ''; var $usersgroups = array(); var $specials = array(); @@ -63,6 +69,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { global $AUTH_ACL; global $ID; global $auth; + global $config_cascade; // fresh 1:1 copy without replacements $AUTH_ACL = file(DOKU_CONF.'acl.auth.php'); @@ -75,12 +82,25 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $this->ns = cleanID($_REQUEST['ns']); } + if ($_REQUEST['current_ns']) { + $this->current_item = array('id' => cleanID($_REQUEST['current_ns']), 'type' => 'd'); + } elseif ($_REQUEST['current_id']) { + $this->current_item = array('id' => cleanID($_REQUEST['current_id']), 'type' => 'f'); + } elseif ($this->ns) { + $this->current_item = array('id' => $this->ns, 'type' => 'd'); + } else { + $this->current_item = array('id' => $ID, 'type' => 'f'); + } + // user or group choosen? $who = trim($_REQUEST['acl_w']); if($_REQUEST['acl_t'] == '__g__' && $who){ $this->who = '@'.ltrim($auth->cleanGroup($who),'@'); }elseif($_REQUEST['acl_t'] == '__u__' && $who){ - $this->who = ltrim($auth->cleanUser($who),'@'); + $this->who = ltrim($who,'@'); + if($this->who != '%USER%'){ #keep wildcard as is + $this->who = $auth->cleanUser($this->who); + } }elseif($_REQUEST['acl_t'] && $_REQUEST['acl_t'] != '__u__' && $_REQUEST['acl_t'] != '__g__'){ @@ -130,16 +150,23 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { // re-add all rules foreach((array) $_REQUEST['acl'] as $where => $opt){ foreach($opt as $who => $perm){ + if ($who[0]=='@') { + if ($who!='@ALL') { + $who = '@'.ltrim($auth->cleanGroup($who),'@'); + } + } elseif ($who != '%USER%'){ #keep wildcard as is + $who = $auth->cleanUser($who); + } $who = auth_nameencode($who,true); $lines[] = "$where\t$who\t$perm\n"; } } // save it - io_saveFile(DOKU_CONF.'acl.auth.php', join('',$lines)); + io_saveFile($config_cascade['acl']['default'], join('',$lines)); } // reload ACL config - $AUTH_ACL = file(DOKU_CONF.'acl.auth.php'); + $AUTH_ACL = file($config_cascade['acl']['default']); } // initialize ACL array @@ -163,7 +190,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo '<div class="level1">'.NL; echo '<div id="acl__tree">'.NL; - $this->_html_explorer($_REQUEST['ns']); + $this->_html_explorer(); echo '</div>'.NL; echo '<div id="acl__detail">'.NL; @@ -209,7 +236,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { * @author Andreas Gohr <andi@splitbrain.org> */ function _html_explorer(){ - require_once(DOKU_INC.'inc/search.php'); global $conf; global $ID; global $lang; @@ -264,8 +290,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { usort($data,array($this,'_tree_sort')); $count = count($data); if($count>0) for($i=1; $i<$count; $i++){ - if($data[$i]['type'] == 'f') break; // namespaces come first, we're done - if($data[$i-1]['id'] == $data[$i]['id']) unset($data[$i]); + if($data[$i-1]['id'] == $data[$i]['id'] && $data[$i-1]['type'] == $data[$i]['type']) unset($data[$i]); } return $data; } @@ -276,13 +301,39 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { * Sorts the combined trees of media and page files */ function _tree_sort($a,$b){ - if($a['type'] == 'd' && $b['type'] == 'f'){ + // handle the trivial cases first + if ($a['id'] == '') return -1; + if ($b['id'] == '') return 1; + // split up the id into parts + $a_ids = explode(':', $a['id']); + $b_ids = explode(':', $b['id']); + // now loop through the parts + while (count($a_ids) && count($b_ids)) { + // compare each level from upper to lower + // until a non-equal component is found + $cur_result = strcmp(array_shift($a_ids), array_shift($b_ids)); + if ($cur_result) { + // if one of the components is the last component and is a file + // and the other one is either of a deeper level or a directory, + // the file has to come after the deeper level or directory + if (empty($a_ids) && $a['type'] == 'f' && (count($b_ids) || $b['type'] == 'd')) return 1; + if (empty($b_ids) && $b['type'] == 'f' && (count($a_ids) || $a['type'] == 'd')) return -1; + return $cur_result; + } + } + // The two ids seem to be equal. One of them might however refer + // to a page, one to a namespace, the namespace needs to be first. + if (empty($a_ids) && empty($b_ids)) { + if ($a['type'] == $b['type']) return 0; + if ($a['type'] == 'f') return 1; return -1; - }elseif($a['type'] == 'f' && $b['type'] == 'd'){ - return 1; - }else{ - return strcmp($a['id'],$b['id']); } + // Now the empty part is either a page in the parent namespace + // that obviously needs to be after the namespace + // Or it is the namespace that contains the other part and should be + // before that other part. + if (empty($a_ids)) return ($a['type'] == 'd') ? -1 : 1; + if (empty($b_ids)) return ($b['type'] == 'd') ? 1 : -1; } /** @@ -470,8 +521,8 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { } // highlight? - if( ($item['type']=='d' && $item['id'] == $this->ns) || - ($item['type']!='d' && $item['id'] == $ID)) $cl = ' cur'; + if( ($item['type']== $this->current_item['type'] && $item['id'] == $this->current_item['id'])) + $cl = ' cur'; // namespace or page? if($item['type']=='d'){ @@ -646,7 +697,8 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { * @author Frank Schubert <frank@schokilade.de> */ function _acl_add($acl_scope, $acl_user, $acl_level){ - $acl_config = file_get_contents(DOKU_CONF.'acl.auth.php'); + global $config_cascade; + $acl_config = file_get_contents($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); // max level for pagenames is edit @@ -668,7 +720,8 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { * @author Frank Schubert <frank@schokilade.de> */ function _acl_del($acl_scope, $acl_user){ - $acl_config = file(DOKU_CONF.'acl.auth.php'); + global $config_cascade; + $acl_config = file($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); $acl_pattern = '^'.preg_quote($acl_scope,'/').'\s+'.$acl_user.'\s+[0-8].*$'; diff --git a/lib/plugins/acl/ajax.php b/lib/plugins/acl/ajax.php index d3e88d932..d91586a5d 100644 --- a/lib/plugins/acl/ajax.php +++ b/lib/plugins/acl/ajax.php @@ -13,9 +13,6 @@ if(!count($_POST) && $HTTP_RAW_POST_DATA){ if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../../'); require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/auth.php'); //close session session_write_close(); @@ -24,8 +21,6 @@ if(!checkSecurityToken()) die('CRSF Attack'); $ID = getID(); -require_once(DOKU_INC.'inc/pluginutils.php'); -require_once(DOKU_INC.'inc/html.php'); $acl = plugin_load('admin','acl'); $acl->handle(); @@ -35,7 +30,6 @@ header('Content-Type: text/html; charset=utf-8'); if($ajax == 'info'){ $acl->_html_info(); }elseif($ajax == 'tree'){ - require_once(DOKU_INC.'inc/search.php'); global $conf; global $ID; diff --git a/lib/plugins/acl/lang/ar/help.txt b/lib/plugins/acl/lang/ar/help.txt new file mode 100644 index 000000000..afae13a86 --- /dev/null +++ b/lib/plugins/acl/lang/ar/help.txt @@ -0,0 +1,11 @@ +=== مساعدة سريعة: === + +على هذه الصفحة يمكنك إضافة أو إزالة الصلاحيات الخاصة بالنطاقات و الصفحات في ويكيتك. + +الشريط الأيسر يظهر كل النطاقات و الصفحات المتاحة. + +النموذج في الأسفل يمكنك من رؤية و تعديل الصلاحيات لمستخدم محدد أو مجموعة . + +في الجدول في الأسفل تجد قواعد التحكم بالوصول معروضة. يمكنك استخدامها لحذف أو تغيير عدة قواعد بسرعة. + +قراءة [[doku>acl|المستندات الرسمية عن ACL]] قد يساعدك على الفهم الكامل لطريقة عمل التحكم بالوصول في دوكي ويكي. diff --git a/lib/plugins/acl/lang/ar/lang.php b/lib/plugins/acl/lang/ar/lang.php index ced250243..552ce90d9 100644 --- a/lib/plugins/acl/lang/ar/lang.php +++ b/lib/plugins/acl/lang/ar/lang.php @@ -5,6 +5,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Mostafa Hussein <mostafa@gmail.com> * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ $lang['admin_acl'] = 'إدارة قوائم التحكم بالدخول'; $lang['acl_group'] = 'مجموعة'; @@ -13,6 +14,17 @@ $lang['acl_perms'] = 'ترخيص لـ'; $lang['page'] = 'صفحة'; $lang['namespace'] = 'فضاء التسمية'; $lang['btn_select'] = 'اختيار'; +$lang['p_user_id'] = 'المستخدم<b class="acluser">%s</b> عنده حاليا الصلاحيات التالية على الصفحة<b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'المستخدم <b class="acluser">%s</b> عنده حاليا الصلاحيات التالية في النطاق<b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_group_id'] = 'أعضاء مجموعة<b class="aclgroup">%s</b> عندهم حاليا الصلاحيات التالية على الصفحة page <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'أعضاء مجموعة <b class="aclgroup">%s</b> عندهم حاليا الصلاحيات التالية في النطاق <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_choose_id'] = 'رجاء <b>مستخدما أو مجموعة</b> في النموذج أعلاه لعرض أو تحرير اعداد الصلاحيات للصفحة<b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'رجاء Please <b>أدخل مستخدما أو مجموعة</b> في النموذج أعلاه لعرض أو تحرير اعداد الصلاحيات للنطاق<b class="aclns">%s</b>.'; +$lang['p_inherited'] = 'لاحظ: هذه الصلاحيات لم تنشأ إراديا بل وُرثت من مجموعات أخرى أو نطاقات أعلى.'; +$lang['p_isadmin'] = 'لاحظ: المجموعة أو المستخدم المحدد عندهم دائما صلاحيات كاملة بسبب ضبطهم كمستخدمين متفوقين.'; +$lang['p_include'] = 'الصلاحيات الاعلى تتضمن الأخفض. صلاحيات الإنشاء ، والرفع، والحذف تطبق فقط على النطاقات، وليس على الصفحات.'; +$lang['current'] = 'قواعد ACL الحالية'; +$lang['where'] = 'الصفحة/النطاق'; $lang['who'] = 'اسم المستخدم / المجموعة'; $lang['perm'] = 'التصاريح'; $lang['acl_perm0'] = 'لا يوجد'; @@ -22,3 +34,4 @@ $lang['acl_perm4'] = 'إنشاء'; $lang['acl_perm8'] = 'تحميل'; $lang['acl_perm16'] = 'مسح'; $lang['acl_new'] = 'أضف أضافة جديدة'; +$lang['acl_mod'] = 'عدل المدخلة'; diff --git a/lib/plugins/acl/lang/cs/lang.php b/lib/plugins/acl/lang/cs/lang.php index 899d30ced..311b79ae9 100644 --- a/lib/plugins/acl/lang/cs/lang.php +++ b/lib/plugins/acl/lang/cs/lang.php @@ -6,6 +6,8 @@ * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['admin_acl'] = 'Správa přístupových práv'; $lang['acl_group'] = 'Skupina'; diff --git a/lib/plugins/acl/lang/da/lang.php b/lib/plugins/acl/lang/da/lang.php index c95ff1582..f82098dee 100644 --- a/lib/plugins/acl/lang/da/lang.php +++ b/lib/plugins/acl/lang/da/lang.php @@ -11,6 +11,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['admin_acl'] = 'Rettighedsadministration'; $lang['acl_group'] = 'Gruppe'; @@ -31,7 +33,7 @@ $lang['p_include'] = 'Højere tilladelse inkluderer også lavere. Ti $lang['current'] = 'Aktuelle ACL-regler'; $lang['where'] = 'Side/navnerum'; $lang['who'] = 'Bruger/gruppe'; -$lang['perm'] = 'Adgangsniveau'; +$lang['perm'] = 'Rettigheder'; $lang['acl_perm0'] = 'Ingen'; $lang['acl_perm1'] = 'Læs'; $lang['acl_perm2'] = 'Skriv'; diff --git a/lib/plugins/acl/lang/de-informal/lang.php b/lib/plugins/acl/lang/de-informal/lang.php index 56dedfc61..ac4bb30c0 100644 --- a/lib/plugins/acl/lang/de-informal/lang.php +++ b/lib/plugins/acl/lang/de-informal/lang.php @@ -4,6 +4,7 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['admin_acl'] = 'Zugriffskontrollsystem Management'; $lang['acl_group'] = 'Gruppe'; @@ -13,21 +14,21 @@ $lang['page'] = 'Seite'; $lang['namespace'] = 'Namensraum'; $lang['btn_select'] = 'Auswählen'; $lang['p_user_id'] = 'Benutzer <b class="acluser">%s</b> hat im Moment folgende Rechte auf der Seite <b class="aclpage">%s</b>: <i>%s</i>'; -$lang['p_user_ns'] = 'Benutzer <b class="acluser">%s</b> hat momentan die folgenden Rechte im Namensraum<b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'Benutzer <b class="acluser">%s</b> hat momentan die folgenden Rechte im Namensraum <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_group_id'] = 'Die Gruppenmitglieder <b class="aclgroup">%s</b> haben momentan die folgenden Rechte auf der Seite <b class="aclpage">%s</b>: <i>%s</i>.'; $lang['p_group_ns'] = 'Die Mitglieder der Gruppe <b class="aclgroup">%s</b> haben gerade Zugriff in folgenden Namensräumen <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_choose_id'] = 'Bitte <b>gib einen Nutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen der Seite<b class="aclpage">%s</b> anzusehen oder zu bearbeiten.'; -$lang['p_choose_ns'] = 'Bitte <b>gib einen Nutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen des Namenraumes<b class="aclpage">%s</b> anzusehen oder zu bearbeiten.'; -$lang['p_inherited'] = 'Hinweis: Diese Rechte wuredn nicht explizit gesetzt sondern geerbt von anderen Grupen oder übergeordneten Namensräumen.'; +$lang['p_choose_id'] = 'Bitte <b>gib einen Nutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen der Seite <b class="aclpage">%s</b> anzusehen oder zu bearbeiten.'; +$lang['p_choose_ns'] = 'Bitte <b>gib einen Nutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen des Namenraumes <b class="aclpage">%s</b> anzusehen oder zu bearbeiten.'; +$lang['p_inherited'] = 'Hinweis: Diese Rechte wurden nicht explizit gesetzt, sondern von anderen Gruppen oder übergeordneten Namensräumen geerbt.'; $lang['p_isadmin'] = 'Hinweis: Die gewählte Gruppe oder der Benutzer haben immer die vollen Rechte, weil sie als Superuser konfiguriert sind.'; -$lang['p_include'] = 'Höhere Rechte schließen kleinere mit ein. Hochlade- und Loeschrechte sind nur fuer Namensräume, nicht fuer Seiten.'; +$lang['p_include'] = 'Höhere Rechte schließen kleinere mit ein. Hochlade- und Löschrechte sind nur für Namensräume, nicht für Seiten.'; $lang['current'] = 'Momentane Zugriffsregeln'; $lang['where'] = 'Seite/Namensraum'; $lang['who'] = 'Benutzer/Gruppe'; $lang['perm'] = 'Rechte'; $lang['acl_perm0'] = 'Keine'; $lang['acl_perm1'] = 'Lesen'; -$lang['acl_perm2'] = 'Editieren'; +$lang['acl_perm2'] = 'Bearbeiten'; $lang['acl_perm4'] = 'Erstellen'; $lang['acl_perm8'] = 'Hochladen'; $lang['acl_perm16'] = 'Löschen'; diff --git a/lib/plugins/acl/lang/de/lang.php b/lib/plugins/acl/lang/de/lang.php index 022ea6683..0d30fe7a1 100644 --- a/lib/plugins/acl/lang/de/lang.php +++ b/lib/plugins/acl/lang/de/lang.php @@ -16,6 +16,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['admin_acl'] = 'Zugangsverwaltung'; $lang['acl_group'] = 'Gruppe'; @@ -30,7 +31,7 @@ $lang['p_group_id'] = 'Mitglieder der Gruppe <b class="aclgroup">%s</ $lang['p_group_ns'] = 'Mitglieder der Gruppe <b class="aclgroup">%s</b> haben momentan folgende Berechtigungen für den Namensraum <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_choose_id'] = 'Bitte geben Sie in obigem Formular eine <b>einen Nutzer oder eine Gruppe</b> an, um die Berechtigungen für die Seite <b class="aclpage">%s</b> zu sehen oder zu ändern.'; $lang['p_choose_ns'] = 'Bitte geben Sie in obigem Formular eine <b>einen Nutzer oder eine Gruppe</b> an, um die Berechtigungen für den Namensraum <b class="aclns">%s</b> zu sehen oder zu ändern.'; -$lang['p_inherited'] = 'Hinweis: Diese Berechtigungen wurden nicht explizit gesetzt sondern von anderen Gruppen oder höher liegenden Namensräumen geerbt.'; +$lang['p_inherited'] = 'Hinweis: Diese Berechtigungen wurden nicht explizit gesetzt, sondern von anderen Gruppen oder höher liegenden Namensräumen geerbt.'; $lang['p_isadmin'] = 'Hinweis: Die ausgewählte Gruppe oder Nutzer haben immer alle Berechtigungen das sie als Superuser konfiguriert wurden.'; $lang['p_include'] = 'Höhere Berechtigungen schließen niedrigere mit ein. Anlegen, Hochladen und Entfernen gilt nur für Namensräume, nicht für einzelne Seiten'; $lang['current'] = 'Momentane Zugriffsregeln'; diff --git a/lib/plugins/acl/lang/el/lang.php b/lib/plugins/acl/lang/el/lang.php index da8a72ab3..e2f6c35dc 100644 --- a/lib/plugins/acl/lang/el/lang.php +++ b/lib/plugins/acl/lang/el/lang.php @@ -12,6 +12,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['admin_acl'] = 'Διαχείριση Δικαιωμάτων Πρόσβασης'; $lang['acl_group'] = 'Ομάδα'; diff --git a/lib/plugins/acl/lang/es/lang.php b/lib/plugins/acl/lang/es/lang.php index 3a23c71da..e63448a00 100644 --- a/lib/plugins/acl/lang/es/lang.php +++ b/lib/plugins/acl/lang/es/lang.php @@ -17,6 +17,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['admin_acl'] = 'Administración de lista de control de acceso'; $lang['acl_group'] = 'Grupo'; diff --git a/lib/plugins/acl/lang/fr/help.txt b/lib/plugins/acl/lang/fr/help.txt index 69661bb9b..f748f6b23 100644 --- a/lib/plugins/acl/lang/fr/help.txt +++ b/lib/plugins/acl/lang/fr/help.txt @@ -1,9 +1,9 @@ -=== Aide rapide : === +=== Aide rapide === Cette page vous permet d'ajouter ou de supprimer des permissions pour les catégories et les pages de votre wiki. Le panneau de gauche liste toutes les catégories et les pages disponibles. -Le formulaire au dessus permet d'afficher et de modifier les permissions d'un utilisateur ou d'un groupe sélectionné. +Le formulaire au-dessus permet d'afficher et de modifier les permissions d'un utilisateur ou d'un groupe sélectionné. -Dans la table ci-dessous toutes les listes de contrôle d'accès actuelles sont affichées. Vous pouvez l'utiliser pour supprimer ou modifier rapidement plusieurs ACLs. +Dans le tableau ci-dessous, toutes les listes de contrôle d'accès actuelles sont affichées. Vous pouvez l'utiliser pour supprimer ou modifier rapidement plusieurs ACL. -La lecture de [[doku>acl|la documentation officielle des ACLs]] pourra vous permettre de comprendre complètement le fonctionnement du contrôle d'accès dans DokuWiki. +La lecture de [[doku>acl|la documentation officielle des ACL]] pourra vous permettre de bien comprendre le fonctionnement du contrôle d'accès dans DokuWiki. diff --git a/lib/plugins/acl/lang/fr/lang.php b/lib/plugins/acl/lang/fr/lang.php index efdc5f074..63e529aab 100644 --- a/lib/plugins/acl/lang/fr/lang.php +++ b/lib/plugins/acl/lang/fr/lang.php @@ -17,6 +17,9 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['admin_acl'] = 'Gestion de la liste des contrôles d\'accès (ACL)'; $lang['acl_group'] = 'Groupe'; @@ -25,15 +28,15 @@ $lang['acl_perms'] = 'Permission pour'; $lang['page'] = 'Page'; $lang['namespace'] = 'Catégorie'; $lang['btn_select'] = 'Sélectionner'; -$lang['p_user_id'] = 'Permissions actuelles de l\'utilisateur <b class="acluser">%s</b> sur la page <b class="aclpage">%s</b>: <i>%s</i>.'; -$lang['p_user_ns'] = 'Permissions actuelles de l\'utilisateur <b class="acluser">%s</b> sur la catégorie <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_group_id'] = 'Permissions actuelles des membres du groupe <b class="aclgroup">%s</b> sur la page <b class="aclpage">%s</b>: <i>%s</i>.'; -$lang['p_group_ns'] = 'Permissions actuelles des membres du groupe <b class="aclgroup">%s</b> sur la catégorie <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_choose_id'] = 'Saisissez un nom <b>d\'utilisateur ou de groupe</b> dans le formulaire ci-dessus pour afficher ou éditer les permissions relatives à la page <b class="aclpage">%s</b>.'; -$lang['p_choose_ns'] = 'Saisissez un nom <b>d\'utilisateur ou de groupe</b> dans le formulaire ci-dessous pour afficher ou éditer les permissions relatives à la catégorie <b class="aclns">%s</b>.'; +$lang['p_user_id'] = 'Permissions actuelles de l\'utilisateur <strong class="acluser">%s</strong> sur la page <strong class="aclpage">%s</strong>: <em>%s</em>.'; +$lang['p_user_ns'] = 'Permissions actuelles de l\'utilisateur <strong class="acluser">%s</strong> sur la catégorie <strong class="aclns">%s</strong>: <em>%s</em>.'; +$lang['p_group_id'] = 'Permissions actuelles des membres du groupe <strong class="aclgroup">%s</strong> sur la page <strong class="aclpage">%s</strong>: <em>%s</em>.'; +$lang['p_group_ns'] = 'Permissions actuelles des membres du groupe <strong class="aclgroup">%s</strong> sur la catégorie <strong class="aclns">%s</strong>: <em>%s</em>.'; +$lang['p_choose_id'] = 'Saisissez un nom <strong>d\'utilisateur ou de groupe</strong> dans le formulaire ci-dessus pour afficher ou éditer les permissions relatives à la page <strong class="aclpage">%s</strong>.'; +$lang['p_choose_ns'] = 'Saisissez un nom <strong>d\'utilisateur ou de groupe</strong> dans le formulaire ci-dessous pour afficher ou éditer les permissions relatives à la catégorie <strong class="aclns">%s</strong>.'; $lang['p_inherited'] = 'Note : Ces permissions n\'ont pas été explicitement fixées mais sont héritées d\'autres groupes ou catégories supérieures.'; $lang['p_isadmin'] = 'Note : Le groupe ou l\'utilisateur sélectionné dispose de toutes les permissions car il est paramétré en tant que superutilisateur.'; -$lang['p_include'] = 'Les permissions les plus élevées induisent les plus faibles. Création, Télécharger, et Effacer, ne s\'appliquent qu\'aux catégories ; pas aux pages.'; +$lang['p_include'] = 'Les permissions les plus élevées induisent les plus faibles. Création, Télécharger et Effacer ne s\'appliquent qu\'aux catégories, pas aux pages.'; $lang['current'] = 'ACL actuelles'; $lang['where'] = 'Page/Catégorie'; $lang['who'] = 'Utilisateur/Groupe'; @@ -42,7 +45,7 @@ $lang['acl_perm0'] = 'Aucune'; $lang['acl_perm1'] = 'Lecture'; $lang['acl_perm2'] = 'Écriture'; $lang['acl_perm4'] = 'Création'; -$lang['acl_perm8'] = 'Télécharger'; +$lang['acl_perm8'] = 'Téléverser'; $lang['acl_perm16'] = 'Effacer'; $lang['acl_new'] = 'Ajouter une nouvelle entrée'; $lang['acl_mod'] = 'Modifier l\'entrée'; diff --git a/lib/plugins/acl/lang/gl/help.txt b/lib/plugins/acl/lang/gl/help.txt index c427b182f..593dcef07 100644 --- a/lib/plugins/acl/lang/gl/help.txt +++ b/lib/plugins/acl/lang/gl/help.txt @@ -1,11 +1,11 @@ -=== Axuda rápida: === +=== Axuda Rápida: === -Nesta páxina pode engadir e eliminar os permisos para os nomes de espazo e as páxinas do seu wiki. +Nesta páxina podes engadir e eliminar permisos para os nomes de espazo e as páxinas do teu wiki. -O panel da esquerda mostra todos os nomes de espazo e páxinas dispoñíbeis. +O panel da esquerda amosa todos os nomes de espazo e páxinas dispoñíbeis. -O formulario de arriba permítelle ver e modificar os permisos da persoa usuaria ou grupo seleccionada. +O formulario de enriba permíteche ver e modificares os permisos do usuario ou grupo seleccionado. -Na táboa de abaixo móstranse todas as regras de control de accesos estabelecidas. Pode empregala para cambiar ou eliminar varias regras dun xeito rápido. +Na táboa de embaixo amósanse todas as regras de control de accesos estabelecidas. Podes empregala para mudares ou eliminares varias regras dun xeito rápido. -A lectura da [[doku>acl|documentación oficial da ACL]] pode servirlle de axuda para comprender como funciona o control de accesos no Dokuwiki. +A lectura da [[doku>acl|documentación oficial da ACL]] pode servirche de axuda para comprenderes como funciona o control de accesos no Dokuwiki. diff --git a/lib/plugins/acl/lang/gl/lang.php b/lib/plugins/acl/lang/gl/lang.php index 184cf7e1d..774bf207a 100644 --- a/lib/plugins/acl/lang/gl/lang.php +++ b/lib/plugins/acl/lang/gl/lang.php @@ -2,35 +2,33 @@ /** * Galicianlanguage file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['admin_acl'] = 'Xestión da Lista de control de acceso (ACL)'; +$lang['admin_acl'] = 'Xestión da Lista de Control de Acceso (ACL)'; $lang['acl_group'] = 'Grupo'; -$lang['acl_user'] = 'Usuaria/o'; +$lang['acl_user'] = 'Usuario'; $lang['acl_perms'] = 'Permisos para'; $lang['page'] = 'Páxina'; $lang['namespace'] = 'Nome de espazo'; -$lang['btn_select'] = 'Selecciona'; -$lang['p_user_id'] = 'A persoa usuaria <b class="acluser">%s</b> dispón actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.'; -$lang['p_user_ns'] = 'A persoa usuaria <b class="acluser">%s</b> dispón actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_group_id'] = 'As e os integrantes do grupo <b class="aclgroup">%s</b> dispoñen actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.'; -$lang['p_group_ns'] = 'As e os integrantes do grupo <b class="aclgroup">%s</b> dispoñen actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_choose_id'] = '<b>Insira un nome de usuaria/o ou grupo</b> no formulario de arriba para ver ou editar os permisos estabelecidos para a páxina <b class="aclpage">%s</b>.'; -$lang['p_choose_ns'] = '<b>Insira un nome de usuaria/o ou grupo</b> no formulario de arriba para ver ou editar os permisos estabelecidos no nome de espazo <b class="aclns">%s</b>.'; -$lang['p_inherited'] = 'Nota: Estes permisos non foron estabelecidos explicitamente senón que foron herdados doutros grupos ou nomes de espazo maiores.'; -$lang['p_isadmin'] = 'Nota: O grupo ou a persoa usuaria seleccionado terá sempre permisos completos por estar configurado como superusuaria/o.'; -$lang['p_include'] = 'Os permisos máis grandes inclúen os menores. Os permisos de Creación, Subida e Eliminación só se aplican aos nomes de espazo, non ás páxinas.'; -$lang['current'] = 'Regras ACL actuais'; -$lang['where'] = 'Páxina/Nome de espazo'; -$lang['who'] = 'Usuaria/o/Grupo'; +$lang['btn_select'] = 'Escolle'; +$lang['p_user_id'] = 'O usuario <b class="acluser">%s</b> dispón actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'O usuario <b class="acluser">%s</b> dispón actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_group_id'] = 'Os membros do grupo <b class="aclgroup">%s</b> dispoñen actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Os membros do grupo <b class="aclgroup">%s</b> cdispoñen actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_choose_id'] = 'Por favor, <b>insire un usuario ou grupo</b> no formulario de enriba para ver ou editar os permisos establecidos para a páxina <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'Por favor <b>insire un usuario ou grupo</b> no formulario de enriba para ver ou editar os permisos establecidos no nome de espazo <b class="aclns">%s</b>.'; +$lang['p_inherited'] = 'Nota: Estes permisos non foron establecidos explicitamente senón que foron herdadas de outros grupos ou nomes de espazo meirandes.'; +$lang['p_isadmin'] = 'Nota: O grupo ou usuario seleccionado terá sempre permisos completos por estar configurado como super-usuario.'; +$lang['p_include'] = 'Os permisos meirandes inclúen os menores. Os permisos de Creación, Subida e Eliminado só se aplican aos nomes de espazo, non ás páxinas.'; +$lang['current'] = 'Regras ACL Actuais'; +$lang['where'] = 'Páxina/Nome de Espazo'; +$lang['who'] = 'Usuario/Grupo'; $lang['perm'] = 'Permisos'; $lang['acl_perm0'] = 'Ningún'; $lang['acl_perm1'] = 'Ler'; $lang['acl_perm2'] = 'Editar'; $lang['acl_perm4'] = 'Crear'; -$lang['acl_perm8'] = 'Subir ficheiros'; +$lang['acl_perm8'] = 'Subir arquivos'; $lang['acl_perm16'] = 'Eliminar'; -$lang['acl_new'] = 'Engadir una entrada'; -$lang['acl_mod'] = 'Modificar unha entrada'; +$lang['acl_new'] = 'Engadir nova Entrada'; +$lang['acl_mod'] = 'Modificar Entrada'; diff --git a/lib/plugins/acl/lang/he/lang.php b/lib/plugins/acl/lang/he/lang.php index 7d73c63dd..ac00730dd 100644 --- a/lib/plugins/acl/lang/he/lang.php +++ b/lib/plugins/acl/lang/he/lang.php @@ -6,6 +6,7 @@ * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['admin_acl'] = 'ניהול רשימת בקרת גישות'; $lang['acl_group'] = 'קבוצה'; diff --git a/lib/plugins/acl/lang/hu/lang.php b/lib/plugins/acl/lang/hu/lang.php index 4fb1720ae..318287073 100644 --- a/lib/plugins/acl/lang/hu/lang.php +++ b/lib/plugins/acl/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['admin_acl'] = 'Hozzáférési lista (ACL) kezelő'; $lang['acl_group'] = 'Csoport:'; diff --git a/lib/plugins/acl/lang/ia/help.txt b/lib/plugins/acl/lang/ia/help.txt new file mode 100644 index 000000000..59f5764eb --- /dev/null +++ b/lib/plugins/acl/lang/ia/help.txt @@ -0,0 +1,11 @@ +=== Adjuta rapide: === + +In iste pagina tu pote adder e remover permissiones pro spatios de nomines e paginas in tu wiki. + +Le columna sinistre presenta tote le spatios de nomines e paginas disponibile. + +Le formulario hic supra permitte vider e modificar le permissiones de un usator o gruppo seligite. + +In le tabella hic infra se monstra tote le regulas de controlo de accesso actualmente configurate. Tu pote usar lo pro rapidemente deler o modificar plure regulas. + +Es recommendate leger le [[doku>acl|documentation official super ACL]] pro comprender completemente como le controlo de accesso functiona in DokuWiki. diff --git a/lib/plugins/acl/lang/ia/lang.php b/lib/plugins/acl/lang/ia/lang.php new file mode 100644 index 000000000..f7d076539 --- /dev/null +++ b/lib/plugins/acl/lang/ia/lang.php @@ -0,0 +1,35 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['admin_acl'] = 'Gestion de listas de controlo de accesso'; +$lang['acl_group'] = 'Gruppo'; +$lang['acl_user'] = 'Usator'; +$lang['acl_perms'] = 'Permissiones pro'; +$lang['page'] = 'Pagina'; +$lang['namespace'] = 'Spatio de nomines'; +$lang['btn_select'] = 'Seliger'; +$lang['p_user_id'] = 'Le usator <b class="acluser">%s</b> ha actualmente le sequente permissiones in le pagina <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'Le usator <b class="acluser">%s</b> ha actualmente le sequente permissiones in le spatio de nomines <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_group_id'] = 'Le membros del gruppo <b class="aclgroup">%s</b> a actualmente le sequente permissiones in le pagina <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Le membros del gruppo <b class="aclgroup">%s</b> ha actualmente le sequente permissiones in le spatio de nomines <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_choose_id'] = 'Per favor <b>entra un usator o gruppo</b> in le formulario hic supra pro vider o modificar le permissiones configurate pro le pagina <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'Per favor <b>entra un usator o gruppo</b> in le formulario hic supra pro vider o modificar le permissiones configurate pro le spatio de nomines <b class="aclns">%s</b>.'; +$lang['p_inherited'] = 'Nota ben: Iste permissiones non ha essite configurate explicitemente ma ha essite hereditate de altere gruppos o de spatios de nomines superior.'; +$lang['p_isadmin'] = 'Nota ben: Le gruppo o usator seligite ha sempre permissiones integral proque es configurate como superusator.'; +$lang['p_include'] = 'Le permissiones superior include les inferior. Le permissiones de Crear, Incargar e Deler es solmente applicabile a spatios de nomines, non a paginas.'; +$lang['current'] = 'Regulas ACL actual'; +$lang['where'] = 'Pagina/Spatio de nomines'; +$lang['who'] = 'Usator/Gruppo'; +$lang['perm'] = 'Permissiones'; +$lang['acl_perm0'] = 'Nulle'; +$lang['acl_perm1'] = 'Leger'; +$lang['acl_perm2'] = 'Modificar'; +$lang['acl_perm4'] = 'Crear'; +$lang['acl_perm8'] = 'Incargar'; +$lang['acl_perm16'] = 'Deler'; +$lang['acl_new'] = 'Adder nove entrata'; +$lang['acl_mod'] = 'Modificar entrata'; diff --git a/lib/plugins/acl/lang/it/help.txt b/lib/plugins/acl/lang/it/help.txt index 5e4b08dd6..8bf68e8e7 100644 --- a/lib/plugins/acl/lang/it/help.txt +++ b/lib/plugins/acl/lang/it/help.txt @@ -6,6 +6,6 @@ Il pannello di sinistra mostra tutte le categorie e le pagine disponibili. Il campo sopra ti permette di vedere e modificare i permessi di un utente o gruppo selezionato. -Nella tabella sotto, sono riportate tutte le regole di controllo degli accessi attualmente impostate. Puoi utilizzarla per cancellare o cambiare al volo varie regole. +Nella tabella sotto, sono riportate tutte le regole di controllo degli accessi attualmente impostate. Puoi utilizzarla per eliminare o cambiare al volo varie regole. -Leggere la [[doku>acl|official documentation on ACL]] può aiutarti a capire pienamente come funziona il controllo degli accessi in DokuWiki. +Leggere la [[doku>acl|documentazione ufficale delle ACL]] può aiutarti a capire pienamente come funziona il controllo degli accessi in DokuWiki. diff --git a/lib/plugins/acl/lang/it/lang.php b/lib/plugins/acl/lang/it/lang.php index 344987e8b..89e421bbb 100644 --- a/lib/plugins/acl/lang/it/lang.php +++ b/lib/plugins/acl/lang/it/lang.php @@ -11,6 +11,7 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['admin_acl'] = 'Gestione Lista Controllo Accessi (ACL)'; $lang['acl_group'] = 'Gruppo'; @@ -23,11 +24,11 @@ $lang['p_user_id'] = 'L\'utente <b class="acluser">%s</b> attualment $lang['p_user_ns'] = 'L\'utente <b class="acluser">%s</b> attualmente ha i seguenti permessi per la categoria <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_group_id'] = 'I membri del gruppo<b class="aclgroup">%s</b> attualmente hanno i seguenti permessi sulla pagina <b class="aclpage">%s</b>: <i>%s</i>.'; $lang['p_group_ns'] = 'I membri del gruppo<b class="aclgroup">%s</b> attualmente hanno i seguenti permessi per la categoria <b class="aclns">%s</b>: <i>%s</i>.'; -$lang['p_choose_id'] = 'Per favore <b>inserisci un utente o gruppo</b> nel campo sopra per modificare i permessi impostati per la pagina <b class="aclpage">%s</b>.'; -$lang['p_choose_ns'] = 'Per favore <b>inserisci un utente o un gruppo</b> nel campo sopra per modificare i permessi impostati per la categoria <b class="aclns">%s</b>.'; -$lang['p_inherited'] = 'Nota: Questi permessi non sono stati esplicitamente impostati, ma sono stati ereditati da altri gruppi o da categorie superiori.'; -$lang['p_isadmin'] = 'Nota: Il gruppo o utente selezionato ha sempre tutti i permessi perché è configurato come amministratore.'; -$lang['p_include'] = 'I permessi più elevati includono i permessi inferiori. I permessi di Creazione, Upload e Cancellazione si applicano soltanto alle categorie e non alle pagine.'; +$lang['p_choose_id'] = '<b>Inserisci un utente o gruppo</b> nel campo sopra per modificare i permessi impostati per la pagina <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = '<b>Inserisci un utente o un gruppo</b> nel campo sopra per modificare i permessi impostati per la categoria <b class="aclns">%s</b>.'; +$lang['p_inherited'] = 'Nota: questi permessi non sono stati esplicitamente impostati, ma sono stati ereditati da altri gruppi o da categorie superiori.'; +$lang['p_isadmin'] = 'Nota: il gruppo o utente selezionato ha sempre tutti i permessi perché è configurato come amministratore.'; +$lang['p_include'] = 'I permessi più elevati includono i permessi inferiori. I permessi Crea, Carica ed Elimina si applicano soltanto alle categorie e non alle pagine.'; $lang['current'] = 'Regole ACL attuali'; $lang['where'] = 'Pagina/Categoria'; $lang['who'] = 'Utente/Gruppo'; @@ -35,8 +36,8 @@ $lang['perm'] = 'Permessi'; $lang['acl_perm0'] = 'Nessuno'; $lang['acl_perm1'] = 'Lettura'; $lang['acl_perm2'] = 'Modifica'; -$lang['acl_perm4'] = 'Creazione'; -$lang['acl_perm8'] = 'Upload'; -$lang['acl_perm16'] = 'Cancellazione'; -$lang['acl_new'] = 'Aggiungi nuovo record'; -$lang['acl_mod'] = 'Modifica record'; +$lang['acl_perm4'] = 'Crea'; +$lang['acl_perm8'] = 'Carica'; +$lang['acl_perm16'] = 'Elimina'; +$lang['acl_new'] = 'Aggiungi nuovo valore'; +$lang['acl_mod'] = 'Modifica valore'; diff --git a/lib/plugins/acl/lang/lb/help.txt b/lib/plugins/acl/lang/lb/help.txt new file mode 100644 index 000000000..e36ed373f --- /dev/null +++ b/lib/plugins/acl/lang/lb/help.txt @@ -0,0 +1,11 @@ +=== Séier Hëllef: === + +Op dëser Säit kanns de Rechter fir Namespacen a Säiten an dengem Wiki setzen. + +Op der lénkser Säit hues de all d'Namespacen a Säiten. + +Am Formulär hei uewendriwwer kanns de d'Rechter vun dem ausgewielte Benotzer oder Grupp änneren + +An der Tabell hei ënnendrënner kanns de all d'Reegele gesinn déi de Moment gesat sinn. Du kanns se huelen fir Reegelen ze änneren oder ze läschen. + +Déi [[doku>acl|offiziell Dokumentatioun iwwert ACL]] hëlleft der besser ze verstoen wéi déi Reegelen am Dokuwiki funktionéieren. diff --git a/lib/plugins/acl/lang/lb/lang.php b/lib/plugins/acl/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/acl/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/acl/lang/mk/lang.php b/lib/plugins/acl/lang/mk/lang.php new file mode 100644 index 000000000..d576c3d1d --- /dev/null +++ b/lib/plugins/acl/lang/mk/lang.php @@ -0,0 +1,22 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ +$lang['acl_group'] = 'Група'; +$lang['acl_user'] = 'Корисник'; +$lang['acl_perms'] = 'Пермисии за'; +$lang['page'] = 'Страница'; +$lang['btn_select'] = 'Избери'; +$lang['current'] = 'Моментални ACL правила'; +$lang['who'] = 'Корисник/група'; +$lang['perm'] = 'Пермисии'; +$lang['acl_perm0'] = 'Ништо'; +$lang['acl_perm1'] = 'Читај'; +$lang['acl_perm2'] = 'Уреди'; +$lang['acl_perm4'] = 'Креирај'; +$lang['acl_perm8'] = 'Качи'; +$lang['acl_perm16'] = 'Избриши'; +$lang['acl_new'] = 'Додај нов запис'; +$lang['acl_mod'] = 'Измени запис'; diff --git a/lib/plugins/acl/lang/nl/lang.php b/lib/plugins/acl/lang/nl/lang.php index d45bb5907..f9adb5f04 100644 --- a/lib/plugins/acl/lang/nl/lang.php +++ b/lib/plugins/acl/lang/nl/lang.php @@ -14,6 +14,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['admin_acl'] = 'Toegangsrechten'; $lang['acl_group'] = 'Groep'; diff --git a/lib/plugins/acl/lang/pl/lang.php b/lib/plugins/acl/lang/pl/lang.php index 63a870c50..c954abe2a 100644 --- a/lib/plugins/acl/lang/pl/lang.php +++ b/lib/plugins/acl/lang/pl/lang.php @@ -7,6 +7,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['admin_acl'] = 'Zarządzanie uprawnieniami'; $lang['acl_group'] = 'Grupa'; @@ -18,7 +22,7 @@ $lang['btn_select'] = 'Wybierz'; $lang['p_user_id'] = 'Użytkownik <b class="acluser">%s</b> posiada następujące uprawnienia do strony <b class="aclpage">%s</b>: <i>%s</i>.'; $lang['p_user_ns'] = 'Użytkownik <b class="acluser">%s</b> posiada następujące uprawnienia do katalogów <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_group_id'] = 'Członkowie grupy <b class="aclgroup">%s</b> posiadają następujące uprawnienia do strony <b class="aclpage">%s</b>: <i>%s</i>.'; -$lang['p_group_ns'] = 'Członkowie grupy <b class="aclgroup">%s</b> posiadają następujące uprawnienia do strony <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Członkowie grupy <b class="aclgroup">%s</b> posiadają następujące uprawnienia do katalogu <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_choose_id'] = 'Podaj <b>nazwę użytkownika lub grupy</b> w powyższym formularzu, by wyświetlić lub zmienić uprawnienia do strony <b class="aclpage">%s</b>.'; $lang['p_choose_ns'] = 'Podaj <b>nazwę użytkownika lub grupy</b> w powyższym formularzu, by wyświetlić lub zmienić uprawnienia do katalogu <b class="aclns">%s</b>.'; $lang['p_inherited'] = 'Uwaga: Uprawnienia nie zostały nadane wprost ale są dziedziczone z grupy lub katalogu.'; diff --git a/lib/plugins/acl/lang/pt-br/lang.php b/lib/plugins/acl/lang/pt-br/lang.php index 82a19b290..e199b773c 100644 --- a/lib/plugins/acl/lang/pt-br/lang.php +++ b/lib/plugins/acl/lang/pt-br/lang.php @@ -16,6 +16,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['admin_acl'] = 'Administração da Lista de Controles de Acesso'; $lang['acl_group'] = 'Grupo'; diff --git a/lib/plugins/acl/lang/ru/help.txt b/lib/plugins/acl/lang/ru/help.txt index f969151fe..4b8013f2b 100644 --- a/lib/plugins/acl/lang/ru/help.txt +++ b/lib/plugins/acl/lang/ru/help.txt @@ -1,4 +1,4 @@ -=== Краткая Справка: === +=== Краткая справка: === На этой странице вы можете добавить или удалить права доступа к пространствам имён и страницам вашей вики. diff --git a/lib/plugins/acl/lang/ru/lang.php b/lib/plugins/acl/lang/ru/lang.php index 496e67510..6bfea16bc 100644 --- a/lib/plugins/acl/lang/ru/lang.php +++ b/lib/plugins/acl/lang/ru/lang.php @@ -11,6 +11,8 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['admin_acl'] = 'Управление списками контроля доступа'; $lang['acl_group'] = 'Группа'; @@ -25,9 +27,9 @@ $lang['p_group_id'] = 'Сейчас члены группы <b class= $lang['p_group_ns'] = 'Сейчас члены группы <b class="aclgroup">%s</b> cимеют следующие права на доступ к пространству имён <b class="aclns">%s</b>: <i>%s</i>.'; $lang['p_choose_id'] = 'Пожалуйста, <b>введите пользователя или группу</b> в форме выше, чтобы просмотреть или отредактировать права на доступ к странице <b class="aclpage">%s</b>.'; $lang['p_choose_ns'] = 'Пожалуйста, <b>введите пользователя или группу</b> в форме выше, чтобы просмотреть или отредактировать права на доступ к пространству имён <b class="aclns">%s</b>.'; -$lang['p_inherited'] = 'Замечание: Эти права доступа не были заданы явно, а были унаследованы от других групп или пространств имён более высокого порядка.'; -$lang['p_isadmin'] = 'Замечание: Выбранный пользователь всегда имеет полные права так, как он является суперпользователем.'; -$lang['p_include'] = 'Более высокие права доступа включают в себя более низкие. Права доступа Создание, Загрузка и Удаление относятся только к пространствам имён, а не к страницам.'; +$lang['p_inherited'] = 'Замечание: эти права доступа не были заданы явно, а были унаследованы от других групп или пространств имён более высокого порядка.'; +$lang['p_isadmin'] = 'Замечание: выбранный пользователь всегда имеет полные права так, как он является суперпользователем.'; +$lang['p_include'] = 'Более высокие права доступа включают в себя более низкие. Права доступа «Создание», «Загрузка» и «Удаление» относятся только к пространствам имён, а не к страницам.'; $lang['current'] = 'Текущие права ACL'; $lang['where'] = 'Страница/Пространство имён'; $lang['who'] = 'Пользователь/Группа'; diff --git a/lib/plugins/acl/lang/sk/help.txt b/lib/plugins/acl/lang/sk/help.txt index 1167bf5e9..103a0341a 100644 --- a/lib/plugins/acl/lang/sk/help.txt +++ b/lib/plugins/acl/lang/sk/help.txt @@ -4,8 +4,8 @@ Na tejto stránke môžete pridávať alebo rušiť oprávnenia pre menné pries Ľavý panel zobrazuje všetky dostupné menné priestory a stránky. -Formulár zobrazený vyššie Vam dovoľuje prehliadať a meniť oprávnenia pre vybraného používateľa alebo skupinu. +Formulár zobrazený vyššie Vám dovoľuje prehliadať a meniť oprávnenia pre vybraného používateľa alebo skupinu. -V tabuľke nižšie sú zobrazené všetky aktuálne prístupové pravidlá. Môžete v nej rýchlo rušiť alebo meniť viacero pravidiel naraz. +V tabuľke nižšie sú zobrazené všetky aktuálne prístupové pravidlá. Môžete v nej rýchlo rušiť alebo meniť viacero pravidiel súčasne. Prečítanie [[doku>acl|oficiálnej dokumentácie ACL]] Vám môže pomôcť plne pochopiť spôsob ako fungujú prístupové pravidlá (oprávnenia) v DokuWiki.
\ No newline at end of file diff --git a/lib/plugins/acl/lang/sq/help.txt b/lib/plugins/acl/lang/sq/help.txt new file mode 100644 index 000000000..84a567f8b --- /dev/null +++ b/lib/plugins/acl/lang/sq/help.txt @@ -0,0 +1,11 @@ +=== Ndihmë e Shpejtë: === + +Në këtë faqe mund të shtoni ose hiqni të drejta për hapësira emri dhe faqe në wiki-n tuaj. + +Paneli i majtë tregon të gjitha faqet dhe hapësirat e emrit të disponueshme. + +Forma më sipër ju lejon të shihni dhe ndryshoni lejet për një grup ose përdorues të përzgjedhur. + +Në tabelën më poshtë tregohen të gjitha rregullat e vendosjes së aksesit. Mund ta përdorni për të fshirë shpejt ose ndryshuar shumë rregulla njëkohësisht. + +Leximi i [[doku>acl|dokumentimit zyrtar mbi ACL]] mund t'ju ndihmojë për të kuptuar plotësisht sesi funksionin Kontrolli i Aksesit në DokuWiki. diff --git a/lib/plugins/acl/lang/sq/lang.php b/lib/plugins/acl/lang/sq/lang.php new file mode 100644 index 000000000..30fc99bb0 --- /dev/null +++ b/lib/plugins/acl/lang/sq/lang.php @@ -0,0 +1,34 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['admin_acl'] = 'Menaxhimi i Listës së Kontrollit të Aksesit'; +$lang['acl_group'] = 'Grup'; +$lang['acl_user'] = 'Përdorues'; +$lang['acl_perms'] = 'Të drejta për'; +$lang['page'] = 'Faqe'; +$lang['namespace'] = 'Hapësira e Emrit'; +$lang['btn_select'] = 'Zgjidh'; +$lang['p_user_id'] = 'Përdoruesi <b class="acluser">%s</b> momentalisht ka të drejtat e mëposhtme mbi faqen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'Përdoruesi <b class="acluser">%s</b> momentalisht ka të drejtat e mëposhtme mbi hapësirën e emrit <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_group_id'] = 'Anëtarët e grupit <b class="aclgroup">%s</b> momentalisht kanë të drejtat e mëposhtme mbi faqen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Anëtarët e grupit <b class="aclgroup">%s</b> momentalisht kanë të drejtat e mëposhtme mbi hapësirën e emrit <b class="aclns">%s</b>: <i>%s</i>.'; +$lang['p_choose_id'] = 'Ju lutemi <b>futni një përdorues ose grup</b> në formën e mësipërme për të parë ose ndryshuar bashkësinë e të drejtave për faqen <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'Ju lutemi <b>futni një përdorues ose grup</b> në formën e mësipërme për të parë ose ndryshuar bashkësinë e të drejtave për hapësirën e emrit <b class="aclns">%s</b>.'; +$lang['p_inherited'] = 'Shënim: Ato të drejta nuk janë vendosur specifikisht por janë të trashëguara nga grupe të tjera ose hapësira emri më të larta.'; +$lang['p_isadmin'] = 'Shënim: Grupi ose përdoruesi i përzgjedhur ka gjithmonë të drejta të plota sepse është konfiguruar si superpërdorues.'; +$lang['p_include'] = 'Të drejtat më të larta i përfshijnë edhe ato më të ultat. Të drejtat Krijo, Ngarko dhe Fshi u aplikohen vetëm hapësirave të emrit, jo faqeve.'; +$lang['current'] = 'Rregullat aktuale ACL'; +$lang['where'] = 'Faqe/Hapësirë Emri'; +$lang['who'] = 'Përdorues/Grup'; +$lang['perm'] = 'Të Drejta'; +$lang['acl_perm0'] = 'Asgjë'; +$lang['acl_perm1'] = 'Lexim'; +$lang['acl_perm2'] = 'Redaktim'; +$lang['acl_perm4'] = 'Krijim'; +$lang['acl_perm8'] = 'Ngarkim'; +$lang['acl_perm16'] = 'Fshi'; +$lang['acl_new'] = 'Shto Hyrje të re'; +$lang['acl_mod'] = 'Ndrysho Hyrje'; diff --git a/lib/plugins/acl/lang/sr/lang.php b/lib/plugins/acl/lang/sr/lang.php index 6e1649992..20fbb0382 100644 --- a/lib/plugins/acl/lang/sr/lang.php +++ b/lib/plugins/acl/lang/sr/lang.php @@ -6,6 +6,7 @@ * @author Filip Brcic <brcha@users.sourceforge.net> * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['admin_acl'] = 'Управљање листом контроле приступа'; $lang['acl_group'] = 'Група'; diff --git a/lib/plugins/acl/lang/uk/lang.php b/lib/plugins/acl/lang/uk/lang.php index dc3e6a963..99b4b2623 100644 --- a/lib/plugins/acl/lang/uk/lang.php +++ b/lib/plugins/acl/lang/uk/lang.php @@ -8,6 +8,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['admin_acl'] = 'Керування списками контролю доступу'; $lang['acl_group'] = 'Група'; diff --git a/lib/plugins/acl/lang/zh/lang.php b/lib/plugins/acl/lang/zh/lang.php index 6ae32b01c..f9f924089 100644 --- a/lib/plugins/acl/lang/zh/lang.php +++ b/lib/plugins/acl/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['admin_acl'] = '访问控制列表(ACL)管理器'; $lang['acl_group'] = '组'; diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 449a3c16a..d5d0371a9 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -118,7 +118,11 @@ acl = { var ul = document.createElement('ul'); listitem.appendChild(ul); ajax.elementObj = ul; - ajax.runAJAX(link.search.substr(1)+'&ajax=tree'); + ajax.setVar('ajax', 'tree'); + var frm = $('acl__detail').getElementsByTagName('form')[0]; + ajax.setVar('current_ns', encodeURIComponent(frm.elements['ns'].value)); + ajax.setVar('current_id', encodeURIComponent(frm.elements['id'].value)); + ajax.runAJAX(link.search.substr(1)); clicky.src = DOKU_BASE+'lib/images/minus.gif'; return false; }, diff --git a/lib/plugins/action.php b/lib/plugins/action.php index a26bc654a..885bd7c96 100644 --- a/lib/plugins/action.php +++ b/lib/plugins/action.php @@ -8,9 +8,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_INC.'inc/plugin.php'); - /** * All DokuWiki plugins to interfere with the event system * need to inherit from this class diff --git a/lib/plugins/admin.php b/lib/plugins/admin.php index 2eeda3f7b..25f01b657 100644 --- a/lib/plugins/admin.php +++ b/lib/plugins/admin.php @@ -8,9 +8,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_INC.'inc/plugin.php'); - /** * All DokuWiki plugins to extend the admin function * need to inherit from this class diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php index cbee3440a..49712b73f 100644 --- a/lib/plugins/config/admin.php +++ b/lib/plugins/config/admin.php @@ -9,9 +9,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'admin.php'); - define('CM_KEYMARKER','____'); // used for settings with multiple dimensions of array indices define('PLUGIN_SELF',dirname(__FILE__).'/'); @@ -112,7 +109,7 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { elseif ($this->_changed) ptln('<div class="success">'.$this->getLang('updated').'</div>'); - ptln('<form action="'.wl($ID).'" method="post">'); + ptln('<form action="'.script().'" method="post">'); formSecurityToken(); $this->_print_h1('dokuwiki_settings', $this->getLang('_header_dokuwiki')); diff --git a/lib/plugins/config/lang/ar/intro.txt b/lib/plugins/config/lang/ar/intro.txt new file mode 100644 index 000000000..3e09db401 --- /dev/null +++ b/lib/plugins/config/lang/ar/intro.txt @@ -0,0 +1,7 @@ +====== مدير الضبط ====== + +استخدم هذه الصفحة للتحكم باعدادات دوكي ويكي المثبتة عندك. للمساعدة في أمر ما أشر إلى [[doku>config]]. لمعلومات اكثر عن هذه الاضافة انظر [[doku>plugin:config]]. + +الاعدادات الظاهرة بخلفية حمراء فاتحة اعدادات محمية ولا يمكن تغييرها بهذه الاضافة. الاعدادات الظاهرة بخلفية زرقاء هي القيم الافتراضية والاعدادات الظاهرة بخلفية بيضاء خصصت لهذا التثبيت محليا. الاعدادات الزرقاء والبيضاء يمكن تغييرها. + +تأكد من ضغط زر **SAVE** قبل ترك الصفحة وإلا ستضيع تعديلاتك.
\ No newline at end of file diff --git a/lib/plugins/config/lang/ar/lang.php b/lib/plugins/config/lang/ar/lang.php index 03aa99b91..5d0ff76b9 100644 --- a/lib/plugins/config/lang/ar/lang.php +++ b/lib/plugins/config/lang/ar/lang.php @@ -3,5 +3,164 @@ * Arabic language file * * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ $lang['menu'] = 'الإعدادات'; +$lang['error'] = 'لم تحدث الاعدادات بسبب قيمة غير صالحة، رجاء راجع تغييراتك ثم ارسلها. +<br />القيم الخاطئة ستظهر محاطة بحدود حمراء.'; +$lang['updated'] = 'رفعت الاعدادات بنجاح.'; +$lang['nochoice'] = '(لا خيارات اخرى متاحة)'; +$lang['locked'] = 'تعذر تحديث ملف الاعدادات، إن لم يكن ذلك مقصودا، <br /> +تأكد من صحة اسم و صلاحيات ملف الاعدادات المحلي.'; +$lang['danger'] = 'خطر: تغيير هذا الخيار قد يؤدي إلى تعذر الوصول للويكي و قائمة الاعدادات.'; +$lang['warning'] = 'تحذير: تغييرهذا الخيار قد يؤدي لسلوك غير متوقع.'; +$lang['security'] = 'تحذير أمني: تغيير هذا الخيار قد يؤدي إلى مخاطرة أمنية.'; +$lang['_configuration_manager'] = 'مدير الاعدادات'; +$lang['_header_dokuwiki'] = 'اعدادات دوكي ويكي'; +$lang['_header_plugin'] = 'اعدادات الملحقات'; +$lang['_header_template'] = 'اعدادات القوالب'; +$lang['_header_undefined'] = 'اعدادات غير محددة'; +$lang['_basic'] = 'اعدادات اساسية'; +$lang['_display'] = 'اعدادات العرض'; +$lang['_authentication'] = 'اعدادات المواثقة'; +$lang['_anti_spam'] = 'اعدادات مضاد النفاية'; +$lang['_editing'] = 'اعدادات التحرير'; +$lang['_links'] = 'اعدادات الروابط'; +$lang['_media'] = 'اعدادات الوسائط'; +$lang['_advanced'] = 'اعدادات متقدمة'; +$lang['_network'] = 'اعدادات الشبكة'; +$lang['_plugin_sufix'] = 'اعدادات الملحقات'; +$lang['_template_sufix'] = 'اعدادات القوالب'; +$lang['_msg_setting_undefined'] = 'لا بيانات إعدادات.'; +$lang['_msg_setting_no_default'] = 'لا قيمة افتراضية.'; +$lang['fmode'] = 'نمط انشاء الملفات'; +$lang['dmode'] = 'نمط انشاء المجلدات'; +$lang['lang'] = 'لغة الواجهة'; +$lang['basedir'] = 'مسار الخادوم (مثال. <code>/dokuwiki/</code>) اترك فارغا للاكتشاف التلقائي.'; +$lang['baseurl'] = 'عنوان الخادوم (مثال. <code>http://www.yourserver.com</code>). اترك فارغا للاكتشاف التلقائي.'; +$lang['savedir'] = 'دليل حفظ البيانات'; +$lang['start'] = 'اسم صفحة البداية'; +$lang['title'] = 'عنوان الويكي'; +$lang['template'] = 'القالب'; +$lang['license'] = 'تحت أي رخصة تريد اصدار المحتوى؟'; +$lang['fullpath'] = 'اظهر المحتوى الكامل للصفحات في '; +$lang['recent'] = 'أحدث التغييرات'; +$lang['typography'] = 'اعمل استبدالات طبوغرافية'; +$lang['htmlok'] = 'مكّن تضمين HTML'; +$lang['phpok'] = 'مكّن تضمين PHP'; +$lang['dformat'] = 'تنسيق التاريخ (انظر وظيفة PHP,s <a href="http://www.php.net/strftime">strftime</a>)'; +$lang['signature'] = 'التوقيع'; +$lang['toptoclevel'] = 'المستوى الأعلى لمحتويات الجدول'; +$lang['tocminheads'] = 'الحد الأدنى من الترويسات لبناء جدول المحتويات'; +$lang['maxtoclevel'] = 'المستوى الأقصى لمحتويات الجدول'; +$lang['maxseclevel'] = 'المستوى الأقصى لتحرير القسم'; +$lang['camelcase'] = 'استخدم CamelCase للروابط'; +$lang['deaccent'] = 'نظّف اسماء الصفحات'; +$lang['useheading'] = 'استخدم اول ترويسة كأسم للصفحة'; +$lang['refcheck'] = 'التحقق من مرجع الوسائط'; +$lang['refshow'] = 'عدد مراجع الوسائط لتعرض'; +$lang['allowdebug'] = 'مكّن التنقيح <b>عطّلها إن لم تكن بحاجلة لها!</b>'; +$lang['usewordblock'] = 'احجز الغثاء بناء على قائمة كلمات'; +$lang['indexdelay'] = 'التأخير قبل الفهرسة (ثوان)'; +$lang['relnofollow'] = 'استخدم rel="nofollow" للروابط الخارجية'; +$lang['mailguard'] = 'عناوين بريدية مبهمة'; +$lang['iexssprotect'] = 'تحقق الملفات المرفوعة من احتمال وجود أكواد جافاسكربت أو HTML ضارة'; +$lang['showuseras'] = 'الذي يعرض لاظهار المستخدم الذي قام بآخر تحرير لصفحة'; +$lang['useacl'] = 'استخدم قائمة التحم بالوصول'; +$lang['autopasswd'] = 'ولد كلمات سر تلقائيا'; +$lang['authtype'] = 'آلية المواثقة'; +$lang['passcrypt'] = 'نمط تشفير كلمة السر'; +$lang['defaultgroup'] = 'المجموعة الافتراضية'; +$lang['superuser'] = 'مجموعة المستخدم المتفوق أو مستخدم أو قائمة مفصولة بالفاصلة مستخدم1،@مجموعة، مستخدم2 صلاحيتهم الوصول الكامل لكل الصفحات و الوظائف بغض النظر عن اعدادات ACL'; +$lang['manager'] = 'مجموعة المدراء أو مستخدم أو قائمة مفصولة بالفاصلة مستخدم1،@مجموعة، مستخدم2 صلاحيتهم بعض الوظائف الادارية'; +$lang['profileconfirm'] = 'اكد تغيير اللاحة بكلمة المرور'; +$lang['disableactions'] = 'عطّل اجراءات دوكي ويكي'; +$lang['disableactions_check'] = 'تحقق'; +$lang['disableactions_subscription'] = 'اشترك/الغ الاشتراك'; +$lang['disableactions_wikicode'] = 'اعرض المصدر/صدّر صرفا'; +$lang['disableactions_other'] = 'اجراءات أخرى (مفصولة بالفاصلة)'; +$lang['sneaky_index'] = 'افتراضيا، ستعرض دوكي ويكي كل اسماء النطاقات في عرض الفهرس. تفعيل هذا الخيار سيخفي مالا يملك المستخدم صلاحية قراءته. قد يؤدي هذا إلى اخفاء نطاقات فرعية متاحة. وقد يؤدي لجعل صفحة الفهرس معطلة في بعض اعدادات ACL.'; +$lang['auth_security_timeout'] = 'زمن انتهاء أمان المواثقة (ثوان)'; +$lang['securecookie'] = 'هل يفرض على كعكات التصفح المعدة عبر HTTPS ان ترسل فقط عبر HTTPS من قبل المتصفح؟ عطل هذا إن كان الولوج للويكي مؤمنا فقط عبر SSL لكن تصفح الويكي غير مؤمن.'; +$lang['xmlrpc'] = 'مكّن/عطل واجهة XML-RPC.'; +$lang['updatecheck'] = 'تحقق من التحديثات و تنبيهات الأمان؟ دوكو ويكي ستحتاج للاتصال ب splitbrain.org لأجل ذلك'; +$lang['userewrite'] = 'استعمل عناوين URLs جميلة'; +$lang['useslash'] = 'استخدم الشرطة كفاصل النطاق في العناوين'; +$lang['usedraft'] = 'احفظ المسودة تلقائيا أثناء التحرير'; +$lang['sepchar'] = 'فاصل كلمة اسم الصفحة'; +$lang['canonical'] = 'استخدم العناوين الشائعة كاملة'; +$lang['fnencode'] = 'نظام ترميز اسماء الملفات بغير الأسكي.'; +$lang['autoplural'] = 'تحقق من صيغ الجمع في الروابط'; +$lang['compression'] = 'طريقة الغضط لملفات attic'; +$lang['cachetime'] = 'الحد الأعظم لعمر المخُبأ (ثوان)'; +$lang['locktime'] = 'الحد الأعظمي لقفل الملف (ثوان)'; +$lang['fetchsize'] = 'الحجم الأعظمي (بايت) ل fetch.php لتنزيله من الخارج'; +$lang['notify'] = 'ارسل تنبيهات التغيير لهذا البريد'; +$lang['registernotify'] = 'ارسل بيانات عن المستخدمين المسجلين جديدا لهذا البريد'; +$lang['mailfrom'] = 'البريد الالكتروني ليستخدم للرسائل الآلية'; +$lang['gzip_output'] = 'استخدم ترميز-محتوى gzip ل xhtml'; +$lang['gdlib'] = 'اصدار مكتبة GD'; +$lang['im_convert'] = 'المسار إلى اداة تحويل ImageMagick'; +$lang['jpg_quality'] = 'دقة ضغط JPG (0-100)'; +$lang['subscribers'] = 'مكن دعم اشتراك الصفحة'; +$lang['subscribe_time'] = 'المهلة بعد ارسال قوائم الاشتراكات والملخصات (ثوان); هذا يجب أن يكون أقل من الوقت المخصص في أيام أحدث التغييرات.'; +$lang['compress'] = 'رُص مخرجات CSS و جافا سكربت'; +$lang['hidepages'] = 'أخف الصفحات المنطبق عليها (تعابير شرطية)'; +$lang['send404'] = 'ارسل "HTTP 404/Page Not Found" للصفحات غير الموجودة'; +$lang['sitemap'] = 'ولد خرائط موقع جوجل (أيام)'; +$lang['rememberme'] = 'اسمح بكعكات الدخول الدائم (تذكرني)'; +$lang['rss_type'] = 'نوع تلقيمات XML'; +$lang['rss_linkto'] = 'تلقيمات XML توصل إلى'; +$lang['rss_content'] = 'مالذي يعرض في عناصر تلقيمات XML؟'; +$lang['rss_update'] = 'تحديث تلقيم XML (ثوان)'; +$lang['recent_days'] = 'مدة إبقاء أحدث التغييرات (ايام)'; +$lang['rss_show_summary'] = 'تلقيم XML يظهر ملخصا في العنوان'; +$lang['target____wiki'] = 'النافذة الهدف للروابط الداخلية'; +$lang['target____extern'] = 'النافذة الهدف للروابط الخارجية'; +$lang['target____media'] = 'النافذة الهدف لروابط الوسائط'; +$lang['target____windows'] = 'النافذة الهدف لروابط النوافذ'; +$lang['proxy____host'] = 'اسم خادوم الوكيل'; +$lang['proxy____port'] = 'منفذ الوكيل'; +$lang['proxy____user'] = 'اسم مستخدم الوكيل'; +$lang['proxy____pass'] = 'كلمة سر الوكيل'; +$lang['proxy____ssl'] = 'استخدم ssl للاتصال بالوكيل'; +$lang['safemodehack'] = 'مكّن hack الوضع الآمن'; +$lang['ftp____host'] = 'خادوم FTP ل hack الوضع الآمن'; +$lang['ftp____port'] = 'منفذ FTP ل hack الوضع الآمن'; +$lang['ftp____user'] = 'اسم مستخدم FTP ل hack الوضع الآمن'; +$lang['ftp____pass'] = 'كلمة سر FTP ل hack الوضع الآمن'; +$lang['ftp____root'] = 'دليل الجذر ل FTP لأجل hack الوضع الآمن'; +$lang['license_o_'] = 'غير مختار'; +$lang['typography_o_0'] = 'لاشيء'; +$lang['typography_o_1'] = 'استبعاد الاقتباس المفرد'; +$lang['typography_o_2'] = 'تضمين علامات اقتباس مفردة (قد لا يعمل دائما)'; +$lang['userewrite_o_0'] = 'لاشيء'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['deaccent_o_0'] = 'معطل'; +$lang['gdlib_o_0'] = 'مكتبة GD غير متوفرة'; +$lang['gdlib_o_1'] = 'الاصدار 1.x'; +$lang['gdlib_o_2'] = 'اكتشاف تلقائي'; +$lang['rss_type_o_rss'] = 'RSS 0.91'; +$lang['rss_type_o_rss1'] = 'RSS 1.0'; +$lang['rss_type_o_rss2'] = 'RSS 2.0'; +$lang['rss_type_o_atom'] = 'أتوم 0.3'; +$lang['rss_type_o_atom1'] = 'أتوم 1.0'; +$lang['rss_content_o_diff'] = 'الفروق الموحدة'; +$lang['rss_content_o_htmldiff'] = 'جدول الفروق بهيئة HTML'; +$lang['rss_content_o_html'] = 'محتوى HTML الكامل للصفحة'; +$lang['rss_linkto_o_diff'] = 'عرض الاختلافات'; +$lang['rss_linkto_o_page'] = 'الصفحة المعدلة'; +$lang['rss_linkto_o_rev'] = 'قائمة بالمراجعات'; +$lang['rss_linkto_o_current'] = 'الصفحة الحالية'; +$lang['compression_o_0'] = 'لا شيء'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = 'لا تستخدم'; +$lang['showuseras_o_loginname'] = 'اسم الدخول'; +$lang['showuseras_o_username'] = 'اسم المستخدم الكامل'; +$lang['showuseras_o_email'] = 'عنوان بريد المستخدم (مبهم تبعا لاعدادات حارس_البريد)'; +$lang['showuseras_o_email_link'] = 'عنوان بريد المستخدم كـ مالتيو: رابط'; +$lang['useheading_o_0'] = 'أبدا'; +$lang['useheading_o_navigation'] = 'ال'; +$lang['useheading_o_content'] = 'محتوى الويكي فقط'; +$lang['useheading_o_1'] = 'دائما'; diff --git a/lib/plugins/config/lang/bg/lang.php b/lib/plugins/config/lang/bg/lang.php index 0dfa805a8..855f0b2c2 100644 --- a/lib/plugins/config/lang/bg/lang.php +++ b/lib/plugins/config/lang/bg/lang.php @@ -80,7 +80,6 @@ $lang['profileconfirm'] = 'Потвърждаване на промени $lang['disableactions'] = 'Изключване на DokuWiki функции'; $lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'Записване/Отписване'; -$lang['disableactions_nssubscription'] = 'Записване/Отписване относно именни пространства'; $lang['disableactions_wikicode'] = 'Преглед на кода/Експортиране на оригинална версия'; $lang['disableactions_other'] = 'Други действия (разделени със запетая)'; $lang['sneaky_index'] = 'По подразбиране DokuWiki ще показва всички именни пространства в индекса. Избирането на настройката ще доведе до скриване на тези, за които потребителят няма права за четене. Това може да означава и скриване на достъпните подименни пространства. Това може да направи индекса неизползваем при определени настрокйки на списъците за контрол на достъп (ACL). '; diff --git a/lib/plugins/config/lang/ca-valencia/lang.php b/lib/plugins/config/lang/ca-valencia/lang.php index 4fa47f956..239213433 100644 --- a/lib/plugins/config/lang/ca-valencia/lang.php +++ b/lib/plugins/config/lang/ca-valencia/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'Confirmar canvis al perfil en la contrasenya'; $lang['disableactions'] = 'Desactivar accions de DokuWiki'; $lang['disableactions_check'] = 'Comprovar'; $lang['disableactions_subscription'] = 'Subscriure\'s/Desubscriure\'s'; -$lang['disableactions_nssubscription'] = 'Subscriure\'s/desubscriure\'s a l\'espai de noms'; $lang['disableactions_wikicode'] = 'Vore font/exportar còdic'; $lang['disableactions_other'] = 'Atres accions (separades per comes)'; $lang['sneaky_index'] = 'Normalment, DokuWiki mostra tots els espais de noms en la vista d\'índex. Activant esta opció s\'ocultaran aquells per als que l\'usuari no tinga permís de llectura. Açò pot ocultar subespais accessibles i inutilisar l\'índex per a certes configuracions del ACL.'; diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php index 60db83266..f0d622d35 100644 --- a/lib/plugins/config/lang/ca/lang.php +++ b/lib/plugins/config/lang/ca/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'Confirma amb contrasenya els canvis en el perf $lang['disableactions'] = 'Inhabilita accions DokuWiki'; $lang['disableactions_check'] = 'Revisa'; $lang['disableactions_subscription'] = 'Subscripció/cancel·lació'; -$lang['disableactions_nssubscription'] = 'Subscripció/cancel·lació a espai'; $lang['disableactions_wikicode'] = 'Mostra/exporta font'; $lang['disableactions_other'] = 'Altres accions (separades per comes)'; $lang['sneaky_index'] = 'Per defecte, DokuWiki mostrarà tots els espai en la visualització d\'índex. Si activeu aquest paràmetre, s\'ocultaran aquells espais en els quals l\'usuari no té accés de lectura. Això pot fer que s\'ocultin subespais que sí que són accessibles. En algunes configuracions ACL pot fer que l\'índex resulti inutilitzable.'; diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index a91b8c7e7..3f8c05f26 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -6,6 +6,8 @@ * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['menu'] = 'Správa nastavení'; $lang['error'] = 'Nastavení nebyla změněna kvůli alespoň jedné neplatné položce, @@ -84,7 +86,6 @@ $lang['profileconfirm'] = 'Potvrdit změny v profilu zadáním hesla'; $lang['disableactions'] = 'Vypnout DokuWiki akce'; $lang['disableactions_check'] = 'Zkontrolovat'; $lang['disableactions_subscription'] = 'Přihlásit se/Odhlásit se ze seznamu pro odběr změn'; -$lang['disableactions_nssubscription'] = 'Přihlásit se/Odhlásit se ze seznamu pro odběr změn ve jmenném prostoru'; $lang['disableactions_wikicode'] = 'Prohlížet zdrojové kódy/Export wiki textu'; $lang['disableactions_other'] = 'Další akce (oddělené čárkou)'; $lang['sneaky_index'] = 'Ve výchozím nastavení DokuWiki zobrazuje v indexu všechny @@ -103,6 +104,7 @@ $lang['useslash'] = 'Používat lomítko jako oddělovač jmenných $lang['usedraft'] = 'Během editace ukládat koncept automaticky'; $lang['sepchar'] = 'Znak pro oddělování slov v názvech stránek'; $lang['canonical'] = 'Používat plně kanonická URL'; +$lang['fnencode'] = 'Metoda pro kódování ne-ASCII názvů souborů'; $lang['autoplural'] = 'Kontrolovat plurálové tvary v odkazech'; $lang['compression'] = 'Metoda komprese pro staré verze'; $lang['cachetime'] = 'Maximální životnost cache (v sekundách)'; @@ -116,6 +118,7 @@ $lang['gdlib'] = 'Verze GD knihovny'; $lang['im_convert'] = 'Cesta k nástroji convert z balíku ImageMagick'; $lang['jpg_quality'] = 'Kvalita komprese JPEG (0-100)'; $lang['subscribers'] = 'Možnost přihlásit se k odběru novinek stránky'; +$lang['subscribe_time'] = 'Časový interval v sekundách, ve kterém jsou posílány změny a souhrny změn. Interval by neměl být kratší než čas uvedený v recent_days.'; $lang['compress'] = 'Zahustit CSS a JavaScript výstup'; $lang['hidepages'] = 'Skrýt stránky odpovídající vzoru (regulární výrazy)'; $lang['send404'] = 'Posílat "HTTP 404/Page Not Found" pro neexistují stránky'; @@ -142,6 +145,7 @@ $lang['proxy____port'] = 'Proxy port'; $lang['proxy____user'] = 'Proxy uživatelské jméno'; $lang['proxy____pass'] = 'Proxy heslo'; $lang['proxy____ssl'] = 'Použít SSL při připojení k proxy'; +$lang['proxy____except'] = 'Regulární výrazy pro URL, pro které bude přeskočena proxy.'; $lang['safemodehack'] = 'Zapnout safemode hack'; $lang['ftp____host'] = 'FTP server pro safemode hack'; $lang['ftp____port'] = 'FTP port pro safemode hack'; @@ -189,3 +193,4 @@ $lang['useheading_o_0'] = 'Nikdy'; $lang['useheading_o_navigation'] = 'Pouze pro navigaci'; $lang['useheading_o_content'] = 'Pouze pro wiki obsah'; $lang['useheading_o_1'] = 'Vždy'; +$lang['readdircache'] = 'Maximální stáří readdir cache (sec)'; diff --git a/lib/plugins/config/lang/da/lang.php b/lib/plugins/config/lang/da/lang.php index 3974b82c2..29c222174 100644 --- a/lib/plugins/config/lang/da/lang.php +++ b/lib/plugins/config/lang/da/lang.php @@ -9,6 +9,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['menu'] = 'Opsætningsindstillinger'; $lang['error'] = 'Indstillingerne blev ikke opdateret på grund af en ugyldig værdi, Gennemse venligst dine ændringer og gem dem igen. @@ -85,7 +87,6 @@ $lang['profileconfirm'] = 'Bekræft profilændringer med kodeord'; $lang['disableactions'] = 'Slå DokuWiki-muligheder fra'; $lang['disableactions_check'] = 'Tjek'; $lang['disableactions_subscription'] = 'Tliføj/Fjern opskrivning'; -$lang['disableactions_nssubscription'] = 'Tilmelding / afmelding af navnerum'; $lang['disableactions_wikicode'] = 'Vis kilde/Eksporter grundkode'; $lang['disableactions_other'] = 'Andre muligheder (kommasepareret)'; $lang['sneaky_index'] = 'DokuWiki vil som standard vise alle navnerum i indholdsfortegnelsen. Ved at slå denne valgmulighed til vil skjule de navnerum, hvor brugeren ikke har læsetilladelse. Dette kan føre til, at tilgængelige undernavnerum bliver skjult. Ligeledes kan det også gøre indholdsfortegnelsen ubrugelig med visse ACL-opsætninger.'; @@ -112,6 +113,7 @@ $lang['gdlib'] = 'Udgave af GD Lib'; $lang['im_convert'] = 'Sti til ImageMagick\'s omdannerværktøj'; $lang['jpg_quality'] = 'JPG komprimeringskvalitet (0-100)'; $lang['subscribers'] = 'Slå understøttelse af abonnement på sider til'; +$lang['subscribe_time'] = 'Tid der går før abonnementlister og nyhedsbreve er sendt (i sekunder). Denne værdi skal være mindre end den tid specificeret under recent_days.'; $lang['compress'] = 'Komprimer CSS- og JavaScript-filer'; $lang['hidepages'] = 'Skjul lignende sider (almindelige udtryk)'; $lang['send404'] = 'Send "HTTP 404/Page Not Found" for ikke-eksisterende sider'; diff --git a/lib/plugins/config/lang/de-informal/intro.txt b/lib/plugins/config/lang/de-informal/intro.txt index 45861dd00..7ac1b47d9 100644 --- a/lib/plugins/config/lang/de-informal/intro.txt +++ b/lib/plugins/config/lang/de-informal/intro.txt @@ -1,7 +1,7 @@ ===== Einstellungs-Manager ===== -Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation. Für Hilfe zu individuellen Einstellungen gehe zu [[doku>config]]. Für mehr Details über diese Erweiterunge siehe [[doku>plugin:config]]. +Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation. Für Hilfe zu individuellen Einstellungen gehe zu [[doku>config]]. Für mehr Details über diese Erweiterungen siehe [[doku>plugin:config]]. Einstellungen die mit einem hellroten Hintergrund angezeigt werden, können mit dieser Erweiterung nicht verändert werden. Einstellungen mit einem blauen Hintergrund sind Standardwerte und Einstellungen mit einem weißen Hintergrund wurden lokal gesetzt für diese Installation. Sowohl blaue als auch weiße Einstellungen können angepasst werden. -Denke dran **SAVE** zu drücken bevor du die Seite verläßt, andernfalls werden deine Änderungen nicht übernommen.
\ No newline at end of file +Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen.
\ No newline at end of file diff --git a/lib/plugins/config/lang/de-informal/lang.php b/lib/plugins/config/lang/de-informal/lang.php index 54694c511..69ad3e524 100644 --- a/lib/plugins/config/lang/de-informal/lang.php +++ b/lib/plugins/config/lang/de-informal/lang.php @@ -4,17 +4,20 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['menu'] = 'Einstellungen'; $lang['error'] = 'Einstellungen wurden nicht aktualisiert auf Grund eines ungültigen Wertes. Bitte überprüfen Sie Ihre Änderungen und versuchen Sie es erneut. -<br />Die/der inkorrekte(n) Wert(e) werden durch eine rote Umrandung hervorgehoben.'; -$lang['updated'] = 'Einstellungen erfolgreich hochgeladen.'; +<br />Die/der ungültige(n) Wert(e) werden durch eine rote Umrandung hervorgehoben.'; +$lang['updated'] = 'Einstellungen erfolgreich aktualisiert.'; $lang['nochoice'] = '(keine andere Option möglich)'; -$lang['warning'] = 'Achtung: Änderungen dieser Option kann zu unbabsichtigtem Verhalten führen.'; -$lang['security'] = 'Sicherheitswarnung: Änderungen dieser Option können eine Sicherheitsrisiko bedeuten.'; +$lang['locked'] = 'Die Einstallungsdatei kann nicht aktualisiert werden. Wenn dies beunabsichtigt ist stelle sicher, dass der Name und die Zugriffsrechte der Einstellungsdatei richtig sind.'; +$lang['danger'] = '**Achtung**: Eine Änderung dieser Einstellung kann dein Wiki und das Einstellungsmenü unerreichbar machen.'; +$lang['warning'] = 'Achtung: Eine Änderungen dieser Option kann zu unbabsichtigtem Verhalten führen.'; +$lang['security'] = 'Sicherheitswarnung: Eine Änderungen dieser Option können ein Sicherheitsrisiko bedeuten.'; $lang['_configuration_manager'] = 'Einstellungen'; $lang['_header_dokuwiki'] = 'DokuWiki-Einstellungen'; -$lang['_header_plugin'] = 'Erweiterugs-Einstellungen'; +$lang['_header_plugin'] = 'Erweiterungs-Einstellungen'; $lang['_header_template'] = 'Vorlageneinstellungen'; $lang['_header_undefined'] = 'unbestimmte Einstellungen'; $lang['_basic'] = 'Grundeinstellungen'; @@ -29,32 +32,59 @@ $lang['_network'] = 'Netzwerk-Einstellungen'; $lang['_plugin_sufix'] = 'Ereiterungseinstellungen'; $lang['_template_sufix'] = 'Vorlageneinstellungen'; $lang['_msg_setting_no_default'] = 'Kein Standardwert.'; +$lang['fmode'] = 'Zugriffsrechte bei Dateierstellung'; +$lang['dmode'] = 'Zugriffsrechte bei Verzeichniserstellung'; $lang['lang'] = 'Sprache'; $lang['savedir'] = 'Ordner zum Speichern von Daten'; $lang['start'] = 'Name der Startseite'; $lang['title'] = 'Wiki Titel'; $lang['template'] = 'Vorlage'; $lang['license'] = 'Unter welcher Lizenz sollte Ihr Inhalt veröffentlicht werden?'; +$lang['fullpath'] = 'Zeige vollen Pfad der Datei in Fußzeile an'; $lang['recent'] = 'letzte Änderungen'; $lang['typography'] = 'Mach drucktechnische Ersetzungen'; $lang['htmlok'] = 'Erlaube eingebettetes HTML'; $lang['phpok'] = 'Erlaube eingebettetes PHP'; -$lang['dformat'] = 'Datumsformat (siehe PHP\'s <a href="http://www.php.net/strftime">strftime</a> function)'; +$lang['dformat'] = 'Datumsformat (siehe PHPs <a href="http://www.php.net/strftime">strftime</a> Funktion)'; $lang['signature'] = 'Signatur'; -$lang['usewordblock'] = 'Blockier Spam basierend auf der Wortliste'; +$lang['usewordblock'] = 'Blockiere Spam basierend auf der Wortliste'; $lang['useacl'] = 'Benutze Zugangskontrollliste'; $lang['autopasswd'] = 'Automatisch erzeugte Passwörter'; +$lang['passcrypt'] = 'Passwortverschlüsselungsmethode'; $lang['defaultgroup'] = 'Standardgruppe'; +$lang['profileconfirm'] = 'Änderungen am Benutzerprofil mit Passwort bestätigen'; $lang['disableactions'] = 'Deaktiviere DokuWiki\'s Zugriffe'; $lang['disableactions_subscription'] = 'Bestellen/Abbestellen'; $lang['disableactions_nssubscription'] = 'Namensraum Bestellen/Abbestellen'; $lang['disableactions_wikicode'] = 'Zeige Quelle/Exportiere Rohdaten'; $lang['disableactions_other'] = 'Weitere Aktionen (durch Komma getrennt)'; +$lang['sneaky_index'] = 'Standardmäßig zeigt Dokuwiki alle Namensräume in der Indexansicht an. Bei Aktivierung dieser Einstellung werden alle Namensräume versteckt, in welchen der Benutzer keine Leserechte hat. Dies könnte dazu führen, dass lesbare Unternamensräume versteckt werden. Dies kann die Indexansicht bei bestimmten Zugangskontrolleinstellungen unbenutzbar machen.'; +$lang['userewrite'] = 'Benutze schöne URLs'; +$lang['useslash'] = 'Benutze Schrägstrich als Namensraumtrenner in URLs'; +$lang['usedraft'] = 'Speichere automatisch Entwürfe während der Bearbeitung'; +$lang['notify'] = 'Sende Änderungsbenachrichtigungen an diese eMail Adresse.'; +$lang['registernotify'] = 'Sende Information bei neu registrierten Benutzern an diese eMail Adresse.'; +$lang['gdlib'] = 'GD Lib Version'; +$lang['send404'] = 'Sende "HTTP 404/Seite nicht gefunden" für nicht existierende Seiten'; $lang['renderer__plugin'] = '%s (Erweiterung)'; +$lang['target____wiki'] = 'Zielfenstername für interne Links'; +$lang['target____interwiki'] = 'Zielfenstername für interwiki Links'; +$lang['target____extern'] = 'Zielfenstername für externe Links'; +$lang['target____media'] = 'Zielfenstername für Medienlinks'; +$lang['target____windows'] = 'Zielfenstername für Windowslinks'; +$lang['safemodehack'] = 'Aktiviere safemode Hack'; +$lang['ftp____host'] = 'FTP Server für safemode Hack'; +$lang['ftp____port'] = 'FTP Port für safemode Hack'; +$lang['ftp____user'] = 'FTP Benutzername für safemode Hack'; +$lang['ftp____pass'] = 'FTP Passwort für safemode Hack'; $lang['license_o_'] = 'Nichts ausgewählt'; $lang['typography_o_0'] = 'nichts'; $lang['userewrite_o_0'] = 'nichts'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = 'DokuWiki intern'; $lang['deaccent_o_0'] = 'aus'; +$lang['deaccent_o_1'] = 'Entferne Akzente'; +$lang['gdlib_o_0'] = 'GD lib ist nicht verfügbar'; $lang['gdlib_o_1'] = 'Version 1.x'; $lang['gdlib_o_2'] = 'Autoerkennung'; $lang['rss_type_o_rss'] = 'RSS 0.91'; @@ -62,6 +92,11 @@ $lang['rss_type_o_rss1'] = 'RSS 1.0'; $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; +$lang['rss_content_o_abstract'] = 'Zusammenfassung'; +$lang['rss_content_o_diff'] = 'Unified Diff'; +$lang['rss_linkto_o_diff'] = 'Ansicht der Unterschiede'; +$lang['rss_linkto_o_rev'] = 'Liste der Revisionen'; +$lang['rss_linkto_o_current'] = 'Die aktuelle Seite'; $lang['compression_o_0'] = 'nichts'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php index a76e39102..f5f68fab1 100644 --- a/lib/plugins/config/lang/de/lang.php +++ b/lib/plugins/config/lang/de/lang.php @@ -12,6 +12,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['menu'] = 'Konfiguration'; $lang['error'] = 'Die Einstellungen wurden wegen einer fehlerhaften Eingabe nicht gespeichert. @@ -88,7 +89,6 @@ $lang['profileconfirm'] = 'Profiländerung nur nach Passwortbestätigung' $lang['disableactions'] = 'DokuWiki-Aktionen deaktivieren'; $lang['disableactions_check'] = 'Check'; $lang['disableactions_subscription'] = 'Seiten-Abonnements'; -$lang['disableactions_nssubscription'] = 'Namensraum-Abonnements'; $lang['disableactions_wikicode'] = 'Quelltext betrachten/exportieren'; $lang['disableactions_other'] = 'Andere Aktionen (durch Komma getrennt)'; $lang['sneaky_index'] = 'Standardmäßig zeigt DokuWiki alle Namensräume in der Übersicht. Wenn diese Option aktiviert wird, werden alle Namensräume, für die der Benutzer keine Lese-Rechte hat, nicht angezeigt. Dies kann unter Umständen dazu führen, das lesbare Unter-Namensräume nicht angezeigt werden und macht die Übersicht evtl. unbrauchbar in Kombination mit bestimmten ACL Einstellungen.'; @@ -115,6 +115,7 @@ $lang['gdlib'] = 'GD Lib Version'; $lang['im_convert'] = 'Pfad zu ImageMagicks Konvertierwerkzeug'; $lang['jpg_quality'] = 'JPEG Kompressionsqualität (0-100)'; $lang['subscribers'] = 'E-Mail-Abos zulassen'; +$lang['subscribe_time'] = 'Zeit nach der Zusammenfassungs- und Änderungslisten-E-Mails verschickt werden; Dieser Wert sollte kleiner als die in recent_days konfigurierte Zeit sein.'; $lang['compress'] = 'JavaScript und Stylesheets komprimieren'; $lang['hidepages'] = 'Seiten verstecken (Regulärer Ausdruck)'; $lang['send404'] = 'Bei nicht vorhandenen Seiten mit 404 Fehlercode antworten'; diff --git a/lib/plugins/config/lang/el/lang.php b/lib/plugins/config/lang/el/lang.php index 6c1b5039c..df9029506 100644 --- a/lib/plugins/config/lang/el/lang.php +++ b/lib/plugins/config/lang/el/lang.php @@ -10,6 +10,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['menu'] = 'Ρυθμίσεις'; $lang['error'] = 'Οι ρυθμίσεις σας δεν έγιναν δεκτές λόγω λανθασμένης τιμής κάποιας ρύθμισης. Διορθώστε την λάθος τιμή και προσπαθήστε ξανά. @@ -85,7 +86,6 @@ $lang['profileconfirm'] = 'Να απαιτείται ο κωδικός χ $lang['disableactions'] = 'Απενεργοποίηση λειτουργιών DokuWiki'; $lang['disableactions_check'] = 'Έλεγχος'; $lang['disableactions_subscription'] = 'Εγγραφή/Διαγραφή χρήστη'; -$lang['disableactions_nssubscription'] = 'Εγγραφή/Διαγραφή σε φάκελο'; $lang['disableactions_wikicode'] = 'Προβολή κώδικα σελίδας'; $lang['disableactions_other'] = 'Άλλες λειτουργίες (διαχωρίστε τις με κόμμα)'; $lang['sneaky_index'] = 'Εξ ορισμού, η εφαρμογή DokuWiki δείχνει όλους τους φακέλους στην προβολή Καταλόγου. Ενεργοποιώντας αυτή την επιλογή, δεν θα εμφανίζονται οι φάκελοι για τους οποίους ο χρήστης δεν έχει δικαιώματα ανάγνωσης αλλά και οι υπο-φάκελοί τους ανεξαρτήτως δικαιωμάτων πρόσβασης.'; @@ -99,6 +99,7 @@ $lang['useslash'] = 'Χρήση slash σαν διαχωριστικ $lang['usedraft'] = 'Αυτόματη αποθήκευση αντιγράφων κατά την τροποποίηση σελίδων'; $lang['sepchar'] = 'Διαχωριστικός χαρακτήρας για κανονικοποίηση ονόματος σελίδας'; $lang['canonical'] = 'Πλήρη και κανονικοποιημένα URLs'; +$lang['fnencode'] = 'Μέθοδος κωδικοποίησης για ονόματα αρχείων μη-ASCII'; $lang['autoplural'] = 'Ταίριασμα πληθυντικού στους συνδέσμους'; $lang['compression'] = 'Μέθοδος συμπίεσης για αρχεία attic'; $lang['cachetime'] = 'Μέγιστη ηλικία cache (sec)'; @@ -112,6 +113,7 @@ $lang['gdlib'] = 'Έκδοση βιβλιοθήκης GD'; $lang['im_convert'] = 'Διαδρομή προς το εργαλείο μετατροπής εικόνων του ImageMagick'; $lang['jpg_quality'] = 'Ποιότητα συμπίεσης JPG (0-100)'; $lang['subscribers'] = 'Να επιτρέπεται η εγγραφή στην ενημέρωση αλλαγών σελίδας'; +$lang['subscribe_time'] = 'Χρόνος μετά τον οποίο οι λίστες ειδοποιήσεων και τα συνοπτικά θα αποστέλλονται (δευτερόλεπτα). Αυτό θα πρέπει να είναι μικρότερο από τον χρόνο που έχει η ρύθμιση recent_days.'; $lang['compress'] = 'Συμπίεση αρχείων CSS και javascript'; $lang['hidepages'] = 'Φίλτρο απόκρυψης σελίδων (regular expressions)'; $lang['send404'] = 'Αποστολή "HTTP 404/Page Not Found" για σελίδες που δεν υπάρχουν'; @@ -138,6 +140,7 @@ $lang['proxy____port'] = 'Θύρα Proxy'; $lang['proxy____user'] = 'Όνομα χρήστη Proxy'; $lang['proxy____pass'] = 'Κωδικός χρήστη Proxy'; $lang['proxy____ssl'] = 'Χρήση ssl για σύνδεση με διακομιστή Proxy'; +$lang['proxy____except'] = 'Regular expression για να πιάνει τα URLs για τα οποία θα παρακάμπτεται το proxy.'; $lang['safemodehack'] = 'Ενεργοποίηση safemode hack'; $lang['ftp____host'] = 'Διακομιστής FTP για safemode hack'; $lang['ftp____port'] = 'Θύρα FTP για safemode hack'; @@ -185,3 +188,4 @@ $lang['useheading_o_0'] = 'Ποτέ'; $lang['useheading_o_navigation'] = 'Μόνο κατά την πλοήγηση'; $lang['useheading_o_content'] = 'Μόνο για τα περιεχόμενα του wiki'; $lang['useheading_o_1'] = 'Πάντα'; +$lang['readdircache'] = 'Μέγιστος χρόνος διατήρησης για το cache του readdir (δευτερόλεπτα)'; diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 25103278c..66e5b00e0 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -101,7 +101,6 @@ $lang['profileconfirm'] = 'Confirm profile changes with password'; $lang['disableactions'] = 'Disable DokuWiki actions'; $lang['disableactions_check'] = 'Check'; $lang['disableactions_subscription'] = 'Subscribe/Unsubscribe'; -$lang['disableactions_nssubscription'] = 'Namespace Subscribe /Unsubscribe'; $lang['disableactions_wikicode'] = 'View source/Export Raw'; $lang['disableactions_other'] = 'Other actions (comma separated)'; $lang['sneaky_index'] = 'By default, DokuWiki will show all namespaces in the index view. Enabling this option will hide those where the user doesn\'t have read permissions. This might result in hiding of accessable subnamespaces. This may make the index unusable with certain ACL setups.'; @@ -117,6 +116,7 @@ $lang['useslash'] = 'Use slash as namespace separator in URLs'; $lang['usedraft'] = 'Automatically save a draft while editing'; $lang['sepchar'] = 'Page name word separator'; $lang['canonical'] = 'Use fully canonical URLs'; +$lang['fnencode'] = 'Method for encoding non-ASCII filenames.'; $lang['autoplural'] = 'Check for plural forms in links'; $lang['compression'] = 'Compression method for attic files'; $lang['cachetime'] = 'Maximum age for cache (sec)'; @@ -130,6 +130,7 @@ $lang['gdlib'] = 'GD Lib version'; $lang['im_convert'] = 'Path to ImageMagick\'s convert tool'; $lang['jpg_quality'] = 'JPG compression quality (0-100)'; $lang['subscribers'] = 'Enable page subscription support'; +$lang['subscribe_time'] = 'Time after which subscription lists and digests are sent (sec); This should be smaller than the time specified in recent_days.'; $lang['compress'] = 'Compact CSS and javascript output'; $lang['hidepages'] = 'Hide matching pages (regular expressions)'; $lang['send404'] = 'Send "HTTP 404/Page Not Found" for non existing pages'; @@ -156,11 +157,12 @@ $lang['target____media'] = 'Target window for media links'; $lang['target____windows'] = 'Target window for windows links'; /* Proxy Options */ -$lang['proxy____host'] = 'Proxy servername'; -$lang['proxy____port'] = 'Proxy port'; -$lang['proxy____user'] = 'Proxy user name'; -$lang['proxy____pass'] = 'Proxy password'; -$lang['proxy____ssl'] = 'Use ssl to connect to Proxy'; +$lang['proxy____host'] = 'Proxy servername'; +$lang['proxy____port'] = 'Proxy port'; +$lang['proxy____user'] = 'Proxy user name'; +$lang['proxy____pass'] = 'Proxy password'; +$lang['proxy____ssl'] = 'Use SLL to connect to proxy'; +$lang['proxy____except'] = 'Regular expression to match URLs for which the proxy should be skipped for.'; /* Safemode Hack */ $lang['safemodehack'] = 'Enable safemode hack'; @@ -234,3 +236,4 @@ $lang['useheading_o_navigation'] = 'Navigation Only'; $lang['useheading_o_content'] = 'Wiki Content Only'; $lang['useheading_o_1'] = 'Always'; +$lang['readdircache'] = 'Maximum age for readdir cache (sec)'; diff --git a/lib/plugins/config/lang/eo/lang.php b/lib/plugins/config/lang/eo/lang.php index 4d589696b..2b3dd6657 100644 --- a/lib/plugins/config/lang/eo/lang.php +++ b/lib/plugins/config/lang/eo/lang.php @@ -85,7 +85,6 @@ $lang['profileconfirm'] = 'Konfirmi ŝanĝojn en la trajtaro per pasvorto $lang['disableactions'] = 'Malebligi DokuWiki-ajn agojn'; $lang['disableactions_check'] = 'Kontroli'; $lang['disableactions_subscription'] = 'Aliĝi/Malaliĝi'; -$lang['disableactions_nssubscription'] = 'Aliĝi/Malaliĝi al nomspaco'; $lang['disableactions_wikicode'] = 'Rigardi vikitekston/Eksporti krudaĵon'; $lang['disableactions_other'] = 'Aliaj agoj (apartite per komoj)'; $lang['sneaky_index'] = 'Apriore, DokuWiki montras ĉiujn nomspacojn en la indeksa modo. Ebligi tiun ĉi elekteblon kaŝus tion, kion la uzanto ne rajtas legi laŭ ACL. Tio povus rezulti ankaŭan kaŝon de alireblaj subnomspacoj. Kaj tiel la indekso estus neuzebla por kelkaj agordoj de ACL.'; @@ -112,6 +111,7 @@ $lang['gdlib'] = 'Versio de GD Lib'; $lang['im_convert'] = 'Pado al la konvertilo de ImageMagick'; $lang['jpg_quality'] = 'Kompaktiga kvalito de JPG (0-100)'; $lang['subscribers'] = 'Ebligi subtenon de avizoj pri ŝanĝoj sur paĝoj'; +$lang['subscribe_time'] = 'Tempo, post kiu abonlistoj kaj kolektaĵoj sendiĝas (sek); Tio estu pli malgranda ol la tempo indikita en recent_days.'; $lang['compress'] = 'Kompaktigi CSS-ajn kaj ĵavaskriptajn elmetojn'; $lang['hidepages'] = 'Kaŝi kongruantajn paĝojn (laŭ regulaj esprimoj)'; $lang['send404'] = 'Sendi la mesaĝon "HTTP 404/Ne Trovita Paĝo" por ne ekzistantaj paĝoj'; diff --git a/lib/plugins/config/lang/es/lang.php b/lib/plugins/config/lang/es/lang.php index 3e791e51f..2b87a1dd2 100644 --- a/lib/plugins/config/lang/es/lang.php +++ b/lib/plugins/config/lang/es/lang.php @@ -17,6 +17,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['menu'] = 'Parámetros de configuración'; $lang['error'] = 'Los parámetros no han sido actualizados a causa de un valor inválido, por favor revise los cambios y re-envíe el formulario. <br /> Los valores incorrectos se mostrarán con un marco rojo alrededor.'; @@ -91,7 +93,6 @@ $lang['profileconfirm'] = 'Confirmar cambios en perfil con contraseña'; $lang['disableactions'] = 'Deshabilitar acciones DokuWiki'; $lang['disableactions_check'] = 'Controlar'; $lang['disableactions_subscription'] = 'Suscribirse/Cancelar suscripción'; -$lang['disableactions_nssubscription'] = 'Suscribirse/Cancelar suscripción (Espacio de nombres)'; $lang['disableactions_wikicode'] = 'Ver la fuente/Exportar en formato raw'; $lang['disableactions_other'] = 'Otras acciones (separadas por coma)'; $lang['sneaky_index'] = 'Por defecto, DokuWiki mostrará todos los namespaces en el index. Habilitando esta opción los ocultará si el usuario no tiene permisos de lectura. Los sub-namespaces pueden resultar inaccesibles. El index puede hacerse poco usable dependiendo de las configuraciones ACL.'; @@ -105,6 +106,7 @@ $lang['useslash'] = 'Usar barra (/) como separador de espacios de n $lang['usedraft'] = 'Guardar automáticamente un borrador mientras se edita'; $lang['sepchar'] = 'Separador de palabras en nombres de páginas'; $lang['canonical'] = 'Usar URLs totalmente canónicas'; +$lang['fnencode'] = 'Método para codificar nombres de archivo no-ASCII.'; $lang['autoplural'] = 'Controlar plurales en enlaces'; $lang['compression'] = 'Método de compresión para archivos en el ático'; $lang['cachetime'] = 'Edad máxima para caché (segundos)'; @@ -118,6 +120,7 @@ $lang['gdlib'] = 'Versión de GD Lib'; $lang['im_convert'] = 'Ruta a la herramienta de conversión de ImageMagick'; $lang['jpg_quality'] = 'Calidad de compresión de JPG (0-100)'; $lang['subscribers'] = 'Habilitar soporte para suscripción a páginas'; +$lang['subscribe_time'] = 'Tiempo después que alguna lista de suscripción fue enviada (seg); Debe ser menor que el tiempo especificado en días recientes.'; $lang['compress'] = 'Compactar la salida de CSS y javascript'; $lang['hidepages'] = 'Ocultar páginas con coincidencias (expresiones regulares)'; $lang['send404'] = 'Enviar "HTTP 404/Page Not Found" para páginas no existentes'; @@ -191,3 +194,4 @@ $lang['useheading_o_0'] = 'Nunca'; $lang['useheading_o_navigation'] = 'Solamente Navegación'; $lang['useheading_o_content'] = 'Contenido wiki solamente'; $lang['useheading_o_1'] = 'Siempre'; +$lang['readdircache'] = 'Tiempo máximo para la cache readdir (en segundos)'; diff --git a/lib/plugins/config/lang/eu/lang.php b/lib/plugins/config/lang/eu/lang.php index 3554abd42..380b00971 100644 --- a/lib/plugins/config/lang/eu/lang.php +++ b/lib/plugins/config/lang/eu/lang.php @@ -78,7 +78,6 @@ $lang['profileconfirm'] = 'Profil aldaketak pasahitzaz berretsi'; $lang['disableactions'] = 'DokuWiki ekintzak ezgaitu'; $lang['disableactions_check'] = 'Egiaztatu'; $lang['disableactions_subscription'] = 'Harpidetu/Harpidetza utzi'; -$lang['disableactions_nssubscription'] = 'Izen-espaziora Harpidetu/Harpidetza utzi'; $lang['disableactions_wikicode'] = 'Ikusi iturburua/Esportatu Raw'; $lang['disableactions_other'] = 'Beste ekintzak (komaz bereiztuak)'; $lang['sneaky_index'] = 'Lehenespenez, DokuWiki-k izen-espazio guztiak indize bistan erakutsiko ditu. Aukera hau gaituta, erabiltzaieak irakurtzeko baimenik ez dituen izen-espazioak ezkutatuko dira. Honek atzigarriak diren azpi izen-espazioak ezkutatzen ditu. Agian honek indizea erabili ezin ahal izatea eragingo du AKL ezarpen batzuetan.'; diff --git a/lib/plugins/config/lang/fa/lang.php b/lib/plugins/config/lang/fa/lang.php index a1f902090..98744f366 100644 --- a/lib/plugins/config/lang/fa/lang.php +++ b/lib/plugins/config/lang/fa/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'تغییرات پروفایل با وارد ک $lang['disableactions'] = 'غیرفعال کردن فعالیتهای DokuWiki'; $lang['disableactions_check'] = 'بررسی'; $lang['disableactions_subscription'] = 'عضویت/عدم عضویت'; -$lang['disableactions_nssubscription'] = 'عضویت/عدم عضویت فضاینام'; $lang['disableactions_wikicode'] = 'نمایش سورس/برونبری خام'; $lang['disableactions_other'] = 'فعالیتهای دیگر (با ویرگول انگلیسی «,» از هم جدا کنید)'; $lang['sneaky_index'] = 'به طور پیشفرض، DokuWiki در فهرست تمامی فضاینامها را نمایش میدهد. فعال کردن این گزینه، مواردی را که کاربر حق خواندنشان را ندارد مخفی میکند. این گزینه ممکن است باعث دیده نشدن زیرفضاینامهایی شود که دسترسی خواندن به آنها وجود دارد. و ممکن است باعث شود که فهرست در حالاتی از دسترسیها، غیرقابل استفاده شود.'; @@ -95,6 +94,7 @@ $lang['useslash'] = 'از اسلش «/» برای جداکننده $lang['usedraft'] = 'ایجاد خودکار چرکنویس در زمان نگارش'; $lang['sepchar'] = 'کلمهی جداکنندهی نام صفحات'; $lang['canonical'] = 'استفاده از آدرسهای استاندارد'; +$lang['fnencode'] = 'روش تغییر نام فایلهایی با فرمتی غیر از اسکی'; $lang['autoplural'] = 'بررسی جمع بودن در پیوندها'; $lang['compression'] = 'روش فشردهسازی برای فایلهای خُرد'; $lang['cachetime'] = 'بیشینهی زمان حافظهی موقت (cache) به ثانیه'; @@ -134,6 +134,7 @@ $lang['proxy____port'] = 'پورت پروکسی'; $lang['proxy____user'] = 'نام کاربری پروکسی'; $lang['proxy____pass'] = 'گذرواژهي پروکسی'; $lang['proxy____ssl'] = 'استفاده از SSL برای اتصال به پروکسی'; +$lang['proxy____except'] = 'عبارت منظم برای تطبیق با URLها برای اینکه دریابیم که از روی چه پروکسیای باید بپریم!'; $lang['safemodehack'] = 'فعال کردن safemode hack'; $lang['ftp____host'] = 'آدرس FTP برای safemode hack'; $lang['ftp____port'] = 'پورت FTP برای safemode hack'; @@ -181,3 +182,4 @@ $lang['useheading_o_0'] = 'هرگز'; $lang['useheading_o_navigation'] = 'فقط ناوبری (navigation)'; $lang['useheading_o_content'] = 'فقط محتویات ویکی'; $lang['useheading_o_1'] = 'همیشه'; +$lang['readdircache'] = 'بیشترین عمر برای حافظهی موقت readdir (ثانیه)'; diff --git a/lib/plugins/config/lang/fi/lang.php b/lib/plugins/config/lang/fi/lang.php index 79b4957eb..f5c7b911b 100644 --- a/lib/plugins/config/lang/fi/lang.php +++ b/lib/plugins/config/lang/fi/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'Vahvista profiilin päivitys salasanan avulla' $lang['disableactions'] = 'Estä DokuWiki-toimintojen käyttö'; $lang['disableactions_check'] = 'Tarkista'; $lang['disableactions_subscription'] = 'Tilaa/Peruuta tilaus'; -$lang['disableactions_nssubscription'] = 'Nimiavaruuden tilaus/tilauksen poisto'; $lang['disableactions_wikicode'] = 'Näytä lähdekoodi/Vie raakana'; $lang['disableactions_other'] = 'Muut toiminnot (pilkulla erotettuna)'; $lang['sneaky_index'] = 'Oletuksena DokuWiki näyttää kaikki nimiavaruudet index-näkymäsä. Tämä asetus piilottaa ne, joihin käyttäjällä ei ole lukuoikeuksia. Tämä voi piilottaa joitakin sallittuja alinimiavaruuksia. Tästä johtuen index-näkymä voi olla käyttökelvoton joillakin ACL-asetuksilla'; @@ -95,6 +94,7 @@ $lang['useslash'] = 'Käytä kauttaviivaa nimiavaruuksien erottimen $lang['usedraft'] = 'Tallenna vedos muokkaustilassa automaattisesti '; $lang['sepchar'] = 'Sivunimen sanaerotin'; $lang['canonical'] = 'Käytä kanonisoituja URLeja'; +$lang['fnencode'] = 'Muita kuin ASCII merkkejä sisältävien tiedotonimien koodaustapa.'; $lang['autoplural'] = 'Etsi monikkomuotoja linkeistä'; $lang['compression'] = 'Attic-tiedostojen pakkausmenetelmä'; $lang['cachetime'] = 'Välimuisti-tiedostojen maksimi-ikä (sek)'; @@ -108,6 +108,7 @@ $lang['gdlib'] = 'GD Lib versio'; $lang['im_convert'] = 'ImageMagick-muunnostyökalun polku'; $lang['jpg_quality'] = 'JPG pakkauslaatu (0-100)'; $lang['subscribers'] = 'Salli tuki sivujen tilaamiselle'; +$lang['subscribe_time'] = 'Aika jonka jälkeen tilauslinkit ja yhteenveto lähetetään (sek). Tämän pitäisi olla pienempi, kuin recent_days aika.'; $lang['compress'] = 'Pakkaa CSS ja javascript'; $lang['hidepages'] = 'Piilota seuraavat sivut (säännönmukainen lauseke)'; $lang['send404'] = 'Lähetä "HTTP 404/Page Not Found" puuttuvista sivuista'; @@ -135,6 +136,7 @@ $lang['proxy____port'] = 'Proxy portti'; $lang['proxy____user'] = 'Proxy käyttäjän nimi'; $lang['proxy____pass'] = 'Proxy salasana'; $lang['proxy____ssl'] = 'Käytä ssl-yhteyttä kytkeytyäksesi proxy-palvelimeen'; +$lang['proxy____except'] = 'Säännönmukainen lause, URLiin, jolle proxy ohitetaan.'; $lang['safemodehack'] = 'Käytä safemode kiertoa'; $lang['ftp____host'] = 'FTP-palvelin safemode kiertoa varten'; $lang['ftp____port'] = 'FTP-portti safemode kiertoa varten'; @@ -182,3 +184,4 @@ $lang['useheading_o_0'] = 'Ei koskaan'; $lang['useheading_o_navigation'] = 'Vain Navigointi'; $lang['useheading_o_content'] = 'Vain Wiki-sisältö'; $lang['useheading_o_1'] = 'Aina'; +$lang['readdircache'] = 'Maksimiaika readdir cachelle (sek)'; diff --git a/lib/plugins/config/lang/fr/intro.txt b/lib/plugins/config/lang/fr/intro.txt index 79e4a42da..de8a965d8 100644 --- a/lib/plugins/config/lang/fr/intro.txt +++ b/lib/plugins/config/lang/fr/intro.txt @@ -1,8 +1,8 @@ ====== Gestionnaire de configuration ====== -Utilisez cette page pour contrôler les paramètres de votre installation de DokuWiki. Pour de l'aide sur chaque paramètre, reportez vous à [[doku>config]]. Pour d'autres détails concernant ce plugin, reportez vous à [[doku>plugin:config]]. +Utilisez cette page pour contrôler les paramètres de votre installation de DokuWiki. Pour de l'aide sur chaque paramètre, reportez vous à [[doku>config]]. Pour d'autres détails concernant ce module, reportez vous à [[doku>plugin:config]]. -Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec ce plugin. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs affectées à votre installation sont affichées sur un fond blanc. Les paramètres bleus et blancs peuvent être modifiés. +Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec ce module. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs affectées à votre installation sont affichées sur un fond blanc. Les paramètres bleus et blancs peuvent être modifiés. N'oubliez pas d'utiliser le bouton **Enregistrer** avant de quitter cette page, sinon vos modifications seront perdues. diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index 2de2fb159..b51c260fc 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -12,9 +12,12 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['menu'] = 'Paramètres de configuration'; -$lang['error'] = 'Paramètres non modifiés en raison d\'une valeur non valide, vérifiez vos réglages et réessayez. <br />La valeur(s) erronée(s) est entourée d\'une bordure rouge.'; +$lang['error'] = 'Paramètres non modifiés en raison d\'une valeur non valide, vérifiez vos réglages et réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; $lang['updated'] = 'Paramètres mis à jour avec succès.'; $lang['nochoice'] = '(aucun autre choix possible)'; $lang['locked'] = 'Le fichier des paramètres ne peut être modifié, si ceci n\'est pas intentionnel, <br /> vérifiez que le nom et les droits du fichier sont corrects.'; @@ -22,9 +25,9 @@ $lang['danger'] = 'Danger : Modifier cette option pourrait rendre $lang['warning'] = 'Attention : Modifier cette option pourrait engendrer un comportement indésirable.'; $lang['security'] = 'Avertissement de sécurité : Modifier cette option pourrait induire un risque de sécurité.'; $lang['_configuration_manager'] = 'Gestionnaire de configuration'; -$lang['_header_dokuwiki'] = 'Paramètres DokuWiki'; -$lang['_header_plugin'] = 'Paramètres plugin'; -$lang['_header_template'] = 'Paramètres template'; +$lang['_header_dokuwiki'] = 'Paramètres de DokuWiki'; +$lang['_header_plugin'] = 'Paramètres des modules externes'; +$lang['_header_template'] = 'Paramètres des modèles'; $lang['_header_undefined'] = 'Paramètres indéfinis'; $lang['_basic'] = 'Paramètres de base'; $lang['_display'] = 'Paramètres d\'affichage'; @@ -35,7 +38,7 @@ $lang['_links'] = 'Paramètres des liens'; $lang['_media'] = 'Paramètres média'; $lang['_advanced'] = 'Paramètres avancés'; $lang['_network'] = 'Paramètres réseaux'; -$lang['_plugin_sufix'] = 'Paramètres plugin'; +$lang['_plugin_sufix'] = 'Paramètres de module'; $lang['_template_sufix'] = 'Paramètres de modèle'; $lang['_msg_setting_undefined'] = 'Pas de métadonnée de paramètres.'; $lang['_msg_setting_no_class'] = 'Pas de classe de paramètres.'; @@ -43,51 +46,50 @@ $lang['_msg_setting_no_default'] = 'Pas de valeur par défaut.'; $lang['fmode'] = 'Mode de création des fichiers'; $lang['dmode'] = 'Mode de création des répertoires'; $lang['lang'] = 'Langue'; -$lang['basedir'] = 'Répertoire de base'; -$lang['baseurl'] = 'URL de base'; +$lang['basedir'] = 'Répertoire de base (ex. : <code>/dokuwiki/</code>). Laisser vide pour une détection automatique.'; +$lang['baseurl'] = 'URL de base. Laisser vide pour une détection automatique.'; $lang['savedir'] = 'Répertoire de stockage'; $lang['start'] = 'Nom de la page d\'accueil'; $lang['title'] = 'Titre du wiki'; $lang['template'] = 'Modèle'; -$lang['license'] = 'Sous quelle licence doit être placée votre contribution ?'; +$lang['license'] = 'Sous quelle licence doit être placé le contenu ?'; $lang['fullpath'] = 'Utiliser le chemin complet dans le pied de page'; $lang['recent'] = 'Nombre de derniers changements à afficher'; $lang['breadcrumbs'] = 'Nombre de traces à afficher'; $lang['youarehere'] = 'Traces hiérarchiques'; $lang['typography'] = 'Effectuer des améliorations typographiques'; -$lang['htmlok'] = 'Permettre html dans les pages'; -$lang['phpok'] = 'Permettre php dans les pages'; +$lang['htmlok'] = 'Permettre HTML dans les pages'; +$lang['phpok'] = 'Permettre PHP dans les pages'; $lang['dformat'] = 'Format de date (cf. fonction <a href="http://www.php.net/strftime">strftime</a> de PHP)'; $lang['signature'] = 'Signature'; -$lang['toptoclevel'] = 'Niveau supérieur pour figurer dans la table des matières'; +$lang['toptoclevel'] = 'Niveau le plus haut à afficher dans la table des matières'; $lang['tocminheads'] = 'Nombre minimum de titres pour qu\'une table des matières soit construite'; $lang['maxtoclevel'] = 'Niveau maximum pour figurer dans la table des matières'; -$lang['maxseclevel'] = 'Niveau maximum pour éditer des sections'; +$lang['maxseclevel'] = 'Niveau maximum pour modifier des sections'; $lang['camelcase'] = 'Utiliser CamelCase pour les liens'; $lang['deaccent'] = 'Retirer les accents dans les noms de pages'; $lang['useheading'] = 'Utiliser le titre de premier niveau'; -$lang['refcheck'] = 'Vérifier les références de media'; -$lang['refshow'] = 'Nombre de références de media à montrer'; -$lang['allowdebug'] = 'Debug (<b>Ne l\'activez que si vous en avez besoin !</b>)'; +$lang['refcheck'] = 'Vérifier les références de média'; +$lang['refshow'] = 'Nombre de références de média à montrer'; +$lang['allowdebug'] = 'Debug (<strong>Ne l\'activez que si vous en avez besoin !</strong>)'; $lang['usewordblock'] = 'Bloquer le spam selon les mots utilisés'; -$lang['indexdelay'] = 'Délai avant l\'indexation (sec)'; +$lang['indexdelay'] = 'Délai avant l\'indexation (en secondes)'; $lang['relnofollow'] = 'Utiliser rel="nofollow" sur les liens extérieurs'; $lang['mailguard'] = 'Brouiller les adresses de courriel'; $lang['iexssprotect'] = 'Vérifier la présence de code JavaScript ou HTML malveillant dans les fichiers envoyés'; -$lang['showuseras'] = 'Qu\'afficher en montrant les utilisateurs qui ont récemment édité la page'; +$lang['showuseras'] = 'Qu\'afficher en montrant les utilisateurs qui ont récemment modifié la page'; $lang['useacl'] = 'Utiliser les listes de contrôle d\'accès (ACL)'; $lang['autopasswd'] = 'Auto-générer les mots de passe'; $lang['authtype'] = 'Mécanisme d\'authentification'; -$lang['passcrypt'] = 'Méthode de cryptage des mots de passe'; +$lang['passcrypt'] = 'Méthode de chiffrement des mots de passe'; $lang['defaultgroup'] = 'Groupe par défaut'; -$lang['superuser'] = 'Superuser - groupe, utilisateur ou liste séparée par des virgules user1,@group1,user2 ayant un accès complet à toutes les pages quelquesoit le paramétrage des ACL'; +$lang['superuser'] = 'Superuser - groupe, utilisateur ou liste séparée par des virgules user1,@group1,user2 ayant un accès complet à toutes les pages quelque soit le paramétrage des ACL'; $lang['manager'] = 'Manager - groupe, utilisateur ou liste séparée par des virgules user1,@group1,user2 ayant accès à certaines fonctions de gestion'; $lang['profileconfirm'] = 'Confirmer par mot de passe les modifications de profil'; $lang['disableactions'] = 'Actions à désactiver dans DokuWiki'; $lang['disableactions_check'] = 'Vérifier'; $lang['disableactions_subscription'] = 'Abonnement aux pages'; -$lang['disableactions_nssubscription'] = 'Abonnement aux catégories'; -$lang['disableactions_wikicode'] = 'Afficher source'; +$lang['disableactions_wikicode'] = 'Afficher le texte source'; $lang['disableactions_other'] = 'Autres actions (séparées par des virgules)'; $lang['sneaky_index'] = 'Par défaut, DokuWiki affichera toutes les catégories dans la vue par index. Activer cette option permet de cacher celles pour lesquelles l\'utilisateur n\'a pas la permission de lecture. Il peut en résulter le masquage de sous-catégories accessibles. Ceci peut rendre l\'index inutilisable avec certaines ACL.'; $lang['auth_security_timeout'] = 'Délai d\'expiration de sécurité (secondes)'; @@ -95,64 +97,67 @@ $lang['securecookie'] = 'Les cookies mis via HTTPS doivent-ils n\'être $lang['xmlrpc'] = 'Activer l\'interface XML-RPC.'; $lang['xmlrpcuser'] = 'Restreindre l\'accès à XML-RPC aux groupes et utilisateurs indiqués ici. Laisser vide afin que tout le monde y ait accès.'; $lang['updatecheck'] = 'Vérifier les mises à jour ? DokuWiki doit pouvoir contacter splitbrain.org.'; -$lang['userewrite'] = 'URLs esthétiques'; -$lang['useslash'] = 'Utiliser slash comme séparateur de catégorie dans les URLs'; +$lang['userewrite'] = 'URL esthétiques'; +$lang['useslash'] = 'Utiliser « / » comme séparateur de catégorie dans les URL'; $lang['usedraft'] = 'Enregistrer automatiquement un brouillon pendant l\'édition'; -$lang['sepchar'] = 'Séparateur de nom de page'; -$lang['canonical'] = 'Utiliser des URLs canoniques'; +$lang['sepchar'] = 'Séparateur de mots dans les noms de page'; +$lang['canonical'] = 'Utiliser des URL canoniques'; +$lang['fnencode'] = 'Méhtode pou r l\'encodage des fichiers non-ASCII'; $lang['autoplural'] = 'Rechercher les formes plurielles dans les liens'; $lang['compression'] = 'Méthode de compression pour les fichiers dans attic'; -$lang['cachetime'] = 'Âge maximum d\'un fichier en cache (sec)'; -$lang['locktime'] = 'Âge maximum des fichiers verrous (sec)'; +$lang['cachetime'] = 'Âge maximum d\'un fichier en cache (en secondes)'; +$lang['locktime'] = 'Âge maximum des fichiers verrous (en secondes)'; $lang['fetchsize'] = 'Taille maximale (en octets) du fichier que fetch.php peut télécharger'; $lang['notify'] = 'Notifier les modifications à cette adresse de courriel'; $lang['registernotify'] = 'Envoyer un courriel annonçant les nouveaux utilisateurs enregistrés à cette adresse'; $lang['mailfrom'] = 'Expéditeur des notifications par courriel du wiki'; -$lang['gzip_output'] = 'Utiliser Content-Encoding gzip pour xhtml'; +$lang['gzip_output'] = 'Utiliser Content-Encoding gzip pour XHTML'; $lang['gdlib'] = 'Version de GD Lib'; $lang['im_convert'] = 'Chemin vers l\'outil de conversion d\'ImageMagick'; -$lang['jpg_quality'] = 'Qualité de la compression JPG (0-100)'; +$lang['jpg_quality'] = 'Qualité de la compression JPEG (0-100)'; $lang['subscribers'] = 'Activer l\'abonnement aux pages'; -$lang['compress'] = 'Compresser CSS & JavaScript'; +$lang['subscribe_time'] = 'Délai après lequel les listes d\'abonnement et résumés sont envoyés (en secondes). Devrait être plus petit que le délai précisé dans recent_days.'; +$lang['compress'] = 'Compresser CSS et JavaScript'; $lang['hidepages'] = 'Cacher les pages correspondant à (expression régulière)'; $lang['send404'] = 'Renvoyer "HTTP 404/Page Non Trouvée" pour les pages introuvables'; -$lang['sitemap'] = 'Générer une carte G|oogle du site tous les (jours)'; +$lang['sitemap'] = 'Fréquence de génération une carte Google du site (en jours)'; $lang['broken_iua'] = 'La fonction ignore_user_abort est-elle opérationnelle sur votre système ? Ceci peut empêcher le fonctionnement de l\'index de recherche. IIS+PHP/ CGI dysfonctionne. Voir le <a href="http://bugs.splitbrain.org/?do=details&task_id=852">bug 852</a> pour plus d\'info.'; $lang['xsendfile'] = 'Utiliser l\'en-tête X-Sendfile pour permettre au serveur Web de délivrer des fichiers statiques ? Votre serveur Web doit supporter cette fonctionnalité.'; -$lang['renderer_xhtml'] = 'Moteur de rendu du format de sortie principal (xhtml)'; -$lang['renderer__core'] = '%s (dokuwiki core)'; -$lang['renderer__plugin'] = '%s (plugin)'; +$lang['renderer_xhtml'] = 'Moteur de rendu du format de sortie principal (XHTML)'; +$lang['renderer__core'] = '%s (cœur de dokuwiki)'; +$lang['renderer__plugin'] = '%s (module externe)'; $lang['rememberme'] = 'Permettre de conserver de manière permanente les cookies de connexion (mémoriser)'; $lang['rss_type'] = 'Type de flux RSS'; $lang['rss_linkto'] = 'Lien du flux RSS vers'; $lang['rss_content'] = 'Quel contenu afficher dans le flux RSS ?'; -$lang['rss_update'] = 'Fréquence de mise à jour du flux RSS (sec)'; -$lang['recent_days'] = 'Signaler les pages modifiées depuis (jours)'; +$lang['rss_update'] = 'Fréquence de mise à jour du flux RSS (en secondes)'; +$lang['recent_days'] = 'Signaler les pages modifiées depuis (en jours)'; $lang['rss_show_summary'] = 'Le flux XML affiche le résumé dans le titre'; $lang['target____wiki'] = 'Cible pour liens internes'; $lang['target____interwiki'] = 'Cible pour liens interwiki'; $lang['target____extern'] = 'Cible pour liens externes'; -$lang['target____media'] = 'Cible pour liens media'; -$lang['target____windows'] = 'Cible pour liens windows'; -$lang['proxy____host'] = 'Proxy - hôte'; -$lang['proxy____port'] = 'Proxy - port'; -$lang['proxy____user'] = 'Proxy - identifiant'; -$lang['proxy____pass'] = 'Proxy - mot de passe'; -$lang['proxy____ssl'] = 'Proxy - utilisation de ssl'; +$lang['target____media'] = 'Cible pour liens média'; +$lang['target____windows'] = 'Cible pour liens vers partages Windows'; +$lang['proxy____host'] = 'Proxy - Serveur hôte'; +$lang['proxy____port'] = 'Proxy - Numéro de port'; +$lang['proxy____user'] = 'Proxy - Identifiant'; +$lang['proxy____pass'] = 'Proxy - Mot de passe'; +$lang['proxy____ssl'] = 'Proxy - Utilisation de SSL'; +$lang['proxy____except'] = 'Expression régulière de test des URLs pour lesquelles le proxy ne devrait pas être utilisé.'; $lang['safemodehack'] = 'Activer l\'option Mode sans échec'; -$lang['ftp____host'] = 'FTP - hôte pour Mode sans échec'; -$lang['ftp____port'] = 'FTP - port pour Mode sans échec'; -$lang['ftp____user'] = 'FTP - identifiant pour Mode sans échec'; -$lang['ftp____pass'] = 'FTP - mot de passe pour Mode sans échec'; -$lang['ftp____root'] = 'FTP - répertoire racine pour Mode sans échec'; +$lang['ftp____host'] = 'FTP - Serveur hôte pour Mode sans échec'; +$lang['ftp____port'] = 'FTP - Numéro de port pour Mode sans échec'; +$lang['ftp____user'] = 'FTP - Identifiant pour Mode sans échec'; +$lang['ftp____pass'] = 'FTP - Mot de passe pour Mode sans échec'; +$lang['ftp____root'] = 'FTP - Répertoire racine pour Mode sans échec'; $lang['license_o_'] = 'Aucune choisie'; $lang['typography_o_0'] = 'aucun'; $lang['typography_o_1'] = 'guillemets uniquement'; $lang['typography_o_2'] = 'tout signe typographique (peut ne pas fonctionner)'; $lang['userewrite_o_0'] = 'aucun'; -$lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'DokuWiki'; +$lang['userewrite_o_1'] = 'Fichier .htaccess'; +$lang['userewrite_o_2'] = 'Interne à DokuWiki'; $lang['deaccent_o_0'] = 'off'; $lang['deaccent_o_1'] = 'supprimer les accents'; $lang['deaccent_o_2'] = 'convertir en roman'; @@ -165,8 +170,8 @@ $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; $lang['rss_content_o_abstract'] = 'Résumé'; -$lang['rss_content_o_diff'] = 'Diff Unifié'; -$lang['rss_content_o_htmldiff'] = 'Diff formaté en table HTML'; +$lang['rss_content_o_diff'] = 'Diff. unifié'; +$lang['rss_content_o_htmldiff'] = 'Diff. formaté en table HTML'; $lang['rss_content_o_html'] = 'page complète au format HTML'; $lang['rss_linkto_o_diff'] = 'liste des différences'; $lang['rss_linkto_o_page'] = 'page révisée'; @@ -179,11 +184,12 @@ $lang['xsendfile_o_0'] = 'ne pas utiliser'; $lang['xsendfile_o_1'] = 'Entête propriétaire lighttpd (avant la version 1.5)'; $lang['xsendfile_o_2'] = 'Entête standard X-Sendfile'; $lang['xsendfile_o_3'] = 'En-tête propriétaire Nginx X-Accel-Redirect'; -$lang['showuseras_o_loginname'] = 'Nom d\'utilisateur'; +$lang['showuseras_o_loginname'] = 'Identifiant de l\'utilisateur'; $lang['showuseras_o_username'] = 'Nom de l\'utilisateur'; -$lang['showuseras_o_email'] = 'Le courriel de l\'utilisateur (obfusqué suivant les paramètres de brouillage sélectionnés)'; +$lang['showuseras_o_email'] = 'Courriel de l\'utilisateur (brouillé suivant les paramètres de brouillage sélectionnés)'; $lang['showuseras_o_email_link'] = 'Courriel de l\'utilisateur en tant que lien mailto:'; $lang['useheading_o_0'] = 'Jamais'; $lang['useheading_o_navigation'] = 'Navigation seulement'; $lang['useheading_o_content'] = 'Contenu du wiki seulement'; $lang['useheading_o_1'] = 'Toujours'; +$lang['readdircache'] = 'Durée de vie maximale du cache pour readdir (sec)'; diff --git a/lib/plugins/config/lang/gl/intro.txt b/lib/plugins/config/lang/gl/intro.txt index 27feedfed..cafe28e13 100644 --- a/lib/plugins/config/lang/gl/intro.txt +++ b/lib/plugins/config/lang/gl/intro.txt @@ -1,7 +1,7 @@ -====== Xestor de configuración ====== +====== Xestor de Configuración ====== -Use esta páxina para controlar a configuración da súa instalación do Dokuwiki. Para encontrar axuda sobre cada unha das opcións da configuración vaia a [[doku>config]]. Para obter máis información sobre este plugin vexa o documento [[doku>plugin:config]]. +Usa esta páxina para controlares a configuración da túa instalación do Dokuwiki. Para atopares axuda verbo de cada opción da configuración vai a [[doku>config]]. Para obteres pormenores desta extensión bota un ollo a [[doku>plugin:config]]. -As opcións que se mostran cun fondo de cor vermello claro, están protexidas e non poden ser alteradas con este plugin. As opcións que se mostran cun fondo de cor azul, son valores predeterminados. As opcións que teñen un fondo branco foron configuradas de modo local para esta instalación en concreto. Ambas as dúas, as opcións azuis e brancas, poden ser alteradas. +As opcións que amosan un fondo de cor vermella clara están protexidas e non poden ser alteradas con esta extensión. As opcións que amosan un fondo de cor azul son valores predeterminados e as opcións que teñen fondo branco foron configuradas de xeito local para esta instalación en concreto. Ámbalas dúas, as opcións azuis e brancas, poden ser alteradas. -Lembre premer no botón **GARDAR** antes de saír desta páxina ou, en caso contrario, as súas modificacións perderanse. +Lembra premer no boton **GARDAR** denantes de saíres desta páxina ou, en caso contrario, os teus trocos perderanse. diff --git a/lib/plugins/config/lang/gl/lang.php b/lib/plugins/config/lang/gl/lang.php index efc5a6280..ac91098cb 100644 --- a/lib/plugins/config/lang/gl/lang.php +++ b/lib/plugins/config/lang/gl/lang.php @@ -2,40 +2,38 @@ /** * Galicianlanguage file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['menu'] = 'Opcións de configuración'; -$lang['error'] = 'A configuración non foi actualizada debido a un valor non válido; verifique as modificacións feitas e envíeas de novo. -<br />Os valores incorrectos móstranse cun bordo de cor vermella.'; -$lang['updated'] = 'A configuración foi actualizada correctamente.'; -$lang['nochoice'] = '(non hai outras opcións dispoñíbeis)'; -$lang['locked'] = 'Non se puido actualizar o ficheiro de configuración; se isto non debería ser así, <br /> -asegúrese de que o nome do ficheiro de configuración local e os permisos son correctos.'; -$lang['danger'] = 'Perigo: Se modifica esta opción podería facer que tanto o seu Wiki como o menú de configuración fiquen inaccesíbeis.'; -$lang['warning'] = 'Aviso: Se modifica esta opción podería causar un comportamento inesperado.'; -$lang['security'] = 'Aviso de seguranza: Cambiar esta opción podería supoñer un perigo de seguranza.'; -$lang['_configuration_manager'] = 'Xestor de configuración'; +$lang['menu'] = 'Opcións de Configuración'; +$lang['error'] = 'Configuración non actualizada debido a un valor inválido, por favor revisa os teus trocos e volta envialos de novo. +<br />O(s) valor(es) incorrecto(s) amosanse cinguidos por un borde vermello.'; +$lang['updated'] = 'Configuración actualizada correctamente.'; +$lang['nochoice'] = '(non hai outras escollas dispoñibles)'; +$lang['locked'] = 'Non se puido actualizar o arquivo de configuración, se non ocorre como debería ser, <br /> +asegúrate de que o nome do arquivo de configuración local e os permisos son correctos.'; +$lang['danger'] = 'Perigo: mudando esta opción podes facer inaccesíbeis o teu wiki e máis o menú de configuración.'; +$lang['warning'] = 'Ollo: mudando esta opción poden aparecer comportamentos do aplicativo non agardados.'; +$lang['security'] = 'Aviso de seguranza: mudando esta opción poden aparecer riscos de seguranza.'; +$lang['_configuration_manager'] = 'Xestor de Configuración'; $lang['_header_dokuwiki'] = 'Configuración do DokuWiki'; -$lang['_header_plugin'] = 'Configuración de plugins'; -$lang['_header_template'] = 'Configuración do modelo'; -$lang['_header_undefined'] = 'Configuración indefinida'; -$lang['_basic'] = 'Configuración básica'; -$lang['_display'] = 'Configuración da visualización'; -$lang['_authentication'] = 'Configuración da autenticación'; -$lang['_anti_spam'] = 'Configuración do Anti-Spam'; -$lang['_editing'] = 'Configuración da edición'; -$lang['_links'] = 'Configuración das ligazóns'; -$lang['_media'] = 'Configuración dos ficheiros multimedia'; -$lang['_advanced'] = 'Configuración avanzada'; -$lang['_network'] = 'Configuración de rede'; -$lang['_plugin_sufix'] = 'Configuración de plugins'; -$lang['_template_sufix'] = 'Configuración do modelo'; -$lang['_msg_setting_undefined'] = 'Non hai configuracións de metadatos.'; -$lang['_msg_setting_no_class'] = 'Non hai configuracións de clase.'; -$lang['_msg_setting_no_default'] = 'Non hai un valor predeterminado.'; -$lang['fmode'] = 'Modo de creación de ficheiros'; +$lang['_header_plugin'] = 'Configuración de Extensións'; +$lang['_header_template'] = 'Configuración de Sobreplanta'; +$lang['_header_undefined'] = 'Configuración Indefinida'; +$lang['_basic'] = 'Configuración Básica'; +$lang['_display'] = 'Configuración de Visualización'; +$lang['_authentication'] = 'Configuración de Autenticación'; +$lang['_anti_spam'] = 'Configuración de Anti-Correo-lixo'; +$lang['_editing'] = 'Configuración de Edición'; +$lang['_links'] = 'Configuración de Ligazóns'; +$lang['_media'] = 'Configuración de Media'; +$lang['_advanced'] = 'Configuración Avanzada'; +$lang['_network'] = 'Configuración de Rede'; +$lang['_plugin_sufix'] = 'Configuración de Extensións'; +$lang['_template_sufix'] = 'Configuración de Sobreplanta'; +$lang['_msg_setting_undefined'] = 'Non hai configuración de metadatos.'; +$lang['_msg_setting_no_class'] = 'Non hai configuración de clase.'; +$lang['_msg_setting_no_default'] = 'Non hai valor predeterminado.'; +$lang['fmode'] = 'Modo de creación de arquivos'; $lang['dmode'] = 'Modo de creación de directorios'; $lang['lang'] = 'Idioma'; $lang['basedir'] = 'Directorio base'; @@ -43,104 +41,104 @@ $lang['baseurl'] = 'URL base'; $lang['savedir'] = 'Directorio no que se gardarán os datos'; $lang['start'] = 'Nome da páxina inicial'; $lang['title'] = 'Título do Wiki'; -$lang['template'] = 'Modelo'; -$lang['license'] = 'Baixo que licenza será liberado os seus contidos?'; -$lang['fullpath'] = 'Mostrar o camiño completo das páxinas no pé das mesmas'; -$lang['recent'] = 'Cambios recentes'; +$lang['template'] = 'Sobreplanta'; +$lang['license'] = 'Baixo de que licenza será ceibado o teu contido?'; +$lang['fullpath'] = 'Amosar a ruta completa das páxinas no pé das mesmas'; +$lang['recent'] = 'Trocos recentes'; $lang['breadcrumbs'] = 'Número de niveis da estrutura de navegación'; $lang['youarehere'] = 'Niveis xerárquicos da estrutura de navegación'; $lang['typography'] = 'Facer substitucións tipográficas'; $lang['htmlok'] = 'Permitir a inserción de HTML'; $lang['phpok'] = 'Permitir a inserción de PHP'; -$lang['dformat'] = 'Formato de data (vexa a función <a href="http://www.php.net/strftime">strftime</a> do PHP)'; +$lang['dformat'] = 'Formato de Data (bótalle un ollo á función <a href="http://www.php.net/strftime">strftime</a> do PHP)'; $lang['signature'] = 'Sinatura'; $lang['toptoclevel'] = 'Nivel superior para a táboa de contidos'; -$lang['tocminheads'] = 'Cantidade mínima de liñas de cabeceira que determinará se se xerará a TDC'; +$lang['tocminheads'] = 'Cantidade mínima de liñas de cabeceira que determinará se a TDC vai ser xerada'; $lang['maxtoclevel'] = 'Nivel máximo para a táboa de contidos'; $lang['maxseclevel'] = 'Nivel máximo de edición da sección'; $lang['camelcase'] = 'Utilizar CamelCase para as ligazóns'; -$lang['deaccent'] = 'Limpar os nomes de páxina'; +$lang['deaccent'] = 'Limpar nomes de páxina'; $lang['useheading'] = 'Utilizar a primeira cabeceira para os nomes de páxina'; -$lang['refcheck'] = 'Comprobar a referencia de multimedia'; -$lang['refshow'] = 'Número de referencias multimedia para mostrar'; -$lang['allowdebug'] = 'Permitir a depuración <b>desactíveo se non o precisa!</b>'; -$lang['usewordblock'] = 'Bloquear o spam segundo unha listaxe de palabras'; -$lang['indexdelay'] = 'Atraso antes de indexar (en seg.)'; +$lang['refcheck'] = 'Comprobar a referencia media'; +$lang['refshow'] = 'Número de referencias media a amosar'; +$lang['allowdebug'] = 'Permitir o depurado <b>desactívao se non o precisas!</b>'; +$lang['usewordblock'] = 'Bloquear correo-lixo segundo unha lista de verbas'; +$lang['indexdelay'] = 'Retardo denantes de indexar (seg)'; $lang['relnofollow'] = 'Utilizar rel="nofollow" nas ligazóns externas'; -$lang['mailguard'] = 'Escurecer os enderezos de correo'; -$lang['iexssprotect'] = 'Comprobar os ficheiros que se suban na procura dun posíbel código JavaScript ou HTML maliciosos'; -$lang['showuseras'] = 'Que se mostrará ao informar da persoa usuaria que fixo a última modificación dunha páxina?'; -$lang['useacl'] = 'Utilizar a lista de control de acceso (ACL)'; -$lang['autopasswd'] = 'Xerar os contrasinais automaticamente'; +$lang['mailguard'] = 'Ofuscar enderezos de correo-e'; +$lang['iexssprotect'] = 'Comprobar arquivos subidos na procura de posíbel código JavaScript ou HTML malicioso'; +$lang['showuseras'] = 'Que amosar cando se informe do usuario que fixo a última modificación dunha páxina'; +$lang['useacl'] = 'Utilizar lista de control de acceso'; +$lang['autopasswd'] = 'Xerar contrasinais automaticamente'; $lang['authtype'] = 'Backend de autenticación'; -$lang['passcrypt'] = 'Método de codificación do contrasinal'; -$lang['defaultgroup'] = 'Grupo predeterminado'; -$lang['superuser'] = 'Superusuaria/o - un grupo ou usuaria/o con acceso completo a todas as páxinas e funcións, independentemente da configuración da ACL'; -$lang['manager'] = 'Xestor - un grupo ou usuaria/o con acceso a certas funcións de xestión'; -$lang['profileconfirm'] = 'Confirmar as modificacións de perfil mediante un contrasinal'; +$lang['passcrypt'] = 'Método de encriptado do contrasinal'; +$lang['defaultgroup'] = 'Grupo por defecto'; +$lang['superuser'] = 'Super-usuario - un grupo ou usuario con acceso completo a todas as páxinas e funcións independentemente da configuración da ACL'; +$lang['manager'] = 'Xestor - un grupo ou usuario con acceso a certas funcións de xestión'; +$lang['profileconfirm'] = 'Confirmar trocos de perfil mediante contrasinal'; $lang['disableactions'] = 'Desactivar accións do DokuWiki'; $lang['disableactions_check'] = 'Comprobar'; $lang['disableactions_subscription'] = 'Subscribir/Desubscribir'; -$lang['disableactions_nssubscription'] = 'Subscribir/Desubscribir en nomes de espazo'; -$lang['disableactions_wikicode'] = 'Ver o código/Exportar datos raw'; -$lang['disableactions_other'] = 'Outras accións (separadas por vírgulas)'; -$lang['sneaky_index'] = 'O DokuWiki mostrará por defecto todos os nomes de espazo na vista de índice. Se activa isto serán ocultados aqueles onde o usuario non teña permisos de lectura.'; -$lang['auth_security_timeout'] = 'Tempo límite de seguranza de autenticación (en segundos)'; -$lang['securecookie'] = 'Débense enviar só mediante HTTPS as cookies configuradas para HTTPS enviadas polo navegador? Desactive esta opción só cando o inicio de sesión do seu wiki estea asegurado con SSL, mais a navegación no mesmo se faga de modo inseguro.'; -$lang['xmlrpc'] = 'Activar/Desactivar a interface XML-RPC'; -$lang['xmlrpcuser'] = 'Restrinxir o acceso mediante XML-RPC á lista separada por comas dos grupos e/ou usuarios proporcionados aquí. Deixe baleiro para darlle acceso a todo o mundo.'; -$lang['updatecheck'] = 'Débese comprobar se hai actualizacións e avisos de seguranza? O DokuWiki precisa contactar con splitbrain.org para executar esta funcionalidade.'; -$lang['userewrite'] = 'Utilizar URL amigábeis'; -$lang['useslash'] = 'Utilizar a barra oblícua (/) como separador de nome de espazo nos URL'; -$lang['usedraft'] = 'Gardar un borrador automaticamente ao editar'; -$lang['sepchar'] = 'Palabra de separación do nome de páxina'; -$lang['canonical'] = 'Utilizar URL completamente canónicos'; -$lang['autoplural'] = 'Comprobar as formas plurais nas ligazóns'; -$lang['compression'] = 'Método de compresión para os ficheiros attic'; -$lang['cachetime'] = 'Tempo máximo para a caché (en seg.)'; -$lang['locktime'] = 'Tempo máximo para o bloqueo de ficheiros (en seg.)'; -$lang['fetchsize'] = 'Tamaño máximo (en bytes) que o fetch.php pode descargar de fontes externas'; -$lang['notify'] = 'Enviar as notificacións de cambios a este enderezo de correo'; -$lang['registernotify'] = 'Enviar a información de novas persoas usuarias rexistradas a este enderezo de correo'; -$lang['mailfrom'] = 'Enderezo de correo-e para usar nas mensaxes automáticas'; -$lang['gzip_output'] = 'Utilizar o Contido-Codificación do Gzip para o XHTML'; -$lang['gdlib'] = 'Versión da biblioteca GD'; -$lang['im_convert'] = 'Camiño para a ferramenta de conversión ImageMagick'; +$lang['disableactions_wikicode'] = 'Ver fonte/Exportar Datos Raw'; +$lang['disableactions_other'] = 'Outras accións (separadas por comas)'; +$lang['sneaky_index'] = 'O DokuWiki amosará por defecto todos os nomes de espazo na vista de índice. Se activas isto agocharanse aqueles onde o usuario non teña permisos de lectura.'; +$lang['auth_security_timeout'] = 'Tempo Límite de Seguridade de Autenticación (segundos)'; +$lang['securecookie'] = 'Deben enviarse só vía HTTPS polo navegador as cookies configuradas vía HTTPS? Desactiva esta opción cando só o inicio de sesión do teu wiki estea asegurado con SSL pero a navegación do mesmo se faga de xeito inseguro.'; +$lang['xmlrpc'] = 'Activar/Desactivar interface XML-RPC'; +$lang['xmlrpcuser'] = 'Restrinxir o acceso mediante XML-RPC á lista separada por comas dos grupos e/ou usuarios proporcionados aquí. Déixao baleiro para darlle acceso a todas as persoas.'; +$lang['updatecheck'] = 'Comprobar se hai actualizacións e avisos de seguridade? O DokuWiki precisa contactar con splitbrain.org para executar esta característica.'; +$lang['userewrite'] = 'Utilizar URLs amigábeis'; +$lang['useslash'] = 'Utilizar a barra inclinada (/) como separador de nome de espazo nos URLs'; +$lang['usedraft'] = 'Gardar un borrador automaticamente no tempo da edición'; +$lang['sepchar'] = 'Verba separadora do nome de páxina'; +$lang['canonical'] = 'Utilizar URLs completamente canónicos'; +$lang['autoplural'] = 'Comprobar formas plurais nas ligazóns'; +$lang['compression'] = 'Método de compresión para arquivos attic'; +$lang['cachetime'] = 'Tempo máximo para a caché (seg.)'; +$lang['locktime'] = 'Tempo máximo para o bloqueo de arquivos (seg.)'; +$lang['fetchsize'] = 'Tamaño máximo (en bytes) que pode descargar fetch.php dende fontes externas'; +$lang['notify'] = 'Enviar notificacións de trocos a este enderezo de correo-e'; +$lang['registernotify'] = 'Enviar información de novos usuarios rexistrados a este enderezo de correo-e'; +$lang['mailfrom'] = 'Enderezo de correo-e a usar para as mensaxes automáticas'; +$lang['gzip_output'] = 'Utilizar Contido-Codificación gzip para o xhtml'; +$lang['gdlib'] = 'Versión da Libraría GD'; +$lang['im_convert'] = 'Ruta deica a ferramenta de conversión ImageMagick'; $lang['jpg_quality'] = 'Calidade de compresión dos JPG (0-100)'; -$lang['subscribers'] = 'Activar a posibilidade de subscrición á páxina'; +$lang['subscribers'] = 'Activar posibilidade de subscrición á páxina'; +$lang['subscribe_time'] = 'Tempo despois do cal se enviarán os resumos e listas de subscrición (seg.): isto debe ser inferior ao tempo especificado en recent_days.'; $lang['compress'] = 'Saída compacta de CSS e Javascript'; -$lang['hidepages'] = 'Ocultar as páxinas que coincidan (expresións regulares)'; -$lang['send404'] = 'Enviar "HTTP 404/Páxina non encontrada" para as páxinas inexistentes'; -$lang['sitemap'] = 'Xerar o mapa do sitio do Google (en días)'; -$lang['broken_iua'] = 'Está danada a función ignore_user_abort no seu sistema? Isto podería causar que o índice de procura non funcione. Sábese que o IIS+PHP/CGI a dana. Vexa <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> para obter máis información.'; -$lang['xsendfile'] = 'Débese empregar a cabeceira X-Sendfile para que o servidor web envíe ficheiros estáticos? O seu servidor web debe soportar isto.'; -$lang['renderer_xhtml'] = 'Intérprete para empregar na saída principal (XHTML) do Wiki'; +$lang['hidepages'] = 'Agochar páxinas que coincidan (expresións regulares)'; +$lang['send404'] = 'Enviar "HTTP 404/Páxina non atopada" para as páxinas inexistentes'; +$lang['sitemap'] = 'Xerar mapa do sitio co Google (días)'; +$lang['broken_iua'] = 'Rachou a función ignore_user_abort no teu sistema? Isto podería causar que o índice de procura non funcione. Coñécese que o IIS+PHP/CGI ráchaa. Bótalle un ollo ao <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> para obter máis información.'; +$lang['xsendfile'] = 'Empregar a cabeceira X-Sendfile para que o servidor web envie arquivos estáticos? O teu servidor web precisa soportar isto.'; +$lang['renderer_xhtml'] = 'Intérprete a empregar para a saída principal (XHTML) do Wiki'; $lang['renderer__core'] = '%s (núcleo do Dokuwiki)'; -$lang['renderer__plugin'] = '%s (plugin)'; -$lang['rememberme'] = 'Permitir as cookies permanentes de inicio de sesión (lembrar)'; -$lang['rss_type'] = 'Tipo de fío RSS XML'; -$lang['rss_linkto'] = 'O fío XML vincúlase a'; -$lang['rss_content'] = 'Que quere mostrar nos elementos do fío XML?'; -$lang['rss_update'] = 'Intervalo de actualización do fío XML (en seg.)'; -$lang['recent_days'] = 'Número de modificacións recentes para manter (en días)'; -$lang['rss_show_summary'] = 'Mostrar o sumario no título do fío XML'; -$lang['target____wiki'] = 'Xanela de destino para as ligazóns internas'; -$lang['target____interwiki'] = 'Xanela de destino para as ligazóns interwiki'; -$lang['target____extern'] = 'Xanela de destino para as ligazóns externas'; -$lang['target____media'] = 'Xanela de destino para as ligazóns multimedia'; -$lang['target____windows'] = 'Xanela de destino para as ligazóns de xanelas'; -$lang['proxy____host'] = 'Nome do servidor proxy'; -$lang['proxy____port'] = 'Porto do proxy'; -$lang['proxy____user'] = 'Nome de usuaria/o do proxy'; -$lang['proxy____pass'] = 'Contrasinal do proxy'; -$lang['proxy____ssl'] = 'Utilizar SSL para conectar co proxy'; -$lang['safemodehack'] = 'Activar o hack de modo seguro (safemode)'; +$lang['renderer__plugin'] = '%s (extensión)'; +$lang['rememberme'] = 'Permitir cookies permanentes de inicio de sesión (lembrarme)'; +$lang['rss_type'] = 'Tipo de corrente RSS XML'; +$lang['rss_linkto'] = 'A corrente XML liga para'; +$lang['rss_content'] = 'Que queres amosar nos elementos da corrente XML?'; +$lang['rss_update'] = 'Intervalo de actualización da corrente XML (seg.)'; +$lang['recent_days'] = 'Número de trocos recentes a manter (días)'; +$lang['rss_show_summary'] = 'Amosar sumario no título da corrente XML'; +$lang['target____wiki'] = 'Fiestra de destino para as ligazóns internas'; +$lang['target____interwiki'] = 'Fiestra de destino para as ligazóns interwiki'; +$lang['target____extern'] = 'Fiestra de destino para as ligazóns externas'; +$lang['target____media'] = 'Fiestra de destino para as ligazóns de media'; +$lang['target____windows'] = 'Fiestra de destino para as ligazóns de fiestras'; +$lang['proxy____host'] = 'Nome do servidor Proxy'; +$lang['proxy____port'] = 'Porto do Proxy'; +$lang['proxy____user'] = 'Nome de usuario do Proxy'; +$lang['proxy____pass'] = 'Contrasinal do Proxy'; +$lang['proxy____ssl'] = 'Utilizar ssl para conectar ao Proxy'; +$lang['safemodehack'] = 'Activar hack de modo seguro (safemode)'; $lang['ftp____host'] = 'Servidor FTP para o hack de modo seguro (safemode)'; $lang['ftp____port'] = 'Porto FTP para o hack de modo seguro(safemode)'; -$lang['ftp____user'] = 'Nome de usuaria/o FTP para o hack de modo seguro(safemode)'; +$lang['ftp____user'] = 'Nome de usuario FTP para o hack de modo seguro(safemode)'; $lang['ftp____pass'] = 'Contrasinal FTP para o hack de modo seguro(safemode)'; -$lang['ftp____root'] = 'Directorio raíz do FTP para o hack de modo seguro(safemode)'; -$lang['license_o_'] = 'Non se seleccionou nada'; +$lang['ftp____root'] = 'Directorio raigaña do FTP para o hack de modo seguro(safemode)'; +$lang['license_o_'] = 'Non se escolleu nada'; $lang['typography_o_0'] = 'ningunha'; $lang['typography_o_1'] = 'Só dobres aspas'; $lang['typography_o_2'] = 'Todas as aspas (pode que non funcione sempre)'; @@ -148,9 +146,9 @@ $lang['userewrite_o_0'] = 'ningún'; $lang['userewrite_o_1'] = '.htaccess'; $lang['userewrite_o_2'] = 'Interno do DokuWiki'; $lang['deaccent_o_0'] = 'desconectado'; -$lang['deaccent_o_1'] = 'Eliminar os acentos'; +$lang['deaccent_o_1'] = 'Eliminar acentos'; $lang['deaccent_o_2'] = 'romanizar'; -$lang['gdlib_o_0'] = 'A biblioteca GD non está dispoñíbel'; +$lang['gdlib_o_0'] = 'Libraría GD non dispoñíbel'; $lang['gdlib_o_1'] = 'Versión 1.x'; $lang['gdlib_o_2'] = 'Detección automática'; $lang['rss_type_o_rss'] = 'RSS 0.91'; @@ -158,26 +156,26 @@ $lang['rss_type_o_rss1'] = 'RSS 1.0'; $lang['rss_type_o_rss2'] = 'RSS 2.0'; $lang['rss_type_o_atom'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; -$lang['rss_content_o_abstract'] = 'Resumo'; +$lang['rss_content_o_abstract'] = 'Sumario'; $lang['rss_content_o_diff'] = 'Formato Unified Diff'; $lang['rss_content_o_htmldiff'] = 'Táboa diff formatada en HTML'; $lang['rss_content_o_html'] = 'Contido HTML completo da páxina'; -$lang['rss_linkto_o_diff'] = 'visualización de diferenzas'; +$lang['rss_linkto_o_diff'] = 'vista de diferenzas'; $lang['rss_linkto_o_page'] = 'a páxina revisada'; $lang['rss_linkto_o_rev'] = 'listaxe de revisións'; $lang['rss_linkto_o_current'] = 'a páxina actual'; $lang['compression_o_0'] = 'ningunha'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; -$lang['xsendfile_o_0'] = 'non usar'; -$lang['xsendfile_o_1'] = 'Cabeceira lighttpd propietaria (anterior á versión 1.5)'; +$lang['xsendfile_o_0'] = 'non o empregues'; +$lang['xsendfile_o_1'] = 'Cabeceira lighttpd propietaria (denantes da versión 1.5)'; $lang['xsendfile_o_2'] = 'Cabeceira X-Sendfile estándar'; $lang['xsendfile_o_3'] = 'Cabeceira X-Accel-Redirect propia de Nginx'; $lang['showuseras_o_loginname'] = 'Nome de inicio de sesión'; -$lang['showuseras_o_username'] = 'Nome completo da persoa usuaria'; -$lang['showuseras_o_email'] = 'Enderezo de correo da persoa usuaria (escurecido conforme a configuración mailguard)'; -$lang['showuseras_o_email_link'] = 'Enderezo de correo da persoa usuaria como unha ligazón mailto:'; -$lang['useheading_o_0'] = 'Nunca'; -$lang['useheading_o_navigation'] = 'Só a navegación'; -$lang['useheading_o_content'] = 'Só o contido do Wiki'; +$lang['showuseras_o_username'] = 'Nome completo do usuario'; +$lang['showuseras_o_email'] = 'Enderezo de correo-e do usuario (ofuscado segundo a configuración mailguard)'; +$lang['showuseras_o_email_link'] = 'Enderezo de correo-e do usuario como ligazón mailto:'; +$lang['useheading_o_0'] = 'Endexamais'; +$lang['useheading_o_navigation'] = 'Só Navegación'; +$lang['useheading_o_content'] = 'Só Contido do Wiki'; $lang['useheading_o_1'] = 'Sempre'; diff --git a/lib/plugins/config/lang/he/lang.php b/lib/plugins/config/lang/he/lang.php index 8e5bf2fd1..a39d0ab5c 100644 --- a/lib/plugins/config/lang/he/lang.php +++ b/lib/plugins/config/lang/he/lang.php @@ -6,6 +6,7 @@ * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['menu'] = 'הגדרות תצורה'; $lang['error'] = 'ההגדרות לא עודכנו בגלל ערך לא תקף, נא לעיין בשינויים ולשלוח שנית. @@ -76,7 +77,6 @@ $lang['profileconfirm'] = 'אשר שינוי פרופילים עם סיס $lang['disableactions'] = 'בטל פעולות DokuWiki'; $lang['disableactions_check'] = 'בדיקה'; $lang['disableactions_subscription'] = 'הרשמה/הסרה מרשימה'; -$lang['disableactions_nssubscription'] = 'הרשמה / הסרת הרשמה ממרחב שם'; $lang['disableactions_wikicode'] = 'הצגת המקור/יצוא גולמי'; $lang['disableactions_other'] = 'פעולות אחרות (מופרדות בפסיק)'; $lang['sneaky_index'] = 'כברירת מחדל, דוקוויקי יציג את כל מרחבי השמות בתצוגת תוכן הענינים. בחירה באפשרות זאת תסתיר את אלו שבהם למשתמש אין הרשאות קריאה. התוצאה עלולה להיות הסתרת תת מרחבי שמות אליהם יש למשתמש גישה. באופן זה תוכן הענינים עלול להפוך לחסר תועלת עם הגדרות ACL מסוימות'; @@ -164,3 +164,5 @@ $lang['xsendfile_o_0'] = 'אל תשתמש'; $lang['xsendfile_o_1'] = 'כותר lighttpd קנייני (לפני גרסה 1.5)'; $lang['xsendfile_o_2'] = 'כותר X-Sendfile רגיל'; $lang['xsendfile_o_3'] = 'כותר Nginx X-Accel-Redirect קנייני'; +$lang['useheading_o_navigation'] = 'ניווט בלבד'; +$lang['useheading_o_1'] = 'תמיד'; diff --git a/lib/plugins/config/lang/hu/lang.php b/lib/plugins/config/lang/hu/lang.php index 0207922d2..47c1e67c7 100644 --- a/lib/plugins/config/lang/hu/lang.php +++ b/lib/plugins/config/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['menu'] = 'Beállító Központ'; $lang['error'] = 'Helytelen érték miatt a módosítások nem mentődtek. Nézd át a módosításokat, és ments újra. @@ -81,7 +83,6 @@ $lang['profileconfirm'] = 'Beállítások változtatásának megerősít $lang['disableactions'] = 'Bizonyos DokuWiki tevékenységek (action) tiltása'; $lang['disableactions_check'] = 'Ellenőrzés'; $lang['disableactions_subscription'] = 'Feliratkozás/Leiratkozás'; -$lang['disableactions_nssubscription'] = 'Névtér feliratkozás/Leiratkozás'; $lang['disableactions_wikicode'] = 'Forrás megtekintése/Nyers adat exportja'; $lang['disableactions_other'] = 'Egyéb tevékenységek (vesszővel elválasztva)'; $lang['sneaky_index'] = 'Alapértelmezetten minden névtér látszik a DokuWiki áttekintő (index) oldalán. Ezen opció bekapcsolása után azok nem jelennek meg, melyekhez a felhasználónak nincs olvasás joga. De ezzel eltakarhatunk egyébként elérhető al-névtereket is, így bizonyos ACL beállításoknál használhatatlan indexet eredményez ez a beállítás.'; @@ -95,6 +96,7 @@ $lang['useslash'] = 'Per-jel használata névtér-elválasztóként $lang['usedraft'] = 'Piszkozat automatikus mentése szerkesztés alatt'; $lang['sepchar'] = 'Szó elválasztó az oldalnevekben'; $lang['canonical'] = 'Teljesen kanonikus URL-ek használata'; +$lang['fnencode'] = 'A nem ASCII fájlnevek dekódolási módja'; $lang['autoplural'] = 'Többes szám ellenőrzés a hivatkozásokban (angol)'; $lang['compression'] = 'Tömörítés használata a törölt lapokhoz'; $lang['cachetime'] = 'A gyorsítótár maximális élettartama (másodperc)'; @@ -108,6 +110,7 @@ $lang['gdlib'] = 'GD Lib verzió'; $lang['im_convert'] = 'Útvonal az ImageMagick csomag convert parancsához'; $lang['jpg_quality'] = 'JPG tömörítés minősége (0-100)'; $lang['subscribers'] = 'Oldalváltozás-listára feliratkozás engedélyezése'; +$lang['subscribe_time'] = 'Az értesítések kiküldésének késleltetése (másodperc); Érdemes kisebbet választani, mint a változások megőrzésének maximális ideje.'; $lang['compress'] = 'CSS és JavaScript fájlok tömörítése'; $lang['hidepages'] = 'Az itt megadott oldalak elrejtése (reguláris kifejezés)'; $lang['send404'] = '"HTTP 404/Page Not Found" küldése nemlétező oldalak esetén'; @@ -134,6 +137,7 @@ $lang['proxy____port'] = 'Proxy port'; $lang['proxy____user'] = 'Proxy felhasználó név'; $lang['proxy____pass'] = 'Proxy jelszó'; $lang['proxy____ssl'] = 'SSL használata a proxyhoz csatlakozáskor'; +$lang['proxy____except'] = 'URL szabály azokra a webcímekre, amit szeretnél, hogy ne kezeljen a proxy.'; $lang['safemodehack'] = 'A PHP safemode beállítás megkerülésének engedélyezése'; $lang['ftp____host'] = 'FTP szerver a safemode megkerüléshez'; $lang['ftp____port'] = 'FTP port a safemode megkerüléshez'; @@ -181,3 +185,4 @@ $lang['useheading_o_0'] = 'Soha'; $lang['useheading_o_navigation'] = 'Csak navigációhoz'; $lang['useheading_o_content'] = 'Csak Wiki tartalomhoz'; $lang['useheading_o_1'] = 'Mindig'; +$lang['readdircache'] = 'A könyvtár olvasás gyorsítótárának maximális tárolási ideje (másodperc)'; diff --git a/lib/plugins/config/lang/ia/intro.txt b/lib/plugins/config/lang/ia/intro.txt new file mode 100644 index 000000000..37b970c4f --- /dev/null +++ b/lib/plugins/config/lang/ia/intro.txt @@ -0,0 +1,7 @@ +====== Gestion de configurationes ====== + +Usa iste pagina pro controlar le configurationes de tu installation de DokuWiki. Pro adjuta re configurationes individual, refere te a [[doku>config]]. + +Le configurationes monstrate super un fundo rubie clar es protegite e non pote esser alterate con iste plug-in. Le configurationes monstrate super un fundo blau es le valores predefinite e le configurationes monstrate super un fundo blanc ha essite definite localmente pro iste particular installation. Le configurationes blau e blanc pote esser alterate. + +Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite.
\ No newline at end of file diff --git a/lib/plugins/config/lang/ia/lang.php b/lib/plugins/config/lang/ia/lang.php new file mode 100644 index 000000000..624b79485 --- /dev/null +++ b/lib/plugins/config/lang/ia/lang.php @@ -0,0 +1,180 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['menu'] = 'Configurationes'; +$lang['error'] = 'Le configurationes non poteva esser actualisate a causa de un valor invalide; per favor revide tu cambiamentos e resubmitte los.<br />Le valor(es) incorrecte essera monstrate circumferite per un bordo rubie.'; +$lang['updated'] = 'Actualisation del configurationes succedite.'; +$lang['nochoice'] = '(nulle altere option disponibile)'; +$lang['locked'] = 'Le file de configuration non pote esser actualisate; si isto non es intentional, <br /> assecura te que le nomine e permissiones del file local de configuration es correcte.'; +$lang['danger'] = 'Periculo: Cambiar iste option pote render tu wiki e le menu de configuration inaccessibile!'; +$lang['warning'] = 'Attention: Cambiar iste option pote causar functionamento indesirate.'; +$lang['security'] = 'Advertimento de securitate: Cambiar iste option pote causar un risco de securitate.'; +$lang['_configuration_manager'] = 'Gestion de configurationes'; +$lang['_header_dokuwiki'] = 'Configurationes de DokuWiki'; +$lang['_header_plugin'] = 'Configurationes de plug-ins'; +$lang['_header_template'] = 'Configurationes de patronos'; +$lang['_header_undefined'] = 'Configurationes non definite'; +$lang['_basic'] = 'Configurationes de base'; +$lang['_display'] = 'Configurationes de visualisation'; +$lang['_authentication'] = 'Configurationes de authentication'; +$lang['_anti_spam'] = 'Configurationes anti-spam'; +$lang['_editing'] = 'Configurationes de modification'; +$lang['_links'] = 'Configurationes de ligamines'; +$lang['_media'] = 'Configurationes de multimedia'; +$lang['_advanced'] = 'Configurationes avantiate'; +$lang['_network'] = 'Configurationes de rete'; +$lang['_plugin_sufix'] = 'Configurationes de plug-ins'; +$lang['_template_sufix'] = 'Configurationes de patronos'; +$lang['_msg_setting_undefined'] = 'Nulle metadatos de configuration.'; +$lang['_msg_setting_no_class'] = 'Nulle classe de configuration.'; +$lang['_msg_setting_no_default'] = 'Nulle valor predefinite.'; +$lang['fmode'] = 'Permissiones al creation de files'; +$lang['dmode'] = 'Permissiones al creation de directorios'; +$lang['lang'] = 'Lingua del interfacie'; +$lang['basedir'] = 'Cammino al servitor (p.ex.. <code>/dokuwiki/</code>). Lassa vacue pro autodetection.'; +$lang['baseurl'] = 'URL del servitor (p.ex. <code>http://www.yourserver.com</code>). Lassa vacue pro autodetection.'; +$lang['savedir'] = 'Directorio pro salveguardar datos'; +$lang['start'] = 'Nomine del pagina initial'; +$lang['title'] = 'Titulo del wiki'; +$lang['template'] = 'Patrono'; +$lang['license'] = 'Sub qual licentia debe tu contento esser publicate?'; +$lang['fullpath'] = 'Revelar le cammino complete del paginas in le pede'; +$lang['recent'] = 'Modificationes recente'; +$lang['breadcrumbs'] = 'Numero de micas de pan'; +$lang['youarehere'] = 'Micas de pan hierarchic'; +$lang['typography'] = 'Face substitutiones typographic'; +$lang['htmlok'] = 'Permitter incorporation de HTML'; +$lang['phpok'] = 'Permitter incorporation de PHP'; +$lang['dformat'] = 'Formato del datas (vide le function <a href="http://www.php.net/strftime">strftime</a> de PHP)'; +$lang['signature'] = 'Signatura'; +$lang['toptoclevel'] = 'Nivello principal pro tabula de contento'; +$lang['tocminheads'] = 'Numero minimal de titulos requirite pro inserer tabula de contento'; +$lang['maxtoclevel'] = 'Nivello maximal pro tabula de contento'; +$lang['maxseclevel'] = 'Nivello maximal pro modification de sectiones'; +$lang['camelcase'] = 'Usar CamelCase pro ligamines'; +$lang['deaccent'] = 'Nomines nette de paginas'; +$lang['useheading'] = 'Usar le prime titulo como nomine de pagina'; +$lang['refcheck'] = 'Verification de referentias multimedia'; +$lang['refshow'] = 'Numero de referentias multimedia a monstrar'; +$lang['allowdebug'] = 'Permitter debugging <b>disactiva si non necessari!</b>'; +$lang['usewordblock'] = 'Blocar spam a base de lista de parolas'; +$lang['indexdelay'] = 'Retardo ante generation de indice (secundas)'; +$lang['relnofollow'] = 'Usar rel="nofollow" pro ligamines externe'; +$lang['mailguard'] = 'Offuscar adresses de e-mail'; +$lang['iexssprotect'] = 'Verificar files incargate pro codice HTML o JavaScript possibilemente malitiose'; +$lang['showuseras'] = 'Como monstrar le usator que faceva le ultime modification de un pagina'; +$lang['useacl'] = 'Usar listas de controlo de accesso'; +$lang['autopasswd'] = 'Automaticamente generar contrasignos'; +$lang['authtype'] = 'Servicio de authentication'; +$lang['passcrypt'] = 'Methodo de cryptographia de contrasignos'; +$lang['defaultgroup'] = 'Gruppo predefinite'; +$lang['superuser'] = 'Superusator: le gruppo, usator o lista separate per commas ("usator1,@gruppo1,usator2") con accesso integral a tote le paginas e functiones sin reguardo del ACL'; +$lang['manager'] = 'Administrator: le gruppo, usator o lista separate per commas ("usator1,@gruppo1,usator2") con accesso a certe functiones administrative'; +$lang['profileconfirm'] = 'Confirmar modificationes del profilo con contrasigno'; +$lang['disableactions'] = 'Disactivar actiones DokuWiki'; +$lang['disableactions_check'] = 'Verificar'; +$lang['disableactions_subscription'] = 'Subscriber/Cancellar subscription'; +$lang['disableactions_wikicode'] = 'Vider codice-fonte/Exportar texto crude'; +$lang['disableactions_other'] = 'Altere actiones (separate per commas)'; +$lang['sneaky_index'] = 'Normalmente, DokuWiki monstra tote le spatios de nomines in le vista del indice. Si iste option es active, illos ubi le usator non ha le permission de lectura essera celate. Isto pote resultar in le celamento de subspatios de nomines accessibile. Isto pote render le indice inusabile con certe configurationes de ACL.'; +$lang['auth_security_timeout'] = 'Expiration pro securitate de authentication (secundas)'; +$lang['securecookie'] = 'Debe le cookies definite via HTTPS solmente esser inviate via HTTPS per le navigator? Disactiva iste option si solmente le apertura de sessiones a tu wiki es protegite con SSL ma le navigation del wiki es facite sin securitate.'; +$lang['xmlrpc'] = 'Activar/disactivar interfacie XML-RPC.'; +$lang['xmlrpcuser'] = 'Limitar le accesso a XML-RPC al gruppos o usatores date hic, separate per commas. Lassa isto vacue pro dar accesso a omnes.'; +$lang['updatecheck'] = 'Verificar si existe actualisationes e advertimentos de securitate? DokuWiki debe contactar splitbrain.org pro exequer iste function.'; +$lang['userewrite'] = 'Usar URLs nette'; +$lang['useslash'] = 'Usar le barra oblique ("/") como separator de spatios de nomines in URLs'; +$lang['usedraft'] = 'Automaticamente salveguardar un version provisori durante le modification'; +$lang['sepchar'] = 'Separator de parolas in nomines de paginas'; +$lang['canonical'] = 'Usar URLs completemente canonic'; +$lang['autoplural'] = 'Verificar si il ha formas plural in ligamines'; +$lang['compression'] = 'Methodo de compression pro files a mansarda'; +$lang['cachetime'] = 'Etate maximal pro le cache (secundas)'; +$lang['locktime'] = 'Etate maximal pro le files de serratura (secundas)'; +$lang['fetchsize'] = 'Numero maximal de bytes per file que fetch.php pote discargar de sitos externe'; +$lang['notify'] = 'Inviar notificationes de cambios a iste adresse de e-mail'; +$lang['registernotify'] = 'Inviar informationes super usatores novemente registrate a iste adresse de e-mail'; +$lang['mailfrom'] = 'Adresse de e-mail a usar pro messages automatic'; +$lang['gzip_output'] = 'Usar Content-Encoding gzip pro xhtml'; +$lang['gdlib'] = 'Version de GD Lib'; +$lang['im_convert'] = 'Cammino al programma "convert" de ImageMagick'; +$lang['jpg_quality'] = 'Qualitate del compression JPEG (0-100)'; +$lang['subscribers'] = 'Activar le possibilitate de subscriber se al paginas'; +$lang['subscribe_time'] = 'Tempore post le qual le listas de subscription e le digestos es inviate (in secundas); isto debe esser minor que le tempore specificate in recent_days.'; +$lang['compress'] = 'Compactar le output CSS e JavaScript'; +$lang['hidepages'] = 'Celar paginas correspondente (expressiones regular)'; +$lang['send404'] = 'Inviar "HTTP 404/Pagina non trovate" pro paginas non existente'; +$lang['sitemap'] = 'Generar mappa de sito Google (dies)'; +$lang['broken_iua'] = 'Es le function ignore_user_abort defectuose in tu systema? Isto pote resultar in un indice de recerca que non functiona. Vide <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> pro plus info.'; +$lang['xsendfile'] = 'Usar le capite X-Sendfile pro lassar le servitor web livrar files static? Tu navigator del web debe supportar isto.'; +$lang['renderer_xhtml'] = 'Renditor a usar pro le output wiki principal (xhtml)'; +$lang['renderer__core'] = '%s (nucleo dokuwiki)'; +$lang['renderer__plugin'] = '%s (plug-in)'; +$lang['rememberme'] = 'Permitter cookies de session permanente (memorar me)'; +$lang['rss_type'] = 'Typo de syndication XML'; +$lang['rss_linkto'] = 'Syndication XML liga verso'; +$lang['rss_content'] = 'Que monstrar in le entratas de syndication XML?'; +$lang['rss_update'] = 'Intervallo de actualisation pro syndicationes XML (secundas)'; +$lang['recent_days'] = 'Retener quante modificationes recente? (dies)'; +$lang['rss_show_summary'] = 'Monstrar summario in titulo de syndication XML'; +$lang['target____wiki'] = 'Fenestra de destination pro ligamines interne'; +$lang['target____interwiki'] = 'Fenestra de destination pro ligamines interwiki'; +$lang['target____extern'] = 'Fenestra de destination pro ligamines externe'; +$lang['target____media'] = 'Fenestra de destination pro ligamines multimedia'; +$lang['target____windows'] = 'Fenestra de destination pro ligamines a fenestras'; +$lang['proxy____host'] = 'Nomine de servitor proxy'; +$lang['proxy____port'] = 'Porto del proxy'; +$lang['proxy____user'] = 'Nomine de usator pro le proxy'; +$lang['proxy____pass'] = 'Contrasigno pro le proxy'; +$lang['proxy____ssl'] = 'Usar SSL pro connecter al proxy'; +$lang['safemodehack'] = 'Permitter truco de modo secur'; +$lang['ftp____host'] = 'Servitor FTP pro truco de modo secur'; +$lang['ftp____port'] = 'Porto FTP pro truco de modo secur'; +$lang['ftp____user'] = 'Nomine de usator FTP pro truco de modo secur'; +$lang['ftp____pass'] = 'Contrasigno FTP pro truco de modo secur'; +$lang['ftp____root'] = 'Directorio radice FTP pro truco de modo securr'; +$lang['license_o_'] = 'Nihil seligite'; +$lang['typography_o_0'] = 'nulle'; +$lang['typography_o_1'] = 'excludente '; +$lang['typography_o_2'] = 'includente virgulettas singule (pote non sempre functionar)'; +$lang['userewrite_o_0'] = 'nulle'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = 'interne a DokuWIki'; +$lang['deaccent_o_0'] = 'disactivate'; +$lang['deaccent_o_1'] = 'remover accentos'; +$lang['deaccent_o_2'] = 'romanisar'; +$lang['gdlib_o_0'] = 'GD Lib non disponibile'; +$lang['gdlib_o_1'] = 'Version 1.x'; +$lang['gdlib_o_2'] = 'Autodetection'; +$lang['rss_type_o_rss'] = 'RSS 0.91'; +$lang['rss_type_o_rss1'] = 'RSS 1.0'; +$lang['rss_type_o_rss2'] = 'RSS 2.0'; +$lang['rss_type_o_atom'] = 'Atom 0.3'; +$lang['rss_type_o_atom1'] = 'Atom 1.0'; +$lang['rss_content_o_abstract'] = 'Abstracte'; +$lang['rss_content_o_diff'] = 'In formato Unified Diff'; +$lang['rss_content_o_htmldiff'] = 'Tabella de diff in formato HTML'; +$lang['rss_content_o_html'] = 'Contento complete del pagina in HTML'; +$lang['rss_linkto_o_diff'] = 'vista de differentias'; +$lang['rss_linkto_o_page'] = 'le pagina revidite'; +$lang['rss_linkto_o_rev'] = 'lista de versiones'; +$lang['rss_linkto_o_current'] = 'le pagina actual'; +$lang['compression_o_0'] = 'nulle'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = 'non usar'; +$lang['xsendfile_o_1'] = 'Capite proprietari "lighttpd" (ante version 1.5)'; +$lang['xsendfile_o_2'] = 'Capite standard "X-Sendfile"'; +$lang['xsendfile_o_3'] = 'Capite proprietari "X-Accel-Redirect" de Nginx'; +$lang['showuseras_o_loginname'] = 'Nomine de usator'; +$lang['showuseras_o_username'] = 'Nomine real del usator'; +$lang['showuseras_o_email'] = 'Adresse de e-mail del usator (offuscate secundo le configuration de Mailguard)'; +$lang['showuseras_o_email_link'] = 'Adresse de e-mail del usator como ligamine "mailto:"'; +$lang['useheading_o_0'] = 'Nunquam'; +$lang['useheading_o_navigation'] = 'Navigation solmente'; +$lang['useheading_o_content'] = 'Contento wiki solmente'; +$lang['useheading_o_1'] = 'Sempre'; diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php index 4c8296767..5bbc6894f 100644 --- a/lib/plugins/config/lang/it/lang.php +++ b/lib/plugins/config/lang/it/lang.php @@ -11,21 +11,22 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['menu'] = 'Configurazione Wiki'; $lang['error'] = 'Impostazioni non aggiornate a causa di un valore non corretto, controlla le modifiche apportate e salva di nuovo. - <br />I valori non corretti sono evidenziati da un riquadro rosso.'; +<br />I valori non corretti sono evidenziati da un riquadro rosso.'; $lang['updated'] = 'Aggiornamento impostazioni riuscito.'; $lang['nochoice'] = '(nessun\'altra scelta disponibile)'; $lang['locked'] = 'Il file di configurazione non può essere aggiornato, se questo non è intenzionale, <br /> - assicurati che il nome e i permessi del file contenente la configurazione locale siano corretti.'; -$lang['danger'] = 'Attenzione: Cambiare questa opzione può rendere inaccessibile la tua wiki e il menu di configurazione.'; -$lang['warning'] = 'Avviso: Cambiare questa opzione può causare comportamenti indesiderati.'; -$lang['security'] = 'Avviso di sicurezza: Cambiare questa opzione può esporre a rischi di sicurezza.'; +assicurati che il nome e i permessi del file contenente la configurazione locale siano corretti.'; +$lang['danger'] = 'Attenzione: cambiare questa opzione può rendere inaccessibile il wiki e il menu di configurazione.'; +$lang['warning'] = 'Avviso: cambiare questa opzione può causare comportamenti indesiderati.'; +$lang['security'] = 'Avviso di sicurezza: vambiare questa opzione può esporre a rischi di sicurezza.'; $lang['_configuration_manager'] = 'Configurazione Wiki'; $lang['_header_dokuwiki'] = 'Impostazioni DokuWiki'; $lang['_header_plugin'] = 'Impostazioni Plugin'; -$lang['_header_template'] = 'Impostazioni Template'; +$lang['_header_template'] = 'Impostazioni Modello'; $lang['_header_undefined'] = 'Impostazioni non definite'; $lang['_basic'] = 'Impostazioni Base'; $lang['_display'] = 'Impostazioni Visualizzazione'; @@ -37,7 +38,7 @@ $lang['_media'] = 'Impostazioni File'; $lang['_advanced'] = 'Impostazioni Avanzate'; $lang['_network'] = 'Impostazioni Rete'; $lang['_plugin_sufix'] = 'Impostazioni Plugin'; -$lang['_template_sufix'] = 'Impostazioni Template'; +$lang['_template_sufix'] = 'Impostazioni Modello'; $lang['_msg_setting_undefined'] = 'Nessun metadato definito.'; $lang['_msg_setting_no_class'] = 'Nessuna classe definita.'; $lang['_msg_setting_no_default'] = 'Nessun valore predefinito.'; @@ -49,7 +50,7 @@ $lang['baseurl'] = 'URL di base'; $lang['savedir'] = 'Directory per il salvataggio dei dati'; $lang['start'] = 'Nome della pagina iniziale'; $lang['title'] = 'Titolo del wiki'; -$lang['template'] = 'Template'; +$lang['template'] = 'Modello'; $lang['license'] = 'Sotto quale licenza vorresti rilasciare il tuo contenuto?'; $lang['fullpath'] = 'Mostra il percorso completo delle pagine'; $lang['recent'] = 'Ultime modifiche'; @@ -58,7 +59,7 @@ $lang['youarehere'] = 'Breadcrumb gerarchici'; $lang['typography'] = 'Abilita la sostituzione tipografica'; $lang['htmlok'] = 'Consenti HTML incorporato'; $lang['phpok'] = 'Consenti PHP incorporato'; -$lang['dformat'] = 'Formato delle date (vedi la funzione <a href="http://www.php.net/date">data</a> di PHP)'; +$lang['dformat'] = 'Formato delle date (vedi la funzione <a href="http://www.php.net/strftime">strftime</a> di PHP)'; $lang['signature'] = 'Firma'; $lang['toptoclevel'] = 'Livello superiore per l\'indice'; $lang['tocminheads'] = 'Ammontare minimo di intestazioni che determinano la creazione del TOC'; @@ -72,8 +73,8 @@ $lang['refshow'] = 'Numero di riferimenti da visualizzare'; $lang['allowdebug'] = 'Abilita il debug <b>(disabilitare se non serve!)</b>'; $lang['usewordblock'] = 'Blocca lo spam in base alla blacklist'; $lang['indexdelay'] = 'Intervallo di tempo prima dell\'indicizzazione'; -$lang['relnofollow'] = 'Usa rel="nofollow"'; -$lang['mailguard'] = 'Oscuramento indirizzi e-mail'; +$lang['relnofollow'] = 'Usa rel="nofollow" nei collegamenti esterni'; +$lang['mailguard'] = 'Oscuramento indirizzi email'; $lang['iexssprotect'] = 'Controlla i file caricati in cerca di possibile codice JavaScript o HTML maligno.'; $lang['showuseras'] = 'Cosa visualizzare quando si mostra l\'ultimo utente che ha modificato una pagina'; $lang['useacl'] = 'Usa lista di controllo accessi (ACL)'; @@ -81,26 +82,26 @@ $lang['autopasswd'] = 'Genera password in automatico'; $lang['authtype'] = 'Sistema di autenticazione'; $lang['passcrypt'] = 'Metodo di cifratura password'; $lang['defaultgroup'] = 'Gruppo predefinito'; -$lang['superuser'] = 'Amministratore'; -$lang['manager'] = 'Gestore - un gruppo o un utente con accesso a determinate funzioni di gestione'; +$lang['superuser'] = 'Amministratore - gruppo, utente o elenco di utenti separati da virgole (user1,@group1,user2) con accesso completo a tutte le pagine e le funzioni che riguardano le impostazioni ACL'; +$lang['manager'] = 'Gestore - gruppo, utente o elenco di utenti separati da virgole (user1,@group1,user2) con accesso a determinate funzioni di gestione'; $lang['profileconfirm'] = 'Richiedi la password per modifiche al profilo'; $lang['disableactions'] = 'Disabilita azioni DokuWiki'; $lang['disableactions_check'] = 'Controlla'; $lang['disableactions_subscription'] = 'Sottoscrivi/Rimuovi sottoscrizione'; -$lang['disableactions_nssubscription'] = 'Sottoscrivi/Rimuovi sottoscrizione della categoria'; $lang['disableactions_wikicode'] = 'Mostra sorgente/Esporta Raw'; $lang['disableactions_other'] = 'Altre azioni (separate da virgola)'; $lang['sneaky_index'] = 'Normalmente, DokuWiki mostra tutte le categorie nella vista indice. Abilitando questa opzione, saranno nascoste quelle per cui l\'utente non ha il permesso in lettura. Questo potrebbe far sì che alcune sottocategorie accessibili siano nascoste. La pagina indice potrebbe quindi diventare inutilizzabile con alcune configurazioni dell\'ACL.'; -$lang['auth_security_timeout'] = 'Timeout di sicurezza per l\'autenticazione (secondi)'; +$lang['auth_security_timeout'] = 'Tempo di sicurezza per l\'autenticazione (secondi)'; $lang['securecookie'] = 'Devono i cookies impostati tramite HTTPS essere inviati al browser solo tramite HTTPS? Disattiva questa opzione solo quando l\'accesso al tuo wiki viene effettuato con il protocollo SSL ma la navigazione del wiki non risulta sicura.'; -$lang['xmlrpc'] = 'Abilita/disabilita interfaccia XML-RPC'; +$lang['xmlrpc'] = 'Abilita/disabilita interfaccia XML-RPC.'; $lang['xmlrpcuser'] = 'Limita l\'accesso XML-RPC ai gruppi o utenti indicati qui (separati da virgola). Lascia il campo vuoto per dare accesso a tutti.'; $lang['updatecheck'] = 'Controllare aggiornamenti e avvisi di sicurezza? DokuWiki deve contattare splitbrain.org per questa funzione.'; $lang['userewrite'] = 'Usa il rewrite delle URL'; -$lang['useslash'] = 'Usa lo slash come separatore nelle URL'; +$lang['useslash'] = 'Usa la barra rovescia (slash) come separatore nelle URL'; $lang['usedraft'] = 'Salva una bozza in automatico in fase di modifica'; $lang['sepchar'] = 'Separatore di parole nei nomi di pagina'; $lang['canonical'] = 'Usa URL canoniche'; +$lang['fnencode'] = 'Metodo per codificare i filenames non-ASCII.'; $lang['autoplural'] = 'Controlla il plurale nei collegamenti'; $lang['compression'] = 'Usa la compressione per i file dell\'archivio'; $lang['cachetime'] = 'Durata della cache (sec)'; @@ -114,13 +115,14 @@ $lang['gdlib'] = 'Versione GD Lib '; $lang['im_convert'] = 'Percorso per il convertitore di ImageMagick'; $lang['jpg_quality'] = 'Qualità di compressione JPG (0-100)'; $lang['subscribers'] = 'Abilita la sottoscrizione alle pagine'; +$lang['subscribe_time'] = 'Tempo dopo il quale le liste di sottoscrizione e i riassunti vengono inviati (sec); Dovrebbe essere inferiore al tempo specificato in recent_days.'; $lang['compress'] = 'Comprimi i file CSS e javascript'; $lang['hidepages'] = 'Nascondi le pagine che soddisfano la condizione (inserire un\'espressione regolare)'; $lang['send404'] = 'Invia "HTTP 404/Pagina non trovata" per le pagine inesistenti'; $lang['sitemap'] = 'Genera una sitemap Google (giorni)'; $lang['broken_iua'] = 'La funzione ignore_user_abort non funziona sul tuo sistema? Questo potrebbe far sì che l\'indice di ricerca sia inutilizzabile. È noto che nella configurazione IIS+PHP/CGI non funziona. Vedi il<a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> per maggiori informazioni.'; $lang['xsendfile'] = 'Usare l\'header X-Sendfile per permettere al webserver di fornire file statici? Questa funzione deve essere supportata dal tuo webserver.'; -$lang['renderer_xhtml'] = 'Renderer da usare la visualizzazione del wiki (xhtml)'; +$lang['renderer_xhtml'] = 'Renderer da usare per la visualizzazione del wiki (xhtml)'; $lang['renderer__core'] = '%s (dokuwiki)'; $lang['renderer__plugin'] = '%s (plugin)'; $lang['rememberme'] = 'Permetti i cookies di accesso permanenti (ricordami)'; @@ -130,22 +132,23 @@ $lang['rss_content'] = 'Cosa mostrare negli elementi dei feed XML?'; $lang['rss_update'] = 'Intervallo di aggiornamento dei feed XML (sec)'; $lang['recent_days'] = 'Quante modifiche recenti tenere (giorni)'; $lang['rss_show_summary'] = 'I feed XML riportano un sommario nel titolo'; -$lang['target____wiki'] = 'Finestra target per i collegamenti interni'; -$lang['target____interwiki'] = 'Finestra target per i collegamenti interwiki'; -$lang['target____extern'] = 'Finestra target per i collegamenti esterni'; -$lang['target____media'] = 'Finestra target per i collegamenti ai file'; -$lang['target____windows'] = 'Finestra target per i collegamenti alle risorse condivise'; +$lang['target____wiki'] = 'Finestra di destinazione per i collegamenti interni'; +$lang['target____interwiki'] = 'Finestra di destinazione per i collegamenti interwiki'; +$lang['target____extern'] = 'Finestra di destinazione per i collegamenti esterni'; +$lang['target____media'] = 'Finestra di destinazione per i collegamenti ai file'; +$lang['target____windows'] = 'Finestra di destinazione per i collegamenti alle risorse condivise'; $lang['proxy____host'] = 'Nome server proxy'; $lang['proxy____port'] = 'Porta proxy'; $lang['proxy____user'] = 'Nome utente proxy'; $lang['proxy____pass'] = 'Password proxy'; $lang['proxy____ssl'] = 'Usa SSL per connetterti al proxy'; +$lang['proxy____except'] = 'Espressioni regolari per far corrispondere le URLs per i quali i proxy dovrebbero essere ommessi.'; $lang['safemodehack'] = 'Abilita safemode hack'; $lang['ftp____host'] = 'Server FTP per safemode hack'; $lang['ftp____port'] = 'Porta FTP per safemode hack'; $lang['ftp____user'] = 'Nome utente FTP per safemode hack'; $lang['ftp____pass'] = 'Password FTP per safemode hack'; -$lang['ftp____root'] = 'Root directory FTP per safemode hack'; +$lang['ftp____root'] = 'Directory principale FTP per safemode hack'; $lang['license_o_'] = 'Nessuna scelta'; $lang['typography_o_0'] = 'nessuno'; $lang['typography_o_1'] = 'Solo virgolette'; @@ -171,7 +174,7 @@ $lang['rss_content_o_html'] = 'Tutto il contenuto della pagina in HTML'; $lang['rss_linkto_o_diff'] = 'vista differenze'; $lang['rss_linkto_o_page'] = 'pagina revisionata'; $lang['rss_linkto_o_rev'] = 'elenco revisioni'; -$lang['rss_linkto_o_current'] = 'pagina corrente'; +$lang['rss_linkto_o_current'] = 'pagina attuale'; $lang['compression_o_0'] = 'nessuna'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; @@ -187,3 +190,4 @@ $lang['useheading_o_0'] = 'Mai'; $lang['useheading_o_navigation'] = 'Solo navigazione'; $lang['useheading_o_content'] = 'Solo contenuto wiki'; $lang['useheading_o_1'] = 'Sempre'; +$lang['readdircache'] = 'Tempo massimo per le readdir cache (sec)'; diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index 947ea3c1d..c3bca045d 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -84,7 +84,6 @@ $lang['profileconfirm'] = 'プロフィール変更時に現在のパス $lang['disableactions'] = 'DokuWiki の動作を無効にする'; $lang['disableactions_check'] = 'チェック'; $lang['disableactions_subscription'] = '登録 / 解除'; -$lang['disableactions_nssubscription'] = '名前空間の登録 / 解除'; $lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力'; $lang['disableactions_other'] = 'その他の動作(カンマ区切り)'; $lang['sneaky_index'] = 'デフォルトでは索引にすべての名前空間を表示しますが、この機能はユーザーに閲覧権限のない名前空間を非表示にします。ただし、閲覧が可能な副名前空間まで表示されなくなるため、ACLの設定が適正でない場合は索引機能が使えなくなる場合があります。'; diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 195b0d2a2..efac643ab 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -82,7 +82,6 @@ $lang['profileconfirm'] = '개인정보 변경시 암호 재확인'; $lang['disableactions'] = 'DokuWiki Action 금지'; $lang['disableactions_check'] = '검사'; $lang['disableactions_subscription'] = '구독 신청/해지'; -$lang['disableactions_nssubscription'] = '네임스페이스 구독 신청/해지'; $lang['disableactions_wikicode'] = '문서 소스 보기'; $lang['disableactions_other'] = '다른 Action(comma로 구분)'; $lang['sneaky_index'] = '기본적으로, DokuWiki는 색인 목록에 모든 네임스페이스들을 보여줍니다. diff --git a/lib/plugins/config/lang/lb/intro.txt b/lib/plugins/config/lang/lb/intro.txt new file mode 100644 index 000000000..964ee851c --- /dev/null +++ b/lib/plugins/config/lang/lb/intro.txt @@ -0,0 +1,7 @@ +====== Konfiguratioun ====== + +Dëses Plugin hëlleft der bei der Konfiguratioun vun DokuWiki. Hëllef zu deenen eenzelnen Astellungen fënns de ënner [[doku>config]]. Méi Informatiounen zu dësem Plugin kriss de ënner [[doku>plugin:config]]. + +Astellungen mat engem hellrouden Hannergrond si geséchert a kënnen net mat dësem Plugin verännert ginn. Astellungen mat hellbloem Hannergrond si Virastellungen, wäiss hannerluechte Felder weisen lokal verännert Werter un. Souwuel dié blo wéi och déi wäiss Felder kënne verännert ginn. + +Vergiess w.e.g. net **Späicheren** ze drécken iers de d'Säit verléiss, anescht ginn all deng Ännerungen verluer. diff --git a/lib/plugins/config/lang/lb/lang.php b/lib/plugins/config/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/config/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/config/lang/lv/lang.php b/lib/plugins/config/lang/lv/lang.php index b392389bf..533ccbcfb 100644 --- a/lib/plugins/config/lang/lv/lang.php +++ b/lib/plugins/config/lang/lv/lang.php @@ -79,7 +79,6 @@ $lang['profileconfirm'] = 'Profila labošanai vajag paroli'; $lang['disableactions'] = 'Bloķēt Dokuwiki darbības'; $lang['disableactions_check'] = 'atzīmēt'; $lang['disableactions_subscription'] = 'abonēt/atteikties'; -$lang['disableactions_nssubscription'] = 'abonēt nodaļu/atteikties'; $lang['disableactions_wikicode'] = 'skatīt/eksportēt izejtekstu'; $lang['disableactions_other'] = 'citas darbības (atdalīt ar komatiem)'; $lang['sneaky_index'] = 'Pēc noklusētā DokuWiki lapu sarakstā parāda visu nodaļu lapas. Ieslēdzot šo parametru, noslēps tās nodaļas, kuras apmeklētājam nav tiesības lasīt. Bet tad tiks arī paslēptas dziļākas, bet atļautas nodaļas. Atsevišķos pieejas tiesību konfigurācijas gadījumos lapu saraksts var nedarboties.'; @@ -106,6 +105,7 @@ $lang['gdlib'] = 'GD Lib versija'; $lang['im_convert'] = 'Ceļš uz ImageMagick convert rīku'; $lang['jpg_quality'] = 'JPG saspiešanas kvalitāte'; $lang['subscribers'] = 'Atļaut abonēt izmaiņas'; +$lang['subscribe_time'] = 'Pēc cik ilga laika izsūtīt abonētos sarakstus un kopsavilkumus (sekundes); jābūt mazākam par laiku, kas norādīts "recent_days".'; $lang['compress'] = 'Saspiest CSS un javascript failus'; $lang['hidepages'] = 'Slēpt lapas (regulāras izteiksmes)'; $lang['send404'] = 'Par neesošām lapām atbildēt "HTTP 404/Page Not Found" '; diff --git a/lib/plugins/config/lang/mk/lang.php b/lib/plugins/config/lang/mk/lang.php new file mode 100644 index 000000000..6d4530f79 --- /dev/null +++ b/lib/plugins/config/lang/mk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ diff --git a/lib/plugins/config/lang/mr/lang.php b/lib/plugins/config/lang/mr/lang.php index e2d290db5..79e8ea426 100644 --- a/lib/plugins/config/lang/mr/lang.php +++ b/lib/plugins/config/lang/mr/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'प्रोफाइल मधील बद $lang['disableactions'] = 'डॉक्युविकीच्या क्रिया बंद ठेवा'; $lang['disableactions_check'] = 'तपासा'; $lang['disableactions_subscription'] = 'सब्सक्राईब / अन्-सब्सक्राईब'; -$lang['disableactions_nssubscription'] = 'नेमस्पेस सब्सक्राईब / अन्-सब्सक्राईब'; $lang['disableactions_wikicode'] = 'स्त्रोत पहा / कच्च्या स्वरूपात एक्सपोर्ट करा'; $lang['disableactions_other'] = 'इतर क्रिया ( स्वल्पविरामाने अलग केलेल्या )'; $lang['sneaky_index'] = 'सूची दृश्यामधे डिफॉल्ट स्वरूपात डॉक्युविकी सगळे नेमस्पेस दाखवते. हा पर्याय चालू केल्यास सदस्याला वाचण्याची परवानगी नसलेले नेमस्पेस दिसणार नाहीत. यामुळे परवानगी असलेले उप - नेमस्पेस न दिसण्याची शक्यता आहे. यामुळे काही विशिष्ठ ACL सेटिंगसाठी सूची वापरता येण्यासारखी राहणार नाही.'; diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php index cda817ffe..a9e0d935f 100644 --- a/lib/plugins/config/lang/nl/lang.php +++ b/lib/plugins/config/lang/nl/lang.php @@ -11,6 +11,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['menu'] = 'Configuratie-instellingen'; $lang['error'] = 'De instellingen zijn niet gewijzigd wegens een incorrecte waarde, kijk je wijzigingen na en sla dan opnieuw op.<br />Je kunt de incorrecte waarde(s) herkennen aan de rode rand.'; @@ -85,7 +87,6 @@ $lang['profileconfirm'] = 'Bevestig profielwijzigingen met wachtwoord'; $lang['disableactions'] = 'Aangevinkte DokuWiki-akties uitschakelen'; $lang['disableactions_check'] = 'Controleer'; $lang['disableactions_subscription'] = 'Inschrijven/opzeggen'; -$lang['disableactions_nssubscription'] = 'Namespace inschrijven/opzeggen'; $lang['disableactions_wikicode'] = 'Bron bekijken/exporteer rauw'; $lang['disableactions_other'] = 'Andere akties (gescheiden door komma\'s)'; $lang['sneaky_index'] = 'Met de standaardinstellingen zal DokuWiki alle namespaces laten zien in de index. Het inschakelen van deze optie zorgt ervoor dat de namespaces waar de gebruiker geen leestoegang tot heeft, verborgen worden. Dit kan resulteren in het verbergen van subnamespaces waar de gebruiker wel toegang to heeft. Dit kan de index onbruikbaar maken met bepaalde ACL-instellingen.'; @@ -99,6 +100,7 @@ $lang['useslash'] = 'Gebruik slash (/) als scheiding tussen namepac $lang['usedraft'] = 'Sla automatisch een concept op tijdens het wijzigen'; $lang['sepchar'] = 'Woordscheider in paginanamen'; $lang['canonical'] = 'Herleid URL\'s tot hun basisvorm'; +$lang['fnencode'] = 'Methode om niet-ASCII bestandsnamen te coderen.'; $lang['autoplural'] = 'Controleer op meervoudsvormen in links'; $lang['compression'] = 'Compressiemethode voor attic-bestanden'; $lang['cachetime'] = 'Maximum leeftijd voor cache (sec)'; @@ -112,6 +114,7 @@ $lang['gdlib'] = 'Versie GD Lib '; $lang['im_convert'] = 'Path naar ImageMagick\'s convert tool'; $lang['jpg_quality'] = 'JPG compressiekwaliteit (0-100)'; $lang['subscribers'] = 'Ondersteuning pagina-inschrijving aanzetten'; +$lang['subscribe_time'] = 'Inschrijvingsmeldingen en samenvattingen worden na deze tijdsduur (in seconden) verzonden. Deze waarde dient kleiner te zijn dan de tijd ingevuld bij "Hoeveel recente wijzigingen bewaren (dagen)"'; $lang['compress'] = 'Compacte CSS en javascript output'; $lang['hidepages'] = 'Verberg deze pagina\'s (regular expressions)'; $lang['send404'] = 'Stuur "HTTP 404/Page Not Found" voor niet-bestaande pagina\'s'; @@ -138,6 +141,7 @@ $lang['proxy____port'] = 'Proxy port'; $lang['proxy____user'] = 'Proxy gebruikersnaam'; $lang['proxy____pass'] = 'Proxy wachtwoord'; $lang['proxy____ssl'] = 'Gebruik SSL om een connectie te maken met de proxy'; +$lang['proxy____except'] = 'Reguliere expressie om URL\'s te bepalen waarvoor de proxy overgeslaan moet worden.'; $lang['safemodehack'] = 'Safemode hack aanzetten'; $lang['ftp____host'] = 'FTP server voor safemode hack'; $lang['ftp____port'] = 'FTP port voor safemode hack'; @@ -185,3 +189,4 @@ $lang['useheading_o_0'] = 'Nooit'; $lang['useheading_o_navigation'] = 'Alleen navigatie'; $lang['useheading_o_content'] = 'Alleen wiki inhoud'; $lang['useheading_o_1'] = 'Altijd'; +$lang['readdircache'] = 'Maximale leeftijd voor readdir cache (in seconden)'; diff --git a/lib/plugins/config/lang/no/lang.php b/lib/plugins/config/lang/no/lang.php index 08dd8507a..4529b55fe 100644 --- a/lib/plugins/config/lang/no/lang.php +++ b/lib/plugins/config/lang/no/lang.php @@ -91,7 +91,6 @@ $lang['profileconfirm'] = 'Bekreft profilendringer med passord'; $lang['disableactions'] = 'Skru av følgende DokuWiki-kommandoer'; $lang['disableactions_check'] = 'Sjekk'; $lang['disableactions_subscription'] = 'Meld på/av'; -$lang['disableactions_nssubscription'] = 'Navnerom Abonnere /Stoppe abonnement'; $lang['disableactions_wikicode'] = 'Vis kildekode/eksporter rådata'; $lang['disableactions_other'] = 'Andre kommandoer (kommaseparert)'; $lang['sneaky_index'] = 'DokuWiki vil som standard vise alle navnerom i innholdsfortegnelsen. Hvis du skrur på dette alternativet vil brukere bare se de navnerommene der de har lesetilgang. Dette kan føre til at tilgjengelige undernavnerom skjules. Det kan gjøre innholdsfortegnelsen ubrukelig med enkelte ACL-oppsett.'; diff --git a/lib/plugins/config/lang/pl/lang.php b/lib/plugins/config/lang/pl/lang.php index 976712f85..451c3125a 100644 --- a/lib/plugins/config/lang/pl/lang.php +++ b/lib/plugins/config/lang/pl/lang.php @@ -7,13 +7,18 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author Piotr JANKOWSKI <jankowski.piotr@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['menu'] = 'Ustawienia'; $lang['error'] = 'Ustawienia nie zostały zapisane z powodu błędnych wartości, przejrzyj je i ponów próbę zapisu. <br/> Niepoprawne wartości są wyróżnione kolorem czerwonym.'; $lang['updated'] = 'Ustawienia zostały zmienione.'; $lang['nochoice'] = '(brak innych możliwości)'; $lang['locked'] = 'Plik ustawień nie mógł zostać zmieniony, upewnij się, czy uprawnienia do pliku są odpowiednie.'; -$lang['danger'] = 'Uwaga: Zmiana tej opcji może uniemożliwić dostęp do twojej wiki oraz konfogiracji.'; +$lang['danger'] = 'Uwaga: Zmiana tej opcji może uniemożliwić dostęp do twojej wiki oraz konfiguracji.'; $lang['warning'] = 'Ostrzeżenie: Zmiana tej opcji może spowodować nieporządane skutki.'; $lang['security'] = 'Alert bezpieczeństwa: Zmiana tej opcji może obniżyć bezpieczeństwo.'; $lang['_configuration_manager'] = 'Menadżer konfiguracji'; @@ -81,7 +86,6 @@ $lang['profileconfirm'] = 'Potwierdzanie zmiany profilu hasłem'; $lang['disableactions'] = 'Wyłącz akcje DokuWiki'; $lang['disableactions_check'] = 'Sprawdzanie'; $lang['disableactions_subscription'] = 'Subskrypcje'; -$lang['disableactions_nssubscription'] = 'Subskrypcje katalogów'; $lang['disableactions_wikicode'] = 'Pokazywanie źródeł'; $lang['disableactions_other'] = 'Inne akcje (oddzielone przecinkiem)'; $lang['sneaky_index'] = 'Domyślnie, Dokuwiki pokazuje wszystkie katalogi w indeksie. Włączenie tej opcji ukryje katalogi, do których użytkownik nie ma praw. Może to spowodować ukrycie podkatalogów, do których użytkownik ma prawa. Ta opcja może spowodować błędne działanie indeksu w połączeniu z pewnymi konfiguracjami praw dostępu.'; @@ -95,6 +99,7 @@ $lang['useslash'] = 'Używanie ukośnika jako separatora w adresie $lang['usedraft'] = 'Automatyczne zapisywanie szkicu podczas edycji'; $lang['sepchar'] = 'Znak rozdzielający wyrazy nazw'; $lang['canonical'] = 'Kanoniczne adresy URL'; +$lang['fnencode'] = 'Metoda kodowana nazw pików bez użycia ASCII.'; $lang['autoplural'] = 'Automatyczne tworzenie liczby mnogiej'; $lang['compression'] = 'Metoda kompresji dla usuniętych plików'; $lang['cachetime'] = 'Maksymalny wiek cache w sekundach'; @@ -108,6 +113,7 @@ $lang['gdlib'] = 'Wersja biblioteki GDLib'; $lang['im_convert'] = 'Ścieżka do programu imagemagick'; $lang['jpg_quality'] = 'Jakość kompresji JPG (0-100)'; $lang['subscribers'] = 'Subskrypcja'; +$lang['subscribe_time'] = 'Czas po którym są wysyłane listy subskrypcji i streszczenia (sek.); Powinna być to wartość większa niż podana w zmiennej recent_days.'; $lang['compress'] = 'Kompresja arkuszy CSS i plików JavaScript'; $lang['hidepages'] = 'Ukrywanie stron pasujących do wzorca (wyrażenie regularne)'; $lang['send404'] = 'Nagłówek "HTTP 404/Page Not Found" dla nieistniejących stron'; @@ -181,3 +187,4 @@ $lang['useheading_o_0'] = 'Nigdy'; $lang['useheading_o_navigation'] = 'W nawigacji'; $lang['useheading_o_content'] = 'W treści'; $lang['useheading_o_1'] = 'Zawsze'; +$lang['readdircache'] = 'Maksymalny czas dla bufora readdir (w sek).'; diff --git a/lib/plugins/config/lang/pt-br/lang.php b/lib/plugins/config/lang/pt-br/lang.php index 0d482c938..ecf302d81 100644 --- a/lib/plugins/config/lang/pt-br/lang.php +++ b/lib/plugins/config/lang/pt-br/lang.php @@ -13,6 +13,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['menu'] = 'Configurações do DokuWiki'; $lang['error'] = 'As configurações não foram atualizadas devido a um valor inválido. Por favor, reveja suas alterações e reenvie-as.<br />O(s) valor(es) incorreto(s) serão exibidos contornados por uma borda vermelha.'; @@ -89,19 +90,20 @@ $lang['profileconfirm'] = 'Confirmar mudanças no perfil com a senha'; $lang['disableactions'] = 'Desabilitar as ações do DokuWiki'; $lang['disableactions_check'] = 'Verificação'; $lang['disableactions_subscription'] = 'Monitoramento'; -$lang['disableactions_nssubscription'] = 'Monitoramento do espaços de nomes'; $lang['disableactions_wikicode'] = 'Visualização da fonte/Exportação sem processamento'; $lang['disableactions_other'] = 'Outras ações (separadas por vírgula)'; $lang['sneaky_index'] = 'Por padrão, o DokuWiki irá exibir todos os espaços de nomes na visualização do índice. Ao habilitar essa opção, serão escondidos aqueles que o usuário não tiver permissão de leitura. Isso pode resultar na omissão de subespaços de nomes, tornando o índice inútil para certas configurações de ACL.'; $lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)'; $lang['securecookie'] = 'Os cookies definidos via HTTPS devem ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação, de maneira insegura.'; $lang['xmlrpc'] = 'Habilitar/desabilitar interface XML-RPC.'; +$lang['xmlrpcuser'] = 'Acesso Restrito ao XML-RPC para grupos separados por virgula ou usuários aqui. Deixe em branco para conveder acesso a todos.'; $lang['updatecheck'] = 'Verificar atualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efetuar esse recurso.'; $lang['userewrite'] = 'Usar URLs "limpas"'; $lang['useslash'] = 'Usar a barra como separador de espaços de nomes nas URLs'; $lang['usedraft'] = 'Salvar o rascunho automaticamente durante a edição'; $lang['sepchar'] = 'Separador de palavras no nome da página'; $lang['canonical'] = 'Usar URLs absolutas (http://servidor/caminho)'; +$lang['fnencode'] = 'Método de codificação não-ASCII de nome de arquivos.'; $lang['autoplural'] = 'Verificar formas plurais nos links'; $lang['compression'] = 'Método de compressão para arquivos antigos'; $lang['cachetime'] = 'Tempo máximo para o cache (seg)'; @@ -115,6 +117,7 @@ $lang['gdlib'] = 'Versão da biblioteca "GD Lib"'; $lang['im_convert'] = 'Caminho para a ferramenta de conversão ImageMagick'; $lang['jpg_quality'] = 'Qualidade de compressão do JPG (0-100)'; $lang['subscribers'] = 'Habilitar o suporte a monitoramento de páginas'; +$lang['subscribe_time'] = 'Tempo de envio que as listas de inscrições serão enviadas (segundos); Este tempo deve ser menor que o tempo especificado em mudanças recentes.'; $lang['compress'] = 'Compactar as saídas de CSS e JavaScript'; $lang['hidepages'] = 'Esconder páginas correspondentes (expressão regular)'; $lang['send404'] = 'Enviar "HTTP 404/Página não encontrada" para páginas não existentes'; @@ -141,6 +144,7 @@ $lang['proxy____port'] = 'Porta do proxy'; $lang['proxy____user'] = 'Nome de usuário do proxy'; $lang['proxy____pass'] = 'Senha do proxy'; $lang['proxy____ssl'] = 'Usar SSL para conectar ao proxy'; +$lang['proxy____except'] = 'Expressões regulares de URL para excessão de proxy.'; $lang['safemodehack'] = 'Habilitar o contorno de segurança'; $lang['ftp____host'] = 'Servidor FTP para o contorno de segurança'; $lang['ftp____port'] = 'Porta do FTP para o contorno de segurança'; @@ -188,3 +192,4 @@ $lang['useheading_o_0'] = 'nunca'; $lang['useheading_o_navigation'] = 'somente a navegação'; $lang['useheading_o_content'] = 'somente o conteúdo do wiki'; $lang['useheading_o_1'] = 'sempre'; +$lang['readdircache'] = 'Tempo máximo para cache readdir (segundos)'; diff --git a/lib/plugins/config/lang/pt/lang.php b/lib/plugins/config/lang/pt/lang.php index 8b6145480..5b88f4bfc 100644 --- a/lib/plugins/config/lang/pt/lang.php +++ b/lib/plugins/config/lang/pt/lang.php @@ -81,7 +81,6 @@ $lang['profileconfirm'] = 'Confirmar mudanças no perfil com a senha'; $lang['disableactions'] = 'Desactivar acções DokuWiki'; $lang['disableactions_check'] = 'Checar'; $lang['disableactions_subscription'] = 'Subscrever/Não Subscrver'; -$lang['disableactions_nssubscription'] = 'Subscrever / Dessubscrever Espaço de Nome'; $lang['disableactions_wikicode'] = 'Ver fonte/Exportar em bruto'; $lang['disableactions_other'] = 'Outras acções (separadas por vírgula)'; $lang['sneaky_index'] = 'Por norma, o DokuWiki irá exibir todos os espaços de nomes na visualização do índice. Ao habilitar essa opção, serão escondidos aqueles em que o utilizador não tenha permissão de leitura. Isto pode resultar na omissão de sub-ramos acessíveis, que poderá tornar o índice inútil para certas configurações de ACL.'; diff --git a/lib/plugins/config/lang/ro/lang.php b/lib/plugins/config/lang/ro/lang.php index b3d601ffd..7eb22c341 100644 --- a/lib/plugins/config/lang/ro/lang.php +++ b/lib/plugins/config/lang/ro/lang.php @@ -82,7 +82,6 @@ $lang['profileconfirm'] = 'Confirmă schimbarea profilului cu parola'; $lang['disableactions'] = 'Dezactivează acţiunile DokuWiki'; $lang['disableactions_check'] = 'Verifică'; $lang['disableactions_subscription'] = 'Subscrie/Anulează subscrierea'; -$lang['disableactions_nssubscription'] = 'Subscrie/Anulează subscrierea Spaţiului de nume'; $lang['disableactions_wikicode'] = 'Vizualizează sursa/Export Raw'; $lang['disableactions_other'] = 'Alte acţiuni (separate prin virgulă)'; $lang['sneaky_index'] = 'Implicit, DokuWiki va arăta toate numele de spaţii la vizualizarea indexului. Activând această opţiune vor fi ascunse acelea la care utilizatorul nu are drepturi de citire. Aceasta poate determina ascunderea sub-numelor de spaţii accesibile. Aceasta poate face index-ul inutilizabil cu anumite setări ale ACL'; @@ -96,6 +95,7 @@ $lang['useslash'] = 'Foloseşte slash-ul ca separator de spaţii de $lang['usedraft'] = 'Salvează automat o schiţă în timpul editării'; $lang['sepchar'] = 'Separator cuvinte în numele paginii'; $lang['canonical'] = 'Foloseşte URL-uri canonice'; +$lang['fnencode'] = 'Metoda de encodare a numelor fişierelor non-ASCII.'; $lang['autoplural'] = 'Verifică formele de plural în legături'; $lang['compression'] = 'Metoda de criptare a fişierelor pod'; $lang['cachetime'] = 'Durata maximă pentru cache (secunde)'; @@ -109,6 +109,7 @@ $lang['gdlib'] = 'Versiunea GD Lib'; $lang['im_convert'] = 'Calea către instrumentul de conversie ImageMagick'; $lang['jpg_quality'] = 'Calitatea compresiei JPG (0-100)'; $lang['subscribers'] = 'Activează suportul pentru subscrierea paginii'; +$lang['subscribe_time'] = 'Timpul după care lista de abonare şi digestie sunt trimise (sec); Aceasta ar trebui să fie mai mic decât timpul specificat în recent_days.'; $lang['compress'] = 'Compactează codul CSS şi javascript produs'; $lang['hidepages'] = 'Ascunde paginile pereche (expresii regulate)'; $lang['send404'] = 'Trimite mesajul "HTTP 404/Page Not Found" pentru paginile inexistente'; diff --git a/lib/plugins/config/lang/ru/intro.txt b/lib/plugins/config/lang/ru/intro.txt index 989b65ba8..1fed8f106 100644 --- a/lib/plugins/config/lang/ru/intro.txt +++ b/lib/plugins/config/lang/ru/intro.txt @@ -1,9 +1,9 @@ -====== Настройки Вики ====== +====== Настройки вики ====== -Здесь вы можете изменить настройки Вашей DokuWiki. Для справки по поводу конкретных опций смотрите [[doku>config]]. Дополнительные детали об этом плагине доступны здесь: [[doku>plugin:config]]. +Здесь вы можете изменить настройки вашей DokuWiki. Для справки по поводу конкретных опций смотрите [[doku>config]]. Дополнительные детали об этом плагине доступны здесь: [[doku>plugin:config]]. -Настройки, отображаемые на светло-красном фоне, защищены от изменений и не могут быть отредактированы с помощью этого плагина. Голубым фоном отмечены настройки со значениями по умолчанию, а белым фоном -- настройки, которые были локально изменены для этой конкретной DokuWiki. Как голубые, так и белые настройки доступны для изменения. +Настройки, отображаемые на светло-красном фоне, защищены от изменений и не могут быть отредактированы с помощью этого плагина. Голубым фоном отмечены настройки со значениями по умолчанию, а белым фоном — настройки, которые были локально изменены для этой конкретной DokuWiki. Как голубые, так и белые настройки доступны для изменения. -Не забудьте нажать кнопку **Сохранить** перед тем, как покинуть эту страницу, иначе все Ваши изменения будут потеряны. +Не забудьте нажать кнопку **Сохранить** перед тем, как покинуть эту страницу, иначе все ваши изменения будут потеряны. diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php index 55b10742b..200b1859c 100644 --- a/lib/plugins/config/lang/ru/lang.php +++ b/lib/plugins/config/lang/ru/lang.php @@ -12,18 +12,19 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['menu'] = 'Настройки Вики'; -$lang['error'] = 'Настройки не были сохранены из-за ошибки в одном из значений. Пожалуйста, проверьте ваши изменения и попробуйте еще раз. - <br />Неправильные значения будут обведены красной рамкой.'; +$lang['error'] = 'Настройки не были сохранены из-за ошибки в одном из значений. Пожалуйста, проверьте ваши изменения и попробуйте еще раз.<br />Неправильные значения будут обведены красной рамкой.'; $lang['updated'] = 'Настройки успешно сохранены.'; $lang['nochoice'] = '(нет других вариантов)'; $lang['locked'] = 'Файл настройки недоступен для изменения. Если это не специально, <br /> - убедитесь, что файл локальной настройки имеет правильное имя и права доступа.'; +убедитесь, что файл локальной настройки имеет правильное имя и права доступа.'; $lang['danger'] = 'Внимание: изменение этой опции может сделать вашу вики и меню конфигурации недоступными.'; $lang['warning'] = 'Предостережение: изменение этой опции может вызвать непредсказуемое поведение.'; $lang['security'] = 'Предостережение по безопасности: изменение этой опции может вызвать риск, связанный с безопасностью.'; -$lang['_configuration_manager'] = 'Настройки Вики'; +$lang['_configuration_manager'] = 'Настройки dики'; $lang['_header_dokuwiki'] = 'Параметры DokuWiki'; $lang['_header_plugin'] = 'Параметры плагинов'; $lang['_header_template'] = 'Параметры шаблонов'; @@ -45,17 +46,17 @@ $lang['_msg_setting_no_default'] = 'Не задано значение по ум $lang['fmode'] = 'Права для создаваемых файлов'; $lang['dmode'] = 'Права для создаваемых директорий'; $lang['lang'] = 'Язык'; -$lang['basedir'] = 'Корневая директория'; -$lang['baseurl'] = 'Корневой адрес (URL)'; +$lang['basedir'] = 'Корневая директория (например, <code>/dokuwiki/</code>). Оставьте пустым для автоопределения.'; +$lang['baseurl'] = 'Корневой адрес (URL) (например, <code>http://www.yourserver.ru</code>). Оставьте пустым для автоопределения.'; $lang['savedir'] = 'Директория для данных'; $lang['start'] = 'Имя стартовой страницы'; -$lang['title'] = 'Название Вики'; +$lang['title'] = 'Название вики'; $lang['template'] = 'Шаблон'; $lang['license'] = 'На условиях какой лицензии будет предоставляться содержимое вики?'; $lang['fullpath'] = 'Полный путь к документу'; $lang['recent'] = 'Недавние изменения (кол-во)'; $lang['breadcrumbs'] = 'Вы посетили (кол-во)'; -$lang['youarehere'] = 'Показывать "Вы находитесь здесь"'; +$lang['youarehere'] = 'Показывать «Вы находитесь здесь»'; $lang['typography'] = 'Типографские символы'; $lang['htmlok'] = 'Разрешить HTML'; $lang['phpok'] = 'Разрешить PHP'; @@ -74,7 +75,7 @@ $lang['allowdebug'] = 'Включить отладку (отключ $lang['usewordblock'] = 'Блокировать спам по ключевым словам'; $lang['indexdelay'] = 'Задержка перед индексированием'; $lang['relnofollow'] = 'rel="nofollow" для внешних ссылок'; -$lang['mailguard'] = 'Кодировать адреса е-мэйл'; +$lang['mailguard'] = 'Кодировать адреса электронной почты'; $lang['iexssprotect'] = 'Проверять закачанные файлы на наличие потенциально опасного кода JavaScript или HTML'; $lang['showuseras'] = 'Что отображать при показе пользователя, редактировавшего страницу последним'; $lang['useacl'] = 'Использовать списки прав доступа'; @@ -82,16 +83,15 @@ $lang['autopasswd'] = 'Автогенерация паролей'; $lang['authtype'] = 'Механизм аутентификации'; $lang['passcrypt'] = 'Метод шифрования пароля'; $lang['defaultgroup'] = 'Группа по умолчанию'; -$lang['superuser'] = 'Администратор'; -$lang['manager'] = 'Менеджер - группа или пользователь с доступом к определенным функциям администрирования'; +$lang['superuser'] = 'Суперпользователь — группа или пользователь с полным доступом ко всем страницам и функциям администрирования, независимо от установок ACL. Перечень разделяйте запятыми: user1,@group1,user2'; +$lang['manager'] = 'Менеджер — группа или пользователь с доступом к определенным функциям управления. Перечень разделяйте запятыми: user1,@group1,user2'; $lang['profileconfirm'] = 'Пароль для изменения профиля'; $lang['disableactions'] = 'Заблокировать операции DokuWiki'; $lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'Подписка/Отмена подписки'; -$lang['disableactions_nssubscription'] = 'Пространство имен Подписаться/Отказаться от подписки'; $lang['disableactions_wikicode'] = 'Показ/экспорт исходного текста'; $lang['disableactions_other'] = 'Другие операции (через запятую)'; -$lang['sneaky_index'] = 'По умолчанию, DokuWiki показывает в индексе страниц все пространства имен. Включение этой опции скроет пространства имен, для которых пользователь не имеет прав чтения. Это может привести к скрытию доступных вложенных пространств имен и потере функциональности индекса страниц при некоторых конфигурациях прав доступа.'; +$lang['sneaky_index'] = 'По умолчанию, DokuWiki показывает в индексе страниц всё пространства имен. Включение этой опции скроет пространства имен, для которых пользователь не имеет прав чтения. Это может привести к скрытию доступных вложенных пространств имен и потере функциональности индекса страниц при некоторых конфигурациях прав доступа.'; $lang['auth_security_timeout'] = 'Интервал для безопасности авторизации (сек.)'; $lang['securecookie'] = 'Должны ли cookies, выставленные через HTTPS, отправляться браузером только через HTTPS. Отключите эту опцию в случае, когда только логин вашей вики передаётся через SSL, а обычный просмотр осуществляется в небезопасном режиме.'; $lang['xmlrpc'] = 'Включить/выключить XML-RPC интерфейс.'; @@ -102,37 +102,39 @@ $lang['useslash'] = 'Использовать слэш'; $lang['usedraft'] = 'Автоматически сохранять черновик в время правки'; $lang['sepchar'] = 'Разделитель слов в имени страницы'; $lang['canonical'] = 'Полные канонические адреса (URL)'; +$lang['fnencode'] = 'Метод кодирования имён файлов, записанных не ASCII-символами.'; $lang['autoplural'] = 'Автоматическое мн. число'; $lang['compression'] = 'Метод сжатия для архивных файлов'; $lang['cachetime'] = 'Время жизни кэш-файла (сек.)'; $lang['locktime'] = 'Время блокировки страницы (сек.)'; -$lang['fetchsize'] = 'Максимальный размер файла (в байтах) который fetch.php может скачивать с внешнего источника'; -$lang['notify'] = 'Е-мэйл для извещений'; -$lang['registernotify'] = 'Посылать информацию о новых зарегистрированных пользователях на этот адрес е-мэйл'; -$lang['mailfrom'] = 'Е-мэйл Вики (От:)'; -$lang['gzip_output'] = 'Использовать gzip Content-Encoding для xhtml'; +$lang['fetchsize'] = 'Максимальный размер файла (в байтах), который fetch.php может скачивать с внешнего источника'; +$lang['notify'] = 'Электронный адрес для извещений'; +$lang['registernotify'] = 'Посылать информацию о новых зарегистрированных пользователях на этот электронный адрес'; +$lang['mailfrom'] = 'Электронный адрес вики (От:)'; +$lang['gzip_output'] = 'Использовать gzip-сжатие для xhtml'; $lang['gdlib'] = 'Версия GD Lib'; -$lang['im_convert'] = 'Путь к imagemagick'; +$lang['im_convert'] = 'Путь к ImageMagick'; $lang['jpg_quality'] = 'Качество сжатия JPG (0-100)'; $lang['subscribers'] = 'Разрешить подписку на изменения'; +$lang['subscribe_time'] = 'Интервал рассылки подписок и сводок (сек.); Должен быть меньше, чем значение, указанное в recent_days.'; $lang['compress'] = 'Сжимать файлы CSS и javascript'; $lang['hidepages'] = 'Скрыть страницы (рег. выражение)'; $lang['send404'] = 'Посылать "HTTP404/Page Not Found"'; -$lang['sitemap'] = 'Карта сайта для Google (дни)'; +$lang['sitemap'] = 'Число дней, через которое нужно создавать (обновлять) карту сайта для поисковиков (Google, Яндекс и др.)'; $lang['broken_iua'] = 'Возможно, функция ignore_user_abort не работает в вашей системе? Это может привести к потере функциональности индексирования поиска. Эта проблема присутствует, например, в IIS+PHP/CGI. Для дополнительной информации смотрите <a href="http://bugs.splitbrain.org/?do=details&task_id=852">баг 852</a>.'; $lang['xsendfile'] = 'Используете заголовок X-Sendfile для загрузки файлов на вебсервер? Ваш вебсервер должен поддерживать это.'; $lang['renderer_xhtml'] = 'Обработчик основного (xhtml) вывода вики'; $lang['renderer__core'] = '%s (ядро dokuwiki)'; $lang['renderer__plugin'] = '%s (плагин)'; -$lang['rememberme'] = 'Разрешить перманентные cookies для входа (запомнить меня)'; +$lang['rememberme'] = 'Разрешить перманентные cookies для входа («запомнить меня»)'; $lang['rss_type'] = 'Тип RSS'; $lang['rss_linkto'] = 'Ссылки в RSS'; -$lang['rss_content'] = 'Что отображать в строках фида XML?'; +$lang['rss_content'] = 'Что отображать в строках XML-ленты?'; $lang['rss_update'] = 'Интервал обновления XML-ленты (сек.)'; $lang['recent_days'] = 'На сколько дней назад сохранять недавние изменения'; $lang['rss_show_summary'] = 'Показывать краткую выдержку в заголовках XML-ленты'; $lang['target____wiki'] = 'target для внутренних ссылок'; -$lang['target____interwiki'] = 'target для ссылок между Вики'; +$lang['target____interwiki'] = 'target для ссылок между вики'; $lang['target____extern'] = 'target для внешних ссылок'; $lang['target____media'] = 'target для ссылок на медиа-файлы'; $lang['target____windows'] = 'target для ссылок на сетевые каталоги'; @@ -141,7 +143,7 @@ $lang['proxy____port'] = 'proxy - порт'; $lang['proxy____user'] = 'proxy - имя пользователя'; $lang['proxy____pass'] = 'proxy - пароль'; $lang['proxy____ssl'] = 'proxy - ssl'; -$lang['safemodehack'] = 'Включить обход safemode'; +$lang['safemodehack'] = 'Включить обход safemode (хак)'; $lang['ftp____host'] = 'ftp - адрес'; $lang['ftp____port'] = 'ftp - порт'; $lang['ftp____user'] = 'ftp - имя пользователя'; @@ -177,13 +179,13 @@ $lang['compression_o_0'] = 'без сжатия'; $lang['compression_o_gz'] = 'gzip'; $lang['compression_o_bz2'] = 'bz2'; $lang['xsendfile_o_0'] = 'не используется'; -$lang['xsendfile_o_1'] = 'проприетарный lighttpd заголовок (перед релизом 1.5)'; +$lang['xsendfile_o_1'] = 'Проприетарный lighttpd заголовок (перед релизом 1.5)'; $lang['xsendfile_o_2'] = 'Стандартный заголовок X-Sendfile'; $lang['xsendfile_o_3'] = 'Проприетарный заголовок Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Логин'; $lang['showuseras_o_username'] = 'Полное имя пользователя'; -$lang['showuseras_o_email'] = 'E-mail пользователя (зашифрован согласно настройкам mailguard)'; -$lang['showuseras_o_email_link'] = 'E-mail пользователя в виде ссылки mailto:'; +$lang['showuseras_o_email'] = 'Адрес электронной почты пользователя (зашифрован согласно настройкам mailguard)'; +$lang['showuseras_o_email_link'] = 'Адрес электронной почты пользователя в виде ссылки mailto:'; $lang['useheading_o_0'] = 'Никогда'; $lang['useheading_o_navigation'] = 'Только навигация'; $lang['useheading_o_content'] = 'Только содержимое вики'; diff --git a/lib/plugins/config/lang/sk/lang.php b/lib/plugins/config/lang/sk/lang.php index bd69e543c..7b94f26d0 100644 --- a/lib/plugins/config/lang/sk/lang.php +++ b/lib/plugins/config/lang/sk/lang.php @@ -80,18 +80,20 @@ $lang['profileconfirm'] = 'Potvrdzovať zmeny profilu heslom'; $lang['disableactions'] = 'Zakázať DokuWiki akcie'; $lang['disableactions_check'] = 'Skontrolovať'; $lang['disableactions_subscription'] = 'Prihlásiť/Odhlásiť informovanie o zmenách stránky'; -$lang['disableactions_nssubscription'] = 'Prihlásiť/Odhlásiť informovanie o zmenách v mennom priestore'; $lang['disableactions_wikicode'] = 'Pozrieť zdroj/Exportovať zdroj'; $lang['disableactions_other'] = 'Iné akcie (oddelené čiarkou)'; $lang['sneaky_index'] = 'DokuWiki implicitne ukazuje v indexe všetky menné priestory. Povolením tejto voľby sa nezobrazia menné priestory, ku ktorým nemá používateľ právo na čítanie. Dôsledkom môže byť nezobrazenie vnorených prístupných menných priestorov. Táto voľba môže mať za následok nepoužiteľnosť indexu s určitými ACL nastaveniami.'; $lang['auth_security_timeout'] = 'Časový limit pri prihlasovaní (v sekundách)'; $lang['securecookie'] = 'Mal by prehliadač posielať cookies nastavené cez HTTPS posielať iba cez HTTPS (bezpečné) pripojenie? Vypnite túto voľbu iba v prípade, ak je prihlasovanie do Vašej wiki zabezpečené SSL, ale prezeranie wiki je nezabezpečené.'; +$lang['xmlrpc'] = 'Povoliť/zakázať XML-RPC rozhranie.'; +$lang['xmlrpcuser'] = 'Obmedziť XML-RPC prístup iba pre uvedené skupiny alebo používateľov (oddelených čiarkami).'; $lang['updatecheck'] = 'Kontrolovať aktualizácie a bezpečnostné upozornenia? DokuWiki potrebuje pre túto funkciu prístup k splitbrain.org.'; $lang['userewrite'] = 'Používať nice URLs'; $lang['useslash'] = 'Používať lomku (/) ako oddeľovač v URL'; $lang['usedraft'] = 'Automaticky ukladať koncept počas úpravy stránky'; $lang['sepchar'] = 'Oddeľovač slov v názvoch stránok'; $lang['canonical'] = 'Používať plne kanonické URL názvy'; +$lang['fnencode'] = 'Spôsob kódovania non-ASCII mien súborov.'; $lang['autoplural'] = 'Kontrolovať množné číslo v odkazoch'; $lang['compression'] = 'Metóda kompresie pre staré verzie stránok'; $lang['cachetime'] = 'Maximálne trvanie cache (sek)'; @@ -105,13 +107,13 @@ $lang['gdlib'] = 'Verzia GD Lib'; $lang['im_convert'] = 'Cesta k ImageMagick convert tool'; $lang['jpg_quality'] = 'Kvalita JPG kompresie (0-100)'; $lang['subscribers'] = 'Povoliť podporu informovania o zmenách stránky'; +$lang['subscribe_time'] = 'Časový inteval, po uplynutí ktorého sú zasielané informácie o zmenách stránky alebo menného priestoru (sek); hodnota by mala byť menšia ako čas zadaný pri položke recent_days.'; $lang['compress'] = 'Komprimovať CSS a javascript výstup'; $lang['hidepages'] = 'Skryť zodpovedajúce stránky (regulárne výrazy)'; $lang['send404'] = 'Poslať "HTTP 404/Page Not Found" pre neexistujúce stránky'; $lang['sitemap'] = 'Generovať Google sitemap (dni)'; $lang['broken_iua'] = 'Je vo Vašom systéme funkcia ignore_user_abort poškodená? Môže to mať za následok nefunkčnosť vyhľadávania v indexe. IIS+PHP/CGI je známy tým, že nefunguje správne. Pozrite <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> pre dalšie informácie.'; -$lang['xsendfile'] = 'Používať X-Sendfile hlavičku pre doručenie statických suborov webserverom? Webserver musí túto funkcionalitu podporovať.'; -$lang['xmlrpc'] = 'Povoliť/zakázať XML-RPC rozhranie.'; +$lang['xsendfile'] = 'Používať X-Sendfile hlavičku pre doručenie statických súborov webserverom? Webserver musí túto funkcionalitu podporovať.'; $lang['renderer_xhtml'] = 'Používané vykresľovacie jadro pre hlavný (xhtml) wiki výstup'; $lang['renderer__core'] = '%s (dokuwiki jadro)'; $lang['renderer__plugin'] = '%s (plugin)'; @@ -179,3 +181,4 @@ $lang['useheading_o_0'] = 'Nikdy'; $lang['useheading_o_navigation'] = 'Iba navigácia'; $lang['useheading_o_content'] = 'Iba Wiki obsah'; $lang['useheading_o_1'] = 'Vždy'; +$lang['readdircache'] = 'Maximálne trvanie readdir cache (sek)'; diff --git a/lib/plugins/config/lang/sq/intro.txt b/lib/plugins/config/lang/sq/intro.txt new file mode 100644 index 000000000..687b497c9 --- /dev/null +++ b/lib/plugins/config/lang/sq/intro.txt @@ -0,0 +1,7 @@ +====== Menaxheri Konfigurimit ====== + +Përdoreni këtë faqe për të kontrolluar kuadrot e instalimit të DokuWiki-t tuaj. Për ndihmë mbi kuadro individuale referojuni [[doku>config]]. Për më tepër detaje rreth këtij plugin-i shih [[doku>plugin:config]]. + +Kuadrot e treguara me një backgroudn me një ngjyrë të kuqe të lehtë janë të mbrojtura dhe nuk mund të ndryshohen me këtë plugin. Kuadrot e treguara me një background blu janë vlerat default dhe kuadrot e treguara me një background të bardhë janë vendosur lokalisht për këtë instalim të caktuar. Si kuadrot blu, ashtu edhe ato të bardhë mund të ndryshohen. + +Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin.
\ No newline at end of file diff --git a/lib/plugins/config/lang/sq/lang.php b/lib/plugins/config/lang/sq/lang.php new file mode 100644 index 000000000..6cf8fd5af --- /dev/null +++ b/lib/plugins/config/lang/sq/lang.php @@ -0,0 +1,180 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['menu'] = 'Konfigurimi i Kuadrove'; +$lang['error'] = 'Kuadrot nuk u përditësuan për shkak të një vlere të palejuar, ju lutem rishikoni ndryshimet tuaja dhe ridorëzojeni. +<br />Vlerat e pasakta tregohen të rrethuara nga një kornizë e kuqe.'; +$lang['updated'] = 'Kuadrot u përditësuan me sukses.'; +$lang['nochoice'] = '(asnjë zgjedhje tjetër e disponueshme)'; +$lang['locked'] = 'Skedari i kuadrove nuk mund të përditësohet, nëse kjo është e paqëllimshme, <br /> sigurohuni që emri i skedarit të kuadrove lokale dhe të drejtat të jenë të sakta.'; +$lang['danger'] = 'Rrezik: Ndrishimi i kësaj alternative mund ta bëjë wiki-n dhe menunë tuaj të konfigurimit të pa aksesueshme.'; +$lang['warning'] = 'Paralajmërim: Ndryshimi i kësaj alternative mund të shkaktojë sjellje të padëshiruara.'; +$lang['security'] = 'Paralajmërim Sigurie: Ndryshimi i kësaj alternative mund të paraqesë një rrezik në siguri.'; +$lang['_configuration_manager'] = 'Menaxhuesi i Kuadrove'; +$lang['_header_dokuwiki'] = 'Kuadrot e DokuWiki-t'; +$lang['_header_plugin'] = 'Kuadrot e Plugin-eve'; +$lang['_header_template'] = 'Kuadrot e Template-eve'; +$lang['_header_undefined'] = 'Kuadro të Papërcaktuara'; +$lang['_basic'] = 'Kuadro Elementare'; +$lang['_display'] = 'Kuadrot e Shfaqjes'; +$lang['_authentication'] = 'Kuadrot e Autentikimit'; +$lang['_anti_spam'] = 'Kuadrot Anti-Spam'; +$lang['_editing'] = 'Kuadrot e Redaktimit'; +$lang['_links'] = 'Kuadrot e Link-eve'; +$lang['_media'] = 'Kuadrot e Medias'; +$lang['_advanced'] = 'Kuadro të Avancuara'; +$lang['_network'] = 'Kuadrot e Rrjetit'; +$lang['_plugin_sufix'] = 'Kuadrot e Plugin-eve'; +$lang['_template_sufix'] = 'Kuadrot e Template-eve'; +$lang['_msg_setting_undefined'] = 'Metadata pa kuadro.'; +$lang['_msg_setting_no_class'] = 'Klasë pa kuadro.'; +$lang['_msg_setting_no_default'] = 'Asnjë vlerë default.'; +$lang['fmode'] = 'Mënyra krijim skedari'; +$lang['dmode'] = 'Mënyra krijim dosjeje.'; +$lang['lang'] = 'Gjuha e ndërfaqes'; +$lang['basedir'] = 'Path-i i Serverit (psh <code>/dokuwiki/</code>). Lëre bosh për ta gjetur automatikisht.'; +$lang['baseurl'] = 'URL-ja serverit (psh <code>http://www.serveriyt.com</code>). Lëre bosh për ta gjetur automatikisht.'; +$lang['savedir'] = 'Direktoria për të ruajtur të dhënat'; +$lang['start'] = 'Emri i faqes së fillimit'; +$lang['title'] = 'Titulli i Wiki-t'; +$lang['template'] = 'Template'; +$lang['license'] = 'Nën cilën liçensë duhet të vihet përmbajtja juar?'; +$lang['fullpath'] = 'Trego adresën e plotë të faqeve në footer.'; +$lang['recent'] = 'Ndryshimet më të fundit'; +$lang['breadcrumbs'] = 'Numri i gjurmëve'; +$lang['youarehere'] = 'Gjurmë hierarkike'; +$lang['typography'] = 'Bëj zëvendësime tipografike'; +$lang['htmlok'] = 'Lejo HTML të ngulitura'; +$lang['phpok'] = 'Lejo PHP të ngulitura'; +$lang['dformat'] = 'Formati i Datës (shiko funksionin <a href="http://www.php.net/strftime">strftime</a> e PHP-së)'; +$lang['signature'] = 'Firma'; +$lang['toptoclevel'] = 'Niveli i Kreut për tabelën e përmbajtjes'; +$lang['tocminheads'] = 'Sasia minimum e titrave që përcaktojnë nëse TOC ndërtohet ose jo'; +$lang['maxtoclevel'] = 'Niveli maksimum për tabelën e përmbajtjes'; +$lang['maxseclevel'] = 'Niveli maksimum për redaktim të seksionit'; +$lang['camelcase'] = 'Përdor CamelCase (shkronja e parë e çdo fjale është kapitale) për linke-t'; +$lang['deaccent'] = 'Emra faqesh të pastër'; +$lang['useheading'] = 'Përdor titra të nivelit të parë për faqet e emrave'; +$lang['refcheck'] = 'Kontroll për referim mediash'; +$lang['refshow'] = 'Numri i referimeve të medias që duhet të tregohet'; +$lang['allowdebug'] = 'Lejo debug <b>çaktivizoje nëse nuk nevojitet!</b>'; +$lang['usewordblock'] = 'Blloko spam-in duke u bazuar mbi listë fjalësh'; +$lang['indexdelay'] = 'Vonesa në kohë para index-imit (sekonda)'; +$lang['relnofollow'] = 'Përdor rel="nofollow" në linke të jashtëm'; +$lang['mailguard'] = 'Errëso adresat e email-it'; +$lang['iexssprotect'] = 'Kontrollo skedarët e ngarkuar për kod të mundshëm dashakeqës JavaScript ose HTML'; +$lang['showuseras'] = 'Cfarë të shfaqësh kur t\'i tregosh përdoruesit faqen e fundit të redaktuar'; +$lang['useacl'] = 'Përdor lista kontrolli të aksesit'; +$lang['autopasswd'] = 'Autogjenero fjalëkalime'; +$lang['authtype'] = 'Backend autentikimi'; +$lang['passcrypt'] = 'Metoda e enkriptimit të fjalëkalimit'; +$lang['defaultgroup'] = 'Grupi default'; +$lang['superuser'] = 'Superpërdorues - grup, përdorues ose listë e ndarë me presje user1, @group1,user2 me akses të plotë në të gjitha faqet dhe funksionet pavarësisht kuadrove të ACL'; +$lang['manager'] = 'Menaxher - grup, përdorues ose listë e ndarë me presje user1,@group1,user2 me akses në disa funksione të caktuara menaxhimi'; +$lang['profileconfirm'] = 'Konfirmo ndryshimet ne profil me fjalëkalim'; +$lang['disableactions'] = 'Caktivizo veprimet e DokuWiki-it'; +$lang['disableactions_check'] = 'Kontrollo'; +$lang['disableactions_subscription'] = 'Abonohu/Fshi Abonim'; +$lang['disableactions_wikicode'] = 'Shiku kodin burim/ Eksportoje të Papërpunuar'; +$lang['disableactions_other'] = 'Veprime të tjera (të ndarë me presje)'; +$lang['sneaky_index'] = 'Vetiu DokuWiki tregon të gjithë hapësirat e emrit në shikimin e index-it. Aktivizimi i kësaj alternative do të fshehë ato ku përdoruesi nuk ka të drejta leximi. Kjo mund të përfundojë në fshehje të nënhapësirave të emrit të aksesueshme. Kjo mund ta bëjë index-in të papërdorshëm me disa konfigurime të caktuara të ACL-së.'; +$lang['auth_security_timeout'] = 'Koha e Përfundimit për Autentikim (sekonda)'; +$lang['securecookie'] = 'A duhet që cookies të vendosura nëpërmjet HTTPS të dërgohen vetëm nëpërmjet HTTPS nga shfletuesit? Caktivizojeni këtë alternativë kur vetëm hyrja në wiki-n tuaj sigurohet me SSL por shfletimi i wiki-t bëhet në mënyrë të pasigurtë.'; +$lang['xmlrpc'] = 'Aktivizo/Caktivizo ndërfaqen XML-RPC'; +$lang['xmlrpcuser'] = 'Kufizo aksesin XML-RPC vetëm tek grupet ose përdoruesit e ndarë me presje të dhënë këtu. Lëre bosh për t\'i dhënë akses të gjithëve.'; +$lang['updatecheck'] = 'Kontrollo për përditësime dhe paralajmërime sigurie? DokuWiki duhet të kontaktojë me splitbrain.org për këtë veti.'; +$lang['userewrite'] = 'Përdor URL të këndshme.'; +$lang['useslash'] = 'Përdor / si ndarës të hapësirave të emrit në URL'; +$lang['usedraft'] = 'Ruaj automatikisht një skicë gjatë redaktimit'; +$lang['sepchar'] = 'Fjala ndarëse për emrin e faqes'; +$lang['canonical'] = 'Përdor URL kanonike të plota'; +$lang['autoplural'] = 'Kontrollo për forma shumës në link-e'; +$lang['compression'] = 'Metoda kompresimit për skedarët atikë'; +$lang['cachetime'] = 'Mosha maksimale për cache (sekonda)'; +$lang['locktime'] = 'Mosha maksimale për kyçjen e skedarëve (sekonda)'; +$lang['fetchsize'] = 'Madhësia maksimale (bytes) që fetch.php mund të shkarkojë nga jashtë'; +$lang['notify'] = 'Dërgo lajmërim për ndryshime te kjo adresë email-i'; +$lang['registernotify'] = 'Dërgo info për përdoruesit e sapo regjistruar te kjo adresë email-i'; +$lang['mailfrom'] = 'Adresa e email-it që do të përdoret për dërgimin e email-eve automatikë'; +$lang['gzip_output'] = 'Përdor gzip Content-Encoding për xhtml'; +$lang['gdlib'] = 'Versioni i GD Lib'; +$lang['im_convert'] = 'Path-i për tek mjeti i konvertimit ImageMagick'; +$lang['jpg_quality'] = 'Cilësia e kompresimit JPG (0-100)'; +$lang['subscribers'] = 'Aktivizo suportin për abonim faqesh'; +$lang['subscribe_time'] = 'Koha pas së cilës listat e abonimeve dhe konsumimet dërgohen (sekonda); Kjo duhet të jetë më e vogël se koha e specifikuar në ditët më të fundit'; +$lang['compress'] = 'Kompaktëso daljet CSS dhe JavaScript '; +$lang['hidepages'] = 'Fshi faqet që përkojnë (shprehjet e rregullta)'; +$lang['send404'] = 'Dërgo "HTTP 404/Page Not Found" për faqe që nuk ekzistojnë'; +$lang['sitemap'] = 'Gjenero Google sitemap (ditë)'; +$lang['broken_iua'] = 'Funksioni ignore_user_abort është i prishur në sistemin tuaj? Kjo mund të shkaktojë një indeks kërkimi jo funksional. IIS+PHP/CGI njihen si të prishura. Shiko <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> për më shumë info.'; +$lang['xsendfile'] = 'Përdor kokën X-Sendfile për të lejuar webserver-in të dërgojë skedarë statikë? Kjo duhet të suportohet nga webserver-i juaj.'; +$lang['renderer_xhtml'] = 'Riprodhuesi i përdorur për daljen wiki kryesore (xhtml)'; +$lang['renderer__core'] = '%s (dokuwiki core)'; +$lang['renderer__plugin'] = '%s (plugin)'; +$lang['rememberme'] = 'Lejo cookies hyrjeje të përhershme (më kujto mua)'; +$lang['rss_type'] = 'Tipi feed XML'; +$lang['rss_linkto'] = 'XML feed lidhet me'; +$lang['rss_content'] = 'Cfarë të shfaqësh në objektet XML feed?'; +$lang['rss_update'] = 'Intervali i përditësimit XML feed (sekonda)'; +$lang['recent_days'] = 'Sa ndryshime të fundit duhen mbajtur (ditë)'; +$lang['rss_show_summary'] = 'XML feed trego përmbledhjen në titull'; +$lang['target____wiki'] = 'Dritarja target për link-e të brendshëm'; +$lang['target____interwiki'] = 'Dritarja target për link-e interwiki'; +$lang['target____extern'] = 'Dritarja target për link-e të jashtme'; +$lang['target____media'] = 'Dritarja target për link-e mediash'; +$lang['target____windows'] = 'Dritarja target për link-e windows-i'; +$lang['proxy____host'] = 'Emri i serverit të proxy-t'; +$lang['proxy____port'] = 'Porta e proxy-t'; +$lang['proxy____user'] = 'Emri i përdoruesit për proxy-n'; +$lang['proxy____pass'] = 'Fjalëkalimi proxy-t'; +$lang['proxy____ssl'] = 'Përdor SSL për tu lidhur me proxy-n'; +$lang['safemodehack'] = 'Aktivizo hack në safemode'; +$lang['ftp____host'] = 'Server FTP për safemode hack'; +$lang['ftp____port'] = 'Porta FTP për safemode hack'; +$lang['ftp____user'] = 'Emri përdoruesit për safemode hack'; +$lang['ftp____pass'] = 'Fjalëkalimi FTP për safemode hack'; +$lang['ftp____root'] = 'Direktoria rrënjë për safemode hack'; +$lang['license_o_'] = 'Nuk u zgjodh asgjë'; +$lang['typography_o_0'] = 'Asgjë'; +$lang['typography_o_1'] = 'përjashtim i thonjëzave teke'; +$lang['typography_o_2'] = 'përfshirje e thonjëzave teke (nuk punon gjithmonë) '; +$lang['userewrite_o_0'] = 'asgjë'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = 'Brendësia DokuWiki'; +$lang['deaccent_o_0'] = 'fikur'; +$lang['deaccent_o_1'] = 'hiq theksin'; +$lang['deaccent_o_2'] = 'romanizo'; +$lang['gdlib_o_0'] = 'GD Lib nuk është e disponueshme'; +$lang['gdlib_o_1'] = 'Versioni 1.x'; +$lang['gdlib_o_2'] = 'Dallim automatik'; +$lang['rss_type_o_rss'] = 'RSS 0.91'; +$lang['rss_type_o_rss1'] = 'RSS 1.0'; +$lang['rss_type_o_rss2'] = 'RSS 2.0'; +$lang['rss_type_o_atom'] = 'Atom 0.3'; +$lang['rss_type_o_atom1'] = 'Atom 1.0'; +$lang['rss_content_o_abstract'] = 'Abstrakte'; +$lang['rss_content_o_diff'] = 'Ndryshime të njësuara'; +$lang['rss_content_o_htmldiff'] = 'Tabelë ndryshimesh e formatuar në HTML'; +$lang['rss_content_o_html'] = 'Përmbajtje e plotë faqeje HTML'; +$lang['rss_linkto_o_diff'] = 'shikimi ndryshimit'; +$lang['rss_linkto_o_page'] = 'faqja e rishikuar'; +$lang['rss_linkto_o_rev'] = 'lista e rishikimeve'; +$lang['rss_linkto_o_current'] = 'faqja aktuale'; +$lang['compression_o_0'] = 'asgjë'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = 'mos e përdor'; +$lang['xsendfile_o_1'] = 'Proprietary lighttpd header (para lëshimit 1.5)'; +$lang['xsendfile_o_2'] = 'X-Sendfile header standard'; +$lang['xsendfile_o_3'] = 'Proprietary Nginx X-Accel-Redirect header'; +$lang['showuseras_o_loginname'] = 'Emri hyrjes'; +$lang['showuseras_o_username'] = 'Emri i plotë i përdoruesit'; +$lang['showuseras_o_email'] = 'Adresa e email-it e përdoruesit (errësuar sipas kuadros mailguard)'; +$lang['showuseras_o_email_link'] = 'Adresa email e përdoruesit si një mailto: link'; +$lang['useheading_o_0'] = 'Kurrë'; +$lang['useheading_o_navigation'] = 'Vetëm për Navigim'; +$lang['useheading_o_content'] = 'Vetëm për Përmbajtje Wiki'; +$lang['useheading_o_1'] = 'Gjithmonë'; diff --git a/lib/plugins/config/lang/sr/lang.php b/lib/plugins/config/lang/sr/lang.php index 40d3afce6..f66a7f717 100644 --- a/lib/plugins/config/lang/sr/lang.php +++ b/lib/plugins/config/lang/sr/lang.php @@ -4,6 +4,7 @@ * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['menu'] = 'Подешавања'; $lang['error'] = 'Подешавања нису прихваћена јер постоји вредност са грешком, проверите измене које сте извршили и поновите слање.<br />Вредност(и) са грешком су приказане са црвеним оквиром.'; @@ -78,18 +79,20 @@ $lang['profileconfirm'] = 'Потврди промене у профил $lang['disableactions'] = 'Искључи DokuWiki наредбе'; $lang['disableactions_check'] = 'Провера'; $lang['disableactions_subscription'] = 'Претплата'; -$lang['disableactions_nssubscription'] = 'Претплата за именски простор'; $lang['disableactions_wikicode'] = 'Прикажи извор/Извези сирово'; $lang['disableactions_other'] = 'Остале наредбе (раздвојене зарезом)'; $lang['sneaky_index'] = 'По инсталацији DokuWiki ће у индексу приказати све именске просторе. Укључивањем ове опције именски простори у којима корисник нема право читања ће бити сакривени. Консеквенца је да ће и доступни подпростори бити сакривени. Ово доводи до неупотребљивости Права приступа у неким поставкама.'; $lang['auth_security_timeout'] = 'Временска пауза у аутентификацији (секунде)'; $lang['securecookie'] = 'Да ли колачићи који су постављени преко ХТТПС треба слати веб читачу само преко ХТТПС? Искључите ову опцију само ако је пријављивање на вики заштићено ССЛом а остали део викија незаштићен.'; +$lang['xmlrpc'] = 'Укључи/искључи ИксМЛ-РПЦ интерфејс'; +$lang['xmlrpcuser'] = 'Ограничи ИксМЛ-РПЦ приступ на наведене групе корисника раздвојене зарезом. Остави празно да би свима дао приступ.'; $lang['updatecheck'] = 'Провера надоградњи и сигурносних упозорења? Dokuwiki мора да контактира splitbrain.org ради добијања информација.'; $lang['userewrite'] = 'Направи леп УРЛ'; $lang['useslash'] = 'Користи косу црту у УРЛу за раздвајање именских простора '; $lang['usedraft'] = 'Аутоматски сачувај скицу у току писања измена'; $lang['sepchar'] = 'Раздвајање речи у називу странице'; $lang['canonical'] = 'Користи правилне УРЛове'; +$lang['fnencode'] = 'Метод кодирања не-ASCII имена фајлова:'; $lang['autoplural'] = 'Провери облик множине у линковима'; $lang['compression'] = 'Метод компресије за attic датотеке'; $lang['cachetime'] = 'Максимално трајање оставе (сек)'; @@ -103,13 +106,13 @@ $lang['gdlib'] = 'ГД Либ верзија'; $lang['im_convert'] = 'Путања до алатке за коверзију ИмиџМеџик '; $lang['jpg_quality'] = 'ЈПГ квалитет компресије (0-100)'; $lang['subscribers'] = 'Укључи могућност претплате за странице'; +$lang['subscribe_time'] = 'Време након ког се спискови претплатника и сижеи шаљу (у секундама); Ова цифра би требало да буде мања од цифре наведене под recent_days'; $lang['compress'] = 'Сажимај ЦСС и јаваскрипт'; $lang['hidepages'] = 'Сакриј подударне странице (на основу регуларних израза)'; $lang['send404'] = 'Пошаљи поруку "ХТТП 404/Страница не постоји" за непостојеће странице'; $lang['sitemap'] = 'Генериши Гугл мапу сајта (дан)'; $lang['broken_iua'] = 'Да ли је функција ignore_user_abort function не ради на вашем систему? Ово може проузроковати неиндексирање података за претрагу. ИИС+ПХП/ЦГИ је често ван функције. Погледајте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">баг 852</a> за више информација.'; $lang['xsendfile'] = 'Користи заглавље X-Sendfile да би веб сервер могао да испоручује статичке датотеке? Веб сервер треба да подржава ову функцију.'; -$lang['xmlrpc'] = 'Укључи/искључи ИксМЛ-РПЦ прикључак'; $lang['renderer_xhtml'] = 'Исцртавање користи главни (xhtml) вики испис'; $lang['renderer__core'] = '%s (dokuwiki језгро)'; $lang['renderer__plugin'] = '%s (додатак)'; @@ -125,11 +128,12 @@ $lang['target____interwiki'] = 'Циљни прозор за међувики $lang['target____extern'] = 'Циљни прозор за спољне линкове'; $lang['target____media'] = 'Циљни прозор за медијске линкове'; $lang['target____windows'] = 'Циљни прозор за Виндоуз линкове'; -$lang['proxy____host'] = 'Назив посредника'; -$lang['proxy____port'] = 'Порт посредника'; -$lang['proxy____user'] = 'Корисничко име на посреднику'; -$lang['proxy____pass'] = 'Лозинка на посреднику'; -$lang['proxy____ssl'] = 'Користи ССЛ за повезивање са посредником'; +$lang['proxy____host'] = 'Назив посредника (проксија)'; +$lang['proxy____port'] = 'Порт посредника (проксија)'; +$lang['proxy____user'] = 'Корисничко име на посреднику (проксију)'; +$lang['proxy____pass'] = 'Лозинка на посреднику (проксију)'; +$lang['proxy____ssl'] = 'Користи ССЛ за повезивање са посредником (проксијем)'; +$lang['proxy____except'] = 'Редован израз који би требало да се подудара са веб адресом странице за коју треба прескочити посредника (прокси).'; $lang['safemodehack'] = 'Укључи преправку за безбедни режим'; $lang['ftp____host'] = 'ФТП сервер за безбедни режим'; $lang['ftp____port'] = 'ФТП порт за безбедни режим'; @@ -177,3 +181,4 @@ $lang['useheading_o_0'] = 'Никада'; $lang['useheading_o_navigation'] = 'Сами навигација'; $lang['useheading_o_content'] = 'Само за садржај викија'; $lang['useheading_o_1'] = 'Увек'; +$lang['readdircache'] = 'Максимално време трајања за readdir cache (у секундама)'; diff --git a/lib/plugins/config/lang/sv/lang.php b/lib/plugins/config/lang/sv/lang.php index 79e827542..3b5752ea1 100644 --- a/lib/plugins/config/lang/sv/lang.php +++ b/lib/plugins/config/lang/sv/lang.php @@ -91,7 +91,6 @@ $lang['profileconfirm'] = 'Bekräfta ändringarna i profilen med lösenor $lang['disableactions'] = 'Stäng av funktioner i DokuWiki'; $lang['disableactions_check'] = 'Kontroll'; $lang['disableactions_subscription'] = 'Prenumerera/Säg upp prenumeration'; -$lang['disableactions_nssubscription'] = 'Namnrymd Prenumerera/Säg upp prenumeration'; $lang['disableactions_wikicode'] = 'Visa källkod/Exportera råtext'; $lang['disableactions_other'] = 'Andra funktioner (kommaseparerade)'; $lang['sneaky_index'] = 'Som standard visar DokuWiki alla namnrymder på indexsidan. Genom att aktivera det här valet döljer man namnrymder som användaren inte har behörighet att läsa. Det kan leda till att man döljer åtkomliga undernamnrymder, och gör indexet oanvändbart med vissa ACL-inställningar.'; diff --git a/lib/plugins/config/lang/uk/lang.php b/lib/plugins/config/lang/uk/lang.php index 73f39ce79..f98e9463c 100644 --- a/lib/plugins/config/lang/uk/lang.php +++ b/lib/plugins/config/lang/uk/lang.php @@ -8,6 +8,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['menu'] = 'Настройка конфігурації'; $lang['error'] = 'Параметри не збережено через помилкові значення. Будь ласка, перегляньте ваші зміни та спробуйте ще раз @@ -84,7 +85,6 @@ $lang['profileconfirm'] = 'Підтверджувати зміни про $lang['disableactions'] = 'Заборонити дії ДокуВікі'; $lang['disableactions_check'] = 'Перевірити'; $lang['disableactions_subscription'] = 'Підписатись/Відписатись'; -$lang['disableactions_nssubscription'] = 'Підписатися/Відписатися на простір імен'; $lang['disableactions_wikicode'] = 'Переглянути код/Експорт'; $lang['disableactions_other'] = 'Інші дії (розділені комами)'; $lang['sneaky_index'] = 'За замовчуванням, ДокуВікі показує всі простори імен в змісті. Активація цієї опції сховає ті простори, де користувач не має прав на читання. Результатом може бути неможливість доступу до певних відкритих просторів імен. Це зробить неможливим використання змісту при певних конфігураціях.'; @@ -98,6 +98,7 @@ $lang['useslash'] = 'Слеш, як розділювач прост $lang['usedraft'] = 'Автоматично зберігати чернетку при редагуванні'; $lang['sepchar'] = 'Розділювач слів у імені сторінки'; $lang['canonical'] = 'Канонічні URL'; +$lang['fnencode'] = 'Метод для кодування імен файлів, що містять не ASCII символи.'; $lang['autoplural'] = 'Перевіряти множину у посиланнях'; $lang['compression'] = 'Метод стиснення attic файлів'; $lang['cachetime'] = 'Максимальний вік кешу (сек)'; @@ -111,6 +112,7 @@ $lang['gdlib'] = 'Версія GD Lib'; $lang['im_convert'] = 'Шлях до ImageMagick'; $lang['jpg_quality'] = 'Якість компресії JPG (0-100)'; $lang['subscribers'] = 'Підписка на зміни'; +$lang['subscribe_time'] = 'Час, після якого список підписки та дайджести будуть надіслані (сек.); Має бути меншим за час, вказаний у перемінній recent_days'; $lang['compress'] = 'Стискати файли CSS та javascript'; $lang['hidepages'] = 'Ховати сторінки (regular expressions)'; $lang['send404'] = 'Надсилати "HTTP 404/Сторінка не знайдена " для неіснуючих сторінок'; @@ -137,6 +139,7 @@ $lang['proxy____port'] = 'Порт Proxy'; $lang['proxy____user'] = 'Користувач Proxy'; $lang['proxy____pass'] = 'Пароль Proxy'; $lang['proxy____ssl'] = 'Використовувати ssl для з\'єднання з Proxy'; +$lang['proxy____except'] = 'Регулярний вираз для веб-адреси, яку проксі-сервер пропустить.'; $lang['safemodehack'] = 'Увімкнути хак safemode'; $lang['ftp____host'] = 'FTP-сервер для хаку safemode'; $lang['ftp____port'] = 'FTP-порт для хаку safemode'; @@ -184,3 +187,4 @@ $lang['useheading_o_0'] = 'Ніколи'; $lang['useheading_o_navigation'] = 'Лише для навігації'; $lang['useheading_o_content'] = 'Лише у змісті'; $lang['useheading_o_1'] = 'Завжди'; +$lang['readdircache'] = 'Макссимальний вік для файлів кешу (сек.)'; diff --git a/lib/plugins/config/lang/zh-tw/lang.php b/lib/plugins/config/lang/zh-tw/lang.php index 0bb3f5a73..c363fb709 100644 --- a/lib/plugins/config/lang/zh-tw/lang.php +++ b/lib/plugins/config/lang/zh-tw/lang.php @@ -83,7 +83,6 @@ $lang['profileconfirm'] = '修改個人資料時需要確認密碼'; $lang['disableactions'] = '停用DokuWiki功能'; $lang['disableactions_check'] = '檢查'; $lang['disableactions_subscription'] = '訂閱/取消訂閱'; -$lang['disableactions_nssubscription'] = '命名空間訂閱/退訂'; $lang['disableactions_wikicode'] = '查看源文件/導出源文件'; $lang['disableactions_other'] = '其他功能(以逗號分隔)'; $lang['sneaky_index'] = '默認情況下,DokuWiki 在索引頁會顯示所有 namespace。啟用該選項能隱藏那些用戶沒有權限閱讀的頁面。但也可能將用戶能夠閱讀的子頁面一並隱藏。這有可能導致在特定 ACL 設置下,索引功能不可用。'; diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php index d5f8b653c..279d7c5b7 100644 --- a/lib/plugins/config/lang/zh/lang.php +++ b/lib/plugins/config/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['menu'] = '配置设置'; $lang['error'] = '由于非法参数,设置没有更新。请检查您做的改动并重新提交。 @@ -84,12 +85,12 @@ $lang['profileconfirm'] = '更新个人信息时需要输入当前密码' $lang['disableactions'] = '停用 DokuWiki 功能'; $lang['disableactions_check'] = '检查'; $lang['disableactions_subscription'] = '订阅/退订'; -$lang['disableactions_nssubscription'] = '命名空间订阅/退订'; $lang['disableactions_wikicode'] = '查看源文件/导出源文件'; $lang['disableactions_other'] = '其他功能(用英文逗号分隔)'; $lang['sneaky_index'] = '默认情况下,DokuWiki 在索引页会显示所有 namespace。启用该选项能隐藏那些用户没有权限阅读的页面。但也可能将用户能够阅读的子页面一并隐藏。这有可能导致在特定 ACL 设置下,索引功能不可用。'; $lang['auth_security_timeout'] = '认证安全超时(秒)'; $lang['securecookie'] = '要让浏览器须以HTTPS方式传送在HTTPS会话中设置的cookies吗?请只在登录过程为SSL加密而浏览维基为明文的情况下打开此选项。'; +$lang['xmlrpc'] = '启用/禁用 XML-RPC 交互界面。'; $lang['updatecheck'] = '自动检查更新并接收安全警告吗?开启该功能后 DokuWiki 将自动访问 splitbrain.org。'; $lang['userewrite'] = '使用更整洁的 URL'; $lang['useslash'] = '在 URL 中使用斜杠作为命名空间的分隔符'; @@ -115,7 +116,6 @@ $lang['send404'] = '发送 "HTTP 404/页面没有找到" 错误信 $lang['sitemap'] = '生成 Google sitemap(天)'; $lang['broken_iua'] = 'ignore_user_abort 功能失效了?这有可能导致搜索索引不可用。IIS+PHP/CGI 已损坏。请参阅 <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a> 获取更多信息。'; $lang['xsendfile'] = '使用 X-Sendfile 头让服务器发送状态文件?您的服务器需要支持该功能。'; -$lang['xmlrpc'] = '启用/禁用 XML-RPC 交互界面。'; $lang['renderer_xhtml'] = '主维基页面 (xhtml) 输出使用的渲染'; $lang['renderer__core'] = '%s(DokuWiki 内核)'; $lang['renderer__plugin'] = '%s(插件)'; diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index d995e8a30..4f2129c70 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -182,8 +182,8 @@ if (!class_exists('configuration')) { if ($this->_format == 'php') { $out .= '<'.'?php'."\n". "/*\n". - " * ".$header." \n". - " * Auto-generated by ".$id." plugin \n". + " * ".$header."\n". + " * Auto-generated by ".$id." plugin\n". " * Run for user: ".$_SERVER['REMOTE_USER']."\n". " * Date: ".date('r')."\n". " */\n\n"; @@ -343,7 +343,7 @@ if (!class_exists('setting')) { var $_cautionList = array( 'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger', 'start' => 'warning', 'camelcase' => 'warning', 'deaccent' => 'warning', 'sepchar' => 'warning', 'compression' => 'warning', 'xsendfile' => 'warning', 'renderer_xhtml' => 'warning', - 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security' + 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security', 'fnencode' => 'warning' ); function setting($key, $params=NULL) { @@ -528,8 +528,6 @@ if (!class_exists('setting_password')) { } if (!class_exists('setting_email')) { - - require_once(DOKU_INC.'inc/mail.php'); if (!defined('SETTING_EMAIL_PATTERN')) define('SETTING_EMAIL_PATTERN','<^'.PREG_PATTERN_VALID_EMAIL.'$>'); class setting_email extends setting_string { @@ -599,7 +597,7 @@ if (!class_exists('setting_richemail')) { $addr = $test; } - if (!mail_isvalid($addr)) { + if ($test !== '' && !mail_isvalid($addr)) { $this->_error = true; $this->_input = $input; return false; @@ -629,7 +627,8 @@ if (!class_exists('setting_numeric')) { $out = ''; if ($fmt=='php') { - $out .= '$'.$var."['".$this->_out_key()."'] = ".$this->_local.";\n"; + $local = $this->_local === '' ? "''" : $this->_local; + $out .= '$'.$var."['".$this->_out_key()."'] = ".$local.";\n"; } return $out; diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index 742faf387..edba65262 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -127,8 +127,8 @@ $meta['profileconfirm'] = array('onoff'); $meta['rememberme'] = array('onoff'); $meta['registernotify'] = array('email'); $meta['disableactions'] = array('disableactions', - '_choices' => array('backlink','index','recent','revisions','search','subscription','nssubscription','register','resendpwd','profile','edit','wikicode','check'), - '_combine' => array('subscription' => array('subscribe','unsubscribe'), 'wikicode' => array('source','export_raw'), 'nssubscription' => array('subscribens','unsubscribens'))); + '_choices' => array('backlink','index','recent','revisions','search','subscription','register','resendpwd','profile','edit','wikicode','check'), + '_combine' => array('subscription' => array('subscribe','unsubscribe'), 'wikicode' => array('source','export_raw'))); $meta['sneaky_index'] = array('onoff'); $meta['auth_security_timeout'] = array('numeric'); $meta['securecookie'] = array('onoff'); @@ -148,6 +148,7 @@ $meta['htmlok'] = array('onoff'); $meta['phpok'] = array('onoff'); $meta['notify'] = array('email', '_multiple' => true); $meta['subscribers'] = array('onoff'); +$meta['subscribe_time'] = array('numeric'); $meta['locktime'] = array('numeric'); $meta['cachetime'] = array('numeric'); @@ -170,6 +171,7 @@ $meta['userewrite'] = array('multichoice','_choices' => array(0,1,2)); $meta['useslash'] = array('onoff'); $meta['sepchar'] = array('sepchar'); $meta['canonical'] = array('onoff'); +$meta['fnencode'] = array('multichoice','_choices' => array('url','safe','utf-8')); $meta['autoplural'] = array('onoff'); $meta['mailfrom'] = array('richemail'); $meta['compress'] = array('onoff'); @@ -187,6 +189,7 @@ $meta['rss_show_summary'] = array('onoff'); $meta['broken_iua'] = array('onoff'); $meta['xsendfile'] = array('multichoice','_choices' => array(0,1,2,3)); $meta['renderer_xhtml'] = array('renderer','_format' => 'xhtml','_choices' => array('xhtml')); +$meta['readdircache'] = array('numeric'); $meta['_network'] = array('fieldset'); $meta['proxy____host'] = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i'); @@ -194,6 +197,7 @@ $meta['proxy____port'] = array('numericopt'); $meta['proxy____user'] = array('string'); $meta['proxy____pass'] = array('password','_code' => 'base64'); $meta['proxy____ssl'] = array('onoff'); +$meta['proxy____except'] = array('string'); $meta['safemodehack'] = array('onoff'); $meta['ftp____host'] = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i'); $meta['ftp____port'] = array('numericopt'); diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php index dc0a7d2fc..ba2831a90 100644 --- a/lib/plugins/info/syntax.php +++ b/lib/plugins/info/syntax.php @@ -9,9 +9,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'syntax.php'); - /** * All DokuWiki plugins to extend the parser/rendering mechanism * need to inherit from this class diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php index 4f8cc01a2..c662b565a 100644 --- a/lib/plugins/plugin/admin.php +++ b/lib/plugins/plugin/admin.php @@ -13,8 +13,6 @@ if(!defined('DOKU_INC')) die(); // - allow a plugin to contain extras to be copied to the current template (extra/tpl/) // - to images (lib/images/) [ not needed, should go in lib/plugin/images/ ] -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'admin.php'); require_once(DOKU_PLUGIN."/plugin/classes/ap_manage.class.php"); //--------------------------[ GLOBALS ]------------------------------------------------ @@ -111,7 +109,7 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin { $class = 'ap_manage'; } - $this->handler = & new $class($this, $this->plugin); + $this->handler = new $class($this, $this->plugin); $this->msg = $this->handler->process(); } @@ -124,7 +122,7 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin { $this->setupLocale(); $this->_get_plugin_list(); - if ($this->handler === NULL) $this->handler = & new ap_manage($this, $this->plugin); + if ($this->handler === NULL) $this->handler = new ap_manage($this, $this->plugin); ptln('<div id="plugin__manager">'); $this->handler->html(); diff --git a/lib/plugins/plugin/classes/ap_download.class.php b/lib/plugins/plugin/classes/ap_download.class.php index 90e5de53b..beba0ab07 100644 --- a/lib/plugins/plugin/classes/ap_download.class.php +++ b/lib/plugins/plugin/classes/ap_download.class.php @@ -197,17 +197,15 @@ class ap_download extends ap_manage { $ext = $this->guess_archive($file); if (in_array($ext, array('tar','bz','gz'))) { - require_once(DOKU_INC."inc/TarLib.class.php"); - switch($ext){ case 'bz': - $compress_type = COMPRESS_BZIP; + $compress_type = TarLib::COMPRESS_BZIP; break; case 'gz': - $compress_type = COMPRESS_GZIP; + $compress_type = TarLib::COMPRESS_GZIP; break; default: - $compress_type = COMPRESS_NONE; + $compress_type = TarLib::COMPRESS_NONE; } $tar = new TarLib($file, $compress_type); @@ -217,7 +215,7 @@ class ap_download extends ap_manage { } return false; } - $ok = $tar->Extract(FULL_ARCHIVE, $target, '', 0777); + $ok = $tar->Extract(TarLib::FULL_ARCHIVE, $target, '', 0777); if($ok<1){ if($conf['allowdebug']){ @@ -227,7 +225,6 @@ class ap_download extends ap_manage { } return true; } else if ($ext == 'zip') { - require_once(DOKU_INC."inc/ZipLib.class.php"); $zip = new ZipLib(); $ok = $zip->Extract($file, $target); diff --git a/lib/plugins/plugin/classes/ap_info.class.php b/lib/plugins/plugin/classes/ap_info.class.php index fcadb4599..cebbf090a 100644 --- a/lib/plugins/plugin/classes/ap_info.class.php +++ b/lib/plugins/plugin/classes/ap_info.class.php @@ -15,7 +15,7 @@ class ap_info extends ap_manage { foreach ($component_list as $component) { - if ($obj = & plugin_load($component['type'],$component['name']) === NULL) continue; + if ($obj = & plugin_load($component['type'],$component['name'],false,true) === NULL) continue; $compname = explode('_',$component['name']); if($compname[1]){ diff --git a/lib/plugins/plugin/classes/ap_manage.class.php b/lib/plugins/plugin/classes/ap_manage.class.php index 297764ebb..eb5348672 100644 --- a/lib/plugins/plugin/classes/ap_manage.class.php +++ b/lib/plugins/plugin/classes/ap_manage.class.php @@ -113,23 +113,14 @@ class ap_manage { * Refresh plugin list */ function refresh() { - global $MSG,$config_cascade; - - //are there any undisplayed messages? keep them in session for display - if (isset($MSG) && count($MSG)){ - //reopen session, store data and close session again - @session_start(); - $_SESSION[DOKU_COOKIE]['msg'] = $MSG; - session_write_close(); - } + global $config_cascade; // expire dokuwiki caches // touching local.php expires wiki page, JS and CSS caches @touch(reset($config_cascade['main']['local'])); // update latest plugin date - FIXME - header('Location: '.wl($ID).'?do=admin&page=plugin'); - exit(); + send_redirect(wl($ID,array('do'=>'admin','page'=>'plugin'),true)); } /** diff --git a/lib/plugins/plugin/lang/ar/admin_plugin.txt b/lib/plugins/plugin/lang/ar/admin_plugin.txt new file mode 100644 index 000000000..1aeaf13ad --- /dev/null +++ b/lib/plugins/plugin/lang/ar/admin_plugin.txt @@ -0,0 +1,4 @@ +====== إدارة الإضافات ====== + +على هذه الصفحة يمكنك إدارة كل ما يتعلق ب[[doku>plugins|إضافات]] دوكي ويكي. لتتمكن من تنزيل و تثبيت الإضافات يجب أن يكون دليل الاضافات قابلا للكتابة من خادوم الوب. + diff --git a/lib/plugins/plugin/lang/ar/lang.php b/lib/plugins/plugin/lang/ar/lang.php index cda6f4a63..55987881c 100644 --- a/lib/plugins/plugin/lang/ar/lang.php +++ b/lib/plugins/plugin/lang/ar/lang.php @@ -3,22 +3,49 @@ * Arabic language file * * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ -$lang['btn_delete'] = 'حذف'; -$lang['btn_settings'] = 'خيارات'; -$lang['btn_download'] = 'تحميل'; -$lang['btn_enable'] = 'حفظ'; +$lang['menu'] = 'إدارة الملحقات'; +$lang['download'] = 'نزّل و ثبت اضافة جديدة'; +$lang['manage'] = 'الإضافات المثبتة'; +$lang['btn_info'] = 'معلومات'; +$lang['btn_update'] = 'حدّث'; +$lang['btn_delete'] = 'احذف'; +$lang['btn_settings'] = 'إعدادات'; +$lang['btn_download'] = 'نزل'; +$lang['btn_enable'] = 'احفظ'; $lang['url'] = 'رابط'; -$lang['source'] = 'مصدر'; -$lang['unknown'] = 'غير معروف'; -$lang['updating'] = 'يتم التحديث ...'; -$lang['update_none'] = 'لم يتم العثور على تحديثات'; -$lang['deleting'] = 'يتم الحذف ... '; -$lang['downloading'] = 'يتم التحميل .. '; +$lang['installed'] = 'ثُبتت:'; +$lang['lastupdate'] = 'آخر تحديث:'; +$lang['source'] = 'المصدر:'; +$lang['unknown'] = 'مجهول'; +$lang['updating'] = 'تُحدث ...'; +$lang['updated'] = 'الاضافة %s حُدثت بنجاح'; +$lang['updates'] = 'الاضافة التالية حُدثت بنجاح'; +$lang['update_none'] = 'لا يوجد تحديثات.'; +$lang['deleting'] = 'تُحذف ... '; +$lang['deleted'] = 'حُذفت الإضافة %s.'; +$lang['downloading'] = 'يُنزل ...'; +$lang['downloaded'] = 'الاضافة %s ثبتت بنجاح'; +$lang['downloads'] = 'الاضافة التالية ثبتت بنجاح:'; +$lang['download_none'] = 'لم يجد إضافة، أو ان هناك مشكلة غير معروفة أثناء التنزيل و التثبيت.'; +$lang['plugin'] = 'الإضافة:'; +$lang['components'] = 'المكون:'; +$lang['noinfo'] = 'لم تعطي الإضافة أية معلومة، قد تكون معطوبة.'; $lang['name'] = 'الاسم :'; $lang['date'] = 'التاريخ :'; $lang['type'] = 'النوع :'; $lang['desc'] = 'الوصف :'; $lang['author'] = 'الكاتب :'; -$lang['www'] = 'شبكة :'; -$lang['error'] = 'ظهر خطأ غير معروف .'; +$lang['www'] = 'الشابكة :'; +$lang['error'] = 'حث خطأ مجهول.'; +$lang['error_download'] = 'تعذر تنزيل ملف الاضافة: %s'; +$lang['error_badurl'] = 'اشتبه بعنوان خاطئ - تعذر الحصول على الاسم من العنوان'; +$lang['error_dircreate'] = 'تعذر إنشاء مجلد مؤقت للتنزيل'; +$lang['error_decompress'] = 'تعذر على مدير الاضافات فك ضغط الملف المُنزّل. قد يكون ذلك نتيجة لتنزيل خاطئ، في هذه الحالة أعد المحاولة; أو ان هيئة الضغط غير معروفة، في هذه الحالة عليك تنزيل و تثبيت الاضافة يدويا.'; +$lang['error_copy'] = 'كان هناك خطأ في نسخ ملف عند محاولة تثبيت ملفات للإضافة <em>%s</em>: قد يكون القرص ممتلئا أو أن صلاحيات الوصول للملف خاطئة. لربما نتج عن ذلك اضافة مثبته جزئيا تجعل نظام الويكي غير ثابت.'; +$lang['error_delete'] = 'كان هناك خطأ عند محاولة حذف الاضافة <em>%s</em>. السبب الاكثر احتمالا هو صلاحيات غير كافية على الملف أو المجلد'; +$lang['enabled'] = 'الاضافة %s فُعلت. '; +$lang['notenabled'] = 'تعذر تفعيل الاضافة %s، تحقق من اذونات الملف.'; +$lang['disabled'] = 'عُطلت الإضافة %s.'; +$lang['notdisabled'] = 'تعذر تعطيل الإضافة %s، تحقق من اذونات الملف.'; diff --git a/lib/plugins/plugin/lang/cs/lang.php b/lib/plugins/plugin/lang/cs/lang.php index d56f52be2..c15a5ca21 100644 --- a/lib/plugins/plugin/lang/cs/lang.php +++ b/lib/plugins/plugin/lang/cs/lang.php @@ -7,6 +7,8 @@ * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['menu'] = 'Správa pluginů'; $lang['download'] = 'Stáhnout a instalovat plugin'; diff --git a/lib/plugins/plugin/lang/da/lang.php b/lib/plugins/plugin/lang/da/lang.php index 98d9f365e..841d246df 100644 --- a/lib/plugins/plugin/lang/da/lang.php +++ b/lib/plugins/plugin/lang/da/lang.php @@ -9,6 +9,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['menu'] = 'Håndter udvidelser'; $lang['download'] = 'Hent og tilføj ny udvidelse'; diff --git a/lib/plugins/plugin/lang/de-informal/admin_plugin.txt b/lib/plugins/plugin/lang/de-informal/admin_plugin.txt index 663313436..576797d57 100644 --- a/lib/plugins/plugin/lang/de-informal/admin_plugin.txt +++ b/lib/plugins/plugin/lang/de-informal/admin_plugin.txt @@ -1,3 +1,3 @@ ===== Erweiterungsmanagement ===== -Auf dieser Seite kannst du alles anpassen was mit DokuWiki zu tun hat [[doku>plugins|plugins]]. Der Ordner der Erweiterungen muss für den Webserver beschreibbar sein, um Erweiterungen herunterladen und installieren zu können.
\ No newline at end of file +Auf dieser Seite kannst du alles anpassen was mit den DokuWiki [[doku>plugins|Erweiterungen]] zu tun hat. Der Ordner der Erweiterungen muss für den Webserver beschreibbar sein, um Erweiterungen herunterladen und installieren zu können.
\ No newline at end of file diff --git a/lib/plugins/plugin/lang/de-informal/lang.php b/lib/plugins/plugin/lang/de-informal/lang.php index 21172a179..f906bf6aa 100644 --- a/lib/plugins/plugin/lang/de-informal/lang.php +++ b/lib/plugins/plugin/lang/de-informal/lang.php @@ -4,10 +4,11 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['menu'] = 'Plugins verwalten'; -$lang['download'] = 'Herunterladen und installieren eines neuen Plugins'; -$lang['manage'] = 'Installierte Plugins'; +$lang['download'] = 'Herunterladen und installieren einer neuen Erweiterung'; +$lang['manage'] = 'Installierte Erweiterungen'; $lang['btn_info'] = 'Information'; $lang['btn_update'] = 'aktualisieren'; $lang['btn_delete'] = 'löschen'; @@ -23,15 +24,15 @@ $lang['updating'] = 'Aktualisiere...'; $lang['updated'] = 'Erweiterung %s wurde erfolgreich aktualisiert.'; $lang['updates'] = 'Die folgenden Erweiterungen wurden erfolgreich aktualisiert.'; $lang['update_none'] = 'Keine Aktualisierungen gefunden.'; -$lang['deleting'] = 'Loesche...'; +$lang['deleting'] = 'Lösche...'; $lang['deleted'] = 'Erweiterung %s wurde gelöscht.'; $lang['downloading'] = 'Herunterladen...'; $lang['downloaded'] = 'Erweiterung %s wurde erfolgreich installiert'; $lang['downloads'] = 'Die folgenden Erweiterungen wurden erfolgreich installiert:'; $lang['download_none'] = 'Keine Erweiterungen gefunden oder es trat ein unbekanntest Problem beim Herunterladen und Installieren auf.'; -$lang['plugin'] = 'Plugin:'; +$lang['plugin'] = 'Erweiterung:'; $lang['components'] = 'Komponenten'; -$lang['noinfo'] = 'Diese Erweiterung gab keine Information zurück - es könnte ungültig sein.'; +$lang['noinfo'] = 'Diese Erweiterung gab keine Information zurück - sie könnte ungültig sein.'; $lang['name'] = 'Name:'; $lang['date'] = 'Datum:'; $lang['type'] = 'Typ:'; @@ -43,8 +44,8 @@ $lang['error_download'] = 'Nicht möglich die Erweiterung herunterzuladen $lang['error_badurl'] = 'Vermute schlechte URL - nicht möglich den Dateinamen aus der URL zu ermitteln'; $lang['error_dircreate'] = 'Nicht möglich einen temporären Ordner zu erstellen um den Download zu empfangen.'; $lang['error_decompress'] = 'Dem Erweiterungsmanager war es nicht möglich die heruntergeladene Datei zu dekomprimieren. Dies kann an einem defekten Download liegen, in diesem Fall sollten Sie es erneut versuchen; oder das Format mit dem die Datei komprimiert ist, ist unbekannt, da müssen Sie die Erweiterung manuell herunterladen und installieren. '; -$lang['error_copy'] = 'Es trat ein Dateifehler beim Kopieren der Installationsdateien für Plugn <em>%s</em> auf: Die Festplatte könnte voll oder die Zugriffsrechte verweigert worden sein. Dies führt zu einem teilweise installierten Plugin und belässt dein Wiki in einem instabilen Zustand.'; -$lang['error_delete'] = 'Es trat ein Fehler beim Löschen des Plugins <em>%s</em> auf. Die whrscheinlichste Ursache ist eine unzureichende Datei- oder Ordnerzugriffserlaubnis.'; +$lang['error_copy'] = 'Es trat ein Dateifehler beim Kopieren der Installationsdateien für die Erweiterung <em>%s</em> auf: Die Festplatte könnte voll oder die Zugriffsrechte verweigert worden sein. Dies führt zu einer teilweise installierten Erweiterung und belässt dein Wiki in einem instabilen Zustand.'; +$lang['error_delete'] = 'Es trat ein Fehler beim Löschen der Erweiterung <em>%s</em> auf. Die wahrscheinlichste Ursache ist eine unzureichende Datei- oder Ordnerzugriffserlaubnis.'; $lang['enabled'] = 'Erweiterung %s aktiviert.'; $lang['notenabled'] = 'Erweiterung %s konnte nicht aktiviert werden. Überprüfen sie die Zugriffsberechtigung der Datei.'; $lang['disabled'] = 'Erweiterung %s deaktiviert.'; diff --git a/lib/plugins/plugin/lang/de/lang.php b/lib/plugins/plugin/lang/de/lang.php index ff59cedce..e981f4a60 100644 --- a/lib/plugins/plugin/lang/de/lang.php +++ b/lib/plugins/plugin/lang/de/lang.php @@ -13,6 +13,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['menu'] = 'Plugins verwalten'; $lang['download'] = 'Neues Plugin herunterladen und installieren'; diff --git a/lib/plugins/plugin/lang/el/lang.php b/lib/plugins/plugin/lang/el/lang.php index 7715667a3..d28a04ae2 100644 --- a/lib/plugins/plugin/lang/el/lang.php +++ b/lib/plugins/plugin/lang/el/lang.php @@ -10,6 +10,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['menu'] = 'Διαχείριση Επεκτάσεων'; $lang['download'] = 'Κατεβάστε και εγκαταστήστε μια νέα επέκταση (plugin)'; diff --git a/lib/plugins/plugin/lang/es/lang.php b/lib/plugins/plugin/lang/es/lang.php index 08ab38196..d26218b2d 100644 --- a/lib/plugins/plugin/lang/es/lang.php +++ b/lib/plugins/plugin/lang/es/lang.php @@ -17,6 +17,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['menu'] = 'Administración de Plugins'; $lang['download'] = 'Descargar e instalar un nuevo plugin'; diff --git a/lib/plugins/plugin/lang/fr/admin_plugin.txt b/lib/plugins/plugin/lang/fr/admin_plugin.txt index 28696ebb4..c43e44684 100644 --- a/lib/plugins/plugin/lang/fr/admin_plugin.txt +++ b/lib/plugins/plugin/lang/fr/admin_plugin.txt @@ -1,4 +1,4 @@ -====== Gestion des plugins ====== +====== Gestion des modules externes ====== -Cette page vous permet de gérer tout ce qui a trait aux [[doku>plugins|plugins]] de DokuWiki. Pour télécharger et installer un plugin, le répertoire plugin doit être accessible en écriture pour le serveur Web. +Cette page vous permet de gérer tout ce qui a trait aux [[doku>plugins|modules externes]] de DokuWiki. Pour télécharger et installer un module, le répertoire « ''plugin'' » doit être accessible en écriture pour le serveur Web. diff --git a/lib/plugins/plugin/lang/fr/lang.php b/lib/plugins/plugin/lang/fr/lang.php index 43c4e9c5f..79080f5f3 100644 --- a/lib/plugins/plugin/lang/fr/lang.php +++ b/lib/plugins/plugin/lang/fr/lang.php @@ -12,14 +12,17 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ -$lang['menu'] = 'Gestion des module externes'; +$lang['menu'] = 'Gestion des modules externes'; $lang['download'] = 'Télécharger et installer un nouveau module'; -$lang['manage'] = 'Plugins installés'; -$lang['btn_info'] = 'info'; -$lang['btn_update'] = 'rafraîchir'; -$lang['btn_delete'] = 'effacer'; -$lang['btn_settings'] = 'paramètres'; +$lang['manage'] = 'Modules installés'; +$lang['btn_info'] = 'Info'; +$lang['btn_update'] = 'Mettre à jour'; +$lang['btn_delete'] = 'Supprimer'; +$lang['btn_settings'] = 'Paramètres'; $lang['btn_download'] = 'Télécharger'; $lang['btn_enable'] = 'Enregistrer'; $lang['url'] = 'URL'; @@ -27,33 +30,33 @@ $lang['installed'] = 'Installé :'; $lang['lastupdate'] = 'Dernière mise à jour :'; $lang['source'] = 'Source :'; $lang['unknown'] = 'inconnu'; -$lang['updating'] = 'Mise à jour...'; -$lang['updated'] = 'Plugin %s mis à jour avec succès'; +$lang['updating'] = 'Mise à jour…'; +$lang['updated'] = 'Modules %s mis à jour avec succès'; $lang['updates'] = 'Les modules suivants ont été mis à jour avec succès'; $lang['update_none'] = 'Aucune mise à jour n\'a été trouvée.'; -$lang['deleting'] = 'Suppression...'; -$lang['deleted'] = 'Plugin %s supprimé.'; -$lang['downloading'] = 'Téléchargement...'; -$lang['downloaded'] = 'Plugin %s installé avec succès'; +$lang['deleting'] = 'Suppression…'; +$lang['deleted'] = 'Module %s supprimé.'; +$lang['downloading'] = 'Téléchargement…'; +$lang['downloaded'] = 'Module %s installé avec succès'; $lang['downloads'] = 'Les modules suivants ont été installés avec succès :'; $lang['download_none'] = 'Aucun module n\'était trouvé, ou un problème inconnu est survenu durant le téléchargement et l\'installation.'; -$lang['plugin'] = 'Plugin :'; +$lang['plugin'] = 'Module :'; $lang['components'] = 'Composants'; $lang['noinfo'] = 'Ce module externe n\'a transmis aucune information, il pourrait être invalide.'; $lang['name'] = 'Nom :'; $lang['date'] = 'Date :'; $lang['type'] = 'Type :'; -$lang['desc'] = 'Description :'; +$lang['desc'] = 'Description :'; $lang['author'] = 'Auteur :'; -$lang['www'] = 'Web :'; +$lang['www'] = 'Site web :'; $lang['error'] = 'Une erreur inconnue est survenue.'; -$lang['error_download'] = 'Impossible de télécharger le fichier du plugin: %s'; -$lang['error_badurl'] = 'URL suspecte - impossible de déterminer le nom du fichier à partir de l\'URL'; +$lang['error_download'] = 'Impossible de télécharger le fichier du module : %s'; +$lang['error_badurl'] = 'URL suspecte. Impossible de déterminer le nom du fichier à partir de l\'URL'; $lang['error_dircreate'] = 'Impossible de créer le répertoire temporaire pour réceptionner le téléchargement'; -$lang['error_decompress'] = 'Le gestionnaire de plugin a été incapable de décompresser le fichier téléchargé. Ceci peut être le résultat d\'un mauvais téléchargement, auquel cas vous devriez réessayer ; ou bien le format de compression est inconnu, auquel cas vous devez télécharger et installer le plugin manuellement.'; -$lang['error_copy'] = 'Une erreur de copie est survenue lors de l\'installation des fichiers du plugin <em>%s</em>: votre disque est peut-être plein ou les droits d\'accès au fichier sont incorrects. Il a pu en résulter une installation partielle du plugin rendant votre installation du wiki instable.'; -$lang['error_delete'] = 'Une erreur est survenue à la suppression du plugin <em>%s</em>. La raison la plus probable est l\'insuffisance des droits sur les fichiers ou le répertoire.'; -$lang['enabled'] = 'Plugin %s activé.'; -$lang['notenabled'] = 'Le plugin %s n\'a pas pu être activé, vérifiez le fichier des permissions.'; -$lang['disabled'] = 'Plugin %s désactivé.'; -$lang['notdisabled'] = 'Le plugin %s n\'a pas pu être désactivé, vérifiez le fichier des permissions.'; +$lang['error_decompress'] = 'Le gestionnaire de modules externes a été incapable de décompresser le fichier téléchargé. Ceci peut être le résultat d\'un mauvais téléchargement, auquel cas vous devriez réessayer ; ou bien le format de compression est inconnu, auquel cas vous devez télécharger et installer le module manuellement.'; +$lang['error_copy'] = 'Une erreur de copie est survenue lors de l\'installation des fichiers du module <em>%s</em> : votre disque est peut-être plein ou les droits d\'accès au fichier sont incorrects. Il a pu en résulter une installation partielle du module rendant votre installation du wiki instable.'; +$lang['error_delete'] = 'Une erreur est survenue à la suppression du module <em>%s</em>. La raison la plus probable est l\'insuffisance des droits sur les fichiers ou le répertoire.'; +$lang['enabled'] = 'Module %s activé.'; +$lang['notenabled'] = 'Le module %s n\'a pas pu être activé, vérifiez le fichier des permissions.'; +$lang['disabled'] = 'Module %s désactivé.'; +$lang['notdisabled'] = 'Le module %s n\'a pas pu être désactivé, vérifiez le fichier des permissions.'; diff --git a/lib/plugins/plugin/lang/gl/admin_plugin.txt b/lib/plugins/plugin/lang/gl/admin_plugin.txt index 481cb49a6..216285a8d 100644 --- a/lib/plugins/plugin/lang/gl/admin_plugin.txt +++ b/lib/plugins/plugin/lang/gl/admin_plugin.txt @@ -1,3 +1,3 @@ -====== Xestión de plugins ====== +====== Xestión de Extensións ====== -Nesta páxina pode xestionar todas as accións posíbeis cos [[doku>plugins|plugins]] do DokuWiki. Para poder descargar e instalar un plugin, o seu cartafol de plugins debe ser escribíbel polo servidor web. +Nesta páxina podes xestionar todas as accións posíbeis cos [[doku>plugins|extensións]] do DokuWiki. Para poder descargar e instalar unha extensión, o teu cartafol de extensións debe ser escribíbel polo servidor web. diff --git a/lib/plugins/plugin/lang/gl/lang.php b/lib/plugins/plugin/lang/gl/lang.php index a4fd98594..157911a62 100644 --- a/lib/plugins/plugin/lang/gl/lang.php +++ b/lib/plugins/plugin/lang/gl/lang.php @@ -2,14 +2,12 @@ /** * Galicianlanguage file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['menu'] = 'Xestionar os plugins'; -$lang['download'] = 'Descargar e instalar un plugin novo'; -$lang['manage'] = 'Plugins instalados'; -$lang['btn_info'] = 'información'; +$lang['menu'] = 'Xestionar Extensións'; +$lang['download'] = 'Descargar e instalar unha nova extensión'; +$lang['manage'] = 'Extensións Instalados'; +$lang['btn_info'] = 'info'; $lang['btn_update'] = 'actualización'; $lang['btn_delete'] = 'eliminar'; $lang['btn_settings'] = 'configuración'; @@ -21,18 +19,18 @@ $lang['lastupdate'] = 'Última actualización:'; $lang['source'] = 'Fonte:'; $lang['unknown'] = 'descoñecido'; $lang['updating'] = 'Actualizando...'; -$lang['updated'] = 'Actualizouse correctamente o plugin %s'; -$lang['updates'] = 'Actualizáronse correctamente os seguintes plugins'; -$lang['update_none'] = 'Non se encontraron actualizacións.'; +$lang['updated'] = 'Actualizouse correctamente a extensión %s'; +$lang['updates'] = 'Actualizáronse correctamente as seguintes extensións'; +$lang['update_none'] = 'Non se atoparon actualizacións.'; $lang['deleting'] = 'Eliminando...'; -$lang['deleted'] = 'Eliminado o plugin %s.'; +$lang['deleted'] = 'Eliminado a extensión %s.'; $lang['downloading'] = 'Descargando...'; -$lang['downloaded'] = 'Instalouse correctamente o plugin %s'; -$lang['downloads'] = 'Instaláronse correctamente os seguintes plugins:'; -$lang['download_none'] = 'Non se encontraron plugins ou aconteceu un problema descoñecido durante a descarga e instalación.'; -$lang['plugin'] = 'Plugin:'; +$lang['downloaded'] = 'Instalouse correctamente a extensión %s'; +$lang['downloads'] = 'Instaláronse correctamente as seguintes extensións:'; +$lang['download_none'] = 'Non se atoparon extensións, ou aconteceu un problema descoñecido durante a descarga e instalación.'; +$lang['plugin'] = 'Extensión:'; $lang['components'] = 'Compoñentes'; -$lang['noinfo'] = 'Este plugin non devolveu información ningunha; pode que non sexa válido.'; +$lang['noinfo'] = 'Esta extensión non devolveu información ningunha. Pode que non sexa válida.'; $lang['name'] = 'Nome:'; $lang['date'] = 'Data:'; $lang['type'] = 'Tipo:'; @@ -40,13 +38,13 @@ $lang['desc'] = 'Descrición:'; $lang['author'] = 'Autor:'; $lang['www'] = 'Web:'; $lang['error'] = 'Houbo un erro descoñecido.'; -$lang['error_download'] = 'Non se puido descargar o ficheiro de plugin: %s'; -$lang['error_badurl'] = 'O URL é posibelmente incorrecto - non se puido determinar o nome do ficheiro mediante o URL'; +$lang['error_download'] = 'Non se puido descargar o arquivo de extensión: %s'; +$lang['error_badurl'] = 'URL posiblemente incorrecto - non se puido determinar o nome do arquivo mediante o URL'; $lang['error_dircreate'] = 'Non se puido crear un cartafol temporal para recibir a descarga'; -$lang['error_decompress'] = 'O xestor de plugins non foi quen de descomprimir o ficheiro descargado. Isto podería estar causado por unha descarga danada e en tal caso poderíalo tentar de novo; pode tamén que o formato de compresión sexa descoñecido, co que precisará descargar e instalar o plugin de modo manual.'; -$lang['error_copy'] = 'Houbo un erro de copia do ficheiro ao tentar instalar o plugin <em>%s</em>: pode que o disco estea cheo ou que os permisos de acceso sexan incorrectos. Isto podería dar lugar a unha instalación parcial do plugin e facer que a súa instalación do wiki se volva inestábel.'; -$lang['error_delete'] = 'Houbo un erro ao tentar eliminar o plugin <em>%s</em>. O máis probábel é que sexa causado por permisos de acceso insuficientes ao ficheiro ou directorio.'; -$lang['enabled'] = 'O plugin %s foi activado.'; -$lang['notenabled'] = 'O plugin %s non puido ser activado; verifique os permisos do ficheiro.'; -$lang['disabled'] = 'O plugin %s foi desactivado.'; -$lang['notdisabled'] = 'O plugin %s non puido ser desactivado; verifique os permisos do ficheiro.'; +$lang['error_decompress'] = 'O xestor de extensións non foi quen de descomprimir o arquivo descargado. Isto podería ser causado por unha descarga corrupta, polo que, en tal caso, podes tentalo de novo; ou pode que o formato de compresión sexa descoñecido, co que precisarás descargar e instalar a extensión de xeito manual.'; +$lang['error_copy'] = 'Houbo un erro de copia de arquivo ao tentar instalar a extensión <em>%s</em>: pode que o disco estea cheo ou que os permisos de acceso sexan incorrectos. Isto podería dar lugar a unha instalación parcial da extensión e facer que a túa instalación do wiki se volva inestable.'; +$lang['error_delete'] = 'Houbo un erro ao tentar eliminar a extensión <em>%s</em>. O máis probable é que sexa causado por permisos de acceso ao arquivo ou directorio insuficientes.'; +$lang['enabled'] = 'Extensión %s activado.'; +$lang['notenabled'] = 'A extensión %s non puido ser activada, comproba os permisos de arquivo.'; +$lang['disabled'] = 'Extensión %s desactivada.'; +$lang['notdisabled'] = 'A extensión %s non puido ser desactivada, comproba os permisos de arquivo.'; diff --git a/lib/plugins/plugin/lang/he/lang.php b/lib/plugins/plugin/lang/he/lang.php index 7a68575a7..c6e462193 100644 --- a/lib/plugins/plugin/lang/he/lang.php +++ b/lib/plugins/plugin/lang/he/lang.php @@ -6,6 +6,7 @@ * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['menu'] = 'ניהול הרחבות'; $lang['download'] = 'הורדת והתקנת הרחבה חדשה'; @@ -47,3 +48,7 @@ $lang['error_dircreate'] = 'כשל ביצירת תיקיה זמנית לק $lang['error_decompress'] = 'מנהל ההרחבות כשל בפרישת הקובץ שהורד. יתכן כי זו תוצאה של הורדה תקולה ובמקרה זה עליך לנסות שנית; או שיתכן כי תסדיר הכיווץ אינו ידוע, במקרה זה יהיה עליך להוריד ולהתקין את ההרחבה ידנית.'; $lang['error_copy'] = 'חלה שגיאה בהעתקת הקובץ בניסיון להתקין קבצים להרחבה <em>%s</em>: ייתכן כי הדיסק מלא או שהרשאות הגישה לקבצים שגויות. יתכן כי בשל כך נוצרה התקנה חלקית של ההרחבה שתשאיר את התקנת הויקי שלך לא יציבה.'; $lang['error_delete'] = 'חלה שגיאה בעת ניסיון למחיקת ההרחבה <em>%s</em>. הסיבה הסבירה ביותר היא הרשאות גישה לקבצים ולספריות שאינן מספקות'; +$lang['enabled'] = 'תוסף %s מופעל.'; +$lang['notenabled'] = 'לא ניתן להפעיל את התוסף %s, בדוק הרשאות קבצים.'; +$lang['disabled'] = 'תוסף %s מושבת.'; +$lang['notdisabled'] = 'לא ניתן להשבית את התוסף %s, בדוק הרשאות קבצים.'; diff --git a/lib/plugins/plugin/lang/hu/lang.php b/lib/plugins/plugin/lang/hu/lang.php index 9c9c0796f..32242ece9 100644 --- a/lib/plugins/plugin/lang/hu/lang.php +++ b/lib/plugins/plugin/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['menu'] = 'Bővítménykezelő'; $lang['download'] = 'Új bővítmény letöltése és telepítése'; diff --git a/lib/plugins/plugin/lang/ia/admin_plugin.txt b/lib/plugins/plugin/lang/ia/admin_plugin.txt new file mode 100644 index 000000000..c7f758c16 --- /dev/null +++ b/lib/plugins/plugin/lang/ia/admin_plugin.txt @@ -0,0 +1,3 @@ +====== Gestion de plug-ins ====== + +In iste pagina tu pote gerer omne cosas con relation al [[doku>plugins|plug-ins]] de DokuWiki. Pro poter discargar e installar un plug-in, le directorio de plug-ins debe permitter le accesso de scriptura al servitor web.
\ No newline at end of file diff --git a/lib/plugins/plugin/lang/ia/lang.php b/lib/plugins/plugin/lang/ia/lang.php new file mode 100644 index 000000000..523f8581d --- /dev/null +++ b/lib/plugins/plugin/lang/ia/lang.php @@ -0,0 +1,51 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['menu'] = 'Gestion de plug-ins'; +$lang['download'] = 'Discargar e installar un nove plug-in'; +$lang['manage'] = 'Plug-ins installate'; +$lang['btn_info'] = 'info'; +$lang['btn_update'] = 'actualisar'; +$lang['btn_delete'] = 'deler'; +$lang['btn_settings'] = 'configurationes'; +$lang['btn_download'] = 'Discargar'; +$lang['btn_enable'] = 'Salveguardar'; +$lang['url'] = 'URL'; +$lang['installed'] = 'Installate:'; +$lang['lastupdate'] = 'Ultime actualisation:'; +$lang['source'] = 'Origine:'; +$lang['unknown'] = 'incognite'; +$lang['updating'] = 'Actualisation…'; +$lang['updated'] = 'Actualisation del plug-in %s succedite'; +$lang['updates'] = 'Le sequente plug-ins ha essite actualisate con successo'; +$lang['update_none'] = 'Nulle actualisation trovate.'; +$lang['deleting'] = 'Deletion…'; +$lang['deleted'] = 'Le plug-in %s ha essite delite.'; +$lang['downloading'] = 'Discargamento…'; +$lang['downloaded'] = 'Installation del plug-in %s succedite.'; +$lang['downloads'] = 'Le sequente plug-ins ha essite installate con successo:'; +$lang['download_none'] = 'Nulle plug-in trovate, o il ha occurrite un problema incognite durante le discargamento e installation.'; +$lang['plugin'] = 'Plug-in:'; +$lang['components'] = 'Componentes'; +$lang['noinfo'] = 'Iste plug-in retornava nulle information; illo pote esser invalide.'; +$lang['name'] = 'Nomine:'; +$lang['date'] = 'Data:'; +$lang['type'] = 'Typo:'; +$lang['desc'] = 'Description:'; +$lang['author'] = 'Autor:'; +$lang['www'] = 'Web:'; +$lang['error'] = 'Un error incognite ha occurrite.'; +$lang['error_download'] = 'Impossibile discargar le file del plug-in: %s'; +$lang['error_badurl'] = 'URL probabilemente invalide; impossibile determinar le nomine del file ex le URL'; +$lang['error_dircreate'] = 'Impossibile crear le dossier temporari pro reciper le discargamento'; +$lang['error_decompress'] = 'Le gestor de plug-ins non poteva decomprimer le file discargate. Isto pote esser le resultato de un discargamento defectuose, in le qual caso tu deberea probar lo de novo; o le formato de compression pote esser incognite, in le qual caso tu debe discargar e installar le plug-in manualmente.'; +$lang['error_copy'] = 'Il occurreva un error durante le tentativa de installar files pro le plugin <em>%s</em>: le disco pote esser plen o le permissiones de accesso a files pote esser incorrecte. Isto pote haber resultate in un plug-in partialmente installate e lassar tu installation del wiki instabile.'; +$lang['error_delete'] = 'Il occurreva un error durante le tentativa de deler le plug-in <em>%s</em>. Le causa le plus probabile es insufficiente permissiones de files o directorios.'; +$lang['enabled'] = 'Plug-in %s activate.'; +$lang['notenabled'] = 'Le plug-in %s non poteva esser activate; verifica le permissiones de accesso a files.'; +$lang['disabled'] = 'Plug-in %s disactivate.'; +$lang['notdisabled'] = 'Le plug-in %s non poteva esser disactivate; verifica le permissiones de accesso a files.'; diff --git a/lib/plugins/plugin/lang/it/admin_plugin.txt b/lib/plugins/plugin/lang/it/admin_plugin.txt index 1c0d5dc7b..5591f08fe 100644 --- a/lib/plugins/plugin/lang/it/admin_plugin.txt +++ b/lib/plugins/plugin/lang/it/admin_plugin.txt @@ -1,4 +1,3 @@ ====== Gestione Plugin ====== -Su questa pagina puoi gestire tutto ciò che riguarda i [[doku>plugins|plugin]] di DokuWiki. Per poter scaricare e installare un plugin, il webserver deve avere accesso in scrittura alla cartella dei plugin. - +In questa pagina puoi gestire tutto ciò che riguarda i [[doku>plugins|plugin]] di DokuWiki. Per poter scaricare e installare un plugin, il webserver deve avere accesso in scrittura alla directory dei plugin.
\ No newline at end of file diff --git a/lib/plugins/plugin/lang/it/lang.php b/lib/plugins/plugin/lang/it/lang.php index 909c5eacb..c7ce28a59 100644 --- a/lib/plugins/plugin/lang/it/lang.php +++ b/lib/plugins/plugin/lang/it/lang.php @@ -11,13 +11,14 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['menu'] = 'Gestione Plugin'; $lang['download'] = 'Scarica e installa un nuovo plugin'; $lang['manage'] = 'Plugin installati'; $lang['btn_info'] = 'info'; $lang['btn_update'] = 'aggiorna'; -$lang['btn_delete'] = 'cancella'; +$lang['btn_delete'] = 'elimina'; $lang['btn_settings'] = 'configurazione'; $lang['btn_download'] = 'Scarica'; $lang['btn_enable'] = 'Salva'; @@ -30,9 +31,9 @@ $lang['updating'] = 'Aggiornamento in corso ...'; $lang['updated'] = 'Aggiornamento plugin %s riuscito'; $lang['updates'] = 'Aggiornamento dei seguenti plugin riuscito:'; $lang['update_none'] = 'Nessun aggiornamento trovato.'; -$lang['deleting'] = 'Cancellazione in corso ...'; -$lang['deleted'] = 'Plugin %s cancellato.'; -$lang['downloading'] = 'Download in corso ...'; +$lang['deleting'] = 'Eliminazione in corso ...'; +$lang['deleted'] = 'Plugin %s eliminato.'; +$lang['downloading'] = 'Scaricamento in corso ...'; $lang['downloaded'] = 'Installazione plugin %s riuscita'; $lang['downloads'] = 'Installazione dei seguenti plugin riuscita:'; $lang['download_none'] = 'Nessun plugin trovato, oppure si è verificato un problema sconosciuto durante il download e l\'installazione.'; @@ -51,7 +52,7 @@ $lang['error_badurl'] = 'Possibile URL non corretta - impossibile deter $lang['error_dircreate'] = 'Impossibile creare la directory temporanea dove scaricare il file'; $lang['error_decompress'] = 'Impossibile decomprimere il file scaricato. Questo potrebbe essere il risultato di un download incompleto, in tal caso dovresti provare di nuovo; oppure il formato di compressione potrebbe essere sconosciuto, in questo caso è necessario scaricare e installare il plugin manualmente.'; $lang['error_copy'] = 'Si è verificato un errore nella copia di un file durante l\'installazione del plugin <em>%s</em>: il disco potrebbe essere pieno oppure i permessi di accesso al file potrebbero non essere corretti. Il plugin potrebbe essere stato installato solo parzialmente, questo potrebbe causare instabilità al sistema.'; -$lang['error_delete'] = 'Si è verificato un errore durante la cancellazione del plugin <em>%s</em>. Molto probabilmente i permessi di acesso ai file o alla directory non sono sufficienti'; +$lang['error_delete'] = 'Si è verificato un errore durante l\'eliminazione del plugin <em>%s</em>. Molto probabilmente i permessi di acesso ai file o alla directory non sono sufficienti'; $lang['enabled'] = 'Plugin %s abilitato.'; $lang['notenabled'] = 'Impossibile abilitare il plugin %s, verifica i permessi dei file.'; $lang['disabled'] = 'Plugin %s disabilitato.'; diff --git a/lib/plugins/plugin/lang/lb/admin_plugin.txt b/lib/plugins/plugin/lang/lb/admin_plugin.txt new file mode 100644 index 000000000..223de10e8 --- /dev/null +++ b/lib/plugins/plugin/lang/lb/admin_plugin.txt @@ -0,0 +1,4 @@ +====== Plugin Management ====== + +Op dëser Säit kanns de alles verwalte wat mat Dokuwiki [[doku>plugins|Pluginen]] ze dinn huet. Fir e Plugin kënnen z'installéieren, muss däi Pluginverzeechnës vum Webserver schreiwbar sinn. + diff --git a/lib/plugins/plugin/lang/lb/lang.php b/lib/plugins/plugin/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/plugin/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/plugin/lang/mk/lang.php b/lib/plugins/plugin/lang/mk/lang.php new file mode 100644 index 000000000..85f73a09f --- /dev/null +++ b/lib/plugins/plugin/lang/mk/lang.php @@ -0,0 +1,43 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ +$lang['menu'] = 'Уреди ги приклучоците'; +$lang['download'] = 'Симни и инсталирај нов приклучок'; +$lang['manage'] = 'Инсталирани приклучоци'; +$lang['btn_info'] = 'информации'; +$lang['btn_update'] = 'ажурирај'; +$lang['btn_delete'] = 'избриши'; +$lang['btn_settings'] = 'поставувања'; +$lang['btn_download'] = 'Симни'; +$lang['btn_enable'] = 'Зачувај'; +$lang['url'] = 'URL'; +$lang['installed'] = 'Инсталирани:'; +$lang['lastupdate'] = 'Последно ажурирани:'; +$lang['source'] = 'Извор:'; +$lang['unknown'] = 'непознат'; +$lang['updating'] = 'Ажурирам...'; +$lang['updated'] = 'Приклучокот % е успешно ажуриран'; +$lang['updates'] = 'Следниве приклучоци се успешно ажурирани'; +$lang['update_none'] = 'Нема потребни ажурирања.'; +$lang['deleting'] = 'Бришам...'; +$lang['deleted'] = 'Приклучокот %s е избришан.'; +$lang['downloading'] = 'Симнувам...'; +$lang['downloaded'] = 'Приклучокот % е успешно инсталиран'; +$lang['downloads'] = 'Следниве приклучоци се успешно инсталирани'; +$lang['download_none'] = 'Нема пронајдени приклучоци, или имаше непознат проблем при симнување и инсталирање.'; +$lang['plugin'] = 'Приклучок:'; +$lang['components'] = 'Компоненти'; +$lang['noinfo'] = 'Овој приклучок не врати информации, може да не е валиден.'; +$lang['name'] = 'Име:'; +$lang['date'] = 'Датум:'; +$lang['type'] = 'Тип:'; +$lang['desc'] = 'Опис:'; +$lang['author'] = 'Автор:'; +$lang['www'] = 'Веб:'; +$lang['error'] = 'Се појави непозната грешка.'; +$lang['error_download'] = 'Не сум во можност да ја симнам датотеката за приклучокот: %s'; +$lang['enabled'] = 'Приклучокот %s е овозможен.'; +$lang['disabled'] = 'Приклучокот %s е оневозможен.'; diff --git a/lib/plugins/plugin/lang/nl/lang.php b/lib/plugins/plugin/lang/nl/lang.php index f420865c1..cb7fc44fc 100644 --- a/lib/plugins/plugin/lang/nl/lang.php +++ b/lib/plugins/plugin/lang/nl/lang.php @@ -9,6 +9,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['menu'] = 'Plugins beheren'; $lang['download'] = 'Download en installeer een nieuwe plugin'; diff --git a/lib/plugins/plugin/lang/pl/lang.php b/lib/plugins/plugin/lang/pl/lang.php index c9f74bd52..d4ccc7751 100644 --- a/lib/plugins/plugin/lang/pl/lang.php +++ b/lib/plugins/plugin/lang/pl/lang.php @@ -8,6 +8,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['menu'] = 'Menadżer wtyczek'; $lang['download'] = 'Ściągnij i zainstaluj nową wtyczkę'; diff --git a/lib/plugins/plugin/lang/pt-br/lang.php b/lib/plugins/plugin/lang/pt-br/lang.php index d0c14459a..57052706e 100644 --- a/lib/plugins/plugin/lang/pt-br/lang.php +++ b/lib/plugins/plugin/lang/pt-br/lang.php @@ -13,6 +13,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['menu'] = 'Gerenciar Plug-ins'; $lang['download'] = 'Baixar e instalar um novo plug-in'; diff --git a/lib/plugins/plugin/lang/ru/lang.php b/lib/plugins/plugin/lang/ru/lang.php index 0bcddaa70..a33f95418 100644 --- a/lib/plugins/plugin/lang/ru/lang.php +++ b/lib/plugins/plugin/lang/ru/lang.php @@ -12,6 +12,8 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['menu'] = 'Управление плагинами'; $lang['download'] = 'Скачать и установить новый плагин'; @@ -27,16 +29,16 @@ $lang['installed'] = 'Установлен:'; $lang['lastupdate'] = 'Последнее обновление:'; $lang['source'] = 'Источник:'; $lang['unknown'] = 'неизвестно'; -$lang['updating'] = 'Обновление ...'; +$lang['updating'] = 'Обновление...'; $lang['updated'] = 'Плагин %s успешно обновлен'; $lang['updates'] = 'Следующие плагины были успешно обновлены'; $lang['update_none'] = 'Обновления не найдены.'; -$lang['deleting'] = 'Удаление ...'; +$lang['deleting'] = 'Удаление...'; $lang['deleted'] = 'Плагин %s удален.'; -$lang['downloading'] = 'Скачивание ...'; +$lang['downloading'] = 'Скачивание...'; $lang['downloaded'] = 'Плагин %s успешно установлен'; $lang['downloads'] = 'Следующие плагины были успешно установлены:'; -$lang['download_none'] = 'Плагины не найдены, или возникла неизвестная проблема в процессе скачивания и установки.'; +$lang['download_none'] = 'Плагины не найдены или возникла неизвестная проблема в процессе скачивания и установки.'; $lang['plugin'] = 'Плагин:'; $lang['components'] = 'Компоненты'; $lang['noinfo'] = 'Этот плагин не сообщил никаких данных, он может быть нерабочим.'; @@ -45,13 +47,13 @@ $lang['date'] = 'Дата:'; $lang['type'] = 'Тип:'; $lang['desc'] = 'Описание:'; $lang['author'] = 'Автор:'; -$lang['www'] = 'Страничка:'; +$lang['www'] = 'Странца:'; $lang['error'] = 'Произошла неизвестная ошибка.'; $lang['error_download'] = 'Не могу скачать файл плагина: %s'; -$lang['error_badurl'] = 'Возможно, неправильный адрес - не могу определить имя файла из адреса'; +$lang['error_badurl'] = 'Возможно, неправильный адрес — не могу определить имя файла из адреса'; $lang['error_dircreate'] = 'Не могу создать временную директорию для скачивания'; -$lang['error_decompress'] = 'Менеджеру плагинов не удалось распаковать скачанный файл. Это может быть результатом ошибки при скачивании, в этом случае Вы можете попробовать снова; или же плагин упакован неизвестным архиватором, тогда Вам необходимо скачать и установить плагин вручную.'; -$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина <em>%s</em>: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости вашей Вики.'; +$lang['error_decompress'] = 'Менеджеру плагинов не удалось распаковать скачанный файл. Это может быть результатом ошибки при скачивании, в этом случае вы можете попробовать снова; или же плагин упакован неизвестным архиватором, тогда вам необходимо скачать и установить плагин вручную.'; +$lang['error_copy'] = 'Произошла ошибка копирования при попытке установки файлов для плагина <em>%s</em>: переполнение диска или неправильные права доступа. Это могло привести к частичной установке плагина и неустойчивости вашей вики.'; $lang['error_delete'] = 'Произошла ошибка при попытке удалить плагин <em>%s</em>. Наиболее вероятно, что нет необходимых прав доступа к файлам или директориям'; $lang['enabled'] = 'Плагин %s включён.'; $lang['notenabled'] = 'Не удалось включить плагин %s. Проверьте системные права доступа к файлам.'; diff --git a/lib/plugins/plugin/lang/sk/lang.php b/lib/plugins/plugin/lang/sk/lang.php index cf89200c5..a10bc0fe4 100644 --- a/lib/plugins/plugin/lang/sk/lang.php +++ b/lib/plugins/plugin/lang/sk/lang.php @@ -8,7 +8,7 @@ * @author Martin Michalek <michalek.dev@gmail.com> */ $lang['menu'] = 'Správa pluginov'; -$lang['download'] = 'Stiahnuť a nainštalovať plugin'; +$lang['download'] = 'Stiahnuť a nainštalovať plugin'; $lang['manage'] = 'Nainštalované pluginy'; $lang['btn_info'] = 'info'; $lang['btn_update'] = 'aktualizovať'; @@ -22,15 +22,15 @@ $lang['lastupdate'] = 'Aktualizovaný:'; $lang['source'] = 'Zdroj:'; $lang['unknown'] = 'neznámy'; $lang['updating'] = 'Aktualizuje sa ...'; -$lang['updated'] = 'Plugin %s bol úspešne zaktualizovaný'; -$lang['updates'] = 'Nasledujúce pluginy bol úspešne zaktualizované:'; +$lang['updated'] = 'Plugin %s bol úspešne aktualizovaný'; +$lang['updates'] = 'Nasledujúce pluginy bol úspešne aktualizované:'; $lang['update_none'] = 'Neboli nájdené žiadne aktualizácie.'; $lang['deleting'] = 'Vymazáva sa ...'; $lang['deleted'] = 'Plugin %s bol zmazaný.'; $lang['downloading'] = 'Sťahuje sa ...'; $lang['downloaded'] = 'Plugin %s bol úspešne stiahnutý'; $lang['downloads'] = 'Nasledujúce pluginy bol úspešne stiahnuté:'; -$lang['download_none'] = 'Neboli nájdené žiadne pluginy, alebo nastal neznámy problém počas sťahovania a inštalácie pluginov.'; +$lang['download_none'] = 'Neboli nájdené žiadne pluginy alebo nastal neznámy problém počas sťahovania a inštalácie pluginov.'; $lang['plugin'] = 'Plugin:'; $lang['components'] = 'Súčasti'; $lang['noinfo'] = 'Tento plugin neobsahuje žiadne informácie, je možné, že je chybný.'; @@ -44,10 +44,10 @@ $lang['error'] = 'Nastala neznáma chyba.'; $lang['error_download'] = 'Nie je možné stiahnuť súbor pluginu: %s'; $lang['error_badurl'] = 'Pravdepodobne zlá url adresa - nie je možné z nej určiť meno súboru'; $lang['error_dircreate'] = 'Nie je možné vytvoriť dočasný adresár pre uloženie sťahovaného súboru'; -$lang['error_decompress'] = 'Správca pluginov nedokáže dekomprimovať stiahnutý súbor. Môže to byť dôsledok zlého stiahnutia, v tom prípade to skúste znovu, alebo môže ísť o neznámy formát súboru, v tom prípade musítestiahnuť a nainštalovať plugin manuálne.'; -$lang['error_copy'] = 'Nastala chyba kopírovania súboru počas pokusu inštalovať súbory pluginu<em>%s</em>: disk môže byť plný, alebo prístupové práva k súboru môžu byť nesprávne. Toto môže mať za následok čiastočne nainštalovanie pluginu a nestabilitu vašej DokuWiki.'; -$lang['error_delete'] = 'Nastala chyba počas pokusu o zmazanie pluginu <em>%s</em>. Najpravdepodobnejším dôvodom môžu byť nedostatočné prístupové práva pre súbor, alebo adresár'; +$lang['error_decompress'] = 'Správca pluginov nedokáže dekomprimovať stiahnutý súbor. Môže to byť dôsledok zlého stiahnutia, v tom prípade to skúste znovu, alebo môže ísť o neznámy formát súboru, v tom prípade musíte stiahnuť a nainštalovať plugin manuálne.'; +$lang['error_copy'] = 'Nastala chyba kopírovania súboru počas pokusu inštalovať súbory pluginu<em>%s</em>: disk môže byť plný alebo prístupové práva k súboru môžu byť nesprávne. Toto môže mať za následok čiastočne nainštalovanie pluginu a nestabilitu vašej DokuWiki.'; +$lang['error_delete'] = 'Nastala chyba počas pokusu o zmazanie pluginu <em>%s</em>. Najpravdepodobnejším dôvodom môžu byť nedostatočné prístupové práva pre súbor alebo adresár'; $lang['enabled'] = 'Plugin %s aktivovaný.'; -$lang['notenabled'] = 'Plugin %s nemôže byť aktivovaný, skotrolujte prístupové práva.'; +$lang['notenabled'] = 'Plugin %s nemôže byť aktivovaný, skontrolujte prístupové práva.'; $lang['disabled'] = 'Plugin %s deaktivovaný.'; -$lang['notdisabled'] = 'Plugin %s nemôže byť deaktivovaný, skotrolujte prístupové práva.'; +$lang['notdisabled'] = 'Plugin %s nemôže byť deaktivovaný, skontrolujte prístupové práva.'; diff --git a/lib/plugins/plugin/lang/sq/admin_plugin.txt b/lib/plugins/plugin/lang/sq/admin_plugin.txt new file mode 100644 index 000000000..2e1f19234 --- /dev/null +++ b/lib/plugins/plugin/lang/sq/admin_plugin.txt @@ -0,0 +1,3 @@ +====== Menaxhimi i Plugin-eve ====== + +Në këtë faqe mund të menaxhoni çdo gjë që ka të bëjë me [[doku>plugins|plugin-et]] Dokuwiki. Që të jetë në gjendje për të shkarkuar dhe instaluar një plugin, dosja e plugin-it duhet të jetë e shkrueshme nga webserver-i.
\ No newline at end of file diff --git a/lib/plugins/plugin/lang/sq/lang.php b/lib/plugins/plugin/lang/sq/lang.php new file mode 100644 index 000000000..9ddcf527f --- /dev/null +++ b/lib/plugins/plugin/lang/sq/lang.php @@ -0,0 +1,50 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['menu'] = 'Menaxho Plugin-et'; +$lang['download'] = 'Shkarko dhe instalo një plugin të ri'; +$lang['manage'] = 'Plugin-et e Instaluar'; +$lang['btn_info'] = 'info'; +$lang['btn_update'] = 'përditëso'; +$lang['btn_delete'] = 'fshi'; +$lang['btn_settings'] = 'settings'; +$lang['btn_download'] = 'Shkarko'; +$lang['btn_enable'] = 'Ruaj'; +$lang['url'] = 'URL'; +$lang['installed'] = 'Të instaluar:'; +$lang['lastupdate'] = 'Përditësuar së fundmi:'; +$lang['source'] = 'Kodi Burim:'; +$lang['unknown'] = 'e panjohur'; +$lang['updating'] = 'Duke u përditësuar...'; +$lang['updated'] = 'Plugini %s u përditësua me sukses'; +$lang['updates'] = 'Plugin-et e mëposhtme u përditësuan me sukses'; +$lang['update_none'] = 'Nuk u gjetën përditësime.'; +$lang['deleting'] = 'Duke fshirë...'; +$lang['deleted'] = 'Plugini %s u fshi.'; +$lang['downloading'] = 'Duke shkarkuar...'; +$lang['downloaded'] = 'Plugini %s u instalua me sukses'; +$lang['downloads'] = 'Plugin-et e mëposhtëm u instaluan me sukses:'; +$lang['download_none'] = 'Asnjë plugin nuk u gjend, ose ka ndodhur një gabim i panjohur gjatë shkarkimit dhe instalimit.'; +$lang['plugin'] = 'Plugin:'; +$lang['components'] = 'Përbërësit:'; +$lang['noinfo'] = 'Ky plugin nuk ktheu asnjë informacion, mund të jetë i pavlefshëm.'; +$lang['name'] = 'Emri:'; +$lang['date'] = 'Data:'; +$lang['type'] = 'Tipi:'; +$lang['desc'] = 'Përshkrimi:'; +$lang['author'] = 'Autori:'; +$lang['www'] = 'Web:'; +$lang['error'] = 'Ndodhi një gabim i panjohur.'; +$lang['error_download'] = 'Nuk mundi të shkarkohej skedari i plugin-it: %s'; +$lang['error_badurl'] = 'Dyshohet url e prishur - nuk mund të gjendet emri i skedarit nga url-ja'; +$lang['error_dircreate'] = 'Nuk mundi të krijohej dosja e përkohshme për të marë shkarkimin.'; +$lang['error_decompress'] = 'Menaxhuesi i plugin-eve nuk ishte në gjendje të dekompresonte skedarin e shkarkuar. Kjo mund të jetë si rezultat i një shkarkimi të keq, në këtë rast duhet të provoni përsëri; ose formati i kompresimit mund të jetë i panjohur, në këtë rast do t\'ju duhet ta shkarkoni dhe instaloni plugin-in manualisht.'; +$lang['error_copy'] = 'Ndodhi gabim kopjim-skedari gjatë përpjekjes për të instaluar skedarët për plugin-in <em>%s</em>: disku mund të jetë plotë ose të drejtat për aksesim skedari mund të jenë të gabuara. Kjo mund të ketë shkaktuar një instalim të pjesshëm të plugin-it dhe ta lërë instalimin e wiki-t tënd të paqëndrueshëm.'; +$lang['error_delete'] = 'Ndodhi një gabim gjatë përpjekjes për të fshirë plugin-in <em>%s</em>. Shkaku më i mundshëm është të drejta të pamjaftueshme për aksesim skedari ose dosjeje.'; +$lang['enabled'] = 'Plugini %s u aktivizua.'; +$lang['notenabled'] = 'Plugini %s nuk mundi të aktivizohej, kontrollo të drejtat e aksesit për skedarin.'; +$lang['disabled'] = 'Plugin %s është i paaktivizuar.'; +$lang['notdisabled'] = 'Plugini %s nuk mundi të çaktivizohej, kontrollo të drejtat e aksesit për skedarin.'; diff --git a/lib/plugins/plugin/lang/sr/lang.php b/lib/plugins/plugin/lang/sr/lang.php index 58f333879..bc22770a1 100644 --- a/lib/plugins/plugin/lang/sr/lang.php +++ b/lib/plugins/plugin/lang/sr/lang.php @@ -4,6 +4,7 @@ * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['menu'] = 'Управљач додацима'; $lang['download'] = 'Преузми и инсталирај нови додатак'; diff --git a/lib/plugins/plugin/lang/uk/lang.php b/lib/plugins/plugin/lang/uk/lang.php index 5746cfb7d..c5bab816f 100644 --- a/lib/plugins/plugin/lang/uk/lang.php +++ b/lib/plugins/plugin/lang/uk/lang.php @@ -8,6 +8,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['menu'] = 'Керування доданками'; $lang['download'] = 'Завантажити та встановити новий доданок'; diff --git a/lib/plugins/plugin/lang/zh/lang.php b/lib/plugins/plugin/lang/zh/lang.php index 3e269bb06..f53eca96a 100644 --- a/lib/plugins/plugin/lang/zh/lang.php +++ b/lib/plugins/plugin/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['menu'] = '插件管理器'; $lang['download'] = '下载并安装新的插件'; diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php index d084f5b58..c72beafdb 100644 --- a/lib/plugins/popularity/admin.php +++ b/lib/plugins/popularity/admin.php @@ -8,12 +8,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'admin.php'); -require_once(DOKU_INC.'inc/infoutils.php'); -require_once(DOKU_INC.'inc/pluginutils.php'); -require_once(DOKU_INC.'inc/search.php'); - /** * All DokuWiki plugins to extend the admin function * need to inherit from this class diff --git a/lib/plugins/popularity/lang/ar/intro.txt b/lib/plugins/popularity/lang/ar/intro.txt new file mode 100644 index 000000000..e5710af36 --- /dev/null +++ b/lib/plugins/popularity/lang/ar/intro.txt @@ -0,0 +1,9 @@ +====== Popularity Feedback ====== + +تجمع هذه الأداة بيانات مجهولة الاسم وتسمح لك بردها لمطوري لدوكي ويكي. يساعدهم ذلك على معرفة كيفية استخدام دوكي ويكي من المستخدمين والتأكد من أن التطويرات المستقبلية مدعومة بتقارير استخدام حقيقية. + +نشجعك على تكرار هذه الخطوة من وقت لآخر لابقاء المطورين على علم بنمو الويكي خاصتك. بياناتك المرسلة مكررا ستحتفظ ب ID بلا اسماء يميزها. + +البيانات المرسلة تحتوي معلومات مثل اصدار دوكي ويكي، عدد وحجم صفحاتك وملفاتك، الاضافات المركبة و معلومات عن PHP عندك. + +البيانات التي سترسل معروضة صرفا أسفله. رجاء استخدم زر "أرسل البيانات" لنقل المعلومات.
\ No newline at end of file diff --git a/lib/plugins/popularity/lang/ar/lang.php b/lib/plugins/popularity/lang/ar/lang.php index cdab0cf43..c0e7dc6af 100644 --- a/lib/plugins/popularity/lang/ar/lang.php +++ b/lib/plugins/popularity/lang/ar/lang.php @@ -3,4 +3,7 @@ * Arabic language file * * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ +$lang['name'] = 'رد الشعبية (قد يأخذ بعض الوقت ليحمل)'; +$lang['submit'] = 'أرسل البيانات'; diff --git a/lib/plugins/popularity/lang/cs/lang.php b/lib/plugins/popularity/lang/cs/lang.php index f190e29b3..c992ec4c6 100644 --- a/lib/plugins/popularity/lang/cs/lang.php +++ b/lib/plugins/popularity/lang/cs/lang.php @@ -4,6 +4,8 @@ * * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['name'] = 'Průzkum používání (může chviličku trvat, než se natáhne)'; $lang['submit'] = 'Odeslat data'; diff --git a/lib/plugins/popularity/lang/da/lang.php b/lib/plugins/popularity/lang/da/lang.php index 7a0b1e1b8..325fd6568 100644 --- a/lib/plugins/popularity/lang/da/lang.php +++ b/lib/plugins/popularity/lang/da/lang.php @@ -7,6 +7,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['name'] = 'Tilbagemelding om popularitet (vil måske tage en del tid at indlæse)'; $lang['submit'] = 'Send data'; diff --git a/lib/plugins/popularity/lang/de-informal/intro.txt b/lib/plugins/popularity/lang/de-informal/intro.txt index 1aa31a6b5..4dfbb9ea6 100644 --- a/lib/plugins/popularity/lang/de-informal/intro.txt +++ b/lib/plugins/popularity/lang/de-informal/intro.txt @@ -1,9 +1,9 @@ -===== Rückkopplung zur Zufriedenheit ===== +===== Rückmeldung zur Zufriedenheit ===== Dieses Werkzeug sammelt anonym Daten über dein Wiki und erlaubt es dir diese an die Entwickler von DokuWiki zu senden. Dies hilft ihnen zu verstehen, wie DokuWiki von den Nutzern verwendet wird und stellt somit sicher, dass Entscheidungen für zukünftige Entwicklungen mit reellen Nutzungsstatistiken belegbar sind. -Du wirst angehalten diesen Schritt von Zeit zu Zeit erneut zu machen um die Entwickler zu infomieren wenn dein Wiki wächst. Deine aktuelleren Datensätze werden anhand einer anonymen ID zugeordnet. +Du wirst angehalten diesen Schritt von Zeit zu Zeit erneut zu machen um die Entwickler zu informieren wenn dein Wiki wächst. Deine aktuelleren Datensätze werden anhand einer anonymen Identifikationsnummer zugeordnet. -Die gesammelten Daten enthalten Infomrationen über deine Version von DokuWiki, die Anzahl und Größe der Seiten und Dateien, installierte Erweiterungen und informationen über deine PHP-Version. +Die gesammelten Daten enthalten Informationen über deine Version von DokuWiki, die Anzahl und Größe der Seiten und Dateien, installierte Erweiterungen und Informationen über deine PHP-Version. -Die Rohdaten die gesendet werden, werden unten gezeigt. Bitte nutze den "Send Data" Knopf um die Informationen zu übermitteln.
\ No newline at end of file +Die Rohdaten die gesendet werden, werden unten gezeigt. Bitte nutze den "Sende Daten" Knopf um die Informationen zu übermitteln.
\ No newline at end of file diff --git a/lib/plugins/popularity/lang/de-informal/lang.php b/lib/plugins/popularity/lang/de-informal/lang.php index 4d2abd510..004d028e0 100644 --- a/lib/plugins/popularity/lang/de-informal/lang.php +++ b/lib/plugins/popularity/lang/de-informal/lang.php @@ -4,6 +4,7 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['name'] = 'Polularitätsrückmeldung (kann eine Weile dauern, bis es fertig geladen wurde)'; $lang['submit'] = 'Sende Daten'; diff --git a/lib/plugins/popularity/lang/de/lang.php b/lib/plugins/popularity/lang/de/lang.php index d523be38f..1372e9d8a 100644 --- a/lib/plugins/popularity/lang/de/lang.php +++ b/lib/plugins/popularity/lang/de/lang.php @@ -10,6 +10,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['name'] = 'Popularitäts-Feedback (Eventuell längere Ladezeit)'; $lang['submit'] = 'Daten senden'; diff --git a/lib/plugins/popularity/lang/el/lang.php b/lib/plugins/popularity/lang/el/lang.php index a2e8bf080..0d16bbf86 100644 --- a/lib/plugins/popularity/lang/el/lang.php +++ b/lib/plugins/popularity/lang/el/lang.php @@ -3,6 +3,7 @@ * Greek language file * * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['name'] = 'Αναφορά Δημοτικότητας (ίσως αργήσει λίγο να εμφανιστεί)'; $lang['submit'] = 'Αποστολή Δεδομένων'; diff --git a/lib/plugins/popularity/lang/es/lang.php b/lib/plugins/popularity/lang/es/lang.php index 8fedc329e..4fe24a8f0 100644 --- a/lib/plugins/popularity/lang/es/lang.php +++ b/lib/plugins/popularity/lang/es/lang.php @@ -13,6 +13,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['name'] = 'Retroinformación (Feedback) plugin Popularity'; $lang['submit'] = 'Enviar datos'; diff --git a/lib/plugins/popularity/lang/fr/intro.txt b/lib/plugins/popularity/lang/fr/intro.txt index 8e8adbb3c..58be61d03 100644 --- a/lib/plugins/popularity/lang/fr/intro.txt +++ b/lib/plugins/popularity/lang/fr/intro.txt @@ -4,7 +4,7 @@ Cet outil collecte des données anonymes concernant votre wiki et vous permet de Vous êtes encouragé à répéter l'opération de collecte et d'envoi des données anonymes de temps en temps afin d'informer les développeurs de la croissance de votre wiki. -Les données collectées contiennent des informations telle que votre version de DokuWiki, le nombre et la taille de vos pages et fichiers, les plugins installés ainsi que des informations sur la version de PHP installée. +Les données collectées contiennent des informations telle que votre version de DokuWiki, le nombre et la taille de vos pages et fichiers, les modules installés ainsi que des informations sur la version de PHP installée. -Les données brutes qui sont envoyées sont affichées ci dessous. Merci d'utiliser le bouton "Envoyer les données" pour expédier l'information. +Les données brutes qui sont envoyées sont affichées ci dessous. Merci d'utiliser le bouton « Envoyer les données » pour expédier l'information. diff --git a/lib/plugins/popularity/lang/fr/lang.php b/lib/plugins/popularity/lang/fr/lang.php index fdba3ac98..5ddd074a7 100644 --- a/lib/plugins/popularity/lang/fr/lang.php +++ b/lib/plugins/popularity/lang/fr/lang.php @@ -9,6 +9,9 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['name'] = 'Enquête de popularité (peut nécessiter un certain temps pour être chargé)'; $lang['submit'] = 'Envoyer les données'; diff --git a/lib/plugins/popularity/lang/gl/intro.txt b/lib/plugins/popularity/lang/gl/intro.txt index d81903797..72f03e012 100644 --- a/lib/plugins/popularity/lang/gl/intro.txt +++ b/lib/plugins/popularity/lang/gl/intro.txt @@ -1,10 +1,10 @@ -====== Resposta de popularidade ====== +====== Resposta de Popularidade ====== -Esta ferramenta recolle datos anónimos sobre o seu wiki e permítelle envialos ás persoas desenvolvedoras do DokuWiki. Isto axudaralles a ter unha idea do modo en que se emprega o DokuWiki por parte das súas persoas usuarias e garante que as decisións de desenvolvemento futuro coincidan coas estadísticas de uso no mundo real. +Esta ferramenta recolle datos anónimos verbo do teu wiki e permíteche enviarllos aos desenvolvedores do DokuWiki. Isto axudaralles a ter unha idea do xeito en que se emprega o DokuWiki por parte dos seus usuarios, e asegura que as decisións de desenvolvemento futuro coincidan coas estatísticas de uso no mundo real. -Animámolo a executar este proceso de cando en vez, para manter informadas ás persoas desenvolvedoras a medida que o seu wiki vaia medrando. Os seus conxuntos de datos repetidos seran identificados por un ID anónimo. +Animámoste a levar a cabo este proceso de cando en vez para manteres informados aos desenvolvedores a medida que o teu wiki vaia medrando. Os teus xogos de datos repetidos seran identificados por un ID anónimo. -Os datos recompilados conteñen informacións do tipo: versión do Dokuwiki, número e tamaño das páxinas e ficheiros, plugins instalados e informacións sobre a súa instalación do PHP. +Os datos recompilados conteñen información como a versión do teu Dokuwiki, o número e tamaño das túas páxinas e arquivos, as extensións instaladas e información verbo da túa instalación do PHP. -Os datos en bruto que serán enviados móstranse abaixo. Empregue o botón "Enviar os datos" para transferir a información. +Os datos en bruto que serán enviados amósanse embaixo. Por favor, emprega o botón "Enviar Datos" para transferires a información. diff --git a/lib/plugins/popularity/lang/gl/lang.php b/lib/plugins/popularity/lang/gl/lang.php index 116a73256..3e7d9275b 100644 --- a/lib/plugins/popularity/lang/gl/lang.php +++ b/lib/plugins/popularity/lang/gl/lang.php @@ -2,9 +2,7 @@ /** * Galician language file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['name'] = 'Resposta de popularidade (pode demorar un tempo a cargar)'; -$lang['submit'] = 'Enviar os datos'; +$lang['name'] = 'Resposta de Popularidade (pode demorar un tempo a cargar)'; +$lang['submit'] = 'Enviar Datos'; diff --git a/lib/plugins/popularity/lang/he/lang.php b/lib/plugins/popularity/lang/he/lang.php index 2cc82cff7..024f94ae8 100644 --- a/lib/plugins/popularity/lang/he/lang.php +++ b/lib/plugins/popularity/lang/he/lang.php @@ -4,6 +4,7 @@ * * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['name'] = 'משוב פופולריות (יתכן זמן טעינה ארוך)'; $lang['submit'] = 'שלח מידע'; diff --git a/lib/plugins/popularity/lang/hu/lang.php b/lib/plugins/popularity/lang/hu/lang.php index 4dad371b6..d1510ed75 100644 --- a/lib/plugins/popularity/lang/hu/lang.php +++ b/lib/plugins/popularity/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['name'] = 'Visszajelzés a DokuWiki használatáról (sok időt vehet igénybe a betöltése)'; $lang['submit'] = 'Adatok elküldése'; diff --git a/lib/plugins/popularity/lang/ia/intro.txt b/lib/plugins/popularity/lang/ia/intro.txt new file mode 100644 index 000000000..d31c3653f --- /dev/null +++ b/lib/plugins/popularity/lang/ia/intro.txt @@ -0,0 +1,9 @@ +====== Datos de popularitate ====== + +Iste instrumento collige datos anonyme super tu wiki e te permitte inviar los retro al disveloppatores de DokuWiki. Isto les adjuta de comprender como DokuWiki es usate per su usatores e assecura que le decisiones super le disveloppamento futur si basate super statisticas de uso ex le mundo real. + +Tu es incoragiate a repeter iste procedura de tempore a tempore pro continuar a informar le disveloppatores quando tu wiki cresce. Tu collectiones repetite de datos essera identificate per un ID anonyme. + +Le datos colligite contine informationes como tu version de DokuWiki, le numero e dimension de tu paginas e files, plug-ins installate e information super tu installation de PHP. + +Le datos crude que essera inviate es monstrate hic infra. Per favor usa le button "Inviar datos" pro transferer le informationes.
\ No newline at end of file diff --git a/lib/plugins/popularity/lang/ia/lang.php b/lib/plugins/popularity/lang/ia/lang.php new file mode 100644 index 000000000..4a45f04f3 --- /dev/null +++ b/lib/plugins/popularity/lang/ia/lang.php @@ -0,0 +1,9 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['name'] = 'Datos de popularitate (pote prender alcun tempore pro cargar)'; +$lang['submit'] = 'Inviar datos'; diff --git a/lib/plugins/popularity/lang/it/intro.txt b/lib/plugins/popularity/lang/it/intro.txt index c725110b7..62303eca7 100644 --- a/lib/plugins/popularity/lang/it/intro.txt +++ b/lib/plugins/popularity/lang/it/intro.txt @@ -1,8 +1,8 @@ ====== Raccolta dati sul wiki ====== -Questo strumento raccoglie dati anonimi sul tuo wiki e ti permette di inviarli agli sviluppatori di Dokuwiki. Questo aiuta loro a capire come Dokuwiki viene utilizzato dagli utenti e prendere decisioni future sullo sviluppo in base a quello che sono le reali statistiche di utilizzo da parte degli utenti. +Questo strumento raccoglie dati anonimi sul tuo wiki e ti permette di inviarli agli sviluppatori di Dokuwiki. Questo aiuta loro a capire come Dokuwiki viene utilizzato dagli utenti e prendere decisioni future sullo sviluppo in base a quelle che sono le reali statistiche di utilizzo da parte degli utenti. -Ti incoraggiamo a ripetere questa operazione più spesso per mantenere informati gli sviluppatori sulla crescita del tuo wiki. L'insieme dei dati raccolti saranno identificati tramite un ID anonimo. +Ti incoraggiamo a ripetere questa operazione al più spesso per mantenere informati gli sviluppatori sulla crescita del tuo wiki. L'insieme dei dati raccolti saranno identificati tramite un ID anonimo. I dati raccolti contengono informazioni come la versione di DokuWiki, il numero e le dimensioni delle pagine e dei files, i plugins installati e qualche informazione sulla versione di PHP presente nel sistema. diff --git a/lib/plugins/popularity/lang/it/lang.php b/lib/plugins/popularity/lang/it/lang.php index 277e93a25..583dfae26 100644 --- a/lib/plugins/popularity/lang/it/lang.php +++ b/lib/plugins/popularity/lang/it/lang.php @@ -7,6 +7,7 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['name'] = 'Raccolta dati sul wiki (può impiegare del tempo per caricarsi)'; $lang['submit'] = 'Invia dati'; diff --git a/lib/plugins/popularity/lang/lb/lang.php b/lib/plugins/popularity/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/popularity/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/popularity/lang/mk/lang.php b/lib/plugins/popularity/lang/mk/lang.php new file mode 100644 index 000000000..6d4530f79 --- /dev/null +++ b/lib/plugins/popularity/lang/mk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ diff --git a/lib/plugins/popularity/lang/nl/lang.php b/lib/plugins/popularity/lang/nl/lang.php index 1490ecef7..54e12ae91 100644 --- a/lib/plugins/popularity/lang/nl/lang.php +++ b/lib/plugins/popularity/lang/nl/lang.php @@ -8,6 +8,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['name'] = 'Populariteitsfeedback (kan even duren om in te laden)'; $lang['submit'] = 'Verstuur'; diff --git a/lib/plugins/popularity/lang/pl/lang.php b/lib/plugins/popularity/lang/pl/lang.php index 0f15863ae..fbbe6dab2 100644 --- a/lib/plugins/popularity/lang/pl/lang.php +++ b/lib/plugins/popularity/lang/pl/lang.php @@ -6,6 +6,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['name'] = 'Informacja o popularności (ładowanie może zająć dłuższą chwilę)'; $lang['submit'] = 'Wyślij dane'; diff --git a/lib/plugins/popularity/lang/pt-br/lang.php b/lib/plugins/popularity/lang/pt-br/lang.php index 40e1797f3..67732e8ef 100644 --- a/lib/plugins/popularity/lang/pt-br/lang.php +++ b/lib/plugins/popularity/lang/pt-br/lang.php @@ -12,6 +12,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['name'] = 'Retorno de popularidade (pode demorar um pouco para carregar)'; $lang['submit'] = 'Enviar dados'; diff --git a/lib/plugins/popularity/lang/ru/intro.txt b/lib/plugins/popularity/lang/ru/intro.txt index a2fd5b4fd..9250e20ae 100644 --- a/lib/plugins/popularity/lang/ru/intro.txt +++ b/lib/plugins/popularity/lang/ru/intro.txt @@ -1,9 +1,10 @@ ====== Сбор информации о популярности ====== + Этот инструмент собирает анонимные данные о вашей вики и позволяет вам отправить их разработчикам DokuWiki. Эти данные помогут им понять то, как именно используется DokuWiki, и удостовериться, что принимаемые проектные решения соответствуют жизненным реалиям. -Отправляйте данные время от времени для того, чтобы сообщить разработчикам о том, что ваша вики "подросла". Отправленные вами данные будут идентифицированы по анонимному ID. +Отправляйте данные время от времени для того, чтобы сообщить разработчикам о том, что ваша вики «подросла». Отправленные вами данные будут идентифицированы по анонимному ID. Собранные данные содержат такую информацию, как: версия DokuWiki, количество и размер ваших страниц и файлов, установленные плагины, информацию об установленном PHP. -Данные, которые будут посланы, представлены ниже. Пожалуйста, используйте кнопку "Отправить данные", чтобы передать информацию. +Данные, которые будут посланы, представлены ниже. Пожалуйста, используйте кнопку «Отправить данные», чтобы передать информацию. diff --git a/lib/plugins/popularity/lang/ru/lang.php b/lib/plugins/popularity/lang/ru/lang.php index 3caa4d27c..df89c7022 100644 --- a/lib/plugins/popularity/lang/ru/lang.php +++ b/lib/plugins/popularity/lang/ru/lang.php @@ -9,6 +9,8 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['name'] = 'Сбор информации о популярности (для загрузки может потребоваться некоторое время)'; $lang['submit'] = 'Отправить данные'; diff --git a/lib/plugins/popularity/lang/sk/intro.txt b/lib/plugins/popularity/lang/sk/intro.txt index 8e4260657..7f580d979 100644 --- a/lib/plugins/popularity/lang/sk/intro.txt +++ b/lib/plugins/popularity/lang/sk/intro.txt @@ -1,9 +1,9 @@ ====== Prieskum používania ====== -Tento nástroj získa anonymné dáta o Vašej wiki a ponúkne Vám možnosť odoslať ich späť k vývojárom DokuWiki. Týmto spôsobom im umožníte lepšie porozumieť, ako je používaná DokuWiki, a podporiť ich budúce rozhodnutia o ďalšom vývoji infomáciami z reálneho používania DokuWiki. +Tento nástroj získa anonymné dáta o Vašej wiki a ponúkne Vám možnosť odoslať ich späť k vývojárom DokuWiki. Týmto spôsobom im umožníte lepšie porozumieť, ako je používaná DokuWiki, a podporiť ich budúce rozhodnutia o ďalšom vývoji informáciami z reálneho používania DokuWiki. -Doporučujeme Vám opakovať tento krok z času na čas pri napredovaní Vašej wiki a tak pomôcť vývojárom DokuWiki. Vaše data budú označené anonymným ID. +Doporučujeme Vám opakovať tento krok z času na čas pri napredovaní Vašej wiki a tak pomôcť vývojárom DokuWiki. Vaše dáta budú označené anonymným ID. -Zozbierané data obsahujú informácie ako verziu DokuWiki, počet a veľkosť Vašich stránok a súborov, inštalované pluginy a informácie o inštalovanom PHP. +Zozbierané dáta obsahujú informácie ako verziu DokuWiki, počet a veľkosť Vašich stránok a súborov, inštalované pluginy a informácie o inštalovanom PHP. Dáta, ktoré budú poslané sú zobrazené nižšie. Prosím použite tlačidlo "Poslať dáta" na odoslanie týchto informácií.
\ No newline at end of file diff --git a/lib/plugins/popularity/lang/sq/intro.txt b/lib/plugins/popularity/lang/sq/intro.txt new file mode 100644 index 000000000..eb37e5f36 --- /dev/null +++ b/lib/plugins/popularity/lang/sq/intro.txt @@ -0,0 +1,9 @@ +====== Informacioni mbi Popullaritetin ====== + +Ky mjet mbledh të dhëna anonime rreth wiki-t tuaj dhe ju lejon t'ia dërgoni ato zhvilluesve të DokuWiki-t. Kjo i ndihmon ata të kuptojnë sesi DokuWiki përdoret nga përdoruesit e tij dhe siguron që vendimet për zhvillime të ardhshme të jenë të mbështetura mbi statistika të nxjera nga bota e vërtetë. + +Ju jeni të inkurajuar ta përsërisni këtë hap shpesh herë për t'i mbajtur zhvilluesit të informuar kur wiki juaj rritet. Bashkësia e të dhënave tuaja të përsëritura do të identifikohen nga një ID anonime. + +Të dhënat e mbledhura përmbajnë informacione si versioni i DokuWiki-t tuaj, numri dhe madhësia e faqeve dhe skedarëve, plugin-et e instaluar dhe informacione rreth instalimit të PHP-së. + +Të dhënat e papërpunuara që do të dërgohen janë treguar më poshtë. Ju lutem përdorni buttonin "Dërgo Të Dhëna" për të transferuar informacionin.
\ No newline at end of file diff --git a/lib/plugins/popularity/lang/sq/lang.php b/lib/plugins/popularity/lang/sq/lang.php new file mode 100644 index 000000000..1954ce04c --- /dev/null +++ b/lib/plugins/popularity/lang/sq/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['name'] = 'Informacioni mbi Popullaritetin (mund të marë ca kohë derisa të ngarkohet)'; +$lang['submit'] = 'Dërgo Të Dhënat'; diff --git a/lib/plugins/popularity/lang/sr/lang.php b/lib/plugins/popularity/lang/sr/lang.php index c78dd70bb..f560b52a8 100644 --- a/lib/plugins/popularity/lang/sr/lang.php +++ b/lib/plugins/popularity/lang/sr/lang.php @@ -4,6 +4,7 @@ * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['name'] = 'Мерење популарности (може потрајати док се не учита)'; $lang['submit'] = 'Пошаљи податке'; diff --git a/lib/plugins/popularity/lang/uk/lang.php b/lib/plugins/popularity/lang/uk/lang.php index dff96a22b..157944fe4 100644 --- a/lib/plugins/popularity/lang/uk/lang.php +++ b/lib/plugins/popularity/lang/uk/lang.php @@ -6,6 +6,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['name'] = 'Відгук популярності (може зайняти деякий час)'; $lang['submit'] = 'Передати дані'; diff --git a/lib/plugins/popularity/lang/zh/lang.php b/lib/plugins/popularity/lang/zh/lang.php index 88c410970..22fad03b2 100644 --- a/lib/plugins/popularity/lang/zh/lang.php +++ b/lib/plugins/popularity/lang/zh/lang.php @@ -7,6 +7,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['name'] = '人气反馈(载入可能需要一些时间)'; $lang['submit'] = '发送数据'; diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index b24b1ff6e..1a327ca8a 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -2,10 +2,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_PLUGIN.'admin.php'); -require_once(DOKU_INC.'inc/changelog.php'); - /** * All DokuWiki plugins to extend the admin function * need to inherit from this class diff --git a/lib/plugins/revert/lang/ar/intro.txt b/lib/plugins/revert/lang/ar/intro.txt new file mode 100644 index 000000000..5839ee0c8 --- /dev/null +++ b/lib/plugins/revert/lang/ar/intro.txt @@ -0,0 +1,3 @@ +====== مدير الاسترجاع ====== + +تساعدك هذه الصفحة في الاستعادة الآلية لهجوم غثاء. للحصول على قائمة بالصفحات المغثاة أولا أدخل نص البحث (مثل. عنوان غثاء), ثم أكد أن الصفحات الموجودة هي غثاء فعلا و استرجع التعديلات.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/ar/lang.php b/lib/plugins/revert/lang/ar/lang.php index cdab0cf43..1e4e104fb 100644 --- a/lib/plugins/revert/lang/ar/lang.php +++ b/lib/plugins/revert/lang/ar/lang.php @@ -3,4 +3,15 @@ * Arabic language file * * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ +$lang['menu'] = 'مدير الاسترجاع'; +$lang['filter'] = 'ابحث في الصفحات المتأذاة'; +$lang['revert'] = 'استرجع الصفحات المحددة'; +$lang['reverted'] = '%s استرجعت للاصدار %s'; +$lang['removed'] = 'حُذفت %s '; +$lang['revstart'] = 'بدأت عملية الاستعادة. قد يستغرق ذلك وقتا طويلا. إذا كان وقت النص البرمجي ينفذ قبل النهاية، عليك استرجاع أجزاء أصغر. +'; +$lang['revstop'] = 'عملية الاستعادة انتهت بنجاح.'; +$lang['note1'] = 'لاحظ: البحث حساس لحالة الأحرف'; +$lang['note2'] = 'لاحظ: ستسترجع الصفحة إلى آخر اصدار لا يحوي شروط الغثاء <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php index cdfe0e96c..ca0474cba 100644 --- a/lib/plugins/revert/lang/cs/lang.php +++ b/lib/plugins/revert/lang/cs/lang.php @@ -7,6 +7,8 @@ * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['menu'] = 'Obnova zaspamovaných stránek'; $lang['filter'] = 'Hledat zaspamované stránky'; diff --git a/lib/plugins/revert/lang/da/lang.php b/lib/plugins/revert/lang/da/lang.php index 97e15f361..c94366638 100644 --- a/lib/plugins/revert/lang/da/lang.php +++ b/lib/plugins/revert/lang/da/lang.php @@ -7,6 +7,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['menu'] = 'Gendannelsesstyring'; $lang['filter'] = 'Søg efter uønskede sider'; diff --git a/lib/plugins/revert/lang/de-informal/intro.txt b/lib/plugins/revert/lang/de-informal/intro.txt new file mode 100644 index 000000000..d5a092155 --- /dev/null +++ b/lib/plugins/revert/lang/de-informal/intro.txt @@ -0,0 +1,3 @@ +====== Seiten wieder herstellen ====== + +Dieses Plugin dient der automatischen Wiederherstellung von Seiten nach einem Spam-Angriff. Geben Sie zunächst einen Suchbegriff (z.B. eine Spam URL) ein um eine Liste betroffener Seiten zu erhalten. Nachdem Sie sich vergewissert haben, dass die gefundenen Seiten wirklich Spam enthalten, können Sie die Seiten wieder herstellen. diff --git a/lib/plugins/revert/lang/de-informal/lang.php b/lib/plugins/revert/lang/de-informal/lang.php index fd6e81c8a..6ed87e82e 100644 --- a/lib/plugins/revert/lang/de-informal/lang.php +++ b/lib/plugins/revert/lang/de-informal/lang.php @@ -4,9 +4,11 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['menu'] = 'Zurückstellungsmanager'; $lang['revert'] = 'Stelle ausgewählte Seiten zurück.'; +$lang['reverted'] = '%s zu Revision %s zurückgesetzt'; $lang['removed'] = '%s entfernt'; $lang['revstart'] = 'Zurückstellungsprozess gestartet. Dies kann eine längere Zeit dauern. Wenn das Skript vor Fertigstellung stopt, sollten Sie es in kleineren Stücken versuchen.'; $lang['revstop'] = 'Zurückstellungsprozess erfolgreich beendet.'; diff --git a/lib/plugins/revert/lang/de/lang.php b/lib/plugins/revert/lang/de/lang.php index d26413ac1..5dee8007b 100644 --- a/lib/plugins/revert/lang/de/lang.php +++ b/lib/plugins/revert/lang/de/lang.php @@ -11,6 +11,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['menu'] = 'Seiten wieder herstellen'; $lang['filter'] = 'Nach betroffenen Seiten suchen'; diff --git a/lib/plugins/revert/lang/el/lang.php b/lib/plugins/revert/lang/el/lang.php index 7b6fde803..a0c3bb4ff 100644 --- a/lib/plugins/revert/lang/el/lang.php +++ b/lib/plugins/revert/lang/el/lang.php @@ -8,6 +8,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['menu'] = 'Αποκατάσταση κακόβουλων αλλαγών σελίδων'; $lang['filter'] = 'Αναζήτηση σελίδων που περιέχουν spam'; diff --git a/lib/plugins/revert/lang/es/lang.php b/lib/plugins/revert/lang/es/lang.php index 2886528d6..420454d45 100644 --- a/lib/plugins/revert/lang/es/lang.php +++ b/lib/plugins/revert/lang/es/lang.php @@ -15,6 +15,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['menu'] = 'Restaurador'; $lang['filter'] = 'Buscar páginas con spam'; diff --git a/lib/plugins/revert/lang/fr/intro.txt b/lib/plugins/revert/lang/fr/intro.txt index db61ac9cf..6dcbe74b9 100644 --- a/lib/plugins/revert/lang/fr/intro.txt +++ b/lib/plugins/revert/lang/fr/intro.txt @@ -1,3 +1,3 @@ -====== Gestion des réversions ====== +====== Gestionnaire de réversions ====== -Cette page peut vous aider à restaurer des pages après une attaque de spam. Pour trouver la liste des pages victimes des spammeurs, entrez un motif de recherche (tel qu'une URL de spam), puis confirmez que les pages trouvées contiennent du spam et annulez leurs éditions. +Cette page peut vous aider à restaurer des pages après une attaque de spam. Pour trouver la liste des pages vandalisées, entrez un motif de recherche (p. ex. une URL de spam), puis confirmez que les pages trouvées contiennent du spam et annulez leurs éditions. diff --git a/lib/plugins/revert/lang/fr/lang.php b/lib/plugins/revert/lang/fr/lang.php index 8d17280d4..d80ece209 100644 --- a/lib/plugins/revert/lang/fr/lang.php +++ b/lib/plugins/revert/lang/fr/lang.php @@ -10,13 +10,16 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['menu'] = 'Gestionnaire de réversions'; $lang['filter'] = 'Trouver les pages spammées '; -$lang['revert'] = 'Annuler les éditions sélectionnées'; +$lang['revert'] = 'Annuler les modifications sélectionnées'; $lang['reverted'] = '%s restauré à la révision %s'; $lang['removed'] = '%s supprimé'; $lang['revstart'] = 'Processus de réversion démarré. Ceci peut prendre longtemps. Si le script dépasse le délai avant de terminer, vous devrez restaurer de plus petits groupes de pages.'; $lang['revstop'] = 'Processus de réversion terminé avec succès.'; -$lang['note1'] = 'Note : cette recherche est insensible à la casse'; -$lang['note2'] = 'Note: cette page sera révisée à la version précédente ne contenant pas le terme spammeur <i>%s</i>.'; +$lang['note1'] = 'Note : cette recherche est insensible à la casse'; +$lang['note2'] = 'Note : cette page sera révisée à la version précédente ne contenant pas le terme spammeur <em>%s</em>.'; diff --git a/lib/plugins/revert/lang/gl/intro.txt b/lib/plugins/revert/lang/gl/intro.txt index 81e98f1d5..6327249fc 100644 --- a/lib/plugins/revert/lang/gl/intro.txt +++ b/lib/plugins/revert/lang/gl/intro.txt @@ -1,3 +1,3 @@ -====== Xestor de recuperación ====== +====== Xestor de Reversión ====== -Esta páxina axudarao a se recuperar automaticamente dun ataque de spam. Para encontrar unha listaxe de páxinas que conteñan spam, primeiro debe inserir unha cadea de procura (por ex. un URL de spam) e despois confirmar que as páxinas encontradas conteñen realmente spam, antes de reverter as edicións. +Esta páxina axudarache a revertir automaticamente un ataque de correo-lixo. Para atopares unha listaxe de páxinas que conteñan correo-lixo, primeiro debes inserir unha cadea de procura (p.e. un URL do correo-lixo), e logo confirmares que as páxinas atopadas conteñen realmente o tal correo-lixo e reverter as edicións.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/gl/lang.php b/lib/plugins/revert/lang/gl/lang.php index 33472090d..87bce32ba 100644 --- a/lib/plugins/revert/lang/gl/lang.php +++ b/lib/plugins/revert/lang/gl/lang.php @@ -2,16 +2,14 @@ /** * Galicianlanguage file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['menu'] = 'Xestor de recuperación'; -$lang['filter'] = 'Procurar páxinas con spam'; -$lang['revert'] = 'Recuperar as páxinas seleccionadas'; -$lang['reverted'] = '%s foi revertida á revisión %s'; -$lang['removed'] = '%s foi eliminada'; -$lang['revstart'] = 'O proceso de recuperación foi iniciado. Isto podería demorar un certo tempo. Se o script falla por ter superado o seu límite de tempo antes de rematar, terá que efectuar a recuperación sobre fragmentos máis pequenos.'; -$lang['revstop'] = 'O proceso de recuperación rematou correctamente.'; -$lang['note1'] = 'Nota: Esta procura distingue entre maiúsculas e minúsculas'; -$lang['note2'] = 'Nota: A páxina será revertida á última versión que non conteña o termo de spam <i>%s</i> indicado.'; +$lang['menu'] = 'Xestor de Reversión'; +$lang['filter'] = 'Procurar páxinas con correo-lixo'; +$lang['revert'] = 'Revertir as páxinas seleccionadas'; +$lang['reverted'] = '%s revertido á revisión %s'; +$lang['removed'] = '%s eliminado'; +$lang['revstart'] = 'Proceso de reversión iniciado. Isto podería demorar un anaco longo. Se o script fallar por superar o seu límite de tempo denantes de rematar, terás que facer a reversión en anacos máis pequenos.'; +$lang['revstop'] = 'O proceso de reversión rematou correctamente.'; +$lang['note1'] = 'Nota: esta procura distingue entre maiúsculas e minúsculas'; +$lang['note2'] = 'Nota: a páxina revertirase á última versión que non conteña o termo de correo-lixo <i>%s</i> indicado.'; diff --git a/lib/plugins/revert/lang/he/lang.php b/lib/plugins/revert/lang/he/lang.php index e09ffeaab..585487816 100644 --- a/lib/plugins/revert/lang/he/lang.php +++ b/lib/plugins/revert/lang/he/lang.php @@ -4,6 +4,7 @@ * * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['menu'] = 'מנהל שחזור'; $lang['filter'] = 'חפש דפים עם ספאם'; diff --git a/lib/plugins/revert/lang/hu/lang.php b/lib/plugins/revert/lang/hu/lang.php index 58f17007d..6cbdf3643 100644 --- a/lib/plugins/revert/lang/hu/lang.php +++ b/lib/plugins/revert/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['menu'] = 'Visszaállítás kezelő (anti-SPAM)'; $lang['filter'] = 'SPAM tartalmú oldalak keresése'; diff --git a/lib/plugins/revert/lang/ia/intro.txt b/lib/plugins/revert/lang/ia/intro.txt new file mode 100644 index 000000000..ae548e9df --- /dev/null +++ b/lib/plugins/revert/lang/ia/intro.txt @@ -0,0 +1,3 @@ +====== Gestion de reversiones ====== + +Iste pagina te adjuta con le reversion automatic de un attacco de spam. Pro cercar un lista de paginas spammose, primo entra un texto a cercar (p.ex. un URL de spam), postea confirma que le paginas trovate es realmente spam e reverte le modificationes.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/ia/lang.php b/lib/plugins/revert/lang/ia/lang.php new file mode 100644 index 000000000..bec2eca7b --- /dev/null +++ b/lib/plugins/revert/lang/ia/lang.php @@ -0,0 +1,16 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['menu'] = 'Gestion de reversiones'; +$lang['filter'] = 'Cercar paginas spammose'; +$lang['revert'] = 'Reverter le paginas seligite'; +$lang['reverted'] = '%s revertite al version %s'; +$lang['removed'] = '%s removite'; +$lang['revstart'] = 'Le processo de reversion ha comenciate. Isto pote durar multo. Si le script expira ante de finir, tu debe divider le reversiones in blocos minor.'; +$lang['revstop'] = 'Le processo de reversion ha succedite.'; +$lang['note1'] = 'Nota: iste recerca distingue inter majusculas e minusculas.'; +$lang['note2'] = 'Nota: le pagina essera revertite al ultime version que non contine le termino de spam specificate, <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/it/intro.txt b/lib/plugins/revert/lang/it/intro.txt index 1577af7ec..a5ef14680 100644 --- a/lib/plugins/revert/lang/it/intro.txt +++ b/lib/plugins/revert/lang/it/intro.txt @@ -1,3 +1,3 @@ ====== Gestore di ripristini ====== -Questa pagina aiuta il controllo automatico degli attacchi spam. Per cercare una lista delle pagine con spam, inserisci innanzitutto una stringa di ricerca (ad esempio l'URL di un sito di spam), quindi conferma che le pagine trovate contengono realmente spam e ripristinale ad una versione precedente. +Questa pagina aiuta il controllo automatico degli attacchi spam. Per cercare una lista delle pagine con spam, inserisci innanzitutto una stringa di ricerca (ad esempio l'URL di un sito di spam), quindi Verifica che le pagine trovate contengano realmente spam e ripristinale ad una versione precedente. diff --git a/lib/plugins/revert/lang/it/lang.php b/lib/plugins/revert/lang/it/lang.php index 0c2b265de..319493acd 100644 --- a/lib/plugins/revert/lang/it/lang.php +++ b/lib/plugins/revert/lang/it/lang.php @@ -8,6 +8,7 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['menu'] = 'Gestore di ripristini'; $lang['filter'] = 'Cerca pagine con spam'; diff --git a/lib/plugins/revert/lang/lb/intro.txt b/lib/plugins/revert/lang/lb/intro.txt new file mode 100644 index 000000000..59c5dfc14 --- /dev/null +++ b/lib/plugins/revert/lang/lb/intro.txt @@ -0,0 +1,3 @@ +====== Revert Manager ====== + +Dës Säit hëlleft bei der automatescher zerécksetzung no enger Spamattack. Fir eng Lëscht vun zougespamte Säiten ze fannen, gëff fir d'éischt e Sichbegrëff an (z.B. eng Spamadress). Konfirméier dann dass déi Säite wierklech zougespamt goufen a setz se dann zréck.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/lb/lang.php b/lib/plugins/revert/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/revert/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/revert/lang/mk/lang.php b/lib/plugins/revert/lang/mk/lang.php new file mode 100644 index 000000000..6d4530f79 --- /dev/null +++ b/lib/plugins/revert/lang/mk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ diff --git a/lib/plugins/revert/lang/nl/lang.php b/lib/plugins/revert/lang/nl/lang.php index 3b5c4e0fe..21f8c2971 100644 --- a/lib/plugins/revert/lang/nl/lang.php +++ b/lib/plugins/revert/lang/nl/lang.php @@ -9,6 +9,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['menu'] = 'Herstelmanager'; $lang['filter'] = 'Zoek naar bekladde pagina\'s'; diff --git a/lib/plugins/revert/lang/pl/lang.php b/lib/plugins/revert/lang/pl/lang.php index 8ad68b5f8..8166250b4 100644 --- a/lib/plugins/revert/lang/pl/lang.php +++ b/lib/plugins/revert/lang/pl/lang.php @@ -5,6 +5,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['menu'] = 'Menadżer przywracania'; $lang['filter'] = 'Wyszukaj uszkodzone strony'; diff --git a/lib/plugins/revert/lang/pt-br/lang.php b/lib/plugins/revert/lang/pt-br/lang.php index 93c8bf4e1..4ee4432ee 100644 --- a/lib/plugins/revert/lang/pt-br/lang.php +++ b/lib/plugins/revert/lang/pt-br/lang.php @@ -13,6 +13,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['menu'] = 'Gerenciador de reversões'; $lang['filter'] = 'Procura por páginas com spam'; diff --git a/lib/plugins/revert/lang/ru/lang.php b/lib/plugins/revert/lang/ru/lang.php index a78210777..712a41f08 100644 --- a/lib/plugins/revert/lang/ru/lang.php +++ b/lib/plugins/revert/lang/ru/lang.php @@ -10,13 +10,15 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['menu'] = 'Менеджер откаток'; $lang['filter'] = 'Поиск спам-страниц'; $lang['revert'] = 'Откатить изменения для выбранных страниц'; $lang['reverted'] = '%s откачена к версии %s'; $lang['removed'] = '%s удалена'; -$lang['revstart'] = 'Начат процесс откатки. Он может занять много времени. Если скрипт не успевает завершить работу и выдает ошибку, необходимо произвести откатку более маленькими частями.'; -$lang['revstop'] = 'Процесс откатки успешно завершен.'; -$lang['note1'] = 'Замечание: поиск с учетом регистра'; -$lang['note2'] = 'Замечание: страница будет откачена к последней версии, не содержащей спам-термин <i>%s</i>.'; +$lang['revstart'] = 'Начат процесс откатки. Он может занять много времени. Если скрипт не успевает завершить работу и выдаёт ошибку, необходимо произвести откатку более маленькими частями.'; +$lang['revstop'] = 'Процесс откатки успешно завершён.'; +$lang['note1'] = 'Замечание: поиск с учётом регистра'; +$lang['note2'] = 'Замечание: страница будет восстановлена до последней версии, не содержащей спам-термин <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/sk/lang.php b/lib/plugins/revert/lang/sk/lang.php index 822837de0..368d2d929 100644 --- a/lib/plugins/revert/lang/sk/lang.php +++ b/lib/plugins/revert/lang/sk/lang.php @@ -6,12 +6,12 @@ * @author exusik@gmail.com * @author Martin Michalek <michalek.dev@gmail.com> */ -$lang['menu'] = 'Reverzný menežér'; +$lang['menu'] = 'Reverzný manažér'; $lang['filter'] = 'Hľadať spamerské stránky'; $lang['revert'] = 'Vrátiť vybrané stránky'; $lang['reverted'] = '%s vrátená na revíziu %s'; $lang['removed'] = '%s odstránená'; -$lang['revstart'] = 'Proces reverzie bol spustený. Toto môže trvať dlhý čas. Ak skript vyprší pred tým, ako skončí, musíte urobiť reverziu v menších dávkach.'; +$lang['revstart'] = 'Proces reverzie bol spustený. Toto môže trvať dlhý čas. Ak skript prekročí daný maximálny časový interval pred tým, ako skončí, musíte urobiť reverziu v menších dávkach.'; $lang['revstop'] = 'Proces reverzie sa úspešne skončil.'; $lang['note1'] = 'Poznámka: vyhľadávanie rozlišuje medzi veľkými a malými písmenami'; $lang['note2'] = 'Poznámka: táto stránka bude vrátená do poslednej verzie, ktorá neobsahuje spamový výraz <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/sq/intro.txt b/lib/plugins/revert/lang/sq/intro.txt new file mode 100644 index 000000000..25e16b6eb --- /dev/null +++ b/lib/plugins/revert/lang/sq/intro.txt @@ -0,0 +1,3 @@ +====== Menaxhuesi Rikthimit ====== + +Kjo faqe ndihmon për rikthimin automatik në rast të një sulmi spam. Për të gjetur një listë me faqe spam në fillim fut një varg kërkimi (psh një URL spam), dhe pastaj konfirmo që faqet e gjetura janë me të vërtetë spam dhe rikthe redaktimet.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/sq/lang.php b/lib/plugins/revert/lang/sq/lang.php new file mode 100644 index 000000000..45ae4997c --- /dev/null +++ b/lib/plugins/revert/lang/sq/lang.php @@ -0,0 +1,15 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['menu'] = 'Menaxhuesi Rikthimit'; +$lang['filter'] = 'Kërko faqe me spam'; +$lang['revert'] = 'Rikthe faqet e përzgjedhura'; +$lang['reverted'] = '%s u rikthye në rishikimin %s'; +$lang['removed'] = '%s u hoq'; +$lang['revstart'] = 'Proçesi i rikthimit filloi. Kjo mund të zgjasë për një kohë të gjatë. Nëse koha e skriptit mbaron para përfundimit, atëherë rikthimi duhet të bëhet me copa të vogla.'; +$lang['revstop'] = 'Proçesi i rikthimit mbaroi me sukses.'; +$lang['note1'] = 'Shënim: në këtë kërkim bëhet dallim midis gërmave kapitale dhe gërmave të vogla.'; +$lang['note2'] = 'Shënim: faqja do të rikthehet në versionin e fundit që nuk përmban term-in spam të dhënë <i>%s</i>.'; diff --git a/lib/plugins/revert/lang/sr/lang.php b/lib/plugins/revert/lang/sr/lang.php index 3b28a1729..62c712ad1 100644 --- a/lib/plugins/revert/lang/sr/lang.php +++ b/lib/plugins/revert/lang/sr/lang.php @@ -4,6 +4,7 @@ * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['menu'] = 'Управљач за враћање'; $lang['filter'] = 'Претрага спам страница'; diff --git a/lib/plugins/revert/lang/uk/lang.php b/lib/plugins/revert/lang/uk/lang.php index 37104bdd2..ffc394f43 100644 --- a/lib/plugins/revert/lang/uk/lang.php +++ b/lib/plugins/revert/lang/uk/lang.php @@ -6,6 +6,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['menu'] = 'Менеджер відновлення'; $lang['filter'] = 'Пошук спамних сторінок'; diff --git a/lib/plugins/revert/lang/zh/lang.php b/lib/plugins/revert/lang/zh/lang.php index 6241b712b..892cf2dbe 100644 --- a/lib/plugins/revert/lang/zh/lang.php +++ b/lib/plugins/revert/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['menu'] = '还原管理器'; $lang['filter'] = '搜索包含垃圾信息的页面'; diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php index 633e001d2..127b92ce5 100644 --- a/lib/plugins/syntax.php +++ b/lib/plugins/syntax.php @@ -8,9 +8,6 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_INC.'inc/parser/parser.php'); - /** * All DokuWiki plugins to extend the parser/rendering mechanism * need to inherit from this class @@ -269,13 +266,14 @@ class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode { return $conf; } - /** - * Allow the plugin to prevent DokuWiki creating a second instance of itself - * - * @return bool true if the plugin can not be instantiated more than once - */ - function isSingleton() { - return false; - } + /** + * Allow the plugin to prevent DokuWiki from reusing an instance + * + * @return bool false if the plugin has to be instantiated + */ + function isSingleton() { + return true; + } + } //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index da6029bbf..df13f65e3 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -13,9 +13,7 @@ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/usermanager/images/'); -require_once(DOKU_PLUGIN.'admin.php'); /** * All DokuWiki plugins to extend the admin function @@ -323,13 +321,20 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $disabled = $cando ? '' : ' disabled="disabled"'; echo str_pad('',$indent); - $fieldtype = ($name == "userpass") ? 'password' : 'text'; + if($name == 'userpass'){ + $fieldtype = 'password'; + $autocomp = 'autocomplete="off"'; + }else{ + $fieldtype = 'text'; + $autocomp = ''; + } + echo "<tr $class>"; echo "<td><label for=\"$id\" >$label: </label></td>"; echo "<td>"; if($cando){ - echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" />"; + echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp />"; }else{ echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />"; echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit disabled\" disabled=\"disabled\" />"; @@ -393,7 +398,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } else { if (!empty($mail)){ - return false; + return false; } } @@ -501,6 +506,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } + // generate password if left empty and notification is on + if(!empty($_REQUEST['usernotify']) && empty($newpass)){ + $newpass = auth_pwgen(); + } + if (!empty($newpass) && $this->_auth->canDo('modPass')) $changes['pass'] = $newpass; if (!empty($newname) && $this->_auth->canDo('modName') && $newname != $oldinfo['name']) diff --git a/lib/plugins/usermanager/lang/ar/edit.txt b/lib/plugins/usermanager/lang/ar/edit.txt index 5db2ce031..bd9876d82 100644 --- a/lib/plugins/usermanager/lang/ar/edit.txt +++ b/lib/plugins/usermanager/lang/ar/edit.txt @@ -1 +1 @@ -==== تعديل الحساب ====
\ No newline at end of file +==== تعديل المستخدم ====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ar/intro.txt b/lib/plugins/usermanager/lang/ar/intro.txt new file mode 100644 index 000000000..1cfb841fa --- /dev/null +++ b/lib/plugins/usermanager/lang/ar/intro.txt @@ -0,0 +1 @@ +====== مدير المستخدمين ======
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ar/lang.php b/lib/plugins/usermanager/lang/ar/lang.php index 88a115de2..6c1b2b840 100644 --- a/lib/plugins/usermanager/lang/ar/lang.php +++ b/lib/plugins/usermanager/lang/ar/lang.php @@ -3,7 +3,12 @@ * Arabic language file * * @author Yaman Hokan <always.smile.yh@hotmail.com> + * @author Usama Akkad <uahello@gmail.com> */ +$lang['menu'] = 'مدير المستخدمين'; +$lang['noauth'] = '(مصادقة المستخدمين غير متوفرة)'; +$lang['nosupport'] = '(إدارة المستخدمين غير متوفرة)'; +$lang['badauth'] = 'آلية مصادقة غير صالحة'; $lang['user_id'] = 'اسم المستخدم'; $lang['user_pass'] = 'كلمة السر'; $lang['user_name'] = 'الاسم الحقيقي'; @@ -15,13 +20,29 @@ $lang['add'] = 'إضافة'; $lang['delete'] = 'حذف'; $lang['delete_selected'] = 'حذف المختار'; $lang['edit'] = 'تحرير'; +$lang['edit_prompt'] = 'حرر هذا المستخدم'; $lang['modify'] = 'حفظ التعديلات'; $lang['search'] = 'بحث'; +$lang['search_prompt'] = 'ابدأ البحث'; +$lang['clear'] = 'صفّر مرشح البحث'; +$lang['filter'] = 'المرشّح'; +$lang['summary'] = 'عرض المستخدمين %1$d-%2$d of %3$d وجد. %4$d مستخدم كلي.'; +$lang['nonefound'] = 'لم يوجد مستخدمين. %d مستخدم كليا.'; +$lang['delete_ok'] = '%d مستخدم حذفوا'; +$lang['delete_fail'] = '%d فشل حذفهم.'; +$lang['update_ok'] = 'حُدث المستخدم بنجاح'; +$lang['update_fail'] = 'فشل تحديث المستخدم'; $lang['update_exists'] = 'لقد فشل تغيير اسم المستخدم , اسم المستخدم المحدد (%s) غير متاح . ( سيتم تطبيق أي تغييرات أخرى )'; $lang['start'] = 'ابدأ'; $lang['prev'] = 'السابق'; $lang['next'] = 'التالي'; $lang['last'] = 'الأخير'; -$lang['add_ok'] = 'تم بنجاح ضافة الحساب'; -$lang['add_fail'] = 'فشلت إضافة الحساب'; -$lang['notify_ok'] = 'تم إرسال رسالة الإشعار'; +$lang['edit_usermissing'] = 'لم يعثر على المستخدم المحدد، يحتمل أن اسم المستخدم قد حذف أو غُير في مكان آخر.'; +$lang['user_notify'] = 'أشعر المستخدم'; +$lang['note_notify'] = 'بريد الاشعار يرسل فقط إن اعطي المستخدم كلمة سر جديدة.'; +$lang['note_group'] = 'المستخدمون الجدد سيضافون للمجموعة الافتراضية (%s) إن لم تُحدد لهم مجموعة.'; +$lang['note_pass'] = 'ستولد كلمة المرور تلقائيا إن تُرك الحقل فارغا مع تمكين إشعار المستخدم.'; +$lang['add_ok'] = 'اضيف المستخدم بنجاح'; +$lang['add_fail'] = 'فشلت إضافة المستخدم'; +$lang['notify_ok'] = 'ارسلت رسالة الاشعار'; +$lang['notify_fail'] = 'تعذر ارسال بريد الاشعار'; diff --git a/lib/plugins/usermanager/lang/ar/list.txt b/lib/plugins/usermanager/lang/ar/list.txt new file mode 100644 index 000000000..02e9a0363 --- /dev/null +++ b/lib/plugins/usermanager/lang/ar/list.txt @@ -0,0 +1 @@ +===== قائمة المستخدمين =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index 6f368bd0f..9c5a2abc9 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -6,6 +6,8 @@ * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author tomas@valenta.cz + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @author Lefty <lefty@multihost.cz> */ $lang['menu'] = 'Správa uživatelů'; $lang['noauth'] = '(autentizace uživatelů není k dispozici)'; diff --git a/lib/plugins/usermanager/lang/da/lang.php b/lib/plugins/usermanager/lang/da/lang.php index 42bdcb7c3..ea3109374 100644 --- a/lib/plugins/usermanager/lang/da/lang.php +++ b/lib/plugins/usermanager/lang/da/lang.php @@ -8,6 +8,8 @@ * @author Harith <haj@berlingske.dk> * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk> * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca> + * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['menu'] = 'Brugerstyring'; $lang['noauth'] = '(Brugervalidering er ikke tilgængelig)'; diff --git a/lib/plugins/usermanager/lang/de-informal/lang.php b/lib/plugins/usermanager/lang/de-informal/lang.php index d9011468b..be745565d 100644 --- a/lib/plugins/usermanager/lang/de-informal/lang.php +++ b/lib/plugins/usermanager/lang/de-informal/lang.php @@ -4,6 +4,7 @@ * * @author Alexander Fischer <tbanus@os-forge.net> * @author Juergen Schwarzer <jschwarzer@freenet.de> + * @author Marcel Metz <marcel_metz@gmx.de> */ $lang['menu'] = 'Benutzerverwalter'; $lang['noauth'] = '(Benutzeranmeldung ist nicht verfügbar)'; @@ -19,8 +20,8 @@ $lang['value'] = 'Wert'; $lang['add'] = 'Zufügen'; $lang['delete'] = 'Löschen'; $lang['delete_selected'] = 'Lösche ausgewähltes'; -$lang['edit'] = 'Editieren'; -$lang['edit_prompt'] = 'Editiere den Benutzer'; +$lang['edit'] = 'Bearbeiten'; +$lang['edit_prompt'] = 'Bearbeite diesen Benutzer'; $lang['modify'] = 'Änderungen speichern'; $lang['search'] = 'Suchen'; $lang['search_prompt'] = 'Suche ausführen'; diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 913537f06..816aaebd7 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -12,6 +12,7 @@ * @author Dirk Einecke <dirk@dirkeinecke.de> * @author Blitzi94@gmx.de * @author Robert Bogenschneider <robog@GMX.de> + * @author Robert Bogenschneider <robog@gmx.de> */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -49,7 +50,7 @@ $lang['edit_usermissing'] = 'Der ausgewählte Nutzer wurde nicht gefunden. $lang['user_notify'] = 'Nutzer benachrichtigen'; $lang['note_notify'] = 'Benachrichtigungs-E-Mails werden nur versandt, wenn ein neues Passwort vergeben wurde.'; $lang['note_group'] = 'Neue Nutzer werden der Standard-Gruppe (%s) hinzugefügt, wenn keine Gruppe angegeben wurde.'; -$lang['note_pass'] = 'Das Password wird automatisch generiert, wenn das entsprechende Feld leergelassen wird und die Benachrichtigung des Nutzers aktiviert ist.'; +$lang['note_pass'] = 'Das Passwort wird automatisch generiert, wenn das entsprechende Feld leergelassen wird und die Benachrichtigung des Nutzers aktiviert ist.'; $lang['add_ok'] = 'Nutzer erfolgreich angelegt'; $lang['add_fail'] = 'Nutzer konnte nicht angelegt werden'; $lang['notify_ok'] = 'Benachrichtigungsmail wurde versandt'; diff --git a/lib/plugins/usermanager/lang/el/lang.php b/lib/plugins/usermanager/lang/el/lang.php index 3c5c9b902..8bfb1a380 100644 --- a/lib/plugins/usermanager/lang/el/lang.php +++ b/lib/plugins/usermanager/lang/el/lang.php @@ -9,6 +9,7 @@ * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Νταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> + * @author George Petsagourakis <petsagouris@gmail.com> */ $lang['menu'] = 'Διαχείριση Χρηστών'; $lang['noauth'] = '(η είσοδος χρηστών δεν είναι δυνατή)'; diff --git a/lib/plugins/usermanager/lang/es/lang.php b/lib/plugins/usermanager/lang/es/lang.php index c11ebcd93..a5b6bcbb8 100644 --- a/lib/plugins/usermanager/lang/es/lang.php +++ b/lib/plugins/usermanager/lang/es/lang.php @@ -16,6 +16,8 @@ * @author Marvin Ortega <maty1206@maryanlinux.com> * @author Daniel Castro Alvarado <dancas2@gmail.com> * @author Fernando J. Gómez <fjgomez@gmail.com> + * @author Victor Castelan <victorcastelan@gmail.com> + * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com> */ $lang['menu'] = 'Administración de usuarios'; $lang['noauth'] = '(la autenticación de usuarios no está disponible)'; diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index 9229ee8e8..92bc127ed 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -11,6 +11,9 @@ * @author Erik Pedersen <erik.pedersen@shaw.ca> * @author olivier duperray <duperray.olivier@laposte.net> * @author Vincent Feltz <psycho@feltzv.fr> + * @author Philippe Bajoit <philippe.bajoit@gmail.com> + * @author Florian Gaub <floriang@floriang.net> + * @author Samuel Dorsaz samuel.dorsaz@novelion.net */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification utilisateur non disponible)'; @@ -26,8 +29,8 @@ $lang['value'] = 'Valeur'; $lang['add'] = 'Ajouter'; $lang['delete'] = 'Supprimer'; $lang['delete_selected'] = 'Supprimer la sélection'; -$lang['edit'] = 'Éditer'; -$lang['edit_prompt'] = 'Éditer cet utilisateur'; +$lang['edit'] = 'Modifier'; +$lang['edit_prompt'] = 'Modifier cet utilisateur'; $lang['modify'] = 'Enregistrer les modifications'; $lang['search'] = 'Rechercher'; $lang['search_prompt'] = 'Effectuer la recherche'; @@ -37,9 +40,9 @@ $lang['summary'] = 'Affichage des utilisateurs %1$d-%2$d parmi %3$ $lang['nonefound'] = 'Aucun utilisateur trouvé. %d utilisateur(s) au total.'; $lang['delete_ok'] = '%d utilisateurs effacés'; $lang['delete_fail'] = '%d effacement échoué.'; -$lang['update_ok'] = 'utilisateur mis à jour avec succès'; -$lang['update_fail'] = 'échec de la mise à jour utilisateur'; -$lang['update_exists'] = 'échec du changement de nom d\'utilisateur, le nom spécifié (%s) existe déjà (toutes les autres modifications seront effectuées).'; +$lang['update_ok'] = 'Utilisateur mis à jour avec succès'; +$lang['update_fail'] = 'Échec de la mise à jour utilisateur'; +$lang['update_exists'] = 'Échec du changement de nom d\'utilisateur, le nom spécifié (%s) existe déjà (toutes les autres modifications seront effectuées).'; $lang['start'] = 'Démarrage'; $lang['prev'] = 'Précédent'; $lang['next'] = 'Suivant'; diff --git a/lib/plugins/usermanager/lang/gl/add.txt b/lib/plugins/usermanager/lang/gl/add.txt index cd1c487ff..7602c36ec 100644 --- a/lib/plugins/usermanager/lang/gl/add.txt +++ b/lib/plugins/usermanager/lang/gl/add.txt @@ -1 +1 @@ -===== Engadir unha persoa usuaria ===== +===== Engadir usuario =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/gl/delete.txt b/lib/plugins/usermanager/lang/gl/delete.txt index f13133d6f..4262a0c05 100644 --- a/lib/plugins/usermanager/lang/gl/delete.txt +++ b/lib/plugins/usermanager/lang/gl/delete.txt @@ -1 +1 @@ -===== Eliminar unha persoa usuaria ===== +===== Eliminar usuario =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/gl/edit.txt b/lib/plugins/usermanager/lang/gl/edit.txt index d33f9c335..11ef62cce 100644 --- a/lib/plugins/usermanager/lang/gl/edit.txt +++ b/lib/plugins/usermanager/lang/gl/edit.txt @@ -1 +1 @@ -===== Editar unha persoa usuaria ===== +===== Editar usuario =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/gl/intro.txt b/lib/plugins/usermanager/lang/gl/intro.txt index 9b05a0c5e..77675e9d6 100644 --- a/lib/plugins/usermanager/lang/gl/intro.txt +++ b/lib/plugins/usermanager/lang/gl/intro.txt @@ -1 +1 @@ -====== Xestor de persoas usuarias ====== +====== Xestor de Usuarios ======
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/gl/lang.php b/lib/plugins/usermanager/lang/gl/lang.php index b6909c100..0a01ef750 100644 --- a/lib/plugins/usermanager/lang/gl/lang.php +++ b/lib/plugins/usermanager/lang/gl/lang.php @@ -2,48 +2,46 @@ /** * Galicianlanguage file * - * @author CiberIrmandade da Fala <infoxeral@ciberirmandade.org> - * @author Tagen Ata <localizacion@tagenata.com> - * @author Leandro Regueiro <leandro.regueiro@gmail.com> + * @author Medúlio <medulio@ciberirmandade.org> */ -$lang['menu'] = 'Xestor de persoas usuarias'; -$lang['noauth'] = '(a autenticación de persoas usuarias non está dispoñíbel)'; -$lang['nosupport'] = '(a xestión de persoas usuarias non está soportada)'; -$lang['badauth'] = 'o mecanismo de autenticación non é válido'; -$lang['user_id'] = 'Usuaria/o'; +$lang['menu'] = 'Xestor de Usuarios'; +$lang['noauth'] = '(autenticación de usuarios non dispoñible)'; +$lang['nosupport'] = '(xestión de usuarios non soportada)'; +$lang['badauth'] = 'mecanismo de autenticación non válido'; +$lang['user_id'] = 'Usuario'; $lang['user_pass'] = 'Contrasinal'; -$lang['user_name'] = 'Nome real'; -$lang['user_mail'] = 'Correo'; +$lang['user_name'] = 'Nome Real'; +$lang['user_mail'] = 'Correo-e'; $lang['user_groups'] = 'Grupos'; $lang['field'] = 'Campo'; $lang['value'] = 'Valor'; $lang['add'] = 'Engadir'; $lang['delete'] = 'Eliminar'; -$lang['delete_selected'] = 'Eliminar as seleccionadas'; +$lang['delete_selected'] = 'Eliminar Seleccionados'; $lang['edit'] = 'Editar'; -$lang['edit_prompt'] = 'Editar esta persoa usuaria'; -$lang['modify'] = 'Gardar os cambios'; +$lang['edit_prompt'] = 'Editar este usuario'; +$lang['modify'] = 'Gardar Trocos'; $lang['search'] = 'Procurar'; -$lang['search_prompt'] = 'Facer unha procura'; -$lang['clear'] = 'Reiniciar o filtro de procura'; +$lang['search_prompt'] = 'Facer procura'; +$lang['clear'] = 'Reiniciar Filtro de Procura'; $lang['filter'] = 'Filtro'; -$lang['summary'] = 'A mostrar as persoas usuarias %1$d-%2$d de %3$d encontradas. %4$d persoas usuarias en total.'; -$lang['nonefound'] = 'Non se encontraron persoas usuarias. %d persoas usuarias en total.'; -$lang['delete_ok'] = '%d persoas usuarias foron eliminadas'; -$lang['delete_fail'] = '%d non puideron ser eliminadas.'; -$lang['update_ok'] = 'A persoa usuaria foi actualizada correctamente'; -$lang['update_fail'] = 'Non se puido actualizar a persoa usuaria'; -$lang['update_exists'] = 'Non se puido mudar o nome da persoa usuaria; o nome especificado (%s) xa existe (o resto de cambios aplicaranse sen problemas).'; +$lang['summary'] = 'Amosando usuarios %1$d-%2$d de %3$d atopados. %4$d usuarios en total.'; +$lang['nonefound'] = 'Non se atoparon usuarios. %d usuarios en total.'; +$lang['delete_ok'] = '%d usuarios eliminados'; +$lang['delete_fail'] = '%d non puideron ser eliminados.'; +$lang['update_ok'] = 'Usuario actualizado correctamente'; +$lang['update_fail'] = 'Non se puido actualizar o usuario'; +$lang['update_exists'] = 'Non se puido mudar o nome do usuario, xa que o nome especificado (%s) xa existe (o resto de trocos aplicaranse sen problemas).'; $lang['start'] = 'comezo'; $lang['prev'] = 'anterior'; $lang['next'] = 'seguinte'; -$lang['last'] = 'última'; -$lang['edit_usermissing'] = 'Non se encontrou a persoa usuaria seleccionada; pode que o nome de usuaria/o teña sido eliminado ou alterado nalgún momento.'; -$lang['user_notify'] = 'Notificar á/ao usuaria/o'; -$lang['note_notify'] = 'Os correos de notificación envíanse só se a persoa usuaria obtén un contrasinal novo.'; -$lang['note_group'] = 'As persoas usuarias novas serán engadidas ao grupo predeterminado (%s) se non se especifica outro.'; -$lang['note_pass'] = 'Se deixa o campo baleiro e a notificación á/ao usuaria/o está activada, xerarase automaticamente o contrasinal.'; -$lang['add_ok'] = 'A persoa usuaria foi engadida correctamente'; -$lang['add_fail'] = 'Non se puido engadir a/o usuaria/o'; -$lang['notify_ok'] = 'O correo de notificación foi enviado'; -$lang['notify_fail'] = 'Non se puido enviar o correo de notificación'; +$lang['last'] = 'derradeiro'; +$lang['edit_usermissing'] = 'Non se atopou o usuario seleccionado, pode que o nome de usuario fose eliminado ou mudado nalgún intre.'; +$lang['user_notify'] = 'Notificar ao usuario'; +$lang['note_notify'] = 'Os correos-e de notificación envíanse só se o usuario obtén un novo contrasinal.'; +$lang['note_group'] = 'Os novos usuarios serán engadidos ao grupo por defecto (%s) se non se especifica outro.'; +$lang['note_pass'] = 'Se deixas o campo baleiro e a notificación ao usuario está activada xerarase automaticamente o contrasinal.'; +$lang['add_ok'] = 'Usuario engadido correctamente'; +$lang['add_fail'] = 'Non se puido engadir o usuario'; +$lang['notify_ok'] = 'Correo-e de notificación enviado'; +$lang['notify_fail'] = 'Non se puido enviar o correo-e de notificación'; diff --git a/lib/plugins/usermanager/lang/gl/list.txt b/lib/plugins/usermanager/lang/gl/list.txt index 792afd7d1..013b2d7d8 100644 --- a/lib/plugins/usermanager/lang/gl/list.txt +++ b/lib/plugins/usermanager/lang/gl/list.txt @@ -1 +1 @@ -===== Listaxe de persoas usuarias ===== +===== Lista de Usuarios =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/he/lang.php b/lib/plugins/usermanager/lang/he/lang.php index 85f5274e8..b2b55c3b4 100644 --- a/lib/plugins/usermanager/lang/he/lang.php +++ b/lib/plugins/usermanager/lang/he/lang.php @@ -5,6 +5,7 @@ * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> + * @author Yaron Yogev <yaronyogev@gmail.com> */ $lang['menu'] = 'מנהל משתמשים'; $lang['noauth'] = '(אימות משתמשים אינו זמין)'; diff --git a/lib/plugins/usermanager/lang/hu/lang.php b/lib/plugins/usermanager/lang/hu/lang.php index b9f35cfc7..7b22dfb48 100644 --- a/lib/plugins/usermanager/lang/hu/lang.php +++ b/lib/plugins/usermanager/lang/hu/lang.php @@ -5,6 +5,8 @@ * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu> */ $lang['menu'] = 'Felhasználók kezelése'; $lang['noauth'] = '(A felhasználói azonosítás nem működik.)'; diff --git a/lib/plugins/usermanager/lang/ia/add.txt b/lib/plugins/usermanager/lang/ia/add.txt new file mode 100644 index 000000000..4695834f4 --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/add.txt @@ -0,0 +1 @@ +===== Adder usator =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ia/delete.txt b/lib/plugins/usermanager/lang/ia/delete.txt new file mode 100644 index 000000000..db1b4c077 --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/delete.txt @@ -0,0 +1 @@ +===== Deler usator =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ia/edit.txt b/lib/plugins/usermanager/lang/ia/edit.txt new file mode 100644 index 000000000..2fcf02378 --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/edit.txt @@ -0,0 +1 @@ +===== Modificar usator =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ia/intro.txt b/lib/plugins/usermanager/lang/ia/intro.txt new file mode 100644 index 000000000..f4fafcb9b --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/intro.txt @@ -0,0 +1 @@ +====== Gestion de usatores ======
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ia/lang.php b/lib/plugins/usermanager/lang/ia/lang.php new file mode 100644 index 000000000..a8b8f45c0 --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/lang.php @@ -0,0 +1,49 @@ +<?php +/** + * Interlingua language file + * + * @author robocap <robocap1@gmail.com> + * @author Martijn Dekker <martijn@inlv.org> + */ +$lang['menu'] = 'Gestion de usatores'; +$lang['noauth'] = '(authentication de usatores non disponibile)'; +$lang['nosupport'] = '(gestion de usatores non supportate)'; +$lang['badauth'] = 'mechanismo de authentication invalide'; +$lang['user_id'] = 'Usator'; +$lang['user_pass'] = 'Contrasigno'; +$lang['user_name'] = 'Nomine real'; +$lang['user_mail'] = 'E-mail'; +$lang['user_groups'] = 'Gruppos'; +$lang['field'] = 'Campo'; +$lang['value'] = 'Valor'; +$lang['add'] = 'Adder'; +$lang['delete'] = 'Deler'; +$lang['delete_selected'] = 'Deler seligite'; +$lang['edit'] = 'Modificar'; +$lang['edit_prompt'] = 'Modificar iste usator'; +$lang['modify'] = 'Salveguardar cambios'; +$lang['search'] = 'Cercar'; +$lang['search_prompt'] = 'Executar recerca'; +$lang['clear'] = 'Reinitialisar filtro de recerca'; +$lang['filter'] = 'Filtro'; +$lang['summary'] = 'Presentation del usatores %1$d-%2$d de %3$d trovate. %4$d usatores in total.'; +$lang['nonefound'] = 'Nulle usator trovate. %d usatores in total.'; +$lang['delete_ok'] = '%d usatores delite'; +$lang['delete_fail'] = 'Deletion de %d usatores fallite.'; +$lang['update_ok'] = 'Actualisation del usator succedite'; +$lang['update_fail'] = 'Actualisation del usator fallite'; +$lang['update_exists'] = 'Le modification del nomine del usator ha fallite; le usator specificate (%s) ja existe. (Omne altere modificationes essera applicate.) +'; +$lang['start'] = 'initio'; +$lang['prev'] = 'precedente'; +$lang['next'] = 'sequente'; +$lang['last'] = 'fin'; +$lang['edit_usermissing'] = 'Le usator seligite non ha essite trovate. Es possibile que le nomine de usator specificate ha essite delite o cambiate alterubi.'; +$lang['user_notify'] = 'Notificar usator'; +$lang['note_notify'] = 'Le messages de notification es solmente inviate un nove contrasigno es date al usator.'; +$lang['note_group'] = 'Nove usatores essera addite al gruppo predefinite (%s) si nulle gruppo es specificate.'; +$lang['note_pass'] = 'Le contrasigno essera automaticamente generate si le campo es lassate vacue e le notification del usator es activate.'; +$lang['add_ok'] = 'Addition del usator succedite'; +$lang['add_fail'] = 'Addition del usator fallite'; +$lang['notify_ok'] = 'Message de notification inviate'; +$lang['notify_fail'] = 'Le message de notification non poteva esser inviate'; diff --git a/lib/plugins/usermanager/lang/ia/list.txt b/lib/plugins/usermanager/lang/ia/list.txt new file mode 100644 index 000000000..f545f06df --- /dev/null +++ b/lib/plugins/usermanager/lang/ia/list.txt @@ -0,0 +1 @@ +===== Lista de usatores =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/it/delete.txt b/lib/plugins/usermanager/lang/it/delete.txt index fc36212af..270061f0d 100644 --- a/lib/plugins/usermanager/lang/it/delete.txt +++ b/lib/plugins/usermanager/lang/it/delete.txt @@ -1 +1 @@ -===== Cancella utente ===== +===== Elimina utente ===== diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index 67b17e9ec..a766e5d07 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -10,21 +10,22 @@ * @author Lorenzo Breda <lbreda@gmail.com> * @author snarchio@alice.it * @author robocap <robocap1@gmail.com> + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['menu'] = 'Gestione Utenti'; $lang['noauth'] = '(autenticazione non disponibile)'; $lang['nosupport'] = '(gestione utenti non supportata)'; $lang['badauth'] = 'sistema di autenticazione non valido'; -$lang['user_id'] = 'User ID'; +$lang['user_id'] = 'ID utente'; $lang['user_pass'] = 'Password'; $lang['user_name'] = 'Nome completo'; -$lang['user_mail'] = 'E-mail'; +$lang['user_mail'] = 'Email'; $lang['user_groups'] = 'Gruppi'; $lang['field'] = 'Campo'; $lang['value'] = 'Valore'; $lang['add'] = 'Aggiungi'; -$lang['delete'] = 'Cancella'; -$lang['delete_selected'] = 'Cancella selezionati'; +$lang['delete'] = 'Elimina'; +$lang['delete_selected'] = 'Elimina selezionati'; $lang['edit'] = 'Modifica'; $lang['edit_prompt'] = 'Modifica questo utente'; $lang['modify'] = 'Salva modifiche'; @@ -34,20 +35,20 @@ $lang['clear'] = 'Azzera filtro di ricerca'; $lang['filter'] = 'Filtro'; $lang['summary'] = 'Visualizzazione utenti %1$d-%2$d di %3$d trovati. %4$d utenti totali.'; $lang['nonefound'] = 'Nessun utente trovato. %d utenti totali.'; -$lang['delete_ok'] = '%d utenti cancellati'; -$lang['delete_fail'] = 'Cancellazione %d fallita.'; +$lang['delete_ok'] = '%d utenti eliminati'; +$lang['delete_fail'] = 'Eliminazione %d fallita.'; $lang['update_ok'] = 'Aggiornamento utente riuscito'; $lang['update_fail'] = 'Aggiornamento utente fallito'; -$lang['update_exists'] = 'Modifica nome utente fallita, il nome utente specificato (%s) esiste già (qualunque altra modifica sarà applicata).'; +$lang['update_exists'] = 'Modifica nome utente fallita, il nome utente specificato (%s) esiste già (qualunque altra modifica sarà applicata).'; $lang['start'] = 'primo'; $lang['prev'] = 'precedente'; $lang['next'] = 'successivo'; $lang['last'] = 'ultimo'; -$lang['edit_usermissing'] = 'Utente selezionato non trovato, il nome utente specificato potrebbe essere stato cancellato o modificato altrove.'; +$lang['edit_usermissing'] = 'Utente selezionato non trovato, il nome utente specificato potrebbe essere stato eliminato o modificato altrove.'; $lang['user_notify'] = 'Notifica utente'; $lang['note_notify'] = 'Le email di notifica sono inviate soltanto se all\'utente è stata assegnata una nuova password.'; -$lang['note_group'] = 'Se non si specifica alcun gruppo, i nuovi utenti saranno aggiunti al gruppo di default (%s).'; -$lang['note_pass'] = 'La password verrà generata automaticamente qualora il campo di inserimento relatvivo venisse lasciato vuoto e le notifiche all\'utente fossero abilitate.'; +$lang['note_group'] = 'Se non si specifica alcun gruppo, i nuovi utenti saranno aggiunti al gruppo predefinito (%s).'; +$lang['note_pass'] = 'La password verrà generata automaticamente qualora il campo di inserimento relativo venisse lasciato vuoto e le notifiche all\'utente fossero abilitate.'; $lang['add_ok'] = 'Utente aggiunto correttamente'; $lang['add_fail'] = 'Aggiunta utente fallita'; $lang['notify_ok'] = 'Email di notifica inviata'; diff --git a/lib/plugins/usermanager/lang/lb/lang.php b/lib/plugins/usermanager/lang/lb/lang.php new file mode 100644 index 000000000..59acdf7a8 --- /dev/null +++ b/lib/plugins/usermanager/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * lb language file + * + * @author joel@schintgen.net + */ diff --git a/lib/plugins/usermanager/lang/lb/list.txt b/lib/plugins/usermanager/lang/lb/list.txt new file mode 100644 index 000000000..022afe831 --- /dev/null +++ b/lib/plugins/usermanager/lang/lb/list.txt @@ -0,0 +1 @@ +===== Benotzerlëscht =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/mk/add.txt b/lib/plugins/usermanager/lang/mk/add.txt new file mode 100644 index 000000000..c90121d1b --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/add.txt @@ -0,0 +1 @@ +===== Додај корисник =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/mk/delete.txt b/lib/plugins/usermanager/lang/mk/delete.txt new file mode 100644 index 000000000..8a6b5e9b5 --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/delete.txt @@ -0,0 +1 @@ +===== Избриши корисник =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/mk/edit.txt b/lib/plugins/usermanager/lang/mk/edit.txt new file mode 100644 index 000000000..da6306141 --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/edit.txt @@ -0,0 +1 @@ +===== Уреди корисник =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/mk/intro.txt b/lib/plugins/usermanager/lang/mk/intro.txt new file mode 100644 index 000000000..747d00921 --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/intro.txt @@ -0,0 +1 @@ +===== Менаџер за корисник =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/mk/lang.php b/lib/plugins/usermanager/lang/mk/lang.php new file mode 100644 index 000000000..97ef51369 --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/lang.php @@ -0,0 +1,38 @@ +<?php +/** + * Macedonian language file + * + * @author Dimitar Talevski <dimi3.14@gmail.com> + */ +$lang['menu'] = 'Менаџер за корисник'; +$lang['noauth'] = '(автентикација на корисник не е достапна)'; +$lang['nosupport'] = '(менаџирање на корисник не е поддржано)'; +$lang['badauth'] = 'невалиден механизам за автентикација'; +$lang['user_id'] = 'Корисник'; +$lang['user_pass'] = 'Лозинка'; +$lang['user_name'] = 'Вистинско име'; +$lang['user_mail'] = 'Е-пошта'; +$lang['user_groups'] = 'Групи'; +$lang['field'] = 'Поле'; +$lang['value'] = 'Вредност'; +$lang['add'] = 'Додај'; +$lang['delete'] = 'Избриши'; +$lang['delete_selected'] = 'Избриши ги избраните'; +$lang['edit'] = 'Уреди'; +$lang['edit_prompt'] = 'Уреди го овој корисник'; +$lang['modify'] = 'Зачувај промени'; +$lang['search'] = 'Барај'; +$lang['search_prompt'] = 'Изврши пребарување'; +$lang['clear'] = 'Ресетирај го филтерот за пребарување'; +$lang['filter'] = 'Филтер'; +$lang['delete_ok'] = '%d корисници се избришани'; +$lang['delete_fail'] = '%d не успееја да се избришат.'; +$lang['update_ok'] = 'Корисникот е успешно ажуриран'; +$lang['update_fail'] = 'Корисникот не е успешно ажуриран'; +$lang['start'] = 'почеток'; +$lang['prev'] = 'претходна'; +$lang['next'] = 'следна'; +$lang['last'] = 'последна'; +$lang['user_notify'] = 'Извести го корисникот'; +$lang['add_ok'] = 'Корисникот е успешно додаден'; +$lang['add_fail'] = 'Додавањето на корисникот не е успешно'; diff --git a/lib/plugins/usermanager/lang/mk/list.txt b/lib/plugins/usermanager/lang/mk/list.txt new file mode 100644 index 000000000..651462e9d --- /dev/null +++ b/lib/plugins/usermanager/lang/mk/list.txt @@ -0,0 +1 @@ +===== Листа со корисници =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index d4f0eaad9..a6ae402d8 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -9,6 +9,8 @@ * @author Danny Rotsaert <danny.rotsaert@edpnet.be> * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra <hofstra.m@gmail.com> + * @author Timon Van Overveldt <timonvo@gmail.com> */ $lang['menu'] = 'Gebruikersmanager'; $lang['noauth'] = '(gebruikersauthenticatie niet beschikbaar)'; diff --git a/lib/plugins/usermanager/lang/pl/lang.php b/lib/plugins/usermanager/lang/pl/lang.php index 3db83b9b3..0c4ecbcdf 100644 --- a/lib/plugins/usermanager/lang/pl/lang.php +++ b/lib/plugins/usermanager/lang/pl/lang.php @@ -6,6 +6,10 @@ * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> * @author Sławomir Boczek <slawkens@gmail.com> + * @author sleshek@wp.pl + * @author Leszek Stachowski <shazarre@gmail.com> + * @author maros <dobrimaros@yahoo.pl> + * @author Grzegorz Widła <dzesdzes@gmail.com> */ $lang['menu'] = 'Menadżer użytkowników'; $lang['noauth'] = '(uwierzytelnienie użytkownika niemożliwe)'; diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index cf7e48ea7..2c9a281b9 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -13,6 +13,7 @@ * @author Frederico Guimarães <frederico@teia.bio.br> * @author Jair Henrique <jair.henrique@gmail.com> * @author Luis Dantas <luisdantas@gmail.com> + * @author Sergio Motta sergio@cisne.com.br */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index 7bfe3410d..81d9a72a6 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -12,6 +12,8 @@ * @author Alexander Sorkin <kibizoid@gmail.com> * @author Kirill Krasnov <krasnovforum@gmail.com> * @author Vlad Tsybenko <vlad.development@gmail.com> + * @author Aleksey Osadchiy <rfc@nm.ru> + * @author Aleksandr Selivanov <alexgearbox@gmail.com> */ $lang['menu'] = 'Управление пользователями'; $lang['noauth'] = '(авторизация пользователей недоступна)'; @@ -20,7 +22,7 @@ $lang['badauth'] = 'некорректный механизм ау $lang['user_id'] = 'Логин'; $lang['user_pass'] = 'Пароль'; $lang['user_name'] = 'Полное имя'; -$lang['user_mail'] = 'Е-мэйл'; +$lang['user_mail'] = 'Эл. адрес'; $lang['user_groups'] = 'Группы'; $lang['field'] = 'Поле'; $lang['value'] = 'Значение'; @@ -38,19 +40,19 @@ $lang['summary'] = 'Показаны пользователи %1$d $lang['nonefound'] = 'Не найдено ни одного пользователя. Всего пользователей: %d.'; $lang['delete_ok'] = 'Удалено пользователей: %d'; $lang['delete_fail'] = 'Не удалось удалить %d.'; -$lang['update_ok'] = 'Пользователь успешно обновлен'; +$lang['update_ok'] = 'Пользователь успешно обновлён'; $lang['update_fail'] = 'Не удалось обновить пользователя'; $lang['update_exists'] = 'Не удалось изменить имя пользователя, такой пользователь (%s) уже существует (все остальные изменения будут применены).'; $lang['start'] = 'в начало'; $lang['prev'] = 'назад'; -$lang['next'] = 'вперед'; +$lang['next'] = 'вперёд'; $lang['last'] = 'в конец'; -$lang['edit_usermissing'] = 'Выбранный пользователь не найден. Возможно, указанный логин был удален или изменен извне.'; +$lang['edit_usermissing'] = 'Выбранный пользователь не найден. Возможно, указанный логин был удалён или изменен извне.'; $lang['user_notify'] = 'Сообщить пользователю'; -$lang['note_notify'] = 'Е-мэйлы с уведомлением посылаются только в случае получения нового пароля.'; +$lang['note_notify'] = 'Письма с уведомлением высылаются только в случае получения нового пароля.'; $lang['note_group'] = 'Если группа не указана, новые пользователи будут добавлены в группу по умолчанию (%s).'; $lang['note_pass'] = 'Пароль будет сгенерирован автоматически, если поле оставлено пустым и включено уведомление пользователя.'; $lang['add_ok'] = 'Пользователь успешно добавлен'; $lang['add_fail'] = 'Не удалось добавить пользователя'; -$lang['notify_ok'] = 'Е-мэйл с уведомлением был послан'; -$lang['notify_fail'] = 'Не удалось послать е-мэйл с уведомлением'; +$lang['notify_ok'] = 'Пиьмо с уведомлением отправлено'; +$lang['notify_fail'] = 'Не удалось отправить письмо с уведомлением'; diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index 8b309bc71..54ed374c6 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -10,7 +10,7 @@ $lang['menu'] = 'Správa používateľov'; $lang['noauth'] = '(autentifikácia užívateľov nie je dostupná)'; $lang['nosupport'] = '(správa užívateľov nie je podporovaná)'; -$lang['badauth'] = 'vadný autorizačný mechanizmus'; +$lang['badauth'] = 'neplatný autorizačný mechanizmus'; $lang['user_id'] = 'Užívateľ'; $lang['user_pass'] = 'Heslo'; $lang['user_name'] = 'Skutočné meno'; @@ -39,11 +39,11 @@ $lang['start'] = 'prvé'; $lang['prev'] = 'predošlé'; $lang['next'] = 'ďalšie'; $lang['last'] = 'posledné'; -$lang['edit_usermissing'] = 'Vybraný užívateľ nebol nájdený, mohol byť zmazaný, alebo zmenený iným spôsobom.'; +$lang['edit_usermissing'] = 'Vybraný užívateľ nebol nájdený, mohol byť zmazaný alebo zmenený iným spôsobom.'; $lang['user_notify'] = 'Upozorniť užívateľa'; $lang['note_notify'] = 'Notifikačné e-maily iba vtedy, ak dostane užívateľ nové heslo'; -$lang['note_group'] = 'Noví užívatelia budú pridaní do východej skupiny (%s), ak nie je pre nich špecifikovaná iná skupina.'; -$lang['note_pass'] = 'Heslo bude vygenegované automaticky, ak bude pole prázdne a je zapnutá notifikácia používateľa.'; +$lang['note_group'] = 'Noví užívatelia budú pridaní do východzej skupiny (%s), ak nie je pre nich špecifikovaná iná skupina.'; +$lang['note_pass'] = 'Heslo bude vygenerované automaticky, ak bude pole prázdne a je zapnutá notifikácia používateľa.'; $lang['add_ok'] = 'Používateľ úspešne pridaný'; $lang['add_fail'] = 'Pridávanie užívateľa nebolo úspešné'; $lang['notify_ok'] = 'Notifikačný e-mail bol poslaný'; diff --git a/lib/plugins/usermanager/lang/sq/add.txt b/lib/plugins/usermanager/lang/sq/add.txt new file mode 100644 index 000000000..4c66aaf3e --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/add.txt @@ -0,0 +1 @@ +===== Shto Përdorues =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sq/delete.txt b/lib/plugins/usermanager/lang/sq/delete.txt new file mode 100644 index 000000000..34cb49173 --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/delete.txt @@ -0,0 +1 @@ +===== Fshi përdorues =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sq/edit.txt b/lib/plugins/usermanager/lang/sq/edit.txt new file mode 100644 index 000000000..63131038f --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/edit.txt @@ -0,0 +1 @@ +===== Redakto Përdorues =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sq/intro.txt b/lib/plugins/usermanager/lang/sq/intro.txt new file mode 100644 index 000000000..e1ebea60c --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/intro.txt @@ -0,0 +1 @@ +===== Menaxhuesi i Përdoruesit =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sq/lang.php b/lib/plugins/usermanager/lang/sq/lang.php new file mode 100644 index 000000000..bddf54d5b --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/lang.php @@ -0,0 +1,48 @@ +<?php +/** + * Albanian language file + * + * @author Leonard Elezi leonard.elezi@depinfo.info + */ +$lang['menu'] = 'Menaxhuesi Përdoruesve'; +$lang['noauth'] = '(autentikimi i përdoruesve nuk është i disponueshëm)'; +$lang['nosupport'] = '(menaxhimi i përdoruesve nuk suportohet)'; +$lang['badauth'] = '(mekanizëm i pavlefshëm autentikimi)'; +$lang['user_id'] = 'Përdoruesi'; +$lang['user_pass'] = 'Fjalëkalimi +'; +$lang['user_name'] = 'Emri i Vërtetë'; +$lang['user_mail'] = 'Email'; +$lang['user_groups'] = 'Grupe'; +$lang['field'] = 'Fusha'; +$lang['value'] = 'Vlera'; +$lang['add'] = 'Shto'; +$lang['delete'] = 'Fshi'; +$lang['delete_selected'] = 'Fshi të Përzgjedhurën'; +$lang['edit'] = 'Redakto'; +$lang['edit_prompt'] = 'Redakto këtë përdorues'; +$lang['modify'] = 'Ruaj Ndryshimet'; +$lang['search'] = 'Kërko'; +$lang['search_prompt'] = 'Kryej kërkim'; +$lang['clear'] = 'Rivendos Filter Kërkimi'; +$lang['filter'] = 'Filter'; +$lang['summary'] = 'Duke treguar përdoruesit %1$d-%2$d nga %3$d të gjetur. %4$d përdorues në total.'; +$lang['nonefound'] = 'Asnjë përdorues nuk u gjet. %d përdorues në total.'; +$lang['delete_ok'] = '%d përdorues u fshinë.'; +$lang['delete_fail'] = '%d dështuan të fshihen.'; +$lang['update_ok'] = 'Përdoruesi u përditësia me sukses.'; +$lang['update_fail'] = 'Përditësimi i përdoruesit dështoi.'; +$lang['update_exists'] = 'Ndryshimi i emrit të përdoruesit dështoi, emri i përdoruesit i specifikuar (%s) ekziston tashmë (çdo ndryshim tjetër do të zbatohet).'; +$lang['start'] = 'Fillim'; +$lang['prev'] = 'Mëpara'; +$lang['next'] = 'Tjetra'; +$lang['last'] = 'Fundi'; +$lang['edit_usermissing'] = 'Përdoruesi i përzgjedhur nuk u gjet, emri i specifikuar i përdoruesit mund të jetë fshirë ose ndryshuar diku tjetër.'; +$lang['user_notify'] = 'Lajmëro përdoruesin'; +$lang['note_notify'] = 'Email-et e lajmërimit dërgohen vetëm nëse përdoruesit i jepet një fjalëkalim i ri.'; +$lang['note_group'] = 'Përdorues të rinj do të shtohen në grupin default (%s) nëse asnjë grup nuk specifikohet.'; +$lang['note_pass'] = 'Fjalëkalimi do të autogjenerohet nëse fusha lihet bosh dhe lajmërimi i përdoruesit është i aktivizuar.'; +$lang['add_ok'] = 'Përdoruesi u shtua me sukses.'; +$lang['add_fail'] = 'Shtimi i përdoruesit dështoi.'; +$lang['notify_ok'] = 'Email-i lajmërimit u dërgua.'; +$lang['notify_fail'] = 'Email-i lajmërimit nuk mundi të dërgohej.'; diff --git a/lib/plugins/usermanager/lang/sq/list.txt b/lib/plugins/usermanager/lang/sq/list.txt new file mode 100644 index 000000000..68fc2e7c6 --- /dev/null +++ b/lib/plugins/usermanager/lang/sq/list.txt @@ -0,0 +1 @@ +===== Lista Përdoruesve =====
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sr/lang.php b/lib/plugins/usermanager/lang/sr/lang.php index ab64c925a..5f2669b58 100644 --- a/lib/plugins/usermanager/lang/sr/lang.php +++ b/lib/plugins/usermanager/lang/sr/lang.php @@ -4,6 +4,7 @@ * * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org> + * @author Miroslav Šolti <solti.miroslav@gmail.com> */ $lang['menu'] = 'Управљач корисницима'; $lang['noauth'] = '(корисничка провера није доступна)'; diff --git a/lib/plugins/usermanager/lang/uk/lang.php b/lib/plugins/usermanager/lang/uk/lang.php index 7e9f9167e..027c94b44 100644 --- a/lib/plugins/usermanager/lang/uk/lang.php +++ b/lib/plugins/usermanager/lang/uk/lang.php @@ -8,6 +8,7 @@ * @author okunia@gmail.com * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko uko@uar.net + * @author Ulrikhe Lukoie <lukoie@gmail>.com */ $lang['menu'] = 'Керування користувачами'; $lang['noauth'] = '(автентифікація користувачів не доступна)'; diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index 55044ce65..613826329 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -7,6 +7,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan <simonzhan@21cn.com> * @author mr.jinyi@gmail.com + * @author ben <ben@livetom.com> */ $lang['menu'] = '用户管理器'; $lang['noauth'] = '(用户认证不可用)'; diff --git a/lib/scripts/ajax.js b/lib/scripts/ajax.js index a2a48a996..de009d448 100644 --- a/lib/scripts/ajax.js +++ b/lib/scripts/ajax.js @@ -1,68 +1,48 @@ /** * AJAX functions for the pagename quicksearch * - * We're using a global object with self referencing methods - * here to make callbacks work - * * @license GPL2 (http://www.gnu.org/licenses/gpl.html) * @author Andreas Gohr <andi@splitbrain.org> + * @author Adrian Lang <lang@cosmocode.de> */ - -//prepare class -function ajax_qsearch_class(){ - this.sack = null; - this.inObj = null; - this.outObj = null; - this.timer = null; -} - -//create global object and add functions -var ajax_qsearch = new ajax_qsearch_class(); -ajax_qsearch.sack = new sack(DOKU_BASE + 'lib/exe/ajax.php'); -ajax_qsearch.sack.AjaxFailedAlert = ''; -ajax_qsearch.sack.encodeURIString = false; - -ajax_qsearch.init = function(inID,outID){ - ajax_qsearch.inObj = document.getElementById(inID); - ajax_qsearch.outObj = document.getElementById(outID); - - // objects found? - if(ajax_qsearch.inObj === null){ return; } - if(ajax_qsearch.outObj === null){ return; } - - // attach eventhandler to search field - addEvent(ajax_qsearch.inObj,'keyup',ajax_qsearch.call); - - // attach eventhandler to output field - addEvent(ajax_qsearch.outObj,'click',function(){ ajax_qsearch.outObj.style.display='none'; }); -}; - -ajax_qsearch.clear = function(){ - ajax_qsearch.outObj.style.display = 'none'; - ajax_qsearch.outObj.innerHTML = ''; - if(ajax_qsearch.timer !== null){ - window.clearTimeout(ajax_qsearch.timer); - ajax_qsearch.timer = null; - } -}; - -ajax_qsearch.exec = function(){ - ajax_qsearch.clear(); - var value = ajax_qsearch.inObj.value; - if(value === ''){ return; } - ajax_qsearch.sack.runAJAX('call=qsearch&q='+encodeURI(value)); -}; - -ajax_qsearch.sack.onCompletion = function(){ - var data = ajax_qsearch.sack.response; - if(data === ''){ return; } - - ajax_qsearch.outObj.innerHTML = data; - ajax_qsearch.outObj.style.display = 'block'; -}; - -ajax_qsearch.call = function(){ - ajax_qsearch.clear(); - ajax_qsearch.timer = window.setTimeout("ajax_qsearch.exec()",500); -}; - +addInitEvent(function () { + + var inID = 'qsearch__in'; + var outID = 'qsearch__out'; + + var inObj = document.getElementById(inID); + var outObj = document.getElementById(outID); + + // objects found? + if (inObj === null){ return; } + if (outObj === null){ return; } + + function clear_results(){ + outObj.style.display = 'none'; + outObj.innerHTML = ''; + } + + var sack_obj = new sack(DOKU_BASE + 'lib/exe/ajax.php'); + sack_obj.AjaxFailedAlert = ''; + sack_obj.encodeURIString = false; + sack_obj.onCompletion = function () { + var data = sack_obj.response; + if (data === '') { return; } + + outObj.innerHTML = data; + outObj.style.display = 'block'; + }; + + // attach eventhandler to search field + var delay = new Delay(function () { + clear_results(); + var value = inObj.value; + if(value === ''){ return; } + sack_obj.runAJAX('call=qsearch&q=' + encodeURI(value)); + }); + + addEvent(inObj, 'keyup', function () {clear_results(); delay.start(); }); + + // attach eventhandler to output field + addEvent(outObj, 'click', function () {outObj.style.display = 'none'; }); +}); diff --git a/lib/scripts/delay.js b/lib/scripts/delay.js new file mode 100644 index 000000000..2ef9f8846 --- /dev/null +++ b/lib/scripts/delay.js @@ -0,0 +1,69 @@ +/** + * Manage delayed and timed actions + * + * @license GPL2 (http://www.gnu.org/licenses/gpl.html) + * @author Adrian Lang <lang@cosmocode.de> + */ + +/** + * Provide a global callback for window.setTimeout + * + * To get a timeout for non-global functions, just call + * delay.add(func, timeout). + */ +var timer = { + _cur_id: 0, + _handlers: {}, + + execDispatch: function (id) { + timer._handlers[id](); + }, + + add: function (func, timeout) { + var id = ++timer._cur_id; + timer._handlers[id] = func; + return window.setTimeout('timer.execDispatch(' + id + ')', timeout); + } +}; + +/** + * Provide a delayed start + * + * To call a function with a delay, just create a new Delay(func, timeout) and + * call that object’s method “start”. + */ +function Delay (func, timeout) { + this.func = func; + if (timeout) { + this.timeout = timeout; + } +} + +Delay.prototype = { + func: null, + timeout: 500, + + delTimer: function () { + if (this.timer !== null) { + window.clearTimeout(this.timer); + this.timer = null; + } + }, + + start: function () { + this.delTimer(); + var _this = this; + this.timer = timer.add(function () { _this.exec.call(_this); }, + this.timeout); + + this._data = { + _this: arguments[0], + _params: Array.prototype.slice.call(arguments, 2) + }; + }, + + exec: function () { + this.delTimer(); + this.func.call(this._data._this, this._data._params); + } +}; diff --git a/lib/scripts/drag.js b/lib/scripts/drag.js index 4726b77de..2212fb6c1 100644 --- a/lib/scripts/drag.js +++ b/lib/scripts/drag.js @@ -1,8 +1,9 @@ /** * Makes a DOM object draggable * - * This is currently for movable DOM dialogs only. If needed it could be - * extended to execute callbacks on special events... + * If you just want to move objects around, use drag.attach. For full + * customization, drag can be used as a javascript prototype, it is + * inheritance-aware. * * @link http://nofunc.org/Drag_Drop/ */ @@ -26,36 +27,37 @@ var drag = { attach: function (obj,handle) { if(handle){ handle.dragobject = obj; - addEvent($(handle),'mousedown',drag.start); }else{ - addEvent($(obj),'mousedown',drag.start); + handle = obj; } + var _this = this; + addEvent($(handle),'mousedown',function (e) {return _this.start(e); }); }, /** * Starts the dragging operation */ start: function (e){ - drag.handle = e.target; - if(drag.handle.dragobject){ - drag.obj = drag.handle.dragobject; + this.handle = e.target; + if(this.handle.dragobject){ + this.obj = this.handle.dragobject; }else{ - drag.obj = drag.handle; + this.obj = this.handle; } - drag.handle.className += ' ondrag'; - drag.obj.className += ' ondrag'; + this.handle.className += ' ondrag'; + this.obj.className += ' ondrag'; - drag.oX = parseInt(drag.obj.style.left); - drag.oY = parseInt(drag.obj.style.top); - drag.eX = drag.evX(e); - drag.eY = drag.evY(e); + this.oX = parseInt(this.obj.style.left); + this.oY = parseInt(this.obj.style.top); + this.eX = e.pageX; + this.eY = e.pageY; - addEvent(document,'mousemove',drag.drag); - addEvent(document,'mouseup',drag.stop); + var _this = this; + this.mousehandlers = [function (e) {return _this.drag(e);}, function (e) {return _this.stop(e);}]; + addEvent(document,'mousemove', this.mousehandlers[0]); + addEvent(document,'mouseup', this.mousehandlers[1]); - e.preventDefault(); - e.stopPropagation(); return false; }, @@ -63,37 +65,21 @@ var drag = { * Ends the dragging operation */ stop: function(){ - drag.handle.className = drag.handle.className.replace(/ ?ondrag/,''); - drag.obj.className = drag.obj.className.replace(/ ?ondrag/,''); - removeEvent(document,'mousemove',drag.drag); - removeEvent(document,'mouseup',drag.stop); - drag.obj = null; - drag.handle = null; + this.handle.className = this.handle.className.replace(/ ?ondrag/,''); + this.obj.className = this.obj.className.replace(/ ?ondrag/,''); + removeEvent(document,'mousemove', this.mousehandlers[0]); + removeEvent(document,'mouseup', this.mousehandlers[1]); + this.obj = null; + this.handle = null; }, /** * Moves the object during the dragging operation */ drag: function(e) { - if(drag.obj) { - drag.obj.style.top = (drag.evY(e)+drag.oY-drag.eY+'px'); - drag.obj.style.left = (drag.evX(e)+drag.oX-drag.eX+'px'); + if(this.obj) { + this.obj.style.top = (e.pageY+this.oY-this.eY+'px'); + this.obj.style.left = (e.pageX+this.oX-this.eX+'px'); } - }, - - /** - * Returns the X position of the given event. - */ - evX: function(e){ - return (e.pageX) ? e.pageX : e.clientX + document.body.scrollTop; //fixme shouldn't this be scrollLeft? - }, - - /** - * Returns the Y position of the given event. - */ - evY: function(e){ - return (e.pageY) ? e.pageY : e.clientY + document.body.scrollTop; } - }; - diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js index ef0a9a106..01262bcef 100644 --- a/lib/scripts/edit.js +++ b/lib/scripts/edit.js @@ -12,12 +12,15 @@ * * @author Andreas Gohr <andi@splitbrain.org> */ -function createToolButton(icon,label,key,id){ +function createToolButton(icon,label,key,id,classname){ var btn = document.createElement('button'); var ico = document.createElement('img'); // preapare the basic button stuff btn.className = 'toolbutton'; + if(classname){ + btn.className += ' '+classname; + } btn.title = label; if(key){ btn.title += ' ['+key.toUpperCase()+']'; @@ -68,6 +71,7 @@ function createPicker(id,props,edid){ picker.id = id; picker.style.position = 'absolute'; picker.style.marginLeft = '-10000px'; // no display:none, to keep access keys working + picker.style.marginTop = '-10000px'; for(var key in list){ if (!list.hasOwnProperty(key)) continue; @@ -151,6 +155,7 @@ function keyHandler(e){ e.keyCode != 32) return; var field = e.target; var selection = getSelection(field); + if(selection.getLength()) return; //there was text selected, keep standard behavior var search = "\n"+field.value.substr(0,selection.start); var linestart = Math.max(search.lastIndexOf("\n"), search.lastIndexOf("\r")); //IE workaround @@ -162,7 +167,17 @@ function keyHandler(e){ var match = search.match(/(\n +([\*-] ?)?)/); if(match){ var scroll = field.scrollHeight; - insertAtCarret(field.id,match[1]); + var match2 = search.match(/^\n +[\*-]\s*$/); + // Cancel list if the last item is empty (i. e. two times enter) + if (match2 && field.value.substr(selection.start).match(/^($|\r?\n)/)) { + field.value = field.value.substr(0, linestart) + "\n" + + field.value.substr(selection.start); + selection.start = linestart + 1; + selection.end = linestart + 1; + setSelection(selection); + } else { + insertAtCarret(field.id,match[1]); + } field.scrollTop += (field.scrollHeight - scroll); e.preventDefault(); // prevent enter key return false; @@ -207,7 +222,13 @@ function keyHandler(e){ addInitEvent(function(){ var field = $('wiki__text'); if(!field) return; - addEvent(field,'keydown',keyHandler); + // in Firefox, keypress doesn't send the correct keycodes, + // in Opera, the default of keydown can't be prevented + if (is_opera) { + addEvent(field,'keypress',keyHandler); + } else { + addEvent(field,'keydown',keyHandler); + } }); /** @@ -243,88 +264,68 @@ function currentHeadlineLevel(textboxId){ var textChanged = false; /** - * Check for changes before leaving the page + * Delete the draft before leaving the page */ -function changeCheck(msg){ - if(textChanged){ - var ok = confirm(msg); - if(ok){ - // remove a possibly saved draft using ajax - var dwform = $('dw__editform'); - if(dwform){ - var params = 'call=draftdel'; - params += '&id='+encodeURIComponent(dwform.elements.id.value); - - var sackobj = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - sackobj.AjaxFailedAlert = ''; - sackobj.encodeURIString = false; - sackobj.runAJAX(params); - // we send this request blind without waiting for - // and handling the returned data - } +function deleteDraft() { + if (is_opera) return; + + // remove a possibly saved draft using ajax + var dwform = $('dw__editform'); + if(dwform){ + var params = 'call=draftdel'; + params += '&id='+encodeURIComponent(dwform.elements.id.value); + + var sackobj = new sack(DOKU_BASE + 'lib/exe/ajax.php'); + // this needs to be synchronous and GET to not be aborted upon page unload + sackobj.asynchronous = false; + sackobj.method = 'GET'; + sackobj.AjaxFailedAlert = ''; + sackobj.encodeURIString = false; + sackobj.runAJAX(params); } - return ok; - }else{ - return true; - } } /** - * Add changeCheck to all Links and Forms (except those with a - * JSnocheck class), add handlers to monitor changes + * Activate "not saved" dialog, add draft deletion to page unload, + * add handlers to monitor changes * * Sets focus to the editbox as well - * - * @fixme this is old and crappy code. needs to be redone */ -function initChangeCheck(msg){ - var edit_text = document.getElementById('wiki__text'); - if(!edit_text) return; - if(edit_text.readOnly) return; - if(!$('dw__editform')) return; - - // add change check for links - var links = document.getElementsByTagName('a'); - for(var i=0; i < links.length; i++){ - if(links[i].className.indexOf('JSnocheck') == -1){ - links[i].onclick = function(){ - var rc = changeCheck(msg); - if(window.event) window.event.returnValue = rc; - return rc; - }; - } - } - // add change check for forms - var forms = document.forms; - for(i=0; i < forms.length; i++){ - if(forms[i].className.indexOf('JSnocheck') == -1){ - forms[i].onsubmit = function(){ - var rc = changeCheck(msg); - if(window.event) window.event.returnValue = rc; - return rc; - }; - } - } +addInitEvent(function (){ + var editform = $('dw__editform'); + if (!editform) return; - // reset change memory var on submit - var btn_save = document.getElementById('edbtn__save'); - btn_save.onclick = function(){ textChanged = false; }; - var btn_prev = document.getElementById('edbtn__preview'); - btn_prev.onclick = function(){ textChanged = false; }; + var edit_text = $('wiki__text'); + if(edit_text) { + if(edit_text.readOnly) return; - // add change memory setter - edit_text.onchange = function(){ + // set focus + edit_text.focus(); + } + + var checkfunc = function(){ textChanged = true; //global var summaryCheck(); }; - var summary = document.getElementById('edit__summary'); + addEvent(editform, 'change', checkfunc); + addEvent(editform, 'keydown', checkfunc); + + window.onbeforeunload = function(){ + if(textChanged) { + return LANG.notsavedyet; + } + }; + window.onunload = deleteDraft; + + // reset change memory var on submit + addEvent($('edbtn__save'), 'click', function(){ textChanged = false; }); + addEvent($('edbtn__preview'), 'click', function(){ textChanged = false; }); + + var summary = $('edit__summary'); addEvent(summary, 'change', summaryCheck); addEvent(summary, 'keyup', summaryCheck); if (textChanged) summaryCheck(); - - // set focus - edit_text.focus(); -} +}); /** * Checks if a summary was entered - if not the style is changed @@ -371,8 +372,7 @@ var locktimer = new locktimer_class(); locktimer.sack.onCompletion = locktimer.refreshed; // register refresh event - addEvent($('dw__editform').elements.wikitext,'keypress',function(){locktimer.refresh();}); - + addEvent($('dw__editform'),'keypress',function(){locktimer.refresh();}); // start timer locktimer.reset(); }; @@ -413,12 +413,14 @@ var locktimer = new locktimer_class(); // refresh every minute only if(now.getTime() - locktimer.lasttime.getTime() > 30*1000){ //FIXME decide on time var params = 'call=lock&id='+encodeURIComponent(locktimer.pageid); - if(locktimer.draft){ - var dwform = $('dw__editform'); + var dwform = $('dw__editform'); + if(locktimer.draft && dwform.elements.wikitext){ params += '&prefix='+encodeURIComponent(dwform.elements.prefix.value); params += '&wikitext='+encodeURIComponent(dwform.elements.wikitext.value); params += '&suffix='+encodeURIComponent(dwform.elements.suffix.value); - params += '&date='+encodeURIComponent(dwform.elements.date.value); + if(dwform.elements.date){ + params += '&date='+encodeURIComponent(dwform.elements.date.value); + } } locktimer.sack.runAJAX(params); locktimer.lasttime = now; diff --git a/lib/scripts/events.js b/lib/scripts/events.js index e7526ced7..a1fcac718 100644 --- a/lib/scripts/events.js +++ b/lib/scripts/events.js @@ -35,26 +35,31 @@ function removeEvent(element, type, handler) { function handleEvent(event) { var returnValue = true; // grab the event object (IE uses a global event object) - event = event || fixEvent(window.event); + event = event || fixEvent(window.event, this); // get a reference to the hash table of event handlers var handlers = this.events[event.type]; // execute each event handler for (var i in handlers) { if (!handlers.hasOwnProperty(i)) continue; - this.$$handleEvent = handlers[i]; - if (this.$$handleEvent(event) === false) { + if (handlers[i].call(this, event) === false) { returnValue = false; } } return returnValue; }; -function fixEvent(event) { +function fixEvent(event, _this) { // add W3C standard event methods event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; // fix target event.target = event.srcElement; + event.currentTarget = _this; + // fix coords + var base = (document.documentElement.scrollTop?document.documentElement:document.body); + event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + base.scrollLeft; + event.pageY = (typeof event.pageY !== 'undefined') ? event.pageY : event.clientY + base.scrollTop; + return event; }; fixEvent.preventDefault = function() { @@ -103,8 +108,8 @@ window.fireoninit = function() { } // for Internet Explorer (using conditional comments) - /*@cc_on @*/ - /*@if (@_win32) + /*@cc_on + @if (@_win32) document.write("<scr" + "ipt id=\"__ie_init\" defer=\"true\" src=\"//:\"><\/script>"); var script = document.getElementById("__ie_init"); script.onreadystatechange = function() { @@ -112,7 +117,7 @@ window.fireoninit = function() { window.fireoninit(); // call the onload handler } }; - /*@end @*/ + @end @*/ // for Safari if (/WebKit/i.test(navigator.userAgent)) { // sniff @@ -172,5 +177,5 @@ function bind (fnc) { var args = Array.prototype.slice.call(arguments, 1); return function() { return fnc.apply(this, args); - } + }; } diff --git a/lib/scripts/helpers.js b/lib/scripts/helpers.js index 8d4f3ea78..129964d29 100644 --- a/lib/scripts/helpers.js +++ b/lib/scripts/helpers.js @@ -109,7 +109,7 @@ function isEmpty (prop /* :Object */) /* :Boolean */ { if (isRegExp(prop) && new RegExp("").toString() == prop.toString()) return true; if (isString(prop) || isNumber(prop)) return !prop; if (Boolean(prop)&&false != prop) { - for (var i in prop) if(prop.hasOwnProperty(i)) return false + for (var i in prop) if(prop.hasOwnProperty(i)) return false; } return true; } @@ -124,7 +124,7 @@ function isEmpty (prop /* :Object */) /* :Boolean */ { if ('undefined' == typeof Object.hasOwnProperty) { Object.prototype.hasOwnProperty = function (prop) { return !('undefined' == typeof this[prop] || this.constructor && this.constructor.prototype[prop] && this[prop] === this.constructor.prototype[prop]); - } + }; } /** diff --git a/lib/scripts/hotkeys.js b/lib/scripts/hotkeys.js new file mode 100644 index 000000000..356b691ea --- /dev/null +++ b/lib/scripts/hotkeys.js @@ -0,0 +1,304 @@ +/** + * Some of these scripts were taken from TinyMCE (http://tinymce.moxiecode.com/) and were modified for DokuWiki + * + * Class handles accesskeys using javascript and also provides ability + * to register and use other hotkeys as well. + * + * @author Marek Sacha <sachamar@fel.cvut.cz> + */ +function Hotkeys() { + + this.shortcuts = new Array(); + + /** + * Set modifier keys, for instance: + * this.modifier = 'ctrl'; + * this.modifier = 'ctrl+shift'; + * this.modifier = 'ctrl+alt+shift'; + * this.modifier = 'alt'; + * this.modifier = 'alt+shift'; + * + * overwritten in intitialize (see below) + */ + this.modifier = 'ctrl+alt'; + + /** + * Initialization + * + * This function looks up all the accesskeys used in the current page + * (at anchor elements and input elements [type="submit"]) and registers + * appropriate shortcuts. + * + * Secondly, initialization registers listeners on document to catch all + * keyboard events. + * + * @author Marek Sacha <sachamar@fel.cvut.cz> + */ + this.initialize = function() { + var t = this; + + //switch modifier key based on OS FS#1958 + if(is_macos){ + t.modifier = 'ctrl+alt'; + }else{ + t.modifier = 'alt'; + } + + /** + * Lookup all anchors with accesskey and register event - go to anchor + * target. + */ + var anchors = document.getElementsByTagName("a"); + t.each(anchors, function(a) { + if (a.accessKey != "") { + t.addShortcut(t.modifier + '+' + a.accessKey, function() { + a.click(); + }); + a.accessKey = ''; + } + }); + + /** + * Lookup all input [type="submit"] with accesskey and register event - + * perform "click" on a button. + */ + var inputs = document.getElementsByTagName("input"); + t.each(inputs, function(i) { + if (i.type == "submit" && i.accessKey != "") { + t.addShortcut(t.modifier + '+' + i.accessKey, function() { + i.click(); + }); + i.accessKey = ''; + } + }); + + /** + * Lookup all buttons with accesskey and register event - + * perform "click" on a button. + */ + var buttons = document.getElementsByTagName("button"); + t.each(buttons, function(b) { + if (b.accessKey != "") { + t.addShortcut(t.modifier + '+' + b.accessKey, function() { + b.click(); + }); + b.accessKey = ''; + } + }); + + /** + * Register listeners on document to catch keyboard events. + */ + + addEvent(document,'keyup',function (e) { + return t.onkeyup.call(t,e); + }); + + addEvent(document,'keypress',function (e) { + return t.onkeypress.call(t,e); + }); + + addEvent(document,'keydown',function (e) { + return t.onkeydown.call(t,e); + }); + }; + + /** + * Keyup processing function + * Function returns true if keyboard event has registered handler, and + * executes the handler function. + * + * @param e KeyboardEvent + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @return b boolean + */ + this.onkeyup = function(e) { + var t = this; + var v = t.findShortcut(e); + if (v != null && v != false) { + v.func.call(t); + return false; + } + return true; + }; + + /** + * Keydown processing function + * Function returns true if keyboard event has registered handler + * + * @param e KeyboardEvent + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @return b boolean + */ + this.onkeydown = function(e) { + var t = this; + var v = t.findShortcut(e); + if (v != null && v != false) { + return false; + } + return true; + }; + + /** + * Keypress processing function + * Function returns true if keyboard event has registered handler + * + * @param e KeyboardEvent + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @return b + */ + this.onkeypress = function(e) { + var t = this; + var v = t.findShortcut(e); + if (v != null && v != false) { + return false; + } + return true; + }; + + /** + * Register new shortcut + * + * This function registers new shortcuts, each shortcut is defined by its + * modifier keys and a key (with + as delimiter). If shortcut is pressed + * cmd_function is performed. + * + * For example: + * pa = "ctrl+alt+p"; + * pa = "shift+alt+s"; + * + * Full example of method usage: + * hotkeys.addShortcut('ctrl+s',function() { + * document.getElementByID('form_1').submit(); + * }); + * + * @param pa String description of the shortcut (ctrl+a, ctrl+shift+p, .. ) + * @param cmd_func Function to be called if shortcut is pressed + * @author Marek Sacha <sachamar@fel.cvut.cz> + */ + this.addShortcut = function(pa, cmd_func) { + var t = this; + + var o = { + func : cmd_func, + alt : false, + ctrl : false, + shift : false + }; + + t.each(t.explode(pa, '+'), function(v) { + switch (v) { + case 'alt': + case 'ctrl': + case 'shift': + o[v] = true; + break; + + default: + o.charCode = v.charCodeAt(0); + o.keyCode = v.toUpperCase().charCodeAt(0); + } + }); + + t.shortcuts.push((o.ctrl ? 'ctrl' : '') + ',' + (o.alt ? 'alt' : '') + ',' + (o.shift ? 'shift' : '') + ',' + o.keyCode, o); + + return true; + }; + + /** + * @property isMac + */ + this.isMac = (navigator.userAgent.indexOf('Mac') != -1); + + /** + * Apply function cb on each element of o in the namespace of s + * @param o Array of objects + * @param cb Function to be called on each object + * @param s Namespace to be used during call of cb (default namespace is o) + * @author Marek Sacha <sachamar@fel.cvut.cz> + */ + this.each = function(o, cb, s) { + var n, l; + + if (!o) + return 0; + + s = s || o; + + if (o.length !== undefined) { + // Indexed arrays, needed for Safari + for (n=0, l = o.length; n < l; n++) { + if (cb.call(s, o[n], n, o) === false) + return 0; + } + } else { + // Hashtables + for (n in o) { + if (o.hasOwnProperty(n)) { + if (cb.call(s, o[n], n, o) === false) + return 0; + } + } + } + + return 1; + }; + + /** + * Explode string according to delimiter + * @param s String + * @param d Delimiter (default ',') + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @return a Array of tokens + */ + this.explode = function(s, d) { + return s.split(d || ','); + }; + + /** + * Find if the shortcut was registered + * + * @param e KeyboardEvent + * @author Marek Sacha <sachamar@fel.cvut.cz> + * @return v Shortcut structure or null if not found + */ + this.findShortcut = function (e) { + var t = this; + var v = null; + + /* No modifier key used - shortcut does not exist */ + if (!e.altKey && !e.ctrlKey && !e.metaKey) { + return v; + } + + t.each(t.shortcuts, function(o) { + if (t.isMac && o.ctrl != e.metaKey) + return; + else if (!t.isMac && o.ctrl != e.ctrlKey) + return; + + if (o.alt != e.altKey) + return; + + if (o.shift != e.shiftKey) + return; + + if (e.keyCode == o.keyCode || (e.charCode && e.charCode == o.charCode)) { + v = o; + return; + } + }); + return v; + }; +} + +/** + * Init function for hotkeys. Called from js.php, to ensure hotkyes are initialized after toolbar. + * Call of addInitEvent(initializeHotkeys) is unnecessary now. + * + * @author Marek Sacha <sachamar@fel.cvut.cz> + */ +function initializeHotkeys() { + var hotkeys = new Hotkeys(); + hotkeys.initialize(); +} diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index d687ebbeb..225868592 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -30,6 +30,7 @@ var linkwiz = { linkwiz.wiz.style.top = (findPosY(textArea)+20)+'px'; linkwiz.wiz.style.left = (findPosX(textArea)+80)+'px'; linkwiz.wiz.style.marginLeft = '-10000px'; + linkwiz.wiz.style.marginTop = '-10000px'; linkwiz.wiz.innerHTML = '<div id="link__wiz_header">'+ @@ -37,7 +38,7 @@ var linkwiz = { LANG['linkwiz']+'</div>'+ '<div>'+LANG['linkto']+' <input type="text" class="edit" id="link__wiz_entry" autocomplete="off" /></div>'+ '<div id="link__wiz_result"></div>'; - textArea.form.parentNode.appendChild(linkwiz.wiz); + $('dw__editform').parentNode.appendChild(linkwiz.wiz); linkwiz.textArea = textArea; linkwiz.result = $('link__wiz_result'); linkwiz.entry = $('link__wiz_entry'); @@ -256,6 +257,7 @@ var linkwiz = { show: function(){ linkwiz.selection = getSelection(linkwiz.textArea); linkwiz.wiz.style.marginLeft = '0px'; + linkwiz.wiz.style.marginTop = '0px'; linkwiz.entry.focus(); linkwiz.autocomplete(); }, @@ -265,6 +267,7 @@ var linkwiz = { */ hide: function(){ linkwiz.wiz.style.marginLeft = '-10000px'; + linkwiz.wiz.style.marginTop = '-10000px'; linkwiz.textArea.focus(); }, diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 3e4213f19..95b1ab69e 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -6,6 +6,13 @@ var media_manager = { keepopen: false, hide: false, + align: false, + popup: false, + id: false, + display: false, + link: false, + size: false, + ext: false, /** * Attach event handlers to all "folders" below the given element @@ -141,33 +148,6 @@ var media_manager = { }, /** - * Opens the searchfield - * - * @author Tobias Sarnowski <sarnowski@cosmocode.de> - */ - showsearchfield: function(event,link){ - // prepare an AJAX call to fetch the search - var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); - ajax.AjaxFailedAlert = ''; - ajax.encodeURIString = false; - if(ajax.failed) return true; - - cleanMsgArea(); - - var content = $('media__content'); - content.innerHTML = '<img src="'+DOKU_BASE+'lib/images/loading.gif" alt="..." class="load" />'; - - ajax.elementObj = content; - ajax.afterCompletion = function(){ - media_manager.selectorattach(content); - media_manager.confirmattach(content); - media_manager.updatehide(); - }; - ajax.runAJAX(link.search.substr(1)+'&call=mediasearchlist'); - return false; - }, - - /** * Toggles the keep open state * * @author Andreas Gohr <andi@splitbrain.org> @@ -218,24 +198,359 @@ var media_manager = { }, /** - * Insert the clicked image into the opener's textarea - * - * @author Andreas Gohr <andi@splitbrain.org> + * shows the popup for a image link */ select: function(event,link){ var id = link.name.substr(2); + media_manager.id = id; if(!opener){ // if we don't run in popup display example var ex = $('ex_'+id.replace(/:/g,'_')); if(ex.style.display == ''){ ex.style.display = 'none'; - }else{ + } else { ex.style.display = ''; } return false; } - opener.insertTags('wiki__text','{{'+id+'|','}}',''); + + media_manager.ext = false; + var dot = id.lastIndexOf("."); + if (dot != -1) { + var ext = id.substr(dot,id.length); + + if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { + media_manager.insert(null); + return false; + } + } else { + media_manager.insert(null); + return false; + } + + media_manager.popup.style.display = 'inline'; + media_manager.popup.style.left = event.pageX + 'px'; + media_manager.popup.style.top = event.pageY + 'px'; + + // set all buttons to outset + media_manager.outSet('media__linkbtn1'); + media_manager.outSet('media__linkbtn2'); + media_manager.outSet('media__linkbtn3'); + media_manager.outSet('media__linkbtn4'); + + media_manager.outSet('media__alignbtn0'); + media_manager.outSet('media__alignbtn1'); + media_manager.outSet('media__alignbtn2'); + media_manager.outSet('media__alignbtn3'); + + media_manager.outSet('media__sizebtn1'); + media_manager.outSet('media__sizebtn2'); + media_manager.outSet('media__sizebtn3'); + media_manager.outSet('media__sizebtn4'); + + + if (ext == '.swf') { + media_manager.ext = 'swf'; + + // disable display buttons for detail and linked image + $('media__linkbtn1').style.display = 'none'; + $('media__linkbtn2').style.display = 'none'; + + // set the link button to default + if (media_manager.link != false) { + if ( media_manager.link == '2' || media_manager.link == '1') { + media_manager.inSet('media__linkbtn3'); + media_manager.link = '3'; + DokuCookie.setValue('link','3'); + } else { + media_manager.inSet('media__linkbtn'+media_manager.link); + } + } else if (DokuCookie.getValue('link')) { + if ( DokuCookie.getValue('link') == '2' || DokuCookie.getValue('link') == '1') { + // this options are not availible + media_manager.inSet('media__linkbtn3'); + media_manager.link = '3'; + DokuCookie.setValue('link','3'); + } else { + media_manager.inSet('media__linkbtn'+DokuCookie.getValue('link')); + media_manager.link = DokuCookie.getValue('link'); + } + } else { + // default case + media_manager.link = '3'; + media_manager.inSet('media__linkbtn3'); + DokuCookie.setValue('link','3'); + } + + // disable button for original size + $('media__sizebtn4').style.display = 'none'; + + } else { + media_manager.ext = 'img'; + + // ensure that the display buttons are there + $('media__linkbtn1').style.display = 'inline'; + $('media__linkbtn2').style.display = 'inline'; + $('media__sizebtn4').style.display = 'inline'; + + // set the link button to default + if (DokuCookie.getValue('link')) { + media_manager.link = DokuCookie.getValue('link'); + } + if (media_manager.link == false) { + // default case + media_manager.link = '1'; + DokuCookie.setValue('link','1'); + } + media_manager.inSet('media__linkbtn'+media_manager.link); + } + + if (media_manager.link == '4') { + media_manager.align = false; + media_manager.size = false; + $('media__align').style.display = 'none'; + $('media__size').style.display = 'none'; + } else { + $('media__align').style.display = 'block'; + $('media__size').style.display = 'block'; + + // set the align button to default + if (media_manager.align != false) { + media_manager.inSet('media__alignbtn'+media_manager.align); + } else if (DokuCookie.getValue('align')) { + media_manager.inSet('media__alignbtn'+DokuCookie.getValue('align')); + media_manager.align = DokuCookie.getValue('align'); + } else { + // default case + media_manager.align = '0'; + media_manager.inSet('media__alignbtn0'); + DokuCookie.setValue('align','0'); + } + + // set the size button to default + if (DokuCookie.getValue('size')) { + media_manager.size = DokuCookie.getValue('size'); + } + if (media_manager.size == false || (media_manager.size === '4' && ext === '.swf')) { + // default case + media_manager.size = '2'; + DokuCookie.setValue('size','2'); + } + media_manager.inSet('media__sizebtn'+media_manager.size); + + $('media__sendbtn').focus(); + } + + return false; + }, + + /** + * build the popup window + * + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + initpopup: function() { + + media_manager.popup = document.createElement('div'); + media_manager.popup.setAttribute('id','media__popup'); + + var root = document.getElementById('media__manager'); + if (root == null) return; + root.appendChild(media_manager.popup); + + var headline = document.createElement('h1'); + headline.innerHTML = LANG.mediatitle; + var headlineimg = document.createElement('img'); + headlineimg.src = DOKU_BASE + 'lib/images/close.png'; + headlineimg.id = 'media__closeimg'; + addEvent(headlineimg,'click',function(event){ return media_manager.closePopup(event,this); }); + headline.insertBefore(headlineimg, headline.firstChild); + media_manager.popup.appendChild(headline); + drag.attach(media_manager.popup,headline); + + // link + + var linkp = document.createElement('p'); + + linkp.id = "media__linkstyle"; + if (media_manager.display == "2") { + linkp.style.display = "none"; + } + + var linkl = document.createElement('label'); + linkl.innerHTML = LANG.mediatarget; + linkp.appendChild(linkl); + + var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; + for (var i = 0 ; i < linkbtns.length ; ++i) { + var linkbtn = document.createElement('button'); + linkbtn.className = 'button'; + linkbtn.value = i + 1; + linkbtn.id = "media__linkbtn" + (i + 1); + linkbtn.title = LANG['media' + linkbtns[i]]; + linkbtn.style.borderStyle = 'outset'; + addEvent(linkbtn,'click',function(event){ return media_manager.setlink(event,this); }); + + var linkimg = document.createElement('img'); + linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; + + linkbtn.appendChild(linkimg); + linkp.appendChild(linkbtn); + } + + media_manager.popup.appendChild(linkp); + + // align + + var alignp = document.createElement('p'); + var alignl = document.createElement('label'); + + alignp.appendChild(alignl); + alignp.id = 'media__align'; + if (media_manager.display == "2") { + alignp.style.display = "none"; + } + alignl.innerHTML = LANG['mediaalign']; + + var alignbtns = ['noalign', 'left', 'center', 'right']; + for (var n = 0 ; n < alignbtns.length ; ++n) { + var alignbtn = document.createElement('button'); + var alignimg = document.createElement('img'); + alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; + + alignbtn.id = "media__alignbtn" + n; + alignbtn.value = n; + alignbtn.title = LANG['media' + alignbtns[n]]; + alignbtn.className = 'button'; + alignbtn.appendChild(alignimg); + alignbtn.style.borderStyle = 'outset'; + addEvent(alignbtn,'click',function(event){ return media_manager.setalign(event,this); }); + + alignp.appendChild(alignbtn); + } + + media_manager.popup.appendChild(alignp); + + // size + + var sizep = document.createElement('p'); + var sizel = document.createElement('label'); + + sizep.id = 'media__size'; + if (media_manager.display == "2") { + sizep.style.display = "none"; + } + sizep.appendChild(sizel); + sizel.innerHTML = LANG['mediasize']; + + var sizebtns = ['small', 'medium', 'large', 'original']; + for (var size = 0 ; size < sizebtns.length ; ++size) { + var sizebtn = document.createElement('button'); + var sizeimg = document.createElement('img'); + + sizep.appendChild(sizebtn); + sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; + + sizebtn.className = 'button'; + sizebtn.appendChild(sizeimg); + sizebtn.value = size + 1; + sizebtn.id = 'media__sizebtn' + (size + 1); + sizebtn.title = LANG['media' + sizebtns[size]]; + sizebtn.style.borderStyle = 'outset'; + addEvent(sizebtn,'click',function(event){ return media_manager.setsize(event,this); }); + } + + media_manager.popup.appendChild(sizep); + + // send and close button + + var btnp = document.createElement('p'); + media_manager.popup.appendChild(btnp); + btnp.setAttribute('class','btnlbl'); + + var cls = document.createElement('input'); + cls.type = 'button'; + cls.setAttribute('class','button'); + cls.value = LANG['mediaclose']; + btnp.appendChild(cls); + addEvent(cls,'click',function(event){ return media_manager.closePopup(event,this); }); + + var btn = document.createElement('input'); + btn.type = 'button'; + btn.id = 'media__sendbtn'; + btn.setAttribute('class','button'); + btn.value = LANG['mediainsert']; + btnp.appendChild(btn); + addEvent(btn,'click',function(event){ return media_manager.insert(event); }); + }, + + /** + * Insert the clicked image into the opener's textarea + * + * @author Andreas Gohr <andi@splitbrain.org> + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + insert: function(event){ + var id = media_manager.id; + // set syntax options + $('media__popup').style.display = 'none'; + + var opts = ''; + var optsstart = ''; + var alignleft = ''; + var alignright = ''; + + if (media_manager.ext == 'img' || media_manager.ext == 'swf') { + + if (media_manager.link == '4') { + opts = '?linkonly'; + } else { + + if (media_manager.link == "3" && media_manager.ext == 'img') { + opts = '?nolink'; + optsstart = true; + } else if (media_manager.link == "2" && media_manager.ext == 'img') { + opts = '?direct'; + optsstart = true; + } + + var s = parseInt(media_manager.size); + + if (s && s >= 1) { + opts += (optsstart)?'&':'?'; + if (s=="1") { + opts += '100'; + if (media_manager.ext == 'swf') { + opts += 'x62'; + } + } else if (s=="2") { + opts += '200'; + if (media_manager.ext == 'swf') { + opts += 'x123'; + } + } else if (s=="3"){ + opts += '300'; + if (media_manager.ext == 'swf') { + opts += 'x185'; + } + } + } + if (media_manager.align == '1') { + alignleft = ''; + alignright = ' '; + } + if (media_manager.align == '2') { + alignleft = ' '; + alignright = ' '; + } + if (media_manager.align == '3') { + alignleft = ' '; + alignright = ''; + } + } + } + opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); if(!media_manager.keepopen) window.close(); opener.focus(); @@ -340,6 +655,116 @@ var media_manager = { oflash.style.display = ''; }; oform.appendChild(clicky); + }, + + /** + * closes the link type popup + */ + closePopup: function(event) { + $('media__popup').style.display = 'none'; + }, + + /** + * set the align + * + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + setalign: function(event,cb){ + if(cb.value){ + DokuCookie.setValue('align',cb.value); + media_manager.align = cb.value; + media_manager.outSet("media__alignbtn0"); + media_manager.outSet("media__alignbtn1"); + media_manager.outSet("media__alignbtn2"); + media_manager.outSet("media__alignbtn3"); + media_manager.inSet("media__alignbtn"+cb.value); + }else{ + DokuCookie.setValue('align',''); + media_manager.align = false; + } + }, + /** + * set the link type + * + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + setlink: function(event,cb){ + if(cb.value){ + DokuCookie.setValue('link',cb.value); + media_manager.link = cb.value; + media_manager.outSet("media__linkbtn1"); + media_manager.outSet("media__linkbtn2"); + media_manager.outSet("media__linkbtn3"); + media_manager.outSet("media__linkbtn4"); + media_manager.inSet("media__linkbtn"+cb.value); + var size = document.getElementById("media__size"); + var align = document.getElementById("media__align"); + if (cb.value != '4') { + size.style.display = "block"; + align.style.display = "block"; + } else { + size.style.display = "none"; + align.style.display = "none"; + } + }else{ + DokuCookie.setValue('link',''); + media_manager.link = false; + } + }, + + /** + * set the display type + * + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + setdisplay: function(event,cb){ + if(cb.value){ + DokuCookie.setValue('display',cb.value); + media_manager.display = cb.value; + media_manager.outSet("media__displaybtn1"); + media_manager.outSet("media__displaybtn2"); + media_manager.inSet("media__displaybtn"+cb.value); + + }else{ + DokuCookie.setValue('display',''); + media_manager.align = false; + } + }, + + /** + * sets the border to outset + */ + outSet: function(id) { + var ele = document.getElementById(id); + if (ele == null) return; + ele.style.borderStyle = "outset"; + }, + /** + * sets the border to inset + */ + inSet: function(id) { + var ele = document.getElementById(id); + if (ele == null) return; + ele.style.borderStyle = "inset"; + }, + + /** + * set the image size + * + * @author Dominik Eckelmann <eckelmann@cosmocode.de> + */ + setsize: function(event,cb){ + if (cb.value) { + DokuCookie.setValue('size',cb.value); + media_manager.size = cb.value; + for (var i = 1 ; i <= 4 ; ++i) { + media_manager.outSet("media__sizebtn" + i); + } + media_manager.inSet("media__sizebtn"+cb.value); + } else { + DokuCookie.setValue('size',''); + media_manager.width = false; + } } }; @@ -348,5 +773,6 @@ addInitEvent(function(){ media_manager.selectorattach($('media__content')); media_manager.confirmattach($('media__content')); media_manager.attachoptions($('media__opts')); + media_manager.initpopup(); media_manager.initFlashUpload(); }); diff --git a/lib/scripts/pngbehavior.htc b/lib/scripts/pngbehavior.htc deleted file mode 100644 index d1db8e765..000000000 --- a/lib/scripts/pngbehavior.htc +++ /dev/null @@ -1,53 +0,0 @@ -// this is an ugly fix to make Internet Explorer work with transparent -// PNG images - do your self a favour and use a real browser! - -<public:component> -<public:attach event="onpropertychange" onevent="propertyChanged()" /> -<script> - -var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32"; -var realSrc; -var blankSrc = DOKU_BASE+"lib/images/blank.gif"; - -if (supported) fixImage(); - -function propertyChanged() { - if (!supported) return; - - var pName = event.propertyName; - if (pName != "src") return; - // if not set to blank - if ( ! new RegExp(blankSrc).test(src)) - fixImage(); -}; - -function fixImage() { - // get src - var src = element.src; - - // check for real change - if (src == realSrc) { - element.src = blankSrc; - return; - } - - if ( ! new RegExp(blankSrc).test(src)) { - // backup old src - realSrc = src; - } - - // test for png - if ( /\.png$/.test( realSrc.toLowerCase() ) ) { - // set blank image - element.src = blankSrc; - // set filter - element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; - } - else { - // remove filter - element.runtimeStyle.filter = ""; - } -} - -</script> -</public:component> diff --git a/lib/scripts/script.js b/lib/scripts/script.js index ccba82144..57917aeb5 100644 --- a/lib/scripts/script.js +++ b/lib/scripts/script.js @@ -9,7 +9,7 @@ var clientPC = navigator.userAgent.toLowerCase(); // Get client info var is_macos = navigator.appVersion.indexOf('Mac') != -1; var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); -var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) && (clientPC.indexOf('spoofer')==-1)); +var is_safari = ((clientPC.indexOf('applewebkit')!=-1) && (clientPC.indexOf('spoofer')==-1)); var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled )); if (clientPC.indexOf('opera')!=-1) { var is_opera = true; @@ -78,16 +78,15 @@ function getElementsByClass(searchClass,node,tag) { /** * Get the X offset of the top left corner of the given object * - * @link http://www.quirksmode.org/index.html?/js/findpos.html + * @link http://www.quirksmode.org/js/findpos.html */ function findPosX(object){ var curleft = 0; var obj = $(object); if (obj.offsetParent){ - while (obj.offsetParent){ + do { curleft += obj.offsetLeft; - obj = obj.offsetParent; - } + } while (obj = obj.offsetParent); } else if (obj.x){ curleft += obj.x; @@ -98,16 +97,15 @@ function findPosX(object){ /** * Get the Y offset of the top left corner of the given object * - * @link http://www.quirksmode.org/index.html?/js/findpos.html + * @link http://www.quirksmode.org/js/findpos.html */ function findPosY(object){ var curtop = 0; var obj = $(object); if (obj.offsetParent){ - while (obj.offsetParent){ + do { curtop += obj.offsetTop; - obj = obj.offsetParent; - } + } while (obj = obj.offsetParent); } else if (obj.y){ curtop += obj.y; @@ -215,10 +213,7 @@ function addTocToggle() { prependChild(header,obj); obj.parentNode.onclick = toggleToc; - try { - obj.parentNode.style.cursor = 'pointer'; - obj.parentNode.style.cursor = 'hand'; - }catch(e){} + obj.parentNode.style.cursor = 'pointer'; } /** @@ -239,57 +234,51 @@ function toggleToc() { } /** - * Display an insitu footnote popup - * - * @author Andreas Gohr <andi@splitbrain.org> - * @author Chris Smith <chris@jalakai.co.uk> + * Create JavaScript mouseover popup */ -function footnote(e){ - var obj = e.target; - var id = obj.id.substr(5); +function insitu_popup(target, popup_id) { - // get or create the footnote popup div - var fndiv = $('insitu__fn'); + // get or create the popup div + var fndiv = $(popup_id); if(!fndiv){ fndiv = document.createElement('div'); - fndiv.id = 'insitu__fn'; + fndiv.id = popup_id; fndiv.className = 'insitu-footnote JSpopup dokuwiki'; // autoclose on mouseout - ignoring bubbled up events addEvent(fndiv,'mouseout',function(e){ - if(e.target != fndiv){ - e.stopPropagation(); - return; + var p = e.relatedTarget || e.toElement; + while (p && p !== this) { + p = p.parentNode; } - // check if the element was really left - if(e.pageX){ // Mozilla - var bx1 = findPosX(fndiv); - var bx2 = bx1 + fndiv.offsetWidth; - var by1 = findPosY(fndiv); - var by2 = by1 + fndiv.offsetHeight; - var x = e.pageX; - var y = e.pageY; - if(x > bx1 && x < bx2 && y > by1 && y < by2){ - // we're still inside boundaries - e.stopPropagation(); - return; - } - }else{ // IE - if(e.offsetX > 0 && e.offsetX < fndiv.offsetWidth-1 && - e.offsetY > 0 && e.offsetY < fndiv.offsetHeight-1){ - // we're still inside boundaries - e.stopPropagation(); - return; - } + if (p === this) { + return; } // okay, hide it - fndiv.style.display='none'; + this.style.display='none'; }); - document.body.appendChild(fndiv); + getElementsByClass('dokuwiki', document.body, 'div')[0].appendChild(fndiv); } + // position the div and make it visible + fndiv.style.position = 'absolute'; + fndiv.style.left = findPosX(target)+'px'; + fndiv.style.top = (findPosY(target)+target.offsetHeight * 1.5) + 'px'; + fndiv.style.display = ''; + return fndiv; +} + +/** + * Display an insitu footnote popup + * + * @author Andreas Gohr <andi@splitbrain.org> + * @author Chris Smith <chris@jalakai.co.uk> + */ +function footnote(e){ + var fndiv = insitu_popup(e.target, 'insitu__fn'); + // locate the footnote anchor element - var a = $( "fn__"+id ); + var a = $("fn__" + e.target.id.substr(5)); if (!a){ return; } // anchor parent is the footnote container, get its innerHTML @@ -300,24 +289,10 @@ function footnote(e){ content = content.replace(/^\s+(,\s+)+/,''); // prefix ids on any elements with "insitu__" to ensure they remain unique - content = content.replace(/\bid=\"(.*?)\"/gi,'id="insitu__$1'); + content = content.replace(/\bid=(['"])([^"']+)\1/gi,'id="insitu__$2'); // now put the content into the wrapper fndiv.innerHTML = content; - - // position the div and make it visible - var x; var y; - if(e.pageX){ // Mozilla - x = e.pageX; - y = e.pageY; - }else{ // IE - x = e.offsetX; - y = e.offsetY; - } - fndiv.style.position = 'absolute'; - fndiv.style.left = (x+2)+'px'; - fndiv.style.top = (y+2)+'px'; - fndiv.style.display = ''; } /** @@ -507,14 +482,14 @@ addInitEvent(function(){ */ function checkWindowsShares() { if(!LANG['nosmblinks']) return true; + if(document.all != null) return true; + var elems = getElementsByClass('windows',document,'a'); if(elems){ for(var i=0; i<elems.length; i++){ var share = elems[i]; addEvent(share,'click',function(){ - if(document.all == null) { - alert(LANG['nosmblinks']); - } + alert(LANG['nosmblinks']); }); } } @@ -535,27 +510,30 @@ addInitEvent(function(){ * @author Andreas Gohr <andi@splitbrain.org> */ addInitEvent(function(){ - var break_classes = new RegExp('secedit|toc|page'); var btns = getElementsByClass('btn_secedit',document,'form'); for(var i=0; i<btns.length; i++){ addEvent(btns[i],'mouseover',function(e){ - var tgt = e.target; - if(tgt.form) tgt = tgt.form; - tgt = tgt.parentNode.previousSibling; - if(tgt.nodeName != "DIV") tgt = tgt.previousSibling; - while(!break_classes.test(tgt.className)) { - tgt.className += ' section_highlight'; - if (tgt.tagName == 'H1') break; - tgt = (tgt.previousSibling != null) ? tgt.previousSibling : tgt.parentNode; + var tgt = this.parentNode; + var nr = tgt.className.match(/(\s+|^)editbutton_(\d+)(\s+|$)/)[2]; + do { + tgt = tgt.previousSibling; + } while (tgt !== null && typeof tgt.tagName === 'undefined'); + if (tgt === null) return; + while(typeof tgt.className === 'undefined' || + tgt.className.match('(\\s+|^)sectionedit' + nr + '(\\s+|$)') === null) { + if (typeof tgt.className !== 'undefined') { + tgt.className += ' section_highlight'; + } + tgt = (tgt.previousSibling !== null) ? tgt.previousSibling : tgt.parentNode; } + if (typeof tgt.className !== 'undefined') tgt.className += ' section_highlight'; }); addEvent(btns[i],'mouseout',function(e){ var secs = getElementsByClass('section_highlight'); for(var j=0; j<secs.length; j++){ - secs[j].className = secs[j].className.replace(/section_highlight/,''); + secs[j].className = secs[j].className.replace(/section_highlight/g,''); } - var secs = getElementsByClass('section_highlight'); }); } }); diff --git a/lib/scripts/subscriptions.js b/lib/scripts/subscriptions.js new file mode 100644 index 000000000..d701f258f --- /dev/null +++ b/lib/scripts/subscriptions.js @@ -0,0 +1,46 @@ +/** + * Hide list subscription style if target is a page + * + * @author Adrian Lang <lang@cosmocode.de> + */ + +addInitEvent(function () { + var form = $('subscribe__form'); + if (!form) { + return; + } + + var styleradios = {}; + + function update_state() { + if (!this.checked) { + return; + } + if (this.value.match(/:$/)) { + styleradios.list.parentNode.style.display = ''; + } else { + styleradios.list.parentNode.style.display = 'none'; + if (styleradios.list.checked) { + styleradios.digest.checked = 'checked'; + } + } + } + + var cur_sel = null; + + var inputs = form.getElementsByTagName('input'); + for (var i = 0; i < inputs.length ; ++i) { + switch (inputs[i].name) { + case 'sub_target': + addEvent(inputs[i], 'click', update_state); + if (inputs[i].checked) { + cur_sel = inputs[i]; + } + break; + case 'sub_style': + styleradios[inputs[i].value] = inputs[i]; + break; + } + } + update_state.call(cur_sel); +}); diff --git a/lib/scripts/textselection.js b/lib/scripts/textselection.js index 76cc6bcbb..742338785 100644 --- a/lib/scripts/textselection.js +++ b/lib/scripts/textselection.js @@ -24,7 +24,7 @@ function selection_class(){ this.getText = function(){ if(!this.obj) return ''; return this.obj.value.substring(this.start,this.end); - } + }; } /** @@ -41,7 +41,6 @@ function getSelection(textArea) { sel.obj = textArea; sel.start = textArea.value.length; sel.end = textArea.value.length; - textArea.focus(); if(document.getSelection) { // Mozilla et al. sel.start = textArea.selectionStart; @@ -57,9 +56,13 @@ function getSelection(textArea) { // The current selection sel.rangeCopy = document.selection.createRange().duplicate(); - - var before_range = document.body.createTextRange(); - before_range.moveToElementText(textArea); // Selects all the text + if (textArea.tagName === 'INPUT') { + var before_range = textArea.createTextRange(); + before_range.expand('textedit'); // Selects all the text + } else { + var before_range = document.body.createTextRange(); + before_range.moveToElementText(textArea); // Selects all the text + } before_range.setEndPoint("EndToStart", sel.rangeCopy); // Moves the end where we need it var before_finished = false, selection_finished = false; @@ -158,7 +161,12 @@ function pasteText(selection,text,opts){ selection.obj.value.substring(selection.end, selection.obj.value.length); // set new selection - selection.end = selection.start + text.length; + if (is_opera) { + // Opera replaces \n by \r\n when inserting text. + selection.end = selection.start + text.replace(/\r?\n/g, '\r\n').length; + } else { + selection.end = selection.start + text.length; + } // modify the new selection if wanted if(opts.startofs) selection.start += opts.startofs; diff --git a/lib/scripts/toolbar.js b/lib/scripts/toolbar.js index eacfc7cad..3f967448c 100644 --- a/lib/scripts/toolbar.js +++ b/lib/scripts/toolbar.js @@ -5,29 +5,39 @@ var pickercounter=0; /** * Create a toolbar * - * @param string tbid ID of the element where to insert the toolbar - * @param string edid ID of the editor textarea - * @param array tb Associative array defining the buttons + * @param string tbid ID of the element where to insert the toolbar + * @param string edid ID of the editor textarea + * @param array tb Associative array defining the buttons + * @param bool allowblock Allow buttons creating multiline content * @author Andreas Gohr <andi@splitbrain.org> */ -function initToolbar(tbid,edid,tb){ +function initToolbar(tbid,edid,tb, allowblock){ var toolbar = $(tbid); if(!toolbar) return; var edit = $(edid); if(!edit) return; if(edit.readOnly) return; + if (typeof allowblock === 'undefined') { + allowblock = true; + } + //empty the toolbar area: toolbar.innerHTML=''; var cnt = tb.length; for(var i=0; i<cnt; i++){ + if (!allowblock && tb[i].block === true) { + continue; + } var actionFunc; // create new button var btn = createToolButton(tb[i]['icon'], tb[i]['title'], - tb[i]['key']); + tb[i]['key'], + tb[i]['id'], + tb[i]['class']); // type is a tb function -> assign it as onclick @@ -225,8 +235,10 @@ function pickerToggle(pickerid,btn){ picker.style.left = (x+3)+'px'; picker.style.top = (y+btn.offsetHeight+3)+'px'; picker.style.marginLeft = '0px'; + picker.style.marginTop = '0px'; }else{ picker.style.marginLeft = '-10000px'; + picker.style.marginTop = '-10000px'; } } @@ -239,6 +251,7 @@ function pickerClose(){ var pobjs = getElementsByClass('picker'); for(var i=0; i<pobjs.length; i++){ pobjs[i].style.marginLeft = '-10000px'; + pobjs[i].style.marginTop = '-10000px'; } } diff --git a/lib/scripts/tw-sack.js b/lib/scripts/tw-sack.js index cfcbe0ea9..b5a5c8861 100644 --- a/lib/scripts/tw-sack.js +++ b/lib/scripts/tw-sack.js @@ -10,6 +10,7 @@ function sack(file){ this.URLString = ""; this.encodeURIString = true; this.execute = false; + this.asynchronous = true; this.onLoading = function() { }; this.onLoaded = function() { }; @@ -86,9 +87,9 @@ function sack(file){ var self = this; if (this.method == "GET") { var totalurlstring = this.requestFile + "?" + this.URLString; - this.xmlhttp.open(this.method, totalurlstring, true); + this.xmlhttp.open(this.method, totalurlstring, this.asynchronous); } else { - this.xmlhttp.open(this.method, this.requestFile, true); + this.xmlhttp.open(this.method, this.requestFile, this.asynchronous); } if (this.method == "POST"){ try { diff --git a/lib/tpl/default/_mediaoptions.css b/lib/tpl/default/_mediaoptions.css new file mode 100644 index 000000000..7ac489929 --- /dev/null +++ b/lib/tpl/default/_mediaoptions.css @@ -0,0 +1,92 @@ +/* --- popup --- */ + +#media__popup { + background-color:__background__; + display:none; + border: 1px solid __border__; + position: absolute; + width:270px; +} + +#media__popup h1 { + text-align:center; + font-weight:normal; + background-color: __background_alt__; + height: 16px; + margin-bottom: 5px; + font-size:12px; + border-bottom: 0; +} + +#media__popup p { + display:block; + line-height:14pt; + margin:0.5em; +} + +#media_nolink { + padding:4px 0; +} + +#media__popup label { + float:left; + width:9em; +} + +#media__popup .button { + margin-left:auto; + margin-right:auto; +} + +#media__popup .btnlbl { + text-align:center; +} + +#media__popup .btnlbl input { + margin:0 1em; +} + +#media__closeimg { + float:right; +} + +/* --- display options --- */ + +#media__linkopts label, +#media__nolnk { + width: 80px; + float: left; + margin-left: 10px; +} + +#media__linkopts label{ + line-height: 20px; +} + +#media__nolnk, +#media__linkopts label.long{ + margin-bottom: 8px; + line-height: 12px; +} + +#media__linkopts label.long{ + width: 150px; + float: none; +} + +#media__linkopts br { + clear: both; +} + +#media__linkopts select { + width: 60px; + margin-left: 10px; +} + +#media__linkopts input.edit { + width:50px; + margin-left:10px; +} +#media__linkopts #media__title { + width:150px; +} diff --git a/lib/tpl/default/_subscription.css b/lib/tpl/default/_subscription.css new file mode 100644 index 000000000..0792c8c21 --- /dev/null +++ b/lib/tpl/default/_subscription.css @@ -0,0 +1,21 @@ +/** + * Styles for the subscription page + */ + +form#subscribe__form { + display: block; + width: 300px; + text-align: center; +} + +form#subscribe__form fieldset { + text-align: left; + margin: 0.5em 0; +} + +form#subscribe__form label { + display:block; + margin: 0 0.5em 0.5em; +} + + diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css index 4830a9e2c..09a9ecf01 100644 --- a/lib/tpl/default/design.css +++ b/lib/tpl/default/design.css @@ -91,7 +91,10 @@ div.dokuwiki textarea.edit { background-color: __background__; border: 1px solid __border__; padding: 0.3em 0 0 0.3em; - width: 100%; + /* should just be "width: 100%", but IE8 doesn't like it, see FS#1910 + FS#1667 */ + width: 700px; + min-width: 100%; + max-width: 100%; } /* nice alphatransparency background except for IE <7 */ @@ -462,6 +465,7 @@ div.dokuwiki blockquote { } div.dokuwiki pre { + font-family: monospace; font-size: 120%; padding: 0.5em; border: 1px dashed __border__; @@ -688,6 +692,7 @@ div.insitu-footnote { text-align: left; padding: 4px; max-width: 40%; /* IE's width is handled in javascript */ + min-width: 5em; } /* overcome IE issue with one line code or file boxes which require h. scrolling */ @@ -741,8 +746,8 @@ div.dokuwiki ul.search_quickhits li { width: 30%; } -div.dokuwiki div.section_highlight { - background-color: __background_alt__; +div.dokuwiki .section_highlight { + background-color: __background_alt__ !important; } /* ------------------ Additional ---------------------- */ @@ -833,3 +838,4 @@ div.dokuwiki div.imagemeta img.thumb { float: left; margin-right: 0.1em; } + diff --git a/lib/tpl/default/main.php b/lib/tpl/default/main.php index 67c3a00ba..d9231678b 100644 --- a/lib/tpl/default/main.php +++ b/lib/tpl/default/main.php @@ -82,7 +82,7 @@ if (!defined('DOKU_INC')) die(); <?php }?> </div> - <?php flush()?> + <?php tpl_flush()?> <?php /*old includehook*/ @include(dirname(__FILE__).'/pageheader.html')?> @@ -94,7 +94,7 @@ if (!defined('DOKU_INC')) die(); <div class="clearer"> </div> - <?php flush()?> + <?php tpl_flush()?> <div class="stylefoot"> @@ -117,7 +117,6 @@ if (!defined('DOKU_INC')) die(); </div> <div class="bar-right" id="bar__bottomright"> <?php tpl_button('subscribe')?> - <?php tpl_button('subscribens')?> <?php tpl_button('admin')?> <?php tpl_button('profile')?> <?php tpl_button('login')?> diff --git a/lib/tpl/default/print.css b/lib/tpl/default/print.css index 1d6e0756f..60c172585 100644 --- a/lib/tpl/default/print.css +++ b/lib/tpl/default/print.css @@ -21,6 +21,10 @@ a { background: none !important; } +a.interwiki { + padding-left: 0px !important; +} + div.meta { clear: both; @@ -143,6 +147,10 @@ span.li { font-weight: normal; } +pre { + font-family: monospace; +} + /* code blocks by indention */ pre.pre { font-size: 8pt; diff --git a/lib/tpl/default/rtl.css b/lib/tpl/default/rtl.css index af3793f7d..b59fcc783 100644 --- a/lib/tpl/default/rtl.css +++ b/lib/tpl/default/rtl.css @@ -45,6 +45,10 @@ div.meta div.doc { div.dokuwiki ul, div.dokuwiki ol { + margin: 0.5em 3.5em 0.5em 0; +} +div.dokuwiki li ul, +div.dokuwiki li ol { margin: 0.5em 1.5em 0.5em 0; } @@ -113,7 +117,13 @@ div.dokuwiki ul.toc li.clear { padding-right: 0.4em; } -div.dokuwiki pre { +div.dokuwiki .code { + direction: ltr; text-align: left; } - +div.dokuwiki blockquote { + border-left: 0; + padding-left: 0; + border-right: 2px solid __border__; + padding-right: 3px; +} diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini index dfd5500fa..c5b2c31a5 100644 --- a/lib/tpl/default/style.ini +++ b/lib/tpl/default/style.ini @@ -10,9 +10,11 @@ layout.css = screen design.css = screen style.css = screen -media.css = screen -_admin.css = screen -_linkwiz.css = screen +media.css = screen +_mediaoptions.css = screen +_admin.css = screen +_linkwiz.css = screen +_subscription.css = screen rtl.css = rtl print.css = print |