diff --git a/.editorconfig b/.editorconfig index 9088a165761ee325a61054c3d32c17409ddec5ca..d88e75a283fa0f7569a9c561ba784c11fbffff7e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,15 +1,19 @@ ; http://editorconfig.org/ +root = true + [*] indent_style = space indent_size = 4 +end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[inc/{geshi,phpseclib}/**] +[{vendor,inc/phpseclib}/**] ; Use editor default (possible autodetection). indent_style = indent_size = -trim_trailing_whitespace = false -insert_final_newline = false +end_of_line = +trim_trailing_whitespace = +insert_final_newline = diff --git a/.gitattributes b/.gitattributes index 1012087d4713eeeed96628ad8638ad419115f81a..6beb1fb7a7b4a9e58415a5d82f6ab073654e51a3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,8 @@ .gitignore export-ignore .editorconfig export-ignore .travis.yml export-ignore +composer.json export-ignore +composer.lock export-ignore _test export-ignore _cs export-ignore lib/plugins/testing export-ignore diff --git a/.gitignore b/.gitignore index bb39ba7cf6b011a3875a25b80594da199a27b92a..7410ee1c3e71bd8e654216c86323551491589fe9 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ !/lib/plugins/popularity !/lib/plugins/revert !/lib/plugins/safefnrecode +!/lib/plugins/styling !/lib/plugins/testing !/lib/plugins/usermanager !/lib/plugins/action.php @@ -56,3 +57,17 @@ !/lib/plugins/remote.php !/lib/plugins/syntax.php lib/images/*/local/* + +# composer default ignores +composer.phar +vendor/bin/* +vendor/*/*/phpunit.xml +vendor/*/*/.travis.yml +vendor/*/*/bin/* +vendor/*/*/tests/* +vendor/*/*/test/* +vendor/*/*/doc/* +vendor/*/*/docs/* +vendor/*/*/contrib/* +vendor/splitbrain/php-archive/apigen.neon +vendor/splitbrain/php-archive/generate-api.sh diff --git a/.htaccess.dist b/.htaccess.dist index 5724a6e04423c4d576e8745a7805397c23e70fbe..1d2bd418e61468fc3bf1c07186f5af5379d6ea87 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -6,10 +6,20 @@ ## make sure nobody gets the htaccess, README, COPYING or VERSION files <Files ~ "^([\._]ht|README$|VERSION$|COPYING$)"> - Order allow,deny - Deny from all + <IfModule mod_authz_host> + Require all denied + </IfModule> + <IfModule !mod_authz_host> + Order allow,deny + Deny from all + </IfModule> </Files> +## Don't allow access to git directories +<IfModule alias_module> + RedirectMatch 404 /\.git +</IfModule> + ## Uncomment these rules if you want to have nice URLs using ## $conf['userewrite'] = 1 - not needed for rewrite mode 2 #RewriteEngine on diff --git a/.travis.yml b/.travis.yml index 0bef94048a76ee509d9827ccec573e8979ae1f0a..a0aa152964ca53c030b565e2d011b7c5704ce566 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,23 @@ language: php +sudo: false php: + - "7.0" - "5.6" - "5.5" - "5.4" - "5.3" + - "hhvm" +env: + - DISABLE_FUNCTIONS= + - DISABLE_FUNCTIONS="gzopen" +matrix: + allow_failures: + - php: "hhvm" notifications: irc: channels: - "chat.freenode.net#dokuwiki" on_success: change on_failure: change -install: - - wget https://phar.phpunit.de/phpunit-4.3.5.phar -O _test/phpunit - - chmod 755 _test/phpunit -script: cd _test && ./phpunit --verbose --stderr +before_script: echo "disable_functions=$DISABLE_FUNCTIONS" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini +script: cd _test && phpunit --verbose --stderr diff --git a/README b/README index 35de49ab1a53cde70564483400ba5eea94fb351f..1611a6df16b236f2040c5b5409629bf72f6cd4fb 100644 --- a/README +++ b/README @@ -4,7 +4,7 @@ at http://www.dokuwiki.org/ For Installation Instructions see http://www.dokuwiki.org/install -DokuWiki - 2004-2014 (c) Andreas Gohr <andi@splitbrain.org> +DokuWiki - 2004-2015 (c) Andreas Gohr <andi@splitbrain.org> and the DokuWiki Community See COPYING and file headers for license info diff --git a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php index c5d14377b4250a28f7620a30a6d6a72f4e1322e3..c15a5be021f4be1f7bad656aa5030fab8e4983e7 100644 --- a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php +++ b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php @@ -39,7 +39,7 @@ class DokuWiki_Sniffs_PHP_DeprecatedFunctionsSniff extends Generic_Sniffs_PHP_Fo * * @var array(string => string|null) */ - protected $forbiddenFunctions = array( + public $forbiddenFunctions = array( 'setCorrectLocale' => null, 'html_attbuild' => 'buildAttributes', 'io_runcmd' => null, diff --git a/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php index 9cd9a7d36f2fd82a1aa5e62259534b593cffa8db..bd51b11662e45517e8ae5a1ba6f0794f8d0831a3 100644 --- a/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php +++ b/_cs/DokuWiki/Sniffs/PHP/DiscouragedFunctionsSniff.php @@ -39,7 +39,7 @@ class DokuWiki_Sniffs_PHP_DiscouragedFunctionsSniff extends Generic_Sniffs_PHP_F * * @var array(string => string|null) */ - protected $forbiddenFunctions = array( + public $forbiddenFunctions = array( 'date' => 'dformat', 'strftime' => 'dformat', ); diff --git a/_test/phpunit.xml b/_test/phpunit.xml index 25506b1ae3ff9eceffc47a18968dc0935a32dc06..6e250974994328d140c9926f6513562ee6b25203 100644 --- a/_test/phpunit.xml +++ b/_test/phpunit.xml @@ -18,6 +18,12 @@ </testsuite> </testsuites> + <groups> + <exclude> + <group>flaky</group> + </exclude> + </groups> + <filter> <whitelist addUncoveredFilesFromWhitelist="false"> <directory suffix=".php">../</directory> diff --git a/_test/tests/general/general_languagelint.php b/_test/tests/general/general_languagelint.test.php similarity index 100% rename from _test/tests/general/general_languagelint.php rename to _test/tests/general/general_languagelint.test.php diff --git a/_test/tests/inc/PassHash.test.php b/_test/tests/inc/PassHash.test.php index 1d34aa696804b8100dbdf5e1b38489c993839eb7..1bc4b95bceb7ea31dc3168e74b13fadb7eb57d95 100644 --- a/_test/tests/inc/PassHash.test.php +++ b/_test/tests/inc/PassHash.test.php @@ -17,6 +17,24 @@ class PassHash_test extends DokuWikiTest { $this->assertEquals('fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', PassHash::hmac('sha1','','')); $this->assertEquals('80070713463e7749b90c2dc24911e275', PassHash::hmac('md5','The quick brown fox jumps over the lazy dog','key')); $this->assertEquals('de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9', PassHash::hmac('sha1','The quick brown fox jumps over the lazy dog','key')); + } + + function test_djangopbkdf2() { + if(!function_exists('hash_pbkdf2') || !in_array('sha256', hash_algos())){ + $this->markTestSkipped('missing hash functions for djangopbkdf2 password tests'); + return; + } + $ph = new PassHash(); + $knownpasses = array ( + 'pbkdf2_sha256$24000$LakQQ2OOTO1v$dmUgz8V7zcpaoBSA3MV76J5a4rzrszF0NpxGx6HRBbE=', + 'pbkdf2_sha256$24000$PXogIZpE4gaK$F/P/L5SRrbb6taOGEr4w6DhxjMzNAj1jEWTPyAUn8WU=', + 'pbkdf2_sha256$24000$vtn5APnhirmB$/jzJXYvm78X8/FCOMhGUmcCy0iWhtk0L1hcBWN1AYZc=', + 'pbkdf2_sha256$24000$meyCtGKrS5Ai$vkMfMzB/yGFKplmXujgtfl3OGR27AwOQmP+YeRP6lbw=', + 'pbkdf2_sha256$24000$M8ecC8zfqLmJ$l6cIa/Od+m56VMm9hJbdPNhTXZykPVbUGGTPx7/VRE4=', + ); + foreach($knownpasses as $known) { + $this->assertTrue($ph->verify_hash('P4zzW0rd!', $known)); + } } -} \ No newline at end of file +} diff --git a/_test/tests/inc/auth_password.test.php b/_test/tests/inc/auth_password.test.php index 07b9f5bb208fe727adaaccd3e8ef4530cb8ec756..71b0dfb4c4a9e1de2dbb54dcba118ea443665352 100644 --- a/_test/tests/inc/auth_password.test.php +++ b/_test/tests/inc/auth_password.test.php @@ -2,7 +2,7 @@ class auth_password_test extends DokuWikiTest { - // hashes for the password foo$method, using abcdefgh as salt + // hashes for the password foo$method, using abcdefgh12345678912345678912345678 as salt var $passes = array( 'smd5' => '$1$abcdefgh$SYbjm2AEvSoHG7Xapi8so.', 'apr1' => '$apr1$abcdefgh$C/GzYTF4kOVByYLEoD5X4.', @@ -16,15 +16,32 @@ class auth_password_test extends DokuWikiTest { 'kmd5' => 'a579299436d7969791189acadd86fcb716', 'djangomd5' => 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158', 'djangosha1' => 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678', - 'sha512' => '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1' + ); + function __construct() { + if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) { + // Check SHA512 only if available in this PHP + $this->passes['sha512'] = '$6$abcdefgh12345678$J9.zOcgx0lotwZdcz0uulA3IVQMinZvFZVjA5vapRLVAAqtay23XD4xeeUxQ3B4JvDWYFBIxVWW1tOYlHX13k1'; + } + if(function_exists('hash_pbkdf2')) { + if(in_array('sha256', hash_algos())) { + $this->passes['djangopbkdf2_sha256'] = 'pbkdf2_sha256$24000$abcdefgh1234$R23OyZJ0nGHLG6MvPNfEkV5AOz3jUY5zthByPXs2gn0='; + } + if(in_array('sha1', hash_algos())) { + $this->passes['djangopbkdf2_sha1'] = 'pbkdf2_sha1$24000$abcdefgh1234$pOliX4vV1hgOv7lFNURIHHx41HI='; + } + } + } + function test_cryptPassword(){ foreach($this->passes as $method => $hash){ $info = "testing method $method"; - $this->assertEquals(auth_cryptPassword('foo'.$method, $method,'abcdefgh12345678912345678912345678'), - $hash, $info); + $this->assertEquals( + $hash, + auth_cryptPassword('foo'.$method, $method,'abcdefgh12345678912345678912345678'), + $info); } } diff --git a/_test/tests/inc/cache_use.test.php b/_test/tests/inc/cache_use.test.php index 3ea212d50911b0db8a8df4c3f187d88c72e817bf..c0c12580a2a240a33e4ba083f5df8fd5dcb00a67 100644 --- a/_test/tests/inc/cache_use.test.php +++ b/_test/tests/inc/cache_use.test.php @@ -4,6 +4,8 @@ * Class cache_use_test * * Tests if caching can actually be used + * + * @todo tests marked as flaky until Ticket #694 has been fixed */ class cache_use_test extends DokuWikiTest { /** @var cache_renderer $cache */ @@ -28,18 +30,11 @@ class cache_use_test extends DokuWikiTest { touch($this->cache->cache, $time); } - function test_use() { - $this->markTestSkipped('Disabled until Ticket #694 has been fixed'); - return; - - $this->assertTrue($this->cache->useCache()); - } - /** * In all the following tests the cache should not be usable * as such, they are meaningless if test_use didn't pass. * - * @depends test_use + * @group flaky */ function test_purge() { /* @var Input $INPUT */ @@ -51,7 +46,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_filedependency() { // give the dependent src file the same mtime as the cache @@ -60,7 +55,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_age() { // need to age both our source file & the cache @@ -74,7 +69,7 @@ class cache_use_test extends DokuWikiTest { } /** - * @depends test_use + * @group flaky */ function test_confnocaching() { global $conf; @@ -83,4 +78,4 @@ class cache_use_test extends DokuWikiTest { $this->assertFalse($this->cache->useCache()); $this->assertNotEmpty($this->cache->_nocache); } -} \ No newline at end of file +} diff --git a/_test/tests/inc/common_blank.test.php b/_test/tests/inc/common_blank.test.php new file mode 100644 index 0000000000000000000000000000000000000000..9df35936a2905dc21f29ebe6c2426eb3f1c00eee --- /dev/null +++ b/_test/tests/inc/common_blank.test.php @@ -0,0 +1,52 @@ +<?php + +class common_blank_test extends DokuWikiTest { + + private $nope; + + function test_blank() { + $tests = array( + // these are not blank + array('string', false), + array(1, false), + array(1.0, false), + array(0xff, false), + array(array('something'), false), + + // these aren't either! + array('0', false), + array(' ', false), + array('0.0', false), + array(0, false), + array(0.0, false), + array(0x00, false), + array(true, false), + + // but these are + array('', true), + array(array(), true), + array(null, true), + array(false, true), + array("\0", true) + ); + + foreach($tests as $test) { + $this->assertEquals($test[1], blank($test[0]), "using " . var_export($test[0], true)); + } + } + + function test_trim() { + $whitespace = " \t\r\n"; + $this->assertFalse(blank($whitespace), "using default \$trim value"); + $this->assertFalse(blank($whitespace, false), "using \$trim = false"); + $this->assertTrue(blank($whitespace, true), "using \$trim = true"); + } + + function test_undefined() { + $undef = array(); + $this->assertTrue(blank($var), "using undefined/unitialised variable"); + $this->assertTrue(blank($undef['nope']), "using undefined array index"); + $this->assertTrue(blank($this->nope), "using unset object property"); + } + +} diff --git a/_test/tests/inc/common_saveWikiText.test.php b/_test/tests/inc/common_saveWikiText.test.php new file mode 100644 index 0000000000000000000000000000000000000000..800e20952be1f760d6195fa62b6a0a796aedf72e --- /dev/null +++ b/_test/tests/inc/common_saveWikiText.test.php @@ -0,0 +1,145 @@ +<?php + +class common_saveWikiText_test extends DokuWikiTest { + + /** + * Execute a whole bunch of saves on the same page and check the results + */ + function test_savesequence() { + global $REV; + + $page = 'page'; + $file = wikiFN($page); + + // create the page + $this->assertFileNotExists($file); + saveWikiText($page, 'teststring', 'first save', false); + $this->assertFileExists($file); + $lastmod = filemtime($file); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(1, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('first save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_CREATE, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // save with same content should be ignored + saveWikiText($page, 'teststring', 'second save', false); + clearstatcache(false, $file); + $this->assertEquals($lastmod, filemtime($file)); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(1, count($revisions)); + + // update the page with new text + saveWikiText($page, 'teststring2', 'third save', false); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(2, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('third save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // add a minor edit (unauthenticated) + saveWikiText($page, 'teststring3', 'fourth save', true); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(3, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('fourth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // add a minor edit (authenticated) + $_SERVER['REMOTE_USER'] = 'user'; + saveWikiText($page, 'teststring4', 'fifth save', true); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(4, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('fifth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_MINOR_EDIT, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // delete + saveWikiText($page, '', 'sixth save', false); + clearstatcache(false, $file); + $this->assertFileNotExists($file); + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(5, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('sixth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_DELETE, $revinfo['type']); + + sleep(1); // wait for new revision ID + + // restore + $REV = $lastmod; + saveWikiText($page, 'teststring4', 'seventh save', true); + clearstatcache(false, $file); + $this->assertFileExists($file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(6, count($revisions)); + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('seventh save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_REVERT, $revinfo['type']); + $this->assertEquals($REV, $revinfo['extra']); + $REV = ''; + + sleep(1); // wait for new revision ID + + // create external edit + file_put_contents($file, 'teststring5'); + + sleep(1); // wait for new revision ID + + // save on top of external edit + saveWikiText($page, 'teststring6', 'eigth save', false); + clearstatcache(false, $file); + $newmod = filemtime($file); + $this->assertNotEquals($lastmod, $newmod); + $lastmod = $newmod; + + $pagelog = new PageChangeLog($page); + $revisions = $pagelog->getRevisions(-1, 200); + $this->assertEquals(8, count($revisions)); // two more revisions now! + $revinfo = $pagelog->getRevisionInfo($revisions[0]); + $this->assertEquals('eigth save', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + $revinfo = $pagelog->getRevisionInfo($revisions[1]); + $this->assertEquals('external edit', $revinfo['sum']); + $this->assertEquals(DOKU_CHANGE_TYPE_EDIT, $revinfo['type']); + + } +} diff --git a/_test/tests/inc/form/buttonelement.test.php b/_test/tests/inc/form/buttonelement.test.php new file mode 100644 index 0000000000000000000000000000000000000000..8e1a7e1e29234a389f6a97bb6ec17810ce78e44e --- /dev/null +++ b/_test/tests/inc/form/buttonelement.test.php @@ -0,0 +1,40 @@ +<?php + +use dokuwiki\Form; + +class form_buttonelement_test extends DokuWikiTest { + + function test_simple() { + $form = new Form\Form(); + $form->addButton('foo', 'Hello <b>World</b>')->val('bam')->attr('type', 'submit'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('button[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('bam', $input->val()); + $this->assertEquals('submit', $input->attr('type')); + $this->assertEquals('Hello <b>World</b>', $input->text()); // tags were escaped + + $b = $input->find('b'); // no tags found + $this->assertTrue($b->length == 0); + } + + function test_html() { + $form = new Form\Form(); + $form->addButtonHTML('foo', 'Hello <b>World</b>')->val('bam')->attr('type', 'submit'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('button[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('bam', $input->val()); + $this->assertEquals('submit', $input->attr('type')); + $this->assertEquals('Hello World', $input->text()); // tags are stripped here + + $b = $input->find('b'); // tags found + $this->assertTrue($b->length == 1); + } +} diff --git a/_test/tests/inc/form/checkableelement.test.php b/_test/tests/inc/form/checkableelement.test.php new file mode 100644 index 0000000000000000000000000000000000000000..e1491f6ece59c30fb2f74ea0ed52ab260d646f8a --- /dev/null +++ b/_test/tests/inc/form/checkableelement.test.php @@ -0,0 +1,51 @@ +<?php + +use dokuwiki\Form; + +class form_checkableelement_test extends DokuWikiTest { + + function test_defaults() { + $form = new Form\Form(); + $form->addRadioButton('foo', 'label text first')->val('first')->attr('checked', 'checked'); + $form->addRadioButton('foo', 'label text second')->val('second'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 2); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 2); + + $inputs = $pq->find('input[name=foo]'); + $this->assertEquals('first', pq($inputs->elements[0])->val()); + $this->assertEquals('second', pq($inputs->elements[1])->val()); + $this->assertEquals('checked', pq($inputs->elements[0])->attr('checked')); + $this->assertEquals('', pq($inputs->elements[1])->attr('checked')); + $this->assertEquals('radio', pq($inputs->elements[0])->attr('type')); + } + + /** + * check that posted values overwrite preset default + */ + function test_prefill() { + global $INPUT; + $INPUT->post->set('foo', 'second'); + + + $form = new Form\Form(); + $form->addRadioButton('foo', 'label text first')->val('first')->attr('checked', 'checked'); + $form->addRadioButton('foo', 'label text second')->val('second'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $inputs = $pq->find('input[name=foo]'); + $this->assertEquals('first', pq($inputs->elements[0])->val()); + $this->assertEquals('second', pq($inputs->elements[1])->val()); + $this->assertEquals('', pq($inputs->elements[0])->attr('checked')); + $this->assertEquals('checked', pq($inputs->elements[1])->attr('checked')); + $this->assertEquals('radio', pq($inputs->elements[0])->attr('type')); + } +} diff --git a/_test/tests/inc/form/form.test.php b/_test/tests/inc/form/form.test.php new file mode 100644 index 0000000000000000000000000000000000000000..3ae832b2cd5d6f5aa81bb633a7a012d8209e91a9 --- /dev/null +++ b/_test/tests/inc/form/form.test.php @@ -0,0 +1,115 @@ +<?php + +use dokuwiki\Form; + +/** + * makes form internals accessible for testing + */ +class TestForm extends Form\Form { + /** + * @return array list of element types + */ + function getElementTypeList() { + $list = array(); + foreach($this->elements as $element) $list[] = $element->getType(); + return $list; + } + + public function balanceFieldsets() { + parent::balanceFieldsets(); + } + +} + +class form_form_test extends DokuWikiTest { + + /** + * checks that an empty form is initialized correctly + */ + function test_defaults() { + global $INPUT; + global $ID; + $ID = 'some:test'; + $INPUT->get->set('id', $ID); + $INPUT->get->set('foo', 'bar'); + + $form = new Form\Form(); + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $this->assertTrue($pq->find('form')->hasClass('doku_form')); + $this->assertEquals(wl($ID, array('foo' => 'bar'), false, '&'), $pq->find('form')->attr('action')); + $this->assertEquals('post', $pq->find('form')->attr('method')); + + $this->assertTrue($pq->find('input[name=sectok]')->length == 1); + } + + + function test_fieldsetbalance() { + $form = new TestForm(); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + $form = new TestForm(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + + $form = new TestForm(); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + + $form = new TestForm(); + $form->addHTML('ignored'); + $form->addFieldsetClose(); + $form->addHTML('ignored'); + $form->addFieldsetOpen(); + $form->addHTML('ignored'); + $form->balanceFieldsets(); + + $this->assertEquals( + array( + 'fieldsetopen', + 'html', + 'fieldsetclose', + 'html', + 'fieldsetopen', + 'html', + 'fieldsetclose' + ), + $form->getElementTypeList() + ); + } + +} diff --git a/_test/tests/inc/form/inputelement.test.php b/_test/tests/inc/form/inputelement.test.php new file mode 100644 index 0000000000000000000000000000000000000000..3257d2a892a0ef700e6eec138c15633f12c01aa4 --- /dev/null +++ b/_test/tests/inc/form/inputelement.test.php @@ -0,0 +1,58 @@ +<?php + +use dokuwiki\Form; + +class form_inputelement_test extends DokuWikiTest { + + function test_defaults() { + $form = new Form\Form(); + $form->addTextInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('this is text', $input->val()); + $this->assertEquals('text', $input->attr('type')); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 1); + $this->assertEquals('label text', $label->find('span')->text()); + } + + /** + * check that posted values overwrite preset default + */ + function test_prefill() { + global $INPUT; + $INPUT->post->set('foo', 'a new text'); + + $form = new Form\Form(); + $form->addTextInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('a new text', $input->val()); + } + + function test_password() { + $form = new Form\Form(); + $form->addPasswordInput('foo', 'label text')->val('this is text'); + + $html = $form->toHTML(); + $pq = phpQuery::newDocumentXHTML($html); + + $input = $pq->find('input[name=foo]'); + $this->assertTrue($input->length == 1); + $this->assertEquals('this is text', $input->val()); + $this->assertEquals('password', $input->attr('type')); + + $label = $pq->find('label'); + $this->assertTrue($label->length == 1); + $this->assertEquals('label text', $label->find('span')->text()); + } +} diff --git a/_test/tests/inc/form_form.test.php b/_test/tests/inc/form_form.test.php index 02242a807ff64812fee492bf386da13d0e9778d4..7f168b89583cfcabae0222368e971c5d55e881aa 100644 --- a/_test/tests/inc/form_form.test.php +++ b/_test/tests/inc/form_form.test.php @@ -30,9 +30,9 @@ class form_test extends DokuWikiTest { $realoutput .= '<input type="checkbox" id="check__id" name="r" value="1" /> '; $realoutput .= '<span>Check</span></label>'; $realoutput .= "\n"; - $realoutput .= '<input name="do[save]" type="submit" value="Save" class="button" accesskey="s" title="Save [S]" />'; + $realoutput .= '<button name="do[save]" type="submit" accesskey="s" title="Save [S]">Save</button>'; $realoutput .= "\n"; - $realoutput .= '<input name="do[cancel]" type="submit" value="Cancel" class="button" />'; + $realoutput .= '<button name="do[cancel]" type="submit">Cancel</button>'; $realoutput .= "\n"; $realoutput .= "</fieldset>\n</div></form>\n"; return $realoutput; diff --git a/_test/tests/inc/httpclient_http.test.php b/_test/tests/inc/httpclient_http.test.php index 3446e1184399ae6321a5d33abcee7293c6b78195..94b8e1bc10c86e4762ed09ac678f5306168bbf5b 100644 --- a/_test/tests/inc/httpclient_http.test.php +++ b/_test/tests/inc/httpclient_http.test.php @@ -289,6 +289,7 @@ class httpclient_http_test extends DokuWikiTest { * This address caused trouble with stream_select() * * @group internet + * @group flaky */ function test_wikimatrix(){ $http = new HTTPMockClient(); diff --git a/_test/tests/inc/io_deletefromfile.test.php b/_test/tests/inc/io_deletefromfile.test.php new file mode 100644 index 0000000000000000000000000000000000000000..e86150aac8a3864f0aca40ec266fd43ce77778ae --- /dev/null +++ b/_test/tests/inc/io_deletefromfile.test.php @@ -0,0 +1,15 @@ +<?php + +class io_deletefromfile_test extends DokuWikiTest { + + function test_delete(){ + $file = TMP_DIR.'/test.txt'; + $contents = "The\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; + io_saveFile($file, $contents); + $this->assertTrue(io_deleteFromFile($file, "Delete\012")); + $this->assertEquals("The\012Delete01\012Delete02\012DeleteX\012Test\012", io_readFile($file)); + $this->assertTrue(io_deleteFromFile($file, "#Delete\\d+\012#", true)); + $this->assertEquals("The\012DeleteX\012Test\012", io_readFile($file)); + } + +} diff --git a/_test/tests/inc/io_readfile.test.php b/_test/tests/inc/io_readfile.test.php index e3e90cd8d880a03618aa3a0aa5bb92154500b5fa..43bb7f80c90cf0437253912e18cd65d5d10bb898 100644 --- a/_test/tests/inc/io_readfile.test.php +++ b/_test/tests/inc/io_readfile.test.php @@ -6,7 +6,7 @@ class io_readfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_zlib() { - if (!extension_loaded('zlib')) { + if (!DOKU_HAS_GZIP) { $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); } } @@ -15,7 +15,7 @@ class io_readfile_test extends DokuWikiTest { * dependency for tests needing zlib extension to pass */ public function test_ext_bz2() { - if (!extension_loaded('bz2')) { + if (!DOKU_HAS_BZIP) { $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); } } @@ -48,6 +48,11 @@ class io_readfile_test extends DokuWikiTest { $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2', false)); $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.bz2')); $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.bz2')); + // internal bzfile function + $this->assertEquals(array("The\015\012","Test\015\012"), bzfile(__DIR__.'/io_readfile/test.txt.bz2', true)); + $this->assertEquals(array_fill(0, 120, str_repeat('a', 80)."\012"), bzfile(__DIR__.'/io_readfile/large.txt.bz2', true)); + $line = str_repeat('a', 8888)."\012"; + $this->assertEquals(array($line,"\012",$line,"!"), bzfile(__DIR__.'/io_readfile/long.txt.bz2', true)); } -} \ No newline at end of file +} diff --git a/_test/tests/inc/io_readfile/large.txt.bz2 b/_test/tests/inc/io_readfile/large.txt.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3135435f82ed3e14ecd60b87af5b9d16f247f45a Binary files /dev/null and b/_test/tests/inc/io_readfile/large.txt.bz2 differ diff --git a/_test/tests/inc/io_readfile/long.txt.bz2 b/_test/tests/inc/io_readfile/long.txt.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..fb40759e618fa0c589f4a787e11fc48b6d7c75e4 Binary files /dev/null and b/_test/tests/inc/io_readfile/long.txt.bz2 differ diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php new file mode 100644 index 0000000000000000000000000000000000000000..d517584e186c7c5c749e293cf2411bb354b9c2e9 --- /dev/null +++ b/_test/tests/inc/io_replaceinfile.test.php @@ -0,0 +1,108 @@ +<?php + +class io_replaceinfile_test extends DokuWikiTest { + + protected $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012"; + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!DOKU_HAS_GZIP) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!DOKU_HAS_BZIP) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function _write($file){ + + io_saveFile($file, $this->contents); + // Replace one, no regex + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete00\012", false, 1)); + $this->assertEquals("The\012Delete00\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file)); + // Replace all, no regex + $this->assertTrue(io_replaceInFile($file, "Delete\012", "DeleteX\012", false, -1)); + $this->assertEquals("The\012Delete00\012DeleteX\012Delete01\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file)); + // Replace two, regex and backreference + $this->assertTrue(io_replaceInFile($file, "#Delete(\\d+)\012#", "\\1\012", true, 2)); + $this->assertEquals("The\01200\012DeleteX\01201\012Delete02\012DeleteX\012DeleteX\012Test\012", io_readFile($file)); + // Delete and insert, no regex + $this->assertTrue(io_replaceInFile($file, "DeleteX\012", "Replace\012", false, 0)); + $this->assertEquals("The\01200\01201\012Delete02\012Test\012Replace\012", io_readFile($file)); + } + + function test_replace(){ + $this->_write(TMP_DIR.'/test.txt'); + } + + + /** + * @depends test_ext_zlib + */ + function test_gzwrite(){ + $this->_write(TMP_DIR.'/test.txt.gz'); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzwrite(){ + $this->_write(TMP_DIR.'/test.txt.bz2'); + } + + /** + * Test for a non-regex replacement where $newline contains a backreference like construct - it shouldn't affect the replacement + */ + function test_edgecase1() + { + $file = TMP_DIR . '/test.txt'; + + io_saveFile($file, $this->contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\\00\012", false, -1)); + $this->assertEquals("The\012Delete\\00\012Delete\\00\012Delete01\012Delete02\012Delete\\00\012DeleteX\012Test\012", io_readFile($file), "Edge case: backreference like construct in replacement line"); + } + /** + * Test with replace all where replacement line == search line - must not timeout + * + * @small + */ + function test_edgecase2() { + $file = TMP_DIR.'/test.txt'; + + io_saveFile($file, $this->contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1)); + $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line"); + } + + /** + * Test where $oldline exactly matches one line and also matches part of other lines - only the exact match should be replaced + */ + function test_edgecase3() + { + $file = TMP_DIR . '/test.txt'; + $contents = "The\012Delete\01201Delete\01202Delete\012Test\012"; + + io_saveFile($file, $contents); + $this->assertTrue(io_replaceInFile($file, "Delete\012", "Replace\012", false, -1)); + $this->assertEquals("The\012Replace\01201Delete\01202Delete\012Test\012", io_readFile($file), "Edge case: old line is a match for parts of other lines"); + } + + /** + * Test passing an invalid parameter. + * + * @expectedException PHPUnit_Framework_Error_Warning + */ + function test_badparam() + { + /* The empty $oldline parameter should be caught before the file doesn't exist test. */ + $this->assertFalse(io_replaceInFile(TMP_DIR.'/not_existing_file.txt', '', '', false, 0)); + } +} diff --git a/_test/tests/inc/io_savefile.test.php b/_test/tests/inc/io_savefile.test.php new file mode 100644 index 0000000000000000000000000000000000000000..5f387b8a16bbe12537af047c43d97f444399209f --- /dev/null +++ b/_test/tests/inc/io_savefile.test.php @@ -0,0 +1,49 @@ +<?php + +class io_savefile_test extends DokuWikiTest { + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_zlib() { + if (!DOKU_HAS_GZIP) { + $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); + } + } + + /* + * dependency for tests needing zlib extension to pass + */ + public function test_ext_bz2() { + if (!DOKU_HAS_BZIP) { + $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); + } + } + + function _write($file){ + $contents = "The\012Write\012Test\012"; + $this->assertTrue(io_saveFile($file, $contents)); + $this->assertEquals($contents, io_readFile($file)); + $this->assertTrue(io_saveFile($file, $contents, true)); + $this->assertEquals($contents.$contents, io_readFile($file)); + } + + function test_write(){ + $this->_write(TMP_DIR.'/test.txt'); + } + + /** + * @depends test_ext_zlib + */ + function test_gzwrite(){ + $this->_write(TMP_DIR.'/test.txt.gz'); + } + + /** + * @depends test_ext_bz2 + */ + function test_bzwrite(){ + $this->_write(TMP_DIR.'/test.txt.bz2'); + } + +} diff --git a/_test/tests/inc/ixr_library_date.test.php b/_test/tests/inc/ixr_library_date.test.php index f384869258abf341aee97fb885b7222409c7ce21..0c81e674196ca7a038affe6710d069e860eb0ad9 100644 --- a/_test/tests/inc/ixr_library_date.test.php +++ b/_test/tests/inc/ixr_library_date.test.php @@ -2,6 +2,9 @@ require_once DOKU_INC.'inc/IXR_Library.php'; +/** + * Class ixr_library_date_test + */ class ixr_library_date_test extends DokuWikiTest { @@ -16,18 +19,24 @@ class ixr_library_date_test extends DokuWikiTest { array('2010-08-17T09:23:14Z', 1282036994), array('20100817T09:23:14Z', 1282036994), + // with timezone + array('2010-08-17 09:23:14+0000', 1282036994), + array('2010-08-17 09:23:14+00:00', 1282036994), + array('2010-08-17 12:23:14+03:00', 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 + array(1282036980, 1282036980), +// 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->assertEquals($dt->getTimeStamp(),$test[1]); + $this->assertEquals($test[1], $dt->getTimeStamp()); } } diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index c9f7702a3ec9867b21b6d73411e5f86900cae52d..83a1ad930d6ec7a63597f8002d26b3b3d1698d72 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -197,7 +197,7 @@ class mailer_test extends DokuWikiTest { // ask message lint if it is okay $html = new HTTPClient(); - $results = $html->post('http://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg)); + $results = $html->post('https://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg)); if($results === false) { $this->markTestSkipped('no response from validator'); return; diff --git a/_test/tests/inc/parser/lexer.test.php b/_test/tests/inc/parser/lexer.test.php index d0965a13e6c055539bcceb76a2722dd47cc664da..c506659286da542d96bc0eafaa26d7042d84512c 100644 --- a/_test/tests/inc/parser/lexer.test.php +++ b/_test/tests/inc/parser/lexer.test.php @@ -146,7 +146,7 @@ class TestOfLexerStateStack extends DokuWikiTest { } class TestParser { - function TestParser() { + function __construct() { } function accept() { } @@ -364,7 +364,7 @@ class TestOfLexerHandlers extends DokuWikiTest { class TestParserByteIndex { - function TestParserByteIndex() {} + function __construct() {} function ignore() {} diff --git a/_test/tests/inc/parser/parser_media.test.php b/_test/tests/inc/parser/parser_media.test.php index d9a0626f54ba63a1f5daf5dcb61bb03096e9625a..abbcfe2130ddb3cfc0ca5e5b69f7ed524c054d0a 100644 --- a/_test/tests/inc/parser/parser_media.test.php +++ b/_test/tests/inc/parser/parser_media.test.php @@ -30,12 +30,21 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $source = '<source src="http://some.where.far/away.ogv" type="video/ogg" />'; $this->assertEquals(substr($url,67,64),$source); // work around random token - $a_first_part = '<a href="/./lib/exe/fetch.php?cache=&tok='; + $a_first_part = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?cache=&tok='; $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.ogv" class="media mediafile mf_ogv" title="http://some.where.far/away.ogv">'; - $this->assertEquals(substr($url,132,45),$a_first_part); - $this->assertEquals(substr($url,183,121),$a_second_part); + + $substr_start = 132; + $substr_len = strlen($a_first_part); + $this->assertEquals($a_first_part, substr($url, $substr_start, $substr_len)); + + $substr_start = strpos($url, '&media', $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + $substr_len = strlen($a_second_part); + $this->assertEquals($a_second_part, substr($url, $substr_start, $substr_len)); + $rest = 'away.ogv</a></video>'."\n"; - $this->assertEquals(substr($url,304),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } /** @@ -58,12 +67,21 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file, null, null, null, null, 'cache', 'details', true); // work around random token - $a_first_part = '<a href="/./lib/exe/fetch.php?tok='; + $a_first_part = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?tok='; $a_second_part = '&media=http%3A%2F%2Fsome.where.far%2Faway.vid" class="media mediafile mf_vid" title="http://some.where.far/away.vid">'; - $this->assertEquals(substr($url,0,34),$a_first_part); - $this->assertEquals(substr($url,40,121),$a_second_part); + + $substr_start = 0; + $substr_len = strlen($a_first_part); + $this->assertEquals($a_first_part, substr($url, $substr_start, $substr_len)); + + $substr_start = strpos($url, '&media', $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + $substr_len = strlen($a_second_part); + $this->assertEquals($a_second_part, substr($url, $substr_start, $substr_len)); + $rest = 'away.vid</a>'; - $this->assertEquals(substr($url,161),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } @@ -84,20 +102,33 @@ class TestOfDoku_Parser_Media extends TestOfDoku_Parser { $Renderer = new Doku_Renderer_xhtml(); $url = $Renderer->externalmedia($file,null,null,null,null,'cache','details',true); - $video = '<video class="media" width="320" height="240" controls="controls" poster="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.png">'; - $this->assertEquals(substr($url,0,125),$video); + $video = '<video class="media" width="320" height="240" controls="controls" poster="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.png">'; + $substr_start = 0; + $substr_len = strlen($video); + $this->assertEquals($video, substr($url, $substr_start, $substr_len)); + + // find $source_webm in $url + $source_webm = '<source src="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.webm" type="video/webm" />'; + $substr_start = strpos($url, $source_webm, $substr_start + $substr_len); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); + + // find $source_ogv in $url + $source_ogv = '<source src="' . DOKU_BASE . 'lib/exe/fetch.php?media=wiki:kind_zu_katze.ogv" type="video/ogg" />'; + $substr_start = strpos($url, $source_ogv, $substr_start + strlen($source_webm)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); - $source_webm = '<source src="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.webm" type="video/webm" />'; - $this->assertEquals(substr($url,126,85),$source_webm); - $source_ogv = '<source src="/./lib/exe/fetch.php?media=wiki:kind_zu_katze.ogv" type="video/ogg" />'; - $this->assertEquals(substr($url,212,83),$source_ogv); + // find $a_webm in $url + $a_webm = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.webm" class="media mediafile mf_webm" title="wiki:kind_zu_katze.webm (99.1 KB)">kind_zu_katze.webm</a>'; + $substr_start = strpos($url, $a_webm, $substr_start + strlen($source_ogv)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); - $a_webm = '<a href="/./lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.webm" class="media mediafile mf_webm" title="wiki:kind_zu_katze.webm (99.1 KB)">kind_zu_katze.webm</a>'; - $a_ogv = '<a href="/./lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.ogv" class="media mediafile mf_ogv" title="wiki:kind_zu_katze.ogv (44.8 KB)">kind_zu_katze.ogv</a>'; - $this->assertEquals(substr($url,296,176),$a_webm); - $this->assertEquals(substr($url,472,172),$a_ogv); + // find $a_webm in $url + $a_ogv = '<a href="' . DOKU_BASE . 'lib/exe/fetch.php?id=&cache=&media=wiki:kind_zu_katze.ogv" class="media mediafile mf_ogv" title="wiki:kind_zu_katze.ogv (44.8 KB)">kind_zu_katze.ogv</a>'; + $substr_start = strpos($url, $a_ogv, $substr_start + strlen($a_webm)); + $this->assertNotSame(false, $substr_start, 'Substring not found.'); $rest = '</video>'."\n"; - $this->assertEquals(substr($url,644),$rest); + $substr_start = strlen($url) - strlen($rest); + $this->assertEquals($rest, substr($url, $substr_start)); } } diff --git a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php index dd1ed1d3f64f488dbd1913b817d89d1864536940..772001b99f04c3263412d5e0cbf6b9f8fd85c294 100644 --- a/_test/tests/inc/parser/renderer_resolveinterwiki.test.php +++ b/_test/tests/inc/parser/renderer_resolveinterwiki.test.php @@ -14,21 +14,23 @@ class Test_resolveInterwiki extends DokuWikiTest { $Renderer->interwiki['withslash'] = '/test'; $Renderer->interwiki['onlytext'] = ':onlytext{NAME}'; //with {URL} double urlencoded $Renderer->interwiki['withquery'] = ':anyns:{NAME}?do=edit'; + //this was the only link with host/port/path/query. Keep it here for regression + $Renderer->interwiki['coral'] = 'http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY}'; $tests = array( // shortcut, reference and expected - array('wp', 'foo @+%/#txt', 'http://en.wikipedia.org/wiki/foo @+%/#txt'), - array('amazon', 'foo @+%/#txt', 'http://www.amazon.com/exec/obidos/ASIN/foo%20%40%2B%25%2F/splitbrain-20/#txt'), - array('doku', 'foo @+%/#txt', 'http://www.dokuwiki.org/foo%20%40%2B%25%2F#txt'), - array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%2F'), + array('wp', 'foo [\\]^`{|}~@+#%?/#txt', 'https://en.wikipedia.org/wiki/foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'), + array('amazon', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.amazon.com/exec/obidos/ASIN/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F/splitbrain-20/#txt'), + array('doku', 'foo [\\]^`{|}~@+#%?/#txt', 'https://www.dokuwiki.org/foo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'), + array('coral', 'http://example.com:83/path/naar/?query=foo%20%40%2B%25%3F%2F', 'http://example.com.83.nyud.net:8090/path/naar/?query=foo%20%40%2B%25%3F%2F'), array('scheme', 'ftp://foo @+%/#txt', 'ftp://example.com#txt'), //relative url - array('withslash', 'foo @+%/#txt', '/testfoo%20%40%2B%25%2F#txt'), - array('skype', 'foo @+%/#txt', 'skype:foo @+%/#txt'), + array('withslash', 'foo [\\]^`{|}~@+#%?/#txt', '/testfoo%20%5B%5C%5D%5E%60%7B%7C%7D~%40%2B%23%25%3F%2F#txt'), + array('skype', 'foo [\\]^`{|}~@+#%?/#txt', 'skype:foo %5B%5C%5D%5E%60%7B%7C%7D~@+%23%25?/#txt'), //dokuwiki id's - array('onlytext', 'foo @+%#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), - array('user', 'foo @+%#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), - array('withquery', 'foo @+%#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') + array('onlytext', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=onlytextfoo#txt'), + array('user', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=user:foo#txt'), + array('withquery', 'foo [\\]^`{|}~@+#%/#txt', DOKU_BASE.'doku.php?id=anyns:foo&do=edit#txt') ); foreach($tests as $test) { @@ -45,7 +47,7 @@ class Test_resolveInterwiki extends DokuWikiTest { $shortcut = 'nonexisting'; $reference = 'foo @+%/'; $url = $Renderer->_resolveInterWiki($shortcut, $reference); - $expected = 'http://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; + $expected = 'https://www.google.com/search?q=foo%20%40%2B%25%2F&btnI=lucky'; $this->assertEquals($expected, $url); } diff --git a/_test/tests/inc/remote.test.php b/_test/tests/inc/remote.test.php index d0d4eb7ce03aa8fd555b3303591d15a3bf03e43c..3cbc14f6bc368bd2008814a5ae57b3182ddf39bf 100644 --- a/_test/tests/inc/remote.test.php +++ b/_test/tests/inc/remote.test.php @@ -106,14 +106,32 @@ class remote_plugin_testplugin extends DokuWiki_Remote_Plugin { function methodString() { return 'success'; } function method2($str, $int, $bool = false) { return array($str, $int, $bool); } function publicCall() {return true;} +} +class remote_plugin_testplugin2 extends DokuWiki_Remote_Plugin { + /** + * This is a dummy method + * + * @param string $str some more parameter description + * @param int $int + * @param bool $bool + * @param Object $unknown + * @return array + */ + public function commented($str, $int, $bool, $unknown) { return array($str, $int, $bool); } + + private function privateMethod() {return true;} + protected function protectedMethod() {return true;} + public function _underscore() {return true;} } + class remote_test extends DokuWikiTest { var $userinfo; + /** @var RemoteAPI */ var $remote; function setUp() { @@ -125,10 +143,18 @@ class remote_test extends DokuWikiTest { parent::setUp(); + // mock plugin controller to return our test plugins $pluginManager = $this->getMock('Doku_Plugin_Controller'); - $pluginManager->expects($this->any())->method('getList')->will($this->returnValue(array('testplugin'))); - $pluginManager->expects($this->any())->method('load')->will($this->returnValue(new remote_plugin_testplugin())); - + $pluginManager->method('getList')->willReturn(array('testplugin', 'testplugin2')); + $pluginManager->method('load')->willReturnCallback( + function($type, $plugin) { + if($plugin == 'testplugin2') { + return new remote_plugin_testplugin2(); + } else { + return new remote_plugin_testplugin(); + } + } + ); $plugin_controller = $pluginManager; $conf['remote'] = 1; @@ -151,19 +177,44 @@ class remote_test extends DokuWikiTest { $methods = $this->remote->getPluginMethods(); $actual = array_keys($methods); sort($actual); - $expect = array('plugin.testplugin.method1', 'plugin.testplugin.method2', 'plugin.testplugin.methodString', 'plugin.testplugin.method2ext', 'plugin.testplugin.publicCall'); + $expect = array( + 'plugin.testplugin.method1', + 'plugin.testplugin.method2', + 'plugin.testplugin.methodString', + 'plugin.testplugin.method2ext', + 'plugin.testplugin.publicCall', + + 'plugin.testplugin2.commented' + ); sort($expect); $this->assertEquals($expect,$actual); } + function test_pluginDescriptors() { + $methods = $this->remote->getPluginMethods(); + $this->assertEquals(array('string','int','bool','string'), $methods['plugin.testplugin2.commented']['args']); + $this->assertEquals('array', $methods['plugin.testplugin2.commented']['return']); + $this->assertEquals(0, $methods['plugin.testplugin2.commented']['public']); + $this->assertContains('This is a dummy method', $methods['plugin.testplugin2.commented']['doc']); + $this->assertContains('string $str some more parameter description', $methods['plugin.testplugin2.commented']['doc']); + } + function test_hasAccessSuccess() { + global $conf; + $conf['remoteuser'] = ''; $this->assertTrue($this->remote->hasAccess()); } + /** + * @expectedException RemoteAccessDeniedException + */ function test_hasAccessFail() { global $conf; $conf['remote'] = 0; - $this->assertFalse($this->remote->hasAccess()); + // the hasAccess() should throw a Exception to keep the same semantics with xmlrpc.php. + // because the user(xmlrpc) check remote before .--> (!$conf['remote']) die('XML-RPC server not enabled.'); + // so it must be a Exception when get here. + $this->remote->hasAccess(); } function test_hasAccessFailAcl() { @@ -203,6 +254,7 @@ class remote_test extends DokuWikiTest { function test_forceAccessSuccess() { global $conf; $conf['remote'] = 1; + $conf['remoteuser'] = ''; $this->remote->forceAccess(); // no exception should occur } @@ -217,7 +269,11 @@ class remote_test extends DokuWikiTest { function test_generalCoreFunctionWithoutArguments() { global $conf; + global $USERINFO; $conf['remote'] = 1; + $conf['remoteuser'] = ''; + $conf['useacl'] = 1; + $USERINFO['grps'] = array('grp'); $remoteApi = new RemoteApi(); $remoteApi->getCoreMethods(new RemoteAPICoreTest()); @@ -243,7 +299,10 @@ class remote_test extends DokuWikiTest { function test_generalCoreFunctionWithArguments() { global $conf; + global $USERINFO; $conf['remote'] = 1; + $conf['remoteuser'] = ''; + $conf['useacl'] = 1; $remoteApi = new RemoteApi(); $remoteApi->getCoreMethods(new RemoteAPICoreTest()); @@ -256,7 +315,10 @@ class remote_test extends DokuWikiTest { function test_pluginCallMethods() { global $conf; + global $USERINFO; $conf['remote'] = 1; + $conf['remoteuser'] = ''; + $conf['useacl'] = 1; $remoteApi = new RemoteApi(); $this->assertEquals($remoteApi->call('plugin.testplugin.method1'), null); @@ -313,6 +375,11 @@ class remote_test extends DokuWikiTest { } function test_pluginCallCustomPath() { + global $conf; + global $USERINFO; + $conf['remote'] = 1; + $conf['remoteuser'] = ''; + $conf['useacl'] = 1; global $EVENT_HANDLER; $EVENT_HANDLER->register_hook('RPC_CALL_ADD', 'BEFORE', $this, 'pluginCallCustomPathRegister'); diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php deleted file mode 100644 index 15453b16db94295bc31b5ff2ba4231b17b478b35..0000000000000000000000000000000000000000 --- a/_test/tests/inc/tar.test.php +++ /dev/null @@ -1,454 +0,0 @@ -<?php - -class Tar_TestCase extends DokuWikiTest { - /** - * file extensions that several tests use - */ - protected $extensions = array('tar'); - - public function setUp() { - parent::setUp(); - if (extension_loaded('zlib')) { - $this->extensions[] = 'tgz'; - } - if (extension_loaded('bz2')) { - $this->extensions[] = 'tbz'; - } - } - - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_zlib() { - if (!extension_loaded('zlib')) { - $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); - } - } - - /* - * dependency for tests needing zlib extension to pass - */ - public function test_ext_bz2() { - if (!extension_loaded('bz2')) { - $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); - } - } - - /** - * simple test that checks that the given filenames and contents can be grepped from - * the uncompressed tar stream - * - * No check for format correctness - */ - public function test_createdynamic() { - $tar = new Tar(); - - $dir = dirname(__FILE__).'/tar'; - $tdir = ltrim($dir,'/'); - - $tar->create(); - $tar->AddFile("$dir/testdata1.txt"); - $tar->AddFile("$dir/foobar/testdata2.txt", 'noway/testdata2.txt'); - $tar->addData('another/testdata3.txt', 'testcontent3'); - - $data = $tar->getArchive(); - - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent2') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent3') !== false, 'Content in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir") !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, "testdata1.txt") !== false, 'File in TAR'); - - $this->assertTrue(strpos($data, 'noway/testdata2.txt') !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, 'another/testdata3.txt') !== false, 'Path in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir/foobar") === false, 'Path not in TAR'); - $this->assertTrue(strpos($data, "foobar.txt") === false, 'File not in TAR'); - - $this->assertTrue(strpos($data, "foobar") === false, 'Path not in TAR'); - } - - /** - * simple test that checks that the given filenames and contents can be grepped from the - * uncompressed tar file - * - * No check for format correctness - */ - public function test_createfile() { - $tar = new Tar(); - - $dir = dirname(__FILE__).'/tar'; - $tdir = ltrim($dir,'/'); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->AddFile("$dir/testdata1.txt"); - $tar->AddFile("$dir/foobar/testdata2.txt", 'noway/testdata2.txt'); - $tar->addData('another/testdata3.txt', 'testcontent3'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent2') !== false, 'Content in TAR'); - $this->assertTrue(strpos($data, 'testcontent3') !== false, 'Content in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir") !== false, "Path in TAR '$tdir'"); - $this->assertTrue(strpos($data, "testdata1.txt") !== false, 'File in TAR'); - - $this->assertTrue(strpos($data, 'noway/testdata2.txt') !== false, 'Path in TAR'); - $this->assertTrue(strpos($data, 'another/testdata3.txt') !== false, 'Path in TAR'); - - // fullpath might be too long to be stored as full path FS#2802 - $this->assertTrue(strpos($data, "$tdir/foobar") === false, 'Path not in TAR'); - $this->assertTrue(strpos($data, "foobar.txt") === false, 'File not in TAR'); - - $this->assertTrue(strpos($data, "foobar") === false, 'Path not in TAR'); - - @unlink($tmp); - } - - /** - * List the contents of the prebuilt TAR files - */ - public function test_tarcontent() { - $dir = dirname(__FILE__).'/tar'; - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $content = $tar->contents(); - - $this->assertCount(4, $content, "Contents of $file"); - $this->assertEquals('tar/testdata1.txt', $content[1]['filename'], "Contents of $file"); - $this->assertEquals(13, $content[1]['size'], "Contents of $file"); - - $this->assertEquals('tar/foobar/testdata2.txt', $content[3]['filename'], "Contents of $file"); - $this->assertEquals(13, $content[1]['size'], "Contents of $file"); - } - } - - /** - * Extract the prebuilt tar files - */ - public function test_tarextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with component stripping - */ - public function test_compstripextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, 1); - - clearstatcache(); - - $this->assertFileExists($out.'/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with prefix stripping - */ - public function test_prefixstripextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, 'tar/foobar/'); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileExists($out.'/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with include regex - */ - public function test_includeextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, '', '', '/\/foobar\//'); - - clearstatcache(); - - $this->assertFileNotExists($out.'/tar/testdata1.txt', "Extracted $file"); - - $this->assertFileExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/foobar/testdata2.txt'), "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Extract the prebuilt tar files with exclude regex - */ - public function test_excludeextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach($this->extensions as $ext) { - $tar = new Tar(); - $file = "$dir/test.$ext"; - - $tar->open($file); - $tar->extract($out, '', '/\/foobar\//'); - - clearstatcache(); - - $this->assertFileExists($out.'/tar/testdata1.txt', "Extracted $file"); - $this->assertEquals(13, filesize($out.'/tar/testdata1.txt'), "Extracted $file"); - - $this->assertFileNotExists($out.'/tar/foobar/testdata2.txt', "Extracted $file"); - - TestUtils::rdelete($out); - } - } - - /** - * Check the extension to compression guesser - */ - public function test_filetype() { - $tar = new Tar(); - $this->assertEquals(Tar::COMPRESS_NONE, $tar->filetype('foo')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tgz')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tGZ')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tar.GZ')); - $this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tar.gz')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tbz')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tBZ')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.BZ2')); - $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.bz2')); - } - - /** - * @depends test_ext_zlib - */ - public function test_longpathextract() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - foreach(array('ustar', 'gnu') as $format) { - $tar = new Tar(); - $tar->open("$dir/longpath-$format.tgz"); - $tar->extract($out); - - $this->assertFileExists($out.'/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/test.txt'); - - TestUtils::rdelete($out); - } - } - - // FS#1442 - public function test_createlongfile() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = '0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.txt'; - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData($path, 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the complete path and a longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertTrue(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - public function test_createlongpathustar() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = ''; - for($i=0; $i<11; $i++) $path .= '1234567890/'; - $path = rtrim($path,'/'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData("$path/test.txt", 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the path and filename separated, no longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, 'test.txt') !== false, 'filename in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertFalse(strpos($data, "$path/test.txt") !== false, 'full filename in TAR'); - $this->assertFalse(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - public function test_createlongpathgnu() { - $tar = new Tar(); - $tmp = tempnam(sys_get_temp_dir(), 'dwtartest'); - - $path = ''; - for($i=0; $i<20; $i++) $path .= '1234567890/'; - $path = rtrim($path,'/'); - - $tar->create($tmp, Tar::COMPRESS_NONE); - $tar->addData("$path/test.txt", 'testcontent1'); - $tar->close(); - - $this->assertTrue(filesize($tmp) > 30); //arbitrary non-zero number - $data = file_get_contents($tmp); - - // We should find the complete path/filename and a longlink entry - $this->assertTrue(strpos($data, 'testcontent1') !== false, 'content in TAR'); - $this->assertTrue(strpos($data, 'test.txt') !== false, 'filename in TAR'); - $this->assertTrue(strpos($data, $path) !== false, 'path in TAR'); - $this->assertTrue(strpos($data, "$path/test.txt") !== false, 'full filename in TAR'); - $this->assertTrue(strpos($data, '@LongLink') !== false, '@LongLink in TAR'); - - @unlink($tmp); - } - - /** - * Extract a tarbomomb - * @depends test_ext_zlib - */ - public function test_tarbomb() { - $dir = dirname(__FILE__).'/tar'; - $out = sys_get_temp_dir().'/dwtartest'.md5(time()); - - $tar = new Tar(); - - $tar->open("$dir/tarbomb.tgz"); - $tar->extract($out); - - clearstatcache(); - - $this->assertFileExists($out.'/AAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB.txt'); - - TestUtils::rdelete($out); - } - - /** - * A single zero file should be just a header block + the footer - */ - public function test_zerofile(){ - $dir = dirname(__FILE__).'/tar'; - $tar = new Tar(); - $tar->create(); - $tar->addFile("$dir/zero.txt", 'zero.txt'); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*3, strlen($file)); // 1 header block + 2 footer blocks - } - - public function test_zerodata(){ - $tar = new Tar(); - $tar->create(); - $tar->addData('zero.txt',''); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*3, strlen($file)); // 1 header block + 2 footer blocks - } - - /** - * A file of exactly one block should be just a header block + data block + the footer - */ - public function test_blockfile(){ - $dir = dirname(__FILE__).'/tar'; - $tar = new Tar(); - $tar->create(); - $tar->addFile("$dir/block.txt", 'block.txt'); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*4, strlen($file)); // 1 header block + data block + 2 footer blocks - } - - public function test_blockdata(){ - $tar = new Tar(); - $tar->create(); - $tar->addData('block.txt', str_pad('', 512, 'x')); - $file = $tar->getArchive(Tar::COMPRESS_NONE); - - $this->assertEquals(512*4, strlen($file)); // 1 header block + data block + 2 footer blocks - } - - - public function test_cleanPath(){ - $tar = new Tar(); - $tests = array ( - '/foo/bar' => 'foo/bar', - '/foo/bar/' => 'foo/bar', - 'foo//bar' => 'foo/bar', - 'foo/0/bar' => 'foo/0/bar', - 'foo/../bar' => 'bar', - 'foo/bang/bang/../../bar' => 'foo/bar', - 'foo/../../bar' => 'bar', - 'foo/.././../bar' => 'bar', - ); - - foreach($tests as $in => $out){ - $this->assertEquals($out, $tar->cleanPath($in), "Input: $in"); - } - } -} diff --git a/_test/tests/inc/tar/block.txt b/_test/tests/inc/tar/block.txt deleted file mode 100644 index 9b2f53080c2a7b5fdf1c5629aaf513fdd2056528..0000000000000000000000000000000000000000 --- a/_test/tests/inc/tar/block.txt +++ /dev/null @@ -1 +0,0 @@ -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/_test/tests/inc/tar/foobar/testdata2.txt b/_test/tests/inc/tar/foobar/testdata2.txt deleted file mode 100644 index a7db15771f7f75aca5f8dc62beaebab28bb9ef8b..0000000000000000000000000000000000000000 --- a/_test/tests/inc/tar/foobar/testdata2.txt +++ /dev/null @@ -1 +0,0 @@ -testcontent2 diff --git a/_test/tests/inc/tar/longpath-gnu.tgz b/_test/tests/inc/tar/longpath-gnu.tgz deleted file mode 100644 index 6c937c8fe055c33eb842419c2321a15eededc191..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/longpath-gnu.tgz and /dev/null differ diff --git a/_test/tests/inc/tar/longpath-ustar.tgz b/_test/tests/inc/tar/longpath-ustar.tgz deleted file mode 100644 index 59efbff6689a78bc9ff3dc08afb95b4a19eaaa67..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/longpath-ustar.tgz and /dev/null differ diff --git a/_test/tests/inc/tar/tarbomb.tgz b/_test/tests/inc/tar/tarbomb.tgz deleted file mode 100644 index 8418d4073e9afc339cd05c222063733305bd5d2d..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/tarbomb.tgz and /dev/null differ diff --git a/_test/tests/inc/tar/test.tar b/_test/tests/inc/tar/test.tar deleted file mode 100644 index 931866b0ba0f279fab0b68e6a27e988860e41dc4..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/test.tar and /dev/null differ diff --git a/_test/tests/inc/tar/test.tbz b/_test/tests/inc/tar/test.tbz deleted file mode 100644 index 5a737401907117fc2bfda39d27f73aed5892adac..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/test.tbz and /dev/null differ diff --git a/_test/tests/inc/tar/test.tgz b/_test/tests/inc/tar/test.tgz deleted file mode 100644 index b0031964934865544c7c8537740a7995f99c882f..0000000000000000000000000000000000000000 Binary files a/_test/tests/inc/tar/test.tgz and /dev/null differ diff --git a/_test/tests/inc/tar/testdata1.txt b/_test/tests/inc/tar/testdata1.txt deleted file mode 100644 index ac65bb32efdef558a1eb2f9a986d55838db2efbb..0000000000000000000000000000000000000000 --- a/_test/tests/inc/tar/testdata1.txt +++ /dev/null @@ -1 +0,0 @@ -testcontent1 diff --git a/_test/tests/inc/tar/zero.txt b/_test/tests/inc/tar/zero.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/_test/tests/inc/template_include_page.test.php b/_test/tests/inc/template_include_page.test.php index 47d4d46f154fd087dea2923fa46b6ff8304e6a6b..7dd13ba236be6a3f41f010c4573e7489e1371dcc 100644 --- a/_test/tests/inc/template_include_page.test.php +++ b/_test/tests/inc/template_include_page.test.php @@ -1,40 +1,67 @@ <?php -class template_include_page_test extends DokuWikiTest { - function testNoSidebar() { - global $ID; +class template_pagetitle_test extends DokuWikiTest { - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertEquals('', $sidebar); + function test_localID() { + global $ID,$ACT; + + + $id = 'foo:bar'; + + $ACT = 'show'; + $this->assertEquals('foo:bar', tpl_pagetitle($id, true)); } - function testExistingSidebars() { - global $ID; + function test_globalID() { + global $ID,$ACT; + - saveWikiText('sidebar', 'topsidebar-test', ''); + $ID = 'foo:bar'; - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $ACT = 'show'; + $this->assertEquals('foo:bar', tpl_pagetitle(null, true)); + } + + function test_adminTitle() { + global $ID,$ACT; - $ID = 'foo'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $ID = 'foo:bar'; + + $ACT = 'admin'; + $this->assertEquals('Admin', tpl_pagetitle(null, true)); + } - saveWikiText('foo:bar:sidebar', 'bottomsidebar-test', ''); + function test_adminPluginTitle() { + global $ID,$ACT,$INPUT,$conf; - $ID = 'foo:bar:baz:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'bottomsidebar-test') > 0); + if (!plugin_load('admin','revert')) { + $this->markTestSkipped('Revert plugin not found, unable to test admin plugin titles'); + return; + } - $ID = 'foo:bar:test'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'bottomsidebar-test') > 0); + $ID = 'foo:bar'; + $ACT = 'admin'; + $conf['lang'] = 'en'; + $INPUT->set('page','revert'); - $ID = 'foo'; - $sidebar = tpl_include_page('sidebar', false, true); - $this->assertTrue(strpos($sidebar, 'topsidebar-test') > 0); + $this->assertEquals('Revert Manager', tpl_pagetitle(null, true)); } + function test_nonPageFunctionTitle() { + global $ID,$ACT; + + $ID = 'foo:bar'; + + $ACT = 'index'; + $this->assertEquals('Sitemap', tpl_pagetitle(null, true)); + } + + function test_pageFunctionTitle() { + global $ID,$ACT; + + $ID = 'foo:bar'; + + $ACT = 'revisions'; + $this->assertEquals('foo:bar - Old revisions', tpl_pagetitle(null, true)); + } } diff --git a/bin/.htaccess b/bin/.htaccess index 281d5c33db37cd1cc887dbb2d36897b897835071..5f279f180699c2f115c326319a8afc645c5a7245 100644 --- a/bin/.htaccess +++ b/bin/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/bin/dwpage.php b/bin/dwpage.php index d7f6e9bb8df565763a8831493650d7faa7f75062..1c1a1c10ee6f38cb5e41e75e51a31829600c97ec 100755 --- a/bin/dwpage.php +++ b/bin/dwpage.php @@ -248,7 +248,7 @@ class PageCLI extends DokuCLI { lock($wiki_id); - if(checklock($wiki_id) != $this->username) { + if(checklock($wiki_id)) { $this->error("Unable to obtain lock for $wiki_id "); var_dump(checklock($wiki_id)); exit(1); diff --git a/composer.json b/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..3fe00cc92325258317005bbaed6f62b66abdc365 --- /dev/null +++ b/composer.json @@ -0,0 +1,6 @@ +{ + "require": { + "splitbrain/php-archive": "~1.0", + "easybook/geshi": "~1.0" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000000000000000000000000000000000000..f504ba638278b709725d08b303b152ae1bceaf76 --- /dev/null +++ b/composer.lock @@ -0,0 +1,111 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "23ee0dd06136e2301c930e75055300d5", + "packages": [ + { + "name": "easybook/geshi", + "version": "v1.0.8.15", + "source": { + "type": "git", + "url": "https://github.com/easybook/geshi.git", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f", + "shasum": "" + }, + "require": { + "php": ">4.3.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + }, + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + } + ], + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": [ + "highlight", + "highlighter", + "syntax" + ], + "time": "2015-06-18 14:56:28" + }, + { + "name": "splitbrain/php-archive", + "version": "1.0.7", + "source": { + "type": "git", + "url": "https://github.com/splitbrain/php-archive.git", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": [ + "archive", + "extract", + "tar", + "unpack", + "unzip", + "zip" + ], + "time": "2015-08-12 13:24:34" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/conf/.htaccess b/conf/.htaccess index bcc3ea0bdd29b4b55ef28f7b6a2deaf749fef3bd..b3ffca597c182a9be02a0fc4d58c6a7e7931200c 100644 --- a/conf/.htaccess +++ b/conf/.htaccess @@ -1,3 +1,8 @@ ## no access to the conf directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php index bdc9739d1844a0c1e9b996717a28bcf84d9e12e7..ef62b41e708b5457a7301124609946b097ff59df 100644 --- a/conf/dokuwiki.php +++ b/conf/dokuwiki.php @@ -65,7 +65,7 @@ $conf['disableactions'] = ''; //comma separated list of actions to di $conf['auth_security_timeout'] = 900; //time (seconds) auth data is considered valid, set to 0 to recheck on every page view $conf['securecookie'] = 1; //never send HTTPS cookies via HTTP $conf['remote'] = 0; //Enable/disable remote interfaces -$conf['remoteuser'] = '!!not set !!'; //user/groups that have access to remote interface (comma separated) +$conf['remoteuser'] = '!!not set!!'; //user/groups that have access to remote interface (comma separated) /* Antispam Features */ $conf['usewordblock']= 1; //block spam based on words? 0|1 diff --git a/conf/interwiki.conf b/conf/interwiki.conf index 4857e27f30f4c1c8ab685e9004a764eecefedf73..a314c081746618b37c68d08d4d5ba40f0ece9ca3 100644 --- a/conf/interwiki.conf +++ b/conf/interwiki.conf @@ -1,35 +1,39 @@ -# Each URL may contain one of the placeholders {URL} or {NAME} +# Each URL may contain one of these placeholders # {URL} is replaced by the URL encoded representation of the wikiname # this is the right thing to do in most cases # {NAME} this is replaced by the wikiname as given in the document -# no further encoding is done +# only mandatory encoded is done, urlencoding if the link +# is an external URL, or encoding as a wikiname if it is an +# internal link (begins with a colon) +# {SCHEME} +# {HOST} +# {PORT} +# {PATH} +# {QUERY} these placeholders will be replaced with the appropriate part +# of the link when parsed as a URL # If no placeholder is defined the urlencoded name is appended to the URL # To prevent losing your added InterWiki shortcuts after an upgrade, # you should add new ones to interwiki.local.conf -wp http://en.wikipedia.org/wiki/{NAME} -wpfr http://fr.wikipedia.org/wiki/{NAME} -wpde http://de.wikipedia.org/wiki/{NAME} -wpes http://es.wikipedia.org/wiki/{NAME} -wppl http://pl.wikipedia.org/wiki/{NAME} -wpjp http://ja.wikipedia.org/wiki/{NAME} -wpmeta http://meta.wikipedia.org/wiki/{NAME} -doku http://www.dokuwiki.org/ -dokubug http://bugs.dokuwiki.org/index.php?do=details&task_id= -rfc http://tools.ietf.org/html/rfc +wp https://en.wikipedia.org/wiki/{NAME} +wpfr https://fr.wikipedia.org/wiki/{NAME} +wpde https://de.wikipedia.org/wiki/{NAME} +wpes https://es.wikipedia.org/wiki/{NAME} +wppl https://pl.wikipedia.org/wiki/{NAME} +wpjp https://ja.wikipedia.org/wiki/{NAME} +wpmeta https://meta.wikipedia.org/wiki/{NAME} +doku https://www.dokuwiki.org/ +rfc https://tools.ietf.org/html/rfc man http://man.cx/ -amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ -amazon.de http://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ -amazon.uk http://www.amazon.co.uk/exec/obidos/ASIN/ +amazon https://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/ +amazon.de https://www.amazon.de/exec/obidos/ASIN/{URL}/splitbrain-21/ +amazon.uk https://www.amazon.co.uk/exec/obidos/ASIN/ paypal https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business= -phpfn http://www.php.net/{NAME} -coral http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY} -freecache http://freecache.org/{NAME} -sb http://www.splitbrain.org/go/ +phpfn https://secure.php.net/{NAME} skype skype:{NAME} -google.de http://www.google.de/search?q= -go http://www.google.com/search?q={URL}&btnI=lucky +google.de https://www.google.de/search?q= +go https://www.google.com/search?q={URL}&btnI=lucky user :user:{NAME} # To support VoIP/SIP/TEL links diff --git a/conf/license.php b/conf/license.php index 89728ab57f53fb92185dc68285249f7faebb2302..30d409e2e26404dc2bef013499ee3cb59d931942 100644 --- a/conf/license.php +++ b/conf/license.php @@ -14,23 +14,23 @@ $license['publicdomain'] = array( 'url' => 'http://creativecommons.org/licenses/publicdomain/', ); $license['cc-by'] = array( - 'name' => 'CC Attribution 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by/3.0/', + 'name' => 'CC Attribution 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by/4.0/', ); $license['cc-by-sa'] = array( - 'name' => 'CC Attribution-Share Alike 3.0 Unported', - 'url' => 'http://creativecommons.org/licenses/by-sa/3.0/', + 'name' => 'CC Attribution-Share Alike 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-sa/4.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/', + 'name' => 'CC Attribution-Noncommercial 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-nc/4.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/', + 'name' => 'CC Attribution-Noncommercial-Share Alike 4.0 International', + 'url' => 'http://creativecommons.org/licenses/by-nc-sa/4.0/', ); diff --git a/data/.htaccess b/data/.htaccess index 281d5c33db37cd1cc887dbb2d36897b897835071..5f279f180699c2f115c326319a8afc645c5a7245 100644 --- a/data/.htaccess +++ b/data/.htaccess @@ -1,2 +1,7 @@ -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/data/deleted.files b/data/deleted.files index cac352c9d0822555957ed5a8f9fbff3b9cc32a2d..14fd785a0213c6a6a2ad26e2d427222647017991 100644 --- a/data/deleted.files +++ b/data/deleted.files @@ -2,27 +2,241 @@ # but were removed later. An up to date DokuWiki should not have any of # the files installed +# removed in 2015-08-10 +inc/TarLib.class.php +inc/geshi.php +inc/geshi/4cs.php +inc/geshi/6502acme.php +inc/geshi/6502kickass.php +inc/geshi/6502tasm.php +inc/geshi/68000devpac.php +inc/geshi/abap.php +inc/geshi/actionscript-french.php +inc/geshi/actionscript.php +inc/geshi/actionscript3.php +inc/geshi/ada.php +inc/geshi/algol68.php +inc/geshi/apache.php +inc/geshi/applescript.php +inc/geshi/apt_sources.php +inc/geshi/arm.php +inc/geshi/asm.php +inc/geshi/asp.php +inc/geshi/asymptote.php +inc/geshi/autoconf.php +inc/geshi/autohotkey.php +inc/geshi/autoit.php +inc/geshi/avisynth.php +inc/geshi/awk.php +inc/geshi/bascomavr.php +inc/geshi/bash.php +inc/geshi/basic4gl.php +inc/geshi/bf.php +inc/geshi/bibtex.php +inc/geshi/blitzbasic.php +inc/geshi/bnf.php +inc/geshi/boo.php +inc/geshi/c.php +inc/geshi/c_loadrunner.php +inc/geshi/c_mac.php +inc/geshi/caddcl.php +inc/geshi/cadlisp.php +inc/geshi/cfdg.php +inc/geshi/cfm.php +inc/geshi/chaiscript.php +inc/geshi/cil.php +inc/geshi/clojure.php +inc/geshi/cmake.php +inc/geshi/cobol.php +inc/geshi/coffeescript.php +inc/geshi/cpp-qt.php +inc/geshi/cpp.php +inc/geshi/csharp.php +inc/geshi/css.php +inc/geshi/cuesheet.php +inc/geshi/d.php +inc/geshi/dcl.php +inc/geshi/dcpu16.php +inc/geshi/dcs.php +inc/geshi/delphi.php +inc/geshi/diff.php +inc/geshi/div.php +inc/geshi/dos.php +inc/geshi/dot.php +inc/geshi/e.php +inc/geshi/ecmascript.php +inc/geshi/eiffel.php +inc/geshi/email.php +inc/geshi/epc.php +inc/geshi/erlang.php +inc/geshi/euphoria.php +inc/geshi/f1.php +inc/geshi/falcon.php +inc/geshi/fo.php +inc/geshi/fortran.php +inc/geshi/freebasic.php +inc/geshi/freeswitch.php +inc/geshi/fsharp.php +inc/geshi/gambas.php +inc/geshi/gdb.php +inc/geshi/genero.php +inc/geshi/genie.php +inc/geshi/gettext.php +inc/geshi/glsl.php +inc/geshi/gml.php +inc/geshi/gnuplot.php +inc/geshi/go.php +inc/geshi/groovy.php +inc/geshi/gwbasic.php +inc/geshi/haskell.php +inc/geshi/haxe.php +inc/geshi/hicest.php +inc/geshi/hq9plus.php +inc/geshi/html4strict.php +inc/geshi/html5.php +inc/geshi/icon.php +inc/geshi/idl.php +inc/geshi/ini.php +inc/geshi/inno.php +inc/geshi/intercal.php +inc/geshi/io.php +inc/geshi/j.php +inc/geshi/java.php +inc/geshi/java5.php +inc/geshi/javascript.php +inc/geshi/jquery.php +inc/geshi/kixtart.php +inc/geshi/klonec.php +inc/geshi/klonecpp.php +inc/geshi/latex.php +inc/geshi/lb.php +inc/geshi/ldif.php +inc/geshi/lisp.php +inc/geshi/llvm.php +inc/geshi/locobasic.php +inc/geshi/logtalk.php +inc/geshi/lolcode.php +inc/geshi/lotusformulas.php +inc/geshi/lotusscript.php +inc/geshi/lscript.php +inc/geshi/lsl2.php +inc/geshi/lua.php +inc/geshi/m68k.php +inc/geshi/magiksf.php +inc/geshi/make.php +inc/geshi/mapbasic.php +inc/geshi/matlab.php +inc/geshi/mirc.php +inc/geshi/mmix.php +inc/geshi/modula2.php +inc/geshi/modula3.php +inc/geshi/mpasm.php +inc/geshi/mxml.php +inc/geshi/mysql.php +inc/geshi/nagios.php +inc/geshi/netrexx.php +inc/geshi/newlisp.php +inc/geshi/nsis.php +inc/geshi/oberon2.php +inc/geshi/objc.php +inc/geshi/objeck.php +inc/geshi/ocaml-brief.php +inc/geshi/ocaml.php +inc/geshi/octave.php +inc/geshi/oobas.php +inc/geshi/oorexx.php +inc/geshi/oracle11.php +inc/geshi/oracle8.php +inc/geshi/oxygene.php +inc/geshi/oz.php +inc/geshi/parasail.php +inc/geshi/parigp.php +inc/geshi/pascal.php +inc/geshi/pcre.php +inc/geshi/per.php +inc/geshi/perl.php +inc/geshi/perl6.php +inc/geshi/pf.php +inc/geshi/php-brief.php +inc/geshi/php.php +inc/geshi/pic16.php +inc/geshi/pike.php +inc/geshi/pixelbender.php +inc/geshi/pli.php +inc/geshi/plsql.php +inc/geshi/postgresql.php +inc/geshi/povray.php +inc/geshi/powerbuilder.php +inc/geshi/powershell.php +inc/geshi/proftpd.php +inc/geshi/progress.php +inc/geshi/prolog.php +inc/geshi/properties.php +inc/geshi/providex.php +inc/geshi/purebasic.php +inc/geshi/pycon.php +inc/geshi/pys60.php +inc/geshi/python.php +inc/geshi/q.php +inc/geshi/qbasic.php +inc/geshi/rails.php +inc/geshi/rebol.php +inc/geshi/reg.php +inc/geshi/rexx.php +inc/geshi/robots.php +inc/geshi/rpmspec.php +inc/geshi/rsplus.php +inc/geshi/ruby.php +inc/geshi/sas.php +inc/geshi/scala.php +inc/geshi/scheme.php +inc/geshi/scilab.php +inc/geshi/sdlbasic.php +inc/geshi/smalltalk.php +inc/geshi/smarty.php +inc/geshi/spark.php +inc/geshi/sparql.php +inc/geshi/sql.php +inc/geshi/stonescript.php +inc/geshi/systemverilog.php +inc/geshi/tcl.php +inc/geshi/teraterm.php +inc/geshi/text.php +inc/geshi/thinbasic.php +inc/geshi/tsql.php +inc/geshi/typoscript.php +inc/geshi/unicon.php +inc/geshi/upc.php +inc/geshi/urbi.php +inc/geshi/uscript.php +inc/geshi/vala.php +inc/geshi/vb.php +inc/geshi/vbnet.php +inc/geshi/vedit.php +inc/geshi/verilog.php +inc/geshi/vhdl.php +inc/geshi/vim.php +inc/geshi/visualfoxpro.php +inc/geshi/visualprolog.php +inc/geshi/whitespace.php +inc/geshi/whois.php +inc/geshi/winbatch.php +inc/geshi/xbasic.php +inc/geshi/xml.php +inc/geshi/xorg_conf.php +inc/geshi/xpp.php +inc/geshi/yaml.php +inc/geshi/z80.php +inc/geshi/zxbasic.php +lib/images/interwiki/coral.gif +lib/images/interwiki/dokubug.gif +lib/images/interwiki/sb.gif +lib/scripts/drag.js +lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif +lib/scripts/tw-sack.js + # removed in 2014-05-05 lib/images/fileicons/audio.png -lib/plugins/acl/lang/hi/lang.php -lib/plugins/acl/lang/id-ni/lang.php -lib/plugins/acl/lang/lb/lang.php -lib/plugins/acl/lang/ms/lang.php -lib/plugins/authad/lang/lv/settings.php -lib/plugins/authldap/lang/lv/settings.php -lib/plugins/authmysql/lang/fi/settings.php -lib/plugins/authmysql/lang/lv/settings.php -lib/plugins/authpgsql/lang/fi/settings.php -lib/plugins/authpgsql/lang/it/settings.php -lib/plugins/authpgsql/lang/lv/settings.php -lib/plugins/authpgsql/lang/pl/settings.php -lib/plugins/config/lang/hr/lang.php -lib/plugins/config/lang/id/lang.php -lib/plugins/config/lang/kk/lang.php -lib/plugins/config/lang/lb/lang.php -lib/plugins/config/lang/mk/lang.php -lib/plugins/config/lang/ms/lang.php -lib/plugins/config/lang/vi/lang.php lib/plugins/plugin/admin.php lib/plugins/plugin/classes/ap_delete.class.php lib/plugins/plugin/classes/ap_download.class.php @@ -134,31 +348,6 @@ lib/plugins/plugin/lang/zh/admin_plugin.txt lib/plugins/plugin/lang/zh/lang.php lib/plugins/plugin/plugin.info.txt lib/plugins/plugin/style.css -lib/plugins/popularity/lang/et/lang.php -lib/plugins/popularity/lang/hr/lang.php -lib/plugins/popularity/lang/id/lang.php -lib/plugins/popularity/lang/kk/lang.php -lib/plugins/popularity/lang/lb/lang.php -lib/plugins/popularity/lang/mk/lang.php -lib/plugins/popularity/lang/ms/lang.php -lib/plugins/popularity/lang/vi/lang.php -lib/plugins/revert/lang/af/lang.php -lib/plugins/revert/lang/hi/lang.php -lib/plugins/revert/lang/hr/lang.php -lib/plugins/revert/lang/id-ni/lang.php -lib/plugins/revert/lang/id/lang.php -lib/plugins/revert/lang/kk/lang.php -lib/plugins/revert/lang/lb/lang.php -lib/plugins/revert/lang/lt/lang.php -lib/plugins/revert/lang/mk/lang.php -lib/plugins/revert/lang/ms/lang.php -lib/plugins/revert/lang/vi/lang.php -lib/plugins/usermanager/lang/hi/lang.php -lib/plugins/usermanager/lang/hr/lang.php -lib/plugins/usermanager/lang/id-ni/lang.php -lib/plugins/usermanager/lang/lb/lang.php -lib/plugins/usermanager/lang/ms/lang.php -lib/plugins/usermanager/lang/vi/lang.php # removed in 2013-11-18 lib/images/arrow_down.gif @@ -443,7 +632,6 @@ lib/scripts/domTT.js # removed in 2006-11-06 inc/admin_acl.php -inc/lang/lt/stopwords.txt inc/magpie inc/magpie/rss_cache.inc inc/magpie/rss_fetch.inc diff --git a/data/pages/wiki/dokuwiki.txt b/data/pages/wiki/dokuwiki.txt index 0e08fdcd30d36c38abcfb04da24925e7db1a6937..29843e5c64bab41251050809b3bb1721c6be7b82 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-2013 (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 +2004-2015 (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 7b453efa2ba80530cea9bfb6bd268dbdd6b28ac7..bdfda9c467ea8d48a16ba54cd59042899db4e50f 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -83,9 +83,14 @@ 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_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/userscript.js'': - - LANG.nosmblinks = ''; + * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code - conf/lang/en/lang.php> +<?php +/** + * Customization of the english language file + * Copy only the strings that needs to be modified + */ +$lang['js']['nosmblinks'] = ''; +</code> ==== Image Links ==== @@ -170,6 +175,12 @@ DokuWiki can embed the following media formats directly. If you specify a filename that is not a supported media format, then it will be displayed as a link instead. +By adding ''?linkonly'' you provide a link to the media without displaying it inline + + {{wiki:dokuwiki-128.png?linkonly}} + +{{wiki:dokuwiki-128.png?linkonly}} This is just a link to the image. + ==== Fallback Formats ==== Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility. @@ -261,17 +272,19 @@ There are three exceptions which do not come from that pattern file: multiplicat Some times you want to mark some text to show it's a reply or comment. You can use the following syntax: - I think we should do it - - > No we shouldn't - - >> Well, I say we should - - > Really? - - >> Yes! - - >>> Then lets do it! +<code> +I think we should do it + +> No we shouldn't + +>> Well, I say we should + +> Really? + +>> Yes! + +>>> Then lets do it! +</code> I think we should do it @@ -317,7 +330,7 @@ As you can see, it's the cell separator before a cell which decides about the fo ^ Heading 4 | no colspan this time | | ^ Heading 5 | Row 2 Col 2 | Row 2 Col 3 | -You can have rowspans (vertically connected cells) by adding '':::'' into the cells below the one to which they should connect. +You can have rowspans (vertically connected cells) by adding ''%%:::%%'' into the cells below the one to which they should connect. ^ Heading 1 ^ Heading 2 ^ Heading 3 ^ | Row 1 Col 1 | this cell spans vertically | Row 1 Col 3 | diff --git a/doku.php b/doku.php index f5aa6cfa4a4c8d29829e08b643dca5bb80009607..b1797fdf2a6898e18750952f565ab50728240a80 100644 --- a/doku.php +++ b/doku.php @@ -8,8 +8,8 @@ * @global Input $INPUT */ -// update message version -$updateVersion = 47; +// update message version - always use a string to avoid localized floats! +$updateVersion = "48"; // xdebug_start_profiling(); @@ -77,7 +77,7 @@ if($DATE_AT) { $DATE_AT = null; } else if ($rev_t === false) { //page did not exist $rev_n = $pagelog->getRelativeRevision($DATE_AT,+1); - msg(sprintf($lang['page_nonexist_rev'], + msg(sprintf($lang['page_nonexist_rev'], strftime($conf['dformat'],$DATE_AT), wl($ID, array('rev' => $rev_n)), strftime($conf['dformat'],$rev_n))); diff --git a/feed.php b/feed.php index 7ea2e235e349ec630b4041df4c9c9eb7c634f7eb..7b3b5e9407b8fdaa96f25904175ab65e3a7a6a3c 100644 --- a/feed.php +++ b/feed.php @@ -135,7 +135,7 @@ function rss_parseOptions() { 'content_type' => array('str', 'view', $conf['rss_media']) ) as $name => $val) { - $opt[$name] = $INPUT->$val[0]($val[1], $val[2], true); + $opt[$name] = $INPUT->{$val[0]}($val[1], $val[2], true); } $opt['items'] = max(0, (int) $opt['items']); diff --git a/inc/.htaccess b/inc/.htaccess index 2d9c357fff3ccc47d0bd6f9a232c2c2cb163ed01..2b34c725f6a5645d8c6e050513a364e76aecb939 100644 --- a/inc/.htaccess +++ b/inc/.htaccess @@ -1,3 +1,8 @@ ## no access to the inc directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/inc/Form/ButtonElement.php b/inc/Form/ButtonElement.php new file mode 100644 index 0000000000000000000000000000000000000000..77c30ed4ff8439350f354a8cd22dc85d4d806f9b --- /dev/null +++ b/inc/Form/ButtonElement.php @@ -0,0 +1,34 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class ButtonElement + * + * Represents a simple button + * + * @package dokuwiki\Form + */ +class ButtonElement extends Element { + + /** @var string HTML content */ + protected $content = ''; + + /** + * @param string $name + * @param string $content HTML content of the button. You have to escape it yourself. + */ + function __construct($name, $content = '') { + parent::__construct('button', array('name' => $name, 'value' => 1)); + $this->content = $content; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<button ' . buildAttributes($this->attrs()) . '>'.$this->content.'</button>'; + } + +} diff --git a/inc/Form/CheckableElement.php b/inc/Form/CheckableElement.php new file mode 100644 index 0000000000000000000000000000000000000000..a57bbc1f628fb230d712b901817ce2101e8e5785 --- /dev/null +++ b/inc/Form/CheckableElement.php @@ -0,0 +1,62 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class CheckableElement + * + * For Radio- and Checkboxes + * + * @package DokuForm + */ +class CheckableElement extends InputElement { + + /** + * @param string $type The type of this element + * @param string $name The name of this form element + * @param string $label The label text for this element + */ + public function __construct($type, $name, $label) { + parent::__construct($type, $name, $label); + // default value is 1 + $this->attr('value', 1); + } + + /** + * Handles the useInput flag and sets the checked attribute accordingly + */ + protected function prefillInput() { + global $INPUT; + list($name, $key) = $this->getInputName(); + $myvalue = $this->val(); + + if(!$INPUT->has($name)) return; + + if($key === null) { + // no key - single value + $value = $INPUT->str($name); + if($value == $myvalue) { + $this->attr('checked', 'checked'); + } else { + $this->rmattr('checked'); + } + } else { + // we have an array, there might be several values in it + $input = $INPUT->arr($name); + if(isset($input[$key])) { + $this->rmattr('checked'); + + // values seem to be in another sub array + if(is_array($input[$key])) { + $input = $input[$key]; + } + + foreach($input as $value) { + if($value == $myvalue) { + $this->attr('checked', 'checked'); + } + } + } + } + } + +} diff --git a/inc/Form/Element.php b/inc/Form/Element.php new file mode 100644 index 0000000000000000000000000000000000000000..7938ee0090434e2ba07d00ac5c4e33616ce4b703 --- /dev/null +++ b/inc/Form/Element.php @@ -0,0 +1,151 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class Element + * + * The basic building block of a form + * + * @package dokuwiki\Form + */ +abstract class Element { + + /** + * @var array the attributes of this element + */ + protected $attributes = array(); + + /** + * @var string The type of this element + */ + protected $type; + + /** + * @param string $type The type of this element + * @param array $attributes + */ + public function __construct($type, $attributes = array()) { + $this->type = $type; + $this->attributes = $attributes; + } + + /** + * Type of this element + * + * @return string + */ + public function getType() { + return $this->type; + } + + /** + * Gets or sets an attribute + * + * When no $value is given, the current content of the attribute is returned. + * An empty string is returned for unset attributes. + * + * When a $value is given, the content is set to that value and the Element + * itself is returned for easy chaining + * + * @param string $name Name of the attribute to access + * @param null|string $value New value to set + * @return string|$this + */ + public function attr($name, $value = null) { + // set + if($value !== null) { + $this->attributes[$name] = $value; + return $this; + } + + // get + if(isset($this->attributes[$name])) { + return $this->attributes[$name]; + } else { + return ''; + } + } + + /** + * Removes the given attribute if it exists + * + * @param $name + * @return $this + */ + public function rmattr($name) { + if(isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + return $this; + } + + /** + * Gets or adds a all given attributes at once + * + * @param array|null $attributes + * @return array|$this + */ + public function attrs($attributes = null) { + // set + if($attributes) { + foreach((array) $attributes as $key => $val) { + $this->attr($key, $val); + } + return $this; + } + // get + return $this->attributes; + } + + /** + * Adds a class to the class attribute + * + * This is the preferred method of setting the element's class + * + * @param string $class the new class to add + * @return $this + */ + public function addClass($class) { + $classes = explode(' ', $this->attr('class')); + $classes[] = $class; + $classes = array_unique($classes); + $classes = array_filter($classes); + $this->attr('class', join(' ', $classes)); + return $this; + } + + /** + * Get or set the element's ID + * + * This is the preferred way of setting the element's ID + * + * @param null|string $id + * @return string|$this + */ + public function id($id = null) { + if(strpos($id, '__') === false) { + throw new \InvalidArgumentException('IDs in DokuWiki have to contain two subsequent underscores'); + } + + return $this->attr('id', $id); + } + + /** + * Get or set the element's value + * + * This is the preferred way of setting the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + return $this->attr('value', $value); + } + + /** + * The HTML representation of this element + * + * @return string + */ + abstract public function toHTML(); +} diff --git a/inc/Form/FieldsetCloseElement.php b/inc/Form/FieldsetCloseElement.php new file mode 100644 index 0000000000000000000000000000000000000000..8f26717aa86af400523257cf359d524f29017d92 --- /dev/null +++ b/inc/Form/FieldsetCloseElement.php @@ -0,0 +1,30 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class FieldsetCloseElement + * + * Closes an open Fieldset + * + * @package dokuwiki\Form + */ +class FieldsetCloseElement extends TagCloseElement { + + /** + * @param array $attributes + */ + public function __construct($attributes = array()) { + parent::__construct('', $attributes); + $this->type = 'fieldsetclose'; + } + + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '</fieldset>'; + } +} diff --git a/inc/Form/FieldsetOpenElement.php b/inc/Form/FieldsetOpenElement.php new file mode 100644 index 0000000000000000000000000000000000000000..a7de461faa6d0a9bd9256120d88e265c48b8879e --- /dev/null +++ b/inc/Form/FieldsetOpenElement.php @@ -0,0 +1,36 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class FieldsetOpenElement + * + * Opens a Fieldset with an optional legend + * + * @package dokuwiki\Form + */ +class FieldsetOpenElement extends TagOpenElement { + + /** + * @param string $legend + * @param array $attributes + */ + public function __construct($legend='', $attributes = array()) { + // this is a bit messy and we just do it for the nicer class hierarchy + // the parent would expect the tag in $value but we're storing the + // legend there, so we have to set the type manually + parent::__construct($legend, $attributes); + $this->type = 'fieldsetopen'; + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + $html = '<fieldset '.buildAttributes($this->attrs()).'>'; + $legend = $this->val(); + if($legend) $html .= DOKU_LF.'<legend>'.hsc($legend).'</legend>'; + return $html; + } +} diff --git a/inc/Form/Form.php b/inc/Form/Form.php new file mode 100644 index 0000000000000000000000000000000000000000..7eaa53041ff6685d2ba760f494d44f3386b474d6 --- /dev/null +++ b/inc/Form/Form.php @@ -0,0 +1,426 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class Form + * + * Represents the whole Form. This is what you work on, and add Elements to + * + * @package dokuwiki\Form + */ +class Form extends Element { + + /** + * @var array name value pairs for hidden values + */ + protected $hidden = array(); + + /** + * @var Element[] the elements of the form + */ + protected $elements = array(); + + /** + * Creates a new, empty form with some default attributes + * + * @param array $attributes + */ + public function __construct($attributes = array()) { + global $ID; + + parent::__construct('form', $attributes); + + // use the current URL as default action + if(!$this->attr('action')) { + $get = $_GET; + if(isset($get['id'])) unset($get['id']); + $self = wl($ID, $get, false, '&'); //attributes are escaped later + $this->attr('action', $self); + } + + // post is default + if(!$this->attr('method')) { + $this->attr('method', 'post'); + } + + // we like UTF-8 + if(!$this->attr('accept-charset')) { + $this->attr('accept-charset', 'utf-8'); + } + + // add the security token by default + $this->setHiddenField('sectok', getSecurityToken()); + + // identify this as a new form based form in HTML + $this->addClass('doku_form'); + } + + /** + * Sets a hidden field + * + * @param $name + * @param $value + * @return $this + */ + public function setHiddenField($name, $value) { + $this->hidden[$name] = $value; + return $this; + } + + #region element query function + + /** + * Returns the numbers of elements in the form + * + * @return int + */ + public function elementCount() { + return count($this->elements); + } + + /** + * Returns a reference to the element at a position. + * A position out-of-bounds will return either the + * first (underflow) or last (overflow) element. + * + * @param $pos + * @return Element + */ + public function getElementAt($pos) { + if($pos < 0) $pos = count($this->elements) + $pos; + if($pos < 0) $pos = 0; + if($pos >= count($this->elements)) $pos = count($this->elements) - 1; + return $this->elements[$pos]; + } + + /** + * Gets the position of the first of a type of element + * + * @param string $type Element type to look for. + * @param int $offset search from this position onward + * @return false|int position of element if found, otherwise false + */ + public function findPositionByType($type, $offset = 0) { + $len = $this->elementCount(); + for($pos = $offset; $pos < $len; $pos++) { + if($this->elements[$pos]->getType() == $type) { + return $pos; + } + } + return false; + } + + /** + * Gets the position of the first element matching the attribute + * + * @param string $name Name of the attribute + * @param string $value Value the attribute should have + * @param int $offset search from this position onward + * @return false|int position of element if found, otherwise false + */ + public function findPositionByAttribute($name, $value, $offset = 0) { + $len = $this->elementCount(); + for($pos = $offset; $pos < $len; $pos++) { + if($this->elements[$pos]->attr($name) == $value) { + return $pos; + } + } + return false; + } + + #endregion + + #region Element positioning functions + + /** + * Adds or inserts an element to the form + * + * @param Element $element + * @param int $pos 0-based position in the form, -1 for at the end + * @return Element + */ + public function addElement(Element $element, $pos = -1) { + if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + if($pos < 0) { + $this->elements[] = $element; + } else { + array_splice($this->elements, $pos, 0, array($element)); + } + return $element; + } + + /** + * Replaces an existing element with a new one + * + * @param Element $element the new element + * @param $pos 0-based position of the element to replace + */ + public function replaceElement(Element $element, $pos) { + if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form'); + array_splice($this->elements, $pos, 1, array($element)); + } + + /** + * Remove an element from the form completely + * + * @param $pos 0-based position of the element to remove + */ + public function removeElement($pos) { + array_splice($this->elements, $pos, 1); + } + + #endregion + + #region Element adding functions + + /** + * Adds a text input field + * + * @param $name + * @param $label + * @param int $pos + * @return InputElement + */ + public function addTextInput($name, $label = '', $pos = -1) { + return $this->addElement(new InputElement('text', $name, $label), $pos); + } + + /** + * Adds a password input field + * + * @param $name + * @param $label + * @param int $pos + * @return InputElement + */ + public function addPasswordInput($name, $label = '', $pos = -1) { + return $this->addElement(new InputElement('password', $name, $label), $pos); + } + + /** + * Adds a radio button field + * + * @param $name + * @param $label + * @param int $pos + * @return CheckableElement + */ + public function addRadioButton($name, $label = '', $pos = -1) { + return $this->addElement(new CheckableElement('radio', $name, $label), $pos); + } + + /** + * Adds a checkbox field + * + * @param $name + * @param $label + * @param int $pos + * @return CheckableElement + */ + public function addCheckbox($name, $label = '', $pos = -1) { + return $this->addElement(new CheckableElement('checkbox', $name, $label), $pos); + } + + /** + * Adds a textarea field + * + * @param $name + * @param $label + * @param int $pos + * @return TextareaElement + */ + public function addTextarea($name, $label = '', $pos = -1) { + return $this->addElement(new TextareaElement($name, $label), $pos); + } + + /** + * Adds a simple button, escapes the content for you + * + * @param string $name + * @param string $content + * @param int $pos + * @return Element + */ + public function addButton($name, $content, $pos = -1) { + return $this->addElement(new ButtonElement($name, hsc($content)), $pos); + } + + /** + * Adds a simple button, allows HTML for content + * + * @param string $name + * @param string $html + * @param int $pos + * @return Element + */ + public function addButtonHTML($name, $html, $pos = -1) { + return $this->addElement(new ButtonElement($name, $html), $pos); + } + + /** + * Adds a label referencing another input element, escapes the label for you + * + * @param $label + * @param string $for + * @param int $pos + * @return Element + */ + public function addLabel($label, $for='', $pos = -1) { + return $this->addLabelHTML(hsc($label), $for, $pos); + } + + /** + * Adds a label referencing another input element, allows HTML for content + * + * @param string $content + * @param string|Element $for + * @param int $pos + * @return Element + */ + public function addLabelHTML($content, $for='', $pos = -1) { + $element = new LabelElement(hsc($content)); + + if(is_a($for, '\dokuwiki\Form\Element')) { + /** @var Element $for */ + $for = $for->id(); + } + $for = (string) $for; + if($for !== '') { + $element->attr('for', $for); + } + + return $this->addElement($element, $pos); + } + + /** + * Add fixed HTML to the form + * + * @param $html + * @param int $pos + * @return HTMLElement + */ + public function addHTML($html, $pos = -1) { + return $this->addElement(new HTMLElement($html), $pos); + } + + /** + * Add a closed HTML tag to the form + * + * @param $tag + * @param int $pos + * @return TagElement + */ + public function addTag($tag, $pos = -1) { + return $this->addElement(new TagElement($tag), $pos); + } + + /** + * Add an open HTML tag to the form + * + * Be sure to close it again! + * + * @param $tag + * @param int $pos + * @return TagOpenElement + */ + public function addTagOpen($tag, $pos = -1) { + return $this->addElement(new TagOpenElement($tag), $pos); + } + + /** + * Add a closing HTML tag to the form + * + * Be sure it had been opened before + * + * @param $tag + * @param int $pos + * @return TagCloseElement + */ + public function addTagClose($tag, $pos = -1) { + return $this->addElement(new TagCloseElement($tag), $pos); + } + + /** + * Open a Fieldset + * + * @param $legend + * @param int $pos + * @return FieldsetOpenElement + */ + public function addFieldsetOpen($legend = '', $pos = -1) { + return $this->addElement(new FieldsetOpenElement($legend), $pos); + } + + /** + * Close a fieldset + * + * @param int $pos + * @return TagCloseElement + */ + public function addFieldsetClose($pos = -1) { + return $this->addElement(new FieldsetCloseElement(), $pos); + } + + #endregion + + /** + * Adjust the elements so that fieldset open and closes are matching + */ + protected function balanceFieldsets() { + $lastclose = 0; + $isopen = false; + $len = count($this->elements); + + for($pos = 0; $pos < $len; $pos++) { + $type = $this->elements[$pos]->getType(); + if($type == 'fieldsetopen') { + if($isopen) { + //close previous fieldset + $this->addFieldsetClose($pos); + $lastclose = $pos + 1; + $pos++; + $len++; + } + $isopen = true; + } else if($type == 'fieldsetclose') { + if(!$isopen) { + // make sure there was a fieldsetopen + // either right after the last close or at the begining + $this->addFieldsetOpen('', $lastclose); + $len++; + $pos++; + } + $lastclose = $pos; + $isopen = false; + } + } + + // close open fieldset at the end + if($isopen) { + $this->addFieldsetClose(); + } + } + + /** + * The HTML representation of the whole form + * + * @return string + */ + public function toHTML() { + $this->balanceFieldsets(); + + $html = '<form ' . buildAttributes($this->attrs()) . '>' . DOKU_LF; + + foreach($this->hidden as $name => $value) { + $html .= '<input type="hidden" name="' . $name . '" value="' . formText($value) . '" />' . DOKU_LF; + } + + foreach($this->elements as $element) { + $html .= $element->toHTML() . DOKU_LF; + } + + $html .= '</form>' . DOKU_LF; + + return $html; + } +} diff --git a/inc/Form/HTMLElement.php b/inc/Form/HTMLElement.php new file mode 100644 index 0000000000000000000000000000000000000000..591cf472f97578aa829b7b19981d8b6a271b7432 --- /dev/null +++ b/inc/Form/HTMLElement.php @@ -0,0 +1,29 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class HTMLElement + * + * Holds arbitrary HTML that is added as is to the Form + * + * @package dokuwiki\Form + */ +class HTMLElement extends ValueElement { + + + /** + * @param string $html + */ + public function __construct($html) { + parent::__construct('html', $html); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return $this->val(); + } +} diff --git a/inc/Form/InputElement.php b/inc/Form/InputElement.php new file mode 100644 index 0000000000000000000000000000000000000000..694dd0848de543a00da945761d9c155089fca161 --- /dev/null +++ b/inc/Form/InputElement.php @@ -0,0 +1,161 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class InputElement + * + * Base class for all input elements. Uses a wrapping label when label + * text is given. + * + * @todo figure out how to make wrapping or related label configurable + * @package dokuwiki\Form + */ +class InputElement extends Element { + /** + * @var LabelElement + */ + protected $label = null; + + /** + * @var bool if the element should reflect posted values + */ + protected $useInput = true; + + /** + * @param string $type The type of this element + * @param string $name The name of this form element + * @param string $label The label text for this element (will be autoescaped) + */ + public function __construct($type, $name, $label = '') { + parent::__construct($type, array('name' => $name)); + $this->attr('name', $name); + $this->attr('type', $type); + if($label) $this->label = new LabelElement($label); + } + + /** + * Returns the label element if there's one set + * + * @return LabelElement|null + */ + public function getLabel() { + return $this->label; + } + + /** + * Should the user sent input be used to initialize the input field + * + * The default is true. Any set values will be overwritten by the INPUT + * provided values. + * + * @param bool $useinput + * @return $this + */ + public function useInput($useinput) { + $this->useInput = (bool) $useinput; + return $this; + } + + /** + * Get or set the element's ID + * + * @param null|string $id + * @return string|$this + */ + public function id($id = null) { + if($this->label) $this->label->attr('for', $id); + return parent::id($id); + } + + /** + * Adds a class to the class attribute + * + * This is the preferred method of setting the element's class + * + * @param string $class the new class to add + * @return $this + */ + public function addClass($class) { + if($this->label) $this->label->addClass($class); + return parent::addClass($class); + } + + /** + * Figures out how to access the value for this field from INPUT data + * + * The element's name could have been given as a simple string ('foo') + * or in array notation ('foo[bar]'). + * + * Note: this function only handles one level of arrays. If your data + * is nested deeper, you should call useInput(false) and set the + * correct value yourself + * + * @return array name and array key (null if not an array) + */ + protected function getInputName() { + $name = $this->attr('name'); + parse_str("$name=1", $parsed); + + $name = array_keys($parsed); + $name = array_shift($name); + + if(is_array($parsed[$name])) { + $key = array_keys($parsed[$name]); + $key = array_shift($key); + } else { + $key = null; + } + + return array($name, $key); + } + + /** + * Handles the useInput flag and set the value attribute accordingly + */ + protected function prefillInput() { + global $INPUT; + + list($name, $key) = $this->getInputName(); + if(!$INPUT->has($name)) return; + + if($key === null) { + $value = $INPUT->str($name); + } else { + $value = $INPUT->arr($name); + if(isset($value[$key])) { + $value = $value[$key]; + } else { + $value = ''; + } + } + if($value !== '') { + $this->val($value); + } + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return '<input ' . buildAttributes($this->attrs()) . ' />'; + } + + /** + * The HTML representation of this element wrapped in a label + * + * @return string + */ + public function toHTML() { + if($this->label) { + return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF . + '<span>' . hsc($this->label->val()) . '</span>' . DOKU_LF . + $this->mainElementHTML() . DOKU_LF . + '</label>'; + } else { + return $this->mainElementHTML(); + } + } +} diff --git a/inc/Form/LabelElement.php b/inc/Form/LabelElement.php new file mode 100644 index 0000000000000000000000000000000000000000..9c8d542774132dda3beb012e7648fd654af4ba6b --- /dev/null +++ b/inc/Form/LabelElement.php @@ -0,0 +1,27 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class Label + * @package dokuwiki\Form + */ +class LabelElement extends ValueElement { + + /** + * Creates a new Label + * + * @param string $label This is is raw HTML and will not be escaped + */ + public function __construct($label) { + parent::__construct('label', $label); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<label ' . buildAttributes($this->attrs()) . '>' . $this->val() . '</label>'; + } +} diff --git a/inc/Form/LegacyForm.php b/inc/Form/LegacyForm.php new file mode 100644 index 0000000000000000000000000000000000000000..1b47ba204966ce9df84c4d406c8429b28b3a1e0c --- /dev/null +++ b/inc/Form/LegacyForm.php @@ -0,0 +1,181 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class LegacyForm + * + * Provides a compatibility layer to the old Doku_Form API + * + * This can be used to work with the modern API on forms provided by old events for + * example. When you start new forms, just use Form\Form + * + * @package dokuwiki\Form + */ +class LegacyForm extends Form { + + /** + * Creates a new modern form from an old legacy Doku_Form + * + * @param \Doku_Form $oldform + */ + public function __construct(\Doku_Form $oldform) { + parent::__construct($oldform->params); + + $this->hidden = $oldform->_hidden; + + foreach($oldform->_content as $element) { + list($ctl, $attr) = $this->parseLegacyAttr($element); + + if(is_array($element)) { + switch($ctl['elem']) { + case 'wikitext': + $this->addTextarea('wikitext') + ->attrs($attr) + ->id('wiki__text') + ->val($ctl['text']) + ->addClass($ctl['class']); + break; + case 'textfield': + $this->addTextInput($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'passwordfield': + $this->addPasswordInput($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'checkboxfield': + $this->addCheckbox($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'radiofield': + $this->addRadioButton($ctl['name'], $ctl['text']) + ->attrs($attr) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'tag': + $this->addTag($ctl['tag']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'opentag': + $this->addTagOpen($ctl['tag']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'closetag': + $this->addTagClose($ctl['tag']); + break; + case 'openfieldset': + $this->addFieldsetOpen($ctl['legend']) + ->attrs($attr) + ->attr('name', $ctl['name']) + ->id($ctl['id']) + ->addClass($ctl['class']); + break; + case 'closefieldset': + $this->addFieldsetClose(); + break; + case 'button': + case 'field': + case 'fieldright': + case 'filefield': + case 'menufield': + case 'listboxfield': + throw new \UnexpectedValueException('Unsupported legacy field ' . $ctl['elem']); + break; + default: + throw new \UnexpectedValueException('Unknown legacy field ' . $ctl['elem']); + + } + } else { + $this->addHTML($element); + } + } + + } + + /** + * Parses out what is the elements attributes and what is control info + * + * @param array $legacy + * @return array + */ + protected function parseLegacyAttr($legacy) { + $attributes = array(); + $control = array(); + + foreach($legacy as $key => $val) { + if($key{0} == '_') { + $control[substr($key, 1)] = $val; + } elseif($key == 'name') { + $control[$key] = $val; + } elseif($key == 'id') { + $control[$key] = $val; + } else { + $attributes[$key] = $val; + } + } + + return array($control, $attributes); + } + + /** + * Translates our types to the legacy types + * + * @param string $type + * @return string + */ + protected function legacyType($type) { + static $types = array( + 'text' => 'textfield', + 'password' => 'passwordfield', + 'checkbox' => 'checkboxfield', + 'radio' => 'radiofield', + 'tagopen' => 'opentag', + 'tagclose' => 'closetag', + 'fieldsetopen' => 'openfieldset', + 'fieldsetclose' => 'closefieldset', + ); + if(isset($types[$type])) return $types[$type]; + return $type; + } + + /** + * Creates an old legacy form from this modern form's data + * + * @return \Doku_Form + */ + public function toLegacy() { + $this->balanceFieldsets(); + + $legacy = new \Doku_Form($this->attrs()); + $legacy->_hidden = $this->hidden; + foreach($this->elements as $element) { + if(is_a($element, 'dokuwiki\Form\HTMLElement')) { + $legacy->_content[] = $element->toHTML(); + } elseif(is_a($element, 'dokuwiki\Form\InputElement')) { + /** @var InputElement $element */ + $data = $element->attrs(); + $data['_elem'] = $this->legacyType($element->getType()); + $label = $element->getLabel(); + if($label) { + $data['_class'] = $label->attr('class'); + } + $legacy->_content[] = $data; + } + } + + return $legacy; + } +} diff --git a/inc/Form/TagCloseElement.php b/inc/Form/TagCloseElement.php new file mode 100644 index 0000000000000000000000000000000000000000..252c1af776aac158380428292e81678e689f1d87 --- /dev/null +++ b/inc/Form/TagCloseElement.php @@ -0,0 +1,88 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagCloseElement + * + * Creates an HTML close tag. You have to make sure it has been opened + * before or this will produce invalid HTML + * + * @package dokuwiki\Form + */ +class TagCloseElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tagclose', $tag, $attributes); + } + + /** + * do not call this + * + * @param $class + * @return void + * @throws \BadMethodCallException + */ + public function addClass($class) { + throw new \BadMethodCallException('You can\t add classes to closing tag'); + } + + /** + * do not call this + * + * @param $id + * @return string + * @throws \BadMethodCallException + */ + public function id($id = null) { + if ($id === null) { + return ''; + } else { + throw new \BadMethodCallException('You can\t add ID to closing tag'); + } + } + + /** + * do not call this + * + * @param $name + * @param $value + * @return string + * @throws \BadMethodCallException + */ + public function attr($name, $value = null) { + if ($value === null) { + return ''; + } else { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } + } + + /** + * do not call this + * + * @param $attributes + * @return array + * @throws \BadMethodCallException + */ + public function attrs($attributes = null) { + if ($attributes === null) { + return array(); + } else { + throw new \BadMethodCallException('You can\t add attributes to closing tag'); + } + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '</'.$this->val().'>'; + } + +} diff --git a/inc/Form/TagElement.php b/inc/Form/TagElement.php new file mode 100644 index 0000000000000000000000000000000000000000..ea5144c9c8710dec92e32a02536afaee73032ccd --- /dev/null +++ b/inc/Form/TagElement.php @@ -0,0 +1,29 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagElement + * + * Creates a self closing HTML tag + * + * @package dokuwiki\Form + */ +class TagElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tag', $tag, $attributes); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<'.$this->val().' '.buildAttributes($this->attrs()).' />'; + } +} diff --git a/inc/Form/TagOpenElement.php b/inc/Form/TagOpenElement.php new file mode 100644 index 0000000000000000000000000000000000000000..0afe97b459a3fd85ddaea578a72e6237502e3aa2 --- /dev/null +++ b/inc/Form/TagOpenElement.php @@ -0,0 +1,30 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TagOpenElement + * + * Creates an open HTML tag. You have to make sure you close it + * again or this will produce invalid HTML + * + * @package dokuwiki\Form + */ +class TagOpenElement extends ValueElement { + + /** + * @param string $tag + * @param array $attributes + */ + public function __construct($tag, $attributes = array()) { + parent::__construct('tagopen', $tag, $attributes); + } + + /** + * The HTML representation of this element + * + * @return string + */ + public function toHTML() { + return '<'.$this->val().' '.buildAttributes($this->attrs()).'>'; + } +} diff --git a/inc/Form/TextareaElement.php b/inc/Form/TextareaElement.php new file mode 100644 index 0000000000000000000000000000000000000000..9d461fdf5b7de16db312f3d2eb95aca3044dbe93 --- /dev/null +++ b/inc/Form/TextareaElement.php @@ -0,0 +1,51 @@ +<?php +namespace dokuwiki\Form; + +/** + * Class TextareaElement + * @package dokuwiki\Form + */ +class TextareaElement extends InputElement { + + /** + * @var string the actual text within the area + */ + protected $text; + + /** + * @param string $name The name of this form element + * @param string $label The label text for this element + */ + public function __construct($name, $label) { + parent::__construct('textarea', $name, $label); + $this->attr('dir', 'auto'); + } + + /** + * Get or set the element's value + * + * This is the preferred way of setting the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + if($value !== null) { + $this->text = $value; + return $this; + } + return $this->text; + } + + /** + * The HTML representation of this element + * + * @return string + */ + protected function mainElementHTML() { + if($this->useInput) $this->prefillInput(); + return '<textarea ' . buildAttributes($this->attrs()) . '>' . + formText($this->val()) . '</textarea>'; + } + +} diff --git a/inc/Form/ValueElement.php b/inc/Form/ValueElement.php new file mode 100644 index 0000000000000000000000000000000000000000..9dc2fd0df6ad8f0817a428304af6cb2447f764ff --- /dev/null +++ b/inc/Form/ValueElement.php @@ -0,0 +1,45 @@ +<?php + +namespace dokuwiki\Form; + +/** + * Class ValueElement + * + * Just like an Element but it's value is not part of its attributes + * + * What the value is (tag name, content, etc) is defined by the actual implementations + * + * @package dokuwiki\Form + */ +abstract class ValueElement extends Element { + + /** + * @var string holds the element's value + */ + protected $value = ''; + + /** + * @param string $type + * @param array|string $value + * @param array $attributes + */ + public function __construct($type, $value, $attributes = array()) { + parent::__construct($type, $attributes); + $this->val($value); + } + + /** + * Get or set the element's value + * + * @param null|string $value + * @return string|$this + */ + public function val($value = null) { + if($value !== null) { + $this->value = $value; + return $this; + } + return $this->value; + } + +} diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 092216c572c249280d84a9b62b8778aa29c2579c..49bb5d1a7dada3f2793a6436d8943fbef78e2472 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -272,13 +272,15 @@ class HTTPClient { $server = $this->proxy_host; $port = $this->proxy_port; if (empty($port)) $port = 8080; + $use_tls = $this->proxy_ssl; }else{ $request_url = $path; if (!isset($port)) $port = ($uri['scheme'] == 'https') ? 443 : 80; + $use_tls = ($uri['scheme'] == 'https'); } // add SSL stream prefix if needed - needs SSL support in PHP - if($port == 443 || $this->proxy_ssl) { + if($use_tls) { if(!in_array('ssl', stream_get_transports())) { $this->status = -200; $this->error = 'This PHP version does not support SSL - cannot connect to server'; @@ -597,13 +599,15 @@ class HTTPClient { // setups with this solution before, but we have no usable test for that and TLS should be the more // common crypto by now if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { - $requesturl = $requestinfo['path']; + $requesturl = $requestinfo['path']. + (!empty($requestinfo['query'])?'?'.$requestinfo['query']:''); return true; } // if the above failed, this will most probably not work either, but we can try if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) { - $requesturl = $requestinfo['path']; + $requesturl = $requestinfo['path']. + (!empty($requestinfo['query'])?'?'.$requestinfo['query']:''); return true; } diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 8392986806e171b1122b9b4016ea5133465b671f..5ae1402b955120d24867c2aaa3986db891d41690 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -52,7 +52,7 @@ class IXR_Value { * @param mixed $data * @param bool $type */ - function IXR_Value($data, $type = false) { + function __construct($data, $type = false) { $this->data = $data; if(!$type) { $type = $this->calculateType(); @@ -201,7 +201,7 @@ class IXR_Message { /** * @param string $message */ - function IXR_Message($message) { + function __construct($message) { $this->message =& $message; } @@ -297,6 +297,7 @@ class IXR_Message { * @param $tag */ function tag_close($parser, $tag) { + $value = null; $valueFlag = false; switch($tag) { case 'int': @@ -388,7 +389,7 @@ class IXR_Server { * @param bool $data * @param bool $wait */ - function IXR_Server($callbacks = false, $data = false, $wait = false) { + function __construct($callbacks = false, $data = false, $wait = false) { $this->setCapabilities(); if($callbacks) { $this->callbacks = $callbacks; @@ -621,7 +622,7 @@ class IXR_Request { * @param string $method * @param array $args */ - function IXR_Request($method, $args) { + function __construct($method, $args) { $this->method = $method; $this->args = $args; $this->xml = <<<EOD @@ -684,7 +685,7 @@ class IXR_Client extends DokuHTTPClient { * @param int $port * @param int $timeout */ - function IXR_Client($server, $path = false, $port = 80, $timeout = 15) { + function __construct($server, $path = false, $port = 80, $timeout = 15) { parent::__construct(); if(!$path) { // Assume we have been given a URL instead @@ -779,7 +780,7 @@ class IXR_Error { * @param int $code * @param string $message */ - function IXR_Error($code, $message) { + function __construct($code, $message) { $this->code = $code; $this->message = htmlspecialchars($message); } @@ -818,18 +819,14 @@ EOD; * @since 1.5 */ class IXR_Date { - var $year; - var $month; - var $day; - var $hour; - var $minute; - var $second; - var $timezone; + + /** @var DateTime */ + protected $date; /** * @param int|string $time */ - function IXR_Date($time) { + public function __construct($time) { // $time can be a PHP timestamp or an ISO one if(is_numeric($time)) { $this->parseTimestamp($time); @@ -839,51 +836,48 @@ class IXR_Date { } /** + * Parse unix timestamp + * * @param int $timestamp */ - function parseTimestamp($timestamp) { - $this->year = gmdate('Y', $timestamp); - $this->month = gmdate('m', $timestamp); - $this->day = gmdate('d', $timestamp); - $this->hour = gmdate('H', $timestamp); - $this->minute = gmdate('i', $timestamp); - $this->second = gmdate('s', $timestamp); - $this->timezone = ''; + protected function parseTimestamp($timestamp) { + $this->date = new DateTime('@' . $timestamp); } /** + * Parses less or more complete iso dates and much more, if no timezone given assumes UTC + * * @param string $iso */ - function parseIso($iso) { - 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]; - } + protected function parseIso($iso) { + $this->date = new DateTime($iso, new DateTimeZone("UTC")); } /** + * Returns date in ISO 8601 format + * * @return string */ - function getIso() { - return $this->year . $this->month . $this->day . 'T' . $this->hour . ':' . $this->minute . ':' . $this->second . $this->timezone; + public function getIso() { + return $this->date->format(DateTime::ISO8601); } /** + * Returns date in valid xml + * * @return string */ - function getXml() { + public function getXml() { return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>'; } /** + * Returns Unix timestamp + * * @return int */ function getTimestamp() { - return gmmktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year); + return $this->date->getTimestamp(); } } @@ -899,7 +893,7 @@ class IXR_Base64 { /** * @param string $data */ - function IXR_Base64($data) { + function __construct($data) { $this->data = $data; } @@ -923,7 +917,10 @@ class IXR_IntrospectionServer extends IXR_Server { /** @var string[] */ var $help; - function IXR_IntrospectionServer() { + /** + * Constructor + */ + function __construct() { $this->setCallbacks(); $this->setCapabilities(); $this->capabilities['introspection'] = array( @@ -1106,8 +1103,8 @@ class IXR_ClientMulticall extends IXR_Client { * @param string|bool $path * @param int $port */ - function IXR_ClientMulticall($server, $path = false, $port = 80) { - parent::IXR_Client($server, $path, $port); + function __construct($server, $path = false, $port = 80) { + parent::__construct($server, $path, $port); //$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)'; } diff --git a/inc/JSON.php b/inc/JSON.php index 7f89005ff80109d44eb8ace1100f0e64327c1c47..e01488e14690e9bdfff46df0fed71225f2cf7af9 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -119,7 +119,7 @@ class JSON { * JSON_LOOSE_TYPE - loose typing * "{...}" syntax creates associative arrays in decode. */ - function JSON($use=JSON_STRICT_TYPE) { + function __construct($use=JSON_STRICT_TYPE) { $this->use = $use; } diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index cd082cbba832d64925d38b761bf2a30d8e239e5d..1fa4f25cec69022962830535ca5925a2daf33ef6 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -54,7 +54,7 @@ class JpegMeta { * * @author Sebastian Delmont <sdelmont@zonageek.com> */ - function JpegMeta($fileName) { + function __construct($fileName) { $this->_fileName = $fileName; diff --git a/inc/PassHash.class.php b/inc/PassHash.class.php index 15f896dcff09cbd305ae15dca680f35668d82897..bcfea1dfc35d61af784d290a56ac901bc7312103 100644 --- a/inc/PassHash.class.php +++ b/inc/PassHash.class.php @@ -42,15 +42,22 @@ class PassHash { $magic = 'P'; } elseif(preg_match('/^\$H\$(.{31})$/', $hash, $m)) { $method = 'pmd5'; - $salt = $m[1]; - $magic = 'H'; + $salt = $m[1]; + $magic = 'H'; + } elseif(preg_match('/^pbkdf2_(\w+?)\$(\d+)\$(.{12})\$/', $hash, $m)) { + $method = 'djangopbkdf2'; + $magic = array( + 'algo' => $m[1], + 'iter' => $m[2], + ); + $salt = $m[3]; } elseif(preg_match('/^sha1\$(.{5})\$/', $hash, $m)) { $method = 'djangosha1'; $salt = $m[1]; } elseif(preg_match('/^md5\$(.{5})\$/', $hash, $m)) { $method = 'djangomd5'; $salt = $m[1]; - } elseif(preg_match('/^\$2a\$(.{2})\$/', $hash, $m)) { + } elseif(preg_match('/^\$2(a|y)\$(.{2})\$/', $hash, $m)) { $method = 'bcrypt'; $salt = $hash; } elseif(substr($hash, 0, 6) == '{SSHA}') { @@ -83,7 +90,8 @@ class PassHash { //crypt and compare $call = 'hash_'.$method; - if($this->$call($clear, $salt, $magic) === $hash) { + $newhash = $this->$call($clear, $salt, $magic); + if($newhash === $hash) { return true; } return false; @@ -435,6 +443,69 @@ class PassHash { return 'md5$'.$salt.'$'.md5($salt.$clear); } + /** + * Password hashing method 'djangopbkdf2' + * + * An algorithm and iteration count should be given in the opts array. + * Defaults to sha256 and 24000 iterations + * + * @param string $clear The clear text to hash + * @param string $salt The salt to use, null for random + * @param array $opts ('algo' => hash algorithm, 'iter' => iterations) + * @return string Hashed password + * @throws Exception when PHP is missing support for the method/algo + */ + public function hash_djangopbkdf2($clear, $salt=null, $opts=array()) { + $this->init_salt($salt, 12); + if(empty($opts['algo'])) { + $algo = 'sha256'; + } else { + $algo = $opts['algo']; + } + if(empty($opts['iter'])) { + $iter = 24000; + } else { + $iter = (int) $opts['iter']; + } + if(!function_exists('hash_pbkdf2')) { + throw new Exception('This PHP installation has no PBKDF2 support'); + } + if(!in_array($algo, hash_algos())) { + throw new Exception("This PHP installation has no $algo support"); + } + + $hash = base64_encode(hash_pbkdf2($algo, $clear, $salt, $iter, 0, true)); + return "pbkdf2_$algo\$$iter\$$salt\$$hash"; + } + + /** + * Alias for djangopbkdf2 defaulting to sha256 as hash algorithm + * + * @param string $clear The clear text to hash + * @param string $salt The salt to use, null for random + * @param array $opts ('iter' => iterations) + * @return string Hashed password + * @throws Exception when PHP is missing support for the method/algo + */ + public function hash_djangopbkdf2_sha256($clear, $salt=null, $opts=array()) { + $opts['algo'] = 'sha256'; + return $this->hash_djangopbkdf2($clear, $salt, $opts); + } + + /** + * Alias for djangopbkdf2 defaulting to sha1 as hash algorithm + * + * @param string $clear The clear text to hash + * @param string $salt The salt to use, null for random + * @param array $opts ('iter' => iterations) + * @return string Hashed password + * @throws Exception when PHP is missing support for the method/algo + */ + public function hash_djangopbkdf2_sha1($clear, $salt=null, $opts=array()) { + $opts['algo'] = 'sha1'; + return $this->hash_djangopbkdf2($clear, $salt, $opts); + } + /** * Passwordhashing method 'bcrypt' * diff --git a/inc/Tar.class.php b/inc/Tar.class.php index 0dc7dace2c9bcacb7be8bede59296af86ce7a22e..57c280d7991d9646dd10835d1880067686da59e4 100644 --- a/inc/Tar.class.php +++ b/inc/Tar.class.php @@ -43,6 +43,7 @@ * @author Andreas Gohr <andi@splitbrain.org> * @author Bouchon <tarlib@bouchon.org> (Maxg) * @license GPL 2 + * @deprecated 2015-05-15 - use splitbrain\PHPArchive\Tar instead */ class Tar { diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php deleted file mode 100644 index dd319a79aedc1097427e3c7fd848574fda1ad44e..0000000000000000000000000000000000000000 --- a/inc/TarLib.class.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * This is a compatibility wrapper around the new Tar class - * - * Use of this library is strongly discouraged. Only basic extraction is wrapped, - * everything else will fail. - * - * @deprecated 2012-11-06 - */ -class TarLib { - - 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; - - private $file = ''; - private $tar; - - public $_result = true; - - function __construct($file, $comptype = TarLib::COMPRESS_AUTO, $complevel = 9) { - dbg_deprecated('class Tar'); - - if(!$file) $this->error('__construct', '$file'); - - $this->file = $file; - switch($comptype) { - case TarLib::COMPRESS_AUTO: - case TarLib::COMPRESS_DETECT: - $comptype = Tar::COMPRESS_AUTO; - break; - case TarLib::COMPRESS_GZIP: - $comptype = Tar::COMPRESS_GZIP; - break; - case TarLib::COMPRESS_BZIP: - $comptype = Tar::COMPRESS_BZIP; - break; - default: - $comptype = Tar::COMPRESS_NONE; - } - - $this->complevel = $complevel; - - try { - $this->tar = new Tar(); - $this->tar->open($file, $comptype); - } catch(Exception $e) { - $this->_result = false; - } - } - - function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir = '', $p_mode = 0755) { - if($p_what != TarLib::FULL_ARCHIVE) { - $this->error('Extract', 'Ep_what'); - return 0; - } - - try { - $this->tar->extract($p_to, $p_remdir); - } catch(Exception $e) { - return 0; - } - return 1; - } - - function error($func, $param = '') { - $error = 'TarLib is deprecated and should no longer be used.'; - - if($param) { - $error .= "In this compatibility wrapper, the function '$func' does not accept your value for". - "the parameter '$param' anymore."; - } else { - $error .= "The function '$func' no longer exists in this compatibility wrapper."; - } - - msg($error, -1); - } - - function __call($name, $arguments) { - $this->error($name); - } -} \ No newline at end of file diff --git a/inc/ZipLib.class.php b/inc/ZipLib.class.php index 5b524c4ab04fde6153c7d2cad9787bf63e27561b..1358ca45eeaf9cf777a0e96f22fd67cf18344b6b 100644 --- a/inc/ZipLib.class.php +++ b/inc/ZipLib.class.php @@ -6,6 +6,7 @@ * @link http://forum.maxg.info * * Modified for Dokuwiki + * @deprecated 2015-05-15 - use splitbrain\PHPArchive\Zip instead * @author Christopher Smith <chris@jalakai.co.uk> */ class ZipLib { diff --git a/inc/actions.php b/inc/actions.php index 709c19dddcd3383c0d58a89166098513dcf8f088..adba2aa3233108d2ea4b3044067e1d24f5a77ca9 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -29,6 +29,8 @@ function act_dispatch(){ // give plugins an opportunity to process the action $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); + + $headers = array(); if ($evt->advise_before()) { //sanitize $ACT @@ -144,8 +146,10 @@ function act_dispatch(){ $ACT = act_draftdel($ACT); //draft saving on preview - if($ACT == 'preview') + if($ACT == 'preview') { + $headers[] = "X-XSS-Protection: 0"; $ACT = act_draftsave($ACT); + } //edit if(in_array($ACT, array('edit', 'preview', 'recover'))) { @@ -162,20 +166,9 @@ function act_dispatch(){ if($ACT == 'admin'){ // retrieve admin plugin name from $_REQUEST['page'] if (($page = $INPUT->str('page', '', true)) != '') { - $pluginlist = plugin_list('admin'); - if (in_array($page, $pluginlist)) { - // attempt to load the plugin - - if (($plugin = plugin_load('admin',$page)) !== null){ - /** @var DokuWiki_Admin_Plugin $plugin */ - if($plugin->forAdminOnly() && !$INFO['isadmin']){ - // a manager tried to load a plugin that's for admins only - $INPUT->remove('page'); - msg('For admins only',-1); - }else{ - $plugin->handle(); - } - } + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()){ + $plugin->handle(); } } } @@ -200,7 +193,6 @@ function act_dispatch(){ global $license; //call template FIXME: all needed vars available? - $headers = array(); $headers[] = 'Content-Type: text/html; charset=utf-8'; trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); diff --git a/inc/auth.php b/inc/auth.php index 17923ba2adc6113fe46a65a4ece57ffa6aaf571a..8965ee4c019cb2236799e44c76ab5953061cf12f 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -101,10 +101,7 @@ function auth_setup() { $INPUT->set('p', stripctl($INPUT->str('p'))); } - if($INPUT->str('authtok')) { - // when an authentication token is given, trust the session - auth_validateToken($INPUT->str('authtok')); - } elseif(!is_null($auth) && $auth->canDo('external')) { + if(!is_null($auth) && $auth->canDo('external')) { // external trust mechanism in place $auth->trustExternal($INPUT->str('u'), $INPUT->str('p'), $INPUT->bool('r')); } else { @@ -274,52 +271,6 @@ function auth_login($user, $pass, $sticky = false, $silent = false) { return false; } -/** - * Checks if a given authentication token was stored in the session - * - * Will setup authentication data using data from the session if the - * token is correct. Will exit with a 401 Status if not. - * - * @author Andreas Gohr <andi@splitbrain.org> - * - * @param string $token The authentication token - * @return boolean|null true (or will exit on failure) - */ -function auth_validateToken($token) { - if(!$token || $token != $_SESSION[DOKU_COOKIE]['auth']['token']) { - // bad token - http_status(401); - print 'Invalid auth token - maybe the session timed out'; - unset($_SESSION[DOKU_COOKIE]['auth']['token']); // no second chance - exit; - } - // still here? trust the session data - global $USERINFO; - /* @var Input $INPUT */ - global $INPUT; - - $INPUT->server->set('REMOTE_USER',$_SESSION[DOKU_COOKIE]['auth']['user']); - $USERINFO = $_SESSION[DOKU_COOKIE]['auth']['info']; - return true; -} - -/** - * Create an auth token and store it in the session - * - * NOTE: this is completely unrelated to the getSecurityToken() function - * - * @author Andreas Gohr <andi@splitbrain.org> - * - * @return string The auth token - */ -function auth_createToken() { - $token = md5(auth_randombytes(16)); - @session_start(); // reopen the session if needed - $_SESSION[DOKU_COOKIE]['auth']['token'] = $token; - session_write_close(); - return $token; -} - /** * Builds a pseudo UID from browser and IP data * @@ -739,27 +690,22 @@ function auth_aclcheck_cb($data) { $user = utf8_strtolower($user); $groups = array_map('utf8_strtolower', $groups); } - $user = $auth->cleanUser($user); + $user = auth_nameencode($auth->cleanUser($user)); $groups = array_map(array($auth, 'cleanGroup'), (array) $groups); - $user = auth_nameencode($user); //prepend groups with @ and nameencode - $cnt = count($groups); - for($i = 0; $i < $cnt; $i++) { - $groups[$i] = '@'.auth_nameencode($groups[$i]); + foreach($groups as &$group) { + $group = '@'.auth_nameencode($group); } $ns = getNS($id); $perm = -1; - if($user || count($groups)) { - //add ALL group - $groups[] = '@ALL'; - //add User - if($user) $groups[] = $user; - } else { - $groups[] = '@ALL'; - } + //add ALL group + $groups[] = '@ALL'; + + //add User + if($user) $groups[] = $user; //check exact match first $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL); @@ -1006,7 +952,7 @@ function register() { //okay try to create the user if(!$auth->triggerUserMod('create', array($login, $pass, $fullname, $email))) { - msg($lang['reguexists'], -1); + msg($lang['regfail'], -1); return false; } @@ -1098,17 +1044,18 @@ function updateprofile() { } } - if($result = $auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes))) { - // update cookie and session with the changed data - if($changes['pass']) { - list( /*user*/, $sticky, /*pass*/) = auth_getCookie(); - $pass = auth_encrypt($changes['pass'], auth_cookiesalt(!$sticky, true)); - auth_setCookie($INPUT->server->str('REMOTE_USER'), $pass, (bool) $sticky); - } - return true; + if(!$auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes))) { + msg($lang['proffail'], -1); + return false; } - return false; + // update cookie and session with the changed data + if($changes['pass']) { + list( /*user*/, $sticky, /*pass*/) = auth_getCookie(); + $pass = auth_encrypt($changes['pass'], auth_cookiesalt(!$sticky, true)); + auth_setCookie($INPUT->server->str('REMOTE_USER'), $pass, (bool) $sticky); + } + return true; } /** @@ -1221,7 +1168,7 @@ function act_resendpwd() { // change it if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) { - msg('error modifying user data', -1); + msg($lang['proffail'], -1); return false; } @@ -1229,7 +1176,7 @@ function act_resendpwd() { $pass = auth_pwgen($user); if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) { - msg('error modifying user data', -1); + msg($lang['proffail'], -1); return false; } diff --git a/inc/cache.php b/inc/cache.php index 68f64eaa2fd8255490709e5fe61c13112fa1eea4..9375dc86be863f4372687e272b3971882376d600 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -26,7 +26,7 @@ class cache { * @param string $key primary identifier * @param string $ext file extension */ - public function cache($key,$ext) { + public function __construct($key,$ext) { $this->key = $key; $this->ext = $ext; $this->cache = getCacheName($key,$ext); @@ -188,12 +188,12 @@ class cache_parser extends cache { * @param string $file source file for cache * @param string $mode input mode */ - public function cache_parser($id, $file, $mode) { + public function __construct($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::__construct($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); } /** @@ -308,8 +308,8 @@ class cache_instructions extends cache_parser { * @param string $id page id * @param string $file source file for cache */ - public function cache_instructions($id, $file) { - parent::cache_parser($id, $file, 'i'); + public function __construct($id, $file) { + parent::__construct($id, $file, 'i'); } /** diff --git a/inc/changelog.php b/inc/changelog.php index d1ef7973e33ce4889356146306589034d4a1c94c..f4731021ca48c63e14eae6d414eb02132cf72866 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -849,18 +849,17 @@ abstract class ChangeLog { public function isCurrentRevision($rev) { return $rev == @filemtime($this->getFilename()); } - + /** - * Return an existing revision for a specific date which is + * Return an existing revision for a specific date which is * the current one or younger or equal then the date * - * @param string $id * @param number $date_at timestamp * @return string revision ('' for current) */ function getLastRevisionAt($date_at){ //requested date_at(timestamp) younger or equal then modified_time($this->id) => load current - if($date_at >= @filemtime($this->getFilename())) { + if($date_at >= @filemtime($this->getFilename())) { return ''; } else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision return $rev; @@ -1049,6 +1048,12 @@ class MediaChangelog extends ChangeLog { * * @author Ben Coburn <btcoburn@silicodon.net> * @author Kate Arzamastseva <pshns@ukr.net> + * + * @param string $id + * @param int $rev + * @param int $chunk_size + * @param bool $media + * @return array|bool */ function getRevisionInfo($id, $rev, $chunk_size = 8192, $media = false) { dbg_deprecated('class PageChangeLog or class MediaChangelog'); diff --git a/inc/cliopts.php b/inc/cliopts.php index 7d71c7dc922431d83d18e8b17a8be3aa71dbad9e..d7d06119a2ccb2a167e0a44f5ce39f916c0dd003 100644 --- a/inc/cliopts.php +++ b/inc/cliopts.php @@ -447,7 +447,7 @@ class Doku_Cli_Opts_Error { var $code; var $msg; - function Doku_Cli_Opts_Error($code, $msg) { + function __construct($code, $msg) { $this->code = $code; $this->msg = $msg; } @@ -468,7 +468,7 @@ class Doku_Cli_Opts_Container { var $options = array(); var $args = array(); - function Doku_Cli_Opts_Container($options) { + function __construct($options) { foreach ( $options[0] as $option ) { if ( false !== ( strpos($option[0], '--') ) ) { $opt_name = substr($option[0], 2); diff --git a/inc/common.php b/inc/common.php index 5a8b5c90069f89ddfa6701dbedabd59d9884dcb4..91004af5ddfbab38b10b41057e0097a82da02b44 100644 --- a/inc/common.php +++ b/inc/common.php @@ -30,6 +30,32 @@ function hsc($string) { return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } +/** + * Checks if the given input is blank + * + * This is similar to empty() but will return false for "0". + * + * Please note: when you pass uninitialized variables, they will implicitly be created + * with a NULL value without warning. + * + * To avoid this it's recommended to guard the call with isset like this: + * + * (isset($foo) && !blank($foo)) + * (!isset($foo) || blank($foo)) + * + * @param $in + * @param bool $trim Consider a string of whitespace to be blank + * @return bool + */ +function blank(&$in, $trim = false) { + if(is_null($in)) return true; + if(is_array($in)) return empty($in); + if($in === "\0") return true; + if($trim && trim($in) === '') return true; + if(strlen($in) > 0) return false; + return empty($in); +} + /** * print a newline terminated string * @@ -1164,6 +1190,38 @@ function con($pre, $text, $suf, $pretty = false) { return $pre.$text.$suf; } +/** + * Checks if the current page version is newer than the last entry in the page's + * changelog. If so, we assume it has been an external edit and we create an + * attic copy and add a proper changelog line. + * + * This check is only executed when the page is about to be saved again from the + * wiki, triggered in @see saveWikiText() + * + * @param string $id the page ID + */ +function detectExternalEdit($id) { + global $lang; + + $file = wikiFN($id); + $old = @filemtime($file); // from page + $pagelog = new PageChangeLog($id, 1024); + $oldRev = $pagelog->getRevisions(-1, 1); // 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(); + } + } +} + /** * Saves a wikitext by calling io_writeWikiPage. * Also directs changelog and attic updates. @@ -1189,77 +1247,72 @@ function saveWikiText($id, $text, $summary, $minor = false) { /* @var Input $INPUT */ global $INPUT; - // ignore if no changes were made - if($text == rawWiki($id, '')) { - return; - } + // prepare data for event + $svdta = array(); + $svdta['id'] = $id; + $svdta['file'] = wikiFN($id); + $svdta['revertFrom'] = $REV; + $svdta['oldRevision'] = @filemtime($svdta['file']); + $svdta['newRevision'] = 0; + $svdta['newContent'] = $text; + $svdta['oldContent'] = rawWiki($id); + $svdta['summary'] = $summary; + $svdta['contentChanged'] = ($svdta['newContent'] != $svdta['oldContent']); + $svdta['changeInfo'] = ''; + $svdta['changeType'] = DOKU_CHANGE_TYPE_EDIT; - $file = wikiFN($id); - $old = @filemtime($file); // from page - $wasRemoved = (trim($text) == ''); // check for empty or whitespace only - $wasCreated = !file_exists($file); - $wasReverted = ($REV == true); - $pagelog = new PageChangeLog($id, 1024); - $newRev = false; - $oldRev = $pagelog->getRevisions(-1, 1); // 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(); - } + // select changelog line type + if($REV) { + $svdta['changeType'] = DOKU_CHANGE_TYPE_REVERT; + $svdta['changeInfo'] = $REV; + } else if(!file_exists($svdta['file'])) { + $svdta['changeType'] = DOKU_CHANGE_TYPE_CREATE; + } else if(trim($text) == '') { + // empty or whitespace only content deletes + $svdta['changeType'] = DOKU_CHANGE_TYPE_DELETE; + // autoset summary on deletion + if(blank($svdta['summary'])) $svdta['summary'] = $lang['deleted']; + } else if($minor && $conf['useacl'] && $INPUT->server->str('REMOTE_USER')) { + //minor edits only for logged in users + $svdta['changeType'] = DOKU_CHANGE_TYPE_MINOR_EDIT; } - if($wasRemoved) { + $event = new Doku_Event('COMMON_WIKIPAGE_SAVE', $svdta); + if(!$event->advise_before()) return; + + // if the content has not been changed, no save happens (plugins may override this) + if(!$svdta['contentChanged']) return; + + detectExternalEdit($id); + if($svdta['changeType'] == DOKU_CHANGE_TYPE_DELETE) { // Send "update" event with empty data, so plugins can react to page deletion - $data = array(array($file, '', false), getNS($id), noNS($id), false); + $data = array(array($svdta['file'], '', false), getNS($id), noNS($id), false); trigger_event('IO_WIKIPAGE_WRITE', $data); // pre-save deleted revision - @touch($file); + @touch($svdta['file']); clearstatcache(); - $newRev = saveOldRevision($id); + $data['newRevision'] = saveOldRevision($id); // remove empty file - @unlink($file); + @unlink($svdta['file']); // don't remove old meta info as it should be saved, plugins can use IO_WIKIPAGE_WRITE for removing their metadata... // purge non-persistant 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); + io_writeWikiPage($svdta['file'], $text, $id); // pre-save the revision, to keep the attic in sync - $newRev = saveOldRevision($id); - $del = false; + $svdta['newRevision'] = saveOldRevision($id); } - // 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'] && $INPUT->server->str('REMOTE_USER')) { - $type = DOKU_CHANGE_TYPE_MINOR_EDIT; - } //minor edits only for logged in users + $event->advise_after(); - addLogEntry($newRev, $id, $type, $summary, $extra); + addLogEntry($svdta['newRevision'], $svdta['id'], $svdta['changeType'], $svdta['summary'], $svdta['changeInfo']); // send notify mails - notify($id, 'admin', $old, $summary, $minor); - notify($id, 'subscribers', $old, $summary, $minor); + notify($svdta['id'], 'admin', $svdta['oldRevision'], $svdta['summary'], $minor); + notify($svdta['id'], 'subscribers', $svdta['oldRevision'], $svdta['summary'], $minor); // update the purgefile (timestamp of the last time anything within the wiki was changed) io_saveFile($conf['cachedir'].'/purgefile', time()); @@ -1793,6 +1846,8 @@ function is_mem_available($mem, $bytes = 1048576) { * @param string $url url being directed to */ function send_redirect($url) { + $url = stripctl($url); // defend against HTTP Response Splitting + /* @var Input $INPUT */ global $INPUT; @@ -1860,7 +1915,7 @@ function valid_input_set($param, $valid_values, $array, $exc = '') { */ function get_doku_pref($pref, $default) { $enc_pref = urlencode($pref); - if(strpos($_COOKIE['DOKU_PREFS'], $enc_pref) !== false) { + if(isset($_COOKIE['DOKU_PREFS']) && strpos($_COOKIE['DOKU_PREFS'], $enc_pref) !== false) { $parts = explode('#', $_COOKIE['DOKU_PREFS']); $cnt = count($parts); for($i = 0; $i < $cnt; $i += 2) { @@ -1875,6 +1930,7 @@ function get_doku_pref($pref, $default) { /** * Add a preference to the DokuWiki cookie * (remembering $_COOKIE['DOKU_PREFS'] is urlencoded) + * Remove it by setting $val to false * * @param string $pref preference key * @param string $val preference value @@ -1891,12 +1947,17 @@ function set_doku_pref($pref, $val) { $enc_pref = rawurlencode($pref); for($i = 0; $i < $cnt; $i += 2) { if($parts[$i] == $enc_pref) { - $parts[$i + 1] = rawurlencode($val); + if ($val !== false) { + $parts[$i + 1] = rawurlencode($val); + } else { + unset($parts[$i]); + unset($parts[$i + 1]); + } break; } } $cookieVal = implode('#', $parts); - } else if (!$orig) { + } else if (!$orig && $val !== false) { $cookieVal = ($_COOKIE['DOKU_PREFS'] ? $_COOKIE['DOKU_PREFS'].'#' : '').rawurlencode($pref).'#'.rawurlencode($val); } diff --git a/inc/confutils.php b/inc/confutils.php index 8643a056c54c7dd25057eb08484f05e0245ed65e..8b61a8d5b5b30f7c5758b1b4d3e570afba88aefe 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -6,6 +6,12 @@ * @author Harry Fuecks <hfuecks@gmail.com> */ +/* + * line prefix used to negate single value config items + * (scheme.conf & stopwords.conf), e.g. + * !gopher + */ +const DOKU_CONF_NEGATION = '!'; /** * Returns the (known) extension and mimetype of a given filename @@ -49,6 +55,7 @@ function getMimeTypes() { static $mime = null; if ( !$mime ) { $mime = retrieveConfig('mime','confToHash'); + $mime = array_filter($mime); } return $mime; } @@ -62,6 +69,7 @@ function getAcronyms() { static $acronyms = null; if ( !$acronyms ) { $acronyms = retrieveConfig('acronyms','confToHash'); + $acronyms = array_filter($acronyms, 'strlen'); } return $acronyms; } @@ -75,6 +83,7 @@ function getSmileys() { static $smileys = null; if ( !$smileys ) { $smileys = retrieveConfig('smileys','confToHash'); + $smileys = array_filter($smileys, 'strlen'); } return $smileys; } @@ -88,6 +97,7 @@ function getEntities() { static $entities = null; if ( !$entities ) { $entities = retrieveConfig('entities','confToHash'); + $entities = array_filter($entities, 'strlen'); } return $entities; } @@ -101,9 +111,11 @@ function getInterwiki() { static $wikis = null; if ( !$wikis ) { $wikis = retrieveConfig('interwiki','confToHash',array(true)); + $wikis = array_filter($wikis, 'strlen'); + + //add sepecial case 'this' + $wikis['this'] = DOKU_URL.'{NAME}'; } - //add sepecial case 'this' - $wikis['this'] = DOKU_URL.'{NAME}'; return $wikis; } @@ -114,7 +126,7 @@ function getInterwiki() { function getWordblocks() { static $wordblocks = null; if ( !$wordblocks ) { - $wordblocks = retrieveConfig('wordblock','file'); + $wordblocks = retrieveConfig('wordblock','file',null,'array_merge_with_removal'); } return $wordblocks; } @@ -127,11 +139,11 @@ function getWordblocks() { function getSchemes() { static $schemes = null; if ( !$schemes ) { - $schemes = retrieveConfig('scheme','file'); + $schemes = retrieveConfig('scheme','file',null,'array_merge_with_removal'); + $schemes = array_map('trim', $schemes); + $schemes = preg_replace('/^#.*/', '', $schemes); + $schemes = array_filter($schemes); } - $schemes = array_map('trim', $schemes); - $schemes = preg_replace('/^#.*/', '', $schemes); - $schemes = array_filter($schemes); return $schemes; } @@ -194,9 +206,14 @@ function confToHash($file,$lower=false) { * @param string $type the configuration settings to be read, must correspond to a key/array in $config_cascade * @param callback $fn the function used to process the configuration file into an array * @param array $params optional additional params to pass to the callback + * @param callback $combine the function used to combine arrays of values read from different configuration files; + * the function takes two parameters, + * $combined - the already read & merged configuration values + * $new - array of config values from the config cascade file being currently processed + * and returns an array of the merged configuration values. * @return array configuration values */ -function retrieveConfig($type,$fn,$params=null) { +function retrieveConfig($type,$fn,$params=null,$combine='array_merge') { global $config_cascade; if(!is_array($params)) $params = array(); @@ -208,7 +225,7 @@ function retrieveConfig($type,$fn,$params=null) { 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 = $combine($combined, $config); } } } @@ -347,4 +364,27 @@ function conf_decodeString($str) { return $str; } } + +/** + * array combination function to remove negated values (prefixed by !) + * + * @param array $current + * @param array $new + * + * @return array the combined array, numeric keys reset + */ +function array_merge_with_removal($current, $new) { + foreach ($new as $val) { + if (substr($val,0,1) == DOKU_CONF_NEGATION) { + $idx = array_search(trim(substr($val,1)),$current); + if ($idx !== false) { + unset($current[$idx]); + } + } else { + $current[] = trim($val); + } + } + + return array_slice($current,0); +} //Setup VIM: ex: et ts=4 : diff --git a/inc/events.php b/inc/events.php index 256fb561e7e81810a28c83fa700bdcb0a392051f..35d55d0e3fda5f98b17eba1174e215925abc0a3d 100644 --- a/inc/events.php +++ b/inc/events.php @@ -31,7 +31,7 @@ class Doku_Event { * @param string $name * @param mixed $data */ - function Doku_Event($name, &$data) { + function __construct($name, &$data) { $this->name = $name; $this->data =& $data; @@ -153,7 +153,7 @@ class Doku_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() { + function __construct() { // load action plugins /** @var DokuWiki_Action_Plugin $plugin */ diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php index b90da572412067aa5ea66eaacb47878e2e7894ff..fe444b39baa3b750026d35ca57afe9b760bf8e10 100644 --- a/inc/feedcreator.class.php +++ b/inc/feedcreator.class.php @@ -129,6 +129,9 @@ class FeedItem extends HtmlDescribable { // var $source; } +/** + * Class EnclosureItem + */ class EnclosureItem extends HtmlDescribable { /* * @@ -226,7 +229,7 @@ class FeedHtmlField { * Creates a new instance of FeedHtmlField. * @param string $parFieldContent: if given, sets the rawFieldContent property */ - function FeedHtmlField($parFieldContent) { + function __construct($parFieldContent) { if ($parFieldContent) { $this->rawFieldContent = $parFieldContent; } @@ -482,6 +485,8 @@ class FeedCreator extends HtmlDescribable { var $additionalElements = Array(); + var $_timeout; + /** * Adds an FeedItem to the feed. * @@ -505,7 +510,7 @@ class FeedCreator extends HtmlDescribable { * @param int $length the maximum length the string should be truncated to * @return string the truncated string */ - function iTrunc($string, $length) { + static function iTrunc($string, $length) { if (strlen($string)<=$length) { return $string; } @@ -604,6 +609,8 @@ class FeedCreator extends HtmlDescribable { /** * @since 1.4 * @access private + * + * @param string $filename */ function _redirect($filename) { // attention, heavily-commented-out-area @@ -697,7 +704,7 @@ class FeedDate { * Accepts RFC 822, ISO 8601 date formats as well as unix time stamps. * @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and time is used. */ - function FeedDate($dateString="") { + function __construct($dateString="") { if ($dateString=="") $dateString = date("r"); if (is_numeric($dateString)) { @@ -878,7 +885,10 @@ class RSSCreator091 extends FeedCreator { */ var $RSSVersion; - function RSSCreator091() { + /** + * Constructor + */ + function __construct() { $this->_setRSSVersion("0.91"); $this->contentType = "application/rss+xml"; } @@ -886,6 +896,8 @@ class RSSCreator091 extends FeedCreator { /** * Sets this RSS feed's version number. * @access private + * + * @param $version */ function _setRSSVersion($version) { $this->RSSVersion = $version; @@ -1034,7 +1046,10 @@ class RSSCreator091 extends FeedCreator { */ class RSSCreator20 extends RSSCreator091 { - function RSSCreator20() { + /** + * Constructor + */ + function __construct() { parent::_setRSSVersion("2.0"); } @@ -1051,7 +1066,10 @@ class RSSCreator20 extends RSSCreator091 { */ class PIECreator01 extends FeedCreator { - function PIECreator01() { + /** + * Constructor + */ + function __construct() { $this->encoding = "utf-8"; } @@ -1113,7 +1131,10 @@ class PIECreator01 extends FeedCreator { */ class AtomCreator10 extends FeedCreator { - function AtomCreator10() { + /** + * Constructor + */ + function __construct() { $this->contentType = "application/atom+xml"; $this->encoding = "utf-8"; } @@ -1200,7 +1221,10 @@ class AtomCreator10 extends FeedCreator { */ class AtomCreator03 extends FeedCreator { - function AtomCreator03() { + /** + * Constructor + */ + function __construct() { $this->contentType = "application/atom+xml"; $this->encoding = "utf-8"; } @@ -1272,12 +1296,19 @@ class AtomCreator03 extends FeedCreator { * @author Kai Blankenhorn <kaib@bitfolge.de> */ class MBOXCreator extends FeedCreator { - - function MBOXCreator() { + /** + * Constructor + */ + function __construct() { $this->contentType = "text/plain"; $this->encoding = "utf-8"; } + /** + * @param string $input + * @param int $line_max + * @return string + */ function qp_enc($input = "", $line_max = 76) { $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); $lines = preg_split("/(?:\r\n|\r|\n)/", $input); @@ -1363,7 +1394,10 @@ class MBOXCreator extends FeedCreator { */ class OPMLCreator extends FeedCreator { - function OPMLCreator() { + /** + * Constructor + */ + function __construct() { $this->encoding = "utf-8"; } diff --git a/inc/fetch.functions.php b/inc/fetch.functions.php index c99fbf20ae3d0c8535e90fbd403fee037fb8c0f0..b8e75eaec4adcd00ce55f59b1e5773cd526a75aa 100644 --- a/inc/fetch.functions.php +++ b/inc/fetch.functions.php @@ -1,4 +1,4 @@ -<?php +<?php /** * Functions used by lib/exe/fetch.php * (not included by other parts of dokuwiki) @@ -47,18 +47,15 @@ function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) { // cache publically header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT'); header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.$maxage); - header('Pragma: public'); } else { // cache in browser header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT'); header('Cache-Control: private, no-transform, max-age='.$maxage); - header('Pragma: no-cache'); } } else { // no cache at all header('Expires: Thu, 01 Jan 1970 00:00:00 GMT'); header('Cache-Control: no-cache, no-transform'); - header('Pragma: no-cache'); } //send important headers first, script stops here if '304 Not Modified' response diff --git a/inc/form.php b/inc/form.php index 00eea9b3a084e12c7a36ed2527b18df043237aec..91a171555c85aa3b686a7042ad201dcdd8774878 100644 --- a/inc/form.php +++ b/inc/form.php @@ -55,7 +55,7 @@ class Doku_Form { * * @author Tom N Harris <tnharris@whoopdedo.org> */ - function Doku_Form($params, $action=false, $method=false, $enctype=false) { + function __construct($params, $action=false, $method=false, $enctype=false) { if(!is_array($params)) { $this->params = array('id' => $params); if ($action !== false) $this->params['action'] = $action; @@ -400,7 +400,7 @@ function form_makeWikiText($text, $attrs=array()) { function form_makeButton($type, $act, $value='', $attrs=array()) { if ($value == '') $value = $act; $elem = array('_elem'=>'button', 'type'=>$type, '_action'=>$act, - 'value'=>$value, 'class'=>'button'); + 'value'=>$value); if (!empty($attrs['accesskey']) && empty($attrs['title'])) { $attrs['title'] = $value . ' ['.strtoupper($attrs['accesskey']).']'; } @@ -761,7 +761,9 @@ function form_wikitext($attrs) { */ function form_button($attrs) { $p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : ''; - return '<input '.$p.buildAttributes($attrs,true).' />'; + $value = $attrs['value']; + unset($attrs['value']); + return '<button '.$p.buildAttributes($attrs,true).'>'.$value.'</button>'; } /** diff --git a/inc/fulltext.php b/inc/fulltext.php index d6cddc56654525d96233d10b135dba4ad04538ea..a727a8b539459660a124686488e6e78129dce4d7 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -701,7 +701,7 @@ function ft_queryParser($Indexer, $query){ if (preg_match($ope_regex, $token)) { // operator $last_ope = end($ope_stack); - while ($ope_precedence[$token] <= $ope_precedence[$last_ope] && $last_ope != '(') { + while ($last_ope !== false && $ope_precedence[$token] <= $ope_precedence[$last_ope] && $last_ope != '(') { $parsed_ary[] = array_pop($ope_stack); $last_ope = end($ope_stack); } diff --git a/inc/geshi/actionscript-french.php b/inc/geshi/actionscript-french.php deleted file mode 100644 index e816050980298a1b6910f7fd5cdb9405276f88cd..0000000000000000000000000000000000000000 --- a/inc/geshi/actionscript-french.php +++ /dev/null @@ -1,957 +0,0 @@ -<?php -/************************************************************************************* - * actionscript.php - * ---------------- - * Author: Steffen Krause (Steffen.krause@muse.de) - * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.7.9 - * CVS Revision Version: $Revision: 1.9 $ - * Date Started: 2004/06/20 - * Last Modified: $Date: 2006/04/23 01:14:41 $ - * - * Actionscript language file for GeSHi. - * - * CHANGES - * ------- - * 2005/08/25 (1.0.2) - * Author [ NikO ] - http://niko.informatif.org - * - add full link for myInstance.methods to http://wiki.media-box.net/documentation/flash - * 2004/11/27 (1.0.1) - * - Added support for multiple object splitters - * 2004/10/27 (1.0.0) - * - First Release - * - * TODO (updated 2004/11/27) - * ------------------------- - * - ************************************************************************************* - * - * 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' => 'Actionscript', - 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', - 'KEYWORDS' => array( - 1 => array( - '#include', - 'for', - 'foreach', - 'if', - 'elseif', - 'else', - 'while', - 'do', - 'dowhile', - 'endwhile', - 'endif', - 'switch', - 'case', - 'endswitch', - 'break', - 'continue', - 'in', - 'null', - 'false', - 'true', - 'var', - 'default', - 'new', - '_global', - 'undefined', - 'super' - ), - 2 => array( - 'static', - 'private', - 'public', - 'class', - 'extends', - 'implements', - 'import', - 'return', - 'trace', - '_quality', - '_root', - 'set', - 'setInterval', - 'setProperty', - 'stopAllSounds', - 'targetPath', - 'this', - 'typeof', - 'unescape', - 'updateAfterEvent' - ), - 3 => array ( - 'Accessibility', - 'Array', - 'Boolean', - 'Button', - 'Camera', - 'Color', - 'ContextMenuItem', - 'ContextMenu', - 'Cookie', - 'Date', - 'Error', - 'function', - 'FWEndCommand', - 'FWJavascript', - 'Key', - 'LoadMovieNum', - 'LoadMovie', - 'LoadVariablesNum', - 'LoadVariables', - 'LoadVars', - 'LocalConnection', - 'Math', - 'Microphone', - 'MMExecute', - 'MMEndCommand', - 'MMSave', - 'Mouse', - 'MovieClipLoader', - 'MovieClip', - 'NetConnexion', - 'NetStream', - 'Number', - 'Object', - 'printAsBitmapNum', - 'printNum', - 'printAsBitmap', - 'printJob', - 'print', - 'Selection', - 'SharedObject', - 'Sound', - 'Stage', - 'String', - 'System', - 'TextField', - 'TextFormat', - 'Tween', - 'Video', - 'XMLUI', - 'XMLNode', - 'XMLSocket', - 'XML' - ), - 4 => array ( - 'isactive', - 'updateProperties' - ), - 5 => array ( - 'callee', - 'caller', - ), - 6 => array ( - 'concat', - 'join', - 'pop', - 'push', - 'reverse', - 'shift', - 'slice', - 'sort', - 'sortOn', - 'splice', - 'toString', - 'unshift' - ), - 7 => array ( - 'valueOf' - ), - 8 => array ( - 'onDragOut', - 'onDragOver', - 'onKeyUp', - 'onKillFocus', - 'onPress', - 'onRelease', - 'onReleaseOutside', - 'onRollOut', - 'onRollOver', - 'onSetFocus' - ), - 9 => array ( - 'setMode', - 'setMotionLevel', - 'setQuality', - 'activityLevel', - 'bandwidth', - 'currentFps', - 'fps', - 'index', - 'motionLevel', - 'motionTimeOut', - 'muted', - 'names', - 'quality', - 'onActivity', - 'onStatus' - ), - 10 => array ( - 'getRGB', - 'setRGB', - 'getTransform', - 'setTransform' - ), - 11 => array ( - 'caption', - 'enabled', - 'separatorBefore', - 'visible', - 'onSelect' - ), - 12 => array ( - 'setCookie', - 'getcookie' - ), - 13 => array ( - 'hideBuiltInItems', - 'builtInItems', - 'customItems', - 'onSelect' - ), - 14 => array ( - 'CustomActions.get', - 'CustomActions.install', - 'CustomActions.list', - 'CustomActions.uninstall', - ), - 15 => array ( - 'getDate', - 'getDay', - 'getFullYear', - 'getHours', - 'getMilliseconds', - 'getMinutes', - 'getMonth', - 'getSeconds', - 'getTime', - 'getTimezoneOffset', - 'getUTCDate', - 'getUTCDay', - 'getUTCFullYear', - 'getUTCHours', - 'getUTCMinutes', - 'getUTCMilliseconds', - 'getUTCMonth', - 'getUTCSeconds', - 'getYear', - 'setDate', - 'setFullYear', - 'setHours', - 'setMilliseconds', - 'setMinutes', - 'setMonth', - 'setSeconds', - 'setTime', - 'setUTCDate', - 'setUTCDay', - 'setUTCFullYear', - 'setUTCHours', - 'setUTCMinutes', - 'setUTCMilliseconds', - 'setUTCMonth', - 'setUTCSeconds', - 'setYear', - 'UTC' - ), - 16 => array ( - 'message', - 'name', - 'throw', - 'try', - 'catch', - 'finally' - ), - 17 => array ( - 'apply', - 'call' - ), - 18 => array ( - 'BACKSPACE', - 'CAPSLOCK', - 'CONTROL', - 'DELETEKEY', - 'DOWN', - 'END', - 'ENTER', - 'ESCAPE', - 'getAscii', - 'getCode', - 'HOME', - 'INSERT', - 'isDown', - 'isToggled', - 'LEFT', - 'onKeyDown', - 'onKeyUp', - 'PGDN', - 'PGUP', - 'RIGHT', - 'SPACE', - 'TAB', - 'UP' - ), - 19 => array ( - 'addRequestHeader', - 'contentType', - 'decode' - ), - 20 => array ( - 'allowDomain', - 'allowInsecureDomain', - 'close', - 'domain' - ), - 21 => array ( - 'abs', - 'acos', - 'asin', - 'atan', - 'atan2', - 'ceil', - 'cos', - 'exp', - 'floor', - 'log', - 'LN2', - 'LN10', - 'LOG2E', - 'LOG10E', - 'max', - 'min', - 'PI', - 'pow', - 'random', - 'sin', - 'SQRT1_2', - 'sqrt', - 'tan', - 'round', - 'SQRT2' - ), - 22 => array ( - 'activityLevel', - 'muted', - 'names', - 'onActivity', - 'onStatus', - 'setRate', - 'setGain', - 'gain', - 'rate', - 'setSilenceLevel', - 'setUseEchoSuppression', - 'silenceLevel', - 'silenceTimeOut', - 'useEchoSuppression' - ), - 23 => array ( - 'hide', - 'onMouseDown', - 'onMouseMove', - 'onMouseUp', - 'onMouseWeel', - 'show' - ), - 24 => array ( - '_alpha', - 'attachAudio', - 'attachMovie', - 'beginFill', - 'beginGradientFill', - 'clear', - 'createEmptyMovieClip', - 'createTextField', - '_current', - 'curveTo', - '_dropTarget', - 'duplicateMovieClip', - 'endFill', - 'focusEnabled', - 'enabled', - '_focusrec', - '_framesLoaded', - 'getBounds', - 'getBytesLoaded', - 'getBytesTotal', - 'getDepth', - 'getInstanceAtDepth', - 'getNextHighestDepth', - 'getSWFVersion', - 'getTextSnapshot', - 'getURL', - 'globalToLocal', - 'gotoAndPlay', - 'gotoAndStop', - '_height', - 'hitArea', - 'hitTest', - 'lineStyle', - 'lineTo', - 'localToGlobal', - '_lockroot', - 'menu', - 'onUnload', - '_parent', - 'play', - 'prevFrame', - '_quality', - 'removeMovieClip', - '_rotation', - 'setMask', - '_soundbuftime', - 'startDrag', - 'stopDrag', - 'stop', - 'swapDepths', - 'tabChildren', - '_target', - '_totalFrames', - 'trackAsMenu', - 'unloadMovie', - 'useHandCursor', - '_visible', - '_width', - '_xmouse', - '_xscale', - '_x', - '_ymouse', - '_yscale', - '_y' - ), - 25 => array ( - 'getProgress', - 'loadClip', - 'onLoadComplete', - 'onLoadError', - 'onLoadInit', - 'onLoadProgress', - 'onLoadStart' - ), - 26 => array ( - 'bufferLength', - 'currentFps', - 'seek', - 'setBufferTime', - 'bufferTime', - 'time', - 'pause' - ), - 27 => array ( - 'MAX_VALUE', - 'MIN_VALUE', - 'NEGATIVE_INFINITY', - 'POSITIVE_INFINITY' - ), - 28 => array ( - 'addProperty', - 'constructor', - '__proto__', - 'registerClass', - '__resolve', - 'unwatch', - 'watch', - 'onUpDate' - ), - 29 => array ( - 'addPage' - ), - 30 => array ( - 'getBeginIndex', - 'getCaretIndex', - 'getEndIndex', - 'setSelection' - ), - 31 => array ( - 'flush', - 'getLocal', - 'getSize' - ), - 32 => array ( - 'attachSound', - 'duration', - 'getPan', - 'getVolume', - 'onID3', - 'loadSound', - 'id3', - 'onSoundComplete', - 'position', - 'setPan', - 'setVolume' - ), - 33 => array ( - 'getBeginIndex', - 'getCaretIndex', - 'getEndIndex', - 'setSelection' - ), - 34 => array ( - 'getEndIndex', - ), - 35 => array ( - 'align', - 'height', - 'width', - 'onResize', - 'scaleMode', - 'showMenu' - ), - 36 => array ( - 'charAt', - 'charCodeAt', - 'concat', - 'fromCharCode', - 'indexOf', - 'lastIndexOf', - 'substr', - 'substring', - 'toLowerCase', - 'toUpperCase' - ), - 37 => array ( - 'avHardwareDisable', - 'hasAccessibility', - 'hasAudioEncoder', - 'hasAudio', - 'hasEmbeddedVideo', - 'hasMP3', - 'hasPrinting', - 'hasScreenBroadcast', - 'hasScreenPlayback', - 'hasStreamingAudio', - 'hasStreamingVideo', - 'hasVideoEncoder', - 'isDebugger', - 'language', - 'localFileReadDisable', - 'manufacturer', - 'os', - 'pixelAspectRatio', - 'playerType', - 'screenColor', - 'screenDPI', - 'screenResolutionX', - 'screenResolutionY', - 'serverString', - 'version' - ), - 38 => array ( - 'allowDomain', - 'allowInsecureDomain', - 'loadPolicyFile' - ), - 39 => array ( - 'exactSettings', - 'setClipboard', - 'showSettings', - 'useCodepage' - ), - 40 => array ( - 'getStyle', - 'getStyleNames', - 'parseCSS', - 'setStyle', - 'transform' - ), - 41 => array ( - 'autoSize', - 'background', - 'backgroundColor', - 'border', - 'borderColor', - 'bottomScroll', - 'condenseWhite', - 'embedFonts', - 'getFontList', - 'getNewTextFormat', - 'getTextFormat', - 'hscroll', - 'htmlText', - 'html', - 'maxChars', - 'maxhscroll', - 'maxscroll', - 'mouseWheelEnabled', - 'multiline', - 'onScroller', - 'password', - 'removeTextField', - 'replaceSel', - 'replaceText', - 'restrict', - 'scroll', - 'selectable', - 'setNewTextFormat', - 'setTextFormat', - 'styleSheet', - 'tabEnabled', - 'tabIndex', - 'textColor', - 'textHeight', - 'textWidth', - 'text', - 'type', - '_url', - 'variable', - 'wordWrap' - ), - 42 => array ( - 'blockIndent', - 'bold', - 'bullet', - 'font', - 'getTextExtent', - 'indent', - 'italic', - 'leading', - 'leftMargin', - 'rightMargin', - 'size', - 'tabStops', - 'underline' - ), - 43 => array ( - 'findText', - 'getCount', - 'getSelected', - 'getSelectedText', - 'getText', - 'hitTestTextNearPos', - 'setSelectColor', - 'setSelected' - ), - 44 => array ( - 'begin', - 'change', - 'continueTo', - 'fforward', - 'finish', - 'func', - 'FPS', - 'getPosition', - 'isPlaying', - 'looping', - 'obj', - 'onMotionChanged', - 'onMotionFinished', - 'onMotionLooped', - 'onMotionStarted', - 'onMotionResumed', - 'onMotionStopped', - 'prop', - 'rewind', - 'resume', - 'setPosition', - 'time', - 'userSeconds', - 'yoyo' - ), - 45 => array ( - 'attachVideo', - 'deblocking', - 'smoothing' - ), - 46 => array ( - 'addRequestHeader', - 'appendChild', - 'attributes', - 'childNodes', - 'cloneNode', - 'contentType', - 'createElement', - 'createTextNode', - 'docTypeDecl', - 'firstChild', - 'hasChildNodes', - 'ignoreWhite', - 'insertBefore', - 'lastChild', - 'nextSibling', - 'nodeName', - 'nodeType', - 'nodeValue', - 'parentNode', - 'parseXML', - 'previousSibling', - 'removeNode', - 'xmlDecl' - ), - 47 => array ( - 'onClose', - 'onXML' - ), - 48 => array ( - 'add', - 'and', - '_highquality', - 'chr', - 'eq', - 'ge', - 'ifFrameLoaded', - 'int', - 'le', - 'it', - 'mbchr', - 'mblength', - 'mbord', - 'ne', - 'not', - 'or', - 'ord', - 'tellTarget', - 'toggleHighQuality' - ), - 49 => array ( - 'ASSetPropFlags', - 'ASnative', - 'ASconstructor', - 'AsSetupError', - 'FWEndCommand', - 'FWJavascript', - 'MMEndCommand', - 'MMSave', - 'XMLUI' - ), - 50 => array ( - 'System.capabilities' - ), - 51 => array ( - 'System.security' - ), - 52 => array ( - 'TextField.StyleSheet' - ) - ), - 'SYMBOLS' => array( - '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>','=' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true, - 2 => true, - 3 => true, - 4 => true, - 5 => true, - 6 => true, - 7 => true, - 8 => true, - 9 => true, - 10 => true, - 11 => true, - 12 => true, - 13 => true, - 14 => true, - 15 => true, - 16 => true, - 17 => true, - 18 => true, - 19 => true, - 20 => true, - 21 => true, - 22 => true, - 23 => true, - 24 => true, - 25 => true, - 26 => true, - 27 => true, - 28 => true, - 29 => true, - 30 => true, - 31 => true, - 32 => true, - 33 => true, - 34 => true, - 35 => true, - 36 => true, - 37 => true, - 38 => true, - 39 => true, - 40 => true, - 41 => true, - 42 => true, - 43 => true, - 44 => true, - 45 => true, - 46 => true, - 47 => true, - 48 => true, - 49 => true, - 50 => true, - 51 => true, - 52 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff;', - 2 => 'color: #006600;', - 3 => 'color: #000080;', - 4 => 'color: #006600;', - 5 => 'color: #006600;', - 6 => 'color: #006600;', - 7 => 'color: #006600;', - 8 => 'color: #006600;', - 9 => 'color: #006600;', - 10 => 'color: #006600;', - 11 => 'color: #006600;', - 12 => 'color: #006600;', - 13 => 'color: #006600;', - 14 => 'color: #006600;', - 15 => 'color: #006600;', - 16 => 'color: #006600;', - 17 => 'color: #006600;', - 18 => 'color: #006600;', - 19 => 'color: #006600;', - 20 => 'color: #006600;', - 21 => 'color: #006600;', - 22 => 'color: #006600;', - 23 => 'color: #006600;', - 24 => 'color: #006600;', - 25 => 'color: #006600;', - 26 => 'color: #006600;', - 27 => 'color: #006600;', - 28 => 'color: #006600;', - 29 => 'color: #006600;', - 30 => 'color: #006600;', - 31 => 'color: #006600;', - 32 => 'color: #006600;', - 33 => 'color: #006600;', - 34 => 'color: #006600;', - 35 => 'color: #006600;', - 36 => 'color: #006600;', - 37 => 'color: #006600;', - 38 => 'color: #006600;', - 39 => 'color: #006600;', - 40 => 'color: #006600;', - 41 => 'color: #006600;', - 42 => 'color: #006600;', - 43 => 'color: #006600;', - 44 => 'color: #006600;', - 45 => 'color: #006600;', - 46 => 'color: #006600;', - 47 => 'color: #006600;', - 48 => 'color: #CC0000;', - 49 => 'color: #5700d1;', - 50 => 'color: #006600;', - 51 => 'color: #006600;', - 52 => 'color: #CC0000;' - ), - 'COMMENTS' => array( - 1 => 'color: #ff8000; font-style: italic;', - 2 => 'color: #ff8000; font-style: italic;', - 'MULTI' => 'color: #ff8000; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #333333;' - ), - 'STRINGS' => array( - 0 => 'color: #333333; background-color: #eeeeee;' - ), - 'NUMBERS' => array( - 0 => 'color: #c50000;' - ), - - 'SYMBOLS' => array( - 0 => 'color: #000000;' - ), - 'METHODS' => array( - 1 => 'color: #006600;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 2 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 3 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 4 => 'http://wiki.media-box.net/documentation/flash/accessibility/{FNAME}', - 5 => 'http://wiki.media-box.net/documentation/flash/arguments/{FNAME}', - 6 => 'http://wiki.media-box.net/documentation/flash/array/{FNAME}', - 7 => 'http://wiki.media-box.net/documentation/flash/boolean/{FNAME}', - 8 => 'http://wiki.media-box.net/documentation/flash/button/{FNAME}', - 9 => 'http://wiki.media-box.net/documentation/flash/camera/{FNAME}', - 10 => 'http://wiki.media-box.net/documentation/flash/color/{FNAME}', - 11 => 'http://wiki.media-box.net/documentation/flash/contextmenuitem/{FNAME}', - 12 => 'http://wiki.media-box.net/documentation/flash/contextmenu/{FNAME}', - 13 => 'http://wiki.media-box.net/documentation/flash/cookie/{FNAME}', - 14 => 'http://wiki.media-box.net/documentation/flash/customactions/{FNAME}', - 15 => 'http://wiki.media-box.net/documentation/flash/date/{FNAME}', - 16 => 'http://wiki.media-box.net/documentation/flash/error/{FNAME}', - 17 => 'http://wiki.media-box.net/documentation/flash/function/{FNAME}', - 18 => 'http://wiki.media-box.net/documentation/flash/key/{FNAME}', - 19 => 'http://wiki.media-box.net/documentation/flash/loadvars/{FNAME}', - 20 => 'http://wiki.media-box.net/documentation/flash/localconnection/{FNAME}', - 21 => 'http://wiki.media-box.net/documentation/flash/math/{FNAME}', - 22 => 'http://wiki.media-box.net/documentation/flash/microphone/{FNAME}', - 23 => 'http://wiki.media-box.net/documentation/flash/mouse/{FNAME}', - 24 => 'http://wiki.media-box.net/documentation/flash/movieclip/{FNAME}', - 25 => 'http://wiki.media-box.net/documentation/flash/moviecliploader/{FNAME}', - 26 => 'http://wiki.media-box.net/documentation/flash/netstream/{FNAME}', - 27 => 'http://wiki.media-box.net/documentation/flash/number/{FNAME}', - 28 => 'http://wiki.media-box.net/documentation/flash/object/{FNAME}', - 29 => 'http://wiki.media-box.net/documentation/flash/printJob/{FNAME}', - 30 => 'http://wiki.media-box.net/documentation/flash/selection/{FNAME}', - 31 => 'http://wiki.media-box.net/documentation/flash/sharedobject/{FNAME}', - 32 => 'http://wiki.media-box.net/documentation/flash/sound/{FNAME}', - 33 => 'http://wiki.media-box.net/documentation/flash/selection/{FNAME}', - 34 => 'http://wiki.media-box.net/documentation/flash/sharedobject/{FNAME}', - 35 => 'http://wiki.media-box.net/documentation/flash/stage/{FNAME}', - 36 => 'http://wiki.media-box.net/documentation/flash/string/{FNAME}', - 37 => 'http://wiki.media-box.net/documentation/flash/system/capabilities/{FNAME}', - 38 => 'http://wiki.media-box.net/documentation/flash/system/security/{FNAME}', - 39 => 'http://wiki.media-box.net/documentation/flash/system/{FNAME}', - 40 => 'http://wiki.media-box.net/documentation/flash/textfield/stylesheet/{FNAME}', - 41 => 'http://wiki.media-box.net/documentation/flash/textfield/{FNAME}', - 42 => 'http://wiki.media-box.net/documentation/flash/textformat/{FNAME}', - 43 => 'http://wiki.media-box.net/documentation/flash/textsnapshot/{FNAME}', - 44 => 'http://wiki.media-box.net/documentation/flash/tween/{FNAME}', - 45 => 'http://wiki.media-box.net/documentation/flash/video/{FNAME}', - 46 => 'http://wiki.media-box.net/documentation/flash/xml/{FNAME}', - 47 => 'http://wiki.media-box.net/documentation/flash/xmlsocket/{FNAME}', - 48 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 49 => 'http://wiki.media-box.net/documentation/flash/{FNAME}', - 50 => 'http://wiki.media-box.net/documentation/flash/system/capabilities', - 51 => 'http://wiki.media-box.net/documentation/flash/system/security', - 52 => 'http://wiki.media-box.net/documentation/flash/textfield/stylesheet' - ), - '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/cobol.php b/inc/geshi/cobol.php deleted file mode 100644 index b07be48a135efd1e7066e4842a2fc02f870d287c..0000000000000000000000000000000000000000 --- a/inc/geshi/cobol.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php -/************************************************************************************* - * cobol.php - * ---------- - * Author: BenBE (BenBE@omorphia.org) - * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) - * Release Version: 1.0.8.11 - * Date Started: 2007/07/02 - * - * COBOL language file for GeSHi. - * - * CHANGES - * ------- - * - * TODO (updated 2007/07/02) - * ------------------------- - * - ************************************************************************************* - * - * 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' => 'COBOL', - 'COMMENT_SINGLE' => array(), - 'COMMENT_MULTI' => array(), - 'COMMENT_REGEXP' => array(1 => '/^\*.*?$/m'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"', "'"), - 'ESCAPE_CHAR' => '\\', - 'NUMBERS' => - GESHI_NUMBER_INT_BASIC | - GESHI_NUMBER_FLT_NONSCI | - GESHI_NUMBER_FLT_SCI_SHORT | - GESHI_NUMBER_FLT_SCI_ZERO, - 'KEYWORDS' => array( - 1 => array( //Compiler Directives - 'ANSI', 'BLANK', 'NOBLANK', 'CALL-SHARED', 'CANCEL', 'NOCANCEL', - 'CHECK', 'CODE', 'NOCODE', 'COLUMNS', 'COMPACT', 'NOCOMPACT', - 'COMPILE', 'CONSULT', 'NOCONSULT', 'CROSSREF', 'NOCROSSREF', - 'DIAGNOSE-74', 'NODIAGNOSE-74', 'DIAGNOSE-85', 'NODIAGNOSE-85', - 'DIAGNOSEALL', 'NODIAGNOSEALL', 'ENDIF', 'ENDUNIT', 'ENV', - 'ERRORFILE', 'ERRORS', 'FIPS', 'NOFIPS', 'FMAP', 'HEADING', 'HEAP', - 'HIGHPIN', 'HIGHREQUESTERS', 'ICODE', 'NOICODE', 'IF', 'IFNOT', - 'INNERLIST', 'NOINNERLIST', 'INSPECT', 'NOINSPECT', 'LARGEDATA', - 'LD', 'LESS-CODE', 'LIBRARY', 'LINES', 'LIST', 'NOLIST', 'LMAP', - 'NOLMAP', 'MAIN', 'MAP', 'NOMAP', 'NLD', 'NONSTOP', 'NON-SHARED', - 'OPTIMIZE', 'PERFORM-TRACE', 'PORT', 'NOPORT', 'RESETTOG', - 'RUNNABLE', 'RUNNAMED', 'SAVE', 'SAVEABEND', 'NOSAVEABEND', - 'SEARCH', 'NOSEARCH', 'SECTION', 'SETTOG', 'SHARED', 'SHOWCOPY', - 'NOSHOWCOPY', 'SHOWFILE', 'NOSHOWFILE', 'SOURCE', 'SQL', 'NOSQL', - 'SQLMEM', 'SUBSET', 'SUBTYPE', 'SUPPRESS', 'NOSUPPRESS', 'SYMBOLS', - 'NOSYMBOLS', 'SYNTAX', 'TANDEM', 'TRAP2', 'NOTRAP2', 'TRAP2-74', - 'NOTRAP2-74', 'UL', 'WARN', 'NOWARN' - ), - 2 => array( //Statement Keywords - 'ACCEPT', 'ADD', 'TO', 'GIVING', 'CORRESPONDING', 'ALTER', 'CALL', - 'CHECKPOINT', 'CLOSE', 'COMPUTE', 'CONTINUE', 'COPY', - 'DELETE', 'DISPLAY', 'DIVIDE', 'INTO', 'REMAINDER', 'ENTER', - 'COBOL', 'EVALUATE', 'EXIT', 'GO', 'INITIALIZE', - 'TALLYING', 'REPLACING', 'CONVERTING', 'LOCKFILE', 'MERGE', 'MOVE', - 'MULTIPLY', 'OPEN', 'PERFORM', 'TIMES', - 'UNTIL', 'VARYING', 'RETURN', - ), - 3 => array( //Reserved in some contexts - 'ACCESS', 'ADDRESS', 'ADVANCING', 'AFTER', 'ALL', - 'ALPHABET', 'ALPHABETIC', 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER', - 'ALPHANUMERIC', 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE', - 'AND', 'ANY', 'APPROXIMATE', 'AREA', 'AREAS', 'ASCENDING', 'ASSIGN', - 'AT', 'AUTHOR', 'BEFORE', 'BINARY', 'BLOCK', 'BOTTOM', 'BY', - 'CD', 'CF', 'CH', 'CHARACTER', 'CHARACTERS', - 'CHARACTER-SET', 'CLASS', 'CLOCK-UNITS', - 'CODE-SET', 'COLLATING', 'COLUMN', 'COMMA', - 'COMMON', 'COMMUNICATION', 'COMP', 'COMP-3', 'COMP-5', - 'COMPUTATIONAL', 'COMPUTATIONAL-3', 'COMPUTATIONAL-5', - 'CONFIGURATION', 'CONTAINS', 'CONTENT', 'CONTROL', - 'CONTROLS', 'CORR', 'COUNT', - 'CURRENCY', 'DATA', 'DATE', 'DATE-COMPILED', 'DATE-WRITTEN', 'DAY', - 'DAY-OF-WEEK', 'DE', 'DEBUG-CONTENTS', 'DEBUG-ITEM', 'DEBUG-LINE', - 'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL-POINT', - 'DECLARATIVES', 'DEBUG-NAME', 'DEBUG-SUB-1', 'DELIMITED', - 'DELIMITER', 'DEPENDING', 'DESCENDING', 'DESTINATION', 'DETAIL', - 'DISABLE', 'DIVISION', 'DOWN', 'DUPLICATES', - 'DYNAMIC', 'EGI', 'ELSE', 'EMI', 'ENABLE', 'END', 'END-ADD', - 'END-COMPUTE', 'END-DELETE', 'END-DIVIDE', 'END-EVALUATE', 'END-IF', - 'END-MULTIPLY', 'END-OF-PAGE', 'END-PERFORM', 'END-READ', - 'END-RECEIVE', 'END-RETURN', 'END-REWRITE', 'END-SEARCH', - 'END-START', 'END-STRING', 'END-SUBTRACT', 'END-UNSTRING', - 'END-WRITE', 'EOP', 'EQUAL', 'ERROR', 'ESI', - 'EVERY', 'EXCEPTION', 'EXCLUSIVE', 'EXTEND', - 'EXTENDED-STORAGE', 'EXTERNAL', 'FALSE', 'FD', 'FILE', - 'FILE-CONTROL', 'FILLER', 'FINAL', 'FIRST', 'FOOTING', 'FOR', - 'FROM', 'FUNCTION', 'GENERATE', 'GENERIC', 'GLOBAL', - 'GREATER', 'GROUP', 'GUARDIAN-ERR', 'HIGH-VALUE', - 'HIGH-VALUES', 'I-O', 'I-O-CONTROL', 'IDENTIFICATION', 'IN', - 'INDEX', 'INDEXED', 'INDICATE', 'INITIAL', 'INITIATE', - 'INPUT', 'INPUT-OUTPUT', 'INSTALLATION', - 'INVALID', 'IS', 'JUST', 'JUSTIFIED', 'KEY', 'LABEL', 'LAST', - 'LEADING', 'LEFT', 'LESS', 'LIMIT', 'LIMITS', 'LINAGE', - 'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINKAGE', 'LOCK', - 'LOW-VALUE', 'LOW-VALUES', 'MEMORY', 'MESSAGE', - 'MODE', 'MODULES', 'MULTIPLE', 'NATIVE', - 'NEGATIVE', 'NEXT', 'NO', 'NOT', 'NULL', 'NULLS', 'NUMBER', - 'NUMERIC', 'NUMERIC-EDITED', 'OBJECT-COMPUTER', 'OCCURS', 'OF', - 'OFF', 'OMITTED', 'ON', 'OPTIONAL', 'OR', 'ORDER', - 'ORGANIZATION', 'OTHER', 'OUTPUT', 'OVERFLOW', 'PACKED-DECIMAL', - 'PADDING', 'PAGE', 'PAGE-COUNTER', 'PF', 'PH', 'PIC', - 'PICTURE', 'PLUS', 'POINTER', 'POSITION', 'POSITIVE', 'PRINTING', - 'PROCEDURE', 'PROCEDURES', 'PROCEED', 'PROGRAM', 'PROGRAM-ID', - 'PROGRAM-STATUS', 'PROGRAM-STATUS-1', 'PROGRAM-STATUS-2', 'PROMPT', - 'PROTECTED', 'PURGE', 'QUEUE', 'QUOTE', 'QUOTES', 'RD', - 'RECEIVE', 'RECEIVE-CONTROL', 'RECORD', 'RECORDS', - 'REDEFINES', 'REEL', 'REFERENCE', 'REFERENCES', 'RELATIVE', - 'REMOVAL', 'RENAMES', 'REPLACE', - 'REPLY', 'REPORT', 'REPORTING', 'REPORTS', 'RERUN', - 'RESERVE', 'RESET', 'REVERSED', 'REWIND', 'REWRITE', 'RF', - 'RH', 'RIGHT', 'ROUNDED', 'RUN', 'SAME', 'SD', - 'SECURITY', 'SEGMENT', 'SEGMENT-LIMIT', 'SELECT', 'SEND', - 'SENTENCE', 'SEPARATE', 'SEQUENCE', 'SEQUENTIAL', 'SET', - 'SIGN', 'SIZE', 'SORT', 'SORT-MERGE', 'SOURCE-COMPUTER', - 'SPACE', 'SPACES', 'SPECIAL-NAMES', 'STANDARD', 'STANDARD-1', - 'STANDARD-2', 'START', 'STARTBACKUP', 'STATUS', 'STOP', 'STRING', - 'SUB-QUEUE-1', 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBTRACT', - 'SYMBOLIC', 'SYNC', 'SYNCDEPTH', 'SYNCHRONIZED', - 'TABLE', 'TAL', 'TAPE', 'TERMINAL', 'TERMINATE', 'TEST', - 'TEXT', 'THAN', 'THEN', 'THROUGH', 'THRU', 'TIME', - 'TOP', 'TRAILING', 'TRUE', 'TYPE', 'UNIT', 'UNLOCK', 'UNLOCKFILE', - 'UNLOCKRECORD', 'UNSTRING', 'UP', 'UPON', 'USAGE', 'USE', - 'USING', 'VALUE', 'VALUES', 'WHEN', 'WITH', 'WORDS', - 'WORKING-STORAGE', 'WRITE', 'ZERO', 'ZEROES' - ), - 4 => array( //Standard functions - 'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'CHAR', 'COS', 'CURRENT-DATE', - 'DATE-OF-INTEGER', 'DAY-OF-INTEGER', 'FACTORIAL', 'INTEGER', - 'INTEGER-OF-DATE', 'INTEGER-OF-DAY', 'INTEGER-PART', 'LENGTH', - 'LOG', 'LOG10', 'LOWER-CASE', 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE', - 'MIN', 'MOD', 'NUMVAL', 'NUMVAL-C', 'ORD', 'ORD-MAX', 'ORD-MIN', - 'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', 'SIN', 'SQRT', - 'STANDARD-DEVIATION', 'SUM', 'TAN', 'UPPER-CASE', 'VARIANCE', - 'WHEN-COMPILED' - ), - 5 => array( //Privileged Built-in Functions - '#IN', '#OUT', '#TERM', '#TEMP', '#DYNAMIC', 'COBOL85^ARMTRAP', - 'COBOL85^COMPLETION', 'COBOL_COMPLETION_', 'COBOL_CONTROL_', - 'COBOL_GETENV_', 'COBOL_PUTENV_', 'COBOL85^RETURN^SORT^ERRORS', - 'COBOL_RETURN_SORT_ERRORS_', 'COBOL85^REWIND^SEQUENTIAL', - 'COBOL_REWIND_SEQUENTIAL_', 'COBOL85^SET^SORT^PARAM^TEXT', - 'COBOL_SET_SORT_PARAM_TEXT_', 'COBOL85^SET^SORT^PARAM^VALUE', - 'COBOL_SET_SORT_PARAM_VALUE_', 'COBOL_SET_MAX_RECORD_', - 'COBOL_SETMODE_', 'COBOL85^SPECIAL^OPEN', 'COBOL_SPECIAL_OPEN_', - 'COBOLASSIGN', 'COBOL_ASSIGN_', 'COBOLFILEINFO', 'COBOL_FILE_INFO_', - 'COBOLSPOOLOPEN', 'CREATEPROCESS', 'ALTERPARAMTEXT', - 'CHECKLOGICALNAME', 'CHECKMESSAGE', 'DELETEASSIGN', 'DELETEPARAM', - 'DELETESTARTUP', 'GETASSIGNTEXT', 'GETASSIGNVALUE', 'GETBACKUPCPU', - 'GETPARAMTEXT', 'GETSTARTUPTEXT', 'PUTASSIGNTEXT', 'PUTASSIGNVALUE', - 'PUTPARAMTEXT', 'PUTSTARTUPTEXT' - ) - ), - 'SYMBOLS' => array( - //Avoid having - in identifiers marked as symbols - ' + ', ' - ', ' * ', ' / ', ' ** ', - '.', ',', - '=', - '(', ')', '[', ']' - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => false, - 2 => false, - 3 => false, - 4 => false, - 5 => false - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #000080; font-weight: bold;', - 2 => 'color: #000000; font-weight: bold;', - 3 => 'color: #008000; font-weight: bold;', - 4 => 'color: #000080;', - 5 => 'color: #008000;', - ), - 'COMMENTS' => array( - 1 => 'color: #a0a0a0; font-style: italic;', - 'MULTI' => 'color: #a0a0a0; font-style: italic;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #339933;' - ), - 'STRINGS' => array( - 0 => 'color: #ff0000;' - ), - 'NUMBERS' => array( - 0 => 'color: #993399;' - ), - 'METHODS' => array( - 1 => 'color: #202020;' - ), - 'SYMBOLS' => array( - 0 => 'color: #000066;' - ), - 'REGEXPS' => array( - ), - 'SCRIPT' => array( - ) - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => '' - ), - 'OOLANG' => false, - 'OBJECT_SPLITTERS' => array( - ), - 'REGEXPS' => array( - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - ), - 'HIGHLIGHT_STRICT_BLOCK' => array( - ), - 'TAB_WIDTH' => 4 - ); - -?> diff --git a/inc/geshi/parigp.php b/inc/geshi/parigp.php deleted file mode 100644 index c9c73095bdcf0c3adc7d10aa2536e9b04d593519..0000000000000000000000000000000000000000 --- a/inc/geshi/parigp.php +++ /dev/null @@ -1,277 +0,0 @@ -<?php -/************************************************************************************* - * parigp.php - * -------- - * Author: Charles R Greathouse IV (charles@crg4.com) - * Copyright: 2011 Charles R Greathouse IV (http://math.crg4.com/) - * Release Version: 1.0.8.11 - * Date Started: 2011/05/11 - * - * PARI/GP language file for GeSHi. - * - * CHANGES - * ------- - * 2011/07/09 (1.0.8.11) - * - First Release - * - * TODO (updated 2011/07/09) - * ------------------------- - * - * - ************************************************************************************* - * - * 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' => 'PARI/GP', - 'COMMENT_SINGLE' => array(1 => '\\\\'), - 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, - 'QUOTEMARKS' => array('"'), - 'ESCAPE_CHAR' => '\\', - 'NUMBERS' => array( - # Integers - 1 => GESHI_NUMBER_INT_BASIC, - # Reals - 2 => GESHI_NUMBER_FLT_SCI_ZERO - ), - 'KEYWORDS' => array( - 1 => array( - 'addprimes','bestappr','bezout','bezoutres','bigomega','binomial', - 'chinese','content','contfrac','contfracpnqn','core','coredisc', - 'dirdiv','direuler','dirmul','divisors','eulerphi','factor', - 'factorback','factorcantor','factorff','factorial','factorint', - 'factormod','ffgen','ffinit','fflog','fforder','ffprimroot', - 'fibonacci','gcd','hilbert','isfundamental','ispower','isprime', - 'ispseudoprime','issquare','issquarefree','kronecker','lcm', - 'moebius','nextprime','numbpart','numdiv','omega','partitions', - 'polrootsff','precprime','prime','primepi','primes','qfbclassno', - 'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw', - 'qfbprimeform','qfbred','qfbsolve','quadclassunit','quaddisc', - 'quadgen','quadhilbert','quadpoly','quadray','quadregulator', - 'quadunit','removeprimes','sigma','sqrtint','stirling', - 'sumdedekind','zncoppersmith','znlog','znorder','znprimroot', - 'znstar','Col','List','Mat','Mod','Pol','Polrev','Qfb','Ser','Set', - 'Str','Strchr','Strexpand','Strtex','Vec','Vecrev','Vecsmall', - 'binary','bitand','bitneg','bitnegimply','bitor','bittest','bitxor', - 'ceil','centerlift','component','conj','conjvec','denominator', - 'floor','frac','imag','length','lift','norm','norml2','numerator', - 'numtoperm','padicprec','permtonum','precision','random','real', - 'round','simplify','sizebyte','sizedigit','truncate','valuation', - 'variable','ellL1','elladd','ellak','ellan','ellanalyticrank', - 'ellap','ellbil','ellchangecurve','ellchangepoint','ellconvertname', - 'elldivpol','elleisnum','elleta','ellgenerators','ellglobalred', - 'ellgroup','ellheight','ellheightmatrix','ellidentify','ellinit', - 'ellisoncurve','ellj','elllocalred','elllog','elllseries', - 'ellminimalmodel','ellmodulareqn','ellorder','ellordinate', - 'ellpointtoz','ellpow','ellrootno','ellsearch','ellsigma','ellsub', - 'elltaniyama','elltatepairing','elltors','ellweilpairing','ellwp', - 'ellzeta','ellztopoint','bnfcertify','bnfcompress', - 'bnfdecodemodule','bnfinit','bnfisintnorm','bnfisnorm', - 'bnfisprincipal','bnfissunit','bnfisunit','bnfnarrow','bnfsignunit', - 'bnfsunit','bnrL1','bnrclassno','bnrclassnolist','bnrconductor', - 'bnrconductorofchar','bnrdisc','bnrdisclist','bnrinit', - 'bnrisconductor','bnrisprincipal','bnrrootnumber','bnrstark', - 'dirzetak','factornf','galoisexport','galoisfixedfield', - 'galoisgetpol','galoisidentify','galoisinit','galoisisabelian', - 'galoisisnormal','galoispermtopol','galoissubcyclo', - 'galoissubfields','galoissubgroups','idealadd','idealaddtoone', - 'idealappr','idealchinese','idealcoprime','idealdiv','idealfactor', - 'idealfactorback','idealfrobenius','idealhnf','idealintersect', - 'idealinv','ideallist','ideallistarch','ideallog','idealmin', - 'idealmul','idealnorm','idealpow','idealprimedec','idealramgroups', - 'idealred','idealstar','idealtwoelt','idealval','matalgtobasis', - 'matbasistoalg','modreverse','newtonpoly','nfalgtobasis','nfbasis', - 'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv', - 'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul', - 'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr', - 'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor', - 'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj', - 'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl', - 'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots', - 'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','polcompositum', - 'polgalois','polred','polredabs','polredord','poltschirnhaus', - 'rnfalgtobasis','rnfbasis','rnfbasistoalg','rnfcharpoly', - 'rnfconductor','rnfdedekind','rnfdet','rnfdisc','rnfeltabstorel', - 'rnfeltdown','rnfeltreltoabs','rnfeltup','rnfequation', - 'rnfhnfbasis','rnfidealabstorel','rnfidealdown','rnfidealhnf', - 'rnfidealmul','rnfidealnormabs','rnfidealnormrel', - 'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit', - 'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer', - 'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs', - 'rnfpseudobasis','rnfsteinitz','subgrouplist','zetak','zetakinit', - 'plot','plotbox','plotclip','plotcolor','plotcopy','plotcursor', - 'plotdraw','ploth','plothraw','plothsizes','plotinit','plotkill', - 'plotlines','plotlinetype','plotmove','plotpoints','plotpointsize', - 'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline', - 'plotrmove','plotrpoint','plotscale','plotstring','psdraw', - 'psploth','psplothraw','O','deriv','diffop','eval','factorpadic', - 'intformal','padicappr','padicfields','polchebyshev','polcoeff', - 'polcyclo','poldegree','poldisc','poldiscreduced','polhensellift', - 'polhermite','polinterpolate','polisirreducible','pollead', - 'pollegendre','polrecip','polresultant','polroots','polrootsmod', - 'polrootspadic','polsturm','polsubcyclo','polsylvestermatrix', - 'polsym','poltchebi','polzagier','serconvol','serlaplace', - 'serreverse','subst','substpol','substvec','taylor','thue', - 'thueinit','break','for','fordiv','forell','forprime','forstep', - 'forsubgroup','forvec','if','next','return','until','while', - 'Strprintf','addhelp','alarm','alias','allocatemem','apply', - 'default','error','extern','externstr','getheap','getrand', - 'getstack','gettime','global','input','install','kill','print1', - 'print','printf','printtex','quit','read','readvec','select', - 'setrand','system','trap','type','version','warning','whatnow', - 'write1','write','writebin','writetex','divrem','lex','max','min', - 'shift','shiftmul','sign','vecmax','vecmin','derivnum','intcirc', - 'intfouriercos','intfourierexp','intfouriersin','intfuncinit', - 'intlaplaceinv','intmellininv','intmellininvshort','intnum', - 'intnuminit','intnuminitgen','intnumromb','intnumstep','prod', - 'prodeuler','prodinf','solve','sum','sumalt','sumdiv','suminf', - 'sumnum','sumnumalt','sumnuminit','sumpos','Euler','I','Pi','abs', - 'acos','acosh','agm','arg','asin','asinh','atan','atanh','bernfrac', - 'bernreal','bernvec','besselh1','besselh2','besseli','besselj', - 'besseljh','besselk','besseln','cos','cosh','cotan','dilog','eint1', - 'erfc','eta','exp','gamma','gammah','hyperu','incgam','incgamc', - 'lngamma','log','polylog','psi','sin','sinh','sqr','sqrt','sqrtn', - 'tan','tanh','teichmuller','theta','thetanullk','weber','zeta', - 'algdep','charpoly','concat','lindep','listcreate','listinsert', - 'listkill','listpop','listput','listsort','matadjoint', - 'matcompanion','matdet','matdetint','matdiagonal','mateigen', - 'matfrobenius','mathess','mathilbert','mathnf','mathnfmod', - 'mathnfmodid','matid','matimage','matimagecompl','matindexrank', - 'matintersect','matinverseimage','matisdiagonal','matker', - 'matkerint','matmuldiagonal','matmultodiagonal','matpascal', - 'matrank','matrix','matrixqz','matsize','matsnf','matsolve', - 'matsolvemod','matsupplement','mattranspose','minpoly','qfgaussred', - 'qfjacobi','qflll','qflllgram','qfminim','qfperfection','qfrep', - 'qfsign','setintersect','setisset','setminus','setsearch','cmp', - 'setunion','trace','vecextract','vecsort','vector','vectorsmall', - 'vectorv','ellheegner' - ), - - 2 => array( - 'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol', - 'vecsmall','vec','list','str','genstr','gen','typ' - ), - - 3 => array( - 'TeXstyle','breakloop','colors','compatible','datadir','debug', - 'debugfiles','debugmem','echo','factor_add_primes','factor_proven', - 'format','graphcolormap','graphcolors','help','histfile','histsize', - 'lines','linewrap',/*'log',*/'logfile','new_galois_format','output', - 'parisize','path','prettyprinter','primelimit','prompt_cont', - 'prompt','psfile','readline','realprecision','recover','secure', - 'seriesprecision',/*'simplify',*/'strictmatch','timer' - ), - - 4 => array( - 'alarmer','archer','errpile','gdiver','impl','syntaxer','invmoder', - 'overflower','talker','typeer','user' - ) - ), - 'SYMBOLS' => array( - 1 => array( - '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\'' - ) - ), - 'CASE_SENSITIVE' => array( - GESHI_COMMENTS => false, - 1 => true, - 2 => true, - 3 => true, - 4 => true - ), - 'STYLES' => array( - 'KEYWORDS' => array( - 1 => 'color: #0000ff;', - 2 => 'color: #e07022;', - 3 => 'color: #00d2d2;', - 4 => 'color: #00d2d2;' - ), - 'COMMENTS' => array( - 1 => 'color: #008000;', - 'MULTI' => 'color: #008000;' - ), - 'ESCAPE_CHAR' => array( - 0 => 'color: #111111; font-weight: bold;' - ), - 'BRACKETS' => array( - 0 => 'color: #002222;' - ), - 'STRINGS' => array( - 0 => 'color: #800080;' - ), - 'NUMBERS' => array( - 0 => 'color: #666666;', - 1 => 'color: #666666;', - 2 => 'color: #666666;' - ), - 'METHODS' => array( - 0 => 'color: #004000;' - ), - 'SYMBOLS' => array( - 1 => 'color: #339933;' - ), - 'REGEXPS' => array( - 0 => 'color: #e07022', # Should be the same as keyword group 2 - 1 => 'color: #555555' - ), - 'SCRIPT' => array() - ), - 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '' - ), - 'OOLANG' => true, - 'OBJECT_SPLITTERS' => array( - 1 => '.' - ), - 'REGEXPS' => array( - 0 => array( # types marked on variables - GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE))"', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '"', - GESHI_AFTER => '"' - ), - 1 => array( # literal variables - GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)', - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ) - ), - 'STRICT_MODE_APPLIES' => GESHI_NEVER, - 'SCRIPT_DELIMITERS' => array( - 2 => array( - '[a-zA-Z][a-zA-Z0-9_]*:' => '' - ), - 3 => array( - 'default(' => '' - ), - 4 => array( - 'trap(' => '' - ), - ), - 'HIGHLIGHT_STRICT_BLOCK' => array() -); - -?> diff --git a/inc/html.php b/inc/html.php index 4bf784502cbfc647f9882f2a0f243f46e52ac0d5..c3cc66aa9d5fc3aad69251a17b2f38dc52e61d86 100644 --- a/inc/html.php +++ b/inc/html.php @@ -74,7 +74,7 @@ function html_login(){ function html_denied() { print p_locale_xhtml('denied'); - if(!$_SERVER['REMOTE_USER']){ + if(empty($_SERVER['REMOTE_USER'])){ html_login(); } } @@ -183,7 +183,7 @@ function html_topbtn(){ * @param bool|string $label label text, false: lookup btn_$name in localization * @return string */ -function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false){ +function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false){ global $conf; global $lang; @@ -221,13 +221,14 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false $tip = htmlspecialchars($label); } - $ret .= '<input type="submit" value="'.hsc($label).'" class="button" '; + $ret .= '<button type="submit" '; if($akey){ $tip .= ' ['.strtoupper($akey).']'; $ret .= 'accesskey="'.$akey.'" '; } - $ret .= 'title="'.$tip.'" '; - $ret .= '/>'; + $ret .= 'title="'.$tip.'">'; + $ret .= hsc($label); + $ret .= '</button>'; $ret .= '</div></form>'; return $ret; @@ -776,10 +777,16 @@ function html_recent($first=0, $show_changes='both'){ $href = ''; if (!empty($recent['media'])) { - $diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && file_exists(mediaFN($recent['id']))); + $changelog = new MediaChangeLog($recent['id']); + $revs = $changelog->getRevisions(0, 1); + $diff = (count($revs) && file_exists(mediaFN($recent['id']))); if ($diff) { - $href = media_managerURL(array('tab_details' => 'history', - 'mediado' => 'diff', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&'); + $href = media_managerURL(array( + 'tab_details' => 'history', + 'mediado' => 'diff', + 'image' => $recent['id'], + 'ns' => getNS($recent['id']) + ), '&'); } } else { $href = wl($recent['id'],"do=diff", false, '&'); @@ -850,26 +857,28 @@ function html_recent($first=0, $show_changes='both'){ $first -= $conf['recent']; if ($first < 0) $first = 0; $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev'))); - $form->addElement(form_makeTag('input', array( + $form->addElement(form_makeOpenTag('button', array( 'type' => 'submit', 'name' => 'first['.$first.']', - 'value' => $lang['btn_newer'], 'accesskey' => 'n', 'title' => $lang['btn_newer'].' [N]', 'class' => 'button show' ))); + $form->addElement($lang['btn_newer']); + $form->addElement(form_makeCloseTag('button')); $form->addElement(form_makeCloseTag('div')); } if ($hasNext) { $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next'))); - $form->addElement(form_makeTag('input', array( + $form->addElement(form_makeOpenTag('button', array( 'type' => 'submit', 'name' => 'first['.$last.']', - 'value' => $lang['btn_older'], 'accesskey' => 'p', 'title' => $lang['btn_older'].' [P]', 'class' => 'button show' ))); + $form->addElement($lang['btn_older']); + $form->addElement(form_makeCloseTag('button')); $form->addElement(form_makeCloseTag('div')); } $form->addElement(form_makeCloseTag('div')); @@ -887,10 +896,9 @@ function html_index($ns){ global $conf; global $ID; $ns = cleanID($ns); - #fixme use appropriate function if(empty($ns)){ - $ns = dirname(str_replace(':','/',$ID)); - if($ns == '.') $ns =''; + $ns = getNS($ID); + if($ns === false) $ns =''; } $ns = utf8_encodeFN(str_replace(':','/',$ns)); @@ -949,13 +957,14 @@ function html_list_index($item){ */ function html_li_index($item){ global $INFO; + global $ACT; $class = ''; $id = ''; if($item['type'] == "f"){ // scroll to the current item - if($item['id'] == $INFO['id']) { + if($item['id'] == $INFO['id'] && $ACT == 'index') { $id = ' id="scroll__here"'; $class = ' bounce'; } @@ -999,7 +1008,7 @@ function html_li_default($item){ * @param callable $func callback to print an list item * @param callable $lifunc callback to the opening li tag * @param bool $forcewrapper Trigger building a wrapper ul if the first level is - 0 (we have a root object) or 1 (just the root content) + * 0 (we have a root object) or 1 (just the root content) * @return string html of an unordered list */ function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){ @@ -1403,7 +1412,13 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) { // last timestamp is not in changelog, retrieve timestamp from metadata // note: when page is removed, the metadata timestamp is zero - $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; + if(!$r_rev) { + if(isset($INFO['meta']['last_change']['date'])) { + $r_rev = $INFO['meta']['last_change']['date']; + } else { + $r_rev = 0; + } + } //retrieve revisions with additional info list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev); @@ -2064,6 +2079,13 @@ function html_admin(){ $menu['config']['prompt'].'</a></div></li>'); } unset($menu['config']); + + if($menu['styling']){ + ptln(' <li class="admin_styling"><div class="li">'. + '<a href="'.wl($ID, array('do' => 'admin','page' => 'styling')).'">'. + $menu['styling']['prompt'].'</a></div></li>'); + } + unset($menu['styling']); } ptln('</ul>'); @@ -2092,7 +2114,17 @@ function html_admin(){ // print the rest as sorted list if(count($menu)){ - usort($menu, 'p_sort_modes'); + // sort by name, then sort + usort( + $menu, + function ($a, $b) { + $strcmp = strcasecmp($a['prompt'], $b['prompt']); + if($strcmp != 0) return $strcmp; + if($a['sort'] == $b['sort']) return 0; + return ($a['sort'] < $b['sort']) ? -1 : 1; + } + ); + // output the menu ptln('<div class="clearer"></div>'); print p_locale_xhtml('adminplugins'); diff --git a/inc/httputils.php b/inc/httputils.php index ac79aa1768cb4358b2558401ec8625f8fd379f1d..c365f4f5ca8bc8d2bf1a892dadb0066eb0ef1caa 100644 --- a/inc/httputils.php +++ b/inc/httputils.php @@ -197,6 +197,8 @@ function http_rangeRequest($fh,$size,$mime){ * @return bool */ function http_gzip_valid($uncompressed_file) { + if(!DOKU_HAS_GZIP) return false; + $gzip = $uncompressed_file.'.gz'; if (filemtime($gzip) < filemtime($uncompressed_file)) { // filemtime returns false (0) if file doesn't exist return copy($uncompressed_file, 'compress.zlib://'.$gzip); @@ -252,10 +254,10 @@ function http_cached_finish($file, $content) { // save cache file io_saveFile($file, $content); - if(function_exists('gzopen')) io_saveFile("$file.gz",$content); + if(DOKU_HAS_GZIP) io_saveFile("$file.gz",$content); // finally send output - if ($conf['gzip_output']) { + if ($conf['gzip_output'] && DOKU_HAS_GZIP) { header('Vary: Accept-Encoding'); header('Content-Encoding: gzip'); print gzencode($content,9,FORCE_GZIP); diff --git a/inc/init.php b/inc/init.php index bc9ab6d70f17edbe5a1719676b17057d21dcf58d..c7a17948950d87cf02291d9905efa13d6ce7242e 100644 --- a/inc/init.php +++ b/inc/init.php @@ -191,13 +191,16 @@ global $plugin_controller_class, $plugin_controller; if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; // load libraries +require_once(DOKU_INC.'vendor/autoload.php'); require_once(DOKU_INC.'inc/load.php'); // disable gzip if not available -if($conf['compression'] == 'bz2' && !function_exists('bzopen')){ +define('DOKU_HAS_BZIP', function_exists('bzopen')); +define('DOKU_HAS_GZIP', function_exists('gzopen')); +if($conf['compression'] == 'bz2' && !DOKU_HAS_BZIP) { $conf['compression'] = 'gz'; } -if($conf['compression'] == 'gz' && !function_exists('gzopen')){ +if($conf['compression'] == 'gz' && !DOKU_HAS_GZIP) { $conf['compression'] = 0; } diff --git a/inc/io.php b/inc/io.php index 0636a4b62503c76a7fd76b15f458acdcdc5e1f7d..066030c89a5dc339bb62861df7f23cab17c7df5f 100644 --- a/inc/io.php +++ b/inc/io.php @@ -107,13 +107,17 @@ function io_readFile($file,$clean=true){ $ret = ''; if(file_exists($file)){ if(substr($file,-3) == '.gz'){ - $ret = join('',gzfile($file)); + if(!DOKU_HAS_GZIP) return false; + $ret = gzfile($file); + if(is_array($ret)) $ret = join('', $ret); }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return false; $ret = bzfile($file); }else{ $ret = file_get_contents($file); } } + if($ret === null) return false; if($ret !== false && $clean){ return cleanText($ret); }else{ @@ -127,22 +131,36 @@ function io_readFile($file,$clean=true){ * @author Andreas Gohr <andi@splitbrain.org> * * @param string $file filename - * @return string|bool content or false on error + * @param bool $array return array of lines + * @return string|array|bool content or false on error */ -function bzfile($file){ +function bzfile($file, $array=false) { $bz = bzopen($file,"r"); if($bz === false) return false; + if($array) $lines = array(); $str = ''; - while (!feof($bz)){ + while (!feof($bz)) { //8192 seems to be the maximum buffersize? $buffer = bzread($bz,8192); if(($buffer === false) || (bzerrno($bz) !== 0)) { return false; } $str = $str . $buffer; + if($array) { + $pos = strpos($str, "\n"); + while($pos !== false) { + $lines[] = substr($str, 0, $pos+1); + $str = substr($str, $pos+1); + $pos = strpos($str, "\n"); + } + } } bzclose($bz); + if($array) { + if($str !== '') $lines[] = $str; + return $lines; + } return $str; } @@ -191,13 +209,7 @@ function _io_writeWikiPage_action($data) { } /** - * Saves $content to $file. - * - * If the third parameter is set to true the given content - * will be appended. - * - * Uses gzip if extension is .gz - * and bz2 if extension is .bz2 + * Internal function to save contents to a file. * * @author Andreas Gohr <andi@splitbrain.org> * @@ -206,106 +218,142 @@ function _io_writeWikiPage_action($data) { * @param bool $append * @return bool true on success, otherwise false */ -function io_saveFile($file,$content,$append=false){ +function _io_saveFile($file, $content, $append) { global $conf; $mode = ($append) ? 'ab' : 'wb'; - $fileexists = file_exists($file); - io_makeFileDir($file); - io_lock($file); + if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; $fh = @gzopen($file,$mode.'9'); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - return false; - } + if(!$fh) return false; gzwrite($fh, $content); gzclose($fh); }else if(substr($file,-4) == '.bz2'){ - $fh = @bzopen($file,$mode{0}); - if(!$fh){ - msg("Writing $file failed", -1); - io_unlock($file); - return false; + if(!DOKU_HAS_BZIP) return false; + if($append) { + $bzcontent = bzfile($file); + if($bzcontent === false) return false; + $content = $bzcontent.$content; } + $fh = @bzopen($file,'w'); + if(!$fh) return false; bzwrite($fh, $content); bzclose($fh); }else{ $fh = @fopen($file,$mode); - if(!$fh){ - msg("Writing $file failed",-1); - io_unlock($file); - return false; - } + if(!$fh) return false; fwrite($fh, $content); fclose($fh); } if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']); - io_unlock($file); return true; } /** - * Delete exact linematch for $badline from $file. + * Saves $content to $file. * - * Be sure to include the trailing newline in $badline + * If the third parameter is set to true the given content + * will be appended. * * Uses gzip if extension is .gz + * and bz2 if extension is .bz2 * - * 2005-10-14 : added regex option -- Christopher Smith <chris@jalakai.co.uk> + * @author Andreas Gohr <andi@splitbrain.org> * - * @author Steven Danz <steven-danz@kc.rr.com> + * @param string $file filename path to file + * @param string $content + * @param bool $append + * @return bool true on success, otherwise false + */ +function io_saveFile($file, $content, $append=false) { + io_makeFileDir($file); + io_lock($file); + if(!_io_saveFile($file, $content, $append)) { + msg("Writing $file failed",-1); + io_unlock($file); + return false; + } + io_unlock($file); + return true; +} + +/** + * Replace one or more occurrences of a line in a file. * - * @param string $file filename - * @param string $badline exact linematch to remove - * @param bool $regex use regexp? + * The default, when $maxlines is 0 is to delete all matching lines then append a single line. + * A regex that matches any part of the line will remove the entire line in this mode. + * Captures in $newline are not available. + * + * Otherwise each line is matched and replaced individually, up to the first $maxlines lines + * or all lines if $maxlines is -1. If $regex is true then captures can be used in $newline. + * + * Be sure to include the trailing newline in $oldline when replacing entire lines. + * + * Uses gzip if extension is .gz + * and bz2 if extension is .bz2 + * + * @author Steven Danz <steven-danz@kc.rr.com> + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Patrick Brown <ptbrown@whoopdedo.org> + * + * @param string $file filename + * @param string $oldline exact linematch to remove + * @param string $newline new line to insert + * @param bool $regex use regexp? + * @param int $maxlines number of occurrences of the line to replace * @return bool true on success */ -function io_deleteFromFile($file,$badline,$regex=false){ +function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) { + if ((string)$oldline === '') { + trigger_error('$oldline parameter cannot be empty in io_replaceInFile()', E_USER_WARNING); + return false; + } + if (!file_exists($file)) return true; io_lock($file); // load into array if(substr($file,-3) == '.gz'){ + if(!DOKU_HAS_GZIP) return false; $lines = gzfile($file); + }else if(substr($file,-4) == '.bz2'){ + if(!DOKU_HAS_BZIP) return false; + $lines = bzfile($file, true); }else{ $lines = file($file); } - // remove all matching lines - if ($regex) { - $lines = preg_grep($badline,$lines,PREG_GREP_INVERT); - } else { - $pos = array_search($badline,$lines); //return null or false if not found - while(is_int($pos)){ - unset($lines[$pos]); - $pos = array_search($badline,$lines); + // make non-regexes into regexes + $pattern = $regex ? $oldline : '/^'.preg_quote($oldline,'/').'$/'; + $replace = $regex ? $newline : addcslashes($newline, '\$'); + + // remove matching lines + if ($maxlines > 0) { + $count = 0; + $matched = 0; + while (($count < $maxlines) && (list($i,$line) = each($lines))) { + // $matched will be set to 0|1 depending on whether pattern is matched and line replaced + $lines[$i] = preg_replace($pattern, $replace, $line, -1, $matched); + if ($matched) $count++; + } + } else if ($maxlines == 0) { + $lines = preg_grep($pattern, $lines, PREG_GREP_INVERT); + + if ((string)$newline !== ''){ + $lines[] = $newline; } + } else { + $lines = preg_replace($pattern, $replace, $lines); } if(count($lines)){ - $content = join('',$lines); - if(substr($file,-3) == '.gz'){ - $fh = @gzopen($file,'wb9'); - if(!$fh){ - msg("Removing content from $file failed",-1); - io_unlock($file); - return false; - } - gzwrite($fh, $content); - gzclose($fh); - }else{ - $fh = @fopen($file,'wb'); - if(!$fh){ - msg("Removing content from $file failed",-1); - io_unlock($file); - return false; - } - fwrite($fh, $content); - fclose($fh); + if(!_io_saveFile($file, join('',$lines), false)) { + msg("Removing content from $file failed",-1); + io_unlock($file); + return false; } }else{ @unlink($file); @@ -315,6 +363,22 @@ function io_deleteFromFile($file,$badline,$regex=false){ return true; } +/** + * Delete lines that match $badline from $file. + * + * Be sure to include the trailing newline in $badline + * + * @author Patrick Brown <ptbrown@whoopdedo.org> + * + * @param string $file filename + * @param string $badline exact linematch to remove + * @param bool $regex use regexp? + * @return bool true on success + */ +function io_deleteFromFile($file,$badline,$regex=false){ + return io_replaceInFile($file,$badline,null,$regex,0); +} + /** * Tries to lock a file * diff --git a/inc/lang/.htaccess b/inc/lang/.htaccess index 2d69be754fc9e93b6ccfaffbe7a1e42cf553cd24..2aaae02fd59fedbb870d96bcee0feee5ac265e7e 100644 --- a/inc/lang/.htaccess +++ b/inc/lang/.htaccess @@ -1,3 +1,8 @@ ## no access to the lang directory -order allow,deny -deny from all +<IfModule mod_authz_host> + Require all denied +</IfModule> +<IfModule !mod_authz_host> + Order allow,deny + Deny from all +</IfModule> diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php index 70672fbdd5fa7ec388116805141463351d3e4954..f719647198e4cdf1cc856a10b0895409e3097a39 100644 --- a/inc/lang/af/lang.php +++ b/inc/lang/af/lang.php @@ -44,7 +44,6 @@ $lang['profnoempty'] = 'Jy moet \'n name en a e-posadres in sit'; $lang['resendpwdmissing'] = 'Jammer, jy moet ales in fil'; $lang['resendpwdconfirm'] = '\'n Bevestigingpos is gestuur na die gekose e-posadres.'; $lang['resendpwdsuccess'] = 'Jou nuive wagwoord was deur e-pos gesteur'; -$lang['fileupload'] = 'Laai lêer'; $lang['uploadsucc'] = 'Laai suksesvol'; $lang['uploadfail'] = 'Laai fout'; $lang['js']['hidedetails'] = 'Steek weg'; @@ -62,7 +61,6 @@ $lang['qb_link'] = 'Interne skakel'; $lang['qb_extlink'] = 'Eksterne skakel'; $lang['qb_hr'] = 'Horisontale streep'; $lang['qb_sig'] = 'Handtekening met datum'; -$lang['admin_register'] = 'Skep gerus \'n rekening'; $lang['btn_img_backto'] = 'Terug na %s'; $lang['img_date'] = 'Datem:'; $lang['img_camera'] = 'Camera:'; diff --git a/inc/lang/ar/jquery.ui.datepicker.js b/inc/lang/ar/jquery.ui.datepicker.js index c93fed48dc6cd1cba06e243c04afd782562ffaef..c9ee84a543537f8cfb639ffa1c4e6cfe954501bc 100644 --- a/inc/lang/ar/jquery.ui.datepicker.js +++ b/inc/lang/ar/jquery.ui.datepicker.js @@ -1,6 +1,7 @@ /* Arabic Translation for jQuery UI date picker plugin. */ -/* Khaled Alhourani -- me@khaledalhourani.com */ -/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name ÙØ¨Ø±Ø§ÙŠØ± - يناير and there isn't any Arabic roots for these months */ +/* Used in most of Arab countries, primarily in Bahrain, Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */ +/* Written by Mohammed Alshehri -- m@dralshehri.com */ + (function( factory ) { if ( typeof define === "function" && define.amd ) { @@ -18,15 +19,15 @@ datepicker.regional['ar'] = { prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', - monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'ØØ²ÙŠØ±Ø§Ù†', - 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNames: ['يناير', 'ÙØ¨Ø±Ø§ÙŠØ±', 'مارس', 'أبريل', 'مايو', 'يونيو', + 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['Ø§Ù„Ø£ØØ¯', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], - dayNamesShort: ['Ø§Ù„Ø£ØØ¯', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['Ø£ØØ¯', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], dayNamesMin: ['Ø', 'Ù†', 'Ø«', 'ر', 'Ø®', 'ج', 'س'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', - firstDay: 6, + firstDay: 0, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index a6574dab0b5e0d344790a83225043eff6786be06..a1b47f2239f075361cb2673cfac5a1ceadfb4187 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -2,7 +2,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> @@ -41,7 +41,6 @@ $lang['btn_update'] = 'ØØ¯Ù‘Ø«'; $lang['btn_delete'] = 'Ø§ØØ°Ù'; $lang['btn_back'] = 'ارجع'; $lang['btn_backlink'] = 'ارتباطات'; -$lang['btn_backtomedia'] = 'ارجع إلى اختيار مل٠الوسائط'; $lang['btn_subscribe'] = 'ادر الاشتراكات'; $lang['btn_profile'] = 'ØØ¯Ø« المل٠الشخصي'; $lang['btn_reset'] = 'صÙّر'; @@ -88,7 +87,7 @@ $lang['profchanged'] = 'ØÙدث المل٠الشخصي للمستخ $lang['profnodelete'] = 'هذه الموسوعه لا ندعم ØØ°Ù الأشخاص'; $lang['profdeleteuser'] = 'Ø§ØØ°Ù ØØ³Ø§Ø¨'; $lang['profdeleted'] = 'ØØ³Ø§Ø¨Ùƒ الخاص تم ØØ°ÙÙ‡ من هذه الموسوعة'; -$lang['profconfdelete'] = 'أنا أرغب ÙÙŠ ØØ°Ù ØØ³Ø§Ø¨ÙŠ Ù…Ù† هذه الموسوعة.<br/> +$lang['profconfdelete'] = 'أنا أرغب ÙÙŠ ØØ°Ù ØØ³Ø§Ø¨ÙŠ Ù…Ù† هذه الموسوعة.<br/> هذا Ø§Ù„ØØ¯Ø« غير ممكن.'; $lang['profconfdeletemissing'] = 'لم تقم بوضع علامة ÙÙŠ مربع التأكيد'; $lang['pwdforget'] = 'أنسيت كلمة السر؟ Ø§ØØµÙ„ على ÙˆØ§ØØ¯Ø© جديدة'; @@ -143,8 +142,6 @@ $lang['js']['del_confirm'] = 'هل ØÙ‚اً تريد ØØ°Ù البنود ا $lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟'; $lang['js']['media_diff'] = 'عرض Ø§Ù„ÙØ±ÙˆÙ‚:'; $lang['js']['media_diff_both'] = 'جنبا إلى جنب'; -$lang['js']['media_diff_opacity'] = 'Shine-through'; -$lang['js']['media_diff_portions'] = 'Swipe'; $lang['js']['media_select'] = 'اختر Ù…Ù„ÙØ§...'; $lang['js']['media_upload_btn'] = 'Ø§Ø±ÙØ¹'; $lang['js']['media_done_btn'] = 'تم'; @@ -154,7 +151,6 @@ $lang['js']['media_overwrt'] = 'أكتب Ùوق Ø§Ù„Ù…Ù„ÙØ§Øª الموجود $lang['rssfailed'] = 'خطأ ما ØØ¯Ø« أثناء جلب مل٠التغذية:'; $lang['nothingfound'] = 'لا يوجد شيء'; $lang['mediaselect'] = 'Ù…Ù„ÙØ§Øª الوسائط'; -$lang['fileupload'] = 'تØÙ…يل مل٠وسائط'; $lang['uploadsucc'] = 'تم Ø§Ù„Ø±ÙØ¹ بنجاØ'; $lang['uploadfail'] = 'ÙØ´Ù„ Ø§Ù„Ø±ÙØ¹ØŒ ربما خطأ تراخيص؟'; $lang['uploadwrong'] = 'Ø§Ù„Ø±ÙØ¹ ممنوع، نوع المل٠مرÙوض!'; @@ -245,7 +241,6 @@ $lang['qb_sig'] = 'أدرج التوقيع'; $lang['qb_smileys'] = 'الإبتسامات'; $lang['qb_chars'] = 'Ù…ØØ§Ø±Ù خاصة'; $lang['upperns'] = 'انتقل للنطاق الأب'; -$lang['admin_register'] = 'أض٠مستخدما جديدا'; $lang['metaedit'] = 'ØªØØ±ÙŠØ± البيانات الشمولية '; $lang['metasaveerr'] = 'ÙØ´Ù„ت كتابة البيانات الشمولية'; $lang['metasaveok'] = 'ØÙÙØ¸Øª البيانات الشمولية'; @@ -278,7 +273,6 @@ $lang['subscr_style_every'] = 'بريدا على كل تغيير'; $lang['subscr_style_digest'] = 'البريد الإلكتروني, ملخص للتغييرات لكل ØµÙØØ© (كل يوم %.2f)'; $lang['subscr_style_list'] = 'قائمة Ø¨Ø§Ù„ØµÙØØ§Øª التي تم تغييرها منذ آخر بريد الإلكتروني (كل يوم %.2f)'; $lang['authtempfail'] = 'ØªØµØ±ÙŠØ Ø§Ù„Ù…Ø´ØªØ±Ùƒ غير Ù…ØªÙˆÙØ± مؤقتاً، إن استمرت هذه Ø§Ù„ØØ§Ù„Ø© يرجى مراسلة المدير'; -$lang['authpwdexpire'] = 'ستنتهي صلاØÙŠØ© كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.'; $lang['i_chooselang'] = 'اختر لغتك'; $lang['i_installer'] = 'برنامج تنصيب دوكو ويكي'; $lang['i_wikiname'] = 'اسم الويكي'; @@ -303,8 +297,8 @@ $lang['i_badhash'] = 'المل٠dokuwiki.php غير مصن٠أو (hash=<code>%s</code>)'; $lang['i_badval'] = 'القيمة <code>%s</code> غير شرعية أو ÙØ§Ø±ØºØ©'; $lang['i_success'] = 'الإعدادات تمت Ø¨Ù†Ø¬Ø§ØØŒ يرجى ØØ°Ù المل٠install.php الآن. -ثم تابع إلى <a href="doku.php"> دوكو ويكي الجديدة</a>'; -$lang['i_failure'] = 'بعض الأخطاء ØØ¯Ø«Øª أثنا كتابة Ù…Ù„ÙØ§Øª الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php"> دوكو ويكي الجديدة</a>'; +ثم تابع إلى <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>'; +$lang['i_failure'] = 'بعض الأخطاء ØØ¯Ø«Øª أثنا كتابة Ù…Ù„ÙØ§Øª الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>'; $lang['i_policy'] = 'ØªØµØ±ÙŠØ ACL مبدئي'; $lang['i_pol0'] = 'ويكي Ù…ÙØªÙˆØØ©Ø› أي القراءة والكتابة والتØÙ…يل Ù…Ø³Ù…ÙˆØØ© للجميع'; $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتØÙ…يل للمشتركين المسجلين Ùقط'; diff --git a/inc/lang/ar/register.txt b/inc/lang/ar/register.txt index 57406ddd43779141ffa698e695d2c9707cb7ff72..10a7fa202dc15b144887519381cdfbabfbda6db9 100644 --- a/inc/lang/ar/register.txt +++ b/inc/lang/ar/register.txt @@ -1,3 +1,3 @@ ====== سجل كمستخدم جديد ====== -أملئ البيانات التالية لتسجيل ØØ³Ø§Ø¨ جديد على الويكي. تأكد من كتابة **بريد إلكترونى صØÙŠØ** - سترسل اليك كلمة سر جديدة. أسم الدخول يجب أن يكون [[doku>pagename|أسم ØµÙØØ©]] صØÙŠØ. +املئ البيانات التالية لتسجيل ØØ³Ø§Ø¨ جديد على الويكي. تأكد من كتابة **بريد إلكتروني صØÙŠØ** - سترسل إليك كلمة سر جديدة. اسم الدخول يجب أن يكون [[doku>pagename|أسم ØµÙØØ©]] صØÙŠØ. diff --git a/inc/lang/ar/stopwords.txt b/inc/lang/ar/stopwords.txt index bc6eb48aea08f241e220bc59d6d6851acfb8e381..1a885988a49003e7d8e7cc2fe79453ff687365ec 100644 --- a/inc/lang/ar/stopwords.txt +++ b/inc/lang/ar/stopwords.txt @@ -2,6 +2,169 @@ # 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/ +ب +ا +ØŒ +عشر +عدد +عدة +عشرة +عدم +عام +عاما +عن +عند +عندما +على +عليه +عليها +زيارة +سنة +سنوات +تم +ضد +بعد +بعض +اعادة +اعلنت +بسبب +ØØªÙ‰ +اذا +Ø§ØØ¯ +اثر +برس +باسم +غدا +شخصا +ØµØ¨Ø§Ø +اطار +اربعة +اخرى +بان +اجل +غير +بشكل +ØØ§Ù„يا +بن +به +ثم +ا٠+ان +او +اي +بها +ØµÙØ± +ØÙŠØ« +اكد +الا +اما +امس +السابق +التى +التي +اكثر +ايار +ايضا +ثلاثة +الذاتي +الاخيرة +الثاني +الثانية +الذى +الذي +الان +امام +ايام +خلال +ØÙˆØ§Ù„Ù‰ +الذين +الاول +الاولى +بين +ذلك +دون +ØÙˆÙ„ +ØÙŠÙ† +ال٠+الى +انه +اول +ضمن +انها +جميع +الماضي +الوقت +المقبل +اليوم +Ù€ +Ù +Ùˆ +Ùˆ6 +قد +لا +ما +مع +مساء +هذا +ÙˆØ§ØØ¯ +واضا٠+ÙˆØ§Ø¶Ø§ÙØª +ÙØ§Ù† +قبل +قال +كان +لدى +Ù†ØÙˆ +هذه +وان +واكد +كانت +ÙˆØ§ÙˆØ¶Ø +مايو +ÙÙ‰ +ÙÙŠ +كل +لم +لن +له +من +هو +هي +قوة +كما +لها +منذ +وقد +ولا +Ù†ÙØ³Ù‡ +لقاء +مقابل +هناك +وقال +وكان +نهاية +وقالت +وكانت +للامم +Ùيه +كلم +لكن +ÙˆÙÙŠ +وق٠+ولم +ومن +وهو +وهي +يوم +Ùيها +منها +مليار +لوكالة +يكون +يمكن +مليون +ÙÙ‰ +أم about are and diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php index 1f8d983f976a2b3557bc0e315e6b1d693b2b4f41..c027b373ae2978f8f6f4614a7c194e756ce2408a 100644 --- a/inc/lang/az/lang.php +++ b/inc/lang/az/lang.php @@ -35,7 +35,6 @@ $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_profile'] = 'Profil'; $lang['btn_reset'] = 'BoÅŸalt'; @@ -92,7 +91,6 @@ $lang['js']['willexpire'] = 'Sizin bu sÉ™hifÉ™dÉ™ dÉ™yiÅŸik etmÉ™k ü $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. '; @@ -169,7 +167,6 @@ $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ı'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index cf78c3ee5b954a70837e271ede03f7806cdb7cf9..be3006c55c56647ccf463020ed68b5bd267b1175 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -10,8 +10,8 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '„'; +$lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Ðктуализиране'; $lang['btn_delete'] = 'Изтриване'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'Какво Ñочи наÑам'; -$lang['btn_backtomedia'] = 'Ðазад към избора на файл'; $lang['btn_subscribe'] = 'Ðбонаменти'; $lang['btn_profile'] = 'Профил'; $lang['btn_reset'] = 'ИзчиÑтване'; @@ -51,6 +50,8 @@ $lang['btn_register'] = 'РегиÑтриране'; $lang['btn_apply'] = 'Прилагане'; $lang['btn_media'] = 'ДиÑпечер на файлове'; $lang['btn_deleteuser'] = 'Изтриване на профила'; +$lang['btn_img_backto'] = 'Ðазад към %s'; +$lang['btn_mediaManager'] = 'Преглед в диÑпечера на файлове'; $lang['loggedinas'] = 'ВпиÑани Ñте като:'; $lang['user'] = 'Потребител'; $lang['pass'] = 'Парола'; @@ -71,6 +72,7 @@ $lang['regmissing'] = 'МолÑ, попълнете вÑички по $lang['reguexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; $lang['regsuccess'] = 'ПотребителÑÑ‚ е Ñъздаден, а паролата е пратена по електронната поща.'; $lang['regsuccess2'] = 'ПотребителÑÑ‚ е Ñъздаден.'; +$lang['regfail'] = 'ПотребителÑÑ‚ не може да бъде Ñъздаден.'; $lang['regmailfail'] = 'Изглежда, че има проблем Ñ Ð¿Ñ€Ð°Ñ‰Ð°Ð½ÐµÑ‚Ð¾ на пиÑмото Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°. МолÑ, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора!'; $lang['regbadmail'] = 'ВъведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð° невалиден - ако миÑлите, че това е грешка, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора.'; $lang['regbadpass'] = 'Двете въведени пароли не Ñъвпадат, Ð¼Ð¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново.'; @@ -85,6 +87,7 @@ $lang['profdeleteuser'] = 'Изтриване на профила'; $lang['profdeleted'] = 'ВашиÑÑ‚ профил е премахнат от това wiki '; $lang['profconfdelete'] = 'ИÑкам да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° Ñи от това wiki. <br/> Веднъж изтрит, профилът не може да бъде възÑтановен!'; $lang['profconfdeletemissing'] = 'Ðе Ñте поÑтавили отметка в кутиÑта потвърждение'; +$lang['proffail'] = 'ПотребителÑкиÑÑ‚ профил не може да бъде актуализиран.'; $lang['pwdforget'] = 'Забравили Ñте паролата Ñи? Получете нова'; $lang['resendna'] = 'Wiki-то не поддържа повторно пращане на паролата.'; $lang['resendpwd'] = 'Задаване на нова парола за'; @@ -147,7 +150,6 @@ $lang['js']['media_overwrt'] = 'Презапиши ÑъщеÑтвуващит $lang['rssfailed'] = 'Възникна грешка при получаването на емиÑиÑта: '; $lang['nothingfound'] = 'Ðищо не е открито.'; $lang['mediaselect'] = 'Файлове'; -$lang['fileupload'] = 'Качване на файлове'; $lang['uploadsucc'] = 'Качването е уÑпешно'; $lang['uploadfail'] = 'Качването Ñе провали. Може би поради грешни права?'; $lang['uploadwrong'] = 'Качването е отказано. Файлово разширение е забранено!'; @@ -181,6 +183,9 @@ $lang['difflink'] = 'Препратка към Ñравнениет $lang['diff_type'] = 'Преглед на разликите:'; $lang['diff_inline'] = 'Вграден'; $lang['diff_side'] = 'Един до друг'; +$lang['diffprevrev'] = 'Предходна верÑиÑ'; +$lang['diffnextrev'] = 'Следваща верÑиÑ'; +$lang['difflastrev'] = 'ПоÑледна верÑиÑ'; $lang['line'] = 'Ред'; $lang['breadcrumb'] = 'Следа:'; $lang['youarehere'] = 'Ðамирате Ñе в:'; @@ -233,11 +238,9 @@ $lang['qb_sig'] = 'Вмъкване на подпиÑ'; $lang['qb_smileys'] = 'УÑмивчици'; $lang['qb_chars'] = 'Специални знаци'; $lang['upperns'] = 'към майчиното именно проÑтранÑтво'; -$lang['admin_register'] = 'ДобавÑне на нов потребител'; $lang['metaedit'] = 'Редактиране на метаданни'; $lang['metasaveerr'] = 'ЗапиÑването на метаданните Ñе провали'; $lang['metasaveok'] = 'Метаданните Ñа запазени уÑпешно'; -$lang['btn_img_backto'] = 'Ðазад към %s'; $lang['img_title'] = 'Заглавие:'; $lang['img_caption'] = 'ÐадпиÑ:'; $lang['img_date'] = 'Дата:'; @@ -250,7 +253,6 @@ $lang['img_camera'] = 'Фотоапарат:'; $lang['img_keywords'] = 'Ключови думи:'; $lang['img_width'] = 'Ширина:'; $lang['img_height'] = 'ВиÑочина:'; -$lang['btn_mediaManager'] = 'Преглед в диÑпечера на файлове'; $lang['subscr_subscribe_success'] = '%s е добавен към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s'; $lang['subscr_subscribe_error'] = 'Грешка при добавÑнето на %s към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s'; $lang['subscr_subscribe_noaddress'] = 'ДобавÑнето ви към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð°Ñ‚Ð¸ не е възможно поради липÑата на Ñвързан Ð°Ð´Ñ€ÐµÑ (имейл) Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° ви.'; @@ -268,7 +270,6 @@ $lang['subscr_style_every'] = 'на имейл при вÑÑка промÑн $lang['subscr_style_digest'] = 'на имейл Ñ Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ на промените във вÑÑка Ñтраница (вÑеки %.2f дни)'; $lang['subscr_style_list'] = 'на ÑпиÑък Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ‚Ðµ Ñтраници от поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ¹Ð» (вÑеки %.2f дни)'; $lang['authtempfail'] = 'УдоÑтоверÑването на потребители не е възможно за момента. Ðко продължи дълго, Ð¼Ð¾Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼ÐµÑ‚Ðµ админиÑтратора на Wiki Ñтраницата.'; -$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече Ñлед %d дни. Препоръчително е да Ñ Ñмените по-Ñкоро.'; $lang['i_chooselang'] = 'Изберете Ð²Ð°ÑˆÐ¸Ñ ÐµÐ·Ð¸Ðº'; $lang['i_installer'] = 'ИнÑталатор на DokuWiki'; $lang['i_wikiname'] = 'Име на Wiki-то'; @@ -279,12 +280,13 @@ $lang['i_modified'] = 'Поради мерки за ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾Ñ Ð¢Ñ€Ñбва да разархивирате отново файловете от ÑÐ²Ð°Ð»ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð² или да Ñе поÑъветвате Ñ <a href="http://dokuwiki.org/install">ИнÑтрукциите за инÑталиране на Dokuwiki</a>.'; $lang['i_funcna'] = 'PHP функциÑта <code>%s</code> не е доÑтъпна. Може би е забранена от доÑтавчика на хоÑтинг.'; $lang['i_phpver'] = 'ИнÑталираната верÑÐ¸Ñ <code>%s</code> на PHP е по-Ñтара от необходимата <code>%s</code>. Ðктуализирайте PHP инÑталациÑта.'; +$lang['i_mbfuncoverload'] = 'Ðеобходимо е да изключите mbstring.func_overload в php.ini за да може DokuWiki да Ñтартира.'; $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?id=wiki:welcome">Вашето ново DokuWiki</a>.'; +$lang['i_success'] = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php?id=wiki:welcome">Вашето новата инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° DokuWiki</a>.'; $lang['i_failure'] = 'Възникнаха грешки при запиÑването на файловете Ñ Ð½Ð°Ñтройки. ВероÑтно ще Ñе наложи да ги поправите ръчно, за да можете да ползвате <a href="doku.php?id=wiki:welcome">Вашето ново DokuWiki</a>.'; $lang['i_policy'] = 'Първоначална политика за доÑтъп'; @@ -329,6 +331,7 @@ $lang['media_perm_read'] = 'За Ñъжаление нÑмате доÑÑ‚ $lang['media_perm_upload'] = 'За Ñъжаление нÑмате доÑтатъчно права, за да можете да качите файла.'; $lang['media_update'] = 'Качване на нова верÑиÑ'; $lang['media_restore'] = 'ВъзÑтановÑване на тази верÑиÑ'; +$lang['currentns'] = 'Текущо именно проÑтранÑтво'; $lang['searchresult'] = 'Резултати от търÑенето'; $lang['plainhtml'] = 'Обикновен HTML'; $lang['email_signature'] = 'ПиÑмото е генерирано от DokuWiki на адреÑ'; diff --git a/inc/lang/bn/lang.php b/inc/lang/bn/lang.php index 0995bc478656a65372516428b6a26da3aad44174..5cb66a85307e2a93951ba70c85f1c390d1b6d1b2 100644 --- a/inc/lang/bn/lang.php +++ b/inc/lang/bn/lang.php @@ -2,24 +2,24 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Foysol <ragebot1125@gmail.com> * @author ninetailz <ninetailz1125@gmail.com> * @author Khan M. B. Asad <muhammad2017@gmail.com> + * @author Ninetailz <ninetailz1125@gmail.com> */ $lang['encoding'] = 'utf-8'; -$lang['direction'] = 'itr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; -$lang['apostrophe'] = '\''; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; +$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'] = 'Save'; $lang['btn_preview'] = 'পূরà§à¦¬à¦°à§‚প'; $lang['btn_top'] = 'উপরে ফিরে যান '; $lang['btn_newer'] = '<< আরো সামà§à¦ªà§à¦°à¦¤à¦¿à¦•'; @@ -37,7 +37,6 @@ $lang['btn_update'] = 'আধà§à¦¨à¦¿à¦• করা'; $lang['btn_delete'] = 'মà§à¦›à§‡ ফেলা'; $lang['btn_back'] = 'পিছনে'; $lang['btn_backlink'] = 'বà§à¦¯à¦¾à¦•লিঙà§à¦•গà§à¦²à¦¿'; -$lang['btn_backtomedia'] = 'পিছনে Mediafile নিরà§à¦¬à¦¾à¦šà¦¨à§‡ যান'; $lang['btn_subscribe'] = 'সাবসà§à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ পরিচালনা করà§à¦¨'; $lang['btn_profile'] = 'পà§à¦°à§‹à¦«à¦¾à¦‡à¦² আপডেট করà§à¦¨'; $lang['btn_reset'] = 'রিসেট করà§à¦¨'; @@ -148,7 +147,6 @@ $lang['js']['media_overwrt'] = 'বরà§à¦¤à¦®à¦¾à¦¨ ফাইল ওà¦à¦¾ $lang['rssfailed'] = 'ফিডটি জোগাড় করতে গিয়ে à¦à¦•টি তà§à¦°à§à¦Ÿà¦¿ ঘটেছে:'; $lang['nothingfound'] = 'কিছৠপাওয়া যায়নি।'; $lang['mediaselect'] = 'মিডিয়া ফাইল'; -$lang['fileupload'] = 'মিডিয়া ফাইল আপলোড'; $lang['uploadsucc'] = 'আপলোড সফল'; $lang['uploadfail'] = 'আপলোড বà§à¦¯à¦°à§à¦¥à¥¤ অনà§à¦®à¦¤à¦¿ জনিত তà§à¦°à§à¦Ÿà¦¿ কী?'; $lang['uploadwrong'] = 'আপলোড পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤à¥¤ à¦à¦‡ ফাইল à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ অননà§à¦®à§‹à¦¦à¦¿à¦¤à¥¤'; @@ -197,4 +195,32 @@ $lang['created'] = 'তৈরি করা'; $lang['restored'] = 'পà§à¦°à¦¾à¦¨à§‹ সংসà§à¦•রণের পà§à¦¨à¦ƒà¦¸à§à¦¥à¦¾à¦ªà¦¨ (%s)'; $lang['external_edit'] = 'বাহà§à¦¯à¦¿à¦• সমà§à¦ªà¦¾à¦¦à¦¨à¦¾'; $lang['summary'] = 'সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সারাংশ'; -$lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </ a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$lang['noflash'] = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.'; +$lang['download'] = 'ডাউনলোড সà§à¦¨à¦¿à¦ªà§‡à¦Ÿ '; +$lang['tools'] = 'সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['user_tools'] = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['site_tools'] = 'সাইটের সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['page_tools'] = 'পৃষà§à¦ ার সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ'; +$lang['skip_to_content'] = 'বিষয়ে à¦à¦¡à¦¼à¦¿à¦¯à¦¼à§‡ যান'; +$lang['sidebar'] = 'সাইডবার'; +$lang['mail_newpage'] = 'পৃষà§à¦ া যোগ করা হয়েছে:'; +$lang['mail_changed'] = 'পৃষà§à¦ া পরিবরà§à¦¤à¦¨ করা হয়েছে:'; +$lang['mail_subscribe_list'] = 'পৃষà§à¦ াগà§à¦²à¦¿à¦° নামসà§à¦¥à¦¾à¦¨ পরিবরà§à¦¤à¦¨:'; +$lang['mail_new_user'] = 'নতà§à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী:'; +$lang['mail_upload'] = 'ফাইল আপলোড করেছেন:'; +$lang['changes_type'] = 'দেখà§à¦¨ পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ'; +$lang['pages_changes'] = 'পৃষà§à¦ াগà§à¦²à¦¿'; +$lang['media_changes'] = 'মিডিয়া ফাইলগà§à¦²à¦¿'; +$lang['both_changes'] = 'পেজ à¦à¦¬à¦‚ মিডিয়া ফাইল উà¦à¦¯à¦¼à§‡à¦‡'; +$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'] = 'নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ শিরোনাম'; diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index e95f0ce51b5b256c346f50dc350ccf7ea66e44ee..5391873de0d6340bbe43457be4c05ea386328d23 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -36,7 +36,6 @@ $lang['btn_update'] = 'Actualisar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Arrere'; $lang['btn_backlink'] = 'VÃnculs remitents'; -$lang['btn_backtomedia'] = 'Tornar a la selecció d\'archius de mijos'; $lang['btn_subscribe'] = 'Subscriure\'s a la pà gina'; $lang['btn_profile'] = 'Actualisar perfil'; $lang['btn_reset'] = 'Reiniciar'; @@ -94,7 +93,6 @@ $lang['js']['notsavedyet'] = 'Els canvis no guardats es perdran.\n¿Segur qu $lang['rssfailed'] = 'Ha ocorregut un erro al solicitar este canal: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Archius de mijos'; -$lang['fileupload'] = 'Enviar archius de mijos'; $lang['uploadsucc'] = 'Enviament correcte'; $lang['uploadfail'] = 'Enviament fallit. ¿Potser no tinga els permissos necessaris?'; $lang['uploadwrong'] = 'Enviament denegat. ¡Esta extensió d\'archiu està prohibida!'; @@ -171,7 +169,6 @@ $lang['qb_sig'] = 'Afegir firma'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Carà cters especials'; $lang['upperns'] = 'anar a l\'espai de noms superior'; -$lang['admin_register'] = 'Afegir nou usuari'; $lang['metaedit'] = 'Editar meta-senyes'; $lang['metasaveerr'] = 'Erro escrivint meta-senyes'; $lang['metasaveok'] = 'Meta-senyes guardades'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 0c5175d6b61087d61f8d1e66dfdb78d68e94be19..40c5f30a37a8de798d874a90a51cae23a709f40d 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -1,11 +1,13 @@ <?php + /** - * catalan language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author daniel@6temes.cat + * @author Eduard DÃaz <edudiaz@scopia.es> + * @author controlonline.net <controlonline.net@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -37,7 +39,6 @@ $lang['btn_update'] = 'Actualitza'; $lang['btn_delete'] = 'Suprimeix'; $lang['btn_back'] = 'Enrere'; $lang['btn_backlink'] = 'Què hi enllaça'; -$lang['btn_backtomedia'] = 'Torna a la selecció de fitxers'; $lang['btn_subscribe'] = 'Subscripció a canvis d\'aquesta pà gina'; $lang['btn_profile'] = 'Actualització del perfil'; $lang['btn_reset'] = 'Reinicia'; @@ -48,6 +49,10 @@ $lang['btn_draftdel'] = 'Suprimeix esborrany'; $lang['btn_revert'] = 'Restaura'; $lang['btn_register'] = 'Registra\'m'; $lang['btn_apply'] = 'Aplica'; +$lang['btn_media'] = 'Mà nager Multimèdia'; +$lang['btn_deleteuser'] = 'Esborrar compte'; +$lang['btn_img_backto'] = 'Torna a %s'; +$lang['btn_mediaManager'] = 'Veure a multimèdia mà nager '; $lang['loggedinas'] = 'Heu entrat com:'; $lang['user'] = 'Nom d\'usuari'; $lang['pass'] = 'Contrasenya'; @@ -59,14 +64,16 @@ $lang['fullname'] = 'Nom complet'; $lang['email'] = 'Correu electrònic'; $lang['profile'] = 'Perfil d\'usuari'; $lang['badlogin'] = 'Nom d\'usuari o contrasenya incorrectes.'; +$lang['badpassconfirm'] = 'Contrasenya incorrecta'; $lang['minoredit'] = 'Canvis menors'; $lang['draftdate'] = 'L\'esborrany s\'ha desat automà ticament'; $lang['nosecedit'] = 'Mentrestant la pà gina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pà gina sencera.'; -$lang['searchcreatepage'] = "Si no trobeu allò que buscà veu, podeu crear una pà gina nova per mitjà del botó ''Edita aquesta pà gina''."; +$lang['searchcreatepage'] = 'Si no trobeu allò que buscà veu, podeu crear una pà gina nova per mitjà del botó \'\'Edita aquesta pà gina\'\'.'; $lang['regmissing'] = 'Heu d\'omplir tots els camps.'; $lang['reguexists'] = 'Ja existeix un altre usuari amb aquest nom.'; $lang['regsuccess'] = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.'; $lang['regsuccess2'] = 'S\'ha creat l\'usuari.'; +$lang['regfail'] = 'L\'usuari no pot ser creat'; $lang['regmailfail'] = 'Sembla que un error ha impedit enviar la contrasenya per correu. Contacteu amb l\'administrador.'; $lang['regbadmail'] = 'L\'adreça de correu que heu donat no sembla và lida. Si creieu que això és un error, contacu amb l\'administrador.'; $lang['regbadpass'] = 'Les dues contrasenyes no són iguals. Torneu a intentar-ho.'; @@ -76,6 +83,12 @@ $lang['profna'] = 'Aquest wiki no permet modificar el perfil'; $lang['profnochange'] = 'No heu introduït cap canvi.'; $lang['profnoempty'] = 'No es pot deixar en blanc el nom o l\'adreça de correu.'; $lang['profchanged'] = 'El perfil d\'usuari s\'ha actualitzat correctament.'; +$lang['profnodelete'] = 'Aquesta wiki no permet esborrar usuaris'; +$lang['profdeleteuser'] = 'Esborrar compte'; +$lang['profdeleted'] = 'El vostre compte ha sigut esborrat d\'aquest compte'; +$lang['profconfdelete'] = 'Vull esmorrar el meu compte d\'aquesta wiki. </br> Aquesta acció no pot desfer-se.'; +$lang['profconfdeletemissing'] = 'Confirmació no acceptada'; +$lang['proffail'] = 'Perfil d\'usuari no actialitzat'; $lang['pwdforget'] = 'Heu oblidat la contrasenya? Podeu obtenir-ne una de nova.'; $lang['resendna'] = 'Aquest wiki no permet tornar a enviar la contrasenya.'; $lang['resendpwd'] = 'Estableix una nova contrasenya per'; @@ -140,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Sobreescriu els arxius existents'; $lang['rssfailed'] = 'S\'ha produït un error en recollir aquesta alimentació: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Selecció de fitxers'; -$lang['fileupload'] = 'Cà rrega de fitxers'; $lang['uploadsucc'] = 'S\'ha penjat el fitxer'; $lang['uploadfail'] = 'No es pot penjar el fitxer. Potser no teniu prou permisos?'; $lang['uploadwrong'] = 'No es pot penjar el fitxer. Aquesta extensió està prohibida.'; @@ -174,6 +186,9 @@ $lang['difflink'] = 'Enllaç a la visualització de la comparació' $lang['diff_type'] = 'Veieu les diferències:'; $lang['diff_inline'] = 'En lÃnia'; $lang['diff_side'] = 'Un al costat de l\'altre'; +$lang['diffprevrev'] = 'Revisió prèvia'; +$lang['diffnextrev'] = 'Següent revisió'; +$lang['difflastrev'] = 'Ultima revisió'; $lang['line'] = 'LÃnia'; $lang['breadcrumb'] = 'CamÃ:'; $lang['youarehere'] = 'Sou aquÃ:'; @@ -194,6 +209,7 @@ $lang['skip_to_content'] = 'salta al contingut'; $lang['sidebar'] = 'Barra lateral'; $lang['mail_newpage'] = 'pà gina afegida:'; $lang['mail_changed'] = 'pà gina modificada:'; +$lang['mail_subscribe_list'] = 'pagines canviades a l0espai de noms:'; $lang['mail_new_user'] = 'nou usuari:'; $lang['mail_upload'] = 'fitxer penjat:'; $lang['changes_type'] = 'Veure els canvis de'; @@ -225,11 +241,9 @@ $lang['qb_sig'] = 'Insereix signatura'; $lang['qb_smileys'] = 'Emoticones'; $lang['qb_chars'] = 'Carà cters especials'; $lang['upperns'] = 'Salta a l\'espai superior'; -$lang['admin_register'] = 'Afegeix nou usuari'; $lang['metaedit'] = 'Edita metadades'; $lang['metasaveerr'] = 'No s\'han pogut escriure les metadades'; $lang['metasaveok'] = 'S\'han desat les metadades'; -$lang['btn_img_backto'] = 'Torna a %s'; $lang['img_title'] = 'TÃtol:'; $lang['img_caption'] = 'Peu d\'imatge:'; $lang['img_date'] = 'Data:'; @@ -259,7 +273,6 @@ $lang['subscr_style_every'] = 'Envia\'m un correu electrònic per a cada canv $lang['subscr_style_digest'] = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pà gina (cada %.2f dies)'; $lang['subscr_style_list'] = 'llistat de pà gines canviades des de l\'últim correu electrònic (cada %.2f dies)'; $lang['authtempfail'] = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.'; -$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'haurÃeu de canviar aviat.'; $lang['i_chooselang'] = 'Trieu l\'idioma'; $lang['i_installer'] = 'Instal·lador de DokuWiki'; $lang['i_wikiname'] = 'Nom del wiki'; @@ -274,14 +287,18 @@ $lang['i_confexists'] = '<code>%s</code> ja existeix'; $lang['i_writeerr'] = 'No es pot crear <code>%s</code>. Comproveu els permisos del directori i/o del fitxer i creeu el fitxer manualment.'; $lang['i_badhash'] = 'dokuwiki.php no reconegut o modificat (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - valor il·legal o buit'; -$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al vostre nou <a href="doku.php">DokuWiki</a>.'; -$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el vostre nou <a href="doku.php">DokuWiki</a>.'; +$lang['i_success'] = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.'; +$lang['i_failure'] = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.'; $lang['i_policy'] = 'PolÃtica ACL inicial'; $lang['i_pol0'] = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)'; $lang['i_pol1'] = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)'; $lang['i_pol2'] = 'Wiki tancat (només els usuaris registrats poden llegir, escriure i penjar fitxers)'; +$lang['i_allowreg'] = 'Permet d\'autoinscripció d\'usuaris'; $lang['i_retry'] = 'Reintenta'; $lang['i_license'] = 'Escolliu el tipus de llicència que voleu fer servir per al vostre contingut:'; +$lang['i_license_none'] = 'No mostrar cap informació sobre llicencies'; +$lang['i_pop_field'] = 'Si us plau, ajuda\'ns a millorar la DokuWiki'; +$lang['i_pop_label'] = 'Una vegada al mes, enviar anònimament dades als programadors de la DokuWiki'; $lang['recent_global'] = 'Esteu veient els canvis recents de l\'espai <strong>%s</strong>. També podeu veure els <a href="%s">canvis recents de tot el wiki</a>.'; $lang['years'] = 'fa %d anys'; $lang['months'] = 'fa %d mesos'; @@ -314,4 +331,7 @@ $lang['media_perm_read'] = 'No teniu permisos suficients per a llegir arxi $lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxius'; $lang['media_update'] = 'Puja la nova versió'; $lang['media_restore'] = 'Restaura aquesta versió'; -$lang['email_signature'] = 'Aquest mail ha estat generat per DokuWiki a'; +$lang['email_signature'] = 'Aquest mail ha estat generat per DokuWiki a'; +$lang['currentns'] = 'Espai de noms actual'; +$lang['searchresult'] = 'Resultats cerca'; +$lang['plainhtml'] = 'HTML pla'; diff --git a/inc/lang/ca/subscr_form.txt b/inc/lang/ca/subscr_form.txt index d3679454f725fae5443822c368eefd633b296ca3..3c63ce66d5edb6107e59b5fbd4019faa72d5adc5 100644 --- a/inc/lang/ca/subscr_form.txt +++ b/inc/lang/ca/subscr_form.txt @@ -1,3 +1,3 @@ ===== Gestió de les Subscripcions ===== -Aquesta pà gina podeu gestiona les vostres subscripcions per a les pà gines i els espais actuals. \ No newline at end of file +Des d'aquesta pà gina, podeu gestionar les vostres subscripcions per a les pà gines i els espais que seleccioneu. \ No newline at end of file diff --git a/inc/lang/cs/admin.txt b/inc/lang/cs/admin.txt index ccfbc4455749ad0e7e7c78335daee5cce6abc79e..df7c5b61cd376e0300e7bf8ece73c085ae90c25b 100644 --- a/inc/lang/cs/admin.txt +++ b/inc/lang/cs/admin.txt @@ -1,3 +1,3 @@ ====== Správa ====== -NÞe je možno spravovat vaÅ¡i DokuWiki. +NÞe je možno spravovat vašà DokuWiki. diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index bdc134a6c466f15455249e340b060b7a272b194b..16ea738f1aa8a85ff369c2ab7f6b2afbc2cf1ad3 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -19,6 +19,7 @@ * @author Radovan Buroň <radovan@buron.cz> * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -50,7 +51,6 @@ $lang['btn_update'] = 'Aktualizovat'; $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 e-mailem zmÄ›ny stránky'; $lang['btn_profile'] = 'Upravit profil'; $lang['btn_reset'] = 'Reset'; @@ -85,6 +85,7 @@ $lang['regmissing'] = 'MusÃte vyplnit vÅ¡echny údaje.'; $lang['reguexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; $lang['regsuccess'] = 'Uživatelský úÄet byl vytvoÅ™en a heslo zasláno e-mailem.'; $lang['regsuccess2'] = 'Uživatelský úÄet byl vytvoÅ™en.'; +$lang['regfail'] = 'Uživatelský profil nemohl být vytvoÅ™en.'; $lang['regmailfail'] = 'Zdá se, že nastala chyba pÅ™i posÃlánà mailu s heslem. Zkuste kontaktovat správce.'; $lang['regbadmail'] = 'Zadaná e-mailová adresa nenà platná. Pokud si myslÃte, že to je Å¡patnÄ›, zkuste kontaktovat správce.'; $lang['regbadpass'] = 'Heslo nebylo zadáno dvakrát stejnÄ›, zkuste to prosÃm znovu.'; @@ -99,6 +100,7 @@ $lang['profdeleteuser'] = 'Smazat úÄet'; $lang['profdeleted'] = 'Váš uživatelský úÄet byl z této wiki smazán'; $lang['profconfdelete'] = 'Chci smazat můj úÄet z této wiki. <br/> Tato akce je nevratná.'; $lang['profconfdeletemissing'] = 'Potvrzovacà tlaÄÃtko nezaÅ¡krtnuto'; +$lang['proffail'] = 'Uživatelský profil nebyl aktualizován.'; $lang['pwdforget'] = 'ZapomnÄ›li jste heslo? Nechte si zaslat nové'; $lang['resendna'] = 'Tato wiki neumožňuje zasÃlánà nových hesel.'; $lang['resendpwd'] = 'Nastavit nové heslo pro'; @@ -163,7 +165,6 @@ $lang['js']['media_overwrt'] = 'PÅ™epsat existujÃcà soubory'; $lang['rssfailed'] = 'Nastala chyba pÅ™i vytvářenà tohoto RSS: '; $lang['nothingfound'] = 'Nic nenalezeno.'; $lang['mediaselect'] = 'VýbÄ›r dokumentu'; -$lang['fileupload'] = 'NaÄtenà dokumentu'; $lang['uploadsucc'] = 'PÅ™enos probÄ›hl v pořádku'; $lang['uploadfail'] = 'Chyba pÅ™i naÄÃtánÃ. Možná kvůli Å¡patnÄ› nastaveným právům?'; $lang['uploadwrong'] = 'NaÄtenà souboru s takovouto pÅ™Ãponou nenà dovoleno.'; @@ -254,7 +255,6 @@ $lang['qb_sig'] = 'Vložit podpis'; $lang['qb_smileys'] = 'Emotikony'; $lang['qb_chars'] = 'Speciálnà znaky'; $lang['upperns'] = 'skoÄit do nadÅ™azeného jmenného prostoru'; -$lang['admin_register'] = 'PÅ™idat nového uživatele'; $lang['metaedit'] = 'Upravit Metadata'; $lang['metasaveerr'] = 'Chyba pÅ™i zápisu metadat'; $lang['metasaveok'] = 'Metadata uložena'; @@ -287,7 +287,6 @@ $lang['subscr_style_every'] = 'e-mail pro každou zmÄ›nu'; $lang['subscr_style_digest'] = 'souhrnný e-mail zmÄ›n pro každou stránku (každé %.2f dny/dnÃ)'; $lang['subscr_style_list'] = 'seznam zmÄ›nÄ›ných stránek od poslednÃho e-mailu (každé %.2f dny/dnÃ)'; $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['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vypršà za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; $lang['i_chooselang'] = 'Vyberte si jazyk'; $lang['i_installer'] = 'Instalace DokuWiki'; $lang['i_wikiname'] = 'Název wiki'; @@ -347,6 +346,7 @@ $lang['media_perm_read'] = 'Bohužel, nemáte práva ÄÃst soubory.'; $lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.'; $lang['media_update'] = 'Nahrát novou verzi'; $lang['media_restore'] = 'Obnovit tuto verzi'; +$lang['media_acl_warning'] = 'Tento seznam nemusà být úplný z důvodu omezenà práv ACL a skrytým stránkám.'; $lang['currentns'] = 'Aktuálnà jmenný prostor'; $lang['searchresult'] = 'Výsledek hledánÃ'; $lang['plainhtml'] = 'ÄŒisté HTML'; diff --git a/inc/lang/cy/admin.txt b/inc/lang/cy/admin.txt new file mode 100644 index 0000000000000000000000000000000000000000..75485fcf268cc2cc7bfe67be7ddf775e3137ed18 --- /dev/null +++ b/inc/lang/cy/admin.txt @@ -0,0 +1,4 @@ +====== Gweinyddu ====== + +Gallwch chi ddarganfod rhestr o dasgau gweinyddol ar gael mewn DokuWiki, isod. + diff --git a/inc/lang/cy/adminplugins.txt b/inc/lang/cy/adminplugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..ff21264fdf244741c1f82496831554a5af5cde6f --- /dev/null +++ b/inc/lang/cy/adminplugins.txt @@ -0,0 +1,2 @@ +===== Ategion Ychwanegol ===== + diff --git a/inc/lang/cy/backlinks.txt b/inc/lang/cy/backlinks.txt new file mode 100644 index 0000000000000000000000000000000000000000..2180e5503263e70750dca65906834ae6c48ba771 --- /dev/null +++ b/inc/lang/cy/backlinks.txt @@ -0,0 +1,4 @@ +====== Olgysylltiadau ====== + +Dyma restr o dudalennau sy'n ymddangos eu bod nhw'n cysylltu'n ôl i'r dudalen gyfredol. + diff --git a/inc/lang/cy/conflict.txt b/inc/lang/cy/conflict.txt new file mode 100644 index 0000000000000000000000000000000000000000..133e863e5ec45ca52738d5a50edf0ca9acef35b1 --- /dev/null +++ b/inc/lang/cy/conflict.txt @@ -0,0 +1,6 @@ +====== Mae fersiwn mwy diweddar yn bodoli ====== + +Mae fersiwn mwy diweddar o'r ddogfen a wnaethoch chi olygu yn bodoli. Bydd hwn yn digwydd pan fydd defnyddiwr arall yn newid y ddogfen wrth i chi'n ei golygu hi. + +Archwiliwch y gwahaniaethau isod yn drylwyr, yna penderfynnwch pa fersiwn i'w gadw. Os ydych chi'n dewis ''cadw'', caiff eich fersiwn chi ei gadw. Pwyswch ''canslo'' i gadw'r fersiwn cyfredol. + diff --git a/inc/lang/cy/denied.txt b/inc/lang/cy/denied.txt new file mode 100644 index 0000000000000000000000000000000000000000..2c0eb001c319f82078e0f364a0e4e9de2c37e08f --- /dev/null +++ b/inc/lang/cy/denied.txt @@ -0,0 +1,4 @@ +====== Gwrthodwyd Hawl ====== + +Sori, 'sdim hawliau digonol 'da chi i barhau. + diff --git a/inc/lang/cy/diff.txt b/inc/lang/cy/diff.txt new file mode 100644 index 0000000000000000000000000000000000000000..69a9ff6888d732300037558ab4aecf08bd187f10 --- /dev/null +++ b/inc/lang/cy/diff.txt @@ -0,0 +1,4 @@ +====== Gwahaniaethau ====== + +Mae hwn yn dangos y gwahaniaethau rhwng dau fersiwn y dudalen. + diff --git a/inc/lang/cy/draft.txt b/inc/lang/cy/draft.txt new file mode 100644 index 0000000000000000000000000000000000000000..3b10c511e09692a5b0bd05254cd526646cb4f7a2 --- /dev/null +++ b/inc/lang/cy/draft.txt @@ -0,0 +1,8 @@ +====== Ffeil ddrafft wedi'i darganfod ====== + +Doedd eich sesiwn golygu ddiwethaf heb gwblhau'n gywir. Gwnaeth DokuWiki gadw copi ddrafft yn awtomatig wrth i chi weithio, sydd nawr ar gael i chi er mwyn parhau gyda'ch golygu. Gallwch chi weld y data a gafodd ei gadw o'ch sesiwn diwethaf isod. + +Penderfynwch os ydych chi am //adennill// eich sesiwn golygu goll, //dileu//'r drafft awtogadw neu //canslo//'r broses olygu. + + + diff --git a/inc/lang/cy/edit.txt b/inc/lang/cy/edit.txt new file mode 100644 index 0000000000000000000000000000000000000000..7e2d899ef0ac1437790252d0df427996e017d629 --- /dev/null +++ b/inc/lang/cy/edit.txt @@ -0,0 +1,2 @@ +Golygwch y dudalen a phwyso ''Cadw''. Gweler [[wiki:syntax]] ar gyfer cystrawen Wici. Golygwch y dudalen hon dim ond os ydych chi'n gallu ei **gwella** hi. Os ydych chi am brofi pethau, cymerwch eich camau cyntaf ar y [[playground:playground|maes chwarae]]. + diff --git a/inc/lang/cy/editrev.txt b/inc/lang/cy/editrev.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d32e9a687a899eefcb98e1990c222772fb67195 --- /dev/null +++ b/inc/lang/cy/editrev.txt @@ -0,0 +1,2 @@ +**Rydych chi wedi llwytho hen adolygiad y ddogfen!** Os ydych chi'n ei chadw hi, byddwch chi'n creu fersiwn newydd gyda'r data hwn. +---- diff --git a/inc/lang/cy/index.txt b/inc/lang/cy/index.txt new file mode 100644 index 0000000000000000000000000000000000000000..607a2f695cc201bf43e233c51bbbc3629ce73a6f --- /dev/null +++ b/inc/lang/cy/index.txt @@ -0,0 +1,4 @@ +====== Map safle ====== + +Dyma fap safle o bob tudalen sydd ar gael, wedi'u trefnu gan [[doku>namespaces|namespaces]]. + diff --git a/inc/lang/cy/install.html b/inc/lang/cy/install.html new file mode 100644 index 0000000000000000000000000000000000000000..406c7b456a10494254f7fb75b14b44bad1ca615a --- /dev/null +++ b/inc/lang/cy/install.html @@ -0,0 +1,24 @@ +<p>Mae'r dudalen hon yn eich helpu chi i arsefydlu am y tro cyntaf a gyda ffurfweddu +<a href="http://dokuwiki.org">Dokuwiki</a>. Mae mwy o wybodaeth ar yr arsefydlwr hwn +ar <a href="http://dokuwiki.org/installer">dudalen ddogfennaeth</a> ei hun.</p> + +<p>Mae DokuWiki yn defnyddio ffeiliau arferol ar gyfer storio tudalennau wici a +gwybodaeth gysylltiol gyda'r tudalennau hynny (e.e. delweddau, indecsau chwilio, +hen adolygiadau, ac ati). Er mwyn gweithredu'n llwyddiannus mae'n +<strong>rhaid</strong> i DokuWiki gael yr hawl i ysgrifennu i'r ffolderi sydd yn +dal y ffeiliau hynny. 'Dyw'r arsefydlwr hwn ddim yn gallu gosod hawliau ffolderi. +Bydd hwn, fel rheol, yn gorfod cael ei wneud yn uniongyrchol gydag anogwr gorchymyn, +neu os ydych chi'n defnyddio gwesteiwr, drwy FTP neu eich panel gwesteio (e.e. +cPanel).</p> + +<p>Bydd yr arsefydlwr hwn yn gosod eich ffurfwedd DokuWiki ar gyfer +<abbr title="access control list">ACL</abbr>, sydd yn ei dro yn caniatáu +mewngofnodi gweinyddwr a mynediad i ddewislen gweinyddu DokuWiki ar gyfer arsefydlu +ategion, rheoli defnyddwyr, rheoli mynediad i dudalennau wici a newid gosodiadau +ffurfwedd. 'Sdim angen hwn ar DokuWiki er mwyn gweithio, ond bydd yn gwneud +Dokuwiki yn haws i'w weinyddu.</p> + +<p>Dylai defnyddwyr profiadol neu'r rheiny gydag anghenion gosodiad rrbennig special +ddefnyddio'r dolenni hyn am wybodaeth parthed +<a href="http://dokuwiki.org/install">canllawiau arsefydlu</a> +and <a href="http://dokuwiki.org/config">gosodiadau ffurfwedd</a>.</p> diff --git a/inc/lang/cy/jquery.ui.datepicker.js b/inc/lang/cy/jquery.ui.datepicker.js new file mode 100644 index 0000000000000000000000000000000000000000..254eedab23d5606ff573bd8af4c963cec9772050 --- /dev/null +++ b/inc/lang/cy/jquery.ui.datepicker.js @@ -0,0 +1,37 @@ +/* Danish initialisation for the jQuery UI date picker plugin. */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['cy'] = { + closeText: 'Cau', + prevText: '<', + nextText: '>', + currentText: 'Heddiw', + monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin', + 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'], + monthNamesShort: ['Ion','Chw','Maw','Ebr','Mai','Meh', + 'Gor','Aws','Med','Hyd','Tac','Rha'], + dayNames: ['Dydd Sul','Dydd Llun','Dydd Mawrth','Dydd Mercher','Dydd Iau','Dydd Gwener','Dydd Sadwrn'], + dayNamesShort: ['Sul','Llu','Maw','Mer','Iau','Gwe','Sad'], + dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'], + weekHeader: 'Wyth', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['cy']); + +return datepicker.regional['cy']; + +})); diff --git a/inc/lang/cy/lang.php b/inc/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7018e007115747c2e5ca48e8f1531ceacd0aab00 --- /dev/null +++ b/inc/lang/cy/lang.php @@ -0,0 +1,373 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + * @author Anika Henke <anika@selfthinker.org> + * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * @author Matthias Schulte <mailinglist@lupo49.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; //“ +$lang['doublequoteclosing'] = 'â€'; //” +$lang['singlequoteopening'] = '‘'; //‘ +$lang['singlequoteclosing'] = '’'; //’ +$lang['apostrophe'] = '’'; //’ + +$lang['btn_edit'] = 'Golygu\'r dudaen hon'; +$lang['btn_source'] = 'Dangos y ffynhonnell'; +$lang['btn_show'] = 'Dangos y dudalen'; +$lang['btn_create'] = 'Creu\'r dudalen'; +$lang['btn_search'] = 'Chwilio'; +$lang['btn_save'] = 'Cadw'; +$lang['btn_preview'] = 'Rhagolwg'; +$lang['btn_top'] = 'Nôl i\'r brig'; +$lang['btn_newer'] = '<< mwy diweddar'; +$lang['btn_older'] = 'llai diweddar >>'; +$lang['btn_revs'] = 'Hen adolygiadau'; +$lang['btn_recent'] = 'Newidiadau Diweddar'; +$lang['btn_upload'] = 'Lanlwytho'; +$lang['btn_cancel'] = 'Canslo'; +$lang['btn_index'] = 'Safle map'; +$lang['btn_secedit'] = 'Golygu'; +$lang['btn_login'] = 'Mewngofnodi'; +$lang['btn_logout'] = 'Allgofnodi'; +$lang['btn_admin'] = 'Gweinyddu'; +$lang['btn_update'] = 'Diweddaru'; +$lang['btn_delete'] = 'Dileu'; +$lang['btn_back'] = 'Nôl'; +$lang['btn_backlink'] = 'Olgysylltiadau'; +$lang['btn_subscribe'] = 'Rheoli Tanysgrifiadau'; +$lang['btn_profile'] = 'Diweddaru Proffil'; +$lang['btn_reset'] = 'Ailosod'; +$lang['btn_resendpwd'] = 'Gosod cyfrinair newydd'; +$lang['btn_draft'] = 'Golygu drafft'; +$lang['btn_recover'] = 'Adennill drafft'; +$lang['btn_draftdel'] = 'Dileu drafft'; +$lang['btn_revert'] = 'Adfer'; +$lang['btn_register'] = 'Cofrestru'; +$lang['btn_apply'] = 'Gosod'; +$lang['btn_media'] = 'Rheolwr Cyfrwng'; +$lang['btn_deleteuser'] = 'Tynnu Fy Nghyfrif'; +$lang['btn_img_backto'] = 'Nôl i %s'; +$lang['btn_mediaManager'] = 'Dangos mewn rheolwr cyfrwng'; + +$lang['loggedinas'] = 'Mewngofnodwyd fel:'; +$lang['user'] = 'Defnyddair'; +$lang['pass'] = 'Cyfrinair'; +$lang['newpass'] = 'Cyfrinair newydd'; +$lang['oldpass'] = 'Cadarnhau cyfrinair cyfredol'; +$lang['passchk'] = 'unwaith eto'; +$lang['remember'] = 'Cofio fi'; +$lang['fullname'] = 'Enw go iawn'; +$lang['email'] = 'E-Bost'; +$lang['profile'] = 'Proffil Defnyddiwr'; +$lang['badlogin'] = 'Sori, roedd y defnyddair neu\'r gyfriair yn anghywir.'; +$lang['badpassconfirm'] = 'Sori, roedd y cyfrinair yn anghywir'; +$lang['minoredit'] = 'Newidiadau Bach'; +$lang['draftdate'] = 'Awtogadwyd drafft ar'; // full dformat date will be added +$lang['nosecedit'] = 'Newidiwyd y dudaen yn y cyfamser, roedd gwybodaeth yr adran wedi dyddio, felly llwythwyd y dudalen gyfan.'; +$lang['searchcreatepage'] = 'Os na wnaethoch chi ddod o hyd i\'r hyn roeddech chi am ddarganfod, gallwch chi greu neu golygu\'r dudalen wedi\'i henwi ar ôl eich ymholiad gyda\'r teclyn priodol.'; + +$lang['regmissing'] = 'Sori, llenwch bob maes.'; +$lang['reguexists'] = 'Sori, mae defnyddiwr â\'r enw hwn yn bodoli eisoes.'; +$lang['regsuccess'] = 'Cafodd y defnyddiwr ei greu a chafodd y cyfrinair ei anfon gan ebost.'; +$lang['regsuccess2'] = 'Cafodd y defnyddiwr ei greu.'; +$lang['regfail'] = 'Doedd dim modd creu\'r defnyddiwr.'; +$lang['regmailfail'] = 'Mae\'n debyg roedd gwall wrth anfon y post cyfrinair. Cysylltwch â\'r gweinyddwr!'; +$lang['regbadmail'] = 'Mae\'r cyfeiriad ebost a gyflwynoch chi\'n edrych yn annilys - os ydych chi\'n credu ei fod yn gywir, cysylltwch â\'r gweinyddwr'; +$lang['regbadpass'] = '\'Dyw\'r ddau gyfrinair ddim yn unfath, ceisiwch eto.'; +$lang['regpwmail'] = 'Eich cyfrinair DokuWiki'; +$lang['reghere'] = '\'Sdim cyfrif \'da chi eto? Cewch afael yn un nawr'; + +$lang['profna'] = '\'Dyw\'r wici hwn ddim yn caniatáu newid eich proffil'; +$lang['profnochange'] = 'Dim newidiadau, dim i\'w wneud.'; +$lang['profnoempty'] = '\'Sdim modd gadael eich enw neu\'ch cyfeiriad ebost chi\'n wag.'; +$lang['profchanged'] = 'Diweddarwyd eich proffil defnyddiwr yn llwyddiannus.'; +$lang['profnodelete'] = '\'Dyw\'r wici hwn ddim yn caniatáu dileu defnyddwyr'; +$lang['profdeleteuser'] = 'Dileu Cyfrif'; +$lang['profdeleted'] = 'Cafodd eich cyfrif defnyddiwr chi ei ddileu o\'r wiki hwn'; +$lang['profconfdelete'] = '\'Dwi eisiau tynnu fy nghyfrif oddi ar y wici hwn. <br/> \'Sdim modd dadwneud hyn.'; +$lang['profconfdeletemissing'] = 'Blwch gwirio heb ei dicio'; +$lang['proffail'] = 'Proffil defnyddiwr heb ei ddiweddaru.'; + +$lang['pwdforget'] = 'Anghofio\'ch cyfrinair? Cael gafael ar un newydd'; +$lang['resendna'] = '\'Dyw\'r wici hwn ddim yn caniatáu ailanfon cyfrineiriau.'; +$lang['resendpwd'] = 'Gosod cyfrinair newydd ar gyfer'; +$lang['resendpwdmissing'] = 'Sori, mae\'n rhaid llenwi pob maes.'; +$lang['resendpwdnouser'] = 'Sori, \'dyn ni ddim yn gallu darganfod y defnyddiwr hwn yn ein databas ni.'; +$lang['resendpwdbadauth'] = 'Sori, \'dyw\'r cod dilysu hwn ddim yn ddilys. Sicrhewch eich bod chi wedi defnyddio\'r ddolen gadarnhau gyfan.'; +$lang['resendpwdconfirm'] = 'Cafodd ddolen gadarnhau ei hanfon gan ebost.'; +$lang['resendpwdsuccess'] = 'Cafodd eich cyfrinair newydd chi ei anfon gan ebost.'; + +$lang['license'] = 'Heb law bod datganiad i\'r gwrthwyneb, mae cynnwys y wici hwn o dan y drwydded ganlynol:'; +$lang['licenseok'] = 'Sylwir: Gan olygu\'r dudalen hon rydych chi\'n cytuno i drwyddedu\'ch cynnwys chi o dan y drwydded ganlynol:'; + +$lang['searchmedia'] = 'Chwilio enw ffeil:'; +$lang['searchmedia_in'] = 'Chwilio mewn %s'; +$lang['txt_upload'] = 'Dewis ffeil i\'w lanlwytho:'; +$lang['txt_filename'] = 'Upload as (optional):'; +$lang['txt_overwrt'] = 'Trosysgrifo ffeil sy\'n bodoli'; +$lang['maxuploadsize'] = 'Lanlwytho uchanfswm %s y ffeil.'; +$lang['lockedby'] = 'Clowyd yn bresennol gan:'; +$lang['lockexpire'] = 'Clo\'n dod i ben ar:'; + +$lang['js']['willexpire'] = 'Mae\'ch clo ar gyfer golygu\'r dudalen hon yn mynd i ddod i ben mewn munud.\nEr mwyn osgoi gwrthdrawiadau defnyddiwch y botwm rhagolwg i ailosod amserydd y clo.'; +$lang['js']['notsavedyet'] = 'Caiff newidiadau heb gadw eu colli.'; +$lang['js']['searchmedia'] = 'Chwilio am ffeiliau'; +$lang['js']['keepopen'] = 'Cadw ffesnestr y dewisiad ar agor'; +$lang['js']['hidedetails'] = 'Cuddio Manylion'; +$lang['js']['mediatitle'] = 'Gosodiadau dolenni'; +$lang['js']['mediadisplay'] = 'Math y ddolen'; +$lang['js']['mediaalign'] = 'Aliniad'; +$lang['js']['mediasize'] = 'Maint y ddelwedd'; +$lang['js']['mediatarget'] = 'Targed y ddolen'; +$lang['js']['mediaclose'] = 'Cau'; +$lang['js']['mediainsert'] = 'Mewnosod'; +$lang['js']['mediadisplayimg'] = 'Dangos y ddelwedd.'; +$lang['js']['mediadisplaylnk'] = 'Dangos y ddolen yn unig.'; +$lang['js']['mediasmall'] = 'Fersiwn bach'; +$lang['js']['mediamedium'] = 'Fersiwn canolig'; +$lang['js']['medialarge'] = 'Fersiwn mawr'; +$lang['js']['mediaoriginal'] = 'Fersiwn gwreiddiol'; +$lang['js']['medialnk'] = 'Cysylltu i dudalen fanylion'; +$lang['js']['mediadirect'] = 'Cysylltiad uniongyrchol i\'r gwreiddiol'; +$lang['js']['medianolnk'] = 'Dim dolen'; +$lang['js']['medianolink'] = 'Peidio cysylltu i\'r dudalen'; +$lang['js']['medialeft'] = 'Alinio\'r ddelwedd i\'r chwith.'; +$lang['js']['mediaright'] = 'Alinio\'r ddelwedd i\'r dde.'; +$lang['js']['mediacenter'] = 'Alinio\'r ddelwedd i\'r canol.'; +$lang['js']['medianoalign'] = 'Peidio alinio.'; +$lang['js']['nosmblinks'] = 'Mae cysylltu gyda Windows shares dim ond yn gweithio gyda Microsoft Internet Explorer.\nGallwch chi gopïo a gludo\'r ddolen hefyd.'; +$lang['js']['linkwiz'] = 'Dewin Dolenni'; +$lang['js']['linkto'] = 'Cysylltu i:'; +$lang['js']['del_confirm'] = 'Gwir ddileu\'r eitem(au) a ddewiswyd?'; +$lang['js']['restore_confirm'] = 'Gwir adfer y fersiwn hwn?'; +$lang['js']['media_diff'] = 'Gweld gwahaniaethau:'; +$lang['js']['media_diff_both'] = 'Ochr wrth Ochr'; +$lang['js']['media_diff_opacity'] = 'Tywynnu-drwodd'; +$lang['js']['media_diff_portions'] = 'Taro'; //Swipe - rhaid bod gwell ateb i hwn +$lang['js']['media_select'] = 'Dewis ffeiliau…'; +$lang['js']['media_upload_btn'] = 'Lanlwytho'; +$lang['js']['media_done_btn'] = 'Gorffen'; +$lang['js']['media_drop'] = 'Gollwng ffeiliau yma i\'w lanlwytho'; +$lang['js']['media_cancel'] = 'tynnu'; +$lang['js']['media_overwrt'] = 'Trosysgrifo ffeiliau sy\'n bodoli'; + +$lang['rssfailed'] = 'Roedd gwall wrth hôl y ffrwd hwn: '; +$lang['nothingfound'] = 'Dim wedi\'i ddarganfod.'; + +$lang['mediaselect'] = 'Ffeiliau Cyfrwng'; +$lang['uploadsucc'] = 'Lanlwythiad llwyddiannus'; +$lang['uploadfail'] = 'Methodd y lanlwythiad. Hawliau anghywir efallai?'; +$lang['uploadwrong'] = 'Gwrthodwyd y lanlwythiad. Gwaherddir yr estyniad ffeil hwn!'; +$lang['uploadexist'] = 'Mae\'r ffeil eisoes yn bodoli. Dim wedi\'i wneud.'; +$lang['uploadbadcontent'] = 'Doedd y cynnwys a lanlwythwyd ddim yn cydweddu ag estyniad ffeil %s.'; +$lang['uploadspam'] = 'Cafodd y lanlwythiad ei flocio gan rhestr wahardd sbam.'; +$lang['uploadxss'] = 'Cafodd y lanlwythiad ei flocio efallai oherwydd cynnwys maleisus.'; +$lang['uploadsize'] = 'Roedd y ffeil a lanlwythwyd yn rhy fawr. (uchaf. %s)'; +$lang['deletesucc'] = 'Cafodd ffeil "%s" ei dileu.'; +$lang['deletefail'] = 'Doedd dim modd dileu "%s" - gwiriwch hawliau.'; +$lang['mediainuse'] = 'Doedd "%s" heb ei dileu - mae\'n cael ei defnyddio ar hyn o bryd.'; +$lang['namespaces'] = 'Namespaces'; //namespace +$lang['mediafiles'] = 'Ffeiliau ar gael mewn'; +$lang['accessdenied'] = '\'Sdim hawl \'da chi weld y dudalen hon.'; +$lang['mediausage'] = 'Defnyddiwch y gystrawen ganlynol i gyfeirio at y ffeil hon:'; +$lang['mediaview'] = 'Dangos y ffeil wreiddiol'; +$lang['mediaroot'] = 'gwraidd'; +$lang['mediaupload'] = 'lanlwythwch ffeil i\'r namespace cyfredol yma. Er mwy creu is-namespace, ychwanegwch nhw o flaen enw\'r ffeil gan eu gwahanu nhw gyda cholonau, ar ôl i chi ddewis y ffeiliau. Gall ffeiliau hefyd eu dewis gan lusgo a gollwng.'; //namespace +$lang['mediaextchange'] = 'Newidiwyd yr estyniad o .%s i .%s!'; +$lang['reference'] = 'Cyfeirnodau ar gyfer'; +$lang['ref_inuse'] = '\'Sdim modd dileu\'r ffeil hon, oherwydd ei bod hi\'n dal yn cael ei defnyddio gan y tudalennau canlynol:'; +$lang['ref_hidden'] = 'Mae rhai cyfeirnodau ar dudalennau \'sdim hawl \'da chi weld'; + +$lang['hits'] = 'Trawiadau'; +$lang['quickhits'] = 'Enw tudalennau\'n cydweddu'; +$lang['toc'] = 'Tabl Cynnwys'; +$lang['current'] = 'cyfredol'; +$lang['yours'] = 'Eich Fersiwn'; +$lang['diff'] = 'Dangos gwahaniaethau i\'r adolygiadau cyfredol'; +$lang['diff2'] = 'Dangos gwahaniaethau rhwng adolygiadau a ddewiswyd'; +$lang['difflink'] = 'Cysylltu i\'r olwg gymharu hon'; +$lang['diff_type'] = 'Dangos gwahaniaethau:'; +$lang['diff_inline'] = 'Mewnlin'; +$lang['diff_side'] = 'Ochr wrth Ochr'; +$lang['diffprevrev'] = 'Adolygiad blaenorol'; +$lang['diffnextrev'] = 'Adolygiad nesaf'; +$lang['difflastrev'] = 'Adolygiad diwethaf'; +$lang['diffbothprevrev'] = 'Dwy ochr yr adolygiad blaenorol'; +$lang['diffbothnextrev'] = 'Dwy ochr yr adolygiad nesaf'; +$lang['line'] = 'Llinell'; +$lang['breadcrumb'] = 'Olrhain:'; +$lang['youarehere'] = 'Rydych chi yma:'; +$lang['lastmod'] = 'Newidiwyd ddiwethaf:'; +$lang['by'] = 'gan'; +$lang['deleted'] = 'tynnwyd'; +$lang['created'] = 'crewyd'; +$lang['restored'] = 'adferwyd hen adolygiad (%s)'; +$lang['external_edit'] = 'golygiad allanol'; +$lang['summary'] = 'Crynodeb golygiad'; +$lang['noflash'] = 'Mae angen <a href="http://www.adobe.com/products/flashplayer/">Ategyn Adobe Flash</a> i ddangos y cynnwys hwn.'; +$lang['download'] = 'Lawrlwytho Darn'; +$lang['tools'] = 'Teclynnau'; +$lang['user_tools'] = 'Teclynnau Defnyddiwr'; +$lang['site_tools'] = 'Teclynnau Safle'; +$lang['page_tools'] = 'Teclynnau Tudalennau'; +$lang['skip_to_content'] = 'nedio i\'r cynnwys'; +$lang['sidebar'] = 'Bar ochr'; + +$lang['mail_newpage'] = 'ychwanegwyd tudalen:'; +$lang['mail_changed'] = 'newidiwyd tudalen:'; +$lang['mail_subscribe_list'] = 'newidiwyd tudalennau mewn namespace:'; //namespace +$lang['mail_new_user'] = 'defnyddiwr newydd:'; +$lang['mail_upload'] = 'lanlwythwyd ffeil:'; + +$lang['changes_type'] = 'Dangos newidiadau mewn'; +$lang['pages_changes'] = 'Tudalennau'; +$lang['media_changes'] = 'Ffeiliau cyfrwng'; +$lang['both_changes'] = 'Tudalennau a ffeiliau cyfrwng'; + +$lang['qb_bold'] = 'Testun Bras'; +$lang['qb_italic'] = 'Testun Italig'; +$lang['qb_underl'] = 'Testun wedi\'i Danlinellu'; +$lang['qb_code'] = 'Testun Unbylchog'; +$lang['qb_strike'] = 'Testun Llinell Drwodd'; +$lang['qb_h1'] = 'Pennawd Lefel 1'; +$lang['qb_h2'] = 'Pennawd Lefel 2'; +$lang['qb_h3'] = 'Pennawd Lefel 3'; +$lang['qb_h4'] = 'Pennawd Lefel 4'; +$lang['qb_h5'] = 'Pennawd Lefel 5'; +$lang['qb_h'] = 'Pennawd'; +$lang['qb_hs'] = 'Dewis Pennawd'; +$lang['qb_hplus'] = 'Pennawd Uwch'; +$lang['qb_hminus'] = 'Pennawd Is'; +$lang['qb_hequal'] = 'Pennawd yr un Lefel'; +$lang['qb_link'] = 'Dolen fewnol'; +$lang['qb_extlink'] = 'Dolen allanol'; +$lang['qb_hr'] = 'Llinell Lorweddol'; +$lang['qb_ol'] = 'Eitem Rhestr Drefnedig'; +$lang['qb_ul'] = 'Eitem Rhestr Rifol'; +$lang['qb_media'] = 'Ychwanegu Delweddau a ffeiliau eraill (agor mewn ffenestr newydd)'; +$lang['qb_sig'] = 'Mewnosod Llofnod'; +$lang['qb_smileys'] = 'Gwenogluniau'; +$lang['qb_chars'] = 'Nodau Arbennig'; + +$lang['upperns'] = 'neidio i namespace uwch'; //namespace + +$lang['metaedit'] = 'Golygu Metadata'; +$lang['metasaveerr'] = 'Methwyd ysgrifennu metadata'; +$lang['metasaveok'] = 'Cadwyd y metadata'; +$lang['img_title'] = 'Teitl:'; +$lang['img_caption'] = 'Egluryn:'; +$lang['img_date'] = 'Dyddiad:'; +$lang['img_fname'] = 'Enw ffeil:'; +$lang['img_fsize'] = 'Maint:'; +$lang['img_artist'] = 'Ffotograffydd:'; +$lang['img_copyr'] = 'Hawlfraint:'; +$lang['img_format'] = 'Fformat:'; +$lang['img_camera'] = 'Camera:'; +$lang['img_keywords'] = 'Allweddeiriau:'; +$lang['img_width'] = 'Lled:'; +$lang['img_height'] = 'Uchder:'; + +$lang['subscr_subscribe_success'] = 'Ychwanegwyd %s i\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_subscribe_error'] = 'Gwall wrth ychwanegu %s i\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_subscribe_noaddress'] = '\'Sdim cyfeiriad wedi\'i gysylltu gyda\'ch defnyddair, felly \'sdim modd eich ychwanegu chi i\'r rhestr danysgrifio'; +$lang['subscr_unsubscribe_success'] = 'Tynnwyd %s o\'r rhestr danysgrifio ar gyfer %s'; +$lang['subscr_unsubscribe_error'] = 'Roedd gwall wrth dynnu %s o\'r rhestr danysgrfio ar gyfer %s'; +$lang['subscr_already_subscribed'] = 'Mae %s eisoes wedi tanysgrifio i %s'; +$lang['subscr_not_subscribed'] = '\'Dyw %s heb danysgrifio i %s'; +// Manage page for subscriptions +$lang['subscr_m_not_subscribed'] = '\'Dych chi heb danysgrifio i\'r dudalen gyfredol neu\'r namespace, yn bresennol.'; //namespace +$lang['subscr_m_new_header'] = 'Ychwanegu tanysgrifiad'; +$lang['subscr_m_current_header'] = 'Tanysgrifiadau cyfredol'; +$lang['subscr_m_unsubscribe'] = 'Tynnu tanysgrifiad'; +$lang['subscr_m_subscribe'] = 'Tanysgrifio'; +$lang['subscr_m_receive'] = 'Derbyn'; +$lang['subscr_style_every'] = 'ebost ar bob newid'; +$lang['subscr_style_digest'] = 'ebost cryno o\'r newidiadau ar bob tudalen (pob %.2f diwrnod)'; +$lang['subscr_style_list'] = 'rhestr o dudalennau a newidiwyd ers yr ebost diwethaf (pob %.2f diwrnod)'; + +/* auth.class language support */ +$lang['authtempfail'] = '\'Dyw dilysiad defnyddiwr ddim ar gael yn bresennol (dros dro). Os ydy\'r sefyllfa\'n parhau, cysylltwch â gweinyddwr y wici.'; + +/* installer strings */ +$lang['i_chooselang'] = 'Dewiswch eich iaith'; +$lang['i_installer'] = 'Arsefydlwr DokuWiki'; +$lang['i_wikiname'] = 'Enw Wici'; +$lang['i_enableacl'] = 'Galluogi ACL (awgrymwyd)'; +$lang['i_superuser'] = 'Uwchddefnyddiwr'; +$lang['i_problems'] = 'Gwnaeth yr arsefydlwr ddod o hyd i broblemau, isod. \'Sdim modd parhau nes i chi eu datrys nhw.'; +$lang['i_modified'] = 'Oherwydd rhesymau diogelwch, bydd y sgript hwn dim ond yn gweithio gydag arsefydliad DokuWiki newydd sydd heb ei newid. + Dylech chi naill ai ail-echdynnu\'r ffeiliau o\'r pecyn a lawrlwythwyd neu porwch dros y + <a href="http://dokuwiki.org/install">canllawiau arsefydylu Dokuwiki</a> cyfan'; +$lang['i_funcna'] = 'Swyddogaeth PHP <code>%s</code> ddim ar gael. Posib bod eich gwesteiwr wedi\'i hanalluogi am ryw reswm?'; +$lang['i_phpver'] = 'Mae\'ch fersiwn PHP <code>%s</code> yn is na\'r hyn sydd ei angen <code>%s</code>. Mae angen i chi ddiweddaru eich arsefydliad PHP.'; +$lang['i_mbfuncoverload'] = 'Mae\'n rhaid analluogi mbstring.func_overload mewn php.ini er mwyn rhedeg DokuWiki.'; +$lang['i_permfail'] = '\'Dyw DokuWiki ddim yn gallu ysgrifennu i <code>%s</code>. Mae angen newid gosodiadau hawliau ar gyfer y ffolder hwn!'; +$lang['i_confexists'] = 'Mae <code>%s</code> eisoes yn bodoli'; +$lang['i_writeerr'] = 'Methu creu <code>%s</code>. Bydd angen i chi wirio hawliau ffolder/ffeil a chreu\'r ffeil gan law.'; +$lang['i_badhash'] = 'dokuwiki.php heb ei adnabod neu wedi\'i newid (hash=<code>%s</code>)'; +$lang['i_badval'] = '<code>%s</code> - gwerth anghyfreithlon neu wag'; +$lang['i_success'] = 'Gorffennodd y ffurfwedd yn llwyddiannus. Gallwch chi ddileu\'r ffeil install.php nawr. Ewch + <a href="doku.php?id=wiki:welcome">i\'ch DokuWiki newydd</a>.'; +$lang['i_failure'] = 'Ymddangosodd gwallau wrth ysgrifennu\'r ffeiliau ffurfwedd. Bydd angen i chi eu cywiro + nhw gan law cyn gallwch chi ddefnyddio\'ch <a href="doku.php?id=wiki:welcome">DokuWiki newydd</a>.'; +$lang['i_policy'] = 'Polisi ACL cychwynnol'; +$lang['i_pol0'] = 'Wici Agored (darllen, ysgrifennu, lanlwytho i bawb)'; +$lang['i_pol1'] = 'Wici Cyhoeddus (darllen i bawb, ysgrifennu a lanlwytho i ddefnyddwyr cofrestredig)'; +$lang['i_pol2'] = 'Wici Caeedig (darllen, ysgrifennu, lanlwytho i ddefnyddwyr cofrestredig yn unig)'; +$lang['i_allowreg'] = 'Caniatáu defnyddwyr i gofrestru eu hunain'; +$lang['i_retry'] = 'Ailgeisio'; +$lang['i_license'] = 'Dewiswch y drwydded rydych chi am osod ar eich cynnwys:'; +$lang['i_license_none'] = 'Peidio â dangos unrhyw wybodaeth drwyddedu'; +$lang['i_pop_field'] = 'Plis, helpwch ni i wella\'r profiad o ddefnyddio DokuWiki:'; +$lang['i_pop_label'] = 'Anfon data defnydd anhysbys i ddatblygwyr DokuWiki unwaith y mis'; + +$lang['recent_global'] = 'Yn bresennol, rydych chi\'n gwylio newidiadau tu fewn namespace <b>%s</b>. Gallwch chi hefyd <a href="%s">weld y newidiadau diweddar ar gyfer y wici cyfan</a>.'; //namespace + +$lang['years'] = '%d blynedd yn ôl'; +$lang['months'] = '%d mis yn ôl'; +$lang['weeks'] = '%d wythnos yn ôl'; +$lang['days'] = '%d diwrnod yn ôl'; +$lang['hours'] = '%d awr yn ôl'; +$lang['minutes'] = '%d munud yn ôl'; +$lang['seconds'] = '%d eiliad yn ôl'; + +$lang['wordblock'] = 'Doedd eich newid heb gadw gan ei fod yn cynnwys testun wedi\'i flocio (sbam).'; + +$lang['media_uploadtab'] = 'Lanlwytho'; +$lang['media_searchtab'] = 'Chwilio'; +$lang['media_file'] = 'Ffeil'; +$lang['media_viewtab'] = 'Golwg'; +$lang['media_edittab'] = 'Golygu'; +$lang['media_historytab'] = 'Hanes'; +$lang['media_list_thumbs'] = 'Bawdlun'; +$lang['media_list_rows'] = 'Rhesi'; +$lang['media_sort_name'] = 'Enw'; +$lang['media_sort_date'] = 'Dyddiad'; +$lang['media_namespaces'] = 'Dewis namespace'; //namespace +$lang['media_files'] = 'Ffeiliau mewn %s'; +$lang['media_upload'] = 'Lanlwytho i %s'; +$lang['media_search'] = 'Chwilio mewn %s'; +$lang['media_view'] = '%s'; +$lang['media_viewold'] = '%s ar %s'; +$lang['media_edit'] = 'Golygu %s'; +$lang['media_history'] = 'Hanes %s'; +$lang['media_meta_edited'] = 'golygwyd metadata'; +$lang['media_perm_read'] = 'Sori, ond \'sdim digon o hawliau \'da chi i ddarllen ffeiliau.'; +$lang['media_perm_upload'] = 'Sori, ond \'sdim digon o hawliau \'da chi i lanlwytho ffeiliau.'; +$lang['media_update'] = 'Lanlwytho fersiwn newydd'; +$lang['media_restore'] = 'Adfer y fersiwn hwn'; +$lang['media_acl_warning'] = 'Gall y rhestr hon fod yn anghyflawn oherwydd cyfyngiadau ACL a thudalennau coll.'; + +$lang['currentns'] = 'Namespace cyfredol'; //namespace +$lang['searchresult'] = 'Canlyniad Chwilio'; +$lang['plainhtml'] = 'HTML Plaen'; +$lang['wikimarkup'] = 'Iaith Wici'; +$lang['page_nonexist_rev'] = 'Doedd y dudalen ddim yn bodoli ar %s. Cafodd ei chreu wedyn ar <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Methu dosbarthu ar baramedr "%s".'; +//Setup VIM: ex: et ts=2 : diff --git a/inc/lang/cy/locked.txt b/inc/lang/cy/locked.txt new file mode 100644 index 0000000000000000000000000000000000000000..4c7865dd01ca63a5c663aaa7ce2324187e8f127b --- /dev/null +++ b/inc/lang/cy/locked.txt @@ -0,0 +1,3 @@ +====== Tudalen ar glo ====== + +Mae'r dudalen hon wedi'i chloi ar gyfer golygu gan ddefnyddiwr arall. Bydd yn rhaid i chi aros tan i'r defnyddiwr orffen golygu neu tan fod y cyfnod cloi yn dod i ben. diff --git a/inc/lang/cy/login.txt b/inc/lang/cy/login.txt new file mode 100644 index 0000000000000000000000000000000000000000..dbdde0e67e8e12f610a5f4ff71a4870c82b80171 --- /dev/null +++ b/inc/lang/cy/login.txt @@ -0,0 +1,4 @@ +====== Mewngofnodi ====== + +'Dych chi heb fewngofnodi! Rhowch eich manylion mewngofnodi isod. Mae angen galluogi cwcis er mwyn mewngofnodi. + diff --git a/inc/lang/cy/mailtext.txt b/inc/lang/cy/mailtext.txt new file mode 100644 index 0000000000000000000000000000000000000000..27462332e9a0beff45ff587b370a18a3a37daafe --- /dev/null +++ b/inc/lang/cy/mailtext.txt @@ -0,0 +1,17 @@ +Cafodd tudalen yn eich DokuWiki ei hychwanegu neu newid. Dyma'r manylion: + +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ +Hen Adolygiad : @OLDPAGE@ +Adolygiad Newydd: @NEWPAGE@ +Crynodeb Golygu : @SUMMARY@ +Defnyddiwr : @USER@ + +@DIFF@ + + +-- +Cafodd y neges hon ei generadyu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/mailwrap.html b/inc/lang/cy/mailwrap.html new file mode 100644 index 0000000000000000000000000000000000000000..254fcca7a411e37af0a070b21ba4125427866ddb --- /dev/null +++ b/inc/lang/cy/mailwrap.html @@ -0,0 +1,13 @@ +<html> +<head> + <title>@TITLE@</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +</head> +<body> + +@HTMLBODY@ + +<br /><hr /> +<small>Cafodd y neges hon ei generadu gan DokuWiki ar @DOKUWIKIURL@.</small> +</body> +</html> diff --git a/inc/lang/cy/newpage.txt b/inc/lang/cy/newpage.txt new file mode 100644 index 0000000000000000000000000000000000000000..dfe8a79d9ea22a41578a35ff0f70b9bf25c90522 --- /dev/null +++ b/inc/lang/cy/newpage.txt @@ -0,0 +1,4 @@ +====== 'Dyw'r testun hwn ddim yn bodoli eto ====== + +Rydych chi wedi dilyn dolen i destun sy ddim yn bodoli eto. Os oes hawliau 'da chi, gallwch chi ei greu gan bwyso ar "Creu y dudalen hon". + diff --git a/inc/lang/cy/norev.txt b/inc/lang/cy/norev.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d978c55022711b2d368794db94a28396a85b29a --- /dev/null +++ b/inc/lang/cy/norev.txt @@ -0,0 +1,4 @@ +====== Adolygiad ddim y bodoli ====== + +'Dyw'r adolygiad hwn ddim yn bodoli. Pwyswch ar "Hen adolygiadau" am restr o hen adolygiadau'r ddogfen hon. + diff --git a/inc/lang/cy/password.txt b/inc/lang/cy/password.txt new file mode 100644 index 0000000000000000000000000000000000000000..da0678ef32006529d6b20ee1a833a45607d375b1 --- /dev/null +++ b/inc/lang/cy/password.txt @@ -0,0 +1,10 @@ +Shw mae @FULLNAME@! + +Dyma'ch manylion ar gyfer @TITLE@ ar @DOKUWIKIURL@ + +Defnyddair : @LOGIN@ +Cyfrinair : @PASSWORD@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/preview.txt b/inc/lang/cy/preview.txt new file mode 100644 index 0000000000000000000000000000000000000000..477879d51c55e7d28060db3fc87bda8bbba87c1e --- /dev/null +++ b/inc/lang/cy/preview.txt @@ -0,0 +1,4 @@ +====== Rhagolwg ====== + +Dyma ragolwg o sut fydd eich testun yn edrych. Cofiwch: 'Dyw e **heb ei gadw** 'to! + diff --git a/inc/lang/cy/pwconfirm.txt b/inc/lang/cy/pwconfirm.txt new file mode 100644 index 0000000000000000000000000000000000000000..529571e14c20206babfeef998b24ce2bc4a60853 --- /dev/null +++ b/inc/lang/cy/pwconfirm.txt @@ -0,0 +1,15 @@ +Shw mae @FULLNAME@! + +Mae rhywun wedi gofyn am gyfrinair newydd ar gyfer eich manylion +@TITLE@ ar @DOKUWIKIURL@ + +Os na wnaethoch chi ofyn am gyfrinair newydd, anwybyddwch yr e-bost hwn. + +I gadarnhau daeth y cais oddi wrthoch chi, pwyswch y ddolen isod. + +@CONFIRM@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ + diff --git a/inc/lang/cy/read.txt b/inc/lang/cy/read.txt new file mode 100644 index 0000000000000000000000000000000000000000..8703ef9374bb94b46d99eef142ec27e04e6d2c6b --- /dev/null +++ b/inc/lang/cy/read.txt @@ -0,0 +1,2 @@ +Mae'r dudalen hon i'w darllen yn unig. Gallwch chi edrych ar y ffynhonnell, ond nid ei newid hi. Cysylltwch â'ch gweinyddwr chi os ydych chi'n meddwl bod hwn yn anghywir. + diff --git a/inc/lang/cy/recent.txt b/inc/lang/cy/recent.txt new file mode 100644 index 0000000000000000000000000000000000000000..2affbf9050d17511e976ba4df5f3b013e6641013 --- /dev/null +++ b/inc/lang/cy/recent.txt @@ -0,0 +1,5 @@ +====== Newidiadau Diweddar ====== + +Cafodd y tudalennau canlynol eu newid yn ddiweddar. + + diff --git a/inc/lang/cy/register.txt b/inc/lang/cy/register.txt new file mode 100644 index 0000000000000000000000000000000000000000..6fbc8505622ce389d4c8da69e5245df287b94b1f --- /dev/null +++ b/inc/lang/cy/register.txt @@ -0,0 +1,4 @@ +====== Cofrestru fel defnyddiwr newydd ====== + +Llenwch yr holl wybodaeth isod i greu cyfrif newydd ar y wici hwn. Sicrhewch eich bod chi'n cynnwys **cyfeiriad e-bost dilys** - os na chewch chi'ch annog am gyfrinair, caiff un ei anfon i'ch cyfeiriad. Dylai'r enw mewngofnodi fod yn [[doku>pagename|enw tudalen]] dilys. + diff --git a/inc/lang/cy/registermail.txt b/inc/lang/cy/registermail.txt new file mode 100644 index 0000000000000000000000000000000000000000..0cb2b4fd230d280425a4771ec98676cf80527b88 --- /dev/null +++ b/inc/lang/cy/registermail.txt @@ -0,0 +1,14 @@ +Cofrestrodd defnyddiwr newydd. Dyma'r manylion: + +Defnyddair : @NEWUSER@ +Enw llawn : @NEWNAME@ +E-bost : @NEWEMAIL@ + +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/resendpwd.txt b/inc/lang/cy/resendpwd.txt new file mode 100644 index 0000000000000000000000000000000000000000..ddad8a906b2d981bbccdbf393b43df31fdd1ec26 --- /dev/null +++ b/inc/lang/cy/resendpwd.txt @@ -0,0 +1,4 @@ +====== Anfon cyfrinair newydd ====== + +Ailgyflwynwch eich defnyddair yn y ffurflen isod i wneud cais am gyfrinair newydd i'ch cyfrif ar y wici hwn. Caiff ddolen gadarnhau ei hanfon i chi drwy eich e-bost cofrestredig. + diff --git a/inc/lang/cy/resetpwd.txt b/inc/lang/cy/resetpwd.txt new file mode 100644 index 0000000000000000000000000000000000000000..57f19928e817fb201424af205238ef04cbca5171 --- /dev/null +++ b/inc/lang/cy/resetpwd.txt @@ -0,0 +1,4 @@ +====== Gosod cyfrinair newydd ====== + +Rhowch gyfrinair newydd i'ch cyfrif ar y wici hwn. + diff --git a/inc/lang/cy/revisions.txt b/inc/lang/cy/revisions.txt new file mode 100644 index 0000000000000000000000000000000000000000..afbc9fed28d656d54933c0610d90a0d5e721eda0 --- /dev/null +++ b/inc/lang/cy/revisions.txt @@ -0,0 +1,4 @@ +====== Hen Adolygiadau ====== + +Dyma adolygiadau hÅ·n y ddogfen gyfredol. I droi'n ôl i hen adolygiad, dewiswch e isod a phwyso ''Golygu'r dudalen hon'' a'i gadw. + diff --git a/inc/lang/cy/searchpage.txt b/inc/lang/cy/searchpage.txt new file mode 100644 index 0000000000000000000000000000000000000000..fd554e1e70ef61e28b4fec80c7b28bd8fe21a395 --- /dev/null +++ b/inc/lang/cy/searchpage.txt @@ -0,0 +1,5 @@ +====== Chwilio ====== + +Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@ + +===== Canlyniadau ===== diff --git a/inc/lang/cy/showrev.txt b/inc/lang/cy/showrev.txt new file mode 100644 index 0000000000000000000000000000000000000000..6cc9d6c2eea3381bf1ce17c78f324ee698e82a8a --- /dev/null +++ b/inc/lang/cy/showrev.txt @@ -0,0 +1,2 @@ +**Dyma hen adolygiad y ddogfen!** +---- diff --git a/inc/lang/ku/stopwords.txt b/inc/lang/cy/stopwords.txt similarity index 69% rename from inc/lang/ku/stopwords.txt rename to inc/lang/cy/stopwords.txt index bc6eb48aea08f241e220bc59d6d6851acfb8e381..2ac4c3174cd8686747dfd2ea485ce8c31bd28b06 100644 --- a/inc/lang/ku/stopwords.txt +++ b/inc/lang/cy/stopwords.txt @@ -2,28 +2,30 @@ # 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/ -about -are -and -you -your -them -their -com -for -from -into -how -that -the -this -was -what -when -where -who -will -with -und -the -www +allan +beth +ble +bydd +chi +dyma +dyna +eich +gyda +hefyd +hon +honna +hwn +hwnnw +hwy +hyn +hynny +mewn +nhw +oddi +oedd +pan +pwy +roedd +sut +wrth +www \ No newline at end of file diff --git a/inc/lang/cy/subscr_digest.txt b/inc/lang/cy/subscr_digest.txt new file mode 100644 index 0000000000000000000000000000000000000000..611e0570924f24a04e9080aa1e4282fa505894d5 --- /dev/null +++ b/inc/lang/cy/subscr_digest.txt @@ -0,0 +1,20 @@ +Shw mae! + +Gwnaeth y dudalen @PAGE@ mewn wici @TITLE@ newid. +Dyma'r newidiadau: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Hen Adolygiad: @OLDPAGE@ +Adolygiad Newydd: @NEWPAGE@ + +I ganslo hysbysiadau tudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ ac yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a/neu namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/subscr_form.txt b/inc/lang/cy/subscr_form.txt new file mode 100644 index 0000000000000000000000000000000000000000..47d1a1715b4bc342c0353051c254e723a5cc601f --- /dev/null +++ b/inc/lang/cy/subscr_form.txt @@ -0,0 +1,3 @@ +====== Rheoli Tanysgrifiad ====== + +Mae'r dudalen hon yn eich galluogi i reoli'ch tanysgrifiadau ar gyfer y dudalen gyfredol a'r namespace. diff --git a/inc/lang/cy/subscr_list.txt b/inc/lang/cy/subscr_list.txt new file mode 100644 index 0000000000000000000000000000000000000000..592f29028a1df3dcbef703516c6f4348cb1c11da --- /dev/null +++ b/inc/lang/cy/subscr_list.txt @@ -0,0 +1,17 @@ +Shw mae! + +Gwnaeth tudalennau yn y namespace @PAGE@ o'r wici @TITLE@ newid. +Dyma'r tudaalennau sydd wedi newid: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a/neu namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/subscr_single.txt b/inc/lang/cy/subscr_single.txt new file mode 100644 index 0000000000000000000000000000000000000000..2a774ebd28728667c7d37351e3909d7d787991a5 --- /dev/null +++ b/inc/lang/cy/subscr_single.txt @@ -0,0 +1,23 @@ +Shw mae! + +Gwnaeth y dudalen @PAGE@ yn y wici @TITLE@ newid. +Dyma'r newidiadau: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dyddiad : @DATE@ +Defnyddiwr : @USER@ +Crynodeb Golygu : @SUMMARY@ +Hen Adolygiad : @OLDPAGE@ +Adolygiad Newwydd: @NEWPAGE@ + +I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar +@DOKUWIKIURL@ yna ewch i +@SUBSCRIBE@ +a thanysgrifio o newidiadau tudalen a namespace. + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/cy/updateprofile.txt b/inc/lang/cy/updateprofile.txt new file mode 100644 index 0000000000000000000000000000000000000000..ce9ca503f3e5955feacdbc1e83c3850d01b6284d --- /dev/null +++ b/inc/lang/cy/updateprofile.txt @@ -0,0 +1,5 @@ +====== Diweddaru proffil eich cyfrif ====== + +Newidiwch y meysydd rydych chi amm newid yn unig. 'Sdim modd i chi newid eich defnyddair. + + diff --git a/inc/lang/cy/uploadmail.txt b/inc/lang/cy/uploadmail.txt new file mode 100644 index 0000000000000000000000000000000000000000..8102232a3512578ed0b08f67845a702876b53560 --- /dev/null +++ b/inc/lang/cy/uploadmail.txt @@ -0,0 +1,15 @@ +Cafodd ffeil ei lanlwytho i'ch DokuWiki. Dyma'r manylion: + +Ffeil : @MEDIA@ +Hen adolygiad : @OLD@ +Dyddiad : @DATE@ +Porwr : @BROWSER@ +Cyfeiriad-IP : @IPADDRESS@ +Gwesteiwr : @HOSTNAME@ +Maint : @SIZE@ +Teip MIME : @MIME@ +Defnyddiwr : @USER@ + +-- +Cafodd y neges hon ei generadu gan DokuWiki ar +@DOKUWIKIURL@ diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index b4f3157de122219425e5ca57246c966fd5b6127f..24cf0e1fac811458a80bd3cd431ffdb32035decc 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -51,7 +51,6 @@ $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'] = 'Abonnér pÃ¥ ændringer'; $lang['btn_profile'] = 'Opdatér profil'; $lang['btn_reset'] = 'Nulstil'; @@ -163,7 +162,6 @@ $lang['js']['media_overwrt'] = 'Overskriv eksisterende filer'; $lang['rssfailed'] = 'Der opstod en fejl ved hentning af dette feed: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; -$lang['fileupload'] = 'Overfør mediefil'; $lang['uploadsucc'] = 'Overførels blev fuldført'; $lang['uploadfail'] = 'Overførslen fejlede. Der er muligvis problemer med rettighederne.'; $lang['uploadwrong'] = 'Overførslen blev afvist. Filtypen er ikke tilladt.'; @@ -254,7 +252,6 @@ $lang['qb_sig'] = 'Indsæt signatur'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Specialtegn'; $lang['upperns'] = 'GÃ¥ til overordnet navnerum'; -$lang['admin_register'] = 'Tilføj ny bruger'; $lang['metaedit'] = 'Rediger metadata'; $lang['metasaveerr'] = 'Fejl under skrivning af metadata'; $lang['metasaveok'] = 'Metadata gemt'; @@ -287,7 +284,6 @@ $lang['subscr_style_every'] = 'email pÃ¥ hver ændring'; $lang['subscr_style_digest'] = 'opsummeringsmail med ændringer for hver side (hver %.2f dage)'; $lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)'; $lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.'; -$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.'; $lang['i_chooselang'] = 'Vælg dit sprog'; $lang['i_installer'] = 'DokuWiki Installer'; $lang['i_wikiname'] = 'Wiki Navn'; diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index f0f16b54a03b372ff28015a0cebdb0af0c97ea94..065848c6174c67625e43de4e594f3e244fd58331 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Andreas Gohr <andi@splitbrain.org> * @author Christof <gagi@fin.de> * @author Anika Henke <anika@selfthinker.org> @@ -22,6 +22,7 @@ * @author Frank Loizzi <contact@software.bacal.de> * @author Volker Bödker <volker@boedker.de> * @author Janosch <janosch@moinzen.de> + * @author rnck <dokuwiki@rnck.de> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -53,7 +54,6 @@ $lang['btn_update'] = 'Updaten'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; -$lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Aboverwaltung'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; @@ -66,6 +66,8 @@ $lang['btn_register'] = 'Registrieren'; $lang['btn_apply'] = 'Übernehmen'; $lang['btn_media'] = 'Medien-Manager'; $lang['btn_deleteuser'] = 'Benutzerprofil löschen'; +$lang['btn_img_backto'] = 'Zurück zu %s'; +$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen'; $lang['loggedinas'] = 'Angemeldet als:'; $lang['user'] = 'Benutzername'; $lang['pass'] = 'Passwort'; @@ -81,11 +83,12 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.'; $lang['minoredit'] = 'Kleine Änderung'; $lang['draftdate'] = 'Entwurf gespeichert am'; $lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.'; -$lang['searchcreatepage'] = "Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **''[Seite anlegen]''** drückst."; +$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **\'\'[Seite anlegen]\'\'** drückst.'; $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; $lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.'; +$lang['regfail'] = 'Der Benutzer konnte nicht erstellt werden.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.'; $lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; @@ -100,6 +103,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen'; $lang['profdeleted'] = 'Dein Benutzerprofil wurde im Wiki gelöscht.'; $lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.'; $lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.'; +$lang['proffail'] = 'Das Benutzerprofil wurde nicht aktualisiert.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort setzen für'; @@ -162,7 +166,6 @@ $lang['js']['media_overwrt'] = 'Existierende Dateien überschreiben'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; @@ -196,6 +199,11 @@ $lang['difflink'] = 'Link zu der Vergleichsansicht'; $lang['diff_type'] = 'Unterschiede anzeigen:'; $lang['diff_inline'] = 'Inline'; $lang['diff_side'] = 'Side by Side'; +$lang['diffprevrev'] = 'Vorherige Überarbeitung'; +$lang['diffnextrev'] = 'Nächste Überarbeitung'; +$lang['difflastrev'] = 'Letzte Überarbeitung'; +$lang['diffbothprevrev'] = 'Beide Seiten, vorherige Überarbeitung'; +$lang['diffbothnextrev'] = 'Beide Seiten, nächste Überarbeitung'; $lang['line'] = 'Zeile'; $lang['breadcrumb'] = 'Zuletzt angesehen:'; $lang['youarehere'] = 'Du befindest dich hier:'; @@ -248,11 +256,9 @@ $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; $lang['upperns'] = 'Gehe zum übergeordneten Namensraum'; -$lang['admin_register'] = 'Neuen Benutzer anmelden'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; -$lang['btn_img_backto'] = 'Zurück zu %s'; $lang['img_title'] = 'Titel:'; $lang['img_caption'] = 'Bildunterschrift:'; $lang['img_date'] = 'Datum:'; @@ -265,7 +271,6 @@ $lang['img_camera'] = 'Kamera:'; $lang['img_keywords'] = 'Schlagwörter:'; $lang['img_width'] = 'Breite:'; $lang['img_height'] = 'Höhe:'; -$lang['btn_mediaManager'] = 'Im Medien-Manager anzeigen'; $lang['subscr_subscribe_success'] = 'Die Seite %s wurde zur Abonnementliste von %s hinzugefügt'; $lang['subscr_subscribe_error'] = 'Fehler beim Hinzufügen von %s zur Abonnementliste von %s'; $lang['subscr_subscribe_noaddress'] = 'In deinem Account ist keine E-Mail-Adresse hinterlegt. Dadurch kann die Seite nicht abonniert werden'; @@ -283,7 +288,6 @@ $lang['subscr_style_every'] = 'E-Mail bei jeder Änderung'; $lang['subscr_style_digest'] = 'E-Mail mit zusammengefasster Übersicht der Seitenänderungen (alle %.2f Tage)'; $lang['subscr_style_list'] = 'Auflistung aller geänderten Seiten seit der letzten E-Mail (alle %.2f Tage)'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wende dich an den Admin.'; -$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.'; $lang['i_chooselang'] = 'Wähle deine Sprache'; $lang['i_installer'] = 'DokuWiki-Installation'; $lang['i_wikiname'] = 'Wiki-Name'; @@ -293,6 +297,7 @@ $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführ $lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.'; $lang['i_funcna'] = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?'; $lang['i_phpver'] = 'Deine PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisiere deine PHP-Installation.'; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.'; $lang['i_permfail'] = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!'; $lang['i_confexists'] = '<code>%s</code> existiert bereits'; $lang['i_writeerr'] = '<code>%s</code> konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.'; @@ -342,6 +347,10 @@ $lang['media_perm_read'] = 'Du besitzt nicht die notwendigen Berechtigunge $lang['media_perm_upload'] = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.'; $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnis'; -$lang['email_signature'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter'; +$lang['email_signature'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter'; +$lang['plainhtml'] = 'Reines HTML'; +$lang['wikimarkup'] = 'Wiki Markup'; +$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index c38708efe921144f0fbba492c4460077be7f86a3..abf44881c56d22c68c0d9d6659b1d038843ce101 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -28,6 +28,7 @@ * @author Hoisl <hoisl@gmx.at> * @author Marcel Eickhoff <eickhoff.marcel@gmail.com> * @author Pascal Schröder <Pascal1802@gmail.com> + * @author Hendrik Diel <diel.hendrik@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -59,7 +60,6 @@ $lang['btn_update'] = 'Updaten'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; -$lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Aboverwaltung'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; @@ -94,6 +94,7 @@ $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden.'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; $lang['regsuccess2'] = 'Der neue Benutzer wurde angelegt.'; +$lang['regfail'] = 'Der Benutzer konnte nicht angelegt werden.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwort-E-Mail aufgetreten. Bitte wenden Sie sich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene E-Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wenden Sie sich bitte an den Wiki-Admin.'; $lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuchen Sie es noch einmal.'; @@ -108,6 +109,7 @@ $lang['profdeleteuser'] = 'Benutzerprofil löschen'; $lang['profdeleted'] = 'Ihr Benutzerprofil wurde im Wiki gelöscht.'; $lang['profconfdelete'] = 'Ich möchte mein Benutzerprofil löschen.<br/> Diese Aktion ist nicht umkehrbar.'; $lang['profconfdeletemissing'] = 'Bestätigungs-Checkbox wurde nicht angehakt.'; +$lang['proffail'] = 'Das Benutzerkonto konnte nicht aktualisiert werden.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort setzen für'; @@ -170,7 +172,6 @@ $lang['js']['media_overwrt'] = 'Existierende Dateien überschreiben'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; @@ -261,7 +262,6 @@ $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; $lang['upperns'] = 'zum übergeordneten Namensraum springen'; -$lang['admin_register'] = 'Neuen Benutzer anmelden'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; @@ -294,7 +294,6 @@ $lang['subscr_style_every'] = 'E-Mail 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['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Admin.'; -$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; $lang['i_installer'] = 'DokuWiki Installation'; $lang['i_wikiname'] = 'Wiki-Name'; @@ -354,10 +353,11 @@ $lang['media_perm_read'] = 'Sie besitzen nicht die notwendigen Berechtigun $lang['media_perm_upload'] = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.'; $lang['media_update'] = 'Neue Version hochladen'; $lang['media_restore'] = 'Diese Version wiederherstellen'; +$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.'; $lang['currentns'] = 'Aktueller Namensraum'; $lang['searchresult'] = 'Suchergebnisse'; $lang['plainhtml'] = 'HTML Klartext'; $lang['wikimarkup'] = 'Wiki Markup'; -$lang['page_nonexist_rev'] = 'DIe Seite exitiert nicht unter %s. Sie wurde aber unter <a herf="%s">%s</a>'; +$lang['page_nonexist_rev'] = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>'; $lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.'; $lang['email_signature'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter'; diff --git a/inc/lang/de/subscr_list.txt b/inc/lang/de/subscr_list.txt index 2da939f8d6390f77134207cb93f5e049bc5a93b9..1b2331ad53cc3d46b5b5d4669ded1c319555473a 100644 --- a/inc/lang/de/subscr_list.txt +++ b/inc/lang/de/subscr_list.txt @@ -7,7 +7,7 @@ Das sind die geänderten Seiten: @DIFF@ -------------------------------------------------------- -Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an @DOKUWIKIURL@, besuchen dann @SUBSCRIBE@ und klicken auf die Taste 'Änderungen abbestellen'. diff --git a/inc/lang/el/jquery.ui.datepicker.js b/inc/lang/el/jquery.ui.datepicker.js index a852a77d7388ed7a73e77dd0d46403292fa603c5..362e248f8e4688279f8774d7fad9c968b589ca32 100644 --- a/inc/lang/el/jquery.ui.datepicker.js +++ b/inc/lang/el/jquery.ui.datepicker.js @@ -16,7 +16,7 @@ datepicker.regional['el'] = { closeText: 'Κλείσιμο', prevText: 'Î ÏοηγοÏμενος', nextText: 'Επόμενος', - currentText: 'ΤÏÎχων Μήνας', + currentText: 'ΣήμεÏα', monthNames: ['ΙανουάÏιος','ΦεβÏουάÏιος','ΜάÏτιος','ΑπÏίλιος','Μάιος','ΙοÏνιος', 'ΙοÏλιος','ΑÏγουστος','ΣεπτÎμβÏιος','ΟκτώβÏιος','ÎοÎμβÏιος','ΔεκÎμβÏιος'], monthNamesShort: ['Ιαν','Φεβ','ΜαÏ','ΑπÏ','Μαι','Ιουν', diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index a766a62849365ed51b06d9bc1219af61e5cdb8fb..548a38c25a921d831774a7ac5bda02f8ff16485d 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Thanos Massias <tm@thriasio.gr> * @author Αθανάσιος Îταής <homunculus@wana.gr> * @author Konstantinos Koryllos <koryllos@gmail.com> @@ -43,7 +43,6 @@ $lang['btn_update'] = 'ΕνημÎÏωση'; $lang['btn_delete'] = 'Σβήσιμο'; $lang['btn_back'] = 'Πίσω'; $lang['btn_backlink'] = 'ΣÏνδεσμοι Ï€Ïος αυτή τη σελίδα'; -$lang['btn_backtomedia'] = 'ΕπιστÏοφή στην επιλογή αÏχείων'; $lang['btn_subscribe'] = 'ΕγγÏαφή σε λήψη ενημεÏώσεων σελίδας'; $lang['btn_profile'] = 'ΕπεξεÏγασία Ï€Ïοφίλ'; $lang['btn_reset'] = 'ΑκÏÏωση'; @@ -152,7 +151,6 @@ $lang['js']['media_overwrt'] = 'Αντικατάσταση υπάÏχοντω $lang['rssfailed'] = 'ΠαÏουσιάστηκε κάποιο σφάλμα κατά την ανάγνωση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… feed: '; $lang['nothingfound'] = 'Δεν βÏÎθηκαν σχετικά αποτελÎσματα.'; $lang['mediaselect'] = 'Επιλογή ΑÏχείων'; -$lang['fileupload'] = 'ΦόÏτωση αÏχείου'; $lang['uploadsucc'] = 'Επιτυχής φόÏτωση'; $lang['uploadfail'] = 'Η μεταφόÏτωση απÎτυχε. Πιθανόν αυτό να οφείλεται στις Ïυθμίσεις Ï€Ïόσβασης του αÏχείου.'; $lang['uploadwrong'] = 'Η μεταφόÏτωση δεν Îγινε δεκτή. Δεν επιτÏÎπονται αÏχεία Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… Ï„Ïπου!'; @@ -237,7 +235,6 @@ $lang['qb_sig'] = 'Î Ïοσθήκη ΥπογÏαφής'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Ειδικοί ΧαÏακτήÏες'; $lang['upperns'] = 'πήγαινε στον μητÏικό φάκελο'; -$lang['admin_register'] = 'Î Ïοσθήκη νÎου χÏήστη'; $lang['metaedit'] = 'ΤÏοποποίηση metadata'; $lang['metasaveerr'] = 'Η αποθήκευση των metadata απÎτυχε'; $lang['metasaveok'] = 'Επιτυχής αποθήκευση metadata'; @@ -272,7 +269,6 @@ $lang['subscr_style_every'] = 'email σε κάθε αλλαγή'; $lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μÎÏες)'; $lang['subscr_style_list'] = 'λίστα σελίδων με αλλαγÎÏ‚ μετά από το τελευταίο email (κάθε %.2f μÎÏες)'; $lang['authtempfail'] = 'Η συνδεση χÏηστών είναι απενεÏγοποιημÎνη αυτή την στιγμή. Αν αυτό διαÏκÎσει για πολÏ, παÏακαλοÏμε ενημεÏώστε τον διαχειÏιστή του wiki.'; -$lang['authpwdexpire'] = 'Ο κωδικός Ï€Ïόσβασης θα λήξει σε %d ημÎÏες. Î Ïοτείνουμε να τον αλλάξετε σÏντομα.'; $lang['i_chooselang'] = 'Επιλογή γλώσσας'; $lang['i_installer'] = 'Οδηγός εγκατάστασης DokuWiki'; $lang['i_wikiname'] = 'Ονομασία wiki'; @@ -288,8 +284,8 @@ $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_success'] = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλÎον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο <a href="doku.php?id=wiki:welcome">νÎο σας DokuWiki</a>.'; +$lang['i_failure'] = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανÎωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το <a href="doku.php?id=wiki:welcome">νÎο σας DokuWiki</a>.'; $lang['i_policy'] = 'ΑÏχική πολιτική Λίστας Δικαιωμάτων Î Ïόσβασης - ACL'; $lang['i_pol0'] = 'Ανοιχτό Wiki (όλοι μποÏοÏν να διαβάσουν ή να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; $lang['i_pol1'] = 'Δημόσιο Wiki (όλοι μποÏοÏν να διαβάσουν σελίδες αλλά μόνο οι εγγεγÏαμμÎνοι χÏήστες μποÏοÏν να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 56d6a31d13ab958487c6214b8f1c2c640173e1ad..105269ead44b63568d086c5b8a8c4cdae8f09214 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -39,7 +39,6 @@ $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Delete'; $lang['btn_back'] = 'Back'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Back to Mediafile Selection'; $lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'Update Profile'; $lang['btn_reset'] = 'Reset'; @@ -76,6 +75,7 @@ $lang['regmissing'] = 'Sorry, you must fill in all fields.'; $lang['reguexists'] = 'Sorry, a user with this login already exists.'; $lang['regsuccess'] = 'The user has been created and the password was sent by email.'; $lang['regsuccess2'] = 'The user has been created.'; +$lang['regfail'] = 'The user could not be created.'; $lang['regmailfail'] = 'Looks like there was an error on sending the password mail. Please contact the admin!'; $lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin'; $lang['regbadpass'] = 'The two given passwords are not identical, please try again.'; @@ -91,6 +91,7 @@ $lang['profdeleteuser'] = 'Delete Account'; $lang['profdeleted'] = 'Your user account has been deleted from this wiki'; $lang['profconfdelete'] = 'I wish to remove my account from this wiki. <br/> This action can not be undone.'; $lang['profconfdeletemissing'] = 'Confirmation check box not ticked'; +$lang['proffail'] = 'User profile was not updated.'; $lang['pwdforget'] = 'Forgotten your password? Get a new one'; $lang['resendna'] = 'This wiki does not support password resending.'; @@ -159,7 +160,6 @@ $lang['rssfailed'] = 'An error occurred while fetching this feed: '; $lang['nothingfound'] = 'Nothing was found.'; $lang['mediaselect'] = 'Media Files'; -$lang['fileupload'] = 'Media File Upload'; $lang['uploadsucc'] = 'Upload successful'; $lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; $lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; @@ -256,8 +256,6 @@ $lang['qb_chars'] = 'Special Chars'; $lang['upperns'] = 'jump to parent namespace'; -$lang['admin_register'] = 'Add new user'; - $lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Writing metadata failed'; $lang['metasaveok'] = 'Metadata saved'; @@ -294,7 +292,6 @@ $lang['subscr_style_list'] = 'list of changed pages since last email (e /* auth.class language support */ $lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.'; -$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; /* installer strings */ $lang['i_chooselang'] = 'Choose your language'; @@ -363,6 +360,7 @@ $lang['media_perm_read'] = 'Sorry, you don\'t have enough rights to read f $lang['media_perm_upload'] = 'Sorry, you don\'t have enough rights to upload files.'; $lang['media_update'] = 'Upload new version'; $lang['media_restore'] = 'Restore this version'; +$lang['media_acl_warning'] = 'This list might not be complete due to ACL restrictions and hidden pages.'; $lang['currentns'] = 'Current namespace'; $lang['searchresult'] = 'Search Result'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 48bd0ea7b0c4e5c1db377c61a2f8cfbb744b8294..82462cd94c025e80c0594702cb6760d883ffe324 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Antono Vasiljev <esperanto.minsk ĈE tut.by> * @author Felipe Castro <fefcas@yahoo.com.br> * @author Felipe Castro <fefcas@uol.com.br> @@ -17,7 +17,7 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Redakti la paÄon'; $lang['btn_source'] = 'Montri fontan tekston'; $lang['btn_show'] = 'Montri paÄon'; @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Aktualigi'; $lang['btn_delete'] = 'Forigi'; $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_profile'] = 'Aktualigi profilon'; $lang['btn_reset'] = 'Rekomenci'; @@ -153,7 +152,6 @@ $lang['js']['media_overwrt'] = 'Anstataûi ekzistantajn dosierojn'; $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'; -$lang['fileupload'] = 'AlÅuto de aÅdvidaĵa dosiero'; $lang['uploadsucc'] = 'AlÅuto sukcesis'; $lang['uploadfail'] = 'AlÅuto malsukcesis. Ĉu eble estas problemoj pro permes-atributoj?'; $lang['uploadwrong'] = 'Rifuzita alÅuto. Tiu ĉi dosiersufikso estas malpermesata!'; @@ -244,7 +242,6 @@ $lang['qb_sig'] = 'Inkluzivi subskribon'; $lang['qb_smileys'] = 'Ridetuloj'; $lang['qb_chars'] = 'Specialaj signaĵoj'; $lang['upperns'] = 'saltu al la parenca nomspaco'; -$lang['admin_register'] = 'Aldoni novan uzanton'; $lang['metaedit'] = 'Redakti metadatumaron'; $lang['metasaveerr'] = 'La konservo de metadatumaro malsukcesis'; $lang['metasaveok'] = 'La metadatumaro konserviÄis'; @@ -277,7 +274,6 @@ $lang['subscr_style_every'] = 'retpoÅtaĵo pro ĉiu ÅanÄo'; $lang['subscr_style_digest'] = 'resuma retpoÅtaĵo de ÅanÄoj por ĉiu paÄo (je %.2f tagoj)'; $lang['subscr_style_list'] = 'listo de ÅanÄitaj paÄoj ekde la lasta retpoÅtaĵo (je %.2f tagoj)'; $lang['authtempfail'] = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daÅros, bonvolu informi la adminstranton de la vikio.'; -$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ÅanÄu Äin baldaÅ©.'; $lang['i_chooselang'] = 'Elektu vian lingvon'; $lang['i_installer'] = 'Instalilo de DokuWiki'; $lang['i_wikiname'] = 'Nomo de la vikio'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 59a779fb9393b47ddef2916bddb53c5f3880ca0c..ff6a035a9cb61b088da9bfe7877f5d1455bb7399 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -39,6 +39,10 @@ * @author pokesakura <pokesakura@gmail.com> * @author Ãlvaro Iradier <airadier@gmail.com> * @author Alejandro Nunez <nunez.alejandro@gmail.com> + * @author Mauricio Segura <maose38@yahoo.es> + * @author Domingo Redal <docxml@gmail.com> + * @author solohazlo <solohhazlo@gmail.com> + * @author Romano <romanocl@outlook.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -70,7 +74,6 @@ $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; $lang['btn_backlink'] = 'Enlaces a esta página'; -$lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia'; $lang['btn_subscribe'] = 'Suscribirse a cambios de la página'; $lang['btn_profile'] = 'Actualizar perfil'; $lang['btn_reset'] = 'Restablecer'; @@ -105,6 +108,7 @@ $lang['regmissing'] = 'Lo siento, tienes que completar todos los camp $lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.'; $lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.'; $lang['regsuccess2'] = 'El usuario ha sido creado.'; +$lang['regfail'] = 'No se pudo crear el usuario.'; $lang['regmailfail'] = 'Parece que ha habido un error al enviar el correo con la contraseña. ¡Por favor, contacta al administrador!'; $lang['regbadmail'] = 'La dirección de correo no parece válida. Si piensas que esto es un error, contacta al administrador'; $lang['regbadpass'] = 'Las dos contraseñas no son iguales, por favor inténtalo de nuevo.'; @@ -119,6 +123,7 @@ $lang['profdeleteuser'] = 'Eliminar Cuenta'; $lang['profdeleted'] = 'Tu cuenta de usuario ha sido eliminada de este wiki'; $lang['profconfdelete'] = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.'; $lang['profconfdeletemissing'] = 'Casilla de verificación no activada.'; +$lang['proffail'] = 'No se ha actualizado el perfil del usuario.'; $lang['pwdforget'] = '¿Has olvidado tu contraseña? Consigue una nueva'; $lang['resendna'] = 'Este wiki no brinda la posibilidad de reenvÃo de contraseña.'; $lang['resendpwd'] = 'Establecer nueva contraseña para'; @@ -183,7 +188,6 @@ $lang['js']['media_overwrt'] = 'Sobreescribir ficheros exitentes'; $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'; -$lang['fileupload'] = 'Subida de archivos multimedia'; $lang['uploadsucc'] = 'El archivo se ha subido satisfactoriamente'; $lang['uploadfail'] = 'La subida del fichero ha fallado. ¿Permisos equivocados?'; $lang['uploadwrong'] = 'Subida de fichero denegada. ¡Los ficheros con esta extensión están prohibidos!'; @@ -274,7 +278,6 @@ $lang['qb_sig'] = 'Insertar firma'; $lang['qb_smileys'] = 'Sonrisas'; $lang['qb_chars'] = 'Caracteres especiales'; $lang['upperns'] = 'Saltar al espacio de nombres superior'; -$lang['admin_register'] = 'Añadir nuevo usuario'; $lang['metaedit'] = 'Editar metadatos'; $lang['metasaveerr'] = 'La escritura de los metadatos ha fallado'; $lang['metasaveok'] = 'Los metadatos han sido guardados'; @@ -307,7 +310,6 @@ $lang['subscr_style_every'] = 'enviar correo en cada cambio'; $lang['subscr_style_digest'] = 'Resumen de correo electrónico de cambios por cada página (cada %.2f dÃas)'; $lang['subscr_style_list'] = 'lista de páginas modificadas desde el último correo electrónico (cada %.2f dÃas)'; $lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.'; -$lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; $lang['i_chooselang'] = 'Elija su idioma'; $lang['i_installer'] = 'Instalador de DokuWiki'; $lang['i_wikiname'] = 'Nombre del wiki'; @@ -367,6 +369,7 @@ $lang['media_perm_read'] = 'Disculpa, no tienes los permisos necesarios pa $lang['media_perm_upload'] = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.'; $lang['media_update'] = 'Actualizar nueva versión'; $lang['media_restore'] = 'Restaurar esta versión'; +$lang['media_acl_warning'] = 'Puede que esta lista no esté completa debido a restricciones de la ACL y a las páginas ocultas.'; $lang['currentns'] = 'Espacio de nombres actual'; $lang['searchresult'] = 'Resultado de la búsqueda'; $lang['plainhtml'] = 'HTML sencillo'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 21437e1d92675d2677004379a1c8e50947db3ed2..bda5e6483f642c9bf257c9f8a5ff60a09e8b391e 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Oliver S6ro <seem.iges@mail.ee> * @author Aari Juhanson <aari@vmg.vil.ee> * @author Kaiko Kaur <kaiko@kultuur.edu.ee> @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Uuenda'; $lang['btn_delete'] = 'Kustuta'; $lang['btn_back'] = 'Tagasi'; $lang['btn_backlink'] = 'Tagasilingid'; -$lang['btn_backtomedia'] = 'Tagasi faili valikusse'; $lang['btn_subscribe'] = 'Jälgi seda lehte (teated meilile)'; $lang['btn_profile'] = 'Minu info'; $lang['btn_reset'] = 'Taasta'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Asenda olemasolevad failid'; $lang['rssfailed'] = 'Sinu soovitud info ammutamisel tekkis viga: '; $lang['nothingfound'] = 'Oops, aga mitte muhvigi ei leitud.'; $lang['mediaselect'] = 'Hunnik faile'; -$lang['fileupload'] = 'Faili üleslaadimine'; $lang['uploadsucc'] = 'Üleslaadimine läks ootuspäraselt hästi'; $lang['uploadfail'] = 'Üleslaadimine läks nässu. Äkki pole Sa selleks lihtsalt piisavalt võimukas tegija?'; $lang['uploadwrong'] = 'Ei saa Sa midagi üles laadida. Oops, aga seda tüüpi faili sul lihtsalt ei lubata üles laadida'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Lisa allkiri!'; $lang['qb_smileys'] = 'Emotikonid'; $lang['qb_chars'] = 'Erisümbolid'; $lang['upperns'] = 'mine ülemisse nimeruumi'; -$lang['admin_register'] = 'Lisa kasutaja'; $lang['metaedit'] = 'Muuda lisainfot'; $lang['metasaveerr'] = 'Lisainfo salvestamine läks untsu.'; $lang['metasaveok'] = 'Lisainfo salvestatud'; @@ -273,7 +270,6 @@ $lang['subscr_style_every'] = 'igast toimetamisest teavitab ekiri'; $lang['subscr_style_digest'] = 'kokkuvõte ekirjaga toimetamistest igal leheküljel (iga %.2f päeva järel)'; $lang['subscr_style_list'] = 'Peale viimast ekirja (iga %.2f päeva järel) toimetaud lehekülgede loend.'; $lang['authtempfail'] = 'Kasutajate autentimine on ajutiselt rivist väljas. Kui see olukord mõne aja jooksul ei parane, siis teavita sellest serveri haldajat.'; -$lang['authpwdexpire'] = 'Sinu salasõna aegub %päeva pärast, võiksid seda peatselt muuta.'; $lang['i_chooselang'] = 'Vali keel'; $lang['i_installer'] = 'DokuWiki paigaldaja'; $lang['i_wikiname'] = 'Wiki nimi'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 3ddd59ca1327046d85495af72f4e341e8f8d4704..5205bd6cf258fe8049159b49946bd17910d16317 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'Eguneratu'; $lang['btn_delete'] = 'Ezabatu'; $lang['btn_back'] = 'Atzera'; $lang['btn_backlink'] = 'Itzulera estekak'; -$lang['btn_backtomedia'] = 'Atzera Multimedia Fitxategiaren Aukeraketara'; $lang['btn_subscribe'] = 'Harpidetu Orri Aldaketetara'; $lang['btn_profile'] = 'Eguneratu Profila '; $lang['btn_reset'] = 'Aldaketak Desegin'; @@ -143,7 +142,6 @@ $lang['js']['media_overwrt'] = 'Dauden fitxategiak berridatzi'; $lang['rssfailed'] = 'Errorea gertatu da feed hau irakurtzean:'; $lang['nothingfound'] = 'Ez da ezer aurkitu.'; $lang['mediaselect'] = 'Aukeratu Multimedia fitxategia'; -$lang['fileupload'] = 'Igo Multimedia Fitxategia'; $lang['uploadsucc'] = 'Igoera arrakastatsua'; $lang['uploadfail'] = 'Igoerak huts egin du. Baimen arazoengatik agian?'; $lang['uploadwrong'] = 'Fitxategi igoera ukatua. Fitxategi-luzapen hau debekatua dago!'; @@ -229,7 +227,6 @@ $lang['qb_sig'] = 'Gehitu sinadura'; $lang['qb_smileys'] = 'Irrifartxoak'; $lang['qb_chars'] = 'Karaktere Bereziak'; $lang['upperns'] = 'Jauzi izen-espazio gurasora'; -$lang['admin_register'] = 'Erabiltzaile berria gehitu'; $lang['metaedit'] = 'Metadatua Aldatu'; $lang['metasaveerr'] = 'Metadatuaren idazketak huts egin du'; $lang['metasaveok'] = 'Metadatua gordea'; @@ -262,7 +259,6 @@ $lang['subscr_style_every'] = 'e-posta aldaketa bakoitzean'; $lang['subscr_style_digest'] = 'e-posta laburbildua orri bakoitzeko aldaketentzat (%.2f egunero)'; $lang['subscr_style_list'] = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)'; $lang['authtempfail'] = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari'; -$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.'; $lang['i_chooselang'] = 'Hautatu zure hizkuntza'; $lang['i_installer'] = 'DokuWiki instalatzailea'; $lang['i_wikiname'] = 'Wiki Izena'; diff --git a/inc/lang/fa/admin.txt b/inc/lang/fa/admin.txt index ce7550977193a42f7d69f4ed3eca49d565f5c650..f8e36ba4940feb9cb050e63c8cc0b59f7eb8f390 100644 --- a/inc/lang/fa/admin.txt +++ b/inc/lang/fa/admin.txt @@ -1,3 +1,3 @@ ====== مدیریت ====== -در اینجا لیستی از وظیÙه‌های مدیریتی را مشاهده می‌کنید. \ No newline at end of file +در اینجا Ùهرستی از وظیÙه‌های مدیریتی را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/adminplugins.txt b/inc/lang/fa/adminplugins.txt index 3d2bb4a5b589a9dc5fe74f256aecb0d35c033dcf..dab0251be2462a89f6d65b0e4c1930fbc0737505 100644 --- a/inc/lang/fa/adminplugins.txt +++ b/inc/lang/fa/adminplugins.txt @@ -1 +1 @@ -===== برنامه های جانبی دیگر ===== \ No newline at end of file +===== برنامه‌های جانبی دیگر ===== \ No newline at end of file diff --git a/inc/lang/fa/backlinks.txt b/inc/lang/fa/backlinks.txt index 6864e22d60d132e7557e620007f3c083b99bff68..774d3d6cc517b496c025085157059321b8902fdd 100644 --- a/inc/lang/fa/backlinks.txt +++ b/inc/lang/fa/backlinks.txt @@ -1,3 +1,3 @@ ====== پیوندهای بازگشتی ====== -در این‌جا لیستی از ØµÙØØ§ØªÛŒ Ú©Ù‡ به این ØµÙØÙ‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file +در این‌جا Ùهرستی از ØµÙØØ§ØªÛŒ Ú©Ù‡ به این ØµÙØÙ‡ پیوند داده‌اند را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/denied.txt b/inc/lang/fa/denied.txt index 4bffa0f3c2f2e91fc65b0456b18abfcd503feb11..190b710ca85f580424dad1670845d456310ab51d 100644 --- a/inc/lang/fa/denied.txt +++ b/inc/lang/fa/denied.txt @@ -1,4 +1,4 @@ ====== دسترسی ممکن نیست ====== -شرمنده، شما اجازه‌ی دسترسی ب این ØµÙØÙ‡ را ندارید. +شرمنده، شما اجازهٔ دسترسی به این ØµÙØÙ‡ را ندارید. diff --git a/inc/lang/fa/diff.txt b/inc/lang/fa/diff.txt index d5354f727f8c967e4930fe40b9d3984aafa3c39e..80e1ce7a1f2ef885f70ed2c93954197fe7fe67b0 100644 --- a/inc/lang/fa/diff.txt +++ b/inc/lang/fa/diff.txt @@ -1,3 +1,3 @@ ====== ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ ====== -ØªÙØ§ÙˆØª دو نسخه‌ی Ù…ØªÙØ§ÙˆØª از ØµÙØÙ‡ را مشاهده می‌کنید. \ No newline at end of file +ØªÙØ§ÙˆØª دو نسخهٔ Ù…ØªÙØ§ÙˆØª از ØµÙØÙ‡ را مشاهده می‌کنید. \ No newline at end of file diff --git a/inc/lang/fa/editrev.txt b/inc/lang/fa/editrev.txt index ca896feebbfb835645c81d55aa6450fab52d614a..eae539414b15ac22699ebd12a5033f46f6e8b32d 100644 --- a/inc/lang/fa/editrev.txt +++ b/inc/lang/fa/editrev.txt @@ -1 +1,2 @@ -**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! \ No newline at end of file +**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید! +---- \ No newline at end of file diff --git a/inc/lang/fa/jquery.ui.datepicker.js b/inc/lang/fa/jquery.ui.datepicker.js index 8ffd664111ece1d11d0db44ea53e16c8a4c10c20..71f8a2852045de6135cbf38cf1ee08032dc60b94 100644 --- a/inc/lang/fa/jquery.ui.datepicker.js +++ b/inc/lang/fa/jquery.ui.datepicker.js @@ -19,18 +19,18 @@ datepicker.regional['fa'] = { nextText: 'بعدی>', currentText: 'امروز', monthNames: [ - 'ÙØ±ÙˆØ±Ø¯ÙŠÙ†', - 'ارديبهشت', - 'خرداد', - 'تير', - 'مرداد', - 'شهريور', - 'مهر', - 'آبان', - 'آذر', - 'دی', - 'بهمن', - 'اسÙند' + 'ژانویه', + 'Ùوریه', + 'مارس', + 'آوریل', + 'مه', + 'ژوئن', + 'ژوئیه', + 'اوت', + 'سپتامبر', + 'اکتبر', + 'نوامبر', + 'دسامبر' ], monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], dayNames: [ diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 46f64a9c3c6901dc2797870f858d30de314be424..feacf2460474f5912d686a27875ee3efc5223904 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author Omid Mottaghi <omidmr@gmail.com> @@ -15,6 +15,8 @@ * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -24,9 +26,9 @@ $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'ویرایش این ØµÙØÙ‡'; -$lang['btn_source'] = 'نمایش مبدا'; +$lang['btn_source'] = 'نمایش متن ØµÙØÙ‡'; $lang['btn_show'] = 'نمایش ØµÙØÙ‡'; -$lang['btn_create'] = 'ساخت این ØµÙØÙ‡'; +$lang['btn_create'] = 'ایجاد این ØµÙØÙ‡'; $lang['btn_search'] = 'جستجو'; $lang['btn_save'] = 'ذخیره'; $lang['btn_preview'] = 'پیش‌نمایش'; @@ -46,7 +48,6 @@ $lang['btn_update'] = 'به‌روزرسانی'; $lang['btn_delete'] = 'ØØ°Ù'; $lang['btn_back'] = 'عقب'; $lang['btn_backlink'] = 'پیوندهای به این ØµÙØÙ‡'; -$lang['btn_backtomedia'] = 'بازگشت به انتخاب ÙØ§ÛŒÙ„'; $lang['btn_subscribe'] = 'عضویت در تغییرات ØµÙØÙ‡'; $lang['btn_profile'] = 'به‌روزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„'; $lang['btn_reset'] = 'بازنشاندن'; @@ -64,23 +65,24 @@ $lang['btn_mediaManager'] = 'مشاهده در مدیریت رسانه‌ه $lang['loggedinas'] = 'به این عنوان وارد شده‌اید:'; $lang['user'] = 'نام کاربری'; $lang['pass'] = 'گذرواژه‌'; -$lang['newpass'] = 'گذروازه‌ی جدید'; +$lang['newpass'] = 'گذرواژه‌ی جدید'; $lang['oldpass'] = 'گذرواژه‌ی ÙØ¹Ù„ÛŒ را تایید کنید'; $lang['passchk'] = 'یک بار دیگر'; $lang['remember'] = 'مرا به خاطر بسپار.'; -$lang['fullname'] = '*نام واقعی شما'; -$lang['email'] = 'ایمیل شما*'; +$lang['fullname'] = 'نام واقعی شما'; +$lang['email'] = 'ایمیل شما'; $lang['profile'] = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر'; -$lang['badlogin'] = 'خطا در ورود به سیستم'; -$lang['badpassconfirm'] = 'متاسÙÙ… ØŒ رمز عبور اشتباه است'; +$lang['badlogin'] = 'متاسÙÙ…ØŒ نام کاربری یا رمز عبور اشتباه است.'; +$lang['badpassconfirm'] = 'متاسÙÙ…ØŒ رمز عبور اشتباه است'; $lang['minoredit'] = 'این ویرایش Ø®ÙØ±Ø¯ است'; -$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس'; +$lang['draftdate'] = 'ذخیره خودکار پیش‌نویس در'; $lang['nosecedit'] = 'این ØµÙØÙ‡ در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض Ù…ØØªÙˆØ§ÛŒ Ú©Ù„ نمایش داده می‌شود.'; $lang['searchcreatepage'] = 'اگر به نتیجه‌ی مطلوبی نرسیده‌اید، می‌توانید ØµÙØÙ‡â€ŒÛŒ مورد نظر را ایجاد کنید.'; $lang['regmissing'] = 'متاسÙÙ…ØŒ شما باید همه قسمت‌ها را پر کنید.'; $lang['reguexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; $lang['regsuccess'] = 'کاربر ساخته شد Ùˆ گذرواژه به صورت ایمیل ارسال گردید.'; $lang['regsuccess2'] = 'ØØ³Ø§Ø¨ ایجاد شد.'; +$lang['regfail'] = 'ایجاد کاربر ممکن نیست.'; $lang['regmailfail'] = 'مشکلی در ارسال ایمیل پیش آمده است، با مدیر تماس بگیرید!'; $lang['regbadmail'] = 'نشانی واردشده‌ی ایمیل قابل‌قبول نیست، چرا Ú©Ù‡ دارای ساختار نامعتبری است. خواهشمندیم نشانی‌ای با ساختار صØÛŒØ وارد کنید Ùˆ یا بخش مربوط را خالی بگذارید.'; $lang['regbadpass'] = 'گذرواژه‌هایی Ú©Ù‡ وارد کردید یکسان نیستند.'; @@ -95,30 +97,30 @@ $lang['profdeleteuser'] = 'ØØ°Ù ØØ³Ø§Ø¨ کاربری'; $lang['profdeleted'] = 'ØØ³Ø§Ø¨ کاربری شما ØØ°Ù گردیده است.'; $lang['profconfdelete'] = 'می‌خواهم ØØ³Ø§Ø¨ کاربری من از این ویکی ØØ°Ù شود. <br/> این عمل قابل برگشت نیست.'; $lang['profconfdeletemissing'] = 'جعبه‌ی تأیید تیک نخورده است'; -$lang['pwdforget'] = 'گذرواژه‌ی خود را ÙØ±Ø§Ù…وش کرده‌اید؟ جدید Ø¯Ø±ÛŒØ§ÙØª کنید'; +$lang['proffail'] = 'بروزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربری انجام نشد.'; +$lang['pwdforget'] = 'گذرواژه‌ی خود را ÙØ±Ø§Ù…وش کرده‌اید؟ گذرواژه‌ی جدید Ø¯Ø±ÛŒØ§ÙØª کنید'; $lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند'; $lang['resendpwd'] = 'تعیین کلمه عبور جدید برای '; -$lang['resendpwdmissing'] = 'متاسÙÙ…ØŒ شما باید تمام قسمت‌ها را پر کنید'; -$lang['resendpwdnouser'] = 'متاسÙÙ…ØŒ ما نتوانستیم این نام کاربری را در بانک خود پیدا کنیم'; +$lang['resendpwdmissing'] = 'متاسÙÙ…ØŒ شما باید تمام قسمت‌ها را پر کنید.'; +$lang['resendpwdnouser'] = 'متاسÙÙ…ØŒ ما نتوانستیم این نام کاربری را در پایگاه دادهٔ خود پیدا کنیم.'; $lang['resendpwdbadauth'] = 'متاسÙÙ…ØŒ کد شناسایی معتبر نیست. از ØµØØª لینک تاییدیه اطمینان ØØ§ØµÙ„ کنید.'; -$lang['resendpwdconfirm'] = 'یک ایمیل تاییدیه‌ی آدرس به آدرس مورنظر ارسال شد. قبل از اینکه نامه‌ی دیگری قابل ارسال به این آدرس باشد، باید دستوراتی Ú©Ù‡ در آن نامه آمده است را جهت تایید این مساله Ú©Ù‡ این آدرس متعلق به شماست، اجرا کنید.'; -$lang['resendpwdsuccess'] = 'گذرواژه‌ی جدید شما توسط ایمیل ارسال شد'; +$lang['resendpwdconfirm'] = 'یک لینک تاییدیه آدرس از طریق ایمیل ارسال شد.'; +$lang['resendpwdsuccess'] = 'گذرواژه‌ی جدید شما توسط ایمیل ارسال شد.'; $lang['license'] = 'به جز مواردی Ú©Ù‡ ذکر می‌شود، مابقی Ù…ØØªÙˆÛŒØ§Øª ویکی ØªØØª مجوز زیر می‌باشند:'; $lang['licenseok'] = 'توجه: با ویرایش این ØµÙØÙ‡ØŒ شما مجوز زیر را تایید می‌کنید:'; $lang['searchmedia'] = 'نام ÙØ§ÛŒÙ„ برای جستجو:'; $lang['searchmedia_in'] = 'جستجو در %s'; -$lang['txt_upload'] = 'ÙØ§ÛŒÙ„ را برای ارسال انتخاب کنید:'; +$lang['txt_upload'] = 'ÙØ§ÛŒÙ„ را برای آپلود انتخاب کنید:'; $lang['txt_filename'] = 'ارسال به صورت (اختیاری):'; $lang['txt_overwrt'] = 'بر روی ÙØ§ÛŒÙ„ موجود بنویس'; $lang['maxuploadsize'] = 'ØØ¯Ø§Ú©Ø«Ø± %s برای هر ÙØ§ÛŒÙ„ مجاز است.'; $lang['lockedby'] = 'در ØØ§Ù„ ØØ§Ø¶Ø± Ù‚ÙÙ„ شده است:'; -$lang['lockexpire'] = 'Ù‚ÙÙ„ منقضی شده است:'; +$lang['lockexpire'] = 'Ù‚ÙÙ„ منقضی می‌شود در:'; $lang['js']['willexpire'] = 'ØØ§Ù„ت Ù‚ÙÙ„ شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمه‌ی پیش‌نمایش را برای ØµÙØ± شدن ساعت Ù‚ÙÙ„ بزنید.'; -$lang['js']['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد Ø±ÙØª. - می‌خواهید ادامه دهید؟'; -$lang['js']['searchmedia'] = 'جستجو برای ÙØ§ÛŒÙ„'; -$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگه‌دار'; -$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; +$lang['js']['notsavedyet'] = 'تغییرات ذخیره نشده از بین خواهد Ø±ÙØª.'; +$lang['js']['searchmedia'] = 'جستجو برای ÙØ§ÛŒÙ„‌ها'; +$lang['js']['keepopen'] = 'پنجره را در زمان انتخاب باز نگه‌دار'; +$lang['js']['hidedetails'] = 'پنهان کردن جزئیات'; $lang['js']['mediatitle'] = 'تنظیمات پیوند'; $lang['js']['mediadisplay'] = 'نوع پیوند'; $lang['js']['mediaalign'] = 'هم‌ترازی'; @@ -126,13 +128,13 @@ $lang['js']['mediasize'] = 'اندازه تصویر'; $lang['js']['mediatarget'] = 'هد٠پیوند'; $lang['js']['mediaclose'] = 'بستن'; $lang['js']['mediainsert'] = 'درج کردن'; -$lang['js']['mediadisplayimg'] = 'نمایش تصویر'; +$lang['js']['mediadisplayimg'] = 'نمایش تصویر.'; $lang['js']['mediadisplaylnk'] = 'Ùقط پیوند را نمایش بده.'; $lang['js']['mediasmall'] = 'نگارش Ú©ÙˆÚ†Ú©'; $lang['js']['mediamedium'] = 'نگارش متوسط'; $lang['js']['medialarge'] = 'نگارش بزرگ'; $lang['js']['mediaoriginal'] = 'نگارش اصلی'; -$lang['js']['medialnk'] = 'پیوند به ØµÙØÙ‡â€ŒÛŒ جزییات'; +$lang['js']['medialnk'] = 'پیوند به ØµÙØÙ‡â€ŒÛŒ جزئیات'; $lang['js']['mediadirect'] = 'پیوند مستقیم به اصلی'; $lang['js']['medianolnk'] = 'بدون پیوند'; $lang['js']['medianolink'] = 'تصویر را پیوند Ù†Ú©Ù†'; @@ -150,39 +152,38 @@ $lang['js']['media_diff'] = 'ØªÙØ§ÙˆØª ها را ببینید: '; $lang['js']['media_diff_both'] = 'پهلو به پهلو'; $lang['js']['media_diff_opacity'] = 'درخشش از'; $lang['js']['media_diff_portions'] = 'Ú©Ø´ Ø±ÙØªÙ†'; -$lang['js']['media_select'] = 'انتخاب ÙØ§ÛŒÙ„ -یا ÙØ§ÛŒÙ„ها- ...'; +$lang['js']['media_select'] = 'انتخاب ÙØ§ÛŒÙ„‌ها...'; $lang['js']['media_upload_btn'] = 'آپلود'; $lang['js']['media_done_btn'] = 'انجام شد'; -$lang['js']['media_drop'] = 'ÙØ§ÛŒÙ„ ها را در اینجا قرار دهید تا آپلود شود'; +$lang['js']['media_drop'] = 'ÙØ§ÛŒÙ„‌ها را در اینجا قرار دهید تا آپلود شود'; $lang['js']['media_cancel'] = 'ØØ°Ù'; -$lang['js']['media_overwrt'] = 'جاینوشت ÙØ§ÛŒÙ„ های موجود'; -$lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; -$lang['nothingfound'] = 'چیزی پیدا نشد'; +$lang['js']['media_overwrt'] = 'جاینوشت ÙØ§ÛŒÙ„‌های موجود'; +$lang['rssfailed'] = 'بروز خطا در هنگام واکشی این Ùید:'; +$lang['nothingfound'] = 'چیزی پیدا نشد.'; $lang['mediaselect'] = 'ÙØ§ÛŒÙ„‌ها'; -$lang['fileupload'] = 'ارسال پرونده'; $lang['uploadsucc'] = 'ارسال با موÙقیت انجام شد'; -$lang['uploadfail'] = 'خطا در ارسال'; -$lang['uploadwrong'] = 'ارسال متوق٠شد. این توسعه‌ی ÙØ§ÛŒÙ„ ممنوع می‌باشد.'; -$lang['uploadexist'] = 'این ÙØ§Ø¨Ù„ وجود دارد. عملی انجام نشد.'; -$lang['uploadbadcontent'] = 'Ù…ØØªÙˆØ§ÛŒ ÙØ§ÛŒÙ„ ارسال شده با توسعه‌ی %s متناقض است.'; +$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['namespaces'] = 'ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…'; +$lang['namespaces'] = 'ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها'; $lang['mediafiles'] = 'ÙØ§ÛŒÙ„‌های موجود در'; $lang['accessdenied'] = 'شما اجازه‌ی مشاهده‌ی این ØµÙØÙ‡ را ندارید.'; $lang['mediausage'] = 'برای ارجاع دادن به ÙØ§ÛŒÙ„ از نگارش زیر Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.'; $lang['mediaview'] = 'مشاهده‌ی ÙØ§ÛŒÙ„ اصلی'; $lang['mediaroot'] = 'ریشه'; -$lang['mediaupload'] = 'ارسال ÙØ§ÛŒÙ„ به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… کنونی. برای ایجاد Ø²ÛŒØ±ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها، نام‌های آن‌ها را به عنوان پیشوندهایی Ú©Ù‡ با دونقطه «:» جدا شده‌اند به نام ÙØ§ÛŒÙ„ØŒ در قسمت «ارسال به صورت» اضاÙÙ‡ کنید.'; -$lang['mediaextchange'] = 'توسعه‌ی ÙØ§ÛŒÙ„ از %s به %s تغییر داده شد.'; +$lang['mediaupload'] = 'ارسال ÙØ§ÛŒÙ„ به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… کنونی. برای ایجاد Ø²ÛŒØ±ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها، پس از انتخاب ÙØ§ÛŒÙ„‌ها در قسمت «ارسال به صورت» به نام ÙØ§ÛŒÙ„ نام‌های ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها را به عنوان پیشوندهایی Ú©Ù‡ با دونقطه «:» جدا شده‌اند، اضاÙÙ‡ کنید. همچنین ÙØ§ÛŒÙ„‌ها می‌توانند با کشیدن Ùˆ ول کردن انتخاب شوند.'; +$lang['mediaextchange'] = 'ÙØ±Ù…ت ÙØ§ÛŒÙ„ از %s به %s تغییر داده شد.'; $lang['reference'] = 'ارجاع‌های'; $lang['ref_inuse'] = 'این ÙØ§ÛŒÙ„ نمی‌تواند ØØ°Ù شود، زیرا هم‌چنان در این ØµÙØÙ‡ Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است:'; $lang['ref_hidden'] = 'تعدادی مرجع در ØµÙØØ§ØªÛŒ Ú©Ù‡ شما دسترسی خواندن ندارید وجود دارد.'; -$lang['hits'] = 'بازدید'; +$lang['hits'] = 'بازدیدها'; $lang['quickhits'] = 'جور کردن نام ØµÙØØ§Øª'; $lang['toc'] = 'Ùهرست مندرجات'; $lang['current'] = 'ÙØ¹Ù„ÛŒ'; @@ -250,7 +251,6 @@ $lang['qb_sig'] = 'Ø§ÙØ²ÙˆØ¯Ù† امضا'; $lang['qb_smileys'] = 'Ø´Ú©Ù„Ú©'; $lang['qb_chars'] = 'ØØ±ÙˆÙ ویژه'; $lang['upperns'] = 'پرش به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… بالا'; -$lang['admin_register'] = 'یک ØØ³Ø§Ø¨ جدید بسازید'; $lang['metaedit'] = 'ویرایش داده‌های متا'; $lang['metasaveerr'] = 'نوشتن داده‌نما با مشکل مواجه شد'; $lang['metasaveok'] = 'داده‌نما ذخیره شد'; @@ -283,7 +283,6 @@ $lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی $lang['subscr_style_digest'] = 'ایمیل خلاصه‌ی تغییرات هر روز (هر %.2f روز)'; $lang['subscr_style_list'] = 'Ùهرست ØµÙØØ§Øª ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ‡ از آخرین ایمیل (هر %.2f روز)'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این ØØ§Ù„ت پایدار بود، مدیر ویکی را باخبر سازید.'; -$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; $lang['i_chooselang'] = 'انتخاب زبان'; $lang['i_installer'] = 'نصب کننده‌ی Dokuwiki'; $lang['i_wikiname'] = 'نام ویکی'; @@ -343,8 +342,11 @@ $lang['media_perm_read'] = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما ØÙ‚ خواندن ای $lang['media_perm_upload'] = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما ØÙ‚ آپلود این ÙØ§ÛŒÙ„‌ها را ندارید.'; $lang['media_update'] = 'آپلود نسخه‌ی جدید'; $lang['media_restore'] = 'بازیابی این نسخه'; +$lang['media_acl_warning'] = 'این لیست ممکن است به خاطر Ù…ØØ¯ÙˆØ¯ÛŒØªÙ‡Ø§ÛŒ دسترسیهای ACL Ùˆ ØµÙØØ§Øª پنهان کامل نباشد.'; $lang['currentns'] = 'ÙØ¶Ø§ÛŒ نام جاری'; $lang['searchresult'] = 'نتیجه‌ی جستجو'; $lang['plainhtml'] = 'HTML ساده'; $lang['wikimarkup'] = 'نشانه‌گذاری ویکی'; $lang['email_signature'] = 'این ایمیل توسط DokuWiki تولید شده است'; +$lang['page_nonexist_rev'] = 'ØµÙØÙ‡ %s وجود نداشت. این ØµÙØÙ‡ معاقباً در<a href="%s">%s</a> ایجاد شد.'; +$lang['unable_to_parse_date'] = 'امکان تجزیه Ùˆ تØÙ„یل پارامتر «%s» وجود ندارد.'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 3f964b759d38675002a4717217292a1875b782f1..2bf5d68583eeee7ff688e85f1b180c1e0420494f 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Petteri <petteri@gmail.com> * @author Matti Pöllä <mpo@iki.fi> * @author Otto Vainio <otto@valjakko.net> @@ -17,7 +17,7 @@ $lang['doublequoteopening'] = 'â€'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '’'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Muokkaa tätä sivua'; $lang['btn_source'] = 'Näytä sivun lähdekoodi'; $lang['btn_show'] = 'Näytä sivu'; @@ -41,7 +41,6 @@ $lang['btn_update'] = 'Päivitä'; $lang['btn_delete'] = 'Poista'; $lang['btn_back'] = 'Takaisin'; $lang['btn_backlink'] = 'Paluulinkit'; -$lang['btn_backtomedia'] = 'Takaisin mediatiedostojen valintaan'; $lang['btn_subscribe'] = 'Tilaa muutokset'; $lang['btn_profile'] = 'Päivitä profiili'; $lang['btn_reset'] = 'Tyhjennä'; @@ -154,7 +153,6 @@ $lang['js']['media_overwrt'] = 'Ylikirjoita olemassa olevat tiedostot'; $lang['rssfailed'] = 'Virhe tapahtui noudettaessa tätä syötettä: '; $lang['nothingfound'] = 'Mitään ei löytynyt.'; $lang['mediaselect'] = 'Mediatiedoston valinta'; -$lang['fileupload'] = 'Mediatiedoston lähetys'; $lang['uploadsucc'] = 'Tiedoston lähetys onnistui'; $lang['uploadfail'] = 'Tiedoston lähetys epäonnistui. Syynä ehkä väärät oikeudet?'; $lang['uploadwrong'] = 'Tiedoston lähetys evätty. Tämä tiedostopääte on kielletty'; @@ -243,7 +241,6 @@ $lang['qb_sig'] = 'Lisää allekirjoitus'; $lang['qb_smileys'] = 'Hymiöt'; $lang['qb_chars'] = 'Erikoismerkit'; $lang['upperns'] = 'Hyppää edelliseen nimiavaruuteen'; -$lang['admin_register'] = 'Lisää uusi käyttäjä'; $lang['metaedit'] = 'Muokkaa metadataa'; $lang['metasaveerr'] = 'Metadatan kirjoittaminen epäonnistui'; $lang['metasaveok'] = 'Metadata tallennettu'; @@ -276,7 +273,6 @@ $lang['subscr_style_every'] = 'Sähköposti joka muutoksesta'; $lang['subscr_style_digest'] = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)'; $lang['subscr_style_list'] = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)'; $lang['authtempfail'] = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.'; -$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.'; $lang['i_chooselang'] = 'Valitse kieli'; $lang['i_installer'] = 'DokuWikin asentaja'; $lang['i_wikiname'] = 'Wikin nimi'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index c04031af766bbbb4ac8ace7b46073e3181a9be2a..cd2c37397656d266d3984391fd4ea20c41ce4886 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -8,11 +8,11 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = 'Vanligt gásareygað byrjan'; -$lang['doublequoteclosing'] = 'Vanligt gásareygað endi'; -$lang['singlequoteopening'] = 'Einstakt gásareygað byrjan'; -$lang['singlequoteclosing'] = 'Einstakt gásareygað endi'; -$lang['apostrophe'] = 'Apostroff'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; +$lang['singlequoteopening'] = '\''; +$lang['singlequoteclosing'] = '\''; +$lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Rætta hetta skjal'; $lang['btn_source'] = 'VÃs keldu'; $lang['btn_show'] = 'VÃs skjal'; @@ -36,7 +36,6 @@ $lang['btn_update'] = 'Dagfør'; $lang['btn_delete'] = 'Strika'; $lang['btn_back'] = 'Aftur'; $lang['btn_backlink'] = 'ÃvÃsingar afturúr'; -$lang['btn_backtomedia'] = 'Aftur til val av miðlafÃlu'; $lang['btn_subscribe'] = 'Tilmelda broytingar'; $lang['btn_profile'] = 'Dagføra vangamynd'; $lang['btn_reset'] = 'Nullstilla'; @@ -105,7 +104,6 @@ $lang['js']['del_confirm'] = 'Strika post(ar)?'; $lang['rssfailed'] = 'Eitt brek koma fyri tá roynt var at fáa: '; $lang['nothingfound'] = 'Leiting gav onki úrslit.'; $lang['mediaselect'] = 'Vel miðlafÃlu'; -$lang['fileupload'] = 'Legg miðla fÃlu upp'; $lang['uploadsucc'] = 'Upp legg av fÃlu var væl eydna'; $lang['uploadfail'] = 'Brek við upp legg av fÃlu. Tað er møguliga trupuleikar við rættindunum'; $lang['uploadwrong'] = 'Upp legg av fÃlu vÃst burtur. FÃluslag er ikki loyvt'; @@ -154,7 +152,6 @@ $lang['qb_media'] = 'Leggja myndir og aðrar fÃlur afturat'; $lang['qb_sig'] = 'Set inn undirskrift'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sertekn'; -$lang['admin_register'] = 'Upprætta nýggjan brúkara'; $lang['metaedit'] = 'Rætta metadáta'; $lang['metasaveerr'] = 'Brek við skriving av metadáta'; $lang['metasaveok'] = 'Metadáta goymt'; diff --git a/inc/lang/fr/jquery.ui.datepicker.js b/inc/lang/fr/jquery.ui.datepicker.js index 2f5ff3cbefabee53fd5e287adc515c7fcdc1e42e..6b6e0b35fc76f40d900dd45fef476bd1a7df1c6c 100644 --- a/inc/lang/fr/jquery.ui.datepicker.js +++ b/inc/lang/fr/jquery.ui.datepicker.js @@ -21,7 +21,7 @@ datepicker.regional['fr'] = { currentText: 'Aujourd\'hui', monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], - monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin', + monthNamesShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 10fed9e03bc2908c94662d7ef2f5f49e2d99276d..08847f20e00d419bfc31377085a40cd867dc9eb7 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -36,6 +36,8 @@ * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author YoBoY <yoboy@ubuntu-fr.org> * @author james <j.mccann@celcat.com> + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + * @author Floriang <antispam@floriang.eu> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -67,8 +69,7 @@ $lang['btn_update'] = 'Mettre à jour'; $lang['btn_delete'] = 'Effacer'; $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens de retour'; -$lang['btn_backtomedia'] = 'Retour à la sélection du fichier média'; -$lang['btn_subscribe'] = 'Gérer souscriptions'; +$lang['btn_subscribe'] = 'Gérer les abonnements'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; $lang['btn_resendpwd'] = 'Définir un nouveau mot de passe'; @@ -102,6 +103,7 @@ $lang['regmissing'] = 'Désolé, vous devez remplir tous les champs.' $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['regfail'] = 'L\'utilisateur n\'a pu être crée.'; $lang['regmailfail'] = 'On dirait qu\'il y a eu une erreur lors de l\'envoi du mot de passe de messagerie. Veuillez contacter 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, veuillez recommencez.'; @@ -116,6 +118,7 @@ $lang['profdeleteuser'] = 'Supprimer le compte'; $lang['profdeleted'] = 'Votre compte utilisateur a été supprimé de ce wiki'; $lang['profconfdelete'] = 'Je veux supprimer mon compte sur ce wiki. </br> Cette action est irréversible.'; $lang['profconfdeletemissing'] = 'La case de confirmation n\'est pas cochée'; +$lang['proffail'] = 'Le profil utilisateur n\'a pas été mis à jour.'; $lang['pwdforget'] = 'Mot de passe oublié ? Obtenez-en un nouveau'; $lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de passe.'; $lang['resendpwd'] = 'Définir un nouveau mot de passe pour'; @@ -178,7 +181,6 @@ $lang['js']['media_overwrt'] = 'Écraser les fichiers existants'; $lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; $lang['nothingfound'] = 'Pas de réponse.'; $lang['mediaselect'] = 'Sélection de fichiers'; -$lang['fileupload'] = 'Envoi de fichier'; $lang['uploadsucc'] = 'Envoi réussi'; $lang['uploadfail'] = 'L\'envoi a échoué. Les autorisations sont-elles correctes ?'; $lang['uploadwrong'] = 'Envoi refusé. Cette extension de fichier est interdite !'; @@ -196,7 +198,7 @@ $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'] = 'Afficher le fichier original'; $lang['mediaroot'] = 'racine'; -$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)'; +$lang['mediaupload'] = 'Envoyez un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez en le nom du fichier séparées par un double-point, après avoir choisis le(s) fichier(s). Le(s) fichier(s) peuvent également être envoyé(s) par glisser-déposer (drag & drop)'; $lang['mediaextchange'] = 'Extension du fichier modifiée de .%s en .%s !'; $lang['reference'] = 'Références pour'; $lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est toujours utilisé par les pages suivantes :'; @@ -269,7 +271,6 @@ $lang['qb_sig'] = 'Insérer une signature'; $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'] = 'Modifier les métadonnées'; $lang['metasaveerr'] = 'Erreur lors de l\'enregistrement des métadonnées'; $lang['metasaveok'] = 'Métadonnées enregistrées'; @@ -285,24 +286,23 @@ $lang['img_camera'] = 'Appareil photo:'; $lang['img_keywords'] = 'Mots-clés:'; $lang['img_width'] = 'Largeur:'; $lang['img_height'] = 'Hauteur:'; -$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste de souscription de %s'; -$lang['subscr_subscribe_error'] = 'Erreur à l\'ajout de %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é supprimé de la liste de souscription de %s'; -$lang['subscr_unsubscribe_error'] = 'Erreur au retrait de %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_subscribe_success'] = '%s a été ajouté à la liste des abonnés de %s'; +$lang['subscr_subscribe_error'] = 'Erreur à l\'ajout de %s à la liste des abonnés 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 des abonnés.'; +$lang['subscr_unsubscribe_success'] = '%s a été supprimé de la liste des abonnés de %s'; +$lang['subscr_unsubscribe_error'] = 'Erreur au retrait de %s de la liste des abonnés de %s'; +$lang['subscr_already_subscribed'] = '%s est déjà abonné à %s'; +$lang['subscr_not_subscribed'] = '%s n\'est pas abonné à %s'; +$lang['subscr_m_not_subscribed'] = 'Vous n\'êtes pour l\'instant pas abonné à la page actuelle ou à la catégorie'; +$lang['subscr_m_new_header'] = 'Ajouter un abonnement'; +$lang['subscr_m_current_header'] = 'Abonnements actifs'; +$lang['subscr_m_unsubscribe'] = 'Annuler l\'abonnement'; +$lang['subscr_m_subscribe'] = 'S\'abonner'; $lang['subscr_m_receive'] = 'Recevoir'; $lang['subscr_style_every'] = 'Recevoir un courriel à chaque modification'; $lang['subscr_style_digest'] = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page'; $lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)'; $lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'en informer l\'administrateur du wiki.'; -$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; $lang['i_chooselang'] = 'Choisissez votre langue'; $lang['i_installer'] = 'Installateur DokuWiki'; $lang['i_wikiname'] = 'Nom du wiki'; @@ -319,7 +319,7 @@ $lang['i_writeerr'] = 'Impossible de créer <code>%s</code>. Vous dev $lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)'; $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?id=wiki:welcome">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_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?id=wiki:welcome">votre nouveau DokuWiki</a>.'; $lang['i_policy'] = 'Politique de contrôle d\'accès 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)'; @@ -362,6 +362,7 @@ $lang['media_perm_read'] = 'Désolé, vous n\'avez pas l\'autorisation de $lang['media_perm_upload'] = 'Désolé, vous n\'avez pas l\'autorisation d\'envoyer des fichiers.'; $lang['media_update'] = 'Envoyer une nouvelle version'; $lang['media_restore'] = 'Restaurer cette version'; +$lang['media_acl_warning'] = 'En raison des restrictions dans les ACL et de pages cachées, cette liste peut ne pas être complète.'; $lang['currentns'] = 'Catégorie courante'; $lang['searchresult'] = 'Résultat de la recherche'; $lang['plainhtml'] = 'HTML brut'; diff --git a/inc/lang/fr/subscr_form.txt b/inc/lang/fr/subscr_form.txt index d68c05e6a05185689a15650fbaaa7dee873216a6..f14832e07b5a363e6863bbff5a47661cec87cba6 100644 --- a/inc/lang/fr/subscr_form.txt +++ b/inc/lang/fr/subscr_form.txt @@ -1,3 +1,3 @@ ====== Gestion des souscriptions ====== -Cette page vous permet de gérer vos souscriptions pour suivre les modifications sur la page et sur la catégorie courante. \ No newline at end of file +Cette page vous permet de gérer vos abonnements pour suivre les modifications sur la page et sur la catégorie courante. \ No newline at end of file diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 9efa43354951f9128c9eeab7493886aa016c6922..087c0bf34315e12a1eae169961a5d3540ca9eb28 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; $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'; @@ -141,7 +140,6 @@ $lang['js']['media_overwrt'] = 'Sobreescribir os arquivos existentes'; $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!'; @@ -227,7 +225,6 @@ $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'] = 'Metadatos gardados'; @@ -260,7 +257,6 @@ $lang['subscr_m_subscribe'] = 'Subscribir'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'correo-e en cada troco'; $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['authpwdexpire'] = 'A túa contrasinal expirará en %d dÃas, deberÃas cambiala pronto.'; $lang['i_chooselang'] = 'Escolle o teu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; @@ -278,9 +274,9 @@ $lang['i_writeerr'] = 'Non se puido crear <code>%s</code>. Terás de $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 rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o - <a href="doku.php">teu novo DokuWiki</a>.'; + <a href="doku.php?id=wiki:welcome">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>.'; + de poderes empregar <a href="doku.php?id=wiki:welcome">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 arquivos para usuarios rexistrados)'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 76743f89789e0dd68a7bf2630a18961d91e1336c..21eff89832c7d3c0ce6fada99de619dafdbb4668 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -14,6 +14,8 @@ * @author matt carroll <matt.carroll@gmail.com> * @author tomer <tomercarolldergicz@gmail.com> * @author itsho <itsho.itsho@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> + * @author sagi <sagiyosef@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -45,7 +47,6 @@ $lang['btn_update'] = 'עדכון'; $lang['btn_delete'] = 'מחיקה'; $lang['btn_back'] = 'חזרה'; $lang['btn_backlink'] = '×§×™×©×•×¨×™× ×œ×›×ן'; -$lang['btn_backtomedia'] = 'חזרה לבחירת קובץ מדיה'; $lang['btn_subscribe'] = 'מעקב ×חרי ×©×™× ×•×™×'; $lang['btn_profile'] = 'עדכון הפרופיל'; $lang['btn_reset'] = '×יפוס'; @@ -80,6 +81,7 @@ $lang['regmissing'] = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך $lang['reguexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; $lang['regsuccess'] = 'ההרשמה הצליחה, המשתמש × ×¨×©× ×•×”×•×“×¢×” × ×©×œ×—×” בדו×״ל.'; $lang['regsuccess2'] = 'ההרשמה הצליחה, המשתמש × ×•×¦×¨.'; +$lang['regfail'] = '×ין ×פשרות ליצור ×ת המשתמש'; $lang['regmailfail'] = 'שליחת הודעת הדו×״ל כשלה, × × ×œ×™×¦×•×¨ קשר ×¢× ×ž× ×”×œ ×”×תר!'; $lang['regbadmail'] = 'יתכן ×›×™ כתובת הדו×״ל ××™× ×” תקפה, ×× ×œ× ×›×š הדבר ליצור קשר ×¢× ×ž× ×”×œ ×”×תר'; $lang['regbadpass'] = 'שתי הססמ×ות ××™× ×Ÿ זהות זו לזו, × × ×œ× ×¡×•×ª שוב.'; @@ -94,6 +96,7 @@ $lang['profdeleteuser'] = 'הסר חשבון'; $lang['profdeleted'] = 'חשבון המשתמש שלך × ×ž×—×§ מויקי ×–×”'; $lang['profconfdelete'] = '×‘×¨×¦×•× ×™ להסיר ×ת החשבון שלי מוויקי ×–×”. <br/> ×œ× × ×™×ª×Ÿ לבטל פעולה זו.'; $lang['profconfdeletemissing'] = 'תיבת ×ישור ××™× ×• מסומן'; +$lang['proffail'] = 'פרופיל המשתמש ×œ× ×¢×•×“×›×Ÿ'; $lang['pwdforget'] = 'שכחת ×ת הססמה שלך? × ×™×ª×Ÿ לקבל חדשה'; $lang['resendna'] = 'הוויקי ×”×–×” ××™× ×• תומך בחידוש ססמה'; $lang['resendpwd'] = 'הגדר ×¡×™×¡×ž× ×—×“×©×” בעבור'; @@ -109,7 +112,7 @@ $lang['searchmedia_in'] = 'חיפוש תחת %s'; $lang['txt_upload'] = 'בחירת קובץ להעלות:'; $lang['txt_filename'] = 'העל××” ×‘×©× (× ×ª×•×Ÿ לבחירה):'; $lang['txt_overwrt'] = 'שכתוב על קובץ ×§×™×™×'; -$lang['maxuploadsize'] = 'העלה מקסימו×. s% לכל קובץ.'; +$lang['maxuploadsize'] = 'העלה מקסימו×. %s לכל קובץ.'; $lang['lockedby'] = '× ×¢×•×œ על ידי:'; $lang['lockexpire'] = '×”× ×¢×™×œ×” פגה:'; $lang['js']['willexpire'] = '×”× ×¢×™×œ×” תחלוף עוד זמן קצר. \n×œ×ž× ×™×¢×ª ×”×ª× ×’×©×•×™×•×ª יש להשתמש בכפתור ×”×¨×¢× ×•×Ÿ מטה כדי ל×פס ×ת מד משך ×”× ×¢×™×œ×”.'; @@ -157,7 +160,6 @@ $lang['js']['media_overwrt'] = 'שכתב ×§×‘×¦×™× ×§×™×™×ž×™×'; $lang['rssfailed'] = '×ירע כשל בעת קבלת ×”×–× ×” זו:'; $lang['nothingfound'] = '×œ× × ×ž×¦×ו תוצ×ות.'; $lang['mediaselect'] = 'קובצי מדיה'; -$lang['fileupload'] = 'העל×ת קובצי מדיה'; $lang['uploadsucc'] = 'ההעל××” הושלמה בהצלחה'; $lang['uploadfail'] = '×ירעה שגי××” בעת העל×ת הקובץ. היתכן שתקלה זו × ×•×¦×¨×” עקב הרש×ות שגיות?'; $lang['uploadwrong'] = 'ההעל××” ×œ× ×ושרה. ×§×‘×¦×™× ×‘×¡×™×•×ž×ª זו ×סורי×!'; @@ -248,7 +250,6 @@ $lang['qb_sig'] = 'הוספת חתימה'; $lang['qb_smileys'] = '×—×™×™×›× ×™×'; $lang['qb_chars'] = '×ª×•×•×™× ×ž×™×•×—×“×™×'; $lang['upperns'] = 'מעבר למרחב ×”×©× ×©×‘×¨×ž×” שמעל ×”× ×•×›×—×™×ª'; -$lang['admin_register'] = 'הוספת משתמש חדש'; $lang['metaedit'] = 'עריכת × ×ª×•× ×™ העל'; $lang['metasaveerr'] = '×ירע כשל בשמירת × ×ª×•× ×™ העל'; $lang['metasaveok'] = '× ×ª×•× ×™ העל × ×©×ž×¨×•'; @@ -281,7 +282,6 @@ $lang['subscr_style_every'] = 'דו×״ל ×¢× ×›×œ ×©×™× ×•×™'; $lang['subscr_style_digest'] = 'הודעת דו×״ל המציגה ×ת כל ×”×©×™× ×•×™×™× ×‘×›×œ עמוד (בכל %.2f ימי×)'; $lang['subscr_style_list'] = 'רשימת ×”×©×™× ×•×™×™× ×‘×“×¤×™× ×ž××– הודעת הדו×״ל ×”××—×¨×•× ×” (בכל %.2f ימי×)'; $lang['authtempfail'] = '×ימות ×ž×©×ª×ž×©×™× ××™× ×• זמין כרגע. ×× ×ž×¦×‘ ×–×” × ×ž×©×š × × ×œ×™×™×“×¢ ×ת ×ž× ×”×œ הוויקי.'; -$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב% d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; $lang['i_chooselang'] = '× × ×œ×‘×—×•×¨ שפה'; $lang['i_installer'] = '×ª×›× ×™×ª ×”×”×ª×§× ×” של DokuWiki'; $lang['i_wikiname'] = '×©× ×”×•×•×™×§×™'; @@ -291,7 +291,7 @@ $lang['i_problems'] = '×ª×›× ×™×ª ×”×”×ª×§× ×” זיהתה מספר ב $lang['i_modified'] = 'משיקולי ×בטחה סקריפט ×–×” יעבוד ×ך ורק ×¢× ×”×ª×§× ×ª DokuWiki חדשה ×©×œ× ×¢×‘×¨×” כל ×©×™× ×•×™. עליך לחלץ ×©× ×™×ª ×ת ×”×§×‘×¦×™× ×ž×”×—×‘×™×œ×” שהורדה ×ו להיעזר בדף <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; -$lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; +$lang['i_funcna'] = '×¤×•× ×§×¦×™×™×ª ×”-PHP‏ <code>%s</code> ××™× ×” ×–×ž×™× ×”. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?'; $lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> × ×ž×•×›×” מ <code>%s</code> הצורך. ×תה צריך לשדרג PHP שלך להתקין.'; $lang['i_mbfuncoverload'] = 'יש לבטל ×ת mbstring.func_overload בphp.ini בכדי להריץ ×ת DokuWiki'; $lang['i_permfail'] = '<code>%s</code> ××™× ×” × ×™×ª× ×ª לכתיבה על ידי DokuWiki. עליך ×œ×©× ×•×ª הרש×ות תיקייה זו!'; @@ -331,8 +331,8 @@ $lang['media_list_rows'] = 'שורות'; $lang['media_sort_name'] = 'ש×'; $lang['media_sort_date'] = 'ת×ריך'; $lang['media_namespaces'] = 'בחר מרחב שמות'; -$lang['media_files'] = '×§×‘×¦×™× ×‘ s%'; -$lang['media_upload'] = 'להעלות s%'; +$lang['media_files'] = '×§×‘×¦×™× ×‘ %s'; +$lang['media_upload'] = 'להעלות %s'; $lang['media_search'] = 'חיפוש ב%s'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s ב %s'; @@ -343,6 +343,7 @@ $lang['media_perm_read'] = 'מצטערי×, ×ין לך הרש×ות לק $lang['media_perm_upload'] = 'מצטערי×, ×ין לך הרש×ות להעלות קבצי×.'; $lang['media_update'] = 'העלה גירסה חדשה'; $lang['media_restore'] = 'שחזר גירסה זו'; +$lang['media_acl_warning'] = 'רשימה זו עלולה להיות חסרה עכב חוסר בהרש×ות ×ו ×“×¤×™× ×ž×•×¡×ª×¨×™×'; $lang['currentns'] = '×©× ×ž×¨×—×‘ × ×•×›×—×™'; $lang['searchresult'] = 'תוצ×ות חיפוש'; $lang['plainhtml'] = 'HTML פשוט'; diff --git a/inc/lang/he/mailtext.txt b/inc/lang/he/mailtext.txt index f752fb7968f890d4ac80c94ac98cba5c6ecbbc61..f33760e76b6f7509402ba2c714b708816b551138 100644 --- a/inc/lang/he/mailtext.txt +++ b/inc/lang/he/mailtext.txt @@ -2,7 +2,7 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת ×”Ö¾IP‏ : @IPADDRESS@ +כתובת ×”Ö¾IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ המהדורה ×”×™×©× ×”: @OLDPAGE@ המהדורה החדשה: @NEWPAGE@ diff --git a/inc/lang/he/registermail.txt b/inc/lang/he/registermail.txt index 5d21c95fec8770a54fa4ce7549c34190fe7d22ac..2216cb36a2e298179da54b6caf25115ff082b6e7 100644 --- a/inc/lang/he/registermail.txt +++ b/inc/lang/he/registermail.txt @@ -6,5 +6,5 @@ ת×ריך : @DATE@ דפדפן : @BROWSER@ -כתובת IP‏ : @IPADDRESS@ +כתובת IP‏ : @IPADDRESS@ ×©× ×”×ž×רח : @HOSTNAME@ diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php index 71795191c8b28cdc03148fa27e219832c1fc1fa2..79bc0a1abdce5f7ac7085007fed83012817cf74e 100644 --- a/inc/lang/hi/lang.php +++ b/inc/lang/hi/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'अदà¥à¤¯à¤¤à¤¨ करना'; $lang['btn_delete'] = 'मिटाना'; $lang['btn_back'] = 'पीछे'; $lang['btn_backlink'] = 'पिछली कड़ियाà¤'; -$lang['btn_backtomedia'] = 'मीडिया फाइल चयन पर पीछे जायें'; $lang['btn_subscribe'] = 'सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¬à¤‚धन'; $lang['btn_profile'] = 'परिचय संपादित करें'; $lang['btn_resendpwd'] = 'नया पासवरà¥à¤¡ सेट करें'; @@ -102,7 +101,6 @@ $lang['qb_link'] = 'आंतरिक कड़ी'; $lang['qb_extlink'] = 'बाहà¥à¤¯ कड़ी'; $lang['qb_hr'] = 'खड़ी रेखा'; $lang['qb_sig'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° डालें'; -$lang['admin_register'] = 'नया उपयोगकरà¥à¤¤à¤¾ जोड़ें'; $lang['btn_img_backto'] = 'वापस जाना %s'; $lang['img_title'] = 'शीरà¥à¤·à¤•:'; $lang['img_caption'] = 'सहशीरà¥à¤·à¤•:'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 4339f3f189460817362710297e5de3c67c4fd6fc..65a90048454e3de5f8c6fa674a39693baaf12744 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tomo Krajina <aaa@puzz.info> * @author Branko Rihtman <theney@gmail.com> * @author Dražen OdobaÅ¡ić <dodobasic@gmail.com> @@ -15,7 +15,7 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Izmijeni stranicu'; $lang['btn_source'] = 'Prikaži kod stranice'; $lang['btn_show'] = 'Prikaži dokument'; @@ -35,11 +35,10 @@ $lang['btn_secedit'] = 'Uredi'; $lang['btn_login'] = 'Prijavi se'; $lang['btn_logout'] = 'Odjavi se'; $lang['btn_admin'] = 'Administriranje'; -$lang['btn_update'] = 'Dopuni'; +$lang['btn_update'] = 'Nadogradi'; $lang['btn_delete'] = 'ObriÅ¡i'; $lang['btn_back'] = 'Nazad'; $lang['btn_backlink'] = 'Povratni linkovi'; -$lang['btn_backtomedia'] = 'Natrag na odabir datoteka'; $lang['btn_subscribe'] = 'UreÄ‘ivanje pretplata'; $lang['btn_profile'] = 'Dopuni profil'; $lang['btn_reset'] = 'PoniÅ¡ti'; @@ -74,6 +73,7 @@ $lang['regmissing'] = 'Morate popuniti sva polja.'; $lang['reguexists'] = 'Korisnik s tim korisniÄkim imenom već postoji.'; $lang['regsuccess'] = 'Korisnik je uspjeÅ¡no stvoren i poslana je lozinka emailom.'; $lang['regsuccess2'] = 'Korisnik je uspjeÅ¡no stvoren.'; +$lang['regfail'] = 'Korisnik ne može biti kreiran.'; $lang['regmailfail'] = 'Pojavila se greÅ¡ka prilikom slanja lozinke emailom. Kontaktirajte administratora!'; $lang['regbadmail'] = 'Email adresa nije ispravna, ukoliko ovo smatrate greÅ¡kom, kontaktirajte administratora.'; $lang['regbadpass'] = 'Unesene lozinke nisu jednake, pokuÅ¡ajte ponovno.'; @@ -88,6 +88,7 @@ $lang['profdeleteuser'] = 'ObriÅ¡i korisnika'; $lang['profdeleted'] = 'VaÅ¡ korisnik je obrisan s ovog wiki-a'; $lang['profconfdelete'] = 'Želim ukloniti mojeg korisnika s ovog wiki-a. <br/> Ova akcija se ne može poniÅ¡titi.'; $lang['profconfdeletemissing'] = 'KvaÄica za potvrdu nije oznaÄena'; +$lang['proffail'] = 'Profil korisnika nije izmijenjen.'; $lang['pwdforget'] = 'Izgubili ste lozinku? Zatražite novu'; $lang['resendna'] = 'Ovaj wiki ne podržava ponovno slanje lozinke e-poÅ¡tom.'; $lang['resendpwd'] = 'Postavi novu lozinku za'; @@ -151,7 +152,6 @@ $lang['js']['media_overwrt'] = 'PrepiÅ¡i preko postojeće datoteke'; $lang['rssfailed'] = 'DoÅ¡lo je do greÅ¡ke prilikom preuzimanja feed-a: '; $lang['nothingfound'] = 'Traženi dokumetni nisu pronaÄ‘eni.'; $lang['mediaselect'] = 'Datoteke'; -$lang['fileupload'] = 'UÄitavanje datoteka'; $lang['uploadsucc'] = 'UÄitavanje uspjeÅ¡no'; $lang['uploadfail'] = 'NeuspjeÅ¡no uÄitavanje. Možda dozvole na poslužitelju nisu ispravne?'; $lang['uploadwrong'] = 'UÄitavanje nije dopuÅ¡teno. Nastavak datoteke je zabranjen!'; @@ -242,7 +242,6 @@ $lang['qb_sig'] = 'Ubaci potpis'; $lang['qb_smileys'] = 'SmijeÅ¡kići'; $lang['qb_chars'] = 'Posebni znakovi'; $lang['upperns'] = 'SkoÄi u nadreÄ‘eni imenski prostor'; -$lang['admin_register'] = 'Dodaj novog korisnika'; $lang['metaedit'] = 'Uredi metapodatake'; $lang['metasaveerr'] = 'NeuspjeÅ¡no zapisivanje metapodataka'; $lang['metasaveok'] = 'Spremljeni metapdaci'; @@ -275,7 +274,6 @@ $lang['subscr_style_every'] = 'e-poÅ¡ta za svaku promjenu'; $lang['subscr_style_digest'] = 'e-poÅ¡ta s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)'; $lang['subscr_style_list'] = 'listu promijenjenih stranica od zadnje primljene e-poÅ¡te (svaka %.2f dana)'; $lang['authtempfail'] = 'Autentifikacija korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora.'; -$lang['authpwdexpire'] = 'VaÅ¡a lozinka će isteći za %d dana, trebate ju promijeniti.'; $lang['i_chooselang'] = 'Izaberite vaÅ¡ jezik'; $lang['i_installer'] = 'DokuWiki postavljanje'; $lang['i_wikiname'] = 'Naziv Wikija'; @@ -336,6 +334,7 @@ $lang['media_perm_read'] = 'Nažalost, nemate prava za Äitanje datoteka.' $lang['media_perm_upload'] = 'Nažalost, nemate prava za uÄitavanje datoteka.'; $lang['media_update'] = 'UÄitaj novu verziju'; $lang['media_restore'] = 'Vrati ovu verziju'; +$lang['media_acl_warning'] = 'Ova lista moguće da nije kompletna zbog ACL ograniÄenja i skrivenih stranica.'; $lang['currentns'] = 'Tekući imeniÄki prostor'; $lang['searchresult'] = 'Rezultati pretraživanja'; $lang['plainhtml'] = 'ÄŒisti HTML'; diff --git a/inc/lang/hu/admin.txt b/inc/lang/hu/admin.txt index 03d29243c796bc97d620ffdb4b496580c543c4c6..51b13eb56cc851cf18419189cf39cbb79c3f7d51 100644 --- a/inc/lang/hu/admin.txt +++ b/inc/lang/hu/admin.txt @@ -1,3 +1,3 @@ -===== Adminisztrálás ===== +===== Adminisztráció ===== -Itt találod a DokuWiki adminisztrálási lehetÅ‘ségeit. +Itt találod a DokuWiki adminisztrációs lehetÅ‘ségeit. diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index 0e2667e9205c0717cab54229d697775759a21f20..106e751f8479fa3a01bc9a878f46511461393d98 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Ziegler Gábor <gziegler@freemail.hu> * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> @@ -45,7 +45,6 @@ $lang['btn_update'] = 'FrissÃtés'; $lang['btn_delete'] = 'Törlés'; $lang['btn_back'] = 'Vissza'; $lang['btn_backlink'] = 'Hivatkozások'; -$lang['btn_backtomedia'] = 'Vissza a médiafájlok kezeléséhez'; $lang['btn_subscribe'] = 'Feliratkozás az oldalváltozásokra'; $lang['btn_profile'] = 'Személyes beállÃtások'; $lang['btn_reset'] = 'Alaphelyzet'; @@ -75,11 +74,12 @@ $lang['badpassconfirm'] = 'Hibás jelszó'; $lang['minoredit'] = 'Apróbb változások'; $lang['draftdate'] = 'Piszkozat elmentve:'; $lang['nosecedit'] = 'IdÅ‘közben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!'; -$lang['searchcreatepage'] = "Ha nem találtad meg amit kerestél, akkor létrehozhatsz egy új oldalt a keresésed alapján ''Az oldal szerkesztése'' gombbal."; +$lang['searchcreatepage'] = 'Ha nem találtad meg amit kerestél, akkor létrehozhatsz egy új oldalt a keresésed alapján \'\'Az oldal szerkesztése\'\' gombbal.'; $lang['regmissing'] = 'Sajnáljuk, az összes mezÅ‘t ki kell töltened.'; $lang['reguexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; $lang['regsuccess'] = 'A felhasználói azonosÃtót létrehoztuk. A jelszót postáztuk.'; $lang['regsuccess2'] = 'A felhasználói azonosÃtót létrehoztuk.'; +$lang['regfail'] = 'A felhasználó létrehozása sikertelen.'; $lang['regmailfail'] = 'Úgy tűnik hiba történt a jelszó postázása során. Kérjük lépj kapcsolatba az Adminisztrátorokkal!'; $lang['regbadmail'] = 'A megadott e-mail cÃm érvénytelennek tűnik. Ha úgy gondolod ez hiba, lépj kapcsolatba az Adminisztrátorokkal!'; $lang['regbadpass'] = 'A két megadott jelszó nem egyezik, próbáld újra!'; @@ -94,6 +94,7 @@ $lang['profdeleteuser'] = 'Felhasználói fiók törlése'; $lang['profdeleted'] = 'Felhasználói fiókodat eltávolÃtottuk errÅ‘l a wiki-rÅ‘l.'; $lang['profconfdelete'] = 'Szeretném eltávolÃtani a felhasználói fiókomat errÅ‘l a wikirÅ‘l. <br/> Ez a cselekvés nem visszavonható.'; $lang['profconfdeletemissing'] = 'A megerÅ‘sÃtÅ‘ négyzet nincs bepipálva'; +$lang['proffail'] = 'A profil frissÃtése sikertelen.'; $lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat'; $lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.'; $lang['resendpwd'] = 'Új jelszó beállÃtása a következÅ‘höz:'; @@ -157,7 +158,6 @@ $lang['js']['media_overwrt'] = 'MeglévÅ‘ fájlok felülÃrása'; $lang['rssfailed'] = 'Hiba történt a hÃrfolyam betöltésekor: '; $lang['nothingfound'] = 'Üres mappa.'; $lang['mediaselect'] = 'Médiafájl kiválasztása'; -$lang['fileupload'] = 'Médiafájl feltöltése'; $lang['uploadsucc'] = 'Sikeres feltöltés'; $lang['uploadfail'] = 'A feltöltés nem sikerült. Talán rosszak a jogosultságok?'; $lang['uploadwrong'] = 'A feltöltés megtagadva. Ez a fájlkiterjesztés tiltott.'; @@ -248,7 +248,6 @@ $lang['qb_sig'] = 'AláÃrás beszúrása'; $lang['qb_smileys'] = 'Smiley-k'; $lang['qb_chars'] = 'Speciális karakterek'; $lang['upperns'] = 'ugrás a tartalmazó névtérhez'; -$lang['admin_register'] = 'Új felhasználó'; $lang['metaedit'] = 'Metaadatok szerkesztése'; $lang['metasaveerr'] = 'A metaadatok Ãrása nem sikerült'; $lang['metasaveok'] = 'Metaadatok elmentve'; @@ -281,7 +280,6 @@ $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['authtempfail'] = 'A felhasználó azonosÃtás átmenetileg nem működik. Ha sokáig Ãgy lenne, légy szÃves értesÃtsd az Adminisztrátorokat!'; -$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.'; $lang['i_chooselang'] = 'Válassz nyelvet'; $lang['i_installer'] = 'DokuWiki BeállÃtó Varázsló'; $lang['i_wikiname'] = 'A Wiki neve'; @@ -292,6 +290,7 @@ $lang['i_modified'] = 'Biztonsági okokból ez a Varázsló csak új Csomagold ki újra a fájlokat a letöltött csomagból, vagy nézd meg a teljes <a href="http://dokuwiki.org/install">Dokuwiki telepÃtési útmutatót</a>.'; $lang['i_funcna'] = 'A <code>%s</code> PHP funkció nem elérhetÅ‘. Esetleg a tárhelyszolgáltató letiltotta biztonsági okok miatt?'; $lang['i_phpver'] = 'A PHP <code>%s</code> verziója alacsonyabb, mint ami szükséges lenne: <code>%s</code>. FrissÃtsd a PHP-det újabb verzióra!'; +$lang['i_mbfuncoverload'] = 'A DokuWiki futtatásához az mbstring.func_overload opciót ki kell kapcsolni a php.ini-ben.'; $lang['i_permfail'] = 'A DokiWiki nem tudja Ãrni a <code>%s</code> könyvtárat. Be kell állÃtanod ehhez a könyvtárhoz a megfelelÅ‘ jogosultságokat!'; $lang['i_confexists'] = '<code>%s</code> már létezik.'; $lang['i_writeerr'] = 'Nem tudom ezt létrehozni: <code>%s</code>. EllenÅ‘rizd a könyvtár/fájl jogosultságokat, és hozd létre az állományt kézzel.'; @@ -341,8 +340,11 @@ $lang['media_perm_read'] = 'Sajnáljuk, nincs jogod a fájlok olvasásáho $lang['media_perm_upload'] = 'Sajnáljuk, nincs jogod a feltöltéshez.'; $lang['media_update'] = 'Új verzió feltöltése'; $lang['media_restore'] = 'Ezen verzió visszaállÃtása'; +$lang['media_acl_warning'] = 'Ez a lista hiányos lehet a hozzáférési listák (ACL) korlátozásai és a rejtett oldalak miatt.'; $lang['currentns'] = 'Aktuális névtér'; $lang['searchresult'] = 'Keresés eredménye'; $lang['plainhtml'] = 'Sima HTML'; $lang['wikimarkup'] = 'Wiki-jelölÅ‘nyelv'; -$lang['email_signature'] = 'Ezt a levelet a DokuWiki generálta'; +$lang['email_signature'] = 'Ezt a levelet a DokuWiki generálta'; +$lang['page_nonexist_rev'] = 'A(z) %s oldal nem létezik. KésÅ‘bb lett létrehozva a(z) <a href="%s">%s</a> helyen.'; +$lang['unable_to_parse_date'] = 'A "%s" paraméter feldolgozása sikertelen.'; diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index a7d3542d517c8140cb17b566b5342c705ef617c5..ad9ec1f346a7123e257b5a8f101af38961244d97 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -41,7 +41,6 @@ $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'; @@ -99,7 +98,6 @@ $lang['js']['notsavedyet'] = 'Le modificationes non salveguardate essera per $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!'; @@ -199,7 +197,6 @@ $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'; diff --git a/inc/lang/id-ni/lang.php b/inc/lang/id-ni/lang.php index 1ff714f3ed97f99a560df65e66e9df1c0af6d55f..9bd495c66cf92b9f0fb0be695bfd65bdf4f71bee 100644 --- a/inc/lang/id-ni/lang.php +++ b/inc/lang/id-ni/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Bohouni'; $lang['btn_delete'] = 'Heta'; $lang['btn_back'] = 'Fulifuri'; $lang['btn_backlink'] = 'Link fangawuli'; -$lang['btn_backtomedia'] = 'Angawuli ba filianö Mediafile'; $lang['btn_profile'] = 'Famohouni pörofile'; $lang['btn_reset'] = 'Fawu\'a'; $lang['btn_draft'] = 'Fawu\'a wanura'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 5a4dc20ead4b703c3b7223ff07e11b81a0fe474b..96a172f4c5ab43172d9f565b01f1609d97d52c15 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author mubaidillah <mubaidillah@gmail.com> * @author Irwan Butar Butar <irwansah.putra@gmail.com> * @author Yustinus Waruwu <juswaruwu@gmail.com> @@ -12,10 +12,10 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = 'â€'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Edit halaman ini'; $lang['btn_source'] = 'Lihat sumber halaman'; @@ -23,7 +23,6 @@ $lang['btn_show'] = 'Tampilkan halaman'; $lang['btn_create'] = 'Buat halaman baru'; $lang['btn_search'] = 'Cari'; $lang['btn_save'] = 'Simpan'; -$lang['btn_preview'] = 'Preview'; $lang['btn_top'] = 'kembali ke atas'; $lang['btn_newer'] = '<< lebih lanjut'; $lang['btn_older'] = 'sebelumnya >>'; @@ -32,7 +31,6 @@ $lang['btn_recent'] = 'Perubahan terbaru'; $lang['btn_upload'] = 'Upload'; $lang['btn_cancel'] = 'Batal'; $lang['btn_index'] = 'Indeks'; -$lang['btn_secedit'] = 'Edit'; $lang['btn_login'] = 'Login'; $lang['btn_logout'] = 'Keluar'; $lang['btn_admin'] = 'Admin'; @@ -40,12 +38,9 @@ $lang['btn_update'] = 'Ubah'; $lang['btn_delete'] = 'Hapus'; $lang['btn_back'] = 'Kembali'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Kembali ke Pilihan Mediafile'; $lang['btn_subscribe'] = 'Ikuti Perubahan'; $lang['btn_profile'] = 'Ubah Profil'; -$lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Atur password baru'; -$lang['btn_draft'] = 'Edit draft'; $lang['btn_recover'] = 'Cadangkan draf'; $lang['btn_draftdel'] = 'Hapus draft'; $lang['btn_revert'] = 'Kembalikan'; @@ -151,7 +146,6 @@ $lang['js']['media_overwrt'] = 'Timpa berkas yang ada'; $lang['rssfailed'] = 'Error terjadi saat mengambil feed: '; $lang['nothingfound'] = 'Tidak menemukan samasekali.'; $lang['mediaselect'] = 'Pilihan Mediafile'; -$lang['fileupload'] = 'Mediafile Upload'; $lang['uploadsucc'] = 'Upload sukses'; $lang['uploadfail'] = 'Upload gagal. Apakah hak ijinnya salah?'; $lang['uploadwrong'] = 'Upload ditolak. Ekstensi file ini tidak diperbolehkan!'; @@ -159,7 +153,7 @@ $lang['uploadexist'] = 'File telah ada. Tidak mengerjakan apa-apa.'; $lang['uploadbadcontent'] = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.'; $lang['uploadspam'] = 'File yang diupload diblok oleh spam blacklist.'; $lang['uploadxss'] = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.'; -$lang['uploadsize'] = 'File yang diupload terlalu besar. (max.%)'; +$lang['uploadsize'] = 'File yang diupload terlalu besar. (max. %s)'; $lang['deletesucc'] = 'File "%s" telah dihapus.'; $lang['deletefail'] = '"%s" tidak dapat dihapus - cek hak aksesnya.'; $lang['mediainuse'] = 'File "%s" belum dihapus - file ini sedang digunakan.'; @@ -174,7 +168,6 @@ $lang['mediaextchange'] = 'Ektensi file berubah dari .%s ke .%s'; $lang['reference'] = 'Referensi untuk'; $lang['ref_inuse'] = 'File tidak dapat dihapus karena sedang digunakan oleh halaman:'; $lang['ref_hidden'] = 'Beberapa referensi ada didalam halaman yang tidak diijinkan untuk Anda baca.'; -$lang['hits'] = 'Hits'; $lang['quickhits'] = 'Matching pagenames'; $lang['toc'] = 'Daftar isi'; $lang['current'] = 'sekarang'; @@ -197,7 +190,6 @@ $lang['deleted'] = 'terhapus'; $lang['created'] = 'dibuat'; $lang['restored'] = 'revisi lama ditampilkan kembali (%s)'; $lang['external_edit'] = 'Perubahan eksternal'; -$lang['summary'] = 'Edit summary'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> diperlukan untuk menampilkan konten ini.'; $lang['download'] = 'Unduh Cuplikan'; $lang['tools'] = 'Alat'; @@ -220,27 +212,17 @@ $lang['qb_italic'] = 'Miring'; $lang['qb_underl'] = 'Garis Bawah'; $lang['qb_code'] = 'Kode'; $lang['qb_strike'] = 'Text Tercoret'; -$lang['qb_h1'] = 'Level 1 Headline'; -$lang['qb_h2'] = 'Level 2 Headline'; -$lang['qb_h3'] = 'Level 3 Headline'; -$lang['qb_h4'] = 'Level 4 Headline'; -$lang['qb_h5'] = 'Level 5 Headline'; $lang['qb_hs'] = 'Pilih Judul'; $lang['qb_hplus'] = 'Judul Lebih Atas'; $lang['qb_hminus'] = 'Judul Lebih Bawah'; $lang['qb_hequal'] = 'Tingkat Judul yang Sama'; -$lang['qb_link'] = 'Link Internal'; -$lang['qb_extlink'] = 'Link External'; $lang['qb_hr'] = 'Garis Horisontal'; $lang['qb_ol'] = 'Item Berurutan'; $lang['qb_ul'] = 'Item Tidak Berurutan'; $lang['qb_media'] = 'Tambahkan gambar atau file lain'; $lang['qb_sig'] = 'Sisipkan tanda tangan'; -$lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Karakter Khusus'; $lang['upperns'] = 'lompat ke namespace induk'; -$lang['admin_register'] = 'Tambah user baru'; -$lang['metaedit'] = 'Edit Metadata'; $lang['metasaveerr'] = 'Gagal menulis metadata'; $lang['metasaveok'] = 'Metadata tersimpan'; $lang['img_title'] = 'Judul:'; diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php index de1a01ed5b1080c88a233fe9ec78ef9cadfd8c11..0af4c57a69b468d3a51f1182f770b34f4987994a 100644 --- a/inc/lang/is/lang.php +++ b/inc/lang/is/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'Uppfæra'; $lang['btn_delete'] = 'Eyða'; $lang['btn_back'] = 'Til baka'; $lang['btn_backlink'] = 'Hvað tengist hingað'; -$lang['btn_backtomedia'] = 'Aftur til miðlaskrá'; $lang['btn_subscribe'] = 'Vakta'; $lang['btn_profile'] = 'Uppfæra notanda'; $lang['btn_reset'] = 'Endurstilla'; @@ -96,7 +95,6 @@ $lang['lockedby'] = 'Læstur af:'; $lang['lockexpire'] = 'Læsing rennur út eftir:'; $lang['nothingfound'] = 'Ekkert fannst'; $lang['mediaselect'] = 'Miðlaskrá'; -$lang['fileupload'] = 'Hlaða inn miðlaskrá'; $lang['uploadsucc'] = 'Innhlaðning tókst'; $lang['uploadfail'] = 'Villa à innhlaðningu'; $lang['uploadwrong'] = 'Innhleðslu neitað. Skrár með þessari endingu eru ekki leyfðar.'; @@ -166,7 +164,6 @@ $lang['qb_media'] = 'Bæta inn myndum og öðrum skrám'; $lang['qb_sig'] = 'Undirskrift þÃn auk tÃmasetningu'; $lang['qb_smileys'] = 'Broskallar'; $lang['qb_chars'] = 'Sértækir stafir'; -$lang['admin_register'] = 'Setja nýjan notenda inn'; $lang['metaedit'] = 'Breyta lýsigögnum'; $lang['metasaveerr'] = 'Vistun lýsigagna mistókst'; $lang['metasaveok'] = 'Lýsigögn vistuð'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 51184105847f5dec4dd0d6a9b3c1d7a40883c4d3..7188663a05692a228997391d5cbe330fef151d95 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Giorgio Vecchiocattivi <giorgio@vecchio.it> * @author Roberto Bolli [http://www.rbnet.it/] * @author Silvia Sargentoni <polinnia@tin.it> @@ -21,6 +21,7 @@ * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -52,7 +53,6 @@ $lang['btn_update'] = 'Aggiorna'; $lang['btn_delete'] = 'Elimina'; $lang['btn_back'] = 'Indietro'; $lang['btn_backlink'] = 'Puntano qui'; -$lang['btn_backtomedia'] = 'Torna alla selezione file'; $lang['btn_subscribe'] = 'Sottoscrivi modifiche'; $lang['btn_profile'] = 'Aggiorna profilo'; $lang['btn_reset'] = 'Annulla'; @@ -87,6 +87,7 @@ $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 email.'; $lang['regsuccess2'] = 'L\'utente è stato creato.'; +$lang['regfail'] = 'L\'utente non può essere creato.'; $lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della email. Contatta l\'amministratore!'; $lang['regbadmail'] = 'L\'indirizzo email fornito sembra essere non valido - se pensi che ci sia un errore contatta l\'amministratore'; $lang['regbadpass'] = 'Le due password inserite non coincidono, prova di nuovo.'; @@ -101,6 +102,7 @@ $lang['profdeleteuser'] = 'Elimina account'; $lang['profdeleted'] = 'Il tuo account utente è stato rimosso da questa wiki'; $lang['profconfdelete'] = 'Voglio rimuovere il mio account da questa wiki. <br/> Questa operazione non può essere annullata.'; $lang['profconfdeletemissing'] = 'La check box di conferma non è selezionata'; +$lang['proffail'] = 'Il profilo utente non è stato aggiornato.'; $lang['pwdforget'] = 'Hai dimenticato la password? Richiedine una nuova'; $lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove password.'; $lang['resendpwd'] = 'Imposta nuova password per'; @@ -164,7 +166,6 @@ $lang['js']['media_overwrt'] = 'Sovrascrivi i file esistenti'; $lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; $lang['nothingfound'] = 'Nessun risultato trovato.'; $lang['mediaselect'] = 'Selezione dei file'; -$lang['fileupload'] = 'File caricato'; $lang['uploadsucc'] = 'Invio riuscito'; $lang['uploadfail'] = 'Invio fallito. È possibile che si tratti di un problema di permessi.'; $lang['uploadwrong'] = 'Invio rifiutato. Questa estensione di file non è ammessa'; @@ -255,7 +256,6 @@ $lang['qb_sig'] = 'Inserisci la firma'; $lang['qb_smileys'] = 'Smiley'; $lang['qb_chars'] = 'Caratteri speciali'; $lang['upperns'] = 'vai alla categoria principale'; -$lang['admin_register'] = 'Aggiungi un nuovo utente'; $lang['metaedit'] = 'Modifica metadati'; $lang['metasaveerr'] = 'Scrittura metadati fallita'; $lang['metasaveok'] = 'Metadati salvati'; @@ -288,7 +288,6 @@ $lang['subscr_style_every'] = 'email per ogni modifica'; $lang['subscr_style_digest'] = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)'; $lang['subscr_style_list'] = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)'; $lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.'; -$lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; $lang['i_chooselang'] = 'Scegli la lingua'; $lang['i_installer'] = 'Installazione di DokuWiki'; $lang['i_wikiname'] = 'Nome Wiki'; @@ -350,8 +349,11 @@ $lang['media_perm_read'] = 'Spiacente, non hai abbastanza privilegi per le $lang['media_perm_upload'] = 'Spiacente, non hai abbastanza privilegi per caricare files.'; $lang['media_update'] = 'Carica nuova versione'; $lang['media_restore'] = 'Ripristina questa versione'; +$lang['media_acl_warning'] = 'Questa lista potrebbe non essere completa a causa di restrizioni ACL e pagine nascoste.'; $lang['currentns'] = 'Namespace corrente'; $lang['searchresult'] = 'Risultati della ricerca'; $lang['plainhtml'] = 'HTML'; +$lang['wikimarkup'] = 'Marcatura wiki'; $lang['page_nonexist_rev'] = 'Pagina non esistente a %s. E\' stata creata successivamente a <a href="%s">%s</a>.'; -$lang['email_signature'] = 'Questa email è stata generata dal DokuWiki all\'indirizzo'; +$lang['email_signature'] = 'Questa email è stata generata dal DokuWiki all\'indirizzo'; +$lang['unable_to_parse_date'] = 'Impossibile eseguire l\'analisi al parametro "%s".'; diff --git a/inc/lang/ja/index.txt b/inc/lang/ja/index.txt index b0447899da792019a7c311cab5e11c6787973a3b..eb168d146ac43ba1e5af6e558c3b75abf5e41d21 100644 --- a/inc/lang/ja/index.txt +++ b/inc/lang/ja/index.txt @@ -1,4 +1,4 @@ ====== サイトマップ ====== -[[doku>namespaces|åå‰ç©ºé–“]] ã«åŸºã¥ãã€å…¨ã¦ã®æ–‡æ›¸ã®ç´¢å¼•ã§ã™ã€‚ +å…¨ã¦ã®é–²è¦§å¯èƒ½ãƒšãƒ¼ã‚¸ã‚’[[doku>ja:namespaces|åå‰ç©ºé–“]]é †ã«ä¸¦ã¹ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã§ã™ã€‚ diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 40039540837fa6bd05d718031b8c4573e29535e9..7883b24050cf8217af5b5c649b117d60e50b4c71 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -43,7 +43,6 @@ $lang['btn_update'] = 'æ›´æ–°'; $lang['btn_delete'] = '削除'; $lang['btn_back'] = '戻る'; $lang['btn_backlink'] = 'ãƒãƒƒã‚¯ãƒªãƒ³ã‚¯'; -$lang['btn_backtomedia'] = 'ãƒ¡ãƒ‡ã‚£ã‚¢ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠžã«æˆ»ã‚‹'; $lang['btn_subscribe'] = '変更履æ´é…ä¿¡ã®ç™»éŒ²'; $lang['btn_profile'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®æ›´æ–°'; $lang['btn_reset'] = 'リセット'; @@ -78,6 +77,7 @@ $lang['regmissing'] = 'å…¨ã¦ã®é …目を入力ã—ã¦ãã ã•ã„。' $lang['reguexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; $lang['regsuccess'] = 'æ–°ã—ã„ユーザーãŒä½œæˆã•れã¾ã—ãŸã€‚パスワードã¯ç™»éŒ²ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹å®›ã¦ã«é€ä»˜ã•れã¾ã™ã€‚'; $lang['regsuccess2'] = 'æ–°ã—ã„ユーザーãŒä½œæˆã•れã¾ã—ãŸã€‚'; +$lang['regfail'] = 'ユーザーを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['regmailfail'] = 'パスワードã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ãŠæ‰‹æ•°ã§ã™ãŒç®¡ç†è€…ã¾ã§é€£çµ¡ã‚’ãŠé¡˜ã„ã—ã¾ã™ã€‚'; $lang['regbadmail'] = 'ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæœ‰åйã§ã¯ã‚りã¾ã›ã‚“。'; $lang['regbadpass'] = '確èªç”¨ã®ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ£ã—ãã‚りã¾ã›ã‚“。'; @@ -92,6 +92,7 @@ $lang['profdeleteuser'] = 'アカウントã®å‰Šé™¤'; $lang['profdeleted'] = 'ã“ã®wikiã‹ã‚‰ã‚ãªãŸã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯å‰Šé™¤æ¸ˆã§ã™ã€‚'; $lang['profconfdelete'] = 'ã“ã®wikiã‹ã‚‰è‡ªåˆ†ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæŠ¹æ¶ˆã‚’希望ã—ã¾ã™ã€‚<br/> ã“ã®æ“作ã¯å–消ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。'; $lang['profconfdeletemissing'] = '確èªã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ãŒãƒã‚§ãƒƒã‚¯ã•れã¦ã„ã¾ã›ã‚“。'; +$lang['proffail'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã¯æ›´æ–°ã•れã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['pwdforget'] = 'パスワードをãŠå¿˜ã‚Œã§ã™ã‹ï¼Ÿãƒ‘スワードå†ç™ºè¡Œ'; $lang['resendna'] = 'パスワードã®å†ç™ºè¡Œã¯å‡ºæ¥ã¾ã›ã‚“。'; $lang['resendpwd'] = 'æ–°ã—ã„パスワードをセット'; @@ -154,7 +155,6 @@ $lang['js']['media_overwrt'] = 'æ—¢å˜ã®ãƒ•ァイルを上書ãã™ã‚‹'; $lang['rssfailed'] = 'RSSã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸï¼š'; $lang['nothingfound'] = '該当文書ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['mediaselect'] = 'メディアファイル'; -$lang['fileupload'] = 'メディアファイルをアップãƒãƒ¼ãƒ‰'; $lang['uploadsucc'] = 'アップãƒãƒ¼ãƒ‰å®Œäº†'; $lang['uploadfail'] = 'アップãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸã€‚権é™ãŒã‚りã¾ã›ã‚“。'; $lang['uploadwrong'] = 'アップãƒãƒ¼ãƒ‰ã¯æ‹’å¦ã•れã¾ã—ãŸã€‚ã“ã®æ‹¡å¼µåã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“。'; @@ -245,7 +245,6 @@ $lang['qb_sig'] = 'ç½²åã®æŒ¿å…¥'; $lang['qb_smileys'] = 'スマイリー'; $lang['qb_chars'] = '特殊文å—'; $lang['upperns'] = '上ã®éšŽå±¤ã®åå‰ç©ºé–“ã¸'; -$lang['admin_register'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆ'; $lang['metaedit'] = 'メタデータ編集'; $lang['metasaveerr'] = 'ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ'; $lang['metasaveok'] = 'メタデータã¯ä¿å˜ã•れã¾ã—ãŸ'; @@ -278,7 +277,6 @@ $lang['subscr_style_every'] = 'å…¨ã¦ã®å¤‰æ›´ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡'; $lang['subscr_style_digest'] = 'ãれãžã‚Œã®ãƒšãƒ¼ã‚¸ã¸ã®å¤‰æ›´ã®è¦ç´„をメールã™ã‚‹ï¼ˆ%.2f 日毎)'; $lang['subscr_style_list'] = 'å‰å›žã®ãƒ¡ãƒ¼ãƒ«ã‹ã‚‰å¤‰æ›´ã•れãŸãƒšãƒ¼ã‚¸ã‚’リスト(%.2f 日毎)'; $lang['authtempfail'] = 'ユーザーèªè¨¼ãŒä¸€æ™‚çš„ã«ä½¿ç”¨ã§ããªããªã£ã¦ã„ã¾ã™ã€‚ã“ã®çŠ¶æ…‹ãŒç¶šã„ã¦ã„るよã†ã§ã‚れã°ã€Wikiã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„。'; -$lang['authpwdexpire'] = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。'; $lang['i_chooselang'] = 'ä½¿ç”¨è¨€èªžã‚’é¸æŠžã—ã¦ãã ã•ã„'; $lang['i_installer'] = 'DokuWiki インストーラー'; $lang['i_wikiname'] = 'Wikiå'; @@ -332,7 +330,7 @@ $lang['media_files'] = '%s 内ã®ãƒ•ァイル'; $lang['media_upload'] = '%s ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰'; $lang['media_search'] = '%s å†…ã§æ¤œç´¢'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s at %s'; +$lang['media_viewold'] = '%2$s ã« %1$s'; $lang['media_edit'] = '%s を編集'; $lang['media_history'] = '%s ã®å±¥æ´'; $lang['media_meta_edited'] = 'メタデータãŒç·¨é›†ã•れã¾ã—ãŸ'; @@ -340,6 +338,7 @@ $lang['media_perm_read'] = 'ファイルを閲覧ã™ã‚‹æ¨©é™ãŒã‚り㾠$lang['media_perm_upload'] = 'ファイルをアップãƒãƒ¼ãƒ‰ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。'; $lang['media_update'] = 'æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’アップãƒãƒ¼ãƒ‰'; $lang['media_restore'] = 'ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元'; +$lang['media_acl_warning'] = 'ACL制é™ã‚„éžè¡¨ç¤ºãƒšãƒ¼ã‚¸ã¯è¡¨ç¤ºã•れãªã„ã®ã§ã€ã“ã®ãƒªã‚¹ãƒˆã¯å®Œå…¨ã§ãªã„å ´åˆãŒã‚りã¾ã™ã€‚'; $lang['currentns'] = 'ç¾åœ¨ã®åå‰ç©ºé–“'; $lang['searchresult'] = 'æ¤œç´¢çµæžœ'; $lang['plainhtml'] = 'プレーンHTML'; diff --git a/inc/lang/ja/register.txt b/inc/lang/ja/register.txt index b242d1e88470bbadb9116e743a7aae3da5851dd8..0cd278699c5feb924c23fc41f1a33c9c0f0dc32f 100644 --- a/inc/lang/ja/register.txt +++ b/inc/lang/ja/register.txt @@ -1,4 +1,4 @@ ====== æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ² ====== -ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’行ã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…å ±ã‚’å…¨ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•れã¾ã™ã®ã§ã€ å¿…ãš**有効ãª**メールアドレスを入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒã‚°ã‚¤ãƒ³å㯠[[doku>pagename|pagename]] ã«æº–æ‹ ã—ã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 +ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’行ã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…å ±ã‚’å…¨ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•れã¾ã™ã®ã§ã€ å¿…ãš**有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹**を入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒã‚°ã‚¤ãƒ³åã¯[[doku>ja:pagename|ページå]]ã«æº–æ‹ ã—ã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 diff --git a/inc/lang/ka/jquery.ui.datepicker.js b/inc/lang/ka/jquery.ui.datepicker.js new file mode 100644 index 0000000000000000000000000000000000000000..69103542ba78d07817bbd4145ebc1e51482e216d --- /dev/null +++ b/inc/lang/ka/jquery.ui.datepicker.js @@ -0,0 +1,35 @@ +/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Lado Lomidze (lado.lomidze@gmail.com). */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['ka'] = { + closeText: 'დáƒáƒ®áƒ£áƒ ვáƒ', + prevText: '< წინáƒ', + nextText: 'შემდეგი >', + currentText: 'დღეს', + monthNames: ['იáƒáƒœáƒ•áƒáƒ ი','თებერვáƒáƒšáƒ˜','მáƒáƒ ტი','áƒáƒžáƒ ილი','მáƒáƒ˜áƒ¡áƒ˜','ივნისი', 'ივლისი','áƒáƒ’ვისტáƒ','სექტემბერი','áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი','ნáƒáƒ”მბერი','დეკემბერი'], + monthNamesShort: ['იáƒáƒœ','თებ','მáƒáƒ ','áƒáƒžáƒ ','მáƒáƒ˜','ივნ', 'ივლ','áƒáƒ’ვ','სექ','áƒáƒ¥áƒ¢','ნáƒáƒ”','დეკ'], + dayNames: ['კვირáƒ','áƒáƒ შáƒáƒ‘áƒáƒ—ი','სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი','áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი','ხუთშáƒáƒ‘áƒáƒ—ი','პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი','შáƒáƒ‘áƒáƒ—ი'], + dayNamesShort: ['კვ','áƒáƒ შ','სáƒáƒ›','áƒáƒ—ხ','ხუთ','პáƒáƒ ','შáƒáƒ‘'], + dayNamesMin: ['კვ','áƒáƒ შ','სáƒáƒ›','áƒáƒ—ხ','ხუთ','პáƒáƒ ','შáƒáƒ‘'], + weekHeader: 'კვირáƒ', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['ka']); + +return datepicker.regional['ka']; + +})); diff --git a/inc/lang/ka/lang.php b/inc/lang/ka/lang.php index 28ca11e454d949ee8a99d0e7107911d65c5ae245..72594efe3a8f10cd1a3a04d85ed986937f8a5c87 100644 --- a/inc/lang/ka/lang.php +++ b/inc/lang/ka/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Luka Lejava <luka.lejava@gmail.com> */ $lang['encoding'] = 'utf-8'; @@ -35,8 +35,6 @@ $lang['btn_update'] = 'გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_delete'] = 'წáƒáƒ¨áƒšáƒ'; $lang['btn_back'] = 'უკáƒáƒœ'; $lang['btn_backlink'] = 'გáƒáƒ“მáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ თებული ბმულები'; -$lang['btn_backtomedia'] = 'მედიáƒáƒ¤áƒáƒ˜áƒšáƒ”ბის áƒáƒ ჩევáƒ'; -$lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ'; $lang['btn_reset'] = 'წáƒáƒ¨áƒšáƒ'; $lang['btn_resendpwd'] = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜áƒ¡ დáƒáƒ§áƒ”ნებáƒ'; @@ -48,7 +46,7 @@ $lang['btn_register'] = 'რეგისტრáƒáƒªáƒ˜áƒ'; $lang['btn_apply'] = 'ცáƒáƒ“ე'; $lang['btn_media'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის მáƒáƒ თვáƒ'; $lang['btn_deleteuser'] = 'ჩემი ექáƒáƒ£áƒœáƒ—ის წáƒáƒ¨áƒšáƒ'; -$lang['btn_img_backto'] = 'უკáƒáƒœ %'; +$lang['btn_img_backto'] = 'უკáƒáƒœ %s'; $lang['btn_mediaManager'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის მმáƒáƒ თველში გáƒáƒ®áƒ¡áƒœáƒ'; $lang['loggedinas'] = 'შესული ხáƒáƒ თ რáƒáƒ’áƒáƒ ც:'; $lang['user'] = 'ლáƒáƒ’ინი'; @@ -94,11 +92,11 @@ $lang['resendpwdsuccess'] = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜ გáƒáƒ› $lang['license'] = 'ვიკი ლიცენზირებულიáƒ: '; $lang['licenseok'] = 'áƒáƒ› გვერდის რედáƒáƒ¥áƒ¢áƒ˜áƒ ებით თვენ ეთáƒáƒœáƒ®áƒ›áƒ”ბით ლიცენზიáƒáƒ¡:'; $lang['searchmedia'] = 'სáƒáƒ«áƒ”ბრსáƒáƒ®áƒ”ლი:'; -$lang['searchmedia_in'] = 'ძებნრ%-ში'; +$lang['searchmedia_in'] = 'ძებნრ%s-ში'; $lang['txt_upload'] = 'áƒáƒ˜áƒ ჩიეთ áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ˜:'; $lang['txt_filename'] = 'áƒáƒ¢áƒ•ირთვრრáƒáƒ’áƒáƒ ც (áƒáƒ ჩევითი):'; $lang['txt_overwrt'] = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ'; -$lang['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ ი ზáƒáƒ›áƒ %'; +$lang['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ ი ზáƒáƒ›áƒ %s'; $lang['lockedby'] = 'დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ:'; $lang['lockexpire'] = 'გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბáƒ:'; $lang['js']['willexpire'] = 'გვერდი გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბრ1 წუთში'; @@ -108,7 +106,6 @@ $lang['js']['keepopen'] = 'დáƒáƒ¢áƒáƒ•ეთ ღიáƒ'; $lang['js']['hidedetails'] = 'დეტáƒáƒšáƒ”ბის დáƒáƒ›áƒáƒšáƒ•áƒ'; $lang['js']['mediatitle'] = 'ინსტრუმენტები'; $lang['js']['mediadisplay'] = 'ბმულის ტიპი'; -$lang['js']['mediaalign'] = 'Alignment'; $lang['js']['mediasize'] = 'სურáƒáƒ—ის ზáƒáƒ›áƒ'; $lang['js']['mediatarget'] = 'მიზნის ბმული'; $lang['js']['mediaclose'] = 'დáƒáƒ®áƒ£áƒ ვáƒ'; @@ -126,7 +123,6 @@ $lang['js']['medianolink'] = 'áƒáƒ დáƒáƒšáƒ˜áƒœáƒ™áƒáƒ— სურრ$lang['js']['medialeft'] = 'მáƒáƒ ცხვნივ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი'; $lang['js']['mediaright'] = 'მáƒáƒ ჯვნივ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი'; $lang['js']['mediacenter'] = 'შუáƒáƒ¨áƒ˜ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი'; -$lang['js']['medianoalign'] = 'Use no align.'; $lang['js']['nosmblinks'] = 'ეს ფუქნცირმუშáƒáƒáƒ‘ს მხáƒáƒšáƒáƒ“ Internet Explorer-ზე'; $lang['js']['linkwiz'] = 'ბმული'; $lang['js']['linkto'] = 'ბმული'; @@ -134,9 +130,6 @@ $lang['js']['del_confirm'] = 'დáƒáƒ წმუნებული ხáƒáƒ $lang['js']['restore_confirm'] = 'დáƒáƒ წმუნებული ხáƒáƒ თ რáƒáƒ› áƒáƒ¦áƒ“გენრგინდáƒáƒ—?'; $lang['js']['media_diff'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებების ჩვენებáƒ'; $lang['js']['media_diff_both'] = 'გვერდიგვერდ'; -$lang['js']['media_diff_opacity'] = 'Shine-through'; -$lang['js']['media_diff_portions'] = 'Swipe -'; $lang['js']['media_select'] = 'áƒáƒ ჩეული ფáƒáƒ˜áƒšáƒ”ბი'; $lang['js']['media_upload_btn'] = 'áƒáƒ¢áƒ•ირთვáƒ'; $lang['js']['media_done_btn'] = 'მზáƒáƒ“áƒáƒ'; @@ -146,54 +139,40 @@ $lang['js']['media_overwrt'] = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ $lang['rssfailed'] = 'დáƒáƒ¤áƒ˜áƒ¥áƒ¡áƒ˜áƒ დრშეცდáƒáƒ›áƒ:'; $lang['nothingfound'] = 'ნáƒáƒžáƒáƒ•ნი áƒáƒ áƒáƒ ის'; $lang['mediaselect'] = 'მედირფáƒáƒ˜áƒšáƒ”ბი'; -$lang['fileupload'] = 'მედირფáƒáƒ˜áƒšáƒ”ბის áƒáƒ¢áƒ•ირთვáƒ'; $lang['uploadsucc'] = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ¡áƒ ულებულიáƒ'; $lang['uploadfail'] = 'შეფერხებრáƒáƒ¢áƒ•ირთვისáƒáƒ¡'; $lang['uploadwrong'] = 'áƒáƒ¢áƒ•ირთვრშეუძლებელიáƒ'; $lang['uploadexist'] = 'ფáƒáƒ˜áƒšáƒ˜ უკვე áƒáƒ სებáƒáƒ‘ს'; -$lang['uploadbadcontent'] = 'áƒáƒ¢áƒ•ირთული ფáƒáƒ˜áƒšáƒ”ბი áƒáƒ ემთხვევრ'; +$lang['uploadbadcontent'] = 'áƒáƒ¢áƒ•ირთული ფáƒáƒ˜áƒšáƒ”ბი áƒáƒ ემთხვევრ%s'; $lang['uploadspam'] = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ სპáƒáƒ›áƒ‘ლáƒáƒ™áƒ”რის მიერ'; $lang['uploadxss'] = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ'; -$lang['uploadsize'] = 'áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ˜ ზედმეტáƒáƒ“ დიდიáƒ'; -$lang['deletesucc'] = '% ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ'; -$lang['deletefail'] = '% ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ'; -$lang['mediainuse'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ % ვერწáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ'; -$lang['namespaces'] = 'Namespaces'; +$lang['uploadsize'] = 'áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ˜ ზედმეტáƒáƒ“ დიდირ%s'; +$lang['deletesucc'] = '%s ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ'; +$lang['deletefail'] = '%s ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ'; +$lang['mediainuse'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ %s ვერწáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ'; $lang['mediafiles'] = 'áƒáƒ სებული ფáƒáƒ˜áƒšáƒ”ბი'; $lang['accessdenied'] = 'თქვენ áƒáƒ შეგიძლიáƒáƒ— გვერდის ნáƒáƒ®áƒ•áƒ'; -$lang['mediausage'] = 'Use the following syntax to reference this file:'; $lang['mediaview'] = 'áƒáƒ იგინáƒáƒšáƒ˜ ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩვენებáƒ'; $lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.'; -$lang['mediaextchange'] = 'Filextension changed from .%s to .%s!'; -$lang['reference'] = 'References for'; $lang['ref_inuse'] = 'ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებრáƒáƒ¥:'; $lang['ref_hidden'] = 'ზáƒáƒ’იერთი ბლáƒáƒ™áƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის უფლებრáƒáƒ გáƒáƒ¥áƒ•თ'; -$lang['hits'] = 'Hits'; $lang['quickhits'] = 'მსგáƒáƒ•სი სáƒáƒ®áƒ”ლები'; -$lang['toc'] = 'Table of Contents'; $lang['current'] = 'áƒáƒ®áƒšáƒáƒœáƒ“ელი'; $lang['yours'] = 'თვენი ვერსიáƒ'; $lang['diff'] = 'ვერსიების გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებáƒ'; $lang['diff2'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებები'; -$lang['difflink'] = 'Link to this comparison view'; $lang['diff_type'] = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებების ჩვენებáƒ'; -$lang['diff_inline'] = 'Inline'; $lang['diff_side'] = 'გვერდიგვერდ'; $lang['diffprevrev'] = 'წინრვერსიáƒ'; $lang['diffnextrev'] = 'შემდეგი ვერსიáƒ'; $lang['difflastrev'] = 'ბáƒáƒšáƒ ვერსიáƒ'; -$lang['diffbothprevrev'] = 'Both sides previous revision'; -$lang['diffbothnextrev'] = 'Both sides next revision'; $lang['line'] = 'ზáƒáƒšáƒ˜'; -$lang['breadcrumb'] = 'Trace:'; $lang['youarehere'] = 'თვენ ხáƒáƒ თ áƒáƒ¥:'; $lang['lastmod'] = 'ბáƒáƒšáƒáƒ¡ მáƒáƒ“იფიცირებული:'; $lang['deleted'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜áƒ'; $lang['created'] = 'შექმნილიáƒ'; -$lang['restored'] = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ%'; +$lang['restored'] = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ(%s)'; $lang['external_edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ'; -$lang['summary'] = 'Edit summary'; $lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">სáƒáƒáƒ˜áƒ áƒáƒ Adobe Flash Plugin</a>'; $lang['download'] = 'Snippet-ის გáƒáƒ“მáƒáƒ¬áƒ”რáƒ'; $lang['tools'] = 'ინსტრუმენტები'; @@ -211,11 +190,6 @@ $lang['changes_type'] = 'ცვლილებები'; $lang['pages_changes'] = 'გვერდები'; $lang['media_changes'] = 'მედირფáƒáƒ˜áƒšáƒ”ბი'; $lang['both_changes'] = 'გვერდები დრმედირფáƒáƒ˜áƒšáƒ”ბი'; -$lang['qb_bold'] = 'Bold Text'; -$lang['qb_italic'] = 'Italic Text'; -$lang['qb_underl'] = 'Underlined Text'; -$lang['qb_code'] = 'Monospaced Text'; -$lang['qb_strike'] = 'Strike-through Text'; $lang['qb_h1'] = 'Level 1 სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_h2'] = 'Level 2 სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_h3'] = 'Level 3 სáƒáƒ—áƒáƒ£áƒ ი'; @@ -226,66 +200,28 @@ $lang['qb_hs'] = 'სáƒáƒ—áƒáƒ£áƒ ის áƒáƒ ჩევáƒ'; $lang['qb_hplus'] = 'Higher სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_hminus'] = 'Lower სáƒáƒ—áƒáƒ£áƒ ი'; $lang['qb_hequal'] = 'Same Level სáƒáƒ—áƒáƒ£áƒ ი'; -$lang['qb_link'] = 'Internal Link'; -$lang['qb_extlink'] = 'External Link'; -$lang['qb_hr'] = 'Horizontal Rule'; $lang['qb_ol'] = 'შეკვეთილი ბáƒáƒšáƒ მáƒáƒ¡áƒáƒšáƒ'; -$lang['qb_ul'] = 'Unordered List Item'; $lang['qb_media'] = 'ნáƒáƒ®áƒáƒ¢áƒ”ბის დრსხვრფáƒáƒ˜áƒ”ლბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ'; $lang['qb_sig'] = 'ხელმáƒáƒ¬áƒ”რáƒ'; $lang['qb_smileys'] = 'სმáƒáƒ˜áƒšáƒ”ბი'; -$lang['qb_chars'] = 'Special Chars'; -$lang['upperns'] = 'jump to parent namespace'; -$lang['admin_register'] = 'áƒáƒ®áƒáƒšáƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ ებლის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ'; -$lang['metaedit'] = 'Edit Metadata'; -$lang['metasaveerr'] = 'Writing metadata failed'; -$lang['metasaveok'] = 'Metadata saved'; $lang['img_title'] = 'სáƒáƒ—áƒáƒ£áƒ ი:'; -$lang['img_caption'] = 'Caption:'; $lang['img_date'] = 'თáƒáƒ იღი:'; $lang['img_fname'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი:'; $lang['img_fsize'] = 'ზáƒáƒ›áƒ:'; $lang['img_artist'] = 'ფáƒáƒ¢áƒáƒ’რáƒáƒ¤áƒ˜:'; -$lang['img_copyr'] = 'Copyright:'; $lang['img_format'] = 'ფáƒáƒ მáƒáƒ¢áƒ˜:'; $lang['img_camera'] = 'კáƒáƒ›áƒ”რáƒ:'; -$lang['img_keywords'] = 'Keywords:'; $lang['img_width'] = 'სიგáƒáƒœáƒ”:'; $lang['img_height'] = 'სიმáƒáƒ¦áƒšáƒ”:'; -$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'; -$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'] = 'მიღებáƒ'; $lang['subscr_style_every'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•ელ ცვლილებáƒáƒ–ე'; $lang['subscr_style_digest'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•ელი გვერდის შეცვლáƒáƒ–ე '; $lang['subscr_style_list'] = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•ელი გვერდის შეცვლáƒáƒ–ე '; -$lang['authtempfail'] = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.'; -$lang['authpwdexpire'] = 'თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•რ%d დღეში, მáƒáƒšáƒ” შეცვლრმáƒáƒ’იწევთ.'; $lang['i_chooselang'] = 'ენსი áƒáƒ ჩევáƒ'; $lang['i_installer'] = 'DokuWiki დáƒáƒ›áƒ§áƒ”ნებელი'; $lang['i_wikiname'] = 'Wiki სáƒáƒ®áƒ”ლი'; -$lang['i_enableacl'] = 'Enable ACL (recommended)'; $lang['i_superuser'] = 'áƒáƒ“მინი'; $lang['i_problems'] = 'შეáƒáƒ¡áƒ¬áƒáƒ ეთ შეცდáƒáƒ›áƒ”ბი'; -$lang['i_modified'] = 'For security reasons this script will only work with a new and unmodified Dokuwiki installation. You should either re-extract the files from the downloaded package or consult the complete <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>'; -$lang['i_funcna'] = 'PHP function <code>%s</code> is not available. Maybe your hosting provider disabled it for some reason?'; -$lang['i_phpver'] = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.'; -$lang['i_permfail'] = '<code>%s</code> is not writable by DokuWiki. You need to fix the permission settings of this directory!'; -$lang['i_confexists'] = '<code>%s</code> already exists'; -$lang['i_writeerr'] = 'Unable to create <code>%s</code>. You will need to check directory/file permissions and create the file manually.'; -$lang['i_badhash'] = 'unrecognised or modified dokuwiki.php (hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code> - illegal or empty value'; -$lang['i_failure'] = 'Some errors occurred while writing the configuration files. You may need to fix them manually before you can use <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.'; -$lang['i_policy'] = 'Initial ACL policy'; $lang['i_pol0'] = 'ღირვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრშეუძლირნებისმიერს)'; $lang['i_pol1'] = 'თáƒáƒ•ისუფáƒáƒšáƒ˜ ვიკი (წáƒáƒ™áƒ˜áƒ—ხვრშეუძლირყველáƒáƒ¡, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრ- რეგისტრირებულს)'; $lang['i_pol2'] = 'დáƒáƒ®áƒ£áƒ ული ვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრშეუძლიáƒáƒ— მხáƒáƒšáƒáƒ“ რეგისტრირებულებს)'; @@ -295,7 +231,6 @@ $lang['i_license'] = 'áƒáƒ˜áƒ ჩიეთ ლიცენზირ$lang['i_license_none'] = 'áƒáƒ áƒáƒ©áƒ•ენáƒáƒ— ლიცენზიის ინფáƒáƒ მáƒáƒªáƒ˜áƒ'; $lang['i_pop_field'] = 'დáƒáƒ’ვეხმáƒáƒ ეთ DokuWiki-ს áƒáƒ’უმჯáƒáƒ‘ესებáƒáƒ¨áƒ˜'; $lang['i_pop_label'] = 'თვეში ერთელ ინფáƒáƒ მáƒáƒªáƒ˜áƒ˜áƒ¡ DokuWiki-ის áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ˜áƒ¡áƒ—ვის გáƒáƒ’ზáƒáƒ•ნáƒ'; -$lang['recent_global'] = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.'; $lang['years'] = '%d წლის უკáƒáƒœ'; $lang['months'] = '%d თვის უკáƒáƒœ'; $lang['weeks'] = '%d კვირის უკáƒáƒœ'; @@ -310,17 +245,12 @@ $lang['media_file'] = 'ფáƒáƒ˜áƒšáƒ˜'; $lang['media_viewtab'] = 'ჩვენებáƒ'; $lang['media_edittab'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ'; $lang['media_historytab'] = 'ისტáƒáƒ იáƒ'; -$lang['media_list_thumbs'] = 'Thumbnails'; -$lang['media_list_rows'] = 'Rows'; $lang['media_sort_name'] = 'სáƒáƒ®áƒ”ლი'; $lang['media_sort_date'] = 'თáƒáƒ იღი'; -$lang['media_namespaces'] = 'Choose namespace'; $lang['media_files'] = 'ფáƒáƒ˜áƒšáƒ”ბი %s'; $lang['media_upload'] = 'áƒáƒ¢áƒ•ირთვრ%s'; $lang['media_search'] = 'ძებნრ%s'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s at %s'; $lang['media_edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ ებრ%s'; $lang['media_history'] = 'ისტáƒáƒ ირ%s'; -$lang['media_meta_edited'] = 'metadata edited'; $lang['media_perm_read'] = 'თვენ áƒáƒ გáƒáƒ¥áƒ•თ უფლებრწáƒáƒ˜áƒ™áƒ˜áƒ—ხáƒáƒ— ეს მáƒáƒ¡áƒáƒšáƒ'; diff --git a/inc/lang/kk/lang.php b/inc/lang/kk/lang.php index 74afa24e5d4611e3a5bd91b0a8bf49a23010fcfc..cb224d9a0ee4ea4ddeb5b8b35592107540901295 100644 --- a/inc/lang/kk/lang.php +++ b/inc/lang/kk/lang.php @@ -6,8 +6,8 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '\''; @@ -34,7 +34,6 @@ $lang['btn_update'] = 'Жаңарту'; $lang['btn_delete'] = 'Жою'; $lang['btn_back'] = 'Ðртқа'; $lang['btn_backlink'] = 'Кері Ñілтемелері'; -$lang['btn_backtomedia'] = 'Медиафайлды таңдауға қайту'; $lang['btn_subscribe'] = 'Жазылуларды баÑқару'; $lang['btn_profile'] = 'Профильді жаңарту'; $lang['btn_reset'] = 'ТүÑіру'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index fb3fc3343ab53851a2e8b564e8e7c1602661151b..1b2bfdc8b4d2aa821ed893d17dda9c16d18e8c2d 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -34,7 +34,6 @@ $lang['btn_update'] = 'កែឡើង'; $lang['btn_delete'] = 'លុបចោល'; $lang['btn_back'] = 'ážáŸ’រឡប់'; $lang['btn_backlink'] = 'ážáŸ’សែចំណងក្រោយ'; -$lang['btn_backtomedia'] = 'ទៅប្រពáŸáž“ឯកសាវិញ'; $lang['btn_subscribe'] = 'ដាក់ដំណឹងផ្លស់ប្ážáž¼ážš'; $lang['btn_profile'] = 'កែប្រវážáŸ’ážáž·ážšáž¼áž”'; $lang['btn_reset'] = 'កមណážáŸ‹áž¡áž¾áž„រិញ'; @@ -62,7 +61,7 @@ $lang['reguexists'] = 'សុំអាទោស​ នាមប្រើន០$lang['regsuccess'] = 'អ្នកប្រើបានបង្កើážáž ើយ និងពាក្សសម្ងាážáž€áŸáž”ានផ្ញើទៀážáŸ”'; $lang['regsuccess2']= 'អ្នកប្រើបានបង្កើážáž ើយ។'; $lang['regmailfail']= 'មើលទៅដុចជាមានកំហុសក្នុង....សុំទាកទងអ្នកក្របក្រង'; -$lang['regbadmail'] = 'អ៊ីមáŸáž›áž¢áŸ’នកសាសáŸáž˜áž·áž“ážáŸ’រូវបញ្ជរ—បើអ្នកកិážážáž¶áž“áŸáŸ‡áž‡áž¶áž€áŸ†áž ុសបដិបážáŸ’ážáž· សុំទាកទងអ្នកក្របគ្រោង។'; +$lang['regbadmail'] = 'អ៊ីមáŸáž›áž¢áŸ’នកសាសáŸáž˜áž·áž“ážáŸ’រូវបញ្ជរ—បើអ្នកកិážážáž¶áž“áŸáŸ‡áž‡áž¶áž€áŸ†áž ុសបដិបážáŸ’ážáž· សុំទាកទងអ្នកក្របគ្រោង។'; $lang['regbadpass'] = 'គូពាក្សសម្ងាážáž˜áž·áž“ដូចគ្នាទ០សមសាកទៀážáŸ”'; $lang['regpwmail'] = 'ពាក្សសម្ងាážáž¢áŸ’នក'; $lang['reghere'] = 'អ្នកឥážáž˜áž¶áž“បញ្ជីនាមបម្រើទáŸ? សុំចល់ចុះឈ្មោះធ្វើគណនីសម្របប្រើប្រស'; @@ -92,7 +91,6 @@ $lang['rssfailed'] = 'មានកំហុសពáŸáž›áž‘ៅ​ប្រម $lang['nothingfound']= 'រកមិនឃើញអ្វីទáŸáŸ”'; $lang['mediaselect'] = 'ឯកសារមីឌៀ'; -$lang['fileupload'] = 'រុញឯកសារមីឌៀឡើង'; $lang['uploadsucc'] = 'រុញចូលមានជáŸáž™'; $lang['uploadfail'] = 'រុញឡើងបរាជáŸáž™áŸ” ប្រហែលážáž»ážŸážŸáž·áž‘្ឋានុញ្ញាáž?'; $lang['uploadwrong'] = 'រុញឡើងážáŸ’រូវ​បាន​បដិសáŸáž’។ ឯកសារ'; @@ -101,8 +99,8 @@ $lang['uploadbadcontent'] = 'áž’áž¶ážáž»áž…ំរុញឡើងមិនážáŸ’ $lang['uploadspam'] = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„ ដៅយ '; $lang['uploadxss'] = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„ '; $lang['deletesucc'] = 'ឯកសារ «%s» បានលុបហើយ។'; -$lang['deletefail'] = '«%s» មិនអាចលុបទáŸ&mdashមើល'; -$lang['mediainuse'] = 'ឯកសារ «%s» ឥážáž‘ានលុបទáŸ&mdashមានគáŸáž€áŸ†áž—ងទáŸáž‡áž¶áž”់ប្រើ។'; +$lang['deletefail'] = '«%s» មិនអាចលុបទáŸâ€”មើល'; +$lang['mediainuse'] = 'ឯកសារ «%s» ឥážáž‘ានលុបទáŸâ€”មានគáŸáž€áŸ†áž—ងទáŸáž‡áž¶áž”់ប្រើ។'; $lang['namespaces'] = 'នាមដ្ឋាន'; $lang['mediafiles'] = 'ឯកសារទំនáŸáž“ៅក្នុង'; @@ -160,7 +158,6 @@ $lang['qb_smileys'] = 'សញ្ញាអារម្មណáŸ'; $lang['qb_chars'] = 'អក្ážážšáŸˆáž–ិសáŸážŸ'; $lang['js']['del_confirm']= 'លុប'; -$lang['admin_register']= 'ážáŸ‚មអ្នកប្រើ';//'Add new user'; $lang['metaedit'] = 'កែទិន្ននáŸáž™áž¢ážšáž¼áž”';//'Edit Metadata'; $lang['metasaveerr'] = 'ពំអាចកážáŸ‹ážšáž‘ិន្ននáŸáž™áž¢ážšáž¼áž”';//'Writing metadata failed'; @@ -188,12 +185,9 @@ $lang['i_enableacl'] = 'បើកប្រើ (អនុសាស)'; $lang['i_superuser'] = 'អ្នកកំពូល'; $lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្ážáž‘ៅទៀហដល់អ្នកជួសជុលវា។'; $lang['i_modified'] = ''; -$lang['i_funcna'] = '<code>%s</code> '; $lang['i_permfail'] = '<code>%s</code> មិនអាចសាស'; $lang['i_confexists'] = '<code>%s</code> មានហាយ'; $lang['i_writeerr'] = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកážáŸ’រវការពិនិážáŸ’យអធិក្រឹážáž·ážšáž”ស់ážážáž“ឹងឯកសារ។'; -$lang['i_badhash'] = '(hash=<code>%s</code>)'; -$lang['i_badval'] = '<code>%s</code>—'; $lang['i_success'] = ''; $lang['i_failure'] = 'ពលសាសារ'; $lang['i_policy'] = 'បញ្ជីអនុញ្ញážáž•្ដើម'; diff --git a/inc/lang/ko/admin.txt b/inc/lang/ko/admin.txt index 2f81e89618ac34c7ae0faf6c899a1c0cae2d9926..e9631da10f298f479d548a26875983f5185f7304 100644 --- a/inc/lang/ko/admin.txt +++ b/inc/lang/ko/admin.txt @@ -1,3 +1,3 @@ ====== 관리 ====== -ë„ì¿ ìœ„í‚¤ì—서 ì‚¬ìš©í• ìˆ˜ 있는 관리 작업 목ë¡ì„ 아래ì—서 ì°¾ì„ ìˆ˜ 있습니다. \ No newline at end of file +ë„ì¿ ìœ„í‚¤ì—서 ì‚¬ìš©í• ìˆ˜ 있는 관리 작업 목ë¡ì€ 아래ì—서 ì°¾ì„ ìˆ˜ 있습니다. \ No newline at end of file diff --git a/inc/lang/ko/backlinks.txt b/inc/lang/ko/backlinks.txt index 6a6ad48a4d7f200a68991a4a8d82e27208c25616..457974d860c6b04c5540680007a0bd030676dc94 100644 --- a/inc/lang/ko/backlinks.txt +++ b/inc/lang/ko/backlinks.txt @@ -1,3 +1,3 @@ -====== ë°±ë§í¬ ====== +====== ì—ë§í¬ ====== 현재 문서를 가리키는 ë§í¬ê°€ 있는 문서 목ë¡ìž…니다. \ No newline at end of file diff --git a/inc/lang/ko/denied.txt b/inc/lang/ko/denied.txt index a4b94be655825927bc1c578df8773c30a2613e40..bf82fbd3105c2daa1af1702efef19c623f205722 100644 --- a/inc/lang/ko/denied.txt +++ b/inc/lang/ko/denied.txt @@ -1,4 +1,3 @@ ====== 권한 ê±°ì ˆ ====== -죄송하지만 계ì†í• 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. - +죄송하지만 계ì†í• 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. \ No newline at end of file diff --git a/inc/lang/ko/draft.txt b/inc/lang/ko/draft.txt index 7e700f72558fe4ca9a38b992a98071c031f8268e..bb6dc8c00f791f4bedc28ffdf73ce616bbce4556 100644 --- a/inc/lang/ko/draft.txt +++ b/inc/lang/ko/draft.txt @@ -2,4 +2,4 @@ ì´ ë¬¸ì„œì˜ ë§ˆì§€ë§‰ 편집 ì„¸ì…˜ì€ ì˜¬ë°”ë¥´ê²Œ ë나지 않았습니다. ë„ì¿ ìœ„í‚¤ëŠ” 작업 ë„중 ìžë™ìœ¼ë¡œ ì €ìž¥ëœ ì´ˆì•ˆì„ ì‚¬ìš©í•´ íŽ¸ì§‘ì„ ê³„ì† í• ìˆ˜ 있습니다. 마지막 세션 ë™ì•ˆ ì €ìž¥ëœ ì´ˆì•ˆì„ ì•„ëž˜ì—서 ë³¼ 수 있습니다. -ë¹„ì •ìƒì 으로 ë난 편집 ì„¸ì…˜ì„ **ë˜ëŒë¦´**ì§€ 여부를 ê²°ì •í•˜ê³ , ìžë™ìœ¼ë¡œ ì €ìž¥ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file +ë¹„ì •ìƒì 으로 ë난 편집 ì„¸ì…˜ì„ **복구**í• ì§€ 여부를 ê²°ì •í•˜ê³ , ìžë™ìœ¼ë¡œ ì €ìž¥ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요. \ No newline at end of file diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt index 8da90266ce1c649e9eedcc3f90b0555709d2be6e..70b24ac7b0e7c9c0ae2b13958e9132064f6bff1a 100644 --- a/inc/lang/ko/edit.txt +++ b/inc/lang/ko/edit.txt @@ -1 +1 @@ -문서를 íŽ¸ì§‘í•˜ê³ ''ì €ìž¥''ì„ ëˆ„ë¥´ì„¸ìš”. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]]를 ì°¸ê³ í•˜ì„¸ìš”. 문서를 **ë” ì¢‹ê²Œ 만들 ìžì‹ ì´ ìžˆì„ ë•Œ**ì—ë§Œ 편집하세요. ì—°ìŠµì„ í•˜ê³ ì‹¶ë‹¤ë©´ ë¨¼ì € [[playground:playground|연습장]]ì— ê°€ì„œ 연습하세요. \ No newline at end of file +문서를 íŽ¸ì§‘í•˜ê³ ''ì €ìž¥''ì„ ëˆ„ë¥´ì„¸ìš”. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]]를 참조하세요. 문서를 **ë” ì¢‹ê²Œ 만들 ìžì‹ ì´ ìžˆì„ ë•Œ**ì—ë§Œ 편집하세요. ì—°ìŠµì„ í•˜ê³ ì‹¶ë‹¤ë©´ ë¨¼ì € [[playground:playground|연습장]]ì— ê°€ì„œ 연습하세요. \ No newline at end of file diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 877c43de3b86b79904dcbecc37ac2734038ce87d..690212431cc3dc472d926a4d5b6fec8f06201b84 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -13,6 +13,8 @@ * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Garam <rowain8@gmail.com> * @author Young gon Cha <garmede@gmail.com> + * @author hyeonsoft <hyeonsoft@live.co.kr> + * @author Erial <erial2@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -29,8 +31,8 @@ $lang['btn_search'] = '검색'; $lang['btn_save'] = 'ì €ìž¥'; $lang['btn_preview'] = '미리 보기'; $lang['btn_top'] = '맨 위로'; -$lang['btn_newer'] = '<< 최근'; -$lang['btn_older'] = 'ì´ì „ >>'; +$lang['btn_newer'] = '<< ë” ìµœê·¼'; +$lang['btn_older'] = 'ëœ ìµœê·¼ >>'; $lang['btn_revs'] = 'ì´ì „ íŒ'; $lang['btn_recent'] = '최근 바뀜'; $lang['btn_upload'] = '올리기'; @@ -40,17 +42,16 @@ $lang['btn_secedit'] = '편집'; $lang['btn_login'] = '로그ì¸'; $lang['btn_logout'] = '로그아웃'; $lang['btn_admin'] = '관리'; -$lang['btn_update'] = '바꾸기'; +$lang['btn_update'] = 'ì—…ë°ì´íЏ'; $lang['btn_delete'] = 'ì‚ì œ'; $lang['btn_back'] = '뒤로'; -$lang['btn_backlink'] = 'ë°±ë§í¬'; -$lang['btn_backtomedia'] = '미디어 íŒŒì¼ ì„ íƒìœ¼ë¡œ ëŒì•„가기'; +$lang['btn_backlink'] = 'ì—ë§í¬'; $lang['btn_subscribe'] = 'êµ¬ë… ê´€ë¦¬'; -$lang['btn_profile'] = '프로필 바꾸기'; +$lang['btn_profile'] = '프로필 ì—…ë°ì´íЏ'; $lang['btn_reset'] = 'ìž¬ì„¤ì •'; $lang['btn_resendpwd'] = '새 비밀번호 ì„¤ì •'; $lang['btn_draft'] = '초안 편집'; -$lang['btn_recover'] = '초안 ë˜ëŒë¦¬ê¸°'; +$lang['btn_recover'] = '초안 복구'; $lang['btn_draftdel'] = '초안 ì‚ì œ'; $lang['btn_revert'] = 'ë˜ëŒë¦¬ê¸°'; $lang['btn_register'] = '등ë¡'; @@ -77,22 +78,24 @@ $lang['nosecedit'] = '한 ë™ì•ˆ 문서가 바뀌었으며, 문단 $lang['searchcreatepage'] = '만약 ì›í•˜ëŠ” 문서를 찾지 못했다면, \'\'문서 만들기\'\'나 \'\'문서 편집\'\'ì„ ì‚¬ìš©í•´ 검색어와 ê°™ì€ ì´ë¦„ì˜ ë¬¸ì„œë¥¼ 만들거나 íŽ¸ì§‘í• ìˆ˜ 있습니다.'; $lang['regmissing'] = '죄송하지만 ëª¨ë“ í•„ë“œë¥¼ 채워야 합니다.'; $lang['reguexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; -$lang['regsuccess'] = '사용ìžë¥¼ 만들었으며 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; -$lang['regsuccess2'] = '사용ìžë¥¼ 만들었습니다.'; +$lang['regsuccess'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìœ¼ë©° 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; +$lang['regsuccess2'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìŠµë‹ˆë‹¤.'; +$lang['regfail'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ 수 없었습니다.'; $lang['regmailfail'] = '비밀번호를 ì´ë©”ì¼ë¡œ 보내는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”!'; $lang['regbadmail'] = '주어진 ì´ë©”ì¼ ì£¼ì†Œê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ - 오류ë¼ê³ ìƒê°í•˜ë©´ 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”'; -$lang['regbadpass'] = 'ë‘ ì£¼ì–´ì§„ 비밀번호가 같지 않습니다. 다시 ìž…ë ¥í•˜ì„¸ìš”.'; +$lang['regbadpass'] = 'ë‘ ì£¼ì–´ì§„ 비밀번호가 ì¼ì¹˜í•˜ì§€ 않습니다, 다시 ìž…ë ¥í•˜ì„¸ìš”.'; $lang['regpwmail'] = 'ë„ì¿ ìœ„í‚¤ 비밀번호'; $lang['reghere'] = 'ê³„ì •ì´ ì—†ë‚˜ìš”? ê³„ì •ì„ ë“±ë¡í•˜ì„¸ìš”'; $lang['profna'] = 'ì´ ìœ„í‚¤ëŠ” 프로필 ìˆ˜ì •ì„ í• ìˆ˜ 없습니다'; $lang['profnochange'] = 'ë°”ë€ ë‚´ìš©ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['profnoempty'] = '빈 ì´ë¦„ì´ë‚˜ ì´ë©”ì¼ ì£¼ì†ŒëŠ” 허용하지 않습니다.'; $lang['profchanged'] = 'í”„ë¡œí•„ì´ ì„±ê³µì 으로 바뀌었습니다.'; -$lang['profnodelete'] = 'ì´ ìœ„í‚¤ëŠ” ì‚¬ìš©ìž ì‚ì œë¥¼ ì§€ì›í•˜ì§€ 않습니다'; +$lang['profnodelete'] = 'ì´ ìœ„í‚¤ëŠ” ì‚¬ìš©ìž ê³„ì • ì‚ì œë¥¼ ì§€ì›í•˜ì§€ 않습니다'; $lang['profdeleteuser'] = 'ê³„ì • ì‚ì œ'; $lang['profdeleted'] = 'ë‹¹ì‹ ì˜ ì‚¬ìš©ìž ê³„ì •ì´ ì´ ìœ„í‚¤ì—서 ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['profconfdelete'] = 'ì´ ìœ„í‚¤ì—서 ë‚´ ê³„ì •ì„ ì œê±°í•˜ê³ ì‹¶ìŠµë‹ˆë‹¤. <br/> ì´ í–‰ë™ì€ ë˜ëŒë¦´ 수 없습니다.'; $lang['profconfdeletemissing'] = 'ì„ íƒí•˜ì§€ ì•Šì€ í™•ì¸ ìƒìžë¥¼ 확ì¸'; +$lang['proffail'] = 'ì‚¬ìš©ìž í”„ë¡œí•„ì´ ì—…ë°ì´íЏë˜ì§€ 않았습니다.'; $lang['pwdforget'] = '비밀번호를 잊으셨나요? 비밀번호를 ìž¬ì„¤ì •í•˜ì„¸ìš”'; $lang['resendna'] = 'ì´ ìœ„í‚¤ëŠ” 비밀번호 ìž¬ì„¤ì •ì„ ì§€ì›í•˜ì§€ 않습니다.'; $lang['resendpwd'] = '다ìŒìœ¼ë¡œ 새 비밀번호 보내기'; @@ -108,8 +111,8 @@ $lang['searchmedia_in'] = '%sì—서 검색'; $lang['txt_upload'] = '올릴 íŒŒì¼ ì„ íƒ:'; $lang['txt_filename'] = '올릴 íŒŒì¼ ì´ë¦„ (ì„ íƒ ì‚¬í•):'; $lang['txt_overwrt'] = '기존 파ì¼ì— ë®ì–´ì“°ê¸°'; -$lang['maxuploadsize'] = '최대 올리기 용량. 파ì¼ë‹¹ %s입니다.'; -$lang['lockedby'] = '현재 ìž ê²¨ì§„ 사용ìž:'; +$lang['maxuploadsize'] = '최대 올리기 용량. 파ì¼ë‹¹ %s.'; +$lang['lockedby'] = '현재 ìž ê·¼ 사용ìž:'; $lang['lockexpire'] = 'ìž ê¸ˆ í•´ì œ 시간:'; $lang['js']['willexpire'] = 'ìž ì‹œ 후 편집 ìž ê¸ˆì´ í•´ì œë©ë‹ˆë‹¤.\n편집 ì¶©ëŒì„ í”¼í•˜ë ¤ë©´ 미리 보기를 눌러 ìž ê¸ˆ ì‹œê°„ì„ ë‹¤ì‹œ ì„¤ì •í•˜ì„¸ìš”.'; $lang['js']['notsavedyet'] = 'ì €ìž¥í•˜ì§€ ì•Šì€ ë°”ë€œì´ ì‚¬ë¼ì§‘니다.'; @@ -120,7 +123,7 @@ $lang['js']['mediatitle'] = 'ë§í¬ ì„¤ì •'; $lang['js']['mediadisplay'] = 'ë§í¬ ìœ í˜•'; $lang['js']['mediaalign'] = '배치'; $lang['js']['mediasize'] = '그림 í¬ê¸°'; -$lang['js']['mediatarget'] = 'ë§í¬ 목표'; +$lang['js']['mediatarget'] = 'ë§í¬ 타겟'; $lang['js']['mediaclose'] = '닫기'; $lang['js']['mediainsert'] = '넣기'; $lang['js']['mediadisplayimg'] = 'ê·¸ë¦¼ì„ ë³´ì—¬ì¤ë‹ˆë‹¤.'; @@ -155,7 +158,6 @@ $lang['js']['media_overwrt'] = '기존 파ì¼ì— ë®ì–´ì“°ê¸°'; $lang['rssfailed'] = 'ì´ í”¼ë“œë¥¼ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:'; $lang['nothingfound'] = '아무 ê²ƒë„ ì—†ìŠµë‹ˆë‹¤.'; $lang['mediaselect'] = '미디어 파ì¼'; -$lang['fileupload'] = '미디어 íŒŒì¼ ì˜¬ë¦¬ê¸°'; $lang['uploadsucc'] = '올리기 성공'; $lang['uploadfail'] = '올리기가 실패ë˜ì—ˆìŠµë‹ˆë‹¤. ìž˜ëª»ëœ ê¶Œí•œ 때문ì¼ì§€ë„ 모릅니다.'; $lang['uploadwrong'] = '올리기가 ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤. ê¸ˆì§€ëœ íŒŒì¼ í™•ìž¥ìžìž…니다!'; @@ -170,14 +172,14 @@ $lang['mediainuse'] = '"%s" 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다 - $lang['namespaces'] = 'ì´ë¦„공간'; $lang['mediafiles'] = 'ì‚¬ìš©í• ìˆ˜ 있는 íŒŒì¼ ëª©ë¡'; $lang['accessdenied'] = 'ì´ ë¬¸ì„œë¥¼ ë³¼ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.'; -$lang['mediausage'] = 'ì´ íŒŒì¼ì„ ì°¸ê³ í•˜ë ¤ë©´ ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ì„¸ìš”:'; +$lang['mediausage'] = 'ì´ íŒŒì¼ì„ ì°¸ì¡°í•˜ë ¤ë©´ ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ì„¸ìš”:'; $lang['mediaview'] = 'ì›ë³¸ íŒŒì¼ ë³´ê¸°'; $lang['mediaroot'] = '루트'; $lang['mediaupload'] = '파ì¼ì„ 현재 ì´ë¦„공간으로 올립니다. 하위 ì´ë¦„공간으로 ë§Œë“¤ë ¤ë©´ ì„ íƒí•œ íŒŒì¼ ì´ë¦„ ì•žì— ìŒì (:)으로 구분ë˜ëŠ” ì´ë¦„ì„ ë¶™ì´ë©´ ë©ë‹ˆë‹¤. 파ì¼ì„ 드래그 앤 드ë¡í•´ ì„ íƒí• 수 있습니다.'; $lang['mediaextchange'] = 'íŒŒì¼ í™•ìž¥ìžê°€ .%sì—서 .%s(으)로 바뀌었습니다!'; $lang['reference'] = '다ìŒì„ 참조'; $lang['ref_inuse'] = 'ë‹¤ìŒ ë¬¸ì„œì—서 ì•„ì§ ì‚¬ìš© 중ì´ë¯€ë¡œ 파ì¼ì„ ì‚ì œí• ìˆ˜ 없습니다:'; -$lang['ref_hidden'] = 'ë¬¸ì„œì˜ ì¼ë¶€ ì°¸ê³ ëŠ” ì½ì„ 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤'; +$lang['ref_hidden'] = 'ë¬¸ì„œì˜ ì¼ë¶€ 참조는 ì½ì„ 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤'; $lang['hits'] = '조회 수'; $lang['quickhits'] = 'ì¼ì¹˜í•˜ëŠ” 문서 ì´ë¦„'; $lang['toc'] = '목차'; @@ -204,7 +206,7 @@ $lang['created'] = '만듦'; $lang['restored'] = 'ì´ì „ íŒìœ¼ë¡œ ë˜ëŒë¦¼ (%s)'; $lang['external_edit'] = '바깥 편집'; $lang['summary'] = '편집 요약'; -$lang['noflash'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe 플래시 플러그ì¸</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.'; +$lang['noflash'] = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 플러그ì¸</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.'; $lang['download'] = 'ì¡°ê° ë‹¤ìš´ë¡œë“œ'; $lang['tools'] = 'ë„구'; $lang['user_tools'] = 'ì‚¬ìš©ìž ë„구'; @@ -246,7 +248,6 @@ $lang['qb_sig'] = '서명 넣기'; $lang['qb_smileys'] = 'ì´ëª¨í‹°ì½˜'; $lang['qb_chars'] = '특수 문ìž'; $lang['upperns'] = 'ìƒìœ„ ì´ë¦„공간으로 ì´ë™'; -$lang['admin_register'] = '새 ì‚¬ìš©ìž ì¶”ê°€'; $lang['metaedit'] = '메타ë°ì´í„° 편집'; $lang['metasaveerr'] = '메타ë°ì´í„° 쓰기 실패'; $lang['metasaveok'] = '메타ë°ì´í„° ì €ìž¥ë¨'; @@ -279,7 +280,6 @@ $lang['subscr_style_every'] = 'ëª¨ë“ ë°”ë€œì„ ì´ë©”ì¼ë¡œ 받기'; $lang['subscr_style_digest'] = 'ê° ë¬¸ì„œì˜ ë°”ë€œì„ ìš”ì•½ (매 %.2fì¼ ë§ˆë‹¤)'; $lang['subscr_style_list'] = '마지막 ì´ë©”ì¼ ì´í›„ ë°”ë€ ë¬¸ì„œì˜ ëª©ë¡ (매 %.2fì¼ ë§ˆë‹¤)'; $lang['authtempfail'] = 'ì‚¬ìš©ìž ì¸ì¦ì„ ì¼ì‹œì 으로 ì‚¬ìš©í• ìˆ˜ 없습니다. 만약 계ì†í•´ì„œ ë¬¸ì œê°€ ë°œìƒí•œë‹¤ë©´ 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; -$lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 ê³§ 바꿔야 합니다.'; $lang['i_chooselang'] = 'ì‚¬ìš©í• ì–¸ì–´ë¥¼ ì„ íƒí•˜ì„¸ìš”'; $lang['i_installer'] = 'ë„ì¿ ìœ„í‚¤ 설치 관리ìž'; $lang['i_wikiname'] = '위키 ì´ë¦„'; @@ -287,7 +287,7 @@ $lang['i_enableacl'] = 'ACL 활성화 (권장)'; $lang['i_superuser'] = 'ìŠˆí¼ ì‚¬ìš©ìž'; $lang['i_problems'] = '설치 관리ìžê°€ ì•„ëž˜ì— ë‚˜ì™€ 있는 몇 가지 ë¬¸ì œë¥¼ 찾았습니다. ë¬¸ì œë¥¼ 해결하지 ì „ê¹Œì§€ 설치를 계ì†í• 수 없습니다.'; $lang['i_modified'] = '보안 ìƒì˜ ì´ìœ 로 ì´ ìŠ¤í¬ë¦½íŠ¸ëŠ” ìˆ˜ì •ë˜ì§€ ì•Šì€ ìƒˆ ë„ì¿ ìœ„í‚¤ 설치ì—서만 ë™ìž‘ë©ë‹ˆë‹¤. -다운로드한 ì••ì¶• 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ê³ í•´ì„œ 설치하세요.'; + 다운로드한 ì••ì¶• 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„ì¿ ìœ„í‚¤ 설치 ê³¼ì •</a>ì„ ì°¸ì¡°í•´ì„œ 설치하세요.'; $lang['i_funcna'] = '<code>%s</code> PHP 함수를 ì‚¬ìš©í• ìˆ˜ 없습니다. 호스트 ì œê³µìžê°€ ì–´ë–¤ ì´ìœ ì—서ì¸ì§€ 막아 놓았ì„ì§€ 모릅니다.'; $lang['i_phpver'] = 'PHP <code>%s</code> ë²„ì „ì€ í•„ìš”í•œ <code>%s</code> ë²„ì „ë³´ë‹¤ 오래ë˜ì—ˆìŠµë‹ˆë‹¤. PHP를 ì—…ê·¸ë ˆì´ë“œí• 필요가 있습니다.'; $lang['i_mbfuncoverload'] = 'ë„ì¿ ìœ„í‚¤ë¥¼ ì‹¤í–‰í•˜ë ¤ë©´ mbstring.func_overload를 php.iniì—서 비활성화해야 합니다.'; @@ -297,14 +297,14 @@ $lang['i_writeerr'] = '<code>%s</code>(ì„)를 만들 수 없습니 $lang['i_badhash'] = 'dokuwiki.php를 ì¸ì‹í• 수 없거나 ì›ë³¸ 파ì¼ì´ 아닙니다 (해시=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - 잘못ë˜ì—ˆê±°ë‚˜ 빈 값입니다'; $lang['i_success'] = '환경 ì„¤ì •ì´ ì„±ê³µì 으로 ë났습니다. 지금 install.php를 ì§€ì›Œë„ ìƒê´€ì—†ìŠµë‹ˆë‹¤. -<a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>로 들어가세요.'; + <a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>로 들어가세요.'; $lang['i_failure'] = '환경 ì„¤ì • 파ì¼ì— 쓰는 ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. -<a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ ë¬¸ì œë¥¼ 해결해야 합니다.'; + <a href="doku.php?id=wiki:welcome">새 ë„ì¿ ìœ„í‚¤</a>를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ ë¬¸ì œë¥¼ 해결해야 합니다.'; $lang['i_policy'] = '초기 ACL ì •ì±…'; $lang['i_pol0'] = '열린 위키 (누구나 ì½ê¸°, 쓰기, 올리기가 가능합니다)'; $lang['i_pol1'] = '공개 위키 (누구나 ì½ì„ 수 있지만, 등ë¡ëœ 사용ìžë§Œ 쓰기와 올리기가 가능합니다)'; $lang['i_pol2'] = '닫힌 위키 (등ë¡ëœ 사용ìžë§Œ ì½ê¸°, 쓰기, 올리기가 가능합니다)'; -$lang['i_allowreg'] = 'ì‚¬ìš©ìž ìžì‹ ì´ ë“±ë¡í• 수 있ìŒ'; +$lang['i_allowreg'] = 'ì‚¬ìš©ìž ìžì‹ ì´ ë“±ë¡í• 수 있ë„ë¡ í•˜ê¸°'; $lang['i_retry'] = '다시 시ë„'; $lang['i_license'] = 'ë‚´ìš©ì„ ë°°í¬í•˜ê¸° 위한 ë¼ì´ì„ 스를 ì„ íƒí•˜ì„¸ìš”:'; $lang['i_license_none'] = 'ë¼ì´ì„ 스 ì •ë³´ë¥¼ 보여주지 않습니다'; @@ -334,7 +334,7 @@ $lang['media_files'] = '%sì— ìžˆëŠ” 파ì¼'; $lang['media_upload'] = '%sì— ì˜¬ë¦¬ê¸°'; $lang['media_search'] = '%sì—서 검색'; $lang['media_view'] = '%s'; -$lang['media_viewold'] = '%s (%sì— ìžˆìŒ)'; +$lang['media_viewold'] = '%2$sì— ìžˆëŠ” %1$s'; $lang['media_edit'] = '%s 편집'; $lang['media_history'] = '%sì˜ ì—사'; $lang['media_meta_edited'] = '메타ë°ì´í„° 편집ë¨'; @@ -342,6 +342,7 @@ $lang['media_perm_read'] = '죄송하지만 파ì¼ì„ ì½ì„ ê¶Œí•œì´ ì—† $lang['media_perm_upload'] = '죄송하지만 파ì¼ì„ 올릴 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['media_update'] = '새 íŒ ì˜¬ë¦¬ê¸°'; $lang['media_restore'] = 'ì´ íŒìœ¼ë¡œ ë˜ëŒë¦¬ê¸°'; +$lang['media_acl_warning'] = 'ì´ ëª©ë¡ì€ ACL로 ì œí•œë˜ì–´ ìžˆê³ ìˆ¨ê²¨ì§„ 문서ì´ê¸° ë•Œë¬¸ì— ì™„ì „í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다.'; $lang['currentns'] = '현재 ì´ë¦„공간'; $lang['searchresult'] = '검색 ê²°ê³¼'; $lang['plainhtml'] = 'ì¼ë°˜ HTML'; diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt index 6aa1c89af8f2e8985f8cd2311abfc7489d1e8213..bb834277fa0cf6d6595a861ad9422c2f92d1b0d5 100644 --- a/inc/lang/ko/searchpage.txt +++ b/inc/lang/ko/searchpage.txt @@ -2,4 +2,4 @@ 아래ì—서 검색 결과를 ì°¾ì„ ìˆ˜ 있습니다. @CREATEPAGEINFO@ -===== ê²°ê³¼ ===== +===== ê²°ê³¼ ===== \ No newline at end of file diff --git a/inc/lang/ko/updateprofile.txt b/inc/lang/ko/updateprofile.txt index 055272e9d527dba4f2c9cca042c6c500543cdec1..0ddea30b0e37a7cc651b2318d91b9e32b2aba2f7 100644 --- a/inc/lang/ko/updateprofile.txt +++ b/inc/lang/ko/updateprofile.txt @@ -1,3 +1,3 @@ -====== ê³„ì • 프로필 바꾸기 ====== +====== ê³„ì • 프로필 ì—…ë°ì´íЏ ====== ë°”ê¾¸ê³ ì‹¶ì€ í•ëª©ì„ ìž…ë ¥í•˜ì„¸ìš”. ì‚¬ìš©ìž ì´ë¦„ì€ ë°”ê¿€ 수 없습니다. \ No newline at end of file diff --git a/inc/lang/ku/admin.txt b/inc/lang/ku/admin.txt deleted file mode 100644 index cfd21b21790353b863bff2ce565f645347b5b051..0000000000000000000000000000000000000000 --- a/inc/lang/ku/admin.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Administration ====== - -Below you can find a list of administrative tasks available in DokuWiki. - diff --git a/inc/lang/ku/denied.txt b/inc/lang/ku/denied.txt deleted file mode 100644 index 34cb8456a6cc18ba211acd4e57de24539ad79b65..0000000000000000000000000000000000000000 --- a/inc/lang/ku/denied.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Permission Denied ====== - -Sorry, you don't have enough rights to continue. - diff --git a/inc/lang/ku/editrev.txt b/inc/lang/ku/editrev.txt deleted file mode 100644 index e6995713bd2d3d7e1960747bc671f1a3c06eb0e0..0000000000000000000000000000000000000000 --- a/inc/lang/ku/editrev.txt +++ /dev/null @@ -1,2 +0,0 @@ -**You've loaded an old revision of the document!** If you save it, you will create a new version with this data. ----- \ No newline at end of file diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index a3c91eee8584af45f8b29fcbb14a6e63531f1043..460b5e8a304b87102e70da37d22961dd4c002560 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -31,113 +31,16 @@ $lang['btn_update'] = 'Rojanekirin'; $lang['btn_delete'] = 'Jê bibe'; $lang['btn_back'] = 'PaÅŸ'; $lang['btn_backlink'] = 'Girêdanên paÅŸ'; -$lang['btn_backtomedia'] = 'Back to Mediafile Selection'; -$lang['btn_subscribe'] = 'Subscribe Changes'; -$lang['btn_register'] = 'Register'; -$lang['loggedinas'] = 'Logged in as:'; -$lang['user'] = 'Username'; -$lang['pass'] = 'Password'; -$lang['passchk'] = 'once again'; -$lang['remember'] = 'Remember me'; -$lang['fullname'] = 'Full name'; -$lang['email'] = 'E-Mail'; -$lang['badlogin'] = 'Sorry, username or password was wrong.'; - -$lang['regmissing'] = 'Sorry, you must fill in all fields.'; -$lang['reguexists'] = 'Sorry, a user with this login already exists.'; -$lang['regsuccess'] = 'The user has been created and the password was sent by email.'; -$lang['regsuccess2']= 'The user has been created.'; -$lang['regmailfail']= 'Looks like there was an error on sending the password mail. Please contact the admin!'; -$lang['regbadmail'] = 'The given email address looks invalid - if you think this is an error, contact the admin'; -$lang['regbadpass'] = 'The two given passwords are not identically, please try again.'; -$lang['regpwmail'] = 'Your DokuWiki password'; -$lang['reghere'] = 'You don\'t have an account yet? Just get one'; - -$lang['txt_upload'] = 'Select file to upload'; -$lang['txt_filename'] = 'Enter wikiname (optional)'; -$lang['txt_overwrt'] = 'Overwrite existing file'; -$lang['lockedby'] = 'Currently locked by'; -$lang['lockexpire'] = 'Lock expires at'; -$lang['js']['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['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.'; - -$lang['mediaselect'] = 'Mediafile Selection'; -$lang['fileupload'] = 'Mediafile Upload'; -$lang['uploadsucc'] = 'Upload successful'; -$lang['uploadfail'] = 'Upload failed. Maybe wrong permissions?'; -$lang['uploadwrong'] = 'Upload denied. This file extension is forbidden!'; -$lang['uploadexist'] = 'File already exists. Nothing done.'; -$lang['deletesucc'] = 'The file "%s" has been deleted.'; -$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'] = 'Namespace'; -$lang['mediafiles'] = 'Available files in'; - $lang['reference'] = 'Referansa'; -$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'; - -$lang['hits'] = 'Hits'; -$lang['quickhits'] = 'Matching pagenames'; $lang['toc'] = 'Tabloya Navêrokê'; -$lang['current'] = 'current'; -$lang['yours'] = 'Your Version'; -$lang['diff'] = 'show differences to current version'; $lang['line'] = 'Rêz'; $lang['breadcrumb'] = 'Åžop:'; $lang['lastmod'] = 'Guherandina dawî:'; -$lang['by'] = 'by'; $lang['deleted'] = 'hat jê birin'; $lang['created'] = 'hat afirandin'; -$lang['restored'] = 'old revision restored (%s)'; $lang['summary'] = 'Kurteya guhartinê'; - -$lang['mail_newpage'] = 'page added:'; -$lang['mail_changed'] = 'page changed:'; - -$lang['js']['nosmblinks'] = 'Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.'; - -$lang['qb_bold'] = 'Bold Text'; -$lang['qb_italic'] = 'Italic Text'; -$lang['qb_underl'] = 'Underlined Text'; -$lang['qb_code'] = 'Code Text'; -$lang['qb_strike'] = 'Strike-through Text'; -$lang['qb_h1'] = 'Level 1 Headline'; -$lang['qb_h2'] = 'Level 2 Headline'; -$lang['qb_h3'] = 'Level 3 Headline'; -$lang['qb_h4'] = 'Level 4 Headline'; -$lang['qb_h5'] = 'Level 5 Headline'; -$lang['qb_link'] = 'Internal Link'; -$lang['qb_extlink'] = 'External Link'; -$lang['qb_hr'] = 'Horizontal Rule'; -$lang['qb_ol'] = 'Ordered List Item'; -$lang['qb_ul'] = 'Unordered List Item'; -$lang['qb_media'] = 'Add Images and other files'; -$lang['qb_sig'] = 'Insert Signature'; - -$lang['js']['del_confirm']= 'Delete this entry?'; - -$lang['admin_register']= 'Add new user...'; - -$lang['metaedit'] = 'Edit Metadata'; -$lang['metasaveerr'] = 'Writing metadata failed'; -$lang['metasaveok'] = 'Metadata saved'; -$lang['btn_img_backto'] = 'Back to %s'; -$lang['img_title'] = 'Title:'; -$lang['img_caption'] = 'Caption:'; -$lang['img_date'] = 'Date:'; -$lang['img_fname'] = 'Filename:'; -$lang['img_fsize'] = 'Size:'; -$lang['img_artist'] = 'Photographer:'; -$lang['img_copyr'] = 'Copyright:'; -$lang['img_format'] = 'Format:'; -$lang['img_camera'] = 'Camera:'; -$lang['img_keywords']= 'Keywords:'; $lang['searchcreatepage'] = "Heke tiÅŸtek nehatibe dîtin, tu dikarî dest bi nivîsandina rûpelekê nû bikî. Ji bo vê, ''Vê rûpelê biguherîne'' bitikîne."; //Setup VIM: ex: et ts=2 : diff --git a/inc/lang/ku/locked.txt b/inc/lang/ku/locked.txt deleted file mode 100644 index af6347a962a7364c9aad79dd28f88a003de326bd..0000000000000000000000000000000000000000 --- a/inc/lang/ku/locked.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Page locked ====== - -This page is currently locked for editing by another user. You have to wait until this user finishes editing or the lock expires. diff --git a/inc/lang/ku/login.txt b/inc/lang/ku/login.txt deleted file mode 100644 index 2004ea1985fd289991cc44ae7aa4eb81ea8d23bb..0000000000000000000000000000000000000000 --- a/inc/lang/ku/login.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Login ====== - -You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in. - diff --git a/inc/lang/ku/mailtext.txt b/inc/lang/ku/mailtext.txt deleted file mode 100644 index aea14d459b125ad020ecca6c717ba090d5a0b189..0000000000000000000000000000000000000000 --- a/inc/lang/ku/mailtext.txt +++ /dev/null @@ -1,12 +0,0 @@ -A page in your DokuWiki was added or changed. Here are the details: - -Date : @DATE@ -Browser : @BROWSER@ -IP-Address : @IPADDRESS@ -Hostname : @HOSTNAME@ -Old Revision: @OLDPAGE@ -New Revision: @NEWPAGE@ -Edit Summary: @SUMMARY@ -User : @USER@ - -@DIFF@ diff --git a/inc/lang/ku/norev.txt b/inc/lang/ku/norev.txt deleted file mode 100644 index 0b21bf3f06bacd312b1ca92e09470453b876aaa7..0000000000000000000000000000000000000000 --- a/inc/lang/ku/norev.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== No such revision ====== - -The specified revision doesn't exist. Use the ''Old revisions'' button for a list of old revisions of this document. - diff --git a/inc/lang/ku/password.txt b/inc/lang/ku/password.txt deleted file mode 100644 index 0a0dfb52b043d1ca312702cba3275b848e295e22..0000000000000000000000000000000000000000 --- a/inc/lang/ku/password.txt +++ /dev/null @@ -1,6 +0,0 @@ -Hi @FULLNAME@! - -Here is your userdata for @TITLE@ at @DOKUWIKIURL@ - -Login : @LOGIN@ -Password : @PASSWORD@ diff --git a/inc/lang/ku/read.txt b/inc/lang/ku/read.txt deleted file mode 100644 index 9f56d81ad8b36dd3467fe8a43297209f53f93d67..0000000000000000000000000000000000000000 --- a/inc/lang/ku/read.txt +++ /dev/null @@ -1,2 +0,0 @@ -This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. - diff --git a/inc/lang/ku/register.txt b/inc/lang/ku/register.txt deleted file mode 100644 index b65683bc2b4ac25c594a5186223530612162b69e..0000000000000000000000000000000000000000 --- a/inc/lang/ku/register.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Register as new user ====== - -Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - your new password will be sent to it. The login name should be a valid [[doku>pagename|pagename]]. - diff --git a/inc/lang/ku/revisions.txt b/inc/lang/ku/revisions.txt deleted file mode 100644 index dd5f35b8e7e3b17d8eaddffd705f868b1e69f2da..0000000000000000000000000000000000000000 --- a/inc/lang/ku/revisions.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Old Revisions ====== - -These are the older revisons of the current document. To revert to an old revision, select it from below, click ''Edit this page'' and save it. - diff --git a/inc/lang/ku/showrev.txt b/inc/lang/ku/showrev.txt deleted file mode 100644 index 3608de36b84af7d8fc918b1fa0d439bf04b0bb27..0000000000000000000000000000000000000000 --- a/inc/lang/ku/showrev.txt +++ /dev/null @@ -1,2 +0,0 @@ -**This is an old revision of the document!** ----- diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php index 207f1eb9cd0bc537ce484d8dba604626dc639f26..1c0883837dcc2d964f0b3e5ac3a851b64179dd3d 100644 --- a/inc/lang/la/lang.php +++ b/inc/lang/la/lang.php @@ -12,11 +12,11 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; +$lang['doublequoteopening'] = '"'; +$lang['doublequoteclosing'] = '"'; $lang['singlequoteopening'] = '`'; -$lang['singlequoteclosing'] = '\''; -$lang['apostrophe'] = '´'; +$lang['singlequoteclosing'] = '´'; +$lang['apostrophe'] = '\''; $lang['btn_edit'] = 'Recensere hanc paginam'; $lang['btn_source'] = 'Fontem uidere'; $lang['btn_show'] = 'Ostendere paginam'; @@ -40,7 +40,6 @@ $lang['btn_update'] = 'Nouare'; $lang['btn_delete'] = 'Delere'; $lang['btn_back'] = 'Redire'; $lang['btn_backlink'] = 'Nexus ad paginam'; -$lang['btn_backtomedia'] = 'Ad media redire'; $lang['btn_subscribe'] = 'Custodire'; $lang['btn_profile'] = 'Tabellam nouare'; $lang['btn_reset'] = 'Abrogare'; @@ -126,7 +125,6 @@ $lang['js']['del_confirm'] = 'Delere electas res uin?'; $lang['rssfailed'] = 'Error in restituendo '; $lang['nothingfound'] = 'Nihil inuentum est.'; $lang['mediaselect'] = 'Documenta uisiua:'; -$lang['fileupload'] = 'Documentum uisiuom onerare'; $lang['uploadsucc'] = 'Oneratum perfectum'; $lang['uploadfail'] = 'Error onerandi.'; $lang['uploadwrong'] = 'Onerare non potest. Genus documenti non legitimum!'; @@ -198,7 +196,6 @@ $lang['qb_sig'] = 'Subscriptio tua cum indicatione temporis'; $lang['qb_smileys'] = 'Pupuli'; $lang['qb_chars'] = 'Signa singularia'; $lang['upperns'] = 'I ad anterius genus'; -$lang['admin_register'] = 'Nouom Sodalem creare'; $lang['metaedit'] = 'Res codicis mutare'; $lang['metasaveerr'] = 'Res codicis non scribitur.'; $lang['metasaveok'] = 'Res codicis seruatae.'; diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index c1762af96388de181b8c857b28946ee5d29753bd..e06ba5d1c00ec84d03f29dd013b0a75044860ee1 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -34,7 +34,6 @@ $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_draft'] = 'Entworf änneren'; @@ -88,7 +87,6 @@ $lang['js']['notsavedyet'] = 'Net gespäicher Ännerunge gi verluer.\nWierkl $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!'; @@ -159,7 +157,6 @@ $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'; diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index eeaec223b2ac8a6a7a2e89347581a291d691100f..9e68269281b5c485c0e738b89027bb764a56261c 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -1,12 +1,13 @@ <?php + /** - * lithuanian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Linas Valiukas <shirshegsm@gmail.com> * @author Edmondas Girkantas <eg@zemaitija.net> * @author ArÅ«nas VaitekÅ«nas <aras@fan.lt> * @author audrius.klevas@gmail.com + * @author Tomas Darius Davainis <tomasdd@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -38,7 +39,6 @@ $lang['btn_update'] = 'Atnaujinti'; $lang['btn_delete'] = 'IÅ¡trinti'; $lang['btn_back'] = 'Atgal'; $lang['btn_backlink'] = 'AtgalinÄ—s nuorodos'; -$lang['btn_backtomedia'] = 'Atgal į Mediabylos iÅ¡sirinkimÄ…'; $lang['btn_subscribe'] = 'Užsisakyti keitimų prenumeratÄ…'; $lang['btn_profile'] = 'Atnaujinti profilį'; $lang['btn_reset'] = 'Atstata'; @@ -46,6 +46,7 @@ $lang['btn_draft'] = 'Redaguoti juodraÅ¡tį'; $lang['btn_recover'] = 'Atkurti juodraÅ¡tį'; $lang['btn_draftdel'] = 'Å alinti juodraÅ¡tį'; $lang['btn_register'] = 'Registruotis'; +$lang['btn_img_backto'] = 'Atgal į %s'; $lang['loggedinas'] = 'PrisijungÄ™s kaip:'; $lang['user'] = 'Vartotojo vardas'; $lang['pass'] = 'Slaptažodis'; @@ -88,12 +89,16 @@ $lang['txt_filename'] = 'Ä®veskite wikivardÄ… (nebÅ«tina):'; $lang['txt_overwrt'] = 'PerraÅ¡yti egzistuojanÄiÄ… bylÄ…'; $lang['lockedby'] = 'Užrakintas vartotojo:'; $lang['lockexpire'] = 'Užraktas bus nuimtas:'; -$lang['js']['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['js']['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['js']['notsavedyet'] = 'Pakeitimai nebus iÅ¡saugoti.\nTikrai tÄ™sti?'; +$lang['js']['keepopen'] = 'PažymÄ—jus palikti langÄ… atvertÄ…'; +$lang['js']['hidedetails'] = 'PaslÄ—pti Detales'; +$lang['js']['nosmblinks'] = 'Nurodos į "Windows shares" veikia tik su Microsoft Internet Explorer narÅ¡ykle. +Vis dÄ—lto, jÅ«s galite nukopijuoti Å¡iÄ… nuorodÄ….'; +$lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įrašą(us)?'; $lang['rssfailed'] = 'SiunÄiant šį feed\'Ä… įvyko klaida: '; $lang['nothingfound'] = 'PaieÅ¡kos rezultatų nÄ—ra.'; $lang['mediaselect'] = 'Mediabylos iÅ¡sirinkimas'; -$lang['fileupload'] = 'Mediabylos atsiuntimas'; $lang['uploadsucc'] = 'Atsiuntimas pavyko'; $lang['uploadfail'] = 'Atsiuntimas nepavyko. Blogi priÄ—jimo leidimai??'; $lang['uploadwrong'] = 'Atsiuntimas atmestas. Bylos tipas neleistinas'; @@ -107,10 +112,6 @@ $lang['deletefail'] = 'Byla "%s" negali bÅ«ti iÅ¡trinta - patikrinkit $lang['mediainuse'] = 'Byla "%s" nebuvo iÅ¡trinta - ji vis dar naudojama.'; $lang['namespaces'] = 'Pavadinimai'; $lang['mediafiles'] = 'Prieinamos bylos'; -$lang['js']['keepopen'] = 'PažymÄ—jus palikti langÄ… atvertÄ…'; -$lang['js']['hidedetails'] = 'PaslÄ—pti Detales'; -$lang['js']['nosmblinks'] = 'Nurodos į "Windows shares" veikia tik su Microsoft Internet Explorer narÅ¡ykle. -Vis dÄ—lto, jÅ«s galite nukopijuoti Å¡iÄ… nuorodÄ….'; $lang['mediausage'] = 'Failo nuorodai užraÅ¡yti naudokite tokiÄ… sintaksÄ™:'; $lang['mediaview'] = 'ŽiÅ«rÄ—ti pirminį failÄ…'; $lang['mediaroot'] = 'pradžia (root)'; @@ -159,12 +160,9 @@ $lang['qb_media'] = 'PaveikslÄ—liai ir kitos bylos'; $lang['qb_sig'] = 'Ä®terpti parašą'; $lang['qb_smileys'] = 'Å ypsenÄ—lÄ—s'; $lang['qb_chars'] = 'SpecialÅ«s simboliai'; -$lang['js']['del_confirm'] = 'Ar tikrai iÅ¡trinti pažymÄ—tÄ…(us) įrašą(us)?'; -$lang['admin_register'] = 'Sukurti naujÄ… vartotojÄ…'; $lang['metaedit'] = 'Redaguoti metaduomenis'; $lang['metasaveerr'] = 'Nepavyko iÅ¡saugoti metaduomenų'; $lang['metasaveok'] = 'Metaduomenys iÅ¡saugoti'; -$lang['btn_img_backto'] = 'Atgal į %s'; $lang['img_title'] = 'Pavadinimas:'; $lang['img_caption'] = 'AntraÅ¡tÄ—:'; $lang['img_date'] = 'Data:'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 5ae29de2e67d2d781035d8520e94d975a37cb21a..a5ac36d7584ec67770ef9a809b3ec0de825177a0 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Atjaunot'; $lang['btn_delete'] = 'DzÄ“st'; $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_profile'] = 'Labot savu profilu'; $lang['btn_reset'] = 'Atsaukt izmaiņas'; @@ -148,7 +147,6 @@ $lang['js']['media_overwrt'] = 'RakstÄ«t pÄri esoÅ¡ajiem failiem'; $lang['rssfailed'] = 'Kļūda saņemot saturu no '; $lang['nothingfound'] = 'Nekas nav atrasts.'; $lang['mediaselect'] = 'MÄ“diju faila izvÄ“le'; -$lang['fileupload'] = 'MÄ“diju faila augÅ¡upielÄde'; $lang['uploadsucc'] = 'VeiksmÄ«gi ielÄdÄ“ts'; $lang['uploadfail'] = 'IelÄdes kļūme. VarbÅ«t aplamas tiesÄ«bas?'; $lang['uploadwrong'] = 'IelÄde aizliegta. Neatļauts faila paplaÅ¡inÄjums'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Ievietot parakstu'; $lang['qb_smileys'] = 'Emotikoni'; $lang['qb_chars'] = 'ĪpaÅ¡Äs zÄ«mes'; $lang['upperns'] = 'vienu nodaļu lÄ«meni augstÄk'; -$lang['admin_register'] = 'Pievienot jaunu lietotÄju'; $lang['metaedit'] = 'Labot metadatus'; $lang['metasaveerr'] = 'Metadati nav saglabÄti'; $lang['metasaveok'] = 'Metadati saglabÄti'; @@ -272,7 +269,6 @@ $lang['subscr_style_every'] = 'vÄ“stuli par katru izmaiņu'; $lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu (reizi %.2f dienÄs)'; $lang['subscr_style_list'] = 'kopÅ¡ pÄ“dÄ“jÄs vÄ“stules notikuÅ¡o labojumu sarakstu (reizi %.2f dienÄs)'; $lang['authtempfail'] = 'LietotÄju autentifikÄcija paÅ¡laik nedarbojas. Ja tas turpinÄs ilgstoÅ¡i, lÅ«duz ziņo Wiki administratoram.'; -$lang['authpwdexpire'] = 'Tavai parolei pÄ“c %d dienÄm biegsies termiņš, tÄ drÄ«zumÄ jÄnomaina.'; $lang['i_chooselang'] = 'IzvÄ“lies valodu'; $lang['i_installer'] = 'DokuWiki instalÄ“tÄjs'; $lang['i_wikiname'] = 'Wiki vÄrds'; diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index c0d858d9506fc5ed20706be58cf7f677379f9f6c..f1f8fcce5f8cc07a6d6fb65ad48148f4c0ff6f46 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -27,7 +27,6 @@ $lang['btn_admin'] = 'Admin'; $lang['btn_update'] = 'Update'; $lang['btn_delete'] = 'Fafao'; $lang['btn_back'] = 'Miverina'; -$lang['btn_backtomedia'] = 'Fitsongana fichier Media'; $lang['btn_register'] = 'Hisoratra'; $lang['loggedinas'] = 'Anaranao:'; @@ -61,7 +60,6 @@ $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tsy nahitana n\'inon\'inona.'; $lang['mediaselect'] = 'Safidy rakitra Media'; -$lang['fileupload'] = 'Fandefasana rakitra Media'; $lang['uploadsucc'] = 'Voalefa soa aman-tsara'; $lang['uploadfail'] = 'Tsy lasa ilay izy. Mety tsy fananana alalana?'; $lang['uploadwrong'] = 'Nolavina ny lefa. Voarara io extension-na rakitra io!'; @@ -116,7 +114,6 @@ $lang['qb_sig'] = 'Manisy sonia'; $lang['js']['del_confirm']= 'Hofafana ilay andalana?'; -$lang['admin_register']= 'Ampio mpampiasa vaovao...'; $lang['searchcreatepage'] = "Raha tsy nahita izay notadiavinao ianao, dia afaka mamorona pejy vaovao avy amin'ny teny nanaovanao fikarohana; Ampiasao ny bokotra ''Hanova ny pejy''."; //Setup VIM: ex: et ts=2 : $lang['email_signature'] = 'Ity imailaka ity dia navoakan\'ny wiki tao amin\'ny'; diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index ddfae15c465c770347b967a06206cab52f267c54..034d98b38f91145f7c61a26cea9f0ed6b871100a 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -14,7 +14,9 @@ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; -$lang['apostrophe'] = '\''; +$lang['singlequoteopening'] = '’'; +$lang['singlequoteclosing'] = '‘'; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Уреди ја Ñтраницата'; $lang['btn_source'] = 'Прикажи ја изворната Ñтраница'; $lang['btn_show'] = 'Прикажи Ñтраница'; @@ -38,7 +40,6 @@ $lang['btn_update'] = 'Ðжурирај'; $lang['btn_delete'] = 'Избриши'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'Повратни врÑки'; -$lang['btn_backtomedia'] = 'Ðазад до изборот за медиа-датотека'; $lang['btn_subscribe'] = 'Менаџирај претплати'; $lang['btn_profile'] = 'Ðжурирај профил'; $lang['btn_reset'] = 'РеÑет'; @@ -95,7 +96,6 @@ $lang['js']['notsavedyet'] = 'Ðезачуваните промени ќе $lang['rssfailed'] = 'Се појави грешка при повлекувањето на овој канал:'; $lang['nothingfound'] = 'Ðишто не е пронајдено.'; $lang['mediaselect'] = 'Медиа датотеки'; -$lang['fileupload'] = 'Качување на медиа датотеки'; $lang['uploadsucc'] = 'Качувањето е уÑпешно'; $lang['uploadfail'] = 'Качувањето не е уÑпешно. Можеби има погрешни пермиÑии?'; $lang['uploadwrong'] = 'Качувањето е одбиено. ÐаÑтавката на датотеката е забранета!'; @@ -167,7 +167,6 @@ $lang['qb_media'] = 'Додај Ñлики и други датот $lang['qb_sig'] = 'ВнеÑи потпиÑ'; $lang['qb_smileys'] = 'Смајлиња'; $lang['qb_chars'] = 'Специјални знаци'; -$lang['admin_register'] = 'Додај нов кориÑник'; $lang['metaedit'] = 'Уреди мета-податоци'; $lang['metasaveerr'] = 'Запишување на мета-податоците не уÑпеа'; $lang['metasaveok'] = 'Мета-податоците Ñе зачувани'; diff --git a/inc/lang/ml/admin.txt b/inc/lang/ml/admin.txt new file mode 100644 index 0000000000000000000000000000000000000000..0f9c81486b344c9bc394d41b70d8e2a463b85d2b --- /dev/null +++ b/inc/lang/ml/admin.txt @@ -0,0 +1,3 @@ +====== പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ====== + +താഴെ കാണàµà´¨àµà´¨ പടàµà´Ÿà´¿à´• ഡോകàµà´•àµà´µà´¿à´•àµà´•ിയിൽ ഉളàµà´³ പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ആണൠ. \ No newline at end of file diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index 596c2700a0beb3ab4bc24f0cffb0e54a99a2159a..c17d1581bdbbb2b4c46f4b3a53052f1e12707456 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'अदà¥à¤¯à¤¯à¤¾à¤µà¤¤'; $lang['btn_delete'] = 'नषà¥à¤Ÿ'; $lang['btn_back'] = 'मागॆ'; $lang['btn_backlink'] = 'येथे काय जोडले आहे'; -$lang['btn_backtomedia'] = 'परत माधà¥à¤¯à¤® फाइल निवडीकड़े'; $lang['btn_subscribe'] = 'पृषà¥à¤ ाचà¥à¤¯à¤¾ बदलांची पà¥à¤°à¤µà¤£à¥€ (फीड) लावा '; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा'; $lang['btn_reset'] = 'रिसेट'; @@ -140,7 +139,6 @@ $lang['js']['media_cancel'] = 'काढा'; $lang['rssfailed'] = 'ही पà¥à¤°à¤µà¤£à¥€ आणणà¥à¤¯à¤¾à¤¤ काही चूक à¤à¤¾à¤²à¥€:'; $lang['nothingfound'] = 'काही सापडला नाही.'; $lang['mediaselect'] = 'दृकशà¥à¤°à¤¾à¤µà¥à¤¯ फाइल'; -$lang['fileupload'] = 'दृकशà¥à¤°à¤¾à¤µà¥à¤¯ फाइल अपलोड'; $lang['uploadsucc'] = 'अपलोड यशसà¥à¤µà¥€'; $lang['uploadfail'] = 'अपलोड अयशसà¥à¤µà¥€.कदाचित चà¥à¤•ीचà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ असतील ?'; $lang['uploadwrong'] = 'अपलोड नाकारणà¥à¤¯à¤¾à¤¤ आला. हे फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन अवैध आहे!'; @@ -224,7 +222,6 @@ $lang['qb_sig'] = 'सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ टाका'; $lang['qb_smileys'] = 'सà¥à¤®à¤¾à¤‡à¤²à¥€'; $lang['qb_chars'] = 'ख़ास चिनà¥à¤¹'; $lang['upperns'] = 'हà¥à¤¯à¤¾à¤µà¤°à¤šà¥à¤¯à¤¾ नेमसà¥à¤ªà¥‡à¤¸à¤•डे उडी मारा'; -$lang['admin_register'] = 'नवीन सदसà¥à¤¯'; $lang['metaedit'] = 'मेटाडेटा बदला'; $lang['metasaveerr'] = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾ नाही'; $lang['metasaveok'] = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾'; diff --git a/inc/lang/ms/lang.php b/inc/lang/ms/lang.php index 303116429a8451e8d109a6ca361dfbc0e7368d99..14cb94ebd061843d25c95bf8a8cb621ec573c840 100644 --- a/inc/lang/ms/lang.php +++ b/inc/lang/ms/lang.php @@ -35,7 +35,6 @@ $lang['btn_update'] = 'Kemaskini'; $lang['btn_delete'] = 'Hapus'; $lang['btn_back'] = 'Balik'; $lang['btn_backlink'] = 'Pautan ke halaman ini'; -$lang['btn_backtomedia'] = 'Balik ke rangkaian pilihan fail media'; $lang['btn_subscribe'] = 'Pantau'; $lang['btn_profile'] = 'Kemaskinikan profil'; $lang['btn_reset'] = 'Batalkan suntingan'; @@ -87,7 +86,6 @@ $lang['txt_upload'] = 'Pilih fail untuk diunggah:'; $lang['txt_filename'] = 'Unggah fail dengan nama (tidak wajib):'; $lang['txt_overwrt'] = 'Timpa fail sekarang'; $lang['lockedby'] = 'Halaman ini telah di:'; -$lang['fileupload'] = 'Muat naik fail'; $lang['uploadsucc'] = 'Pemuatan naik berjaya'; $lang['uploadfail'] = 'Ralat muat naik'; $lang['uploadxss'] = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.'; diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index 04a2bc1d58601880284f655e849fb8e5c6f1f6af..79b324f5c5383486c9435ef670a3ef60b52d6c09 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹ $lang['btn_delete'] = 'मेटाउनà¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_back'] = 'पछाडि'; $lang['btn_backlink'] = 'पछाडिका लिङà¥à¤•हरॠ'; -$lang['btn_backtomedia'] = 'मिडिया छनौटमा फरà¥à¤•नà¥à¤¹à¥‹à¤¸à¥'; $lang['btn_subscribe'] = 'पृषà¥à¤ परिवरà¥à¤¤à¤¨ गà¥à¤°à¤¾à¤¹à¥à¤¯ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['btn_profile'] = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['btn_reset'] = 'पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•ाउनà¥à¤¹à¥‹à¤¸'; @@ -107,7 +106,6 @@ $lang['js']['del_confirm'] = 'साचà¥à¤šà¥ˆ छानिà¤à¤•ा व $lang['rssfailed'] = 'यो फिड लिइ आउदा गलà¥à¤¤à¤¿ à¤à¤¯à¥‹ ।'; $lang['nothingfound'] = 'केहि पनि à¤à¥‡à¤Ÿà¤¿à¤à¤¨ ।'; $lang['mediaselect'] = 'मिडिया फाइलहरू '; -$lang['fileupload'] = 'मिडिया फाइल अपलोड '; $lang['uploadsucc'] = 'अपलोड सफल '; $lang['uploadfail'] = 'अपलोड असफल । सायद गलत अनà¥à¤®à¤¤à¤¿ । '; $lang['uploadwrong'] = 'अपलोड असमरà¥à¤¥à¤¿à¤¤ । फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ अमानà¥à¤¯à¥¤ '; @@ -167,7 +165,6 @@ $lang['qb_media'] = 'तसà¥à¤µà¤¿à¤° र अरॠफाइल $lang['qb_sig'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['qb_smileys'] = 'सà¥à¤®à¤¾à¤‡à¤²à¥€à¤¹à¤°à¥ '; $lang['qb_chars'] = 'विशेष वरà¥à¤£à¤¹à¤°à¥ '; -$lang['admin_register'] = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ '; $lang['metaedit'] = 'मेटाडेटा समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥'; $lang['metasaveerr'] = 'मेटाडाटा लेखन असफल'; $lang['metasaveok'] = 'मेटाडाटा वचत à¤à¤¯à¥‹ '; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 23f9483bc66d305a639c9e1e5f91627cf47dfd54..dd5f6bcd8b71871fd650fb3a4bc2dd39e8265cb3 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author François Kooman <fkooman.tuxed.net> * @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl> * @author Riny Heijdendael <riny@heijdendael.nl> @@ -25,6 +25,11 @@ * @author Rene <wllywlnt@yahoo.com> * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> + * @author Johan Wijnker <johan@wijnker.eu> + * @author Hugo Smet <hugo.smet@scarlet.be> + * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -56,7 +61,6 @@ $lang['btn_update'] = 'Bijwerken'; $lang['btn_delete'] = 'Verwijder'; $lang['btn_back'] = 'Terug'; $lang['btn_backlink'] = 'Referenties'; -$lang['btn_backtomedia'] = 'Terug naar Bestandsselectie'; $lang['btn_subscribe'] = 'Inschrijven wijzigingen'; $lang['btn_profile'] = 'Profiel aanpassen'; $lang['btn_reset'] = 'Wissen'; @@ -91,6 +95,7 @@ $lang['regmissing'] = 'Vul alle velden in'; $lang['reguexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; $lang['regsuccess'] = 'De gebruiker is aangemaakt. Het wachtwoord is per e-mail verzonden.'; $lang['regsuccess2'] = 'De gebruiker is aangemaakt.'; +$lang['regfail'] = 'Gebruiker kon niet aangemaakt worden.'; $lang['regmailfail'] = 'Het lijkt erop dat het sturen van de wachtwoordmail mislukt is. Neem contact op met de beheerder!'; $lang['regbadmail'] = 'Het opgegeven e-mailadres lijkt ongeldig - als je denkt dat dit niet klopt neem dan contact op met de beheerder.'; $lang['regbadpass'] = 'De twee ingevoerde wachtwoorden zijn niet identiek. Probeer het nog eens.'; @@ -105,6 +110,7 @@ $lang['profdeleteuser'] = 'Verwijder gebruiker'; $lang['profdeleted'] = 'Uw gebruikersaccount is verwijderd van deze wiki'; $lang['profconfdelete'] = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.'; $lang['profconfdeletemissing'] = 'Bevestigingsvinkje niet gezet'; +$lang['proffail'] = 'Gebruikersprofiel werd niet bijgewerkt.'; $lang['pwdforget'] = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan'; $lang['resendna'] = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet'; $lang['resendpwd'] = 'Nieuw wachtwoord bepalen voor'; @@ -169,7 +175,6 @@ $lang['js']['media_overwrt'] = 'Bestaande bestanden overschrijven'; $lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: '; $lang['nothingfound'] = 'Er werd niets gevonden.'; $lang['mediaselect'] = 'Bestandsselectie'; -$lang['fileupload'] = 'Bestandsupload'; $lang['uploadsucc'] = 'Upload geslaagd'; $lang['uploadfail'] = 'Upload mislukt. Misschien verkeerde permissies?'; $lang['uploadwrong'] = 'Upload mislukt. Deze bestandsextensie is verboden!'; @@ -260,7 +265,6 @@ $lang['qb_sig'] = 'Handtekening invoegen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Speciale tekens'; $lang['upperns'] = 'Spring naar bovenliggende namespace'; -$lang['admin_register'] = 'Nieuwe gebruiker toevoegen'; $lang['metaedit'] = 'Metadata wijzigen'; $lang['metasaveerr'] = 'Schrijven van metadata mislukt'; $lang['metasaveok'] = 'Metadata bewaard'; @@ -293,7 +297,6 @@ $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['authtempfail'] = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.'; -$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; $lang['i_chooselang'] = 'Kies je taal'; $lang['i_installer'] = 'DokuWiki Installer'; $lang['i_wikiname'] = 'Wikinaam'; @@ -353,8 +356,11 @@ $lang['media_perm_read'] = 'Sorry, u heeft niet voldoende rechten om besta $lang['media_perm_upload'] = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.'; $lang['media_update'] = 'Upload nieuwe versie'; $lang['media_restore'] = 'Deze versie terugzetten'; +$lang['media_acl_warning'] = 'De lijst is mogelijk niet compleet door ACL beperkingen en verborgen pagina\'s.'; $lang['currentns'] = 'Huidige namespace'; $lang['searchresult'] = 'Zoekresultaat'; $lang['plainhtml'] = 'Alleen HTML'; $lang['wikimarkup'] = 'Wiki Opmaak'; -$lang['email_signature'] = 'Deze mail werd gegenereerd door DokuWiki op'; +$lang['email_signature'] = 'Deze mail werd gegenereerd door DokuWiki op'; +$lang['page_nonexist_rev'] = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'Begrijp het niet bij parameter "%s".'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 8df5d4804bdb5dfe8ef660d00e7e87277fc4bb74..7e37a459b7c7959c3dd3aa0cf97762d2108dd88b 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Reidar Mosvold <Reidar.Mosvold@hit.no> * @author Jorge Barrera Grandon <jorge@digitalwolves.org> * @author Rune Rasmussen [http://www.syntaxerror.no/] @@ -22,6 +22,7 @@ * @author Boris <boris@newton-media.no> * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -29,7 +30,7 @@ $lang['doublequoteopening'] = '«'; $lang['doublequoteclosing'] = '»'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Rediger denne siden'; $lang['btn_source'] = 'Vis kildekode'; $lang['btn_show'] = 'Vis siden'; @@ -53,7 +54,6 @@ $lang['btn_update'] = 'Oppdater'; $lang['btn_delete'] = 'Slett'; $lang['btn_back'] = 'Tilbake'; $lang['btn_backlink'] = 'Tilbakelenker'; -$lang['btn_backtomedia'] = 'Tilbake til valg av mediafil'; $lang['btn_subscribe'] = 'Abonnér pÃ¥ endringer'; $lang['btn_profile'] = 'Oppdater profil'; $lang['btn_reset'] = 'Tilbakestill'; @@ -88,6 +88,7 @@ $lang['regmissing'] = 'Vennligst fyll ut alle felt.'; $lang['reguexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; $lang['regsuccess'] = 'Brukerkonto har blitt laget og passord har blitt sendt via e-post.'; $lang['regsuccess2'] = 'Brukeren har blitt laget.'; +$lang['regfail'] = 'Brukeren kan ikke opprettes'; $lang['regmailfail'] = 'En feil oppstod da passordet ditt skulle sendes via e-post. Vennligst kontakt administratoren!'; $lang['regbadmail'] = 'Den angitte e-post adressen ser ut til Ã¥ være ugyldig. Vennligst kontakt administratoren om du anser dette som feilaktig.'; $lang['regbadpass'] = 'De to angitte passordene er ikke like, vennligst forsøk igjen.'; @@ -102,6 +103,7 @@ $lang['profdeleteuser'] = 'Slett konto'; $lang['profdeleted'] = 'Din brukerkonto har blitt slettet fra denne wikien'; $lang['profconfdelete'] = 'Jeg ønsker Ã¥ fjerne min konto fra denne wikien. <br/> Denne handlingen kan ikke omgjøres.'; $lang['profconfdeletemissing'] = 'Boks for bekreftelse ikke avkrysset'; +$lang['proffail'] = 'Brukerprofilen ble ikke oppdatert'; $lang['pwdforget'] = 'Glemt passordet ditt? FÃ¥ deg et nytt'; $lang['resendna'] = 'Denne wikien støtter ikke nyutsending av passord.'; $lang['resendpwd'] = 'Sett nytt passord for'; @@ -166,7 +168,6 @@ $lang['js']['media_overwrt'] = 'Erstatt eksisterende filer'; $lang['rssfailed'] = 'En feil oppstod da denne kilden skulle hentes:'; $lang['nothingfound'] = 'Ingen data funnet.'; $lang['mediaselect'] = 'Valg av mediafil'; -$lang['fileupload'] = 'Mediafil Opplasting'; $lang['uploadsucc'] = 'Opplastingen var vellykket'; $lang['uploadfail'] = 'Opplastingen var mislykket. Kanskje feil rettigheter?'; $lang['uploadwrong'] = 'Opplastingen ble nektet. Denne filendelsen er ikke tillatt!'; @@ -257,7 +258,6 @@ $lang['qb_sig'] = 'Føy til signatur'; $lang['qb_smileys'] = 'Smilefjes'; $lang['qb_chars'] = 'Spesialtegn'; $lang['upperns'] = 'gÃ¥ til overordnet navnerom'; -$lang['admin_register'] = 'Legg til ny bruker'; $lang['metaedit'] = 'Rediger metadata'; $lang['metasaveerr'] = 'Skriving av metadata feilet'; $lang['metasaveok'] = 'Metadata lagret'; @@ -290,7 +290,6 @@ $lang['subscr_style_every'] = 'e-post for alle endringer'; $lang['subscr_style_digest'] = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)'; $lang['subscr_style_list'] = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)'; $lang['authtempfail'] = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.'; -$lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; $lang['i_chooselang'] = 'Velg sprÃ¥k'; $lang['i_installer'] = 'DokuWiki-installasjon'; $lang['i_wikiname'] = 'Wikinavn'; @@ -302,6 +301,7 @@ $lang['i_modified'] = 'For sikkerhets skyld vil dette skriptet bare v <a href="http://dokuwiki.org/install">Dokuwiki-installasjonsinstruksen</a>'; $lang['i_funcna'] = 'PHP-funksjonen <code>%s</code> er ikke tilgjengelig. Kanskje din leverandør har deaktivert den av noen grunn?'; $lang['i_phpver'] = 'Din PHP versjon <code>%s</code> er lavere enn kravet <code>%s</code>. Du mÃ¥ oppgradere PHP installasjonen. '; +$lang['i_mbfuncoverload'] = 'mbstring.func_overload mÃ¥ deaktiveres i php.ini for Ã¥ kjøre DokuWiki.'; $lang['i_permfail'] = '<code>%s</code> er ikke skrivbar for DokuWiki. Du mÃ¥ fikse rettighetene for denne mappen!'; $lang['i_confexists'] = '<code>%s</code> eksisterer allerede'; $lang['i_writeerr'] = 'Kunne ikke opprette <code>%s</code>. Du mÃ¥ sjekke mappe-/filrettigheter og opprette filen manuelt.'; @@ -347,7 +347,7 @@ $lang['media_search'] = 'Søk i navnerommet <strong>%s</strong>.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s pÃ¥ %s'; $lang['media_edit'] = 'Rediger %s'; -$lang['media_history'] = '%vis historikk'; +$lang['media_history'] = '%s vis historikk'; $lang['media_meta_edited'] = 'metadata er endra'; $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til Ã¥ lese filer.'; $lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til Ã¥ laste opp filer.'; @@ -358,4 +358,5 @@ $lang['searchresult'] = 'Søk i resultat'; $lang['plainhtml'] = 'Enkel HTML'; $lang['wikimarkup'] = 'wiki-format'; $lang['page_nonexist_rev'] = 'Finnes ingen side pÃ¥ %s. Den er derfor laget pÃ¥ <a href="%s">%s</a>'; -$lang['email_signature'] = 'Denne meldingen ble laget av DokuWiki'; +$lang['email_signature'] = 'Denne meldingen ble laget av DokuWiki'; +$lang['unable_to_parse_date'] = 'Ikke mulig Ã¥ tolke "%s".'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 94f32a5b4a150e4642aa3bcf8bdea82e573c45b2..32360230658a34317c81e865165f2ec93d114ac6 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Grzegorz Å»ur <grzegorz.zur@gmail.com> * @author Mariusz Kujawski <marinespl@gmail.com> * @author Maciej Kurczewski <pipijajko@gmail.com> @@ -25,7 +25,7 @@ $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Edytuj stronÄ™'; $lang['btn_source'] = 'Pokaż źródÅ‚o strony'; $lang['btn_show'] = 'Pokaż stronÄ™'; @@ -49,7 +49,6 @@ $lang['btn_update'] = 'Aktualizuj'; $lang['btn_delete'] = 'UsuÅ„'; $lang['btn_back'] = 'Wstecz'; $lang['btn_backlink'] = 'OdnoÅ›niki'; -$lang['btn_backtomedia'] = 'Powrót do wyboru pliku'; $lang['btn_subscribe'] = 'Subskrybuj zmiany'; $lang['btn_profile'] = 'Aktualizuj profil'; $lang['btn_reset'] = 'Resetuj'; @@ -162,7 +161,6 @@ $lang['js']['media_overwrt'] = 'Nadpisz istniejÄ…ce pliki'; $lang['rssfailed'] = 'WystÄ…piÅ‚ błąd przy pobieraniu tych danych: '; $lang['nothingfound'] = 'Nic nie znaleziono.'; $lang['mediaselect'] = 'WysyÅ‚anie pliku'; -$lang['fileupload'] = 'WysyÅ‚anie pliku'; $lang['uploadsucc'] = 'WysyÅ‚anie powiodÅ‚o siÄ™!'; $lang['uploadfail'] = 'Błąd wysyÅ‚ania pliku. Czy prawa do katalogów sÄ… poprawne?'; $lang['uploadwrong'] = 'WysyÅ‚anie zabronione. Nie można wysÅ‚ać plików z takim rozszerzeniem'; @@ -251,7 +249,6 @@ $lang['qb_sig'] = 'Wstaw podpis'; $lang['qb_smileys'] = 'Emotikony'; $lang['qb_chars'] = 'Znaki specjalne'; $lang['upperns'] = 'Skok piÄ™tro wyżej'; -$lang['admin_register'] = 'Dodawanie użytkownika'; $lang['metaedit'] = 'Edytuj metadane'; $lang['metasaveerr'] = 'Zapis metadanych nie powiódÅ‚ siÄ™'; $lang['metasaveok'] = 'Metadane zapisano'; @@ -284,7 +281,6 @@ $lang['subscr_style_every'] = 'email przy każdej zmianie'; $lang['subscr_style_digest'] = 'e-mailowy wyciÄ…g zmian dla każdej strony (co %.2f dni)'; $lang['subscr_style_list'] = 'lista zmienionych stron od ostatniego e-maila (co %.2f dni)'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. JeÅ›li ta sytuacja siÄ™ powtórzy, powiadom administratora tego wiki.'; -$lang['authpwdexpire'] = 'Twoje hasÅ‚o wygaÅ›nie za %d dni. Należy je zmienić w krótkim czasie.'; $lang['i_chooselang'] = 'Wybierz jÄ™zyk'; $lang['i_installer'] = 'Instalator DokuWiki'; $lang['i_wikiname'] = 'Nazwa Wiki'; diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 1cf06c167eb1c37c4290d05e3bdf49f5df023d5d..69b65f3b224020edcc7a1ef33f8c3aaa8f121fd9 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Luis Fernando Enciso <lfenciso@certto.com.br> * @author Alauton/Loug * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> @@ -24,6 +24,9 @@ * @author Dário Estevão <darioems@gmail.com> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> * @author Ednei <leuloch@gmail.com> + * @author Hudson FAS <hudsonfas@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> + * @author Viliam Dias <viliamjr@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,7 +58,6 @@ $lang['btn_update'] = 'Atualizar'; $lang['btn_delete'] = 'Excluir'; $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'; $lang['btn_profile'] = 'Atualizar o perfil'; $lang['btn_reset'] = 'Limpar'; @@ -90,6 +92,7 @@ $lang['regmissing'] = 'Desculpe, mas você precisa preencher todos os $lang['reguexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; $lang['regsuccess'] = 'O usuário foi criado e a senha enviada para seu e-mail.'; $lang['regsuccess2'] = 'O usuário foi criado.'; +$lang['regfail'] = 'Não foi possÃvel criar esse usuário.'; $lang['regmailfail'] = 'Aparentemente ocorreu um erro no envio da senha. Por favor, entre em contato com o administrador!'; $lang['regbadmail'] = 'O endereço de e-mail fornecido é, aparentemente, inválido - se você acha que isso é um erro, entre em contato com o administrador'; $lang['regbadpass'] = 'As senhas digitadas não são idênticas. Por favor, tente novamente.'; @@ -104,6 +107,7 @@ $lang['profdeleteuser'] = 'Excluir a conta'; $lang['profdeleted'] = 'Sua conta de usuário foi excluÃda desse wiki'; $lang['profconfdelete'] = 'Eu desejo remover minha conta dessa wiki. <br/> Essa ação não pode ser desfeita.'; $lang['profconfdeletemissing'] = 'Caixa de confirmação não marcada'; +$lang['proffail'] = 'O perfil do usuário não foi atualizado.'; $lang['pwdforget'] = 'Esqueceu sua senha? Solicite outra'; $lang['resendna'] = 'Esse wiki não tem suporte para o reenvio de senhas.'; $lang['resendpwd'] = 'Definir a nova senha para'; @@ -168,7 +172,6 @@ $lang['js']['media_overwrt'] = 'Sobrescrever arquivos existentes'; $lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: '; $lang['nothingfound'] = 'Não foi encontrado nada.'; $lang['mediaselect'] = 'Arquivos de mÃdia'; -$lang['fileupload'] = 'Envio de arquivo de mÃdia'; $lang['uploadsucc'] = 'O envio foi efetuado com sucesso'; $lang['uploadfail'] = 'Não foi possÃvel enviar o arquivo. Será algum problema com as permissões?'; $lang['uploadwrong'] = 'O envio foi bloqueado. Essa extensão de arquivo é proibida!'; @@ -259,7 +262,6 @@ $lang['qb_sig'] = 'Inserir assinatura'; $lang['qb_smileys'] = 'Carinhas'; $lang['qb_chars'] = 'Caracteres especiais'; $lang['upperns'] = 'Pular para espaço de nomes acima'; -$lang['admin_register'] = 'Adicionar novo usuário'; $lang['metaedit'] = 'Editar metadados'; $lang['metasaveerr'] = 'Não foi possÃvel escrever os metadados'; $lang['metasaveok'] = 'Os metadados foram salvos'; @@ -292,7 +294,6 @@ $lang['subscr_style_every'] = 'um e-mail a cada modificação'; $lang['subscr_style_digest'] = 'um agrupamento de e-mails com as mudanças para cada página (a cada %.2f dias)'; $lang['subscr_style_list'] = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)'; $lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.'; -$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; $lang['i_chooselang'] = 'Selecione o seu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; @@ -353,8 +354,11 @@ $lang['media_perm_read'] = 'Desculpe, mas você não tem privilégios sufi $lang['media_perm_upload'] = 'Desculpe, mas você não tem privilégios suficientes para enviar arquivos.'; $lang['media_update'] = 'Enviar uma nova versão'; $lang['media_restore'] = 'Restaurar esta versão'; +$lang['media_acl_warning'] = 'Essa lista pode não estar completa devido a restrições de ACL e páginas ocultas.'; $lang['currentns'] = 'DomÃnio atual'; $lang['searchresult'] = 'Resultado da Busca'; $lang['plainhtml'] = 'HTML simples'; $lang['wikimarkup'] = 'Marcação wiki'; -$lang['email_signature'] = 'Essa mensagem foi gerada pelo DokuWiki em'; +$lang['email_signature'] = 'Essa mensagem foi gerada pelo DokuWiki em'; +$lang['page_nonexist_rev'] = 'Página não encontrada em %s. Foi criada posteriormente em <a href="%s">%s</a>.'; +$lang['unable_to_parse_date'] = 'ImpossÃvel analisar em "%s".'; diff --git a/inc/lang/pt/admin.txt b/inc/lang/pt/admin.txt index 366792a9b3ad84c76d7cfc8f42c0fdfa687054be..5b103b38d447029e1eaa5a922cfbe16015911b69 100644 --- a/inc/lang/pt/admin.txt +++ b/inc/lang/pt/admin.txt @@ -1,3 +1,3 @@ ====== Administração ====== -Abaixo pode encontrar uma lista de tarefas de administrativas permitidas pelo DokuWiki. \ No newline at end of file +Abaixo pode encontrar uma lista de tarefas de administrativas disponÃveis na DokuWiki. \ No newline at end of file diff --git a/inc/lang/pt/adminplugins.txt b/inc/lang/pt/adminplugins.txt index 3eac7af537c4093a06d869f5cfec2b503d37cb54..259f5ce454318ee2ff716e7c49f584896dd71dda 100644 --- a/inc/lang/pt/adminplugins.txt +++ b/inc/lang/pt/adminplugins.txt @@ -1 +1 @@ -===== Plugins Adicionais ===== \ No newline at end of file +===== Extras Adicionais ===== \ No newline at end of file diff --git a/inc/lang/pt/backlinks.txt b/inc/lang/pt/backlinks.txt index e78ddf8748f329ba729fde6c96d5427e86a2d1ac..4eb82cb2664d87b95af3592de9664ad3727aa107 100644 --- a/inc/lang/pt/backlinks.txt +++ b/inc/lang/pt/backlinks.txt @@ -1,4 +1,4 @@ ====== Backlinks ====== -Esta é uma lista de todos os documentos que apresentam ligações ao documento corrente. +Esta é uma lista de páginas que parece que interliga para a página atual. diff --git a/inc/lang/pt/conflict.txt b/inc/lang/pt/conflict.txt index b6d7319b0327cf39e5ab2faafa1a23c081671231..49575fdb8fbe5507274bc22f4af86f0c695cfb3d 100644 --- a/inc/lang/pt/conflict.txt +++ b/inc/lang/pt/conflict.txt @@ -1,5 +1,5 @@ -====== Uma versão mais recente existe ====== +====== Existe uma versão mais recente ====== -Existe uma versão mais recente do documento editado. Isso acontece quando um outro usuário alterou o documento enquanto você estava editando. +Existe uma versão mais recente do documento editado. Isto acontece quando um outro utilizador alterou o documento enquanto o estava a editar. -Examine cuidadosamente as diferenças mostradas abaixo, em seguida, decida qual versão manter. Se você escolher ''salvar '', sua versão será salva. Clique ''cancelar '' para manter a versão atual. +Analise cuidadosamente as diferenças mostradas abaixo, depois decida qual a versão a manter. Se escolher 'guardar'', a sua versão será guardada. Clique em ''cancelar '' para manter a versão atual. diff --git a/inc/lang/pt/denied.txt b/inc/lang/pt/denied.txt index 84c3a94063d3d916a4b2564ec1b45af94fa9d58f..f4e8e01149197235a4f410a20c496317031ef1ab 100644 --- a/inc/lang/pt/denied.txt +++ b/inc/lang/pt/denied.txt @@ -1,4 +1,4 @@ ====== Permissão Negada ====== -Desculpe, você não possui direitos e permissões suficientes para continuar. +Desculpe, não tem direitos suficientes para continuar. diff --git a/inc/lang/pt/diff.txt b/inc/lang/pt/diff.txt index e27640aa8c56f3e30ee22c7099b2cd0c7671143b..b73326268efe6c41072b44bb3e176ea0967dbd95 100644 --- a/inc/lang/pt/diff.txt +++ b/inc/lang/pt/diff.txt @@ -1,5 +1,3 @@ ====== Diferenças ====== -Esta página mostra as diferenças entre a revisão do documento que escolheu e a versão actual. - ----- +Esta página mostra as diferenças entre as duas revisões da página. \ No newline at end of file diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index abf25499f531a7f0af780b7d56dbeaed10da970e..5c3562580e4762caf42c7f43ae2115019ff6bff3 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -12,6 +12,9 @@ * @author Murilo <muriloricci@hotmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -20,30 +23,29 @@ $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; -$lang['btn_edit'] = 'Editar página'; -$lang['btn_source'] = 'Ver fonte'; -$lang['btn_show'] = 'Ver página'; -$lang['btn_create'] = 'Criar página'; +$lang['btn_edit'] = 'Editar esta página'; +$lang['btn_source'] = 'Mostrar página fonte '; +$lang['btn_show'] = 'Mostrar página'; +$lang['btn_create'] = 'Criar esta página'; $lang['btn_search'] = 'Pesquisar'; -$lang['btn_save'] = 'Salvar'; -$lang['btn_preview'] = 'Prever'; +$lang['btn_save'] = 'Guardar'; +$lang['btn_preview'] = 'Pré-visualizar'; $lang['btn_top'] = 'Voltar ao topo'; $lang['btn_newer'] = '<< mais recente'; $lang['btn_older'] = 'menos recente >>'; $lang['btn_revs'] = 'Revisões antigas'; -$lang['btn_recent'] = 'Alt. Recentes'; -$lang['btn_upload'] = 'Carregar'; +$lang['btn_recent'] = 'Alterações Recentes'; +$lang['btn_upload'] = 'Enviar'; $lang['btn_cancel'] = 'Cancelar'; $lang['btn_index'] = 'Ãndice'; $lang['btn_secedit'] = 'Editar'; -$lang['btn_login'] = 'Entrar'; -$lang['btn_logout'] = 'Sair'; +$lang['btn_login'] = 'Iniciar sessão'; +$lang['btn_logout'] = 'Terminar sessão'; $lang['btn_admin'] = 'Administrar'; $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Apagar'; $lang['btn_back'] = 'Voltar'; $lang['btn_backlink'] = 'Backlinks'; -$lang['btn_backtomedia'] = 'Voltar à Selecção de Media'; $lang['btn_subscribe'] = 'Subscrever Alterações'; $lang['btn_profile'] = 'Actualizar Perfil'; $lang['btn_reset'] = 'Limpar'; @@ -78,6 +80,7 @@ $lang['regmissing'] = 'Por favor, preencha todos os campos.'; $lang['reguexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; $lang['regsuccess'] = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.'; $lang['regsuccess2'] = 'O utilizador foi criado.'; +$lang['regfail'] = 'O usuário não pode ser criado.'; $lang['regmailfail'] = 'Houve um erro no envio da senha por e-mail. Por favor, contacte o administrador!'; $lang['regbadmail'] = 'O endereço de correio electrónico é inválido. Se o endereço está correcto, e isto é um erro, por favor, contacte o administrador!'; $lang['regbadpass'] = 'As duas senhas não são idênticas, por favor tente de novo.'; @@ -92,6 +95,7 @@ $lang['profdeleteuser'] = 'Apagar Conta'; $lang['profdeleted'] = 'A sua conta de utilizador foi removida desta wiki'; $lang['profconfdelete'] = 'Quero remover a minha conta desta wiki. <br/> Esta acção não pode ser anulada.'; $lang['profconfdeletemissing'] = 'A caixa de confirmação não foi marcada'; +$lang['proffail'] = 'O perfil do usuário não foi atualizado.'; $lang['pwdforget'] = 'Esqueceu a sua senha? Pedir nova senha'; $lang['resendna'] = 'Este wiki não suporta reenvio de senhas.'; $lang['resendpwd'] = 'Definir nova senha para'; @@ -155,7 +159,6 @@ $lang['js']['media_overwrt'] = 'Escrever por cima de ficheiros existentes'; $lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: '; $lang['nothingfound'] = 'Nada foi encontrado.'; $lang['mediaselect'] = 'Selecção de ficheiros'; -$lang['fileupload'] = 'Carregamento de ficheiros'; $lang['uploadsucc'] = 'Carregamento com sucesso'; $lang['uploadfail'] = 'Falhou o carregamento. Talvez por não ter permissões?'; $lang['uploadwrong'] = 'Carregamento negado. Esta extensão está proibida.'; @@ -246,7 +249,6 @@ $lang['qb_sig'] = 'Inserir Assinatura'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Caracteres Especiais'; $lang['upperns'] = 'Ir para o espaço de nomes parente'; -$lang['admin_register'] = 'Registar Novo Utilizador'; $lang['metaedit'] = 'Editar Metadata'; $lang['metasaveerr'] = 'Falhou a escrita de Metadata'; $lang['metasaveok'] = 'Metadata gravada'; @@ -279,7 +281,6 @@ $lang['subscr_style_every'] = 'email em qualquer alteração'; $lang['subscr_style_digest'] = '"digest email" de alterações em cada página (cada %.2f dias)'; $lang['subscr_style_list'] = 'lista de páginas alteradas desde o último email (cada %.2f dias)'; $lang['authtempfail'] = 'Autenticação temporariamente indisponÃvel. Se a situação persistir, por favor informe o Wiki Admin.'; -$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; $lang['i_chooselang'] = 'Escolha a linguagem'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome Wiki'; @@ -343,6 +344,6 @@ $lang['currentns'] = 'Namespace actual'; $lang['searchresult'] = 'Resultado da pesquisa'; $lang['plainhtml'] = 'HTML simples'; $lang['wikimarkup'] = 'Markup de Wiki'; -$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">% s </a>.'; +$lang['page_nonexist_rev'] = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">%s</a>.'; $lang['unable_to_parse_date'] = 'Não é possÃvel analisar o parâmetro "%s".'; $lang['email_signature'] = 'Este email foi gerado por DokuWiki em'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 34fe5629ba0e59f211e9889c6d0c86f1d3cbbff8..33bbf6b794a493f4ced74bfc759d749abcb107c6 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Tiberiu Micu <tibimicu@gmx.net> * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author Emanuel-Emeric AndraÈ™i <n30@mandrivausers.ro> @@ -10,6 +10,7 @@ * @author Marius OLAR <olarmariusalex@gmail.com> * @author Marius Olar <olarmariusalex@yahoo.com> * @author Marian Banica <banica.marian@gmail.com> + * @author Adrian Vesa <adrianvesa@dotwikis.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -17,7 +18,7 @@ $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; -$lang['apostrophe'] = '\''; +$lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Editează această pagină'; $lang['btn_source'] = 'Arată sursa paginii'; $lang['btn_show'] = 'Arată pagina'; @@ -41,7 +42,6 @@ $lang['btn_update'] = 'Actualizează'; $lang['btn_delete'] = 'Șterge'; $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_profile'] = 'Actualizează profil'; $lang['btn_reset'] = 'Resetează'; @@ -76,6 +76,7 @@ $lang['regmissing'] = 'Ne pare rău, trebuie să completezi toate cî $lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.'; $lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin e-mail.'; $lang['regsuccess2'] = 'Utilizatorul a fost creat.'; +$lang['regfail'] = 'Utilizatorul nu a putu fi creat.'; $lang['regmailfail'] = 'Se pare că a fost o eroare la trimiterea parolei prin e-mail. Contactează administratorul!'; $lang['regbadmail'] = 'Adresa de e-mail este nevalidă - dacă eÈ™ti de părere că este o eroare contactează administratorul.'; $lang['regbadpass'] = 'Cele două parole furnizate nu sunt identice; încearcă din nou.'; @@ -88,6 +89,8 @@ $lang['profchanged'] = 'Profilul de utilizator a fost actualizat cu su $lang['profnodelete'] = 'Acest wiki nu accepta stergerea conturilor utilizatorilor'; $lang['profdeleteuser'] = 'Sterge cont'; $lang['profdeleted'] = 'Contul tau a fost sters de pe acest wiki'; +$lang['profconfdelete'] = 'As dori sa sterf contul meu de pe acest Wiki. <br/> Aceasta actiune nu poate fi anulata.'; +$lang['proffail'] = 'Profilul utilizatorului nu a fost actualizat.'; $lang['pwdforget'] = 'Parolă uitată? ObÈ›ine una nouă!'; $lang['resendna'] = 'Acest wiki nu permite retrimiterea parolei.'; $lang['resendpwd'] = 'Configurează o parolă nouă pentru'; @@ -103,6 +106,7 @@ $lang['searchmedia_in'] = 'Caută în %s'; $lang['txt_upload'] = 'Selectează fiÈ™ierul de încărcat:'; $lang['txt_filename'] = 'ÃŽncarcă fiÈ™ierul ca (opÈ›ional):'; $lang['txt_overwrt'] = 'Suprascrie fiÈ™ierul existent'; +$lang['maxuploadsize'] = 'Incarcare maxima % per fisier.'; $lang['lockedby'] = 'Momentan blocat de:'; $lang['lockexpire'] = 'Blocarea expiră la:'; $lang['js']['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele foloseÈ™te butonul de previzualizare pentru resetarea blocării.'; @@ -151,7 +155,6 @@ $lang['js']['media_overwrt'] = 'Suprascrie fiÈ™ierele deja existente'; $lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui câmp: '; $lang['nothingfound'] = 'Nu am găsit nimic.'; $lang['mediaselect'] = 'FiÈ™iere media'; -$lang['fileupload'] = 'ÃŽncarcare fiÈ™ier media'; $lang['uploadsucc'] = 'ÃŽncărcare reuÈ™ită'; $lang['uploadfail'] = 'ÃŽncărcare eÈ™uată. Poate din cauza permisiunilor?'; $lang['uploadwrong'] = 'ÃŽncărcare nepermisă. Extensia fiÈ™ierului e nepermisă'; @@ -185,6 +188,9 @@ $lang['difflink'] = 'Link către această vizualizare comparativă' $lang['diff_type'] = 'Vezi diferenÈ›e:'; $lang['diff_inline'] = 'Succesiv'; $lang['diff_side'] = 'Alăturate'; +$lang['diffprevrev'] = 'Versiuni anterioare'; +$lang['diffnextrev'] = 'Urmatoarea versiune'; +$lang['difflastrev'] = 'Ultima versiune'; $lang['line'] = 'Linia'; $lang['breadcrumb'] = 'Traseu:'; $lang['youarehere'] = 'EÈ™ti aici:'; @@ -236,7 +242,6 @@ $lang['qb_sig'] = 'Inserează semnătură'; $lang['qb_smileys'] = 'Smiley-uri'; $lang['qb_chars'] = 'Caractere speciale'; $lang['upperns'] = 'Accesează spaÈ›iul de nume părinte'; -$lang['admin_register'] = 'Adaugă utilizator nou'; $lang['metaedit'] = 'Editează metadata'; $lang['metasaveerr'] = 'Scrierea metadatelor a eÈ™uat'; $lang['metasaveok'] = 'Metadatele au fost salvate'; @@ -269,7 +274,6 @@ $lang['subscr_style_every'] = 'e-mail la ficare schimbare'; $lang['subscr_style_digest'] = 'e-mail cu sumar al modificărilor pentru fiecare pagină (la fiecare %.2f zile)'; $lang['subscr_style_list'] = 'lista paginilor modificate de la ultimul e-mail (la fiecare %.2f zile)'; $lang['authtempfail'] = 'Autentificarea utilizatorului este temporar indisponibilă. Contactează administratorul.'; -$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.'; $lang['i_chooselang'] = 'Alege limba'; $lang['i_installer'] = 'Installer DokuWiki'; $lang['i_wikiname'] = 'Numele acestui wiki'; @@ -291,8 +295,12 @@ $lang['i_policy'] = 'Politica ACL (liste de control a accesului) in $lang['i_pol0'] = 'Wiki deschis (oricine poate citi, scrie È™i încărca fiÈ™iere)'; $lang['i_pol1'] = 'Wiki public (oricine poate citi, utilizatorii înregistraÈ›i pot scrie È™i încărca fiÈ™iere)'; $lang['i_pol2'] = 'Wiki închis (doar utilizatorii înregistraÈ›i pot citi, scrie È™i încărca fiÈ™iere)'; +$lang['i_allowreg'] = 'Permite utilizatorilor sa se inregistreze singuri.'; $lang['i_retry'] = 'ÃŽncearcă din nou'; $lang['i_license'] = 'Te rugăm să alegi licenÈ›a sub care doreÈ™ti să publici conÈ›inutul:'; +$lang['i_license_none'] = 'Nu arata nici o informatie despre licenta.'; +$lang['i_pop_field'] = 'Te rog, ajuta-ne sa imbunatatim experienta DokuWiki.'; +$lang['i_pop_label'] = 'Odata pe luna, trimite date catre dezvoltatorii DokuWiki in mod anonim.'; $lang['recent_global'] = 'ÃŽn acest moment vizualizezi modificările în interiorul spaÈ›iului de nume <b>%s</b>. De asemenea poÈ›i <a href="%s">vizualiza modificările recente în întregului wiki-ul</a>.'; $lang['years'] = 'acum %d ani'; $lang['months'] = 'acum %d luni'; @@ -325,4 +333,5 @@ $lang['media_perm_read'] = 'Ne pare rău, dar nu ai suficiente permisiuni $lang['media_perm_upload'] = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea încărca fiÈ™iere.'; $lang['media_update'] = 'ÃŽncarcă noua versiune'; $lang['media_restore'] = 'Restaurează această versiune'; -$lang['email_signature'] = 'Acest e-mail a fost generat de DokuWiki la'; +$lang['email_signature'] = 'Acest e-mail a fost generat de DokuWiki la'; +$lang['searchresult'] = 'Rezultatul cautarii'; diff --git a/inc/lang/ru/admin.txt b/inc/lang/ru/admin.txt index cd609a3478444f0fc3fe2ae6be5715dbfe4f77fc..8a670d5a0ed99599af3d3dffae707634ff667a91 100644 --- a/inc/lang/ru/admin.txt +++ b/inc/lang/ru/admin.txt @@ -1,4 +1,4 @@ ====== Управление ====== -Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». +Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики». diff --git a/inc/lang/ru/conflict.txt b/inc/lang/ru/conflict.txt index 6c5e33dced7b3e2cac5bbbe82512bd7673fd817d..e813d8c13a097386f7bb461fac7fe8fd84d49e9e 100644 --- a/inc/lang/ru/conflict.txt +++ b/inc/lang/ru/conflict.txt @@ -1,5 +1,5 @@ ====== СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ====== -СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. +СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое. -Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. +Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию. diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt index 6b7c82511b7fb121d8789947addd0ec0976ff33d..791b30b1ac20df7fe29dacff0d3d4b5f221b689f 100644 --- a/inc/lang/ru/denied.txt +++ b/inc/lang/ru/denied.txt @@ -1,4 +1,4 @@ ====== ДоÑтуп запрещён ====== -Извините, у Ð²Ð°Ñ Ð½Ðµ хватает прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. +Извините, ÑƒÂ Ð²Ð°Ñ Ð½ÐµÂ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ прав Ð´Ð»Ñ Ñтого дейÑтвиÑ. diff --git a/inc/lang/ru/diff.txt b/inc/lang/ru/diff.txt index 80252614f9ee2726d8c66e2d7992f731815ecf9c..21b8a8eabec280d24e898eaad28827b86d5820e7 100644 --- a/inc/lang/ru/diff.txt +++ b/inc/lang/ru/diff.txt @@ -1,4 +1,3 @@ ====== Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ ====== ЗдеÑÑŒ показаны Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÑ€ÑиÑми данной Ñтраницы. - diff --git a/inc/lang/ru/draft.txt b/inc/lang/ru/draft.txt index cb35f72b6a8cf2d66cb4862b2b312e7e5c2dceb2..a92aa34cd85bd5304058c332f0724be417d980c3 100644 --- a/inc/lang/ru/draft.txt +++ b/inc/lang/ru/draft.txt @@ -1,6 +1,5 @@ ====== Ðайден черновик ====== -ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. - -ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. +ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Ð’Ð¾Â Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию. +ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование. diff --git a/inc/lang/ru/edit.txt b/inc/lang/ru/edit.txt index aac399d7c2915fc9c143f622b238b83f5a3bd76b..25ded4115e2fd941242d5d0351987ab9f35561c0 100644 --- a/inc/lang/ru/edit.txt +++ b/inc/lang/ru/edit.txt @@ -1,2 +1 @@ -Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. - +Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]]. diff --git a/inc/lang/ru/editrev.txt b/inc/lang/ru/editrev.txt index 97b799a70805e603303dfdbfa5bb76cb13460d6b..ac2464db9e9e70a5ad5a2a7f2ab5f43fb2464b58 100644 --- a/inc/lang/ru/editrev.txt +++ b/inc/lang/ru/editrev.txt @@ -1,2 +1,2 @@ -**Ð’Ñ‹ загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. +**Вы загрузили Ñтарую ревизию документа.** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым. ---- diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt index ab669918a600b1c197d2fab045297915f05aed47..a059b281fc87ce66f554e412055303158e7182a7 100644 --- a/inc/lang/ru/index.txt +++ b/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. +Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]]. diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index d9af788fc77f709b3b3e2ed7d9c315376cb0816a..078fa58c934df4d099c518060c053add90f22e39 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -29,8 +29,13 @@ * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> + * @author Nolf <m.kopachovets@gmail.com> + * @author Takumo <9206984@mail.ru> + * @author RainbowSpike <1@2.ru> + * @author dimsharav <dimsharav@gmail.com> */ -$lang['encoding'] = ' utf-8'; +$lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '«'; $lang['doublequoteclosing'] = '»'; @@ -41,7 +46,7 @@ $lang['btn_edit'] = 'Править Ñтраницу'; $lang['btn_source'] = 'Показать иÑходный текÑÑ‚'; $lang['btn_show'] = 'Показать Ñтраницу'; $lang['btn_create'] = 'Создать Ñтраницу'; -$lang['btn_search'] = 'ПоиÑк'; +$lang['btn_search'] = 'Ðайти'; $lang['btn_save'] = 'Сохранить'; $lang['btn_preview'] = 'ПроÑмотр'; $lang['btn_top'] = 'Ðаверх'; @@ -60,10 +65,9 @@ $lang['btn_update'] = 'Обновить'; $lang['btn_delete'] = 'Удалить'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'СÑылки Ñюда'; -$lang['btn_backtomedia'] = 'ВернутьÑÑ Ðº выбору медиафайла'; -$lang['btn_subscribe'] = 'ПодпиÑатьÑÑ (вÑе правки)'; +$lang['btn_subscribe'] = 'Управление подпиÑками'; $lang['btn_profile'] = 'Профиль'; -$lang['btn_reset'] = 'СброÑ'; +$lang['btn_reset'] = 'Вернуть'; $lang['btn_resendpwd'] = 'УÑтановить новый пароль'; $lang['btn_draft'] = 'Править черновик'; $lang['btn_recover'] = 'ВоÑÑтановить черновик'; @@ -89,74 +93,78 @@ $lang['badlogin'] = 'Извините, неверное Ð¸Ð¼Ñ Ð¿Ð¾ $lang['badpassconfirm'] = 'ПроÑтите, пароль неверный'; $lang['minoredit'] = 'Ðебольшие изменениÑ'; $lang['draftdate'] = 'Черновик Ñохранён'; -$lang['nosecedit'] = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена и Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.'; -$lang['searchcreatepage'] = 'ЕÑли вы не нашли то, что иÑкали, вы можете Ñоздать новую Ñтраницу Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, Ñовпадающим Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñом. Чтобы Ñделать Ñто, проÑто нажмите на кнопку «Создать Ñтраницу».'; +$lang['nosecedit'] = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена Ð¸Â Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Â Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.'; +$lang['searchcreatepage'] = 'ЕÑли вы не нашли то, что иÑкали, вы можете Ñоздать новую Ñтраницу Ñ именем, Ñовпадающим Ñ запроÑом. Чтобы Ñделать Ñто, проÑто нажмите на кнопку «Создать Ñтраницу».'; $lang['regmissing'] = 'Извините, вам Ñледует заполнить вÑе полÑ.'; $lang['reguexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; -$lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан на Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; +$lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан Ð½Ð°Â Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; $lang['regsuccess2'] = 'Пользователь Ñоздан.'; -$lang['regmailfail'] = 'Похоже еÑть проблема Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¾Ð¹ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾ почте. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору.'; -$lang['regbadmail'] = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.'; -$lang['regbadpass'] = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ идентичны. ПожалуйÑта, попробуйте ещё раз.'; +$lang['regfail'] = 'Пользователь не может быть Ñоздан.'; +$lang['regmailfail'] = 'Похоже еÑть проблема Ñ отправкой Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Â Ð¿Ð¾Ñ‡Ñ‚Ðµ. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору.'; +$lang['regbadmail'] = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.'; +$lang['regbadpass'] = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÂ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ñ‹. ПожалуйÑта, попробуйте ещё раз.'; $lang['regpwmail'] = 'Ваш пароль Ð´Ð»Ñ ÑиÑтемы «Докувики»'; $lang['reghere'] = 'У Ð²Ð°Ñ ÐµÑ‰Ñ‘ нет аккаунта? ЗарегиÑтрируйтеÑÑŒ'; $lang['profna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает изменение профилÑ'; $lang['profnochange'] = 'Изменений не было внеÑено, профиль не обновлён.'; $lang['profnoempty'] = 'Логин и Ð°Ð´Ñ€ÐµÑ Ñлектронной почты не могут быть пуÑтыми.'; $lang['profchanged'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑпешно обновлён.'; -$lang['profnodelete'] = 'Удалённый пользователь не может работать Ñ Ñтим документом'; +$lang['profnodelete'] = 'Удалённый пользователь не может работать Ñ Ñтим документом'; $lang['profdeleteuser'] = 'Удалить аккаунт'; -$lang['profdeleted'] = 'Ваш аккаунт был удален из Ñтой вики'; -$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> Ðто дейÑтвие необратимо.'; -$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ уÑтановлен'; +$lang['profdeleted'] = 'Ваш аккаунт был удалён из Ñтой вики'; +$lang['profconfdelete'] = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br /> +Ðто дейÑтвие необратимо.'; +$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½ÐµÂ ÑƒÑтановлен'; +$lang['proffail'] = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÂ Ð±Ñ‹Ð» обновлен.'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; -$lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; +$lang['resendna'] = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.'; $lang['resendpwd'] = 'УÑтановить новый пароль длÑ'; $lang['resendpwdmissing'] = 'Ð’Ñ‹ должны заполнить вÑе Ð¿Ð¾Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹.'; -$lang['resendpwdnouser'] = 'Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином не обнаружен в нашей базе данных.'; -$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. УбедитеÑÑŒ, что вы полноÑтью Ñкопировали ÑÑылку. '; -$lang['resendpwdconfirm'] = 'СÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð° выÑлана по Ñлектронной почте. '; -$lang['resendpwdsuccess'] = 'Ваш новый пароль был выÑлан по Ñлектронной почте.'; -$lang['license'] = 'За иÑключением Ñлучаев, когда указано иное, Ñодержимое Ñтой вики предоÑтавлÑетÑÑ Ð½Ð° уÑловиÑÑ… Ñледующей лицензии:'; -$lang['licenseok'] = 'Примечание: Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÑ Ñту Ñтраницу, вы ÑоглашаетеÑÑŒ на иÑпользование Ñвоего вклада на уÑловиÑÑ… Ñледующей лицензии:'; -$lang['searchmedia'] = 'ПоиÑк по имени файла:'; +$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['maxuploadsize'] = 'МакÑимальный размер загружаемого файла %s'; -$lang['lockedby'] = 'Ð’ данный момент заблокирован:'; -$lang['lockexpire'] = 'Блокировка иÑтекает в:'; -$lang['js']['willexpire'] = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.'; -$lang['js']['notsavedyet'] = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Ð’Ñ‹ дейÑтвительно хотите продолжить?'; +$lang['maxuploadsize'] = 'МакÑ. размер загружаемого файла %s'; +$lang['lockedby'] = 'Ð’ данный момент заблокировано пользователем'; +$lang['lockexpire'] = 'Блокировка иÑтекает в'; +$lang['js']['willexpire'] = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.'; +$lang['js']['notsavedyet'] = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Вы дейÑтвительно хотите продолжить?'; $lang['js']['searchmedia'] = 'ПоиÑк файлов'; $lang['js']['keepopen'] = 'Ðе закрывать окно поÑле выбора'; $lang['js']['hidedetails'] = 'Скрыть детали'; -$lang['js']['mediatitle'] = 'ÐаÑтройки ÑÑылок'; +$lang['js']['mediatitle'] = 'ÐаÑтройка ÑÑылки'; $lang['js']['mediadisplay'] = 'Тип ÑÑылки'; -$lang['js']['mediaalign'] = 'Выравнивание'; -$lang['js']['mediasize'] = 'Размер изображениÑ'; -$lang['js']['mediatarget'] = 'Значение target ÑÑылки'; +$lang['js']['mediaalign'] = 'Выравнивание +'; +$lang['js']['mediasize'] = 'Размер'; +$lang['js']['mediatarget'] = 'Ð¦ÐµÐ»ÐµÐ²Ð°Ñ ÑÑылка'; $lang['js']['mediaclose'] = 'Закрыть'; $lang['js']['mediainsert'] = 'Ð’Ñтавить'; -$lang['js']['mediadisplayimg'] = 'Показывать изображение.'; -$lang['js']['mediadisplaylnk'] = 'Показывать только ÑÑылку.'; +$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']['mediadirect'] = 'ПрÑÐ¼Ð°Ñ ÑÑылка на оригинал'; $lang['js']['medianolnk'] = 'Без ÑÑылки'; -$lang['js']['medianolink'] = 'Ðе давать ÑÑылку на изображение'; -$lang['js']['medialeft'] = 'ВыровнÑть изображение по левому краю.'; -$lang['js']['mediaright'] = 'ВыровнÑть изображение по правому краю.'; -$lang['js']['mediacenter'] = 'ВыровнÑть изображение по центру.'; -$lang['js']['medianoalign'] = 'Ðе выравнивать.'; -$lang['js']['nosmblinks'] = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.'; +$lang['js']['medianolink'] = 'Ðе давать ÑÑылку на изображение'; +$lang['js']['medialeft'] = 'ВыровнÑть изображение по левому краю'; +$lang['js']['mediaright'] = 'ВыровнÑть изображение по правому краю'; +$lang['js']['mediacenter'] = 'ВыровнÑть изображение по центру'; +$lang['js']['medianoalign'] = 'Ðе выравнивать'; +$lang['js']['nosmblinks'] = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.'; $lang['js']['linkwiz'] = 'МаÑтер ÑÑылок'; $lang['js']['linkto'] = 'СÑылка на:'; -$lang['js']['del_confirm'] = 'Ð’Ñ‹ на Ñамом деле желаете удалить выбранное?'; +$lang['js']['del_confirm'] = 'Вы на Ñамом деле желаете удалить выбранное?'; $lang['js']['restore_confirm'] = 'ДейÑтвительно воÑÑтановить Ñту верÑию?'; $lang['js']['media_diff'] = 'ПроÑмотр отличий:'; $lang['js']['media_diff_both'] = 'Ñ€Ñдом'; @@ -171,7 +179,6 @@ $lang['js']['media_overwrt'] = 'ПерезапиÑать ÑущеÑтвующ $lang['rssfailed'] = 'Произошла ошибка при получении Ñледующей новоÑтной ленты: '; $lang['nothingfound'] = 'Ðичего не найдено.'; $lang['mediaselect'] = 'Выбор медиафайла'; -$lang['fileupload'] = 'Загрузка медиафайла'; $lang['uploadsucc'] = 'Загрузка произведена уÑпешно'; $lang['uploadfail'] = 'Загрузка не удалаÑÑŒ. Возможно, проблемы Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупа?'; $lang['uploadwrong'] = 'Ð’ загрузке отказано. Файлы Ñ Ñ‚Ð°ÐºÐ¸Ð¼ раÑширением запрещены. '; @@ -180,31 +187,31 @@ $lang['uploadbadcontent'] = 'Содержание файла не Ñоот $lang['uploadspam'] = 'Загрузка заблокирована Ñпам-фильтром.'; $lang['uploadxss'] = 'Загрузка заблокирована по ÑоображениÑм безопаÑноÑти.'; $lang['uploadsize'] = 'Загруженный файл был Ñлишком большой. (МакÑ. %s)'; -$lang['deletesucc'] = 'Файл «%s» был удалён.'; -$lang['deletefail'] = 'Ðевозможно удалить файл «%s». Проверьте права доÑтупа к файлу.'; -$lang['mediainuse'] = 'Файл «%s» не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; +$lang['deletesucc'] = 'Файл %s был удалён.'; +$lang['deletefail'] = 'Ðевозможно удалить файл %s. Проверьте права доÑтупа к файлу.'; +$lang['mediainuse'] = 'Файл %s не был удалён — файл вÑÑ‘ ещё иÑпользуетÑÑ.'; $lang['namespaces'] = 'ПроÑтранÑтва имён'; $lang['mediafiles'] = 'ДоÑтупные файлы'; $lang['accessdenied'] = 'Ð’Ñ‹ не можете проÑмотреть Ñту Ñтраницу.'; $lang['mediausage'] = 'Ð”Ð»Ñ ÑÑылки на Ñтот файл иÑпользуйте Ñледующий ÑинтакÑиÑ:'; $lang['mediaview'] = 'ПоÑмотреть иÑходный файл'; $lang['mediaroot'] = 'корень'; -$lang['mediaupload'] = 'ЗдеÑÑŒ можно загрузить файл в текущий каталог («проÑтранÑтво имён»). Чтобы Ñоздать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми. '; +$lang['mediaupload'] = 'ЗдеÑÑŒ можно загрузить файл в текущий каталог («проÑтранÑтво имён»). Чтобы Ñоздать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми.'; $lang['mediaextchange'] = 'РаÑширение изменилоÑÑŒ Ñ .%s на .%s!'; $lang['reference'] = 'СÑылки длÑ'; -$lang['ref_inuse'] = 'Ðтот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð° Ñледующих Ñтраницах:'; -$lang['ref_hidden'] = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð° Ñтраницах, на чтение которых у Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа'; +$lang['ref_inuse'] = 'Ðтот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð°Â Ñледующих Ñтраницах:'; +$lang['ref_hidden'] = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð°Â Ñтраницах, на чтение которых ÑƒÂ Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа'; $lang['hits'] = 'ÑоответÑтвий'; -$lang['quickhits'] = 'СоответÑÑ‚Ð²Ð¸Ñ Ð² названиÑÑ… Ñтраниц'; +$lang['quickhits'] = 'ПодходÑщие Ñтраницы'; $lang['toc'] = 'Содержание'; $lang['current'] = 'текущий'; $lang['yours'] = 'Ваша верÑиÑ'; $lang['diff'] = 'Показать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей верÑии'; $lang['diff2'] = 'Показать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ ревизиÑми '; $lang['difflink'] = 'СÑылка на Ñто Ñравнение'; -$lang['diff_type'] = 'ПоÑмотреть отличиÑ'; -$lang['diff_inline'] = 'вÑтроенный'; -$lang['diff_side'] = 'бок о бок'; +$lang['diff_type'] = 'ПоÑмотреть различиÑ'; +$lang['diff_inline'] = 'внутри текÑта'; +$lang['diff_side'] = 'Ð´Ð²ÑƒÐ¼Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°Ð¼Ð¸'; $lang['diffprevrev'] = 'ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['diffnextrev'] = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ'; $lang['difflastrev'] = 'ПоÑледнÑÑ Ð²ÐµÑ€ÑиÑ'; @@ -262,7 +269,6 @@ $lang['qb_sig'] = 'Ð’Ñтавить подпиÑÑŒ'; $lang['qb_smileys'] = 'Смайлики'; $lang['qb_chars'] = 'Специальные Ñимволы'; $lang['upperns'] = 'Перейти в родительÑкое проÑтранÑтво имён'; -$lang['admin_register'] = 'Добавить пользователÑ'; $lang['metaedit'] = 'Править метаданные'; $lang['metasaveerr'] = 'Ошибка запиÑи метаданных'; $lang['metasaveok'] = 'Метаданные Ñохранены'; @@ -295,7 +301,6 @@ $lang['subscr_style_every'] = 'уведомлÑть о каждом изме $lang['subscr_style_digest'] = 'информационное Ñлектронное пиÑьмо Ñо ÑпиÑком изменений Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтраницы (каждые %.2f дн.)'; $lang['subscr_style_list'] = 'ÑпиÑок изменённых Ñтраниц Ñо времени поÑледнего отправленного Ñлектронного пиÑьма (каждые %.2f дн.)'; $lang['authtempfail'] = 'ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ временно недоÑтупна. ЕÑли проблема продолжаетÑÑ ÐºÐ°ÐºÐ¾Ðµ-то времÑ, пожалуйÑта, Ñообщите об Ñтом Ñвоему админиÑтратору вики.'; -$lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; $lang['i_chooselang'] = 'Выберите Ñвой Ñзык/Choose your language'; $lang['i_installer'] = 'УÑтановка «Докувики»'; $lang['i_wikiname'] = 'Ðазвание вики'; @@ -311,7 +316,7 @@ $lang['i_mbfuncoverload'] = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка «Докувики» н $lang['i_permfail'] = '<code>%s</code> недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи «Докувики». Вам необходимо иÑправить ÑиÑтемные права доÑтупа Ð´Ð»Ñ Ñтой директории!'; $lang['i_confexists'] = '<code>%s</code> уже ÑущеÑтвует'; $lang['i_writeerr'] = 'Ðе удалоÑÑŒ Ñоздать <code>%s</code>. Вам необходимо проверить ÑиÑтемные права доÑтупа к файлу и директориÑм, и Ñоздать файл вручную. '; -$lang['i_badhash'] = 'dokuwiki.php не раÑпознан или изменён (Ñ…Ñш=<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?id=wiki:welcome">Ñвоей новой «Докувики»</a>.'; @@ -336,7 +341,7 @@ $lang['minutes'] = '%d минут назад'; $lang['seconds'] = '%d Ñекунд назад'; $lang['wordblock'] = 'Ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены, поÑкольку они Ñодержат блокируемые Ñлова (Ñпам).'; $lang['media_uploadtab'] = 'Загрузка'; -$lang['media_searchtab'] = 'ПоиÑк'; +$lang['media_searchtab'] = 'Ðайти'; $lang['media_file'] = 'Файл'; $lang['media_viewtab'] = 'ПроÑмотр'; $lang['media_edittab'] = 'Правка'; @@ -359,6 +364,7 @@ $lang['media_perm_read'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтато $lang['media_perm_upload'] = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов.'; $lang['media_update'] = 'Загрузить новую верÑию'; $lang['media_restore'] = 'ВоÑÑтановить Ñту верÑию'; +$lang['media_acl_warning'] = 'Ðтот ÑпиÑок может быть неполным из-за ограничений ÑпиÑков ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа (ACL) и Ñкрытых Ñтраниц.'; $lang['currentns'] = 'Текущее проÑтранÑтво имён'; $lang['searchresult'] = 'Результаты поиÑка'; $lang['plainhtml'] = 'ПроÑтой HTML'; diff --git a/inc/lang/ru/recent.txt b/inc/lang/ru/recent.txt index aa088c734d160ab9dd1c81f24e5cc90590c64a95..0d4d3285a8eac379b001ffe9a67e46933b0852f7 100644 --- a/inc/lang/ru/recent.txt +++ b/inc/lang/ru/recent.txt @@ -1,5 +1,5 @@ ====== Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ====== -Ðти Ñтраницы были изменены недавно. +Следующие Ñтраницы были недавно изменены diff --git a/inc/lang/ru/subscr_list.txt b/inc/lang/ru/subscr_list.txt index 4b0fa59950e8b908c3f215c46083d0591541dbbd..bff328218547c191851d9b4ef9df99149d7d524f 100644 --- a/inc/lang/ru/subscr_list.txt +++ b/inc/lang/ru/subscr_list.txt @@ -1,6 +1,7 @@ Привет. Страницы в проÑтранÑтве имён @PAGE@ в вики @TITLE@ были изменены. + СпиÑок изменившихÑÑ Ñтраниц: -------------------------------------------------------- diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 82f050e2f08decec7a9cc8fda4fec027c240ba28..dd1a5a295cd4bd3d7375a97944b8f5faa62b5c31 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -38,7 +38,6 @@ $lang['btn_update'] = 'AktualizovaÅ¥'; $lang['btn_delete'] = 'ZmazaÅ¥'; $lang['btn_back'] = 'Späť'; $lang['btn_backlink'] = 'Spätné odkazy'; -$lang['btn_backtomedia'] = 'Späť na výber súboru'; $lang['btn_subscribe'] = 'SledovaÅ¥ zmeny'; $lang['btn_profile'] = 'AktualizovaÅ¥ profil'; $lang['btn_reset'] = 'ZruÅ¡iÅ¥'; @@ -51,8 +50,10 @@ $lang['btn_register'] = 'RegistrovaÅ¥'; $lang['btn_apply'] = 'PoužiÅ¥'; $lang['btn_media'] = 'Správa médiÃ'; $lang['btn_deleteuser'] = 'ZruÅ¡iÅ¥ môj úÄet'; +$lang['btn_img_backto'] = 'Späť na %s'; +$lang['btn_mediaManager'] = 'PrezrieÅ¥ v správcovi médiÃ'; $lang['loggedinas'] = 'Prihlásený(á) ako:'; -$lang['user'] = 'UžÃvateľské meno'; +$lang['user'] = 'PoužÃvateľské meno'; $lang['pass'] = 'Heslo'; $lang['newpass'] = 'Nové heslo'; $lang['oldpass'] = 'PotvrÄ aktuálne heslo'; @@ -60,36 +61,38 @@ $lang['passchk'] = 'EÅ¡te raz znovu'; $lang['remember'] = 'Zapamätaj si ma'; $lang['fullname'] = 'Celé meno'; $lang['email'] = 'E-Mail'; -$lang['profile'] = 'UžÃvateľský profil'; -$lang['badlogin'] = 'Zadané užÃvateľské meno a heslo nie je správne.'; +$lang['profile'] = 'PoužÃvateľský profil'; +$lang['badlogin'] = 'Zadané použÃvateľské meno a heslo nie je správne.'; $lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.'; $lang['minoredit'] = 'MenÅ¡ie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; $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['searchcreatepage'] = "Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla ''VytvoriÅ¥ stránku''."; +$lang['searchcreatepage'] = 'Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla \'\'VytvoriÅ¥ stránku\'\'.'; $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é emailom.'; -$lang['regsuccess2'] = 'UžÃvateľský úÄet bol vytvorený.'; +$lang['reguexists'] = 'PoužÃvateľ s rovnakým menom je už zaregistrovaný.'; +$lang['regsuccess'] = 'PoužÃvateľský úÄet bol vytvorený a heslo zaslané emailom.'; +$lang['regsuccess2'] = 'PoužÃvateľský úÄet bol vytvorený.'; +$lang['regfail'] = 'PoužÃvateľský úÄet nemôže byÅ¥ vytvorený.'; $lang['regmailfail'] = 'Zdá sa, že nastala chyba pri posielanà mailu s heslom. Skúste kontaktovaÅ¥ správcu.'; $lang['regbadmail'] = 'Zadaná emailová adresa nie je platná. Pokiaľ si myslÃte, že to je zle, skúste kontaktovaÅ¥ správcu.'; $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žÃvateľský úÄet? Vytvorte si ho'; +$lang['reghere'] = 'Nemáte použÃ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 mailová adresa nie sú povolené.'; -$lang['profchanged'] = 'UžÃvateľský úÄet úspeÅ¡ne zmenený.'; +$lang['profchanged'] = 'Profil požÃvateľa bol úspeÅ¡ne zmenený.'; $lang['profnodelete'] = 'Táto wiki neumožňuje zruÅ¡enie použÃvateľov.'; $lang['profdeleteuser'] = 'ZruÅ¡iÅ¥ úÄet'; $lang['profdeleted'] = 'Váš úÄet bol zruÅ¡ený v tejto wiki.'; $lang['profconfdelete'] = 'Chcem odstrániÅ¥ môj úÄet z tejto wiki. <br/> Táto operácia je nevratná.'; $lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie polÃÄko'; +$lang['proffail'] = 'Profil použÃvateľa nebol aktualizovaný.'; $lang['pwdforget'] = 'Zabudli ste heslo? ZÃskajte nové!'; $lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'NastaviÅ¥ 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.'; +$lang['resendpwdnouser'] = 'PrepáÄte, nemôžeme nájsÅ¥ zadaného použÃvateľa v databáze.'; $lang['resendpwdbadauth'] = 'PrepáÄte, tento autorizaÄný kód nie je platný. Uistite sa, Äi ste použili celý autorizaÄný odkaz.'; $lang['resendpwdconfirm'] = 'AutorizaÄný odkaz bol zaslaný na e-mail.'; $lang['resendpwdsuccess'] = 'VaÅ¡e nové heslo bolo zaslané na e-mail.'; @@ -149,7 +152,6 @@ $lang['js']['media_overwrt'] = 'PrepÃsaÅ¥ existujúce súbory'; $lang['rssfailed'] = 'Nastala chyba pri vytváranà tohto RSS: '; $lang['nothingfound'] = 'NiÄ nenájdené.'; $lang['mediaselect'] = 'Výber súboru'; -$lang['fileupload'] = 'Nahrávanie súboru'; $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ý.'; @@ -204,7 +206,7 @@ $lang['sidebar'] = 'BoÄný panel'; $lang['mail_newpage'] = 'stránka pridaná:'; $lang['mail_changed'] = 'stránka zmenená:'; $lang['mail_subscribe_list'] = 'stránky zmenené v mennom priestore:'; -$lang['mail_new_user'] = 'nový užÃvateľ:'; +$lang['mail_new_user'] = 'nový použÃvateľ:'; $lang['mail_upload'] = 'nahraný súbor:'; $lang['changes_type'] = 'Prehľad zmien'; $lang['pages_changes'] = 'Stránok'; @@ -235,11 +237,9 @@ $lang['qb_sig'] = 'VložiÅ¥ podpis'; $lang['qb_smileys'] = 'SmajlÃky'; $lang['qb_chars'] = 'Å peciálne znaky'; $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'; $lang['metasaveok'] = 'Metainformácie uložené'; -$lang['btn_img_backto'] = 'Späť na %s'; $lang['img_title'] = 'Titul:'; $lang['img_caption'] = 'Popis:'; $lang['img_date'] = 'Dátum:'; @@ -252,7 +252,6 @@ $lang['img_camera'] = 'Fotoaparát:'; $lang['img_keywords'] = 'KľúÄové slová:'; $lang['img_width'] = 'Å Ãrka:'; $lang['img_height'] = 'Výška:'; -$lang['btn_mediaManager'] = 'PrezrieÅ¥ v správcovi médiÃ'; $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'; @@ -269,8 +268,7 @@ $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 (perióda %.2f dňa)'; $lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)'; -$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['authpwdexpire'] = 'PlatnosÅ¥ hesla vypršà za %d dnÃ, mali by ste ho zmeniÅ¥ Äo najskôr.'; +$lang['authtempfail'] = 'PoužÃ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'; @@ -289,8 +287,8 @@ $lang['i_success'] = 'Konfigurácia bola úspeÅ¡ne ukonÄená. Teraz $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?id=wiki:welcome">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_pol1'] = 'Verejná Wiki (ÄÃtanie pre každého, zápis a nahrávanie pre registrovaných použÃvateľov)'; +$lang['i_pol2'] = 'Uzatvorená Wiki (ÄÃtanie, zápis a nahrávanie len pre registrovaných použÃvateľov)'; $lang['i_allowreg'] = 'Povolenie samostanej registrácie použÃvateľov'; $lang['i_retry'] = 'SkúsiÅ¥ znovu'; $lang['i_license'] = 'Vyberte licenciu, pod ktorou chcete uložiÅ¥ váš obsah:'; diff --git a/inc/lang/sk/locked.txt b/inc/lang/sk/locked.txt index 5063c0605456fc8ea2caf73a19586069e2886428..fae400bcad76df7e02b7851775232b8abea3fdde 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Å¥ dovtedy, pokiaľ daný užÃvateľ dokonÄà svoje úpravy alebo pokiaľ tento zámok stratà platnosÅ¥. +Tato stránka je práve uzamknutá pre úpravy iným použÃvateľom. MusÃte poÄkaÅ¥ dovtedy, pokiaľ daný použÃvateľ dokonÄà svoje úpravy alebo pokiaľ tento zámok stratà platnosÅ¥. diff --git a/inc/lang/sk/password.txt b/inc/lang/sk/password.txt index 18ae1e71395eed402fcf62edd519b2a1e177d590..8d0907e40892b17c5c0cac6773e6758d9af73a48 100644 --- a/inc/lang/sk/password.txt +++ b/inc/lang/sk/password.txt @@ -3,5 +3,5 @@ Dobrý deň, Tu sú prihlasovacie informácie pre @TITLE@ (@DOKUWIKIURL@) Meno : @FULLNAME@ -UžÃvateľské meno : @LOGIN@ +PoužÃvateľské meno : @LOGIN@ Heslo : @PASSWORD@ diff --git a/inc/lang/sk/register.txt b/inc/lang/sk/register.txt index 59c225d7c44d175f0c3b26f8eb129f077f2c221c..b939dccca472b1899bf6b5a7d554ee298c052db9 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žÃvateľský úÄet, vyplňte prosÃm vÅ¡etky informácie v nasledujú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). +Aby ste zÃskali použÃvateľský úÄet, vyplňte prosÃm vÅ¡etky informácie v nasledujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. PoužÃ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 893ff54a1ba8a170a7e5931a943312ca76b43760..2be1ac3b34e7289dcba1a723a132162a18b96a1d 100644 --- a/inc/lang/sk/registermail.txt +++ b/inc/lang/sk/registermail.txt @@ -1,6 +1,6 @@ -Nový užÃvateľ bol registrovaný. Tu sú detaily: +Nový použÃvateľ bol registrovaný. Tu sú detaily: -UžÃvateľské meno : @NEWUSER@ +PoužÃvateľské meno : @NEWUSER@ Celé meno : @NEWNAME@ E-Mail : @NEWEMAIL@ diff --git a/inc/lang/sk/updateprofile.txt b/inc/lang/sk/updateprofile.txt index 67b823dc5b24874ce4f69441eb85fa28211d11e6..33b5e5b78b8fbef6f1fa5c48471248c0750eb53b 100644 --- a/inc/lang/sk/updateprofile.txt +++ b/inc/lang/sk/updateprofile.txt @@ -1,4 +1,4 @@ -====== Zmena vášho užÃvateľského profilu ====== +====== Zmena vášho použÃvateľského profilu ====== Potrebujete vyplniÅ¥ len tie polia, ktoré chcete zmeniÅ¥. Nemôžete zmeniÅ¥ prihlasovacie meno. diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 555161b20ed71b5a82f1290ac8c43c9a3adc357f..ef082cc6e6f53b8a4887e221691a013fff26a87b 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -42,7 +42,6 @@ $lang['btn_update'] = 'Posodobi'; $lang['btn_delete'] = 'IzbriÅ¡i'; $lang['btn_back'] = 'Nazaj'; $lang['btn_backlink'] = 'Povratne povezave'; -$lang['btn_backtomedia'] = 'Nazaj na izbiro predstavnih datotek'; $lang['btn_subscribe'] = 'Urejanje naroÄnin'; $lang['btn_profile'] = 'Posodobi profil'; $lang['btn_reset'] = 'Ponastavi'; @@ -150,7 +149,6 @@ $lang['js']['media_overwrt'] = 'PrepiÅ¡i obstojeÄe datoteke'; $lang['rssfailed'] = 'PriÅ¡lo je do napake med pridobivanjem vira: '; $lang['nothingfound'] = 'Ni najdenih predmetov.'; $lang['mediaselect'] = 'Predstavne datoteke'; -$lang['fileupload'] = 'PoÅ¡iljanje predstavnih datotek'; $lang['uploadsucc'] = 'PoÅ¡iljanje je bilo uspeÅ¡no konÄano.'; $lang['uploadfail'] = 'PoÅ¡iljanje je spodletelo. Morda so uporabljena neustrezna dovoljenja.'; $lang['uploadwrong'] = 'PoÅ¡iljanje je zavrnjeno. Uporabljena pripona datoteke je prepovedana.'; @@ -239,7 +237,6 @@ $lang['qb_sig'] = 'Vstavi podpis'; $lang['qb_smileys'] = 'SmeÅ¡ki'; $lang['qb_chars'] = 'Posebni znaki'; $lang['upperns'] = 'skoÄi na nadrejeni imenski prostor'; -$lang['admin_register'] = 'Dodaj novega uporabnika'; $lang['metaedit'] = 'Uredi metapodatke'; $lang['metasaveerr'] = 'Zapisovanje metapodatkov je spodletelo'; $lang['metasaveok'] = 'Metapodatki so shranjeni'; @@ -272,7 +269,6 @@ $lang['subscr_style_every'] = 'elektronsko sporoÄilo ob vsaki spremembi'; $lang['subscr_style_digest'] = 'strnjeno elektronsko sporoÄilo sprememb za vsako stran (vsakih %.2f dni)'; $lang['subscr_style_list'] = 'seznam spremenjenih strani od zadnjega elektronskega sporoÄila (vsakih %.2f dni)'; $lang['authtempfail'] = 'Potrditev uporabnika je trenutno nedostopna. Stopite v stik s skrbnikom sistema wiki.'; -$lang['authpwdexpire'] = 'Geslo bo poteklo v %d dneh. PriporoÄljivo ga je zamenjati.'; $lang['i_chooselang'] = 'Izberite jezik'; $lang['i_installer'] = 'DokuWiki namestitev'; $lang['i_wikiname'] = 'Ime Wiki spletiÅ¡Äa'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index d1dc867d70bcb451418b60532a138a296d243682..2bc8dea001c75bd33d2c4009dd0438f8d0b4f36b 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -12,10 +12,10 @@ */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '"'; -$lang['doublequoteclosing'] = '"'; -$lang['singlequoteopening'] = '\''; -$lang['singlequoteclosing'] = '\''; +$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'; @@ -40,7 +40,6 @@ $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'; @@ -98,7 +97,6 @@ $lang['js']['notsavedyet'] = 'Ndryshimet e paruajtura do të humbasin.\nVazh $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!'; @@ -176,7 +174,6 @@ $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'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 9f692ab71a5c64fff1e983bf4c5e65d32d1db079..3c2cc654241237eefede8476ba9196f030052afd 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -37,7 +37,6 @@ $lang['btn_update'] = 'Ðжурирај'; $lang['btn_delete'] = 'Избриши'; $lang['btn_back'] = 'Ðатраг'; $lang['btn_backlink'] = 'Повратне везе'; -$lang['btn_backtomedia'] = 'Врати Ñе на избор медијÑке датотеке'; $lang['btn_subscribe'] = 'Пријави Ñе на измене'; $lang['btn_profile'] = 'Ðжурирај профил'; $lang['btn_reset'] = 'Поништи'; @@ -125,7 +124,6 @@ $lang['js']['del_confirm'] = 'Обриши овај уноÑ?'; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ðишта није нађено.'; $lang['mediaselect'] = 'Избор медијÑке датотеке'; -$lang['fileupload'] = 'Слање медијÑке датотеке'; $lang['uploadsucc'] = 'УÑпешно Ñлање'; $lang['uploadfail'] = 'ÐеуÑпешно Ñлање. Можда немате дозволу?'; $lang['uploadwrong'] = 'Слање је забрањено. Овај наÑтавак датотеке је забрањен!'; @@ -198,7 +196,6 @@ $lang['qb_sig'] = 'Убаци потпиÑ'; $lang['qb_smileys'] = 'Смешко'; $lang['qb_chars'] = 'ПоÑебни карактери'; $lang['upperns'] = 'Скочи на виши именÑки проÑтор'; -$lang['admin_register'] = 'Додај новог кориÑника'; $lang['metaedit'] = 'Измени мета-податке'; $lang['metasaveerr'] = 'ЗапиÑивање мета-података није било уÑпешно'; $lang['metasaveok'] = 'Мета-подаци Ñу Ñачувани'; diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index 275853cb8e2ee281a47d1d623d330c949f7042d7..721334afd368b62df6d67c8a56cc3b77fa858730 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -52,7 +52,6 @@ $lang['btn_update'] = 'Uppdatera'; $lang['btn_delete'] = 'Radera'; $lang['btn_back'] = 'Tillbaka'; $lang['btn_backlink'] = 'Tillbakalänkar'; -$lang['btn_backtomedia'] = 'Tillbaka till val av Mediafil'; $lang['btn_subscribe'] = 'Prenumerera pÃ¥ ändringar'; $lang['btn_profile'] = 'Uppdatera profil'; $lang['btn_reset'] = 'Ã…terställ'; @@ -164,7 +163,6 @@ $lang['js']['media_overwrt'] = 'Skriv över existerande filer'; $lang['rssfailed'] = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: '; $lang['nothingfound'] = 'Inga filer hittades.'; $lang['mediaselect'] = 'Mediafiler'; -$lang['fileupload'] = 'Ladda upp mediafiler'; $lang['uploadsucc'] = 'Uppladdningen lyckades'; $lang['uploadfail'] = 'Uppladdningen misslyckades, fel filskydd?'; $lang['uploadwrong'] = 'Uppladdning nekad. Filändelsen är inte tillÃ¥ten!'; @@ -249,7 +247,6 @@ $lang['qb_sig'] = 'Infoga signatur'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Specialtecken'; $lang['upperns'] = 'hoppa till föräldernamnrymd'; -$lang['admin_register'] = 'Lägg till ny användare'; $lang['metaedit'] = 'Redigera metadata'; $lang['metasaveerr'] = 'Skrivning av metadata misslyckades'; $lang['metasaveok'] = 'Metadata sparad'; @@ -280,7 +277,6 @@ $lang['subscr_m_receive'] = 'Ta emot'; $lang['subscr_style_every'] = 'skicka epost vid varje ändring'; $lang['subscr_style_list'] = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)'; $lang['authtempfail'] = 'Tillfälligt fel pÃ¥ användarautentisering. Om felet kvarstÃ¥r, var vänlig meddela wikiadministratören.'; -$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.'; $lang['i_chooselang'] = 'Välj sprÃ¥k'; $lang['i_installer'] = 'Installation av DokuWiki'; $lang['i_wikiname'] = 'Wikins namn'; diff --git a/inc/lang/ta/admin.txt b/inc/lang/ta/admin.txt new file mode 100644 index 0000000000000000000000000000000000000000..2538b45691a707c0f2f83feee6aeae25600a347d --- /dev/null +++ b/inc/lang/ta/admin.txt @@ -0,0 +1,3 @@ +====== நிரà¯à®µà®¾à®•ம௠====== + +கீழே டோகà¯à®µà®¿à®•à¯à®•ியின௠நிரà¯à®µà®¾à®•ம௠தொடரà¯à®ªà®¾à®© à®®à¯à®±à¯ˆà®®à¯ˆà®•ளைப௠பாரà¯à®•à¯à®•லாமà¯. \ No newline at end of file diff --git a/inc/lang/ta/adminplugins.txt b/inc/lang/ta/adminplugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..54a363a8a80db0b915735ae5b762b7f38bb403a8 --- /dev/null +++ b/inc/lang/ta/adminplugins.txt @@ -0,0 +1 @@ +===== மேலதிக சொரà¯à®•ிகள௠===== \ No newline at end of file diff --git a/inc/lang/ta/backlinks.txt b/inc/lang/ta/backlinks.txt new file mode 100644 index 0000000000000000000000000000000000000000..d8e618fc0920f0e39863f68e8a76fdf8de0269f8 --- /dev/null +++ b/inc/lang/ta/backlinks.txt @@ -0,0 +1,3 @@ +====== பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•ள௠====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இணைபà¯à®ªà¯ˆà®•௠கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯ அனைதà¯à®¤à¯à®ªà¯ பகà¯à®•à®™à¯à®•ளà¯à®®à¯ \ No newline at end of file diff --git a/inc/lang/ta/conflict.txt b/inc/lang/ta/conflict.txt new file mode 100644 index 0000000000000000000000000000000000000000..301c2f07a846e0cb31ff9847b650b3e118ea17fe --- /dev/null +++ b/inc/lang/ta/conflict.txt @@ -0,0 +1,3 @@ +====== பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உணà¯à®Ÿà¯ ====== + +நீஙà¯à®•ள௠திரà¯à®¤à¯à®¤à®¿à®¯ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•௠பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உரà¯à®µà®¾à®•ியà¯à®³à¯à®³à®¤à¯. நீஙà¯à®•ள௠கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯à®®à¯ போதà¯, இனà¯à®©à¯à®®à¯Šà®°à¯ பயனர௠அதே பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯ இபà¯à®ªà®Ÿà®¿ à®à®±à¯à®ªà®Ÿ வாயà¯à®ªà¯à®ªà¯à®£à¯à®Ÿà¯. \ No newline at end of file diff --git a/inc/lang/ta/diff.txt b/inc/lang/ta/diff.txt new file mode 100644 index 0000000000000000000000000000000000000000..bbc2876763903052bfb9e3d6904d39f0665546cd --- /dev/null +++ b/inc/lang/ta/diff.txt @@ -0,0 +1,3 @@ +====== வேறà¯à®ªà®¾à®Ÿà¯à®•ள௠====== + +கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இரà¯à®µà¯‡à®±à¯à®ªà®Ÿà¯à®Ÿ மாறà¯à®¤à®²à¯à®•ளைக௠காடà¯à®Ÿà¯à®•ினà¯à®±à®¤à¯. \ No newline at end of file diff --git a/inc/lang/ta/draft.txt b/inc/lang/ta/draft.txt new file mode 100644 index 0000000000000000000000000000000000000000..2bb89219df57c073e65c2f7da6518643ca0ba3f1 --- /dev/null +++ b/inc/lang/ta/draft.txt @@ -0,0 +1 @@ +====== பூரணமாகத கோபà¯à®ªà¯ ====== \ No newline at end of file diff --git a/inc/lang/ta/edit.txt b/inc/lang/ta/edit.txt new file mode 100644 index 0000000000000000000000000000000000000000..e2d61d781b3c91552725fba8af1d9e59cf77724b --- /dev/null +++ b/inc/lang/ta/edit.txt @@ -0,0 +1 @@ +பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®µà¯à®Ÿà®©à¯, "செமி" எனà¯à®± படà¯à®Ÿà®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯. விகà¯à®•ியின௠வாகà¯à®•ிய அமைபà¯à®ªà¯à®•à¯à®•ளைப௠அறிநà¯à®¤à¯à®•ொளà¯à®³ [[wiki:syntax]] ஠பாரà¯à®•à¯à®•வà¯à®®à¯. நீஙà¯à®•ள௠விகà¯à®•ியில௠எழà¯à®¤à®¿à®ªà¯ பயிறà¯à®šà®¿à®ªà¯†à®± [playground:playground|விளையாடà¯à®Ÿà¯à®¤à¯à®¤à®¾à®Ÿà®²à¯ˆ]] பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯. \ No newline at end of file diff --git a/inc/lang/ta/jquery.ui.datepicker.js b/inc/lang/ta/jquery.ui.datepicker.js new file mode 100644 index 0000000000000000000000000000000000000000..113a2084948b29a6cb9091b9d3b27492dd80713e --- /dev/null +++ b/inc/lang/ta/jquery.ui.datepicker.js @@ -0,0 +1,37 @@ +/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by S A Sureshkumar (saskumar@live.com). */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "../datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}(function( datepicker ) { + +datepicker.regional['ta'] = { + closeText: 'மூடà¯', + prevText: 'à®®à¯à®©à¯à®©à¯ˆà®¯à®¤à¯', + nextText: 'அடà¯à®¤à¯à®¤à®¤à¯', + currentText: 'இனà¯à®±à¯', + monthNames: ['தை','மாசி','பஙà¯à®•à¯à®©à®¿','சிதà¯à®¤à®¿à®°à¯ˆ','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','பà¯à®°à®Ÿà¯à®Ÿà®¾à®šà®¿','à®à®ªà¯à®ªà®šà®¿','காரà¯à®¤à¯à®¤à®¿à®•ை','மாரà¯à®•ழி'], + monthNamesShort: ['தை','மாசி','பஙà¯','சிதà¯','வைகா','ஆனி', + 'ஆடி','ஆவ','பà¯à®°','à®à®ªà¯','காரà¯','மாரà¯'], + dayNames: ['ஞாயிறà¯à®±à¯à®•à¯à®•ிழமை','திஙà¯à®•டà¯à®•ிழமை','செவà¯à®µà®¾à®¯à¯à®•à¯à®•ிழமை','பà¯à®¤à®©à¯à®•ிழமை','வியாழகà¯à®•ிழமை','வெளà¯à®³à®¿à®•à¯à®•ிழமை','சனிகà¯à®•ிழமை'], + dayNamesShort: ['ஞாயிறà¯','திஙà¯à®•ளà¯','செவà¯à®µà®¾à®¯à¯','பà¯à®¤à®©à¯','வியாழனà¯','வெளà¯à®³à®¿','சனி'], + dayNamesMin: ['ஞா','தி','செ','பà¯','வி','வெ','ச'], + weekHeader: 'Ðе', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; +datepicker.setDefaults(datepicker.regional['ta']); + +return datepicker.regional['ta']; + +})); diff --git a/inc/lang/ta/lang.php b/inc/lang/ta/lang.php index a5b89527a05c468130d5b084934d99fef1743caf..422613ec7bcedd8914e42641b569fe2097677b67 100644 --- a/inc/lang/ta/lang.php +++ b/inc/lang/ta/lang.php @@ -2,23 +2,41 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Naveen Venugopal <naveen.venugopal.anu@gmail.com> + * @author Sri Saravana <saravanamuthaly@gmail.com> */ +$lang['doublequoteopening'] = '"'; +$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_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_subscribe'] = 'சநà¯à®¤à®¾ நிரà¯à®µà®•ிபà¯à®ªà¯'; +$lang['btn_profile'] = 'பயனர௠கணகà¯à®•௠மாறà¯à®±à®®à¯'; +$lang['btn_reset'] = 'மீடà¯à®Ÿà®®à¯ˆ'; $lang['btn_resendpwd'] = 'பà¯à®¤à®¿à®¯ அடையாளசà¯à®šà¯Šà®²à¯à®²à¯ˆ நியமி'; +$lang['btn_draft'] = 'திரà¯à®¤à¯à®¤ வரைவà¯'; $lang['btn_apply'] = 'உபயோகி'; $lang['user'] = 'பயனரà¯à®ªà¯†à®¯à®°à¯'; $lang['pass'] = 'அடையாளசà¯à®šà¯Šà®²à¯'; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index 4f534462f8f8de056d6f9d6d855a206975f4e938..3273faedb8cf9a4dc23bb187d2f6fe95dbcee172 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -8,10 +8,11 @@ * @author Kittithat Arnontavilas <mrtomyum@gmail.com> * @author Thanasak Sompaisansin <jombthep@gmail.com> * @author Yuthana Tantirungrotechai <yt203y@gmail.com> + * @author Amnuay <amnuay@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; -$lang['doublequoteopening'] = '“ '; +$lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = 'â€'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; @@ -39,7 +40,6 @@ $lang['btn_update'] = 'ปรับปรุง'; $lang['btn_delete'] = 'ลบ'; $lang['btn_back'] = 'ย้à¸à¸™à¸à¸¥à¸±à¸š'; $lang['btn_backlink'] = 'หน้าที่ลิงà¸à¹Œà¸¡à¸²'; -$lang['btn_backtomedia'] = 'à¸à¸¥à¸±à¸šà¹„ปยังหน้าเลืà¸à¸à¹„ฟล์สื่à¸'; $lang['btn_subscribe'] = 'เà¸à¹‰à¸²à¸”ู'; $lang['btn_profile'] = 'à¹à¸à¹‰à¸‚้à¸à¸¡à¸¹à¸¥à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; $lang['btn_reset'] = 'เริ่มใหม่'; @@ -49,6 +49,7 @@ $lang['btn_recover'] = 'à¸à¸¹à¹‰à¸„ืนเà¸à¸à¸ªà¸²à¸£à¸‰à¸šà¸± $lang['btn_draftdel'] = 'ลบเà¸à¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡'; $lang['btn_revert'] = 'à¸à¸¹à¹‰à¸„ืน'; $lang['btn_register'] = 'สร้างบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; +$lang['btn_apply'] = 'นำไปใช้'; $lang['btn_media'] = 'ส่วนจัดà¸à¸²à¸£à¸ªà¸·à¹ˆà¸à¹à¸¥à¸°à¹„ฟล์'; $lang['btn_deleteuser'] = 'ลบบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸‰à¸±à¸™'; $lang['btn_img_backto'] = 'à¸à¸¥à¸±à¸šà¹„ปยัง %s'; @@ -73,6 +74,7 @@ $lang['regmissing'] = 'ขà¸à¸à¸ ัย คุณต้à¸à¸‡à¸à¸£ $lang['reguexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; $lang['regsuccess'] = 'ผู้ใช้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹„ด้ถูà¸à¸ªà¹ˆà¸‡à¹„ปทางà¸à¸µà¹€à¸¡à¸¥à¹à¸¥à¹‰à¸§'; $lang['regsuccess2'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¹„ด้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้น'; +$lang['regfail'] = 'à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ม่สำเร็จ'; $lang['regmailfail'] = 'ดูเหมืà¸à¸™à¸ˆà¸°à¸¡à¸µà¸‚้à¸à¸œà¸´à¸”พลาดในà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—างเมล์ à¸à¸£à¸¸à¸“าติดต่à¸à¸œà¸¹à¹‰à¸”ูà¹à¸¥à¸£à¸°à¸šà¸š'; $lang['regbadmail'] = 'รูปà¹à¸šà¸šà¸à¸µà¹€à¸¡à¸¥à¹„ม่ถูà¸à¸•้à¸à¸‡ ให้ใส่à¸à¸µà¹€à¸¡à¸¥à¹ƒà¸«à¹‰à¸–ูà¸à¸•้à¸à¸‡à¸•ามรูปà¹à¸šà¸šà¸à¸µà¹€à¸¡à¸¥ หรืà¸à¹ƒà¸«à¹‰à¸—ำช่à¸à¸‡à¸à¸µà¹€à¸¡à¸¥à¹ƒà¸«à¹‰à¸§à¹ˆà¸²à¸‡à¹à¸—น'; $lang['regbadpass'] = 'รหัสผ่านที่ใส่ไม่ถูà¸à¸•้à¸à¸‡'; @@ -86,8 +88,11 @@ $lang['profnodelete'] = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รà¸à¸‡à¸£à¸± $lang['profdeleteuser'] = 'ลบบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™'; $lang['profdeleted'] = 'บัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸„ุณได้ถูà¸à¸¥à¸šà¸à¸à¸à¸ˆà¸²à¸à¸§à¸´à¸à¸´à¹à¸¥à¹‰à¸§'; $lang['profconfdelete'] = 'ฉันà¸à¸¢à¸²à¸à¸¥à¸šà¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚à¸à¸‡à¸‰à¸±à¸™à¸ˆà¸²à¸à¸§à¸´à¸à¸´à¸™à¸µà¹‰ <br/> à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่สามารถà¹à¸à¹‰à¹„ขคืนได้ '; +$lang['profconfdeletemissing'] = 'ท่านไม่ได้ยืนยันในช่à¸à¸‡à¸¢à¸·à¸™à¸¢à¸±à¸™'; +$lang['proffail'] = 'ข้à¸à¸¡à¸¹à¸¥à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ม่เป็นปัจจุบัน'; $lang['pwdforget'] = 'ลืมรหัสผ่านหรืà¸? เà¸à¸²à¸à¸±à¸™à¹ƒà¸«à¸¡à¹ˆà¸ªà¸´'; $lang['resendna'] = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รà¸à¸‡à¸£à¸±à¸šà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸‹à¹‰à¸³'; +$lang['resendpwd'] = 'สร้างรหัสผ่านใหม่สำหรับ'; $lang['resendpwdmissing'] = 'ขà¸à¸à¸ ัย, คุณต้à¸à¸‡à¸à¸£à¸à¸à¸—ุà¸à¸Šà¹ˆà¸à¸‡'; $lang['resendpwdnouser'] = 'ขà¸à¸à¸ ัย, เราไม่พบผู้ใช้คนนี้ในà¸à¸²à¸™à¸‚้à¸à¸¡à¸¹à¸¥à¸‚à¸à¸‡à¹€à¸£à¸²'; $lang['resendpwdbadauth'] = 'ขà¸à¸à¸ ัย, รหัสนี้ยังใช้ไม่ได้ à¸à¸£à¸¸à¸“าตรวจสà¸à¸šà¸§à¹ˆà¸²à¸„ุณà¸à¸”ลิ้งค์ยืนยันà¹à¸¥à¹‰à¸§'; @@ -100,6 +105,7 @@ $lang['searchmedia_in'] = 'สืบค้นใน %s'; $lang['txt_upload'] = 'เลืà¸à¸à¹„ฟล์ที่จะà¸à¸±à¸žà¹‚หลด:'; $lang['txt_filename'] = 'à¸à¸±à¸žà¹‚หลดเป็น(ตัวเลืà¸à¸):'; $lang['txt_overwrt'] = 'เขียนทับไฟล์ที่มีà¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§'; +$lang['maxuploadsize'] = 'à¸à¸±à¸žà¹‚หลด สูงสุด %s ต่à¸à¹„ฟล์'; $lang['lockedby'] = 'ตà¸à¸™à¸™à¸µà¹‰à¸–ูà¸à¸¥à¹Šà¸à¸„โดย:'; $lang['lockexpire'] = 'à¸à¸²à¸£à¸¥à¹Šà¸à¸„จะหมดà¸à¸²à¸¢à¸¸à¹€à¸¡à¸·à¹ˆà¸:'; $lang['js']['willexpire'] = 'à¸à¸²à¸£à¸¥à¹Šà¸à¸„เพื่à¸à¹à¸à¹‰à¹„ขหน้านี้à¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸«à¸¡à¸”เวลาในà¸à¸µà¸ \n นาที เพื่à¸à¸—ี่จะหลีà¸à¹€à¸¥à¸µà¹ˆà¸¢à¸‡à¸‚้à¸à¸‚ัดà¹à¸¢à¹‰à¸‡à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸›à¸¸à¹ˆà¸¡ "Preview" เพื่à¸à¸£à¸µà¹€à¸‹à¹‡à¸—เวลาใหม่'; @@ -107,6 +113,19 @@ $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']['nosmblinks'] = 'เชื่à¸à¸¡à¹„ปยังหน้าต่างà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™ ทำงานได้à¸à¸±à¸šà¹€à¸‰à¸žà¸²à¸°à¹„มโครซà¸à¸Ÿà¸—์à¸à¸´à¸™à¹€à¸•à¸à¸£à¹Œà¹€à¸™à¹‡à¸•เà¸à¹‡à¸à¸‹à¹‚ปรเรà¸à¸£à¹Œ(IE) คุณยังคงสามารถคัดลà¸à¸à¹à¸¥à¸°à¹à¸›à¸°à¸¥à¸´à¹‰à¸‡à¸„์ได้'; $lang['js']['linkwiz'] = 'ลิงค์วิเศษ'; $lang['js']['linkto'] = 'ลิงค์ไป:'; @@ -114,7 +133,6 @@ $lang['js']['del_confirm'] = 'ต้à¸à¸‡à¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£ $lang['rssfailed'] = 'มีข้à¸à¸œà¸´à¸”พลาดขณะดูดฟีดนี้'; $lang['nothingfound'] = 'ไม่พบสิ่งใด'; $lang['mediaselect'] = 'ไฟล์สื่à¸'; -$lang['fileupload'] = 'à¸à¸±à¸›à¹‚หลด'; $lang['uploadsucc'] = 'à¸à¸±à¸›à¹‚หลดสำเร็จ'; $lang['uploadfail'] = 'เà¸à¸´à¸”ความขัดข้à¸à¸‡à¹ƒà¸™à¸à¸²à¸£à¸à¸±à¸›à¹‚หลด'; $lang['uploadwrong'] = 'à¸à¸²à¸£à¸à¸±à¸žà¹‚หลดถูà¸à¸›à¸à¸´à¹€à¸ªà¸˜ ส่วนขยายไฟล์นี้ต้à¸à¸‡à¸«à¹‰à¸²à¸¡!'; @@ -184,7 +202,6 @@ $lang['qb_sig'] = 'ลายเซ็นพร้à¸à¸¡à¸¥à¸‡à¹€ $lang['qb_smileys'] = 'ภาพà¹à¸ªà¸”งà¸à¸²à¸£à¸¡à¸“์'; $lang['qb_chars'] = 'à¸à¸±à¸à¸‚ระพิเศษ'; $lang['upperns'] = 'à¸à¸£à¸°à¹‚ดดขึ้นไปยังเนมสเปซà¹à¸¡à¹ˆ'; -$lang['admin_register'] = 'สร้างบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰'; $lang['metaedit'] = 'à¹à¸à¹‰à¹„ขข้à¸à¸¡à¸¹à¸¥à¹€à¸¡à¸•้า'; $lang['metasaveerr'] = 'มีข้à¸à¸œà¸´à¸”พลาดในà¸à¸²à¸£à¹€à¸‚ียนข้à¸à¸¡à¸¹à¸¥à¹€à¸¡à¸•้า'; $lang['metasaveok'] = 'บันทึà¸à¹€à¸¡à¸•้าดาต้าà¹à¸¥à¹‰à¸§'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index bc210ad64ca25290deed5767b99167d2b00688c1..52bece889b6e8ee68ec593abafc0a284ce342b36 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -13,6 +13,7 @@ * @author huseyin can <huseyincan73@gmail.com> * @author ilker rifat kapaç <irifat@gmail.com> * @author İlker R. Kapaç <irifat@gmail.com> + * @author Mete Cuma <mcumax@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -44,7 +45,6 @@ $lang['btn_update'] = 'Güncelle'; $lang['btn_delete'] = 'Sil'; $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_profile'] = 'Kullanıcı Bilgilerini Güncelle'; $lang['btn_reset'] = 'Sıfırla'; @@ -74,11 +74,12 @@ $lang['badpassconfirm'] = 'Üzgünüz, parolanız yanlış'; $lang['minoredit'] = 'Küçük DeÄŸiÅŸiklikler'; $lang['draftdate'] = 'Taslak ÅŸu saatte otomatik kaydedildi:'; $lang['nosecedit'] = 'Sayfa yakın zamanda deÄŸiÅŸtirilmiÅŸtir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiÅŸtir.'; -$lang['searchcreatepage'] = "Aradığınız ÅŸeyi bulamadıysanız, ''Sayfayı deÄŸiÅŸtir'' tuÅŸuna tıklayarak girdiÄŸiniz sorgu adıyla yeni bir sayfa oluÅŸturabilirsiniz ."; +$lang['searchcreatepage'] = 'Aradığınız ÅŸeyi bulamadıysanız, \'\'Sayfayı deÄŸiÅŸtir\'\' tuÅŸuna tıklayarak girdiÄŸiniz sorgu adıyla yeni bir sayfa oluÅŸturabilirsiniz .'; $lang['regmissing'] = 'Üzgünüz, tüm alanları doldurmalısınız.'; $lang['reguexists'] = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; $lang['regsuccess'] = 'Kullanıcı oluÅŸturuldu ve ÅŸifre e-posta adresine gönderildi.'; $lang['regsuccess2'] = 'Kullanıcı oluÅŸturuldu.'; +$lang['regfail'] = 'Kullanıcı oluÅŸturulamadı.'; $lang['regmailfail'] = 'Åžifrenizi e-posta ile gönderirken bir hata oluÅŸmuÅŸ gibi görünüyor. Lütfen yönetici ile temasa geçiniz!'; $lang['regbadmail'] = 'Verilen e-posta adresi geçersiz gibi görünüyor - bunun bir hata olduÄŸunu düşünüyorsanız yönetici ile temasa geçiniz.'; $lang['regbadpass'] = 'Girilen parolalar aynı deÄŸil. Lütfen tekrar deneyiniz.'; @@ -93,6 +94,7 @@ $lang['profdeleteuser'] = 'Hesabı Sil'; $lang['profdeleted'] = 'Bu wiki\'den hesabınız silindi'; $lang['profconfdelete'] = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu iÅŸlem geri alınamaz'; $lang['profconfdeletemissing'] = 'Onay kutusu iÅŸaretlenmedi'; +$lang['proffail'] = 'Kullanıcı bilgileri güncellenmedi.'; $lang['pwdforget'] = 'Parolanızı mı unuttunuz? Yeni bir parola alın'; $lang['resendna'] = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.'; $lang['resendpwd'] = 'İçin yeni ÅŸifre belirle'; @@ -154,7 +156,6 @@ $lang['js']['media_overwrt'] = 'Var olan dosyaların üzerine yaz'; $lang['rssfailed'] = 'Bu beslemeyi çekerken hata oluÅŸtu: '; $lang['nothingfound'] = 'Hiçbir ÅŸey yok.'; $lang['mediaselect'] = 'Çokluortam dosyası seçimi'; -$lang['fileupload'] = 'Çokluortam dosyası yükleme'; $lang['uploadsucc'] = 'Yükleme tamam'; $lang['uploadfail'] = 'Yükleme baÅŸarısız. Yetki hatası olabilir!'; $lang['uploadwrong'] = 'Yükleme engellendi. Bu dosya uzantısına izin verilmiyor!'; @@ -186,6 +187,7 @@ $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['diff_type'] = 'farklı görünüş'; +$lang['diff_inline'] = 'Satır içi'; $lang['diff_side'] = 'Yan yana'; $lang['diffprevrev'] = 'Önceki sürüm'; $lang['diffnextrev'] = 'Sonraki sürüm'; @@ -244,7 +246,6 @@ $lang['qb_sig'] = 'İmza Ekle'; $lang['qb_smileys'] = 'Gülen Yüzler'; $lang['qb_chars'] = 'Özel Karakterler'; $lang['upperns'] = 'ebeveyn isimalanına atla'; -$lang['admin_register'] = 'Yeni kullanıcı ekle...'; $lang['metaedit'] = 'Metaverileri DeÄŸiÅŸtir'; $lang['metasaveerr'] = 'Metaveri yazma baÅŸarısız '; $lang['metasaveok'] = 'Metaveri kaydedildi'; @@ -260,14 +261,22 @@ $lang['img_camera'] = 'FotoÄŸraf Makinası:'; $lang['img_keywords'] = 'Anahtar Sözcükler:'; $lang['img_width'] = 'GeniÅŸlik:'; $lang['img_height'] = 'Yükseklik:'; +$lang['subscr_subscribe_success'] = '%s, %s için abonelik listesine eklendi.'; +$lang['subscr_subscribe_error'] = '%s, %s için abonelik listesine eklenirken hata ile karşılaşıldı.'; +$lang['subscr_subscribe_noaddress'] = 'Oturum bilginiz ile iliÅŸkilendirilmiÅŸ bir adres olmadığı için abonelik listesine dahil olamazsınız.'; +$lang['subscr_unsubscribe_success'] = '%s, %s için abonelik listesinden çıkarıldı.'; +$lang['subscr_unsubscribe_error'] = '%s, %s için abonelik listesinden çıkarılırken hata ile karşılaşıldı.'; +$lang['subscr_already_subscribed'] = '%s zaten %s listesine abone.'; +$lang['subscr_not_subscribed'] = '%s, %s listesine abone deÄŸil.'; +$lang['subscr_m_not_subscribed'] = 'Bu sayfa veya isim alanına (namespace) abone deÄŸilsiniz. '; $lang['subscr_m_new_header'] = 'Üyelik ekle'; $lang['subscr_m_current_header'] = 'ÜyeliÄŸini onayla'; $lang['subscr_m_unsubscribe'] = 'Üyelik iptali'; $lang['subscr_m_subscribe'] = 'Kayıt ol'; $lang['subscr_m_receive'] = 'Al'; $lang['subscr_style_every'] = 'her deÄŸiÅŸiklikte e-posta gönder'; +$lang['subscr_style_list'] = 'Son e-postadan bu yana deÄŸiÅŸtirilen sayfaların listesi (her %.2f gün)'; $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['authpwdexpire'] = 'Åžifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda deÄŸiÅŸtirmelisiniz.'; $lang['i_chooselang'] = 'Dili seçiniz'; $lang['i_installer'] = 'Dokuwiki Kurulum Sihirbazı'; $lang['i_wikiname'] = 'Wiki Adı'; @@ -277,13 +286,14 @@ $lang['i_problems'] = 'Kurulum sihirbazı aÅŸağıda gösterilen soru $lang['i_modified'] = 'Güzenlik sebebiyle bu script sadece yeni ve deÄŸiÅŸtirilmemiÅŸ bir Dokuwiki kurulumunda çalışır. Ya indirdiÄŸiniz paketi yeniden açmalı ya da <a href="http://dokuwiki.org/install"> adresindeki Dokuwiki kurulum kılavuzu</a>na bakmalısınız.'; $lang['i_funcna'] = '<code>%s</code> PHP fonksiyonu bulunmamaktadır. Barındırma(Hosting) hizmetinde bu özellik kapatılmış olabilir.'; $lang['i_phpver'] = '<code>%s</code> PHP sürümü, gereken <code>%s</code> sürümünden daha düşük. PHP kurulumunu yükseltmeniz gerekmektedir.'; +$lang['i_mbfuncoverload'] = 'DokuWiki\'nin çalışması için php.ini dosyasında mbstring.func_overload seçeneÄŸi kapalı (deÄŸeri 0) olarak ayarlanmalıdır.'; $lang['i_permfail'] = '<code>%s</code> Dokuwiki tarafından yazılabilir deÄŸil. İzin ayarlarını bu klasör için düzeltmeniz gerekmektedir!'; $lang['i_confexists'] = '<code>%s</code> zaten var'; $lang['i_writeerr'] = '<code>%s</code> oluÅŸturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluÅŸturmalısınız.'; $lang['i_badhash'] = 'dokuwiki.php tanınamadı ya da deÄŸiÅŸtirilmiÅŸ (hash=<code>%s</code>)'; $lang['i_badval'] = '<code>%s</code> - Yanlış veya boÅŸ deÄŸer'; -$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. <a href="doku.php">Yeni DokuWikiniz</a>i kullanabilirsiniz.'; -$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. <a href="doku.php">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.'; +$lang['i_success'] = 'Kurulum baÅŸarıyla tamamlandı. Åžimdi install.php dosyasını silebilirsiniz. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanabilirsiniz.'; +$lang['i_failure'] = 'Ayar dosyalarını yazarken bazı hatalar oluÅŸtu. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.'; $lang['i_policy'] = 'İlk ACL ayarı'; $lang['i_pol0'] = 'Tamamen Açık Wiki (herkes okuyabilir, yazabilir ve dosya yükleyebilir)'; $lang['i_pol1'] = 'Açık Wiki (herkes okuyabilir, ancak sadece üye olanlar yazabilir ve dosya yükleyebilir)'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 87c0b4ca895cf4d7462b605b3d383547e3c78f60..b1c821f3ee4c6950607442da9b00fe3addc8d393 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -7,9 +7,12 @@ * @author serg_stetsuk@ukr.net * @author Oleksandr Kunytsia <okunia@gmail.com> * @author Uko <uko@uar.net> - * @author Ulrikhe Lukoie <lukoie@gmail.com> + * @author Ulrikhe Lukoie <lukoie@gmail.com> * @author Kate Arzamastseva pshns@ukr.net * @author Egor Smkv <egorsmkv@gmail.com> + * @author Max Lyashuk <m_lyashuk@ukr.net> + * @author Pavel <pavelholovko@yandex.ru> + * @author Maksim <nikropol@yandex.ru> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,7 +44,6 @@ $lang['btn_update'] = 'Оновити'; $lang['btn_delete'] = 'Видалити'; $lang['btn_back'] = 'Ðазад'; $lang['btn_backlink'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñюди'; -$lang['btn_backtomedia'] = 'Ðазад до вибору медіа-файлу'; $lang['btn_subscribe'] = 'ПідпиÑатиÑÑ'; $lang['btn_profile'] = 'Оновити профіль'; $lang['btn_reset'] = 'ОчиÑтити'; @@ -52,7 +54,10 @@ $lang['btn_draftdel'] = 'Знищити чернетку'; $lang['btn_revert'] = 'Відновити'; $lang['btn_register'] = 'РеєÑтраціÑ'; $lang['btn_apply'] = 'ЗаÑтоÑувати'; +$lang['btn_media'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-файлами'; $lang['btn_deleteuser'] = 'Видалити мій аккаунт'; +$lang['btn_img_backto'] = 'ПовернутиÑÑ Ð´Ð¾ %s'; +$lang['btn_mediaManager'] = 'Показати в медіа менеджері'; $lang['loggedinas'] = 'Ви:'; $lang['user'] = 'КориÑтувач'; $lang['pass'] = 'Пароль'; @@ -73,6 +78,7 @@ $lang['regmissing'] = 'Ðеобхідно заповнити вÑÑ– $lang['reguexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; $lang['regsuccess'] = 'КориÑтувача Ñтворено. Пароль відправлено на e-mail.'; $lang['regsuccess2'] = 'КориÑтувача Ñтворено.'; +$lang['regfail'] = 'КориÑтувач не Ñтворений'; $lang['regmailfail'] = 'При відправленні Ð¿Ð°Ñ€Ð¾Ð»Ñ ÑталаÑÑŒ помилка. Зв’ÑжітьÑÑ Ð· адмініÑтратором!'; $lang['regbadmail'] = 'Схоже, що адреÑа e-mail невірна - Ñкщо ви вважаєте, що це помилка, зв’ÑжітьÑÑ Ð· адмініÑтратором'; $lang['regbadpass'] = 'Ðадані паролі не Ñпівпадають, Ñпробуйте ще раз.'; @@ -83,6 +89,8 @@ $lang['profnochange'] = 'Ðемає змін, немає що роби $lang['profnoempty'] = 'Ð†Ð¼â€™Ñ Ð°Ð±Ð¾ e-mail не можуть бути пуÑтими.'; $lang['profchanged'] = 'Профіль уÑпішно змінено.'; $lang['profdeleteuser'] = 'Видалити аккаунт'; +$lang['profdeleted'] = 'Ваш профіль кориÑтувача буде видалено з цієї wiki.'; +$lang['proffail'] = 'Профіль кориÑтувача не вдалоÑÑ Ð¿Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸.'; $lang['pwdforget'] = 'Забули пароль? Отримайте новий'; $lang['resendna'] = 'Ð¦Ñ Ð’Ñ–ÐºÑ– не підтримує повторне Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ.'; $lang['resendpwd'] = 'Ð’Ñтановити новий пароль длÑ'; @@ -98,6 +106,7 @@ $lang['searchmedia_in'] = 'Шукати у %s'; $lang['txt_upload'] = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ:'; $lang['txt_filename'] = 'Завантажити Ñк (не обов\'Ñзкове):'; $lang['txt_overwrt'] = 'ПерезапиÑати Ñ–Ñнуючий файл'; +$lang['maxuploadsize'] = 'Ð’Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимум %s на файл.'; $lang['lockedby'] = 'Заблоковано:'; $lang['lockexpire'] = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ð²:'; $lang['js']['willexpire'] = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñторінки закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· хвилину.\n Щоб уникнути конфліктів викориÑтовуйте кнопку переглÑду Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ.'; @@ -132,13 +141,18 @@ $lang['js']['nosmblinks'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° мережеві па $lang['js']['linkwiz'] = 'Чарівник поÑилань'; $lang['js']['linkto'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð°:'; $lang['js']['del_confirm'] = 'ДійÑно знищити обрані елементи?'; +$lang['js']['restore_confirm'] = 'ДійÑно відновити цю верÑÑ–ÑŽ?'; +$lang['js']['media_diff'] = 'ПереглÑнути різницю:'; +$lang['js']['media_diff_portions'] = 'Прогорнути'; +$lang['js']['media_select'] = 'Оберіть файли'; $lang['js']['media_upload_btn'] = 'Завантажити'; $lang['js']['media_done_btn'] = 'УÑпішно'; +$lang['js']['media_drop'] = 'ПеретÑгніть Ñюди файли Ð´Ð»Ñ Ð²Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ'; $lang['js']['media_cancel'] = 'видалити'; +$lang['js']['media_overwrt'] = 'ПерезапиÑати Ñ–Ñнуючі файли'; $lang['rssfailed'] = 'Виникла помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ RSS-Ñтрічки: '; $lang['nothingfound'] = 'Ðічого не знайдено.'; $lang['mediaselect'] = 'Вибір медіа-файлу'; -$lang['fileupload'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-файлу'; $lang['uploadsucc'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¹ÑˆÐ»Ð¾ уÑпішно'; $lang['uploadfail'] = 'Помилка при завантаженні. Можливо неправильні права?'; $lang['uploadwrong'] = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾. Таке Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ не дозволÑєтьÑÑ!'; @@ -172,11 +186,13 @@ $lang['difflink'] = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° цей ÑпиÑок з $lang['diff_type'] = 'ПереглÑнути відмінноÑті:'; $lang['diff_inline'] = 'Вбудувати'; $lang['diff_side'] = 'ПорÑд'; +$lang['diffprevrev'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ'; +$lang['diffnextrev'] = 'ÐаÑтупна ревізіÑ'; +$lang['difflastrev'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ'; $lang['line'] = 'Ð Ñдок'; $lang['breadcrumb'] = 'Відвідано:'; $lang['youarehere'] = 'Ви тут:'; $lang['lastmod'] = 'Ð’ оÑтаннє змінено:'; -$lang['by'] = ' '; $lang['deleted'] = 'знищено'; $lang['created'] = 'Ñтворено'; $lang['restored'] = 'відновлено Ñтару ревізію (%s)'; @@ -194,7 +210,9 @@ $lang['mail_changed'] = 'Ñторінку змінено:'; $lang['mail_subscribe_list'] = 'Ñторінки, що змінено у проÑторі імен:'; $lang['mail_new_user'] = 'новий кориÑтувач:'; $lang['mail_upload'] = 'завантажено файл:'; +$lang['changes_type'] = 'ПереглÑнути зміни '; $lang['pages_changes'] = 'Сторінок'; +$lang['media_changes'] = 'Медіа-файли'; $lang['qb_bold'] = 'Ðапівжирний текÑÑ‚'; $lang['qb_italic'] = 'КурÑив'; $lang['qb_underl'] = 'ПідкреÑлений текÑÑ‚'; @@ -220,11 +238,9 @@ $lang['qb_sig'] = 'Додати підпиÑ'; $lang['qb_smileys'] = 'ПоÑмішки'; $lang['qb_chars'] = 'Спеціальні Ñимволи'; $lang['upperns'] = 'Перейти до батьківÑького проÑтору імен'; -$lang['admin_register'] = 'Додати нового кориÑтувача'; $lang['metaedit'] = 'Редагувати метадані'; $lang['metasaveerr'] = 'Помилка запиÑу метаданих'; $lang['metasaveok'] = 'Метадані збережено'; -$lang['btn_img_backto'] = 'ПовернутиÑÑ Ð´Ð¾ %s'; $lang['img_title'] = 'Ðазва:'; $lang['img_caption'] = 'ПідпиÑ:'; $lang['img_date'] = 'Дата:'; @@ -235,6 +251,8 @@ $lang['img_copyr'] = 'ÐвторÑькі права:'; $lang['img_format'] = 'Формат:'; $lang['img_camera'] = 'Камера:'; $lang['img_keywords'] = 'Ключові Ñлова:'; +$lang['img_width'] = 'Ширини:'; +$lang['img_height'] = 'ВиÑота:'; $lang['subscr_subscribe_success'] = 'Додано %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s'; $lang['subscr_subscribe_error'] = 'Помилка при додавані %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s'; $lang['subscr_subscribe_noaddress'] = 'Ðемає адреÑи, аÑоційованої з Вашим логіном, тому Ви не можете бути додані до ÑпиÑку підпиÑки.'; @@ -277,6 +295,7 @@ $lang['i_pol1'] = 'Публічна Вікі (Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð» $lang['i_pol2'] = 'Закрита Вікі (читаннÑ, Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÑ”Ñтрованих кориÑтувачів)'; $lang['i_retry'] = 'Повторити'; $lang['i_license'] = 'Будь лаÑка, виберіть тип ліцензії, під Ñкою Ð’Ñ– бажаєте опублікувати матеріал:'; +$lang['i_license_none'] = 'Ðе показувати жодної інформації про ліцензії.'; $lang['recent_global'] = 'Ви переглÑдаєте зміни в межах проÑтору імен <b>%s</b>. Також можна <a href="%s">переглÑнути зміни в межах уÑієї Вікі</a>.'; $lang['years'] = '%d років тому'; $lang['months'] = '%d міÑÑців тому'; @@ -286,4 +305,19 @@ $lang['hours'] = '%d годин тому'; $lang['minutes'] = '%d хвилин тому'; $lang['seconds'] = '%d Ñекунд тому'; $lang['wordblock'] = 'Ваші зміни не збережено, тому що вони розпізнані Ñк такі, що міÑÑ‚Ñть заблокований текÑÑ‚(Ñпам).'; -$lang['email_signature'] = 'Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з'; +$lang['email_signature'] = 'Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з'; +$lang['media_searchtab'] = 'Пошук'; +$lang['media_file'] = 'Файл'; +$lang['media_viewtab'] = 'ОглÑд'; +$lang['media_edittab'] = 'Редагувати'; +$lang['media_historytab'] = 'ІÑторіÑ'; +$lang['media_sort_name'] = 'Ім’Ñ'; +$lang['media_sort_date'] = 'Дата'; +$lang['media_meta_edited'] = 'метаданні відредаговано'; +$lang['media_perm_read'] = 'Вибачте, у Ð²Ð°Ñ Ð½Ðµ доÑтатньо прав Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу.'; +$lang['media_update'] = 'Завантажити нову верÑÑ–ÑŽ'; +$lang['media_restore'] = 'Відновити цю верÑÑ–ÑŽ'; +$lang['currentns'] = 'Поточний діапазон імен'; +$lang['searchresult'] = 'Результати пошуку'; +$lang['plainhtml'] = 'ПроÑтий HTML'; +$lang['wikimarkup'] = 'Wiki розмітка'; diff --git a/inc/lang/uk/resetpwd.txt b/inc/lang/uk/resetpwd.txt new file mode 100644 index 0000000000000000000000000000000000000000..b24e88473749b9bb3c0ee8b4d5f6a98944464f0d --- /dev/null +++ b/inc/lang/uk/resetpwd.txt @@ -0,0 +1,3 @@ +====== Ð’Ñтановити новий пароль ====== + +Будь-лаÑка, введіть новий пароль Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— wiki. \ No newline at end of file diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index e755de8ba404cda87e99edf9424cd92b6947e131..02e790bd40fb8f514c39b0c4df1500ade0d522c0 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -130,7 +130,6 @@ $lang['js']['media_overwrt'] = 'Ghi đè các file trùng'; $lang['rssfailed'] = 'Nguồn nà y gặp phải lá»—i'; $lang['nothingfound'] = 'Không tìm được gì'; $lang['mediaselect'] = 'Xem'; -$lang['fileupload'] = 'Tải lên tệp media'; $lang['uploadsucc'] = 'Tải lên thà nh công'; $lang['uploadfail'] = 'Tải lên thất bại. Có thể vì không đủ quyá»n?'; $lang['uploadwrong'] = 'Tải lên bị từ chối. Cấm tải loại tệp nà y'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index 4ad5d04be9318f1dffed8f90a69b283f4d0f77eb..b3364b99d829ebd57bda169e9182d91355be2574 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -16,6 +16,7 @@ * @author Stan <talktostan@gmail.com> * @author June-Hao Hou <junehao@gmail.com> * @author lioujheyu <lioujheyu@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -47,7 +48,6 @@ $lang['btn_update'] = 'æ›´æ–°è¨å®š'; $lang['btn_delete'] = '刪除'; $lang['btn_back'] = '回上一æ¥'; $lang['btn_backlink'] = 'åå‘連çµ'; -$lang['btn_backtomedia'] = '釿–°é¸æ“‡åœ–檔'; $lang['btn_subscribe'] = '訂閱更動通知'; $lang['btn_profile'] = '更新個人資料'; $lang['btn_reset'] = '資料é‡è¨'; @@ -159,7 +159,6 @@ $lang['js']['media_overwrt'] = '覆蓋已å˜åœ¨çš„æª”案'; $lang['rssfailed'] = 'æ“·å– RSS 饋逿ª”時發生錯誤:'; $lang['nothingfound'] = 'æ²’æ‰¾åˆ°ä»»ä½•çµæžœã€‚'; $lang['mediaselect'] = '媒體檔案'; -$lang['fileupload'] = '上傳媒體檔案'; $lang['uploadsucc'] = '已上傳'; $lang['uploadfail'] = '無法上傳。是å¦å› 權é™éŒ¯èª¤ï¼Ÿ'; $lang['uploadwrong'] = '拒絕上傳。這個副檔åè¢«ç¦æ¢äº†ï¼'; @@ -250,7 +249,6 @@ $lang['qb_sig'] = 'æ’入簽å'; $lang['qb_smileys'] = '表情符號'; $lang['qb_chars'] = '特殊å—å…ƒ'; $lang['upperns'] = 'å‰å¾€çˆ¶åˆ†é¡žå稱'; -$lang['admin_register'] = '新增使用者'; $lang['metaedit'] = '編輯後è¨è³‡æ–™'; $lang['metasaveerr'] = '後è¨è³‡æ–™ç„¡æ³•寫入'; $lang['metasaveok'] = '後è¨è³‡æ–™å·²å„²å˜'; @@ -283,7 +281,6 @@ $lang['subscr_style_every'] = 'æ¯æ¬¡æ›´æ”¹éƒ½ç™¼é€ä¿¡ä»¶'; $lang['subscr_style_digest'] = 'å°æ¯å€‹é é¢ç™¼é€æ›´æ”¹çš„æ‘˜è¦ä¿¡ä»¶ (æ¯ %.2f 天)'; $lang['subscr_style_list'] = '自上次發信以來更改的é é¢çš„列表 (æ¯ %.2f 天)'; $lang['authtempfail'] = 'æš«ä¸æä¾›å¸³è™Ÿèªè‰ã€‚è‹¥æœ¬ç‹€æ³æŒçºŒï¼Œè«‹é€šçŸ¥æœ¬ wiki 管ç†å“¡ã€‚'; -$lang['authpwdexpire'] = '您的密碼將在 %d å¤©å…§åˆ°æœŸï¼Œè«‹é¦¬ä¸Šæ›´æ›æ–°å¯†ç¢¼ã€‚'; $lang['i_chooselang'] = '鏿“‡æ‚¨çš„語系'; $lang['i_installer'] = 'DokuWiki 安è£å·¥å…·'; $lang['i_wikiname'] = '本 wiki çš„å稱'; @@ -300,8 +297,8 @@ $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> 之剿‰‹å‹•ä¿®æ£å®ƒå€‘。'; +<a href="doku.php?id=wiki:welcome">您的新 DokuWiki</a>.'; +$lang['i_failure'] = '寫入è¨å®šæª”æ™‚ç™¼ç”Ÿäº†ä¸€äº›éŒ¯èª¤ã€‚æ‚¨å¿…é ˆåœ¨ä½¿ç”¨<a href="doku.php?id=wiki:welcome">您的新 Dokuwiki</a> 之剿‰‹å‹•ä¿®æ£å®ƒå€‘。'; $lang['i_policy'] = 'åˆæ¥çš„ ACL 政ç–'; $lang['i_pol0'] = '開放的 wiki (任何人å¯è®€å–ã€å¯«å…¥ã€ä¸Šå‚³)'; $lang['i_pol1'] = '公開的 wiki (任何人å¯è®€å–,註冊使用者å¯å¯«å…¥èˆ‡ä¸Šå‚³)'; diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index 6360b9f70a23702b3a7ab2e379770b0605326774..7a8533815a961a453117872af73da2a8b73c4c39 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -24,6 +24,8 @@ * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> * @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de> + * @author Errol <errol@hotmail.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,7 +57,6 @@ $lang['btn_update'] = 'æ›´æ–°'; $lang['btn_delete'] = 'åˆ é™¤'; $lang['btn_back'] = '返回'; $lang['btn_backlink'] = 'åå‘链接'; -$lang['btn_backtomedia'] = '返回到媒体文件选择工具'; $lang['btn_subscribe'] = '订阅本页更改'; $lang['btn_profile'] = '更新个人信æ¯'; $lang['btn_reset'] = 'é‡è®¾'; @@ -90,6 +91,7 @@ $lang['regmissing'] = '对ä¸èµ·ï¼Œæ‚¨å¿…é¡»å¡«å†™æ‰€æœ‰çš„å—æ®µã€‚' $lang['reguexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; $lang['regsuccess'] = '新用户已建立,密ç 将通过电å邮件å‘é€ç»™æ‚¨ã€‚'; $lang['regsuccess2'] = '新用户已建立'; +$lang['regfail'] = '用户ä¸èƒ½è¢«åˆ›å»ºã€‚'; $lang['regmailfail'] = 'å‘é€å¯†ç 邮件时产生错误。请è”系管ç†å‘˜ï¼'; $lang['regbadmail'] = 'æ‚¨è¾“å…¥çš„é‚®ä»¶åœ°å€æœ‰é—®é¢˜â€”—如果您认为这是系统错误,请è”系管ç†å‘˜ã€‚'; $lang['regbadpass'] = '您输入的密ç 与系统产生的ä¸ç¬¦ï¼Œè¯·é‡è¯•。'; @@ -104,6 +106,7 @@ $lang['profdeleteuser'] = 'åˆ é™¤è´¦å·'; $lang['profdeleted'] = 'ä½ çš„ç”¨æˆ·å·²ç»ä»Žè¿™ä¸ª wiki ä¸åˆ 除'; $lang['profconfdelete'] = 'æˆ‘å¸Œæœ›åˆ é™¤æˆ‘çš„è´¦æˆ·ã€‚<br/>这项æ“ä½œæ— æ³•æ’¤é”€ã€‚'; $lang['profconfdeletemissing'] = '确认框未勾选'; +$lang['proffail'] = '用户设置没有更新。'; $lang['pwdforget'] = '忘记密ç ?立å³èŽ·å–æ–°å¯†ç '; $lang['resendna'] = 'æœ¬ç»´åŸºä¸æ”¯æŒäºŒæ¬¡å‘é€å¯†ç 。'; $lang['resendpwd'] = '设置新密ç 用于'; @@ -168,7 +171,6 @@ $lang['js']['media_overwrt'] = '覆盖已å˜åœ¨çš„æ–‡ä»¶'; $lang['rssfailed'] = '获å–该 RSS ä¿¡æ¯æ—¶äº§ç”Ÿé”™è¯¯ï¼š'; $lang['nothingfound'] = '什么都没有找到。'; $lang['mediaselect'] = '媒体文件'; -$lang['fileupload'] = 'ä¸Šä¼ åª’ä½“æ–‡ä»¶'; $lang['uploadsucc'] = 'ä¸Šä¼ æˆåŠŸ'; $lang['uploadfail'] = 'ä¸Šä¼ å¤±è´¥ã€‚ä¹Ÿè®¸æ˜¯ä¸Šä¼ æƒé™é”™è¯¯ã€‚'; $lang['uploadwrong'] = 'ä¸Šä¼ å¤±è´¥ã€‚è¯¥æ‰©å±•åè¢«ç¦æ¢ã€‚'; @@ -259,7 +261,6 @@ $lang['qb_sig'] = 'æ’å…¥ç¾å'; $lang['qb_smileys'] = '表情符å·'; $lang['qb_chars'] = '特殊å—符'; $lang['upperns'] = '跳转到父级å空间'; -$lang['admin_register'] = 'æ·»åŠ æ–°ç”¨æˆ·'; $lang['metaedit'] = '编辑元数æ®'; $lang['metasaveerr'] = '写入元数æ®å¤±è´¥'; $lang['metasaveok'] = '元数æ®å·²ä¿å˜'; @@ -292,7 +293,6 @@ $lang['subscr_style_every'] = 'å¯¹æ¯æ¬¡æ›´æ”¹å‘é€é‚®ä»¶'; $lang['subscr_style_digest'] = '对æ¯ä¸ªé¡µé¢å‘逿›´æ”¹çš„æ‘˜è¦é‚®ä»¶ï¼ˆæ¯ %.2f 天)'; $lang['subscr_style_list'] = '自上å°é‚®ä»¶ä»¥æ¥æ›´æ”¹çš„页é¢çš„åˆ—è¡¨ï¼ˆæ¯ %.2f 天)'; $lang['authtempfail'] = 'ç”¨æˆ·è®¤è¯æš‚æ—¶æ— 法使用。如果该状æ€ä¸€ç›´å˜åœ¨ï¼Œè¯·é€šçŸ¥ç»´åŸºç®¡ç†å‘˜ã€‚'; -$lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; $lang['i_chooselang'] = '选择您的è¯è¨€'; $lang['i_installer'] = 'DokuWiki 安装工具'; $lang['i_wikiname'] = '维基åç§°'; @@ -356,6 +356,7 @@ $lang['media_perm_read'] = '抱æ‰ï¼Œæ‚¨æ²¡æœ‰è¶³å¤Ÿæƒé™è¯»å–这些文 $lang['media_perm_upload'] = '抱æ‰ï¼Œæ‚¨æ²¡æœ‰è¶³å¤Ÿæƒé™æ¥ä¸Šä¼ 文件。'; $lang['media_update'] = 'ä¸Šä¼ æ–°ç‰ˆæœ¬'; $lang['media_restore'] = 'æ¢å¤è¿™ä¸ªç‰ˆæœ¬'; +$lang['media_acl_warning'] = 'æ¤åˆ—表å¯èƒ½ä¸å®Œå…¨æ˜¯ç”±ACLé™åˆ¶å’Œéšè—的页é¢ã€‚'; $lang['currentns'] = '当å‰å‘½å空间'; $lang['searchresult'] = 'æœç´¢ç»“æžœ'; $lang['plainhtml'] = '纯HTML'; diff --git a/inc/load.php b/inc/load.php index 18786dc79c56805cd69827c4382c84e11fc62d35..99e004b23ec577e2198540bb4dade4e6ddd97d30 100644 --- a/inc/load.php +++ b/inc/load.php @@ -70,9 +70,7 @@ function load_autoload($name){ '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', 'Tar' => DOKU_INC.'inc/Tar.class.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', @@ -109,8 +107,15 @@ function load_autoload($name){ ); if(isset($classes[$name])){ - require_once($classes[$name]); - return; + require ($classes[$name]); + return true; + } + + // our own namespace + $name = str_replace('\\', '/', $name); + if(substr($name, 0, 9) == 'dokuwiki/') { + require substr($name, 9) . '.php'; + return true; } // Plugin loading @@ -120,9 +125,10 @@ function load_autoload($name){ $c = ((count($m) === 4) ? "/{$m[3]}" : ''); $plg = DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php"; if(file_exists($plg)){ - include_once DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php"; + require $plg; } - return; + return true; } + return false; } diff --git a/inc/mail.php b/inc/mail.php index 9f1b1f3d633d5047acbfb0f98310127422b346e7..e4d06fd8625c8b5606fbbfd28cb803a1667faaf3 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -96,15 +96,23 @@ function mail_setup(){ * * @author Andreas Gohr <andi@splitbrain.org> * @see mail() + * + * @deprecated User the Mailer:: class instead */ function mail_send($to, $subject, $body, $from='', $cc='', $bcc='', $headers=null, $params=null){ - + dbg_deprecated('class Mailer::'); $message = compact('to','subject','body','from','cc','bcc','headers','params'); return trigger_event('MAIL_MESSAGE_SEND',$message,'_mail_send_action'); } +/** + * @param $data + * @return bool + * + * @deprecated User the Mailer:: class instead + */ function _mail_send_action($data) { - + dbg_deprecated('class Mailer::'); // retrieve parameters from event data, $to, $subject, $body, $from, $cc, $bcc, $headers, $params $to = $data['to']; $subject = $data['subject']; @@ -177,8 +185,11 @@ function _mail_send_action($data) { * @param string $string Multiple adresses separated by commas * @param string $header Name of the header (To,Bcc,Cc,...) * @param boolean $names Allow named Recipients? + * + * @deprecated User the Mailer:: class instead */ function mail_encode_address($string,$header='',$names=true){ + dbg_deprecated('class Mailer::'); $headers = ''; $parts = explode(',',$string); foreach ($parts as $part){ diff --git a/inc/media.php b/inc/media.php index 81081d5dc9cf7e96a832992f204bd0f61889a6c7..e9fff14895e09fd7de578461f021a44a4aad6e53 100644 --- a/inc/media.php +++ b/inc/media.php @@ -1860,7 +1860,6 @@ function media_searchform($ns,$query='',$fullscreen=false){ $form->addHidden('ns', $ns); $form->addHidden($fullscreen ? 'mediado' : 'do', 'searchlist'); - if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>'.NL); $form->addElement(form_makeOpenTag('p')); $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*')))); $form->addElement(form_makeButton('submit', '', $lang['btn_search'])); diff --git a/inc/pageutils.php b/inc/pageutils.php index 3757126610c259f8b26de4e867b60a120d2fe1bd..a5bf039d50215548416701516afb25906a3f6006 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -243,7 +243,6 @@ function sectionID($title,&$check) { return $title; } - /** * Wiki page existence check * @@ -251,9 +250,10 @@ function sectionID($title,&$check) { * * @author Chris Smith <chris@jalakai.co.uk> * - * @param string $id page id - * @param string|int $rev empty or revision timestamp - * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well) + * @param string $id page id + * @param string|int $rev empty or revision timestamp + * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well) + * @param bool $date_at * @return bool exists? */ function page_exists($id,$rev='',$clean=true, $date_at=false) { @@ -489,9 +489,11 @@ function resolve_id($ns,$id,$clean=true){ * * @author Andreas Gohr <andi@splitbrain.org> * - * @param string $ns namespace which is context of id - * @param string &$page (reference) relative media id, updated to resolved id - * @param bool &$exists (reference) updated with existance of media + * @param string $ns namespace which is context of id + * @param string &$page (reference) relative media id, updated to resolved id + * @param bool &$exists (reference) updated with existance of media + * @param int|string $rev + * @param bool $date_at */ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ $page = resolve_id($ns,$page); @@ -502,7 +504,7 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ $rev = $medialog_rev; } } - + $file = mediaFN($page,$rev); $exists = file_exists($file); } @@ -512,9 +514,11 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ * * @author Andreas Gohr <andi@splitbrain.org> * - * @param string $ns namespace which is context of id - * @param string &$page (reference) relative page id, updated to resolved id - * @param bool &$exists (reference) updated with existance of media + * @param string $ns namespace which is context of id + * @param string &$page (reference) relative page id, updated to resolved id + * @param bool &$exists (reference) updated with existance of media + * @param string $rev + * @param bool $date_at */ function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){ global $conf; diff --git a/inc/parser/handler.php b/inc/parser/handler.php index b8e2de82ae48f372e4d6faf1b878b00d444bc2ba..815ac39c5d343dd57c16a992b504c5f21cd72182 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -17,7 +17,7 @@ class Doku_Handler { var $rewriteBlocks = true; - function Doku_Handler() { + function __construct() { $this->CallWriter = new Doku_Handler_CallWriter($this); } @@ -295,7 +295,7 @@ class Doku_Handler { switch ( $state ) { case DOKU_LEXER_ENTER: $ReWriter = new Doku_Handler_Preformatted($this->CallWriter); - $this->CallWriter = & $ReWriter; + $this->CallWriter = $ReWriter; $this->_addCall('preformatted_start',array(), $pos); break; case DOKU_LEXER_EXIT: @@ -715,15 +715,21 @@ function Doku_Handler_Parse_Media($match) { } //------------------------------------------------------------------------ -class Doku_Handler_CallWriter { +interface Doku_Handler_CallWriter_Interface { + public function writeCall($call); + public function writeCalls($calls); + public function finalise(); +} + +class Doku_Handler_CallWriter implements Doku_Handler_CallWriter_Interface { var $Handler; /** * @param Doku_Handler $Handler */ - function Doku_Handler_CallWriter(& $Handler) { - $this->Handler = & $Handler; + function __construct(Doku_Handler $Handler) { + $this->Handler = $Handler; } function writeCall($call) { @@ -748,7 +754,7 @@ class Doku_Handler_CallWriter { * * @author Chris Smith <chris@jalakai.co.uk> */ -class Doku_Handler_Nest { +class Doku_Handler_Nest implements Doku_Handler_CallWriter_Interface { var $CallWriter; var $calls = array(); @@ -762,8 +768,8 @@ class Doku_Handler_Nest { * @param string $close closing instruction name, this is required to properly terminate the * syntax mode if the document ends without a closing pattern */ - function Doku_Handler_Nest(& $CallWriter, $close="nest_close") { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter, $close="nest_close") { + $this->CallWriter = $CallWriter; $this->closingInstruction = $close; } @@ -808,7 +814,7 @@ class Doku_Handler_Nest { } } -class Doku_Handler_List { +class Doku_Handler_List implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -818,8 +824,8 @@ class Doku_Handler_List { const NODE = 1; - function Doku_Handler_List(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1018,7 +1024,7 @@ class Doku_Handler_List { } //------------------------------------------------------------------------ -class Doku_Handler_Preformatted { +class Doku_Handler_Preformatted implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1028,8 +1034,8 @@ class Doku_Handler_Preformatted { - function Doku_Handler_Preformatted(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1078,7 +1084,7 @@ class Doku_Handler_Preformatted { } //------------------------------------------------------------------------ -class Doku_Handler_Quote { +class Doku_Handler_Quote implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1086,8 +1092,8 @@ class Doku_Handler_Quote { var $quoteCalls = array(); - function Doku_Handler_Quote(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1170,7 +1176,7 @@ class Doku_Handler_Quote { } //------------------------------------------------------------------------ -class Doku_Handler_Table { +class Doku_Handler_Table implements Doku_Handler_CallWriter_Interface { var $CallWriter; @@ -1185,8 +1191,8 @@ class Doku_Handler_Table { var $currentRow = array('tableheader' => 0, 'tablecell' => 0); var $countTableHeadRows = 0; - function Doku_Handler_Table(& $CallWriter) { - $this->CallWriter = & $CallWriter; + function __construct(Doku_Handler_CallWriter_Interface $CallWriter) { + $this->CallWriter = $CallWriter; } function writeCall($call) { @@ -1551,7 +1557,7 @@ class Doku_Handler_Block { * * @author Andreas Gohr <andi@splitbrain.org> */ - function Doku_Handler_Block(){ + function __construct(){ global $DOKU_PLUGINS; //check if syntax plugins were loaded if(empty($DOKU_PLUGINS['syntax'])) return; diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php index b46a5f505c38207dfefd6c2295482cba64773d49..17aa6c17058671c20b3c188b1bd3567b4711911d 100644 --- a/inc/parser/lexer.php +++ b/inc/parser/lexer.php @@ -46,7 +46,7 @@ class Doku_LexerParallelRegex { * for insensitive. * @access public */ - function Doku_LexerParallelRegex($case) { + function __construct($case) { $this->_case = $case; $this->_patterns = array(); $this->_labels = array(); @@ -232,7 +232,7 @@ class Doku_LexerStateStack { * @param string $start Starting state name. * @access public */ - function Doku_LexerStateStack($start) { + function __construct($start) { $this->_stack = array($start); } @@ -296,11 +296,11 @@ class Doku_Lexer { * @param boolean $case True for case sensitive. * @access public */ - function Doku_Lexer(&$parser, $start = "accept", $case = false) { + function __construct($parser, $start = "accept", $case = false) { $this->_case = $case; /** @var Doku_LexerParallelRegex[] _regexes */ $this->_regexes = array(); - $this->_parser = &$parser; + $this->_parser = $parser; $this->_mode = new Doku_LexerStateStack($start); $this->_mode_handlers = array(); } diff --git a/inc/parser/parser.php b/inc/parser/parser.php index 5f86cf5c4ebf8be1505d1520936fae62cd0c5066..7814e94f6104b11647e9016fd9cc573d28e11a23 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -64,24 +64,24 @@ class Doku_Parser { /** * @param Doku_Parser_Mode_base $BaseMode */ - function addBaseMode(& $BaseMode) { - $this->modes['base'] =& $BaseMode; + function addBaseMode($BaseMode) { + $this->modes['base'] = $BaseMode; if ( !$this->Lexer ) { $this->Lexer = new Doku_Lexer($this->Handler,'base', true); } - $this->modes['base']->Lexer =& $this->Lexer; + $this->modes['base']->Lexer = $this->Lexer; } /** * PHP preserves order of associative elements * Mode sequence is important */ - function addMode($name, & $Mode) { + function addMode($name, Doku_Parser_Mode_Interface $Mode) { if ( !isset($this->modes['base']) ) { $this->addBaseMode(new Doku_Parser_Mode_base()); } - $Mode->Lexer = & $this->Lexer; - $this->modes[$name] =& $Mode; + $Mode->Lexer = $this->Lexer; + $this->modes[$name] = $Mode; } function connectModes() { @@ -226,7 +226,7 @@ class Doku_Parser_Mode_Plugin extends DokuWiki_Plugin implements Doku_Parser_Mod //------------------------------------------------------------------- class Doku_Parser_Mode_base extends Doku_Parser_Mode { - function Doku_Parser_Mode_base() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -248,7 +248,7 @@ class Doku_Parser_Mode_base extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_footnote extends Doku_Parser_Mode { - function Doku_Parser_Mode_footnote() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -416,7 +416,7 @@ class Doku_Parser_Mode_formatting extends Doku_Parser_Mode { /** * @param string $type */ - function Doku_Parser_Mode_formatting($type) { + function __construct($type) { global $PARSER_MODES; if ( !array_key_exists($type, $this->formatting) ) { @@ -470,7 +470,7 @@ class Doku_Parser_Mode_formatting extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { - function Doku_Parser_Mode_listblock() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -504,7 +504,7 @@ class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_table extends Doku_Parser_Mode { - function Doku_Parser_Mode_table() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -648,7 +648,7 @@ class Doku_Parser_Mode_file extends Doku_Parser_Mode { //------------------------------------------------------------------- class Doku_Parser_Mode_quote extends Doku_Parser_Mode { - function Doku_Parser_Mode_quote() { + function __construct() { global $PARSER_MODES; $this->allowedModes = array_merge ( @@ -682,7 +682,7 @@ class Doku_Parser_Mode_acronym extends Doku_Parser_Mode { var $acronyms = array(); var $pattern = ''; - function Doku_Parser_Mode_acronym($acronyms) { + function __construct($acronyms) { usort($acronyms,array($this,'_compare')); $this->acronyms = $acronyms; } @@ -729,7 +729,7 @@ class Doku_Parser_Mode_smiley extends Doku_Parser_Mode { var $smileys = array(); var $pattern = ''; - function Doku_Parser_Mode_smiley($smileys) { + function __construct($smileys) { $this->smileys = $smileys; } @@ -762,7 +762,7 @@ class Doku_Parser_Mode_wordblock extends Doku_Parser_Mode { var $badwords = array(); var $pattern = ''; - function Doku_Parser_Mode_wordblock($badwords) { + function __construct($badwords) { $this->badwords = $badwords; } @@ -797,7 +797,7 @@ class Doku_Parser_Mode_entity extends Doku_Parser_Mode { var $entities = array(); var $pattern = ''; - function Doku_Parser_Mode_entity($entities) { + function __construct($entities) { $this->entities = $entities; } diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 35bdd0e3f5a4a748396ba1dec8fec07b5555d4d3..d7a3faef88fde27ff39ad214eba717f8ce9aee23 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -806,18 +806,26 @@ class Doku_Renderer extends DokuWiki_Plugin { $url = $this->interwiki[$shortcut]; } else { // Default to Google I'm feeling lucky - $url = 'http://www.google.com/search?q={URL}&btnI=lucky'; + $url = 'https://www.google.com/search?q={URL}&btnI=lucky'; $shortcut = 'go'; } //split into hash and url part - @list($reference, $hash) = explode('#', $reference, 2); + $hash = strrchr($reference, '#'); + if($hash) { + $reference = substr($reference, 0, -strlen($hash)); + $hash = substr($hash, 1); + } //replace placeholder if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#', $url)) { //use placeholders $url = str_replace('{URL}', rawurlencode($reference), $url); - $url = str_replace('{NAME}', $reference, $url); + //wiki names will be cleaned next, otherwise urlencode unsafe chars + $url = str_replace('{NAME}', ($url{0} === ':') ? $reference : + preg_replace_callback('/[[\\\\\]^`{|}#%]/', function($match) { + return rawurlencode($match[0]); + }, $reference), $url); $parsed = parse_url($reference); if(!$parsed['port']) $parsed['port'] = 80; $url = str_replace('{SCHEME}', $parsed['scheme'], $url); diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index d1bf91a02fc5a0791d025ceda689ccdee4226ffb..9d7613f32cbd7e0565f2e2a1e42e204aa2ab2487 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -761,27 +761,40 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Render a CamelCase link * - * @param string $link The link name + * @param string $link The link name + * @param bool $returnonly whether to return html or write to doc attribute * @see http://en.wikipedia.org/wiki/CamelCase */ - function camelcaselink($link) { - $this->internallink($link, $link); + function camelcaselink($link, $returnonly = false) { + if($returnonly) { + return $this->internallink($link, $link, null, true); + } else { + $this->internallink($link, $link); + } } /** * Render a page local link * - * @param string $hash hash link identifier - * @param string $name name for the link + * @param string $hash hash link identifier + * @param string $name name for the link + * @param bool $returnonly whether to return html or write to doc attribute */ - function locallink($hash, $name = null) { + function locallink($hash, $name = null, $returnonly = false) { global $ID; $name = $this->_getLinkTitle($name, $hash, $isImage); $hash = $this->_headerToLink($hash); $title = $ID.' ↵'; - $this->doc .= '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">'; - $this->doc .= $name; - $this->doc .= '</a>'; + + $doc = '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">'; + $doc .= $name; + $doc .= '</a>'; + + if($returnonly) { + return $doc; + } else { + $this->doc .= $doc; + } } /** @@ -884,10 +897,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { /** * Render an external link * - * @param string $url full URL with scheme - * @param string|array $name name for the link, array for media file + * @param string $url full URL with scheme + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function externallink($url, $name = null) { + function externallink($url, $name = null, $returnonly = false) { global $conf; $name = $this->_getLinkTitle($name, $url, $isImage); @@ -900,7 +914,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // is there still an URL? if(!$url) { - $this->doc .= $name; + if($returnonly) { + return $name; + } else { + $this->doc .= $name; + } return; } @@ -926,7 +944,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if($conf['relnofollow']) $link['more'] .= ' rel="nofollow"'; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -934,12 +956,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * You may want to use $this->_resolveInterWiki() here * - * @param string $match original link - probably not much use - * @param string|array $name name for the link, array for media file - * @param string $wikiName indentifier (shortcut) for the remote wiki - * @param string $wikiUri the fragment parsed from the original link + * @param string $match original link - probably not much use + * @param string|array $name name for the link, array for media file + * @param string $wikiName indentifier (shortcut) for the remote wiki + * @param string $wikiUri the fragment parsed from the original link + * @param bool $returnonly whether to return html or write to doc attribute */ - function interwikilink($match, $name = null, $wikiName, $wikiUri) { + function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) { global $conf; $link = array(); @@ -977,16 +1000,21 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = htmlspecialchars($link['url']); //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** * Link to windows share * - * @param string $url the link - * @param string|array $name name for the link, array for media file + * @param string $url the link + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function windowssharelink($url, $name = null) { + function windowssharelink($url, $name = null, $returnonly = false) { global $conf; //simple setup @@ -1005,12 +1033,15 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = $this->_xmlEntities($url); $url = str_replace('\\', '/', $url); - $url = ltrim($url,'/'); $url = 'file:///'.$url; $link['url'] = $url; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** @@ -1018,10 +1049,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * * Honors $conf['mailguard'] setting * - * @param string $address Email-Address - * @param string|array $name name for the link, array for media file + * @param string $address Email-Address + * @param string|array $name name for the link, array for media file + * @param bool $returnonly whether to return html or write to doc attribute */ - function emaillink($address, $name = null) { + function emaillink($address, $name = null, $returnonly = false) { global $conf; //simple setup $link = array(); @@ -1053,7 +1085,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['title'] = $title; //output formatted - $this->doc .= $this->_formatLink($link); + if($returnonly) { + return $this->_formatLink($link); + } else { + $this->doc .= $this->_formatLink($link); + } } /** diff --git a/inc/parserutils.php b/inc/parserutils.php index 17c331ef5a9dc6b57901736f04695ef95b004047..5b96d39feba76a558d2189d6323319516aa4d92a 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -121,15 +121,21 @@ function p_cached_output($file, $format='xhtml', $id='') { $cache = new cache_renderer($id, $file, $format); if ($cache->useCache()) { $parsed = $cache->retrieveCache(false); - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n"; + } } else { $parsed = p_render($format, p_cached_instructions($file,false,$id), $info); if ($info['cache'] && $cache->storeCache($parsed)) { // storeCache() attempts to save cachefile - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n"; + } }else{ $cache->removeCache(); //try to delete cachefile - if($conf['allowdebug'] && $format=='xhtml') $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n"; + if($conf['allowdebug'] && $format=='xhtml') { + $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n"; + } } } @@ -616,8 +622,9 @@ function p_sort_modes($a, $b){ * @author Andreas Gohr <andi@splitbrain.org> * * @param string $mode - * @param array|null|false $instructions - * @param array $info returns render info like enabled toc and cache + * @param array|null|false $instructions + * @param array $info returns render info like enabled toc and cache + * @param string $date_at * @return null|string rendered output */ function p_render($mode,$instructions,&$info,$date_at=''){ @@ -632,7 +639,7 @@ function p_render($mode,$instructions,&$info,$date_at=''){ if($date_at) { $Renderer->date_at = $date_at; } - + $Renderer->smileys = getSmileys(); $Renderer->entities = getEntities(); $Renderer->acronyms = getAcronyms(); @@ -746,14 +753,13 @@ function p_xhtml_cached_geshi($code, $language, $wrapper='pre') { $cache = getCacheName($language.$code,".code"); $ctime = @filemtime($cache); if($ctime && !$INPUT->bool('purge') && - $ctime > filemtime(DOKU_INC.'inc/geshi.php') && // geshi changed - $ctime > @filemtime(DOKU_INC.'inc/geshi/'.$language.'.php') && // language syntax definition changed + $ctime > filemtime(DOKU_INC.'vendor/composer/installed.json') && // libraries changed $ctime > filemtime(reset($config_cascade['main']['default']))){ // dokuwiki changed $highlighted_code = io_readFile($cache, false); } else { - $geshi = new GeSHi($code, $language, DOKU_INC . 'inc/geshi'); + $geshi = new GeSHi($code, $language); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); $geshi->set_header_type(GESHI_HEADER_PRE); diff --git a/inc/phpseclib/Crypt_AES.php b/inc/phpseclib/Crypt_AES.php index 81fa2feab66bc09569a807fbffbf470a4097b20c..f2df78351090d9138c7fca39a1a69012d46ef3ad 100644 --- a/inc/phpseclib/Crypt_AES.php +++ b/inc/phpseclib/Crypt_AES.php @@ -164,9 +164,9 @@ class Crypt_AES extends Crypt_Rijndael { * @param optional Integer $mode * @access public */ - function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + function __construct($mode = CRYPT_AES_MODE_CBC) { - parent::Crypt_Rijndael($mode); + parent::__construct($mode); } /** diff --git a/inc/phpseclib/Crypt_Base.php b/inc/phpseclib/Crypt_Base.php index 7c650ca729b1d93f5aeeae621498e98713b5cde6..4fb9990c75372e16c2a62d5f39b1c3ce91fe3bab 100644 --- a/inc/phpseclib/Crypt_Base.php +++ b/inc/phpseclib/Crypt_Base.php @@ -445,7 +445,7 @@ class Crypt_Base { * @param optional Integer $mode * @access public */ - function Crypt_Base($mode = CRYPT_MODE_CBC) + function __construct($mode = CRYPT_MODE_CBC) { $const_crypt_mode = 'CRYPT_' . $this->const_namespace . '_MODE'; diff --git a/inc/phpseclib/Crypt_Hash.php b/inc/phpseclib/Crypt_Hash.php index 840fcd5088fa4c8e64e5f572d948fda2a3d40610..61825d3c3936834324fa7ff87e88b8146aaf55d2 100644 --- a/inc/phpseclib/Crypt_Hash.php +++ b/inc/phpseclib/Crypt_Hash.php @@ -143,7 +143,7 @@ class Crypt_Hash { * @return Crypt_Hash * @access public */ - function Crypt_Hash($hash = 'sha1') + function __construct($hash = 'sha1') { if ( !defined('CRYPT_HASH_MODE') ) { switch (true) { diff --git a/inc/phpseclib/Crypt_Rijndael.php b/inc/phpseclib/Crypt_Rijndael.php index c63e0ff7e3f4c7ef07add63b4b72886ea0675c2a..33f42da173a5cd386136ae7b04823d9bfefc2018 100644 --- a/inc/phpseclib/Crypt_Rijndael.php +++ b/inc/phpseclib/Crypt_Rijndael.php @@ -699,9 +699,9 @@ class Crypt_Rijndael extends Crypt_Base { * @param optional Integer $mode * @access public */ - function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + function __construct($mode = CRYPT_RIJNDAEL_MODE_CBC) { - parent::Crypt_Base($mode); + parent::__construct($mode); } /** diff --git a/inc/pluginutils.php b/inc/pluginutils.php index 4d591869d53eaaad88f23b6960ff2484f9dd90d8..60f79869fa3a62633e15a7c58d070f81d3868963 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -103,3 +103,34 @@ function plugin_getcascade() { global $plugin_controller; return $plugin_controller->getCascade(); } + + +/** + * Return the currently operating admin plugin or null + * if not on an admin plugin page + * + * @return Doku_Plugin_Admin + */ +function plugin_getRequestAdminPlugin(){ + static $admin_plugin = false; + global $ACT,$INPUT,$INFO; + + if ($admin_plugin === false) { + if (($ACT == 'admin') && ($page = $INPUT->str('page', '', true)) != '') { + $pluginlist = plugin_list('admin'); + if (in_array($page, $pluginlist)) { + // attempt to load the plugin + /** @var $admin_plugin DokuWiki_Admin_Plugin */ + $admin_plugin = plugin_load('admin', $page); + // verify + if ($admin_plugin && $admin_plugin->forAdminOnly() && !$INFO['isadmin']) { + $admin_plugin = null; + $INPUT->remove('page'); + msg('For admins only',-1); + } + } + } + } + + return $admin_plugin; +} diff --git a/inc/remote.php b/inc/remote.php index 861353a190b74fb0d1a4f5e693ee6d5d565e5185..771d12d252901f6f1de5206e0715db7746e4eba0 100644 --- a/inc/remote.php +++ b/inc/remote.php @@ -234,6 +234,9 @@ class RemoteAPI { global $INPUT; if (!$conf['remote']) { + throw new RemoteAccessDeniedException('server error. RPC server not enabled.',-32604); //should not be here,just throw + } + if(trim($conf['remoteuser']) == '!!not set!!') { return false; } if(!$conf['useacl']) { diff --git a/inc/search.php b/inc/search.php index 935969d3f2fb2871b79e15c76826e07dddcbbb3b..cc3579c3c787d554b82cbd580d1d0bc1f46604ca 100644 --- a/inc/search.php +++ b/inc/search.php @@ -28,6 +28,11 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){ $files = array(); $filepaths = array(); + // safeguard against runaways #1452 + if($base == '' || $base == '/') { + throw new RuntimeException('No valid $base passed to search() - possible misconfiguration or bug'); + } + //read in directories and files $dh = @opendir($base.'/'.$dir); if(!$dh) return; diff --git a/inc/subscription.php b/inc/subscription.php index 8b6dcb27edb9ecd69488340a0a24cc18ca8f4f04..74bec656dd57bc41664470b44a47ac9103a6dc0d 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -691,19 +691,3 @@ class Subscription { $data['addresslist'] = trim($addresslist.','.implode(',', $result), ','); } } - -/** - * Compatibility wrapper around Subscription:notifyaddresses - * - * for plugins emitting COMMON_NOTIFY_ADDRESSLIST themselves and relying on on this to - * be the default handler - * - * @param array $data event data for - * - * @deprecated 2012-12-07 - */ -function subscription_addresslist(&$data) { - dbg_deprecated('class Subscription'); - $sub = new Subscription(); - $sub->notifyaddresses($data); -} diff --git a/inc/template.php b/inc/template.php index a4ace1a63728a0a658e1ea381284c7fc17d181ac..ec99742116e9fd90006b8fd36a9ba6e6e2b26e0f 100644 --- a/inc/template.php +++ b/inc/template.php @@ -218,18 +218,9 @@ function tpl_toc($return = false) { $toc = array(); } } elseif($ACT == 'admin') { - // try to load admin plugin TOC FIXME: duplicates code from tpl_admin - $plugin = null; - $class = $INPUT->str('page'); - if(!empty($class)) { - $pluginlist = plugin_list('admin'); - if(in_array($class, $pluginlist)) { - // attempt to load the plugin - /** @var $plugin DokuWiki_Admin_Plugin */ - $plugin = plugin_load('admin', $class); - } - } - if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) { + // try to load admin plugin TOC + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()) { $toc = $plugin->getTOC(); $TOC = $toc; // avoid later rebuild } @@ -306,15 +297,19 @@ function tpl_metaheaders($alt = true) { // prepare seed for js and css $tseed = $updateVersion; $depends = getConfigFiles('main'); + $depends[] = DOKU_CONF."tpl/".$conf['template']."/style.ini"; foreach($depends as $f) $tseed .= @filemtime($f); $tseed = md5($tseed); // 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'] - ); + if(actionOK('search')) { + $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( @@ -402,7 +397,7 @@ function tpl_metaheaders($alt = true) { // load stylesheets $head['link'][] = array( 'rel' => 'stylesheet', 'type'=> 'text/css', - 'href'=> DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed + 'href'=> DOKU_BASE.'lib/exe/css.php?t='.rawurlencode($conf['template']).'&tseed='.$tseed ); // make $INFO and other vars available to JavaScripts @@ -417,7 +412,7 @@ function tpl_metaheaders($alt = true) { // load external javascript $head['script'][] = array( 'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '', - 'src' => DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed + 'src' => DOKU_BASE.'lib/exe/js.php'.'?t='.rawurlencode($conf['template']).'&tseed='.$tseed ); // trigger event here @@ -655,6 +650,8 @@ function tpl_get_action($type) { $params = array('do' => $type); $nofollow = true; $replacement = ''; + + $unknown = false; switch($type) { case 'edit': // most complicated type - we need to decide on current action @@ -779,9 +776,23 @@ function tpl_get_action($type) { //$type = 'media'; break; default: - return '[unknown %s type]'; + //unknown type + $unknown = true; } - return compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement'); + + $data = compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement'); + + $evt = new Doku_Event('TPL_ACTION_GET', $data); + if($evt->advise_before()) { + //handle unknown types + if($unknown) { + $data = '[unknown %s type]'; + } + } + $evt->advise_after(); + unset($evt); + + return $data; } /** @@ -843,7 +854,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) { print 'placeholder="'.$lang['btn_search'].'" '; 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'].'" />'; + print '<button type="submit" title="'.$lang['btn_search'].'">'.$lang['btn_search'].'</button>'; if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>'; print '</div></form>'; return true; @@ -894,12 +905,12 @@ function tpl_breadcrumbs($sep = '•') { * @author Nigel McNie <oracle.shinoda@gmail.com> * @author Sean Coates <sean@caedmon.net> * @author <fredrik@averpil.com> - * @author Mark C. Prins <mprins@users.sf.net> + * @todo May behave strangely in RTL languages * * @param string $sep Separator between entries * @return bool */ -function tpl_youarehere($sep = ' → ') { +function tpl_youarehere($sep = ' » ') { global $conf; global $ID; global $lang; @@ -910,15 +921,12 @@ function tpl_youarehere($sep = ' → ') { $parts = explode(':', $ID); $count = count($parts); - echo '<nav><h2 class="bchead">'.$lang['youarehere'].': </h2>'; - echo '<ul class="navlist">'; - // always print the startpage - if ($count > 1) { - echo '<li class="home">'.html_wikilink(':'.$conf['start']).$sep.'</li>'; - } else { - echo '<li class="home">'.$conf['start'].'</li>'; - } + echo '<span class="bchead">'.$lang['youarehere'].' </span>'; + // always print the startpage + echo '<span class="home">'; + tpl_pagelink(':'.$conf['start']); + echo '</span>'; // print intermediate namespace links $part = ''; @@ -927,28 +935,18 @@ function tpl_youarehere($sep = ' → ') { $page = $part; if($page == $conf['start']) continue; // Skip startpage - echo '<li>'.html_wikilink($page); - if ($i < $count - 2) { - echo $sep.'</li>'; - } else { - echo '</li>'; - } + // output + echo $sep; + tpl_pagelink($page); } // print current page, skipping start page, skipping for namespace index resolve_pageid('', $page, $exists); - if(isset($page) && $page == $part.$parts[$i]) { - echo '</li></ul></nav>'; - return true; - } - + if(isset($page) && $page == $part.$parts[$i]) return true; $page = $part.$parts[$i]; - if($page == $conf['start']) { - echo '</li></ul></nav>'; - return true; - } - - echo $sep.'</li><li class="curid">'.noNSorNS($page).'</li></ul></nav>'; + if($page == $conf['start']) return true; + echo $sep; + tpl_pagelink($page); return true; } @@ -1048,6 +1046,8 @@ function tpl_pageinfo($ret = false) { * @return bool|string */ function tpl_pagetitle($id = null, $ret = false) { + global $ACT, $INPUT, $conf, $lang; + if(is_null($id)) { global $ID; $id = $ID; @@ -1055,14 +1055,60 @@ function tpl_pagetitle($id = null, $ret = false) { $name = $id; if(useHeading('navigation')) { - $title = p_get_first_heading($id); - if($title) $name = $title; + $first_heading = p_get_first_heading($id); + if($first_heading) $name = $first_heading; + } + + // default page title is the page name, modify with the current action + switch ($ACT) { + // admin functions + case 'admin' : + $page_title = $lang['btn_admin']; + // try to get the plugin name + /** @var $plugin DokuWiki_Admin_Plugin */ + if ($plugin = plugin_getRequestAdminPlugin()){ + $plugin_title = $plugin->getMenuText($conf['lang']); + $page_title = $plugin_title ? $plugin_title : $plugin->getPluginName(); + } + break; + + // user functions + case 'login' : + case 'profile' : + case 'register' : + case 'resendpwd' : + $page_title = $lang['btn_'.$ACT]; + break; + + // wiki functions + case 'search' : + case 'index' : + $page_title = $lang['btn_'.$ACT]; + break; + + // page functions + case 'edit' : + $page_title = "✎ ".$name; + break; + + case 'revisions' : + $page_title = $name . ' - ' . $lang['btn_revs']; + break; + + case 'backlink' : + case 'recent' : + case 'subscribe' : + $page_title = $name . ' - ' . $lang['btn_'.$ACT]; + break; + + default : // SHOW and anything else not included + $page_title = $name; } if($ret) { - return hsc($name); + return hsc($page_title); } else { - print hsc($name); + print hsc($page_title); return true; } } @@ -1587,6 +1633,12 @@ function tpl_actiondropdown($empty = '', $button = '>') { /** @var Input $INPUT */ global $INPUT; + $action_structure = array( + 'page_tools' => array('edit', 'revert', 'revisions', 'backlink', 'subscribe'), + 'site_tools' => array('recent', 'media', 'index'), + 'user_tools' => array('login', 'register', 'profile', 'admin'), + ); + echo '<form action="'.script().'" method="get" accept-charset="utf-8">'; echo '<div class="no">'; echo '<input type="hidden" name="id" value="'.$ID.'" />'; @@ -1598,50 +1650,17 @@ function tpl_actiondropdown($empty = '', $button = '>') { echo '<select name="do" class="edit quickselect" title="'.$lang['tools'].'">'; echo '<option value="">'.$empty.'</option>'; - echo '<optgroup label="'.$lang['page_tools'].'">'; - $act = tpl_get_action('edit'); - 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('revisions'); - 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>'; - - $act = tpl_get_action('subscribe'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '</optgroup>'; - - echo '<optgroup label="'.$lang['site_tools'].'">'; - $act = tpl_get_action('recent'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('media'); - 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="'.$lang['user_tools'].'">'; - $act = tpl_get_action('login'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('register'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('profile'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - - $act = tpl_get_action('admin'); - if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; - echo '</optgroup>'; + foreach($action_structure as $tools => $actions) { + echo '<optgroup label="'.$lang[$tools].'">'; + foreach($actions as $action) { + $act = tpl_get_action($action); + if($act) echo '<option value="'.$act['params']['do'].'">'.$lang['btn_'.$act['type']].'</option>'; + } + echo '</optgroup>'; + } echo '</select>'; - echo '<input type="submit" value="'.$button.'" />'; + echo '<button type="submit">'.$button.'</button>'; echo '</div>'; echo '</form>'; } @@ -1982,5 +2001,27 @@ function tpl_classes() { return join(' ', $classes); } +/** + * Create event for tools menues + * + * @author Anika Henke <anika@selfthinker.org> + * @param string $toolsname name of menu + * @param array $items + * @param string $view e.g. 'main', 'detail', ... + */ +function tpl_toolsevent($toolsname, $items, $view = 'main') { + $data = array( + 'view' => $view, + 'items' => $items + ); + + $hook = 'TEMPLATE_' . strtoupper($toolsname) . '_DISPLAY'; + $evt = new Doku_Event($hook, $data); + if($evt->advise_before()) { + foreach($evt->data['items'] as $k => $html) echo $html; + } + $evt->advise_after(); +} + //Setup VIM: ex: et ts=4 : diff --git a/index.php b/index.php index ad0807727c4afb4092c595346e2fc0c570ee3798..689ce1779b6209787e4d55adbeec3bce4e4dd1af 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,68 @@ <?php /** - * Forwarder to doku.php + * Forwarder/Router to doku.php + * + * In normal usage, this script simply redirects to doku.php. However it can also be used as a routing + * script with PHP's builtin webserver. It takes care of .htaccess compatible rewriting, directory/file + * access permission checking and passing on static files. + * + * Usage example: + * + * php -S localhost:8000 index.php * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Andreas Gohr <andi@splitbrain.org> */ -header("Location: doku.php"); +if(php_sapi_name() != 'cli-server') { + header("Location: doku.php"); + exit; +} + +# ROUTER starts below + +# avoid path traversal +$_SERVER['SCRIPT_NAME'] = str_replace('/../', '/', $_SERVER['SCRIPT_NAME']); + +# routing aka. rewriting +if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # media dispatcher + $_GET['media'] = $m[1]; + require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/fetch.php'; + +} else if(preg_match('/^\/_detail\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # image detail view + $_GET['media'] = $m[1]; + require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/detail.php'; + +} else if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) { + # exports + $_GET['do'] = 'export_' . $m[1]; + $_GET['id'] = $m[2]; + require $_SERVER['DOCUMENT_ROOT'] . '/doku.php'; + +} elseif($_SERVER['SCRIPT_NAME'] == '/index.php') { + # 404s are automatically mapped to index.php + if(isset($_SERVER['PATH_INFO'])) { + $_GET['id'] = $_SERVER['PATH_INFO']; + } + require $_SERVER['DOCUMENT_ROOT'] . '/doku.php'; + +} else if(file_exists($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME'])) { + # existing files + + # access limitiations + if(preg_match('/\/([\._]ht|README$|VERSION$|COPYING$)/', $_SERVER['SCRIPT_NAME']) or + preg_match('/^\/(data|conf|bin|inc)\//', $_SERVER['SCRIPT_NAME']) + ) { + die('Access denied'); + } + + if(substr($_SERVER['SCRIPT_NAME'], -4) == '.php') { + # php scripts + require $_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME']; + } else { + # static files + return false; + } +} +# 404 diff --git a/install.php b/install.php index 1a2d03dff8372a56efb5e804fa09ff05a87e518d..6002ec88cb8699177d09f79b6beaf5130c325ea2 100644 --- a/install.php +++ b/install.php @@ -58,6 +58,7 @@ $dokuwiki_hash = array( '2013-05-10' => '7b62b75245f57f122d3e0f8ed7989623', '2013-12-08' => '263c76af309fbf083867c18a34ff5214', '2014-05-05' => '263c76af309fbf083867c18a34ff5214', + '2015-08-10' => '263c76af309fbf083867c18a34ff5214' ); @@ -243,7 +244,7 @@ function print_form($d){ </fieldset> <fieldset id="process"> - <input class="button" type="submit" name="submit" value="<?php echo $lang['btn_save']?>" /> + <button type="submit" name="submit"><?php echo $lang['btn_save']?></button> </fieldset> </form> <?php @@ -256,7 +257,7 @@ function print_retry() { <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'];?>" /> + <button type="submit"><?php echo $lang['i_retry'];?></button> </fieldset> </form> <?php @@ -619,7 +620,7 @@ function langsel(){ echo '<option value="'.$l.'" '.$sel.'>'.$l.'</option>'; } echo '</select> '; - echo '<input type="submit" value="'.$lang['btn_update'].'" />'; + echo '<button type="submit">'.$lang['btn_update'].'</button>'; echo '</form>'; } diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index a200a3dedd2fde7302dfa1d17114ca5e2954cc1f..b3e9a618f565143707904fd89770accba787111f 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -303,7 +303,8 @@ function ajax_mediaupload(){ ); } $json = new JSON; - echo htmlspecialchars($json->encode($result), ENT_NOQUOTES); + header('Content-Type: application/json'); + echo $json->encode($result); } /** @@ -428,7 +429,7 @@ function ajax_linkwiz(){ echo '<a href="'.$link.'" title="'.htmlspecialchars($item['id']).'" class="wikilink1">'.$name.'</a>'; - if($item['title']){ + if(!blank($item['title'])){ echo '<span>'.htmlspecialchars($item['title']).'</span>'; } echo '</div>'; diff --git a/lib/exe/css.php b/lib/exe/css.php index 701cebaed2c517c9f2b21ab63805ca2f1a78aaa6..507a687371798b97d0aefe22bbfd215b2817fdf1 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -32,24 +32,23 @@ function css_out(){ global $config_cascade; global $INPUT; - // decide from where to get the template - $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); - if(!$tpl) $tpl = $conf['template']; - - // load style.ini - $styleini = css_styleini($tpl); - - // find mediatypes if ($INPUT->str('s') == 'feed') { $mediatypes = array('feed'); $type = 'feed'; } else { - $mediatypes = array_unique(array_merge(array('screen', 'all', 'print'), array_keys($styleini['stylesheets']))); + $mediatypes = array('screen', 'all', 'print'); $type = ''; } + // decide from where to get the template + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); + if(!$tpl) $tpl = $conf['template']; + // The generated script depends on some dynamic options - $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl.$type,'.css'); + $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$INPUT->int('preview').DOKU_BASE.$tpl.$type,'.css'); + + // load styl.ini + $styleini = css_styleini($tpl, $INPUT->bool('preview')); // if old 'default' userstyle setting exists, make it 'screen' userstyle for backwards compatibility if (isset($config_cascade['userstyle']['default'])) { @@ -60,9 +59,9 @@ function css_out(){ $tplinc = tpl_incdir($tpl); $cache_files = getConfigFiles('main'); $cache_files[] = $tplinc.'style.ini'; - $cache_files[] = $tplinc.'style.local.ini'; // @deprecated $cache_files[] = DOKU_CONF."tpl/$tpl/style.ini"; $cache_files[] = __FILE__; + if($INPUT->bool('preview')) $cache_files[] = $conf['cachedir'].'/preview.ini'; // Array of needed files and their web locations, the latter ones // are needed to fix relative paths in the stylesheets @@ -262,9 +261,12 @@ function css_applystyle($css, $replacements) { * @author Andreas Gohr <andi@splitbrain.org> * * @param string $tpl the used template + * @param bool $preview load preview replacements * @return array with keys 'stylesheets' and 'replacements' */ -function css_styleini($tpl) { +function css_styleini($tpl, $preview=false) { + global $conf; + $stylesheets = array(); // mode, file => base $replacements = array(); // placeholder => value @@ -286,23 +288,6 @@ function css_styleini($tpl) { } } - // load template's style.local.ini - // @deprecated 2013-08-03 - $ini = $incbase.'style.local.ini'; - if(file_exists($ini)){ - $data = parse_ini_file($ini, true); - - // stylesheets - if(is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ - $stylesheets[$mode][$incbase.$file] = $webbase; - } - - // replacements - if(is_array($data['replacements'])){ - $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); - } - } - // load configs's style.ini $webbase = DOKU_BASE; $ini = DOKU_CONF."tpl/$tpl/style.ini"; @@ -311,16 +296,29 @@ function css_styleini($tpl) { $data = parse_ini_file($ini, true); // stylesheets - if(is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ + if(isset($data['stylesheets']) && is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){ $stylesheets[$mode][$incbase.$file] = $webbase; } // replacements - if(is_array($data['replacements'])){ + if(isset($data['replacements']) && is_array($data['replacements'])){ $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'],$webbase)); } } + // allow replacement overwrites in preview mode + if($preview) { + $webbase = DOKU_BASE; + $ini = $conf['cachedir'].'/preview.ini'; + if(file_exists($ini)) { + $data = parse_ini_file($ini, true); + // replacements + if(is_array($data['replacements'])) { + $replacements = array_merge($replacements, css_fixreplacementurls($data['replacements'], $webbase)); + } + } + } + return array( 'stylesheets' => $stylesheets, 'replacements' => $replacements diff --git a/lib/exe/js.php b/lib/exe/js.php index 06d0dda557d1c0208bffddd6f2a3f66337319000..e850218cf522d95e4f1e804ce9d7b632ce3fd37f 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -30,9 +30,14 @@ function js_out(){ global $conf; global $lang; global $config_cascade; + global $INPUT; + + // decide from where to get the template + $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t'))); + if(!$tpl) $tpl = $conf['template']; // The generated script depends on some dynamic options - $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.js'); + $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].DOKU_BASE.$tpl,'.js'); $cache->_event = 'JS_CACHE_USE'; // load minified version for some files @@ -51,11 +56,9 @@ function js_out(){ 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', DOKU_INC.'lib/scripts/qsearch.js', DOKU_INC.'lib/scripts/tree.js', DOKU_INC.'lib/scripts/index.js', - DOKU_INC.'lib/scripts/drag.js', DOKU_INC.'lib/scripts/textselection.js', DOKU_INC.'lib/scripts/toolbar.js', DOKU_INC.'lib/scripts/edit.js', @@ -63,11 +66,11 @@ function js_out(){ DOKU_INC.'lib/scripts/locktimer.js', DOKU_INC.'lib/scripts/linkwiz.js', DOKU_INC.'lib/scripts/media.js', -# deprecated DOKU_INC.'lib/scripts/compatibility.js', + DOKU_INC.'lib/scripts/compatibility.js', # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', - tpl_incdir().'script.js', + tpl_incdir($tpl).'script.js', ); // add possible plugin scripts and userscript @@ -92,7 +95,7 @@ function js_out(){ $json = new JSON(); // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; - print "var DOKU_TPL = '".tpl_basedir()."';"; + print "var DOKU_TPL = '".tpl_basedir($tpl)."';"; print "var DOKU_COOKIE_PARAM = " . $json->encode( array( 'path' => empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'], @@ -104,7 +107,7 @@ function js_out(){ // load JS specific translations $lang['js']['plugins'] = js_pluginstrings(); - $templatestrings = js_templatestrings(); + $templatestrings = js_templatestrings($tpl); if(!empty($templatestrings)) { $lang['js']['template'] = $templatestrings; } @@ -170,7 +173,7 @@ function js_load($file){ // is it a include_once? if($match[1]){ $base = utf8_basename($ifile); - if($loaded[$base]){ + if(array_key_exists($base, $loaded) && $loaded[$base] === true){ $data = str_replace($match[0], '' ,$data); continue; } @@ -240,19 +243,20 @@ function js_pluginstrings() { * - $lang['js'] must be an array. * - Nothing is returned for template without an entry for $lang['js'] * + * @param string $tpl * @return array */ -function js_templatestrings() { +function js_templatestrings($tpl) { global $conf; $templatestrings = array(); - if (file_exists(tpl_incdir()."lang/en/lang.php")) { - include tpl_incdir()."lang/en/lang.php"; + if (file_exists(tpl_incdir($tpl)."lang/en/lang.php")) { + include tpl_incdir($tpl)."lang/en/lang.php"; } - if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(tpl_incdir()."lang/".$conf['lang']."/lang.php")) { - include tpl_incdir()."lang/".$conf['lang']."/lang.php"; + if (isset($conf['lang']) && $conf['lang']!='en' && file_exists(tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php")) { + include tpl_incdir($tpl)."lang/".$conf['lang']."/lang.php"; } if (isset($lang['js'])) { - $templatestrings[$conf['template']] = $lang['js']; + $templatestrings[$tpl] = $lang['js']; } return $templatestrings; } @@ -415,9 +419,9 @@ function js_compress($s){ // Only consider deleting whitespace if the signs before and after // are not equal and are not an operator which may not follow itself. - if ((!$lch || $s[$i+1] == ' ') + if ($i+1 < $slen && ((!$lch || $s[$i+1] == ' ') || $lch != $s[$i+1] - || strpos($ops,$s[$i+1]) === false) { + || strpos($ops,$s[$i+1]) === false)) { // leading spaces if($i+1 < $slen && (strpos($chars,$s[$i+1]) !== false)){ $i = $i + 1; diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index c90b6db35441ad4ad7ad12c2076b22113662b70a..fa9f5ebfcbab8e3ad78e77c93802300e3f45ca4b 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -9,6 +9,7 @@ global $INPUT; global $lang; + global $conf; // handle passed message if($INPUT->str('msg1')) msg(hsc($INPUT->str('msg1')),1); if($INPUT->str('err')) msg(hsc($INPUT->str('err')),-1); diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 61a68281f417f0be8547e559ba7d195c145a7b9e..6a0163106507f01d2d1ec5bb98b6b0ce86090b68 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -20,7 +20,7 @@ class dokuwiki_xmlrpc_server extends IXR_Server { $this->remote = new RemoteAPI(); $this->remote->setDateTransformation(array($this, 'toDate')); $this->remote->setFileTransformation(array($this, 'toFile')); - $this->IXR_Server(); + parent::__construct(); } /** diff --git a/lib/images/admin/README b/lib/images/admin/README index 90bab95784b001e0fe0c72c66521e84bdf2ae710..53e7d839ae988c9dc3d6a3d7c0f43a3482df3718 100644 --- a/lib/images/admin/README +++ b/lib/images/admin/README @@ -1,2 +1,4 @@ These icons were taken from the nuvoX KDE icon theme and are GPL licensed See http://www.kde-look.org/content/show.php/nuvoX?content=38467 + +styling.png from https://openclipart.org/detail/25595/brush Public Domain diff --git a/lib/images/admin/styling.png b/lib/images/admin/styling.png new file mode 100644 index 0000000000000000000000000000000000000000..859c8c9ef4f465333cae13ea7a33c50af4ee3d8a Binary files /dev/null and b/lib/images/admin/styling.png differ diff --git a/lib/images/interwiki/coral.gif b/lib/images/interwiki/coral.gif deleted file mode 100644 index 0f9f67587d8ab56fa861a503543e69a9a6dcb80d..0000000000000000000000000000000000000000 Binary files a/lib/images/interwiki/coral.gif and /dev/null differ diff --git a/lib/images/interwiki/sb.gif b/lib/images/interwiki/sb.gif deleted file mode 100644 index 710e4945b404d2fdf2e2fca6c45e36d399abc87f..0000000000000000000000000000000000000000 Binary files a/lib/images/interwiki/sb.gif and /dev/null differ diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php index 814bbfe9c44ff27524cad7b2e6c87c43c5d1b63f..f4baec9941aeca5aaad3ec70eb4ac10c05cc5403 100644 --- a/lib/plugins/acl/admin.php +++ b/lib/plugins/acl/admin.php @@ -332,7 +332,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo $this->getLang('acl_perms').' '; $inl = $this->_html_select(); echo '<input type="text" name="acl_w" class="edit" value="'.(($inl)?'':hsc(ltrim($this->who,'@'))).'" />'.NL; - echo '<input type="submit" value="'.$this->getLang('btn_select').'" class="button" />'.NL; + echo '<button type="submit">'.$this->getLang('btn_select').'</button>'.NL; echo '</div>'.NL; echo '<div id="acl__info">'; @@ -391,10 +391,10 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo $this->_html_checkboxes($current,empty($this->ns),'acl'); if(is_null($current)){ - echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_save'].'" />'.NL; + echo '<button type="submit" name="cmd[save]">'.$lang['btn_save'].'</button>'.NL; }else{ - echo '<input type="submit" name="cmd[save]" class="button" value="'.$lang['btn_update'].'" />'.NL; - echo '<input type="submit" name="cmd[del]" class="button" value="'.$lang['btn_delete'].'" />'.NL; + echo '<button type="submit" name="cmd[save]">'.$lang['btn_update'].'</button>'.NL; + echo '<button type="submit" name="cmd[del]">'.$lang['btn_delete'].'</button>'.NL; } echo '</fieldset>'; @@ -641,7 +641,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { echo '<tr>'; echo '<th class="action" colspan="4">'; - echo '<input type="submit" value="'.$lang['btn_update'].'" name="cmd[update]" class="button" />'; + echo '<button type="submit" name="cmd[update]">'.$lang['btn_update'].'</button>'; echo '</th>'; echo '</tr>'; echo '</table>'; @@ -682,7 +682,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { */ function _acl_add($acl_scope, $acl_user, $acl_level){ 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 @@ -692,9 +691,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { $new_acl = "$acl_scope\t$acl_user\t$acl_level\n"; - $new_config = $acl_config.$new_acl; - - return io_saveFile($config_cascade['acl']['default'], $new_config); + return io_saveFile($config_cascade['acl']['default'], $new_acl, true); } /** @@ -704,15 +701,11 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin { */ function _acl_del($acl_scope, $acl_user){ global $config_cascade; - $acl_config = file($config_cascade['acl']['default']); $acl_user = auth_nameencode($acl_user,true); $acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$'; - // save all non!-matching - $new_config = preg_grep("/$acl_pattern/", $acl_config, PREG_GREP_INVERT); - - return io_saveFile($config_cascade['acl']['default'], join('',$new_config)); + return io_deleteFromFile($config_cascade['acl']['default'], "/$acl_pattern/", true); } /** diff --git a/lib/plugins/acl/lang/bg/help.txt b/lib/plugins/acl/lang/bg/help.txt index 2de45342056180b1a27d547975fc993729b3a96c..ffda1ff7136e8615163a5387975ce0939780612c 100644 --- a/lib/plugins/acl/lang/bg/help.txt +++ b/lib/plugins/acl/lang/bg/help.txt @@ -1,11 +1,9 @@ === Помощ === От тук можете да добавÑте и премахвате права за именни проÑтранÑтва и Ñтраници във вашето Wiki. - -ЛевиÑÑ‚ панел показва вÑички налични именни проÑтранÑтва и Ñтраници. - -Формата отгоре ви позволÑва да преглеждате и променÑте правата на избран потребител или група. - -Ð’ таблицата отдолу Ñа показани вÑички актуални правила за контрол на доÑтъпа. Можете да Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ за бързо изтриване или промÑна на множеÑтво правила. + * левиÑÑ‚ панел показва вÑички налични именни проÑтранÑтва и Ñтраници. + * формата отгоре ви позволÑва да преглеждате и променÑте правата на избран потребител или група. + * в таблицата долу Ñа показани вÑички актуални правила за контрол на доÑтъпа. +Можете да Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ за бързо изтриване или промÑна на множеÑтво правила. За да разберете как работи контрола на доÑтъпа в DokuWiki трÑбва да прочетете [[doku>acl|документациÑта отноÑно ACL]]. \ No newline at end of file diff --git a/lib/plugins/acl/lang/ca/lang.php b/lib/plugins/acl/lang/ca/lang.php index bead981f00765a74832a316a9bd0cdce7e2b1f01..18a4a3602d9c0269b78632c01e4ff8da36d95064 100644 --- a/lib/plugins/acl/lang/ca/lang.php +++ b/lib/plugins/acl/lang/ca/lang.php @@ -1,8 +1,8 @@ <?php + /** - * catalan language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com diff --git a/lib/plugins/acl/lang/cy/help.txt b/lib/plugins/acl/lang/cy/help.txt new file mode 100644 index 0000000000000000000000000000000000000000..f3d6474f848523e1504258cb3856c3420e5ef871 --- /dev/null +++ b/lib/plugins/acl/lang/cy/help.txt @@ -0,0 +1,10 @@ +=== Cymorth Byw: === + +Ar y dudalen hon, gallwch chi ychwanegu a dileu hawliau ar gyfer namespaces a thudalennau yn eich wici. + * Mae'r panel ar y chwith yn dangos pob namespace a thudalen. + * Mae'r ffurflen uchod yn eich galluogi chi i weld a newid hawliau defnyddiwr neu grŵp a ddewiswyd. + * Yn y tabl isod, dengys pob rheol rheoli mynediad sydd wedi'u gosod yn bresennol. Gallwch chi ei ddefnyddio i ddileu neu newid sawl rheol ar y tro. + +Gall darllen [[doku>acl|dogfennaeth swyddogol ar ACL]] fod o fudd er mwyn eich helpu chi ddeall yn llawn sut mae rheolaeth mynediad yn gweithio mewn DokuWiki. + + diff --git a/lib/plugins/acl/lang/cy/lang.php b/lib/plugins/acl/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..add3ca40422094c046df8f6ccece1911c3e108fb --- /dev/null +++ b/lib/plugins/acl/lang/cy/lang.php @@ -0,0 +1,47 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + * @author Anika Henke <anika@selfthinker.org> + * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['admin_acl'] = 'Rheolaeth Rhestr Rheoli Mynediad'; +$lang['acl_group'] = 'Grŵp:'; +$lang['acl_user'] = 'Defnyddiwr:'; +$lang['acl_perms'] = 'Hawliau'; +$lang['page'] = 'Tudalen'; +$lang['namespace'] = 'Namespace'; //namespace + +$lang['btn_select'] = 'Dewis'; + +$lang['p_user_id'] = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_user_ns'] = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace +$lang['p_group_id'] = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.'; +$lang['p_group_ns'] = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace + +$lang['p_choose_id'] = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y dudalen <b class="aclpage">%s</b>.'; +$lang['p_choose_ns'] = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y namespace <b class="aclns">%s</b>.';//namespace + + +$lang['p_inherited'] = 'Sylw: Doedd yr hawliau hynny heb eu gosod yn uniongyrchol ond cawsant eu hetifeddu o grwpiau eraill neu namespaces uwch.';//namespace +$lang['p_isadmin'] = 'Sylw: Mae gan y grŵp neu\'r defnyddiwr hawliau llawn oherwydd mae wedi\'i ffurfweddu fel uwchddefnyddiwr.'; +$lang['p_include'] = 'Mae hawliau uwch yn cynnwys rhai is. Mae Creu, Lanlwytho a Dileu yn berthnasol i namespaces yn unig, nid tudalennau.';//namespace + +$lang['current'] = 'Rheolau ACL Cyfredol'; +$lang['where'] = 'Tudalen/Namespace';//namespace +$lang['who'] = 'Defnyddiwr/Grŵp'; +$lang['perm'] = 'Hawliau'; + +$lang['acl_perm0'] = 'Dim'; +$lang['acl_perm1'] = 'Darllen'; +$lang['acl_perm2'] = 'Golygu'; +$lang['acl_perm4'] = 'Creu'; +$lang['acl_perm8'] = 'Lanlwytho'; +$lang['acl_perm16'] = 'Dileu'; +$lang['acl_new'] = 'Ychwanegu Cofnod Newydd'; +$lang['acl_mod'] = 'Newid Cofnod'; +//Setup VIM: ex: et ts=2 : diff --git a/lib/plugins/acl/lang/de/lang.php b/lib/plugins/acl/lang/de/lang.php index f25a2ea7159ad72829575f4c0f6eb98b99af4b78..f4d7cc9e26b494d645ba50849a7d7bce7cc4bdb2 100644 --- a/lib/plugins/acl/lang/de/lang.php +++ b/lib/plugins/acl/lang/de/lang.php @@ -21,6 +21,7 @@ * @author Christian Wichmann <nospam@zone0.de> * @author Paul Lachewsky <kaeptn.haddock@gmail.com> * @author Pierre Corell <info@joomla-praxis.de> + * @author Michael Große <grosse@cosmocode.de> */ $lang['admin_acl'] = 'Zugangsverwaltung'; $lang['acl_group'] = 'Gruppe:'; @@ -36,7 +37,7 @@ $lang['p_group_ns'] = 'Mitglieder der Gruppe <b class="aclgroup">%s</ $lang['p_choose_id'] = 'Bitte geben Sie in obigem Formular eine <b>einen Benutzer 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 Benutzer 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_isadmin'] = 'Hinweis: Die ausgewählte Gruppe oder Benutzer haben immer alle Berechtigungen das sie als Superuser konfiguriert wurden.'; +$lang['p_isadmin'] = 'Hinweis: Die ausgewählte Gruppe oder Benutzer haben immer alle Berechtigungen, da 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'; $lang['where'] = 'Seite/Namensraum'; diff --git a/lib/plugins/acl/lang/es/help.txt b/lib/plugins/acl/lang/es/help.txt index c683477a873b94e6c93bf73f8f25e582e35bf575..01f7a2e79c1d1025a4864df7a2b377c6b3ad3c47 100644 --- a/lib/plugins/acl/lang/es/help.txt +++ b/lib/plugins/acl/lang/es/help.txt @@ -2,7 +2,7 @@ En esta página puede agregar o retirar permisos para los espacios de nombres y páginas en su wiki. -El panel de la izquierda muiestra todos los espacios de nombres y páginas +El panel de la izquierda muestra todos los espacios de nombres y páginas El formulario inferior permite ver y modificar los permisos del usuario o grupo elegido. diff --git a/lib/plugins/acl/lang/ja/help.txt b/lib/plugins/acl/lang/ja/help.txt index f7867f8e256e6b5d32d4ef7e72ec6b7dd773620b..a1f03a3afb52e8315f14747be7edcc2dbb002369 100644 --- a/lib/plugins/acl/lang/ja/help.txt +++ b/lib/plugins/acl/lang/ja/help.txt @@ -1,11 +1,8 @@ -=== クイックヘルプ: === +=== æ“作案内 === -ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€Wiki内ã®åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æ¨©é™ã‚’è¿½åŠ ãƒ»å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€Wiki 内ã®åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æ¨©é™ã‚’è¿½åŠ ãƒ»å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + * å·¦å´ã®ãƒœãƒƒã‚¯ã‚¹ã«ã¯å˜åœ¨ã™ã‚‹åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚ + * 上部ã®ãƒ•ォームを使ã£ã¦ã€é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©é™ã‚’閲覧・変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + * 下部ã®ä¸€è¦§ã¯ã€ç¾åœ¨è¨å®šã•れã¦ã„るアクセス制御ã®ãƒ«ãƒ¼ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã“ã®ä¸€è¦§ã‚’使ã£ã¦ã€è¤‡æ•°ã®ãƒ«ãƒ¼ãƒ«ã‚’ç´ æ—©ã変更・削除ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ -å·¦å´ã®ãƒœãƒƒã‚¯ã‚¹ã«ã¯å˜åœ¨ã™ã‚‹åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚ - -上記ã®ãƒ•ォームを使ã£ã¦ã€é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©é™ã‚’閲覧・変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ - -以下ã®ãƒ†ãƒ¼ãƒ—ルã«ã¯ã€ç¾åœ¨è¨å®šã•れã¦ã„るアクセスコントãƒãƒ¼ãƒ«ã®ãƒ«ãƒ¼ãƒ«ãŒè¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚ã“ã®ãƒ†ãƒ¼ãƒ–ルを使ã£ã¦ã€è¤‡æ•°ã®ãƒ«ãƒ¼ãƒ«ã‚’ç´ æ—©ã変更・削除ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ - -DokuWikiã®ã‚¢ã‚¯ã‚»ã‚¹ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã«ã¤ã„ã¦ã¯ã€[[doku>acl|official documentation on ACL]] ã‚’ãŠèªã¿ä¸‹ã•ã„。 \ No newline at end of file +DokuWiki ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã¤ã„ã¦ã¯ã€[[doku>ja:acl|アクセス制御リスト (ACL)ã®å…¬å¼è§£èª¬]]ã‚’ãŠèªã¿ä¸‹ã•ã„。 \ No newline at end of file diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php index 35563ff6c75fc1fb951fb5333959c997e65a20bf..40b6ff3510aa89669ba1053ebec500ffdc1a8b03 100644 --- a/lib/plugins/acl/lang/ko/lang.php +++ b/lib/plugins/acl/lang/ko/lang.php @@ -21,10 +21,10 @@ $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> 그룹 구성ì›ì€ 현재 <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_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> 그룹 구성ì›ì€ 현재 <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 class="aclpage">%s</b> 문서 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ ë°”ê¾¸ë ¤ë©´ <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— ìž…ë ¥í•˜ì„¸ìš”.'; $lang['p_choose_ns'] = '<b class="aclns">%s</b> ì´ë¦„공간 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ ë°”ê¾¸ë ¤ë©´ <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— ìž…ë ¥í•˜ì„¸ìš”.'; $lang['p_inherited'] = 'ì°¸ê³ : ê¶Œí•œì´ ëª…ì‹œì 으로 ì„¤ì •ë˜ì§€ 않았으므로 다른 그룹ì´ë‚˜ ìƒìœ„ ì´ë¦„공간으로부터 ê°€ì ¸ì™”ìŠµë‹ˆë‹¤.'; diff --git a/lib/plugins/acl/lang/lt/lang.php b/lib/plugins/acl/lang/lt/lang.php index ef339177b772745a629f69cdf5d2d2ede3c49121..2a1748abc50241d7f3d518fdf3177d620250528c 100644 --- a/lib/plugins/acl/lang/lt/lang.php +++ b/lib/plugins/acl/lang/lt/lang.php @@ -1,8 +1,8 @@ <?php + /** - * lithuanian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Linas Valiukas <shirshegsm@gmail.com> * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> diff --git a/lib/plugins/acl/plugin.info.txt b/lib/plugins/acl/plugin.info.txt index cb8fe7e8e9be26e96c36ddb204e3c4270e858a8d..1b2c82cb307b33c0c2a2c690cbce6316c8a156fa 100644 --- a/lib/plugins/acl/plugin.info.txt +++ b/lib/plugins/acl/plugin.info.txt @@ -1,7 +1,7 @@ base acl author Andreas Gohr email andi@splitbrain.org -date 2014-06-04 +date 2015-07-25 name ACL Manager desc Manage Page Access Control Lists url http://dokuwiki.org/plugin:acl diff --git a/lib/plugins/acl/remote.php b/lib/plugins/acl/remote.php index 42449428f875e945c61a361109eb07c59d8c9301..031686f959ab1c568b3a597e6060c02eb7fe04cc 100644 --- a/lib/plugins/acl/remote.php +++ b/lib/plugins/acl/remote.php @@ -8,7 +8,7 @@ class remote_plugin_acl extends DokuWiki_Remote_Plugin { /** * Returns details about the remote plugin methods * - * @return array + * @return array Information about all provided methods. {@see RemoteAPI} */ public function _getMethods() { return array( diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 58598b1e04d382cd395194007d93b3e0e248b875..86badffdd66f746a3930793ad3e9b6f826b21cd5 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -16,7 +16,7 @@ var dw_acl = { } jQuery('#acl__user select').change(dw_acl.userselhandler); - jQuery('#acl__user input[type=submit]').click(dw_acl.loadinfo); + jQuery('#acl__user button').click(dw_acl.loadinfo); $tree = jQuery('#acl__tree'); $tree.dw_tree({toggle_selector: 'img', diff --git a/lib/plugins/acl/style.css b/lib/plugins/acl/style.css index a53a03450cc7e82a3de156edeab61229f87cff06..4233cd30bea4b68ee7aa853c08ac27fbfc892459 100644 --- a/lib/plugins/acl/style.css +++ b/lib/plugins/acl/style.css @@ -81,7 +81,6 @@ [dir=rtl] #acl_manager .aclgroup { background: transparent url(pix/group.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .acluser { @@ -91,7 +90,6 @@ [dir=rtl] #acl_manager .acluser { background: transparent url(pix/user.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .aclpage { @@ -101,7 +99,6 @@ [dir=rtl] #acl_manager .aclpage { background: transparent url(pix/page.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager .aclns { @@ -111,7 +108,6 @@ [dir=rtl] #acl_manager .aclns { background: transparent url(pix/ns.png) right 1px no-repeat; padding: 1px 18px 1px 0px; - display: inline-block; /* needed for IE7 */ } #acl_manager label.disabled { diff --git a/lib/plugins/action.php b/lib/plugins/action.php index 4b5eef60a8b7e23ce3517158dd7524b7952dd05f..23d94a509394f2620d8b3e30667e46e55623c354 100644 --- a/lib/plugins/action.php +++ b/lib/plugins/action.php @@ -16,6 +16,8 @@ class DokuWiki_Action_Plugin extends DokuWiki_Plugin { /** * Registers a callback function for a given event + * + * @param Doku_Event_Handler $controller */ public function register(Doku_Event_Handler $controller) { trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING); diff --git a/lib/plugins/auth.php b/lib/plugins/auth.php index 4799b3a38dad26a3d3a9a7b4cdc36b1b3ea9df0d..036cb0d77531adec6e4511cb4ccb56b34bc2be88 100644 --- a/lib/plugins/auth.php +++ b/lib/plugins/auth.php @@ -295,7 +295,7 @@ class DokuWiki_Auth_Plugin extends DokuWiki_Plugin { */ public function deleteUsers($users) { msg("authorisation method does not allow deleting of users", -1); - return false; + return 0; } /** diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 400a5efee9de8335bd8850534ff86947af80386a..7f557975abd605fb8c4a017cde3b46fcbf0dd1e5 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -119,8 +119,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { } // other can do's are changed in $this->_loadServerConfig() base on domain setup - $this->cando['modName'] = true; - $this->cando['modMail'] = true; + $this->cando['modName'] = (bool)$this->conf['update_name']; + $this->cando['modMail'] = (bool)$this->conf['update_mail']; $this->cando['getUserCount'] = true; } @@ -258,7 +258,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { ($info['expiresin'] <= $this->conf['expirywarn']) && !$this->msgshown ) { - $msg = sprintf($lang['authpwdexpire'], $info['expiresin']); + $msg = sprintf($this->getLang('authpwdexpire'), $info['expiresin']); if($this->canDo('modPass')) { $url = wl($ID, array('do'=> 'profile')); $msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>'; @@ -522,7 +522,10 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { public function modifyUser($user, $changes) { $return = true; $adldap = $this->_adldap($this->_userDomain($user)); - if(!$adldap) return false; + if(!$adldap) { + msg($this->getLang('connectfail'), -1); + return false; + } // password changing if(isset($changes['pass'])) { @@ -532,7 +535,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } - if(!$return) msg('AD Auth: failed to change the password. Maybe the password policy was not met?', -1); + if(!$return) msg($this->getLang('passchangefail'), -1); } // changing user data @@ -554,6 +557,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } + if(!$return) msg($this->getLang('userchangefail'), -1); } return $return; @@ -638,6 +642,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { // compatibility with old option name if(empty($opts['admin_username']) && !empty($opts['ad_username'])) $opts['admin_username'] = $opts['ad_username']; if(empty($opts['admin_password']) && !empty($opts['ad_password'])) $opts['admin_password'] = $opts['ad_password']; + $opts['ad_password'] = conf_decodeString($opts['ad_password']); // deobfuscate // we can change the password if SSL is set if($opts['use_ssl'] || $opts['use_tls']) { diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php index 6fb4c9145659dc6d26112f916cb44b5a0df1f49b..f2834c808ca62aae802425aafdb88239a88302e4 100644 --- a/lib/plugins/authad/conf/default.php +++ b/lib/plugins/authad/conf/default.php @@ -13,3 +13,5 @@ $conf['use_tls'] = 0; $conf['debug'] = 0; $conf['expirywarn'] = 0; $conf['additional'] = ''; +$conf['update_name'] = 0; +$conf['update_mail'] = 0; diff --git a/lib/plugins/authad/conf/metadata.php b/lib/plugins/authad/conf/metadata.php index 560d25315b8ea298740162edf3a547c8ab8467fb..6b0fc168bcf0e934ea9ba5bd292b0c9ed5a7892d 100644 --- a/lib/plugins/authad/conf/metadata.php +++ b/lib/plugins/authad/conf/metadata.php @@ -6,10 +6,12 @@ $meta['domain_controllers'] = array('string','_caution' => 'danger'); $meta['sso'] = array('onoff','_caution' => 'danger'); $meta['sso_charset'] = array('string','_caution' => 'danger'); $meta['admin_username'] = array('string','_caution' => 'danger'); -$meta['admin_password'] = array('password','_caution' => 'danger'); +$meta['admin_password'] = array('password','_caution' => 'danger','_code' => 'base64'); $meta['real_primarygroup'] = array('onoff','_caution' => 'danger'); $meta['use_ssl'] = array('onoff','_caution' => 'danger'); $meta['use_tls'] = array('onoff','_caution' => 'danger'); $meta['debug'] = array('onoff','_caution' => 'security'); $meta['expirywarn'] = array('numeric', '_min'=>0,'_caution' => 'danger'); $meta['additional'] = array('string','_caution' => 'danger'); +$meta['update_name'] = array('onoff','_caution' => 'danger'); +$meta['update_mail'] = array('onoff','_caution' => 'danger'); diff --git a/lib/plugins/authad/lang/ar/lang.php b/lib/plugins/authad/lang/ar/lang.php index e0ba7681ac80a98dfdf09873f86e3821a9d28ac8..173c80f0c56e689fc6d7d08af94e6ea8246f94cc 100644 --- a/lib/plugins/authad/lang/ar/lang.php +++ b/lib/plugins/authad/lang/ar/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamed Belhsine <b.mohamed897@gmail.com> + * @author Usama Akkad <uahello@gmail.com> */ $lang['domain'] = 'مجال تسجيل الدخول'; +$lang['authpwdexpire'] = 'ستنتهي صلاØÙŠØ© كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.'; diff --git a/lib/plugins/authad/lang/bg/lang.php b/lib/plugins/authad/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3de5df65f0b270822aedce5a7993dddf4c2fea83 --- /dev/null +++ b/lib/plugins/authad/lang/bg/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['authpwdexpire'] = 'Срока на паролата ви ще изтече Ñлед %d дни. Препоръчително е да Ñ Ñмените по-Ñкоро.'; diff --git a/lib/plugins/authad/lang/ca/lang.php b/lib/plugins/authad/lang/ca/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..abe25a5f249a8637a06e99b519b8156eacf2c9c1 --- /dev/null +++ b/lib/plugins/authad/lang/ca/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Daniel López Prat <daniel@6temes.cat> + */ +$lang['authpwdexpire'] = 'La vostra contrasenya caducarà en %d dies, l\'haurÃeu de canviar aviat.'; diff --git a/lib/plugins/authad/lang/cs/lang.php b/lib/plugins/authad/lang/cs/lang.php index 8119d208aeabb31bde53e05208449ff741ed5376..6223868c625dcbac485a157ee20a9808ccfcbade 100644 --- a/lib/plugins/authad/lang/cs/lang.php +++ b/lib/plugins/authad/lang/cs/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Miroslav Svoboda <msv@email.cz> */ $lang['domain'] = 'PÅ™ihlaÅ¡ovacà doména'; +$lang['authpwdexpire'] = 'Platnost vaÅ¡eho hesla vypršà za %d dnÃ, mÄ›li byste ho zmÄ›nit co nejdÅ™Ãve.'; +$lang['passchangefail'] = 'ZmÄ›na hesla selhala. Možná nebyla dodržena pravidla pro jejich tvorbu?'; +$lang['userchangefail'] = 'ZmÄ›na atributů uživatele selhala. Možná nemá váš úÄet dostateÄná oprávnÄ›nà pro provádÄ›nà zmÄ›n. '; +$lang['connectfail'] = 'PÅ™ipojenà k serveru Active Directory selhalo.'; diff --git a/lib/plugins/authad/lang/cy/lang.php b/lib/plugins/authad/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8cc3746f230245e310764dee03716741c1aaeb8e --- /dev/null +++ b/lib/plugins/authad/lang/cy/lang.php @@ -0,0 +1,16 @@ +<?php +/** + * Welsh language file for addomain plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Andreas Gohr <gohr@cosmocode.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['domain'] = 'Parth Mewngofnodi'; +$lang['authpwdexpire'] = 'Bydd eich cyfrinair yn dod i ben mewn %d diwrnod, dylech chi ei newid e\'n fuan.'; +$lang['passchangefail'] = 'Methodd newid y cyfrinair. Posib roedd y cyfrinair yn annilys?'; +$lang['userchangefail'] = 'Methodd newid priodoleddau defnyddiwr. Posib \'sdim hawliau \'da chi i wneud newidiadau?'; +$lang['connectfail'] = 'Methodd y cysylltiad i weinydd yr Active Directory.'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authad/lang/cy/settings.php b/lib/plugins/authad/lang/cy/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..e343485ec5e5c1b7d4eb1708b8ef6f99b62da2c0 --- /dev/null +++ b/lib/plugins/authad/lang/cy/settings.php @@ -0,0 +1,15 @@ +<?php + +$lang['account_suffix'] = 'Olddodiad eich cyfrif. Ee. <code>@my.domain.org</code>'; +$lang['base_dn'] = 'Sail eich DN. Eg. <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'Rhestr gwahanwyd gan goma o reolwyr Parth. Ee. <code>srv1.domain.org,srv2.domain.org</code>'; +$lang['admin_username'] = 'Defnyddiwr Active Directory breintiedig gyda mynediad i ddata pob defnyddiwr arall. Yn opsiynol, ond yn hanfodol ar gyfer gweithredoedd penodol fel anfon ebyst tanysgrifio.'; +$lang['admin_password'] = 'Cyfrinair y defnyddiwr uchod.'; +$lang['sso'] = 'A ddylai Mewngofnodi-Unigol gan Kerberos neu NTLM gael ei ddefnyddio?'; +$lang['sso_charset'] = 'Y set nod mae\'ch gweinydd gwe yn pasio defnyddair Kerberos neu NTLM ynddi. Gwag ar gyfer UTF-8 neu latin-1. Bydd angen estyniad iconv.'; +$lang['real_primarygroup'] = 'Os ydy\'r prif grŵp real yn cael ei hadfer yn hytrach na thybio "Defnyddwyr Parth" (arafach).'; +$lang['use_ssl'] = 'Defnyddio cysylltiad SSL? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi TLS isod.'; +$lang['use_tls'] = 'Defnyddio cysylltiad TLS? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi SSL uchod.'; +$lang['debug'] = 'Dangos allbwn dadfygio ychwanegol ar wallau?'; +$lang['expirywarn'] = 'Diwrnodau o flaen llaw i rybuddio defnyddwyr o ran cyfrinair yn dod i ben. 0 i analluogi.'; +$lang['additional'] = 'Rhestr a wahanwyd gan goma o briodoleddau AD ychwanegol i nôl o ddata defnyddiwr. Defnyddiwyd gan rai ategion.'; diff --git a/lib/plugins/authad/lang/da/lang.php b/lib/plugins/authad/lang/da/lang.php index 8fc7db775c81b0c70cd1e38ef108b96299768f94..3d0730216e0156477ec463d195404a565ee1e374 100644 --- a/lib/plugins/authad/lang/da/lang.php +++ b/lib/plugins/authad/lang/da/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Jacob Palm <mail@jacobpalm.dk> + * @author Mikael Lyngvig <mikael@lyngvig.org> */ $lang['domain'] = 'Logondomæne'; +$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.'; diff --git a/lib/plugins/authad/lang/de-informal/lang.php b/lib/plugins/authad/lang/de-informal/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..973c992d2bb914f897988ae4d1ef2faaf3f045ff --- /dev/null +++ b/lib/plugins/authad/lang/de-informal/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Andreas Gohr <gohr@cosmocode.de> + * @author rnck <dokuwiki@rnck.de> + */ +$lang['authpwdexpire'] = 'Dein Passwort läuft in %d Tag(en) ab. Du solltest es es frühzeitig ändern.'; +$lang['passchangefail'] = 'Das Passwort konnte nicht geändert werden. Eventuell wurde die Passwort-Richtlinie nicht eingehalten.'; +$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.'; diff --git a/lib/plugins/authad/lang/de/lang.php b/lib/plugins/authad/lang/de/lang.php index eea511d1bb3f0a96d089b1234704f55713a242b4..ec73ac7d7c7b847476308d1931dda181c32a64de 100644 --- a/lib/plugins/authad/lang/de/lang.php +++ b/lib/plugins/authad/lang/de/lang.php @@ -4,5 +4,11 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Andreas Gohr <gohr@cosmocode.de> + * @author Philip Knack <p.knack@stollfuss.de> + * @author Uwe Benzelrath <uwebenzelrath@gmail.com> */ $lang['domain'] = 'Anmelde-Domäne'; +$lang['authpwdexpire'] = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.'; +$lang['passchangefail'] = 'Kennwortänderung fehlgeschlagen. Entspricht das Kennwort der Richtlinie?'; +$lang['userchangefail'] = 'Änderung der Nutzerattribute fehlgeschlagen. Möglicherweise hat ihr Benutzerkonto nicht die nötigen Rechte um diese Änderungen durchzuführen'; +$lang['connectfail'] = 'Verbindung zum Active Directory Server fehlgeschlagen.'; diff --git a/lib/plugins/authad/lang/el/lang.php b/lib/plugins/authad/lang/el/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..39e3283ccfbdbb9cb380e5aa716532edf4d767a0 --- /dev/null +++ b/lib/plugins/authad/lang/el/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com + */ +$lang['authpwdexpire'] = 'Ο κωδικός Ï€Ïόσβασης θα λήξει σε %d ημÎÏες. Î Ïοτείνουμε να τον αλλάξετε σÏντομα.'; diff --git a/lib/plugins/authad/lang/en/lang.php b/lib/plugins/authad/lang/en/lang.php index e2967d662d254081f5f9d2c081b8a04e1d6cd730..3e8a9e2a698ab5176eaf544c99187fb6a7255a42 100644 --- a/lib/plugins/authad/lang/en/lang.php +++ b/lib/plugins/authad/lang/en/lang.php @@ -1,10 +1,15 @@ <?php /** * English language file for addomain plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Andreas Gohr <gohr@cosmocode.de> */ -$lang['domain'] = 'Logon Domain'; +$lang['domain'] = 'Logon Domain'; +$lang['authpwdexpire'] = 'Your password will expire in %d days, you should change it soon.'; +$lang['passchangefail'] = 'Failed to change the password. Maybe the password policy was not met?'; +$lang['userchangefail'] = 'Failed to change user attributes. Maybe your account does not have permissions to make changes?'; +$lang['connectfail'] = 'Failed to connect to Active Directory server.'; //Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authad/lang/en/settings.php b/lib/plugins/authad/lang/en/settings.php index 92e9ac4e8182ec39f4e7795776afae4fd129ee83..9e7a7c320ab90130b39e8eb764f8aebc86417914 100644 --- a/lib/plugins/authad/lang/en/settings.php +++ b/lib/plugins/authad/lang/en/settings.php @@ -13,3 +13,5 @@ $lang['use_tls'] = 'Use TLS connection? If used, do not enable SSL ab $lang['debug'] = 'Display additional debugging output on errors?'; $lang['expirywarn'] = 'Days in advance to warn user about expiring password. 0 to disable.'; $lang['additional'] = 'A comma separated list of additional AD attributes to fetch from user data. Used by some plugins.'; +$lang['update_name'] = 'Allow users to update their AD display name?'; +$lang['update_mail'] = 'Allow users to update their email address?'; diff --git a/lib/plugins/authad/lang/eo/lang.php b/lib/plugins/authad/lang/eo/lang.php index be4abc123b4335096225f63e2836eeed8e967943..e738323da067f9c70f583c50587bdf309cc82519 100644 --- a/lib/plugins/authad/lang/eo/lang.php +++ b/lib/plugins/authad/lang/eo/lang.php @@ -6,3 +6,4 @@ * @author Robert Bogenschneider <bogi@uea.org> */ $lang['domain'] = 'Ensaluta domajno'; +$lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ÅanÄu Äin baldaÅ©.'; diff --git a/lib/plugins/authad/lang/es/lang.php b/lib/plugins/authad/lang/es/lang.php index c5b242cbaba065be6a2f90f5d7100bce53973a5c..d3d540b35df7dc21e0bbd05af93bcbddbf353ea0 100644 --- a/lib/plugins/authad/lang/es/lang.php +++ b/lib/plugins/authad/lang/es/lang.php @@ -4,5 +4,12 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Juan De La Cruz <juann.dlc@gmail.com> + * @author Gerardo Zamudio <gerardo@gerardozamudio.net> + * @author Mauricio Segura <maose38@yahoo.es> + * @author Romano <romanocl@outlook.com> */ $lang['domain'] = 'Dominio de inicio'; +$lang['authpwdexpire'] = 'Su contraseña caducara en %d dÃas, deberÃa cambiarla lo antes posible'; +$lang['passchangefail'] = 'Error al cambiar la contraseña. ¿Tal vez no se cumplió la directiva de contraseñas?'; +$lang['userchangefail'] = 'Falló al intentar modificar los atributos del usuario. Puede ser que su cuenta no tiene permisos para realizar cambios?'; +$lang['connectfail'] = 'Error al conectar con el servidor de Active Directory.'; diff --git a/lib/plugins/authad/lang/et/lang.php b/lib/plugins/authad/lang/et/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..94fe9ed8e10b3f004291a498cba7150e07d91c1c --- /dev/null +++ b/lib/plugins/authad/lang/et/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Janar Leas <janar.leas@eesti.ee> + */ +$lang['authpwdexpire'] = 'Sinu salasõna aegub %d päeva pärast, võiksid seda peatselt muuta.'; diff --git a/lib/plugins/authad/lang/eu/lang.php b/lib/plugins/authad/lang/eu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..454e3be3496d6b527bb927e46d4f1cfa446f4975 --- /dev/null +++ b/lib/plugins/authad/lang/eu/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Zigor Astarbe <astarbe@gmail.com> + */ +$lang['authpwdexpire'] = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.'; diff --git a/lib/plugins/authad/lang/fa/lang.php b/lib/plugins/authad/lang/fa/lang.php index 1ea73cfdb451e7556892a1a4cd927dd33b0b841d..ca1c8e807686bf30dc505e070c02306dfb856a39 100644 --- a/lib/plugins/authad/lang/fa/lang.php +++ b/lib/plugins/authad/lang/fa/lang.php @@ -4,5 +4,11 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Hamid <zarrabi@sharif.edu> + * @author Milad DZand <M.DastanZand@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['domain'] = 'دامنه‌ی ورود'; +$lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ØŒ شما باید آن را زود تغییر دهید'; +$lang['passchangefail'] = 'تغیر رمزعبور با خطا مواجه شد. شاید سیاستهای مربوط به گذاشتن نام کاربری درست رعایت نشده است.'; +$lang['userchangefail'] = 'تغییر ویژگی‌های کابر با خطا مواجه شد. شاید ØØ³Ø§Ø¨ کاربری شما مجاز به انجام این تغییرات نیست.'; +$lang['connectfail'] = 'ارتباط با سرور Active Directory با خطا مواجه شد.'; diff --git a/lib/plugins/authad/lang/fa/settings.php b/lib/plugins/authad/lang/fa/settings.php index 161479afbe4ed6d5dc97ced8d35a97ca6a789736..fdf9479bd43c67937ebc57305c82d62f2a231d79 100644 --- a/lib/plugins/authad/lang/fa/settings.php +++ b/lib/plugins/authad/lang/fa/settings.php @@ -4,7 +4,21 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['account_suffix'] = 'پسوند ØØ³Ø§Ø¨ کاربری شما. به عنوان مثال <code>@my.domain.org</code>'; +$lang['base_dn'] = 'DN پایه شما. به عنوان مثال <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'لیست کنترل کننده‌های دامنه Ú©Ù‡ با کاما ازهم جدا شده اند. به عنوان مثال <code>srv1.domain.org,srv2.domain.org</code'; +$lang['admin_username'] = 'کاربر دارای دسترسی Active Directory Ú©Ù‡ دارای دسترسی به تمام اطلاعات کاربران است. اختیاریست ولی برای برخی ÙØ¹Ø§Ù„یت‌ها مثل ایمیل‌های عضویت لازم است.'; $lang['admin_password'] = 'رمز کاربر بالایی '; +$lang['sso'] = 'آیا Single-Sign-On از طریق Kerberos یا NTLM Ø§Ø³ØªÙØ§Ø¯Ù‡ شود؟'; +$lang['sso_charset'] = 'کدبندی نویسه‌ای Ú©Ù‡ وب‌سرورتان نام کاربری NTLM یا Kerberos را به آن منتقل می‌کند. برای انتخاب UTF-8 یا latin-1 خالی بگذارید. لازم است Ú©Ù‡ Ø§ÙØ²ÙˆÙ†Ù‡Ù” iconv نصب باشد.'; +$lang['real_primarygroup'] = 'باید گروه اصلی به جای "دامنهٔ کاربران" برگردد. (کندتر)'; $lang['use_ssl'] = 'از اس‌اس‌ال Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟ در این صورت تی‌ال‌اس را در پایین ÙØ¹Ø§Ù„ نکنید. '; $lang['use_tls'] = 'از تی‌ال‌اس Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟ در این صورت اس‌اس‌ال را در بالا ÙØ¹Ø§Ù„ نکنید. '; +$lang['debug'] = 'داده‌های اضاÙÛŒ خروجی دیباگ در هنگام بروز خطا نمایش داده شود؟'; +$lang['expirywarn'] = 'تعداد روزهایی Ú©Ù‡ پس گذشتن آن برای تغییر رمزعبور به شما هشدار داده شود. باری ØºÛŒØ±ÙØ¹Ø§Ù„ سازی از مقدار 0 Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.'; +$lang['additional'] = 'لیست ØµÙØ§Øª اضاÙÛŒ AD برای Ú¯Ø±ÙØªÙ† از اطلاعات کاربر Ú©Ù‡ توسط برخی از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌شود. با کاما جدا شود.'; +$lang['update_name'] = 'به کاربران اجازهٔ به روزرسانی نام AD داده شود؟'; +$lang['update_mail'] = 'به کاربران اجازهٔ به روزرسانی ایمیلشان داده شود؟'; diff --git a/lib/plugins/authad/lang/fi/lang.php b/lib/plugins/authad/lang/fi/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..650d44f7ad36c18fa6f346d7fbcc27ebfea409aa --- /dev/null +++ b/lib/plugins/authad/lang/fi/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jussi Takala <jussi.takala@live.fi> + */ + +$lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.'; diff --git a/lib/plugins/authad/lang/fr/lang.php b/lib/plugins/authad/lang/fr/lang.php index 2de362e41dd4b60f3d40124e6a572df301a24821..1ab523ff146f67e516bce3155b8732a119f72766 100644 --- a/lib/plugins/authad/lang/fr/lang.php +++ b/lib/plugins/authad/lang/fr/lang.php @@ -4,5 +4,12 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author ggallon <gwenael.gallon@mac.com> + * @author Yannick Aure <yannick.aure@gmail.com> + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> */ $lang['domain'] = 'Domaine de connexion'; +$lang['authpwdexpire'] = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.'; +$lang['passchangefail'] = 'Impossible de changer le mot de passe. Il est possible que les règles de sécurité des mots de passe n\'aient pas été respectées.'; +$lang['userchangefail'] = 'Impossible de modifier les attributs de l\'utilisateur. Votre compte n\'a peut-être pas les permissions d\'effectuer des changements.'; +$lang['connectfail'] = 'Impossible de se connecter au serveur Active Directory.'; diff --git a/lib/plugins/authad/lang/gl/lang.php b/lib/plugins/authad/lang/gl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b10126a88433825df4609763e0ff0cfda66a2bfb --- /dev/null +++ b/lib/plugins/authad/lang/gl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Rodrigo Rega <rodrigorega@gmail.com> + */ +$lang['authpwdexpire'] = 'A túa contrasinal expirará en %d dÃas, deberÃas cambiala pronto.'; diff --git a/lib/plugins/authad/lang/he/lang.php b/lib/plugins/authad/lang/he/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5b193ed5f91cb6f8a9e68d5e48eeb5c28f33a8af --- /dev/null +++ b/lib/plugins/authad/lang/he/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author tomer <tomercarolldergicz@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> + */ +$lang['authpwdexpire'] = 'הסיסמה שלך תפוג ב %d ימי×, ×תה צריך ×œ×©× ×•×ª ×ת ×–×” בקרוב.'; +$lang['passchangefail'] = 'שגי××” ×‘×©×™× ×•×™ סיסמה. ×”×× ×”×¡×™×¡×ž×” תו×מת ×œ×ž×“×™× ×™×•×ª המערכת?'; diff --git a/lib/plugins/authad/lang/he/settings.php b/lib/plugins/authad/lang/he/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..b1436813018bfe4b8c55ef1f9a0857422cb0a8ee --- /dev/null +++ b/lib/plugins/authad/lang/he/settings.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Menashe Tomer <menashesite@gmail.com> + */ +$lang['admin_password'] = 'סיסמת המשתמש המוזכן'; diff --git a/lib/plugins/authad/lang/hr/lang.php b/lib/plugins/authad/lang/hr/lang.php index f750c91b5379545d53d703dbcbcd5c3e9df623c4..99c5c1623a033aa51b686a9bdcb0df980dc8c9dc 100644 --- a/lib/plugins/authad/lang/hr/lang.php +++ b/lib/plugins/authad/lang/hr/lang.php @@ -6,3 +6,6 @@ * @author Davor Turkalj <turki.bsc@gmail.com> */ $lang['domain'] = 'Domena za prijavu'; +$lang['authpwdexpire'] = 'VaÅ¡a lozinka će isteći za %d dana, trebate ju promijeniti.'; +$lang['passchangefail'] = 'Ne mogu izmijeniti lozinku. Možda nije zadovoljen set pravila za lozinke?'; +$lang['connectfail'] = 'Ne mogu se povezati s Active Directory poslužiteljem.'; diff --git a/lib/plugins/authad/lang/hu/lang.php b/lib/plugins/authad/lang/hu/lang.php index 7bb6084b0e2d0c270bb08560ec6b40e1c9996737..023e6b956613f1b9b219891fa014f3be732a53da 100644 --- a/lib/plugins/authad/lang/hu/lang.php +++ b/lib/plugins/authad/lang/hu/lang.php @@ -6,3 +6,6 @@ * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['domain'] = 'Bejelentkezési tartomány'; +$lang['authpwdexpire'] = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.'; +$lang['passchangefail'] = 'A jelszó megváltoztatása sikertelen. Lehet, hogy nem felel meg a jelszóházirendnek?'; +$lang['connectfail'] = 'A csatlakozás az Active Directory szerverhez sikertelen.'; diff --git a/lib/plugins/authad/lang/it/lang.php b/lib/plugins/authad/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a30cd7cea826aa350d77ac128da20799841e5f7d --- /dev/null +++ b/lib/plugins/authad/lang/it/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Matteo Pasotti <matteo@xquiet.eu> + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['domain'] = 'Dominio di accesso'; +$lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; +$lang['passchangefail'] = 'Cambio password fallito. Forse non sono state rispettate le regole adottate per le password'; +$lang['userchangefail'] = 'Cambio attributi utente fallito. Forse il tuo account non ha i permessi per eseguire delle modifiche?'; +$lang['connectfail'] = 'Connessione fallita al server Active Directory'; diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php index 2d68dad68750a51d3b1c26cad50222ba7a2985ce..3a92fcb7bd124046a8c1225e4bdc9ed3fcc8d65c 100644 --- a/lib/plugins/authad/lang/it/settings.php +++ b/lib/plugins/authad/lang/it/settings.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Edmondo Di Tucci <snarchio@gmail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['account_suffix'] = 'Il suffisso del tuo account. Eg. <code>@my.domain.org</code>'; $lang['base_dn'] = 'Il tuo DN. base Eg. <code>DC=my,DC=domain,DC=org</code>'; @@ -11,6 +12,8 @@ $lang['domain_controllers'] = 'Elenco separato da virgole di Domain Controlle $lang['admin_username'] = 'Utente privilegiato di Active Directory con accesso ai dati di tutti gli utenti. Opzionale ma necessario per alcune attività come mandare email di iscrizione.'; $lang['admin_password'] = 'La password dell\'utente soprascritto.'; $lang['sso'] = 'Deve essere usato Single-Sign-On via Kerberos oppure NTLM?'; +$lang['sso_charset'] = 'Il set di caratteri che il tuo web server passera nel nome utente Kerberos o NTLM. Lasciare vuoto per UTF-8 p latin-1. Richiesta estensione iconv. '; +$lang['real_primarygroup'] = 'Se il vero gruppo primario dovesse essere risolo invece di assumere "Domain Users" (lento).'; $lang['use_ssl'] = 'Usare la connessione SSL? Se usata, non abilitare TSL qui sotto.'; $lang['use_tls'] = 'Usare la connessione TSL? Se usata, non abilitare SSL qui sopra.'; $lang['debug'] = 'Visualizzare output addizionale di debug per gli errori?'; diff --git a/lib/plugins/authad/lang/ja/lang.php b/lib/plugins/authad/lang/ja/lang.php index b40aa5da39437c18ead598bb5d306f0df038f4ed..e82ca379142397d4d160decfac562fb17326b754 100644 --- a/lib/plugins/authad/lang/ja/lang.php +++ b/lib/plugins/authad/lang/ja/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author PzF_X <jp_minecraft@yahoo.co.jp> + * @author Osaka <mr.osaka@gmail.com> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['domain'] = 'ãƒã‚°ã‚ªãƒ³æ™‚ã®ãƒ‰ãƒ¡ã‚¤ãƒ³'; +$lang['authpwdexpire'] = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。'; +$lang['passchangefail'] = 'パスワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚パスワードã®ãƒ«ãƒ¼ãƒ«ã«åˆã‚ãªã‹ã£ãŸã®ã‹ã‚‚ã—れã¾ã›ã‚“。'; +$lang['connectfail'] = 'Active Directoryサーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; diff --git a/lib/plugins/authad/lang/ka/lang.php b/lib/plugins/authad/lang/ka/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ab0c86902c79de05d313ca6cabe67572732ec88a --- /dev/null +++ b/lib/plugins/authad/lang/ka/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Luka Lejava <luka.lejava@gmail.com> + */ +$lang['authpwdexpire'] = 'თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•რ%d დღეში, მáƒáƒšáƒ” შეცვლრმáƒáƒ’იწევთ.'; diff --git a/lib/plugins/authad/lang/ko/lang.php b/lib/plugins/authad/lang/ko/lang.php index 5a2416b2c9028314b7b2923d9335c24ee3b82dbb..97abb31ed1c8dfea20d22702933f4ad3fc0a3f41 100644 --- a/lib/plugins/authad/lang/ko/lang.php +++ b/lib/plugins/authad/lang/ko/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['domain'] = '로그온 ë„ë©”ì¸'; +$lang['authpwdexpire'] = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 ê³§ 바꿔야 합니다.'; +$lang['passchangefail'] = '비밀번호를 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 비밀번호 ì •ì±…ì„ ë”°ë¥´ì§€ ì•Šì€ ê±´ ì•„ë‹ê¹Œìš”?'; +$lang['userchangefail'] = 'ì‚¬ìš©ìž íŠ¹ì„±ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ë‹¹ì‹ ì˜ ê³„ì •ì— ë°”ê¿€ ê¶Œí•œì´ ì—†ëŠ” ê±´ ì•„ë‹ê¹Œìš”?'; +$lang['connectfail'] = 'Active Directory ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; diff --git a/lib/plugins/authad/lang/ko/settings.php b/lib/plugins/authad/lang/ko/settings.php index b104371fe2217715ddb2fc93422ce923d02c0e60..4ee7c084fbfa16e02c4b0013d3165d8f66b5f23e 100644 --- a/lib/plugins/authad/lang/ko/settings.php +++ b/lib/plugins/authad/lang/ko/settings.php @@ -19,3 +19,5 @@ $lang['use_tls'] = 'TLS ì—°ê²°ì„ ì‚¬ìš©í•©ë‹ˆê¹Œ? 사용한다면 $lang['debug'] = 'ì˜¤ë¥˜ì— ëŒ€í•œ 추가ì ì¸ ë””ë²„ê·¸ ì •ë³´ë¥¼ ë³´ì´ê² 습니까?'; $lang['expirywarn'] = '미리 비밀번호 만료를 사용ìžì—게 ê²½ê³ í• ë‚ ì§œ. 0ì¼ ê²½ìš° 비활성화합니다.'; $lang['additional'] = 'ì‚¬ìš©ìž ë°ì´í„°ì—서 ê°€ì ¸ì˜¬ 추가ì ì¸ AD ì†ì„±ì˜ 쉼표로 구분한 목ë¡. ì¼ë¶€ 플러그ì¸ì´ 사용합니다.'; +$lang['update_name'] = '사용ìžê°€ ìžì‹ ì˜ AD 표시 ì´ë¦„ì„ ì—…ë°ì´íŠ¸í• ìˆ˜ 있ë„ë¡ í•˜ê² ìŠµë‹ˆê¹Œ?'; +$lang['update_mail'] = '사용ìžê°€ ìžì‹ ì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ì—…ë°ì´íŠ¸í• ìˆ˜ 있ë„ë¡ í•˜ê² ìŠµë‹ˆê¹Œ?'; diff --git a/lib/plugins/authad/lang/lv/lang.php b/lib/plugins/authad/lang/lv/lang.php index 74becf756b55190068fe3859c1a59b9542d6049b..a208ac949f8391dd37c9b98147833fba0c17ca45 100644 --- a/lib/plugins/authad/lang/lv/lang.php +++ b/lib/plugins/authad/lang/lv/lang.php @@ -6,3 +6,4 @@ * @author Aivars MiÅ¡ka <allefm@gmail.com> */ $lang['domain'] = 'IežurnÄlēšanÄs domÄ“ns'; +$lang['authpwdexpire'] = 'Tavai parolei pÄ“c %d dienÄm biegsies termiņš, tÄ drÄ«zumÄ jÄnomaina.'; diff --git a/lib/plugins/authad/lang/nl/lang.php b/lib/plugins/authad/lang/nl/lang.php index ea841906992cec7d65707b9e7b3d86a7648ae31b..4e873201f765a8bcbe0a7fe8d0acbe513b70fa30 100644 --- a/lib/plugins/authad/lang/nl/lang.php +++ b/lib/plugins/authad/lang/nl/lang.php @@ -4,5 +4,12 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Rene <wllywlnt@yahoo.com> + * @author Dion Nicolaas <dion@nicolaas.net> + * @author Hugo Smet <hugo.smet@scarlet.be> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['domain'] = 'Inlog Domein'; +$lang['authpwdexpire'] = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen'; +$lang['passchangefail'] = 'Wijziging van het paswoord is mislukt. Wellicht beantwoord het paswoord niet aan de voorwaarden. '; +$lang['userchangefail'] = 'Kan gebruiker attributen veranderen . Misschien heeft uw account geen rechten om wijzigingen aan te brengen?'; +$lang['connectfail'] = 'Connectie met Active Directory server mislukt.'; diff --git a/lib/plugins/authad/lang/no/lang.php b/lib/plugins/authad/lang/no/lang.php index a1c9c7e8a59a1799e222ea04815b74a01cc7a2f1..b497c4719549fa8913b0a22fcf4e95968f46d7fb 100644 --- a/lib/plugins/authad/lang/no/lang.php +++ b/lib/plugins/authad/lang/no/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Patrick <spill.p@hotmail.com> + * @author Thomas Juberg <Thomas.Juberg@Gmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['domain'] = 'LoggpÃ¥-domene'; +$lang['authpwdexpire'] = 'Ditt passord gÃ¥r ut om %d dager, du bør endre det snarest.'; +$lang['passchangefail'] = 'Feil ved endring av passord. Det kan være at passordet ikke er i trÃ¥d med passordpolicyen '; +$lang['connectfail'] = 'Feil ved kontakt med Active Directory serveren.'; diff --git a/lib/plugins/authad/lang/no/settings.php b/lib/plugins/authad/lang/no/settings.php index f309ead50abb599da84b8804aca31e433dc1b1e8..727f6611dae6eecff4f9e2e7e769f40d4f26f56f 100644 --- a/lib/plugins/authad/lang/no/settings.php +++ b/lib/plugins/authad/lang/no/settings.php @@ -5,7 +5,10 @@ * * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['account_suffix'] = 'Ditt konto-suffiks F. Eks. <code>@my.domain.org</code>'; $lang['admin_password'] = 'Passordet til brukeren over.'; +$lang['use_ssl'] = 'Bruk SSL tilknytning? Hvis denne brukes, ikke aktiver TLS nedenfor.'; +$lang['use_tls'] = 'Bruk TLS tilknytning? Hvis denne brukes, ikke aktiver SSL over.'; $lang['expirywarn'] = 'Antall dager pÃ¥ forhÃ¥nd brukeren varsles om at passordet utgÃ¥r. 0 for Ã¥ deaktivere.'; diff --git a/lib/plugins/authad/lang/pl/lang.php b/lib/plugins/authad/lang/pl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..645b46afa4fa3ae4b34ccdd7bdb247286a1df905 --- /dev/null +++ b/lib/plugins/authad/lang/pl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Aoi Karasu <aoikarasu@gmail.com> + */ +$lang['authpwdexpire'] = 'Twoje hasÅ‚o wygaÅ›nie za %d dni. Należy je zmienić w krótkim czasie.'; diff --git a/lib/plugins/authad/lang/pt-br/lang.php b/lib/plugins/authad/lang/pt-br/lang.php index 5fa963d4e2a2e8ea8e7be760f35c82f5b030f6c1..ddcfaa875ea36d994858243c0f445fd8a1a9f4a8 100644 --- a/lib/plugins/authad/lang/pt-br/lang.php +++ b/lib/plugins/authad/lang/pt-br/lang.php @@ -4,5 +4,11 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Felipe Castro <fefcas@gmail.com> + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + * @author Guilherme Cardoso <guicardoso@gmail.com> */ $lang['domain'] = 'DomÃnio de "Logon"'; +$lang['authpwdexpire'] = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possÃvel.'; +$lang['passchangefail'] = 'Não foi possÃvel alterar a senha. Pode ser algum conflito com a polÃtica de senhas.'; +$lang['userchangefail'] = 'Falha ao mudar os atributos do usuário. Talvez a sua conta não tenha permissões para fazer mudanças.'; +$lang['connectfail'] = 'Não foi possÃvel conectar ao servidor Active Directory.'; diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php index cdc748055c9ab5174035e88cb98c5518bb831e71..27ce09b3649ae16b7cc0342080238d5b2a0b309b 100644 --- a/lib/plugins/authad/lang/pt-br/settings.php +++ b/lib/plugins/authad/lang/pt-br/settings.php @@ -6,6 +6,7 @@ * @author Victor Westmann <victor.westmann@gmail.com> * @author Frederico Guimarães <frederico@teia.bio.br> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> + * @author Viliam Dias <viliamjr@gmail.com> */ $lang['account_suffix'] = 'Sufixo de sua conta. Eg. <code>@meu.domÃnio.org</code>'; $lang['base_dn'] = 'Sua base DN. Eg. <code>DC=meu,DC=domÃnio,DC=org</code>'; @@ -20,3 +21,5 @@ $lang['use_tls'] = 'Usar conexão TLS? se usar, não habilitar SSL $lang['debug'] = 'Mostrar saÃda adicional de depuração em mensagens de erros?'; $lang['expirywarn'] = 'Dias com antecedência para avisar o usuário de uma senha que vai expirar. 0 para desabilitar.'; $lang['additional'] = 'Uma lista separada de vÃrgulas de atributos adicionais AD para pegar dados de usuários. Usados por alguns plugins.'; +$lang['update_name'] = 'Permitir aos usuários que atualizem seus nomes de exibição AD?'; +$lang['update_mail'] = 'Permitir aos usuários que atualizem seu endereço de e-mail?'; diff --git a/lib/plugins/authad/lang/pt/lang.php b/lib/plugins/authad/lang/pt/lang.php index f307bc901182de18b61b8841257886494b6c96e4..450e3a137603d72f6332559e1267e1d3f9c53128 100644 --- a/lib/plugins/authad/lang/pt/lang.php +++ b/lib/plugins/authad/lang/pt/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Paulo Silva <paulotsilva@yahoo.com> + * @author André Neves <drakferion@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['domain'] = 'DomÃnio de InÃcio de Sessão'; +$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; +$lang['passchangefail'] = 'Falha ao alterar a senha. Tente prosseguir com uma senha mais segura.'; +$lang['connectfail'] = 'Falha ao conectar com o servidor Active Directory.'; diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php index 6256eb5975a116c921e0539c9734b7c4076630a3..dc6741b2a65d3763c326bfaa406d67eb6c3ad54d 100644 --- a/lib/plugins/authad/lang/pt/settings.php +++ b/lib/plugins/authad/lang/pt/settings.php @@ -9,7 +9,7 @@ * @author Guido Salatino <guidorafael23@gmail.com> */ $lang['account_suffix'] = 'O sufixo da sua conta. Por exemplo, <code>@my.domain.org</code>'; -$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </ code>'; +$lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </code>'; $lang['domain_controllers'] = 'Uma lista separada por vÃrgulas de Controladores de DomÃnio (AD DC). Ex.: <code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = 'Um utilizador com privilégios na Active Directory que tenha acesso aos dados de todos os outros utilizadores. Opcional, mas necessário para certas ações como enviar emails de subscrição.'; $lang['admin_password'] = 'A senha para o utilizador acima.'; diff --git a/lib/plugins/authad/lang/ro/lang.php b/lib/plugins/authad/lang/ro/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..65df92f7f79e14750716cfd9fe1ae9cf6559703b --- /dev/null +++ b/lib/plugins/authad/lang/ro/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Razvan Deaconescu <razvan.deaconescu@cs.pub.ro> + * @author Adrian Vesa <adrianvesa@dotwikis.com> + */ +$lang['authpwdexpire'] = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.'; +$lang['passchangefail'] = 'Parola nu a putu fi schimbata. Poate politica pentru parole nu a fost indeplinita ?'; +$lang['userchangefail'] = 'Nu am putu schimba atributiile pentru acest utilizator. Poate nu ai permisiunea sa faci aceste schimbari ?'; diff --git a/lib/plugins/authad/lang/ru/lang.php b/lib/plugins/authad/lang/ru/lang.php index 6f3c03e39bf9f6e0a9adb48f7b55e59a9adbff84..ebce005c0fbb5d99e3f9e740ffd72fa7cfc337a8 100644 --- a/lib/plugins/authad/lang/ru/lang.php +++ b/lib/plugins/authad/lang/ru/lang.php @@ -4,5 +4,11 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + * @author Takumo <9206984@mail.ru> + * @author dimsharav <dimsharav@gmail.com> */ $lang['domain'] = 'Домен'; +$lang['authpwdexpire'] = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее'; +$lang['passchangefail'] = 'Ðе удалоÑÑŒ изменить пароль. Возможно, он не ÑоответÑтвует требованиÑм к паролю.'; +$lang['userchangefail'] = 'Ошибка при изменении атрибутов пользователÑ. Возможно, у Вашей учетной запиÑи недоÑтаточно прав?'; +$lang['connectfail'] = 'Ðевозможно ÑоединитьÑÑ Ñ Ñервером AD.'; diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index c791bd791fea2b94b64363ac3d364574690c5a0f..d9cf1fd690c69a1cf2aae2086bb51b8e01f45406 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -14,7 +14,7 @@ */ $lang['account_suffix'] = 'Ð¡ÑƒÑ„Ñ„Ð¸ÐºÑ Ð²Ð°ÑˆÐµÐ³Ð¾ аккаунта. Ðапример, <code>@my.domain.org</code>'; $lang['base_dn'] = 'Ваш базовый DN. Ðапример: <code>DC=my,DC=domain,DC=org</code>'; -$lang['domain_controllers'] = 'СпиÑок DNS-Ñерверов, разделенных запÑтой. Ðапример:<code>srv1.domain.org,srv2.domain.org</code>'; +$lang['domain_controllers'] = 'СпиÑок DNS-Ñерверов, разделённых запÑтой. Ðапример:<code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = 'Привилегированный пользователь Active Directory Ñ Ð´Ð¾Ñтупом ко вÑем оÑтальным пользовательÑким данным. ÐеобÑзательно, однако необходимо Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ñ… дейÑтвий вроде отправки почтовой подпиÑки.'; $lang['admin_password'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.'; $lang['sso'] = 'ИÑпользовать SSO (Single-Sign-On) через Kerberos или NTLM?'; diff --git a/lib/plugins/authad/lang/sk/lang.php b/lib/plugins/authad/lang/sk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..cb0698f460a9e1e06edf9b981db41a1689d20281 --- /dev/null +++ b/lib/plugins/authad/lang/sk/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['authpwdexpire'] = 'PlatnosÅ¥ hesla vypršà za %d dnÃ, mali by ste ho zmeniÅ¥ Äo najskôr.'; diff --git a/lib/plugins/authad/lang/sl/lang.php b/lib/plugins/authad/lang/sl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..dc7b3567ae4185063385632b9b162fa1af9e15d7 --- /dev/null +++ b/lib/plugins/authad/lang/sl/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author matej <mateju@svn.gnome.org> + */ +$lang['authpwdexpire'] = 'Geslo bo poteklo v %d dneh. PriporoÄljivo ga je zamenjati.'; diff --git a/lib/plugins/authad/lang/sv/lang.php b/lib/plugins/authad/lang/sv/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f253ae7fe60cf1d7b6ebcbb34fe23adc27657ebf --- /dev/null +++ b/lib/plugins/authad/lang/sv/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Smorkster Andersson smorkster@gmail.com + */ +$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.'; diff --git a/lib/plugins/authad/lang/tr/lang.php b/lib/plugins/authad/lang/tr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..2336e0f0c4c67e442ea3ae27d7f6d976b958423c --- /dev/null +++ b/lib/plugins/authad/lang/tr/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author farukerdemoncel@gmail.com + */ +$lang['authpwdexpire'] = 'Åžifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda deÄŸiÅŸtirmelisiniz.'; diff --git a/lib/plugins/authad/lang/zh-tw/lang.php b/lib/plugins/authad/lang/zh-tw/lang.php index 6ad0947a233e80db7e07e86c1e0eeb0380ca8747..b2ce48535b3baef5b68cb2801590b58ed55ac888 100644 --- a/lib/plugins/authad/lang/zh-tw/lang.php +++ b/lib/plugins/authad/lang/zh-tw/lang.php @@ -4,5 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author June-Hao Hou <junehao@gmail.com> + * @author syaoranhinata@gmail.com */ $lang['domain'] = '登入網域'; +$lang['authpwdexpire'] = '您的密碼將在 %d å¤©å…§åˆ°æœŸï¼Œè«‹é¦¬ä¸Šæ›´æ›æ–°å¯†ç¢¼ã€‚'; diff --git a/lib/plugins/authad/lang/zh/lang.php b/lib/plugins/authad/lang/zh/lang.php index 2a05aa1682e467f181bb7b7a3ca428f3d63dc6b2..30d504515a65491de9130ee896446d62132378d7 100644 --- a/lib/plugins/authad/lang/zh/lang.php +++ b/lib/plugins/authad/lang/zh/lang.php @@ -4,5 +4,10 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author lainme <lainme993@gmail.com> + * @author Errol <errol@hotmail.com> */ $lang['domain'] = '登录域'; +$lang['authpwdexpire'] = '您的密ç 将在 %d 天内过期,请尽快更改'; +$lang['passchangefail'] = 'å¯†ç æ›´æ”¹å¤±è´¥ã€‚æ˜¯ä¸æ˜¯å¯†ç 规则ä¸ç¬¦åˆï¼Ÿ'; +$lang['userchangefail'] = '更改用户属性失败。或许您的å¸å·æ²¡æœ‰å𿤿›´æ”¹çš„æƒé™ï¼Ÿ'; +$lang['connectfail'] = 'æ— æ³•è¿žæŽ¥åˆ°Active DirectoryæœåŠ¡å™¨ã€‚'; diff --git a/lib/plugins/authad/plugin.info.txt b/lib/plugins/authad/plugin.info.txt index dc06291896e66d3a3fdc13187cc7556caabd6135..57e1387e9696a95e2bc078fc333eb9ca3d85692f 100644 --- a/lib/plugins/authad/plugin.info.txt +++ b/lib/plugins/authad/plugin.info.txt @@ -1,7 +1,7 @@ base authad author Andreas Gohr email andi@splitbrain.org -date 2014-04-03 +date 2015-07-13 name Active Directory Auth Plugin desc Provides user authentication against a Microsoft Active Directory url http://www.dokuwiki.org/plugin:authad diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index 9d031c04936240355cea4739e83195c81c5b24d9..4c9c17786e1653e8767f752ab987d5141ab23aec 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -60,7 +60,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // indirect user bind if($this->getConf('binddn') && $this->getConf('bindpw')) { // use superuser credentials - if(!@ldap_bind($this->con, $this->getConf('binddn'), $this->getConf('bindpw'))) { + if(!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))) { $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } @@ -165,7 +165,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // force superuser bind if wanted and not bound as superuser yet if($this->getConf('binddn') && $this->getConf('bindpw') && $this->bound < 2) { // use superuser credentials - if(!@ldap_bind($this->con, $this->getConf('binddn'), $this->getConf('bindpw'))) { + if(!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))) { $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } @@ -281,14 +281,14 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // open the connection to the ldap if(!$this->_openLDAP()){ - msg('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con))); + $this->_debug('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } // find the information about the user, in particular the "dn" $info = $this->getUserData($user,true); if(empty($info['dn'])) { - msg('LDAP cannot find your user dn'); + $this->_debug('LDAP cannot find your user dn', 0, __LINE__, __FILE__); return false; } $dn = $info['dn']; @@ -301,13 +301,13 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // bind with the ldap if(!@ldap_bind($this->con, $dn, $pass)){ - msg('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); + $this->_debug('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } } elseif ($this->getConf('binddn') && $this->getConf('bindpw')) { // we are changing the password on behalf of the user (eg: forgotten password) // bind with the superuser ldap - if (!@ldap_bind($this->con, $this->getConf('binddn'), $this->getConf('bindpw'))){ + if (!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))){ $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } @@ -322,7 +322,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { // change the password if(!@ldap_mod_replace($this->con, $dn,array('userpassword' => $hash))){ - msg('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con))); + $this->_debug('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__); return false; } @@ -463,9 +463,12 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { * @return string */ protected function _filterEscape($string) { - return preg_replace( - '/([\x00-\x1F\*\(\)\\\\])/e', - '"\\\\\".join("",unpack("H2","$1"))', + // see https://github.com/adldap/adLDAP/issues/22 + return preg_replace_callback( + '/([\x00-\x1F\*\(\)\\\\])/', + function ($matches) { + return "\\".join("", unpack("H2", $matches[1])); + }, $string ); } @@ -479,6 +482,10 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { protected function _openLDAP() { if($this->con) return true; // connection already established + if($this->getConf('debug')) { + ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); + } + $this->bound = 0; $port = $this->getConf('port'); @@ -543,7 +550,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { } if($this->getConf('binddn') && $this->getConf('bindpw')) { - $bound = @ldap_bind($this->con, $this->getConf('binddn'), $this->getConf('bindpw')); + $bound = @ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw'))); $this->bound = 2; } else { $bound = @ldap_bind($this->con); @@ -555,6 +562,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { if(!$bound) { msg("LDAP: couldn't connect to LDAP server", -1); + $this->_debug(ldap_error($this->con), 0, __LINE__, __FILE__); return false; } diff --git a/lib/plugins/authldap/conf/metadata.php b/lib/plugins/authldap/conf/metadata.php index a67b11ca65d2d8c2436acc8a2643ee255e65fcba..f32aed1914bb9ac09e39ce82b43a6791cc12277d 100644 --- a/lib/plugins/authldap/conf/metadata.php +++ b/lib/plugins/authldap/conf/metadata.php @@ -10,7 +10,7 @@ $meta['starttls'] = array('onoff','_caution' => 'danger'); $meta['referrals'] = array('multichoice','_choices' => array(-1,0,1),'_caution' => 'danger'); $meta['deref'] = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'danger'); $meta['binddn'] = array('string','_caution' => 'danger'); -$meta['bindpw'] = array('password','_caution' => 'danger'); +$meta['bindpw'] = array('password','_caution' => 'danger','_code'=>'base64'); //$meta['mapping']['name'] unsupported in config manager //$meta['mapping']['grps'] unsupported in config manager $meta['userscope'] = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger'); diff --git a/lib/plugins/authldap/lang/cs/lang.php b/lib/plugins/authldap/lang/cs/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..9b0e8d244c5188c4b01fa49eeb1692e6a0932bed --- /dev/null +++ b/lib/plugins/authldap/lang/cs/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['connectfail'] = 'LDAP pÅ™ipojenà nefunkÄnÃ: %s'; +$lang['domainfail'] = 'LDAP nenalezlo uživatelské dn'; diff --git a/lib/plugins/authldap/lang/cs/settings.php b/lib/plugins/authldap/lang/cs/settings.php index 08c5c6a16fa04e3c2001f8d21da61a353a7aa6ca..c7e070ca8c44c7fe0ac5bb0c2a89d9ad1d91f44f 100644 --- a/lib/plugins/authldap/lang/cs/settings.php +++ b/lib/plugins/authldap/lang/cs/settings.php @@ -20,6 +20,7 @@ $lang['binddn'] = 'Doménový název DN volitelnÄ› pÅ™ipojeného $lang['bindpw'] = 'Heslo uživatele výše'; $lang['userscope'] = 'Omezenà rozsahu vyhledávánà uživatele'; $lang['groupscope'] = 'Omezenà rozsahu vyhledávánà skupiny'; +$lang['userkey'] = 'Atribut oznaÄujÃcà uživatelské jméno; musà být konzistetnà s uživatelským filtrem.'; $lang['groupkey'] = 'Atribut Å¡lenstvà uživatele ve skupinách (namÃsto standardnÃch AD skupin), tj. skupina z oddÄ›lenà nebo telefonnà ÄÃslo'; $lang['modPass'] = 'Může být LDAP heslo zmÄ›nÄ›no pÅ™es dokuwiki?'; $lang['debug'] = 'Zobrazit dodateÄné debugovacà informace'; diff --git a/lib/plugins/authldap/lang/cy/lang.php b/lib/plugins/authldap/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f6c5cf6bdfbc4d4d73695d0b68ab841b3329553b --- /dev/null +++ b/lib/plugins/authldap/lang/cy/lang.php @@ -0,0 +1,11 @@ +<?php +/** + * Welsh language file for authldap plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'LDAP yn methu cysylltu: %s'; +$lang['domainfail'] = 'LDAP yn methu darganfod eich defnyddiwr dn'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authldap/lang/cy/settings.php b/lib/plugins/authldap/lang/cy/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..91c9bfdee0f9078580e9e75226da24637b82bffe --- /dev/null +++ b/lib/plugins/authldap/lang/cy/settings.php @@ -0,0 +1,29 @@ +<?php +$lang['server'] = 'Eich gweinydd LDAP. Naill ai enw\'r gweinydd (<code>localhost</code>) neu\'r URL llawn (<code>ldap://server.tld:389</code>)'; +$lang['port'] = 'Porth gweinydd LDAP os nac oes URL llawn wedi\'i gyflwyno uchod'; +$lang['usertree'] = 'Ble i ddarganfod cyfrifon defnyddwyr. Ee. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Ble i ddarganfod y grwpiau defnyddiwr. Eg. <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'Hidlydd LDAP i ddarganfod cyfrifon defnyddwyr. Eg. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'Hidlydd LDAP i chwilio am grwpiau. Eg. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'Y fersiwn protocol i\'w ddefnyddio. Efallai bydd angen gosod hwn i <code>3</code>'; +$lang['starttls'] = 'Defnyddio cysylltiadau TLS?'; +$lang['referrals'] = 'Dilyn cyfeiriadau (referrals)?'; +$lang['deref'] = 'Sut i ddadgyfeirio alias?'; //alias - enw arall? +$lang['binddn'] = 'DN rhwymiad defnyddiwr opsiynol os ydy rhwymiad anhysbys yn annigonol. Ee. <code>cn=admin, dc=my, dc=home</code>'; +$lang['bindpw'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['userscope'] = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad defnyddwyr'; +$lang['groupscope'] = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad grwpiau'; +$lang['userkey'] = 'Priodoledd yn denodi\'r defnyddair; rhaid iddo fod yn gyson i \'r hidlydd defnyddwyr.'; +$lang['groupkey'] = 'Aelodaeth grŵp o unrhyw briodoledd defnyddiwr (yn hytrach na grwpiau AD safonol) e.e. grŵp o adran neu rif ffôn'; +$lang['modPass'] = 'Gall cyfrinair LDAP gael ei newid gan DokuWiki?'; +$lang['debug'] = 'Dangos gwybodaeth dadfygio ychwanegol gyda gwallau'; + + +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; + +$lang['referrals_o_-1'] = 'defnyddio\'r diofyn'; +$lang['referrals_o_0'] = 'peidio dilyn cyfeiriadau'; +$lang['referrals_o_1'] = 'dilyn cyfeiriadau'; \ No newline at end of file diff --git a/lib/plugins/authldap/lang/de/lang.php b/lib/plugins/authldap/lang/de/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..74197f918a6500692d5ce4252043e85295016b2d --- /dev/null +++ b/lib/plugins/authldap/lang/de/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Philip Knack <p.knack@stollfuss.de> + */ +$lang['connectfail'] = 'LDAP-Verbindung scheitert: %s'; +$lang['domainfail'] = 'LDAP kann nicht dein Benutzer finden dn'; diff --git a/lib/plugins/authldap/lang/de/settings.php b/lib/plugins/authldap/lang/de/settings.php index 933189c403ab112f90ff211970452f163e2d6993..e986d0f80513c9d701720210778afcbdbbb51252 100644 --- a/lib/plugins/authldap/lang/de/settings.php +++ b/lib/plugins/authldap/lang/de/settings.php @@ -5,6 +5,8 @@ * * @author Matthias Schulte <dokuwiki@lupo49.de> * @author christian studer <cstuder@existenz.ch> + * @author Philip Knack <p.knack@stollfuss.de> + * @author Anika Henke <anika@selfthinker.org> */ $lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).'; $lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.'; @@ -28,3 +30,6 @@ $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'Standard verwenden'; +$lang['referrals_o_0'] = 'Nicht Referrals folgen'; +$lang['referrals_o_1'] = 'Referrals folgen'; diff --git a/lib/plugins/authldap/lang/en/lang.php b/lib/plugins/authldap/lang/en/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8185a84fa04d0f528b2559b9aeca7b186206ed8f --- /dev/null +++ b/lib/plugins/authldap/lang/en/lang.php @@ -0,0 +1,11 @@ +<?php +/** + * English language file for authldap plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'LDAP cannot connect: %s'; +$lang['domainfail'] = 'LDAP cannot find your user dn'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authldap/lang/es/lang.php b/lib/plugins/authldap/lang/es/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..20de155c15d72fdaad6512dd368eb70d89a758b3 --- /dev/null +++ b/lib/plugins/authldap/lang/es/lang.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mauricio Segura <maose38@yahoo.es> + */ +$lang['connectfail'] = 'LDAP no se puede conectar: %s'; diff --git a/lib/plugins/authldap/lang/fa/lang.php b/lib/plugins/authldap/lang/fa/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..fdf4f6da982190c75114bae02e5543bbed4177aa --- /dev/null +++ b/lib/plugins/authldap/lang/fa/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['connectfail'] = 'LDAP نمیتواند وصل شود: %s'; +$lang['domainfail'] = 'LDAP نمیتواند کاربر شما را پیدا کند'; diff --git a/lib/plugins/authldap/lang/fa/settings.php b/lib/plugins/authldap/lang/fa/settings.php index 49d485afdd6346014cf493d951f50210a9fadce2..72eccb0ef40a45483eb557da4ce8cd98eea1bab7 100644 --- a/lib/plugins/authldap/lang/fa/settings.php +++ b/lib/plugins/authldap/lang/fa/settings.php @@ -5,6 +5,32 @@ * * @author Mohammad Sadegh <msdn2013@gmail.com> * @author Omid Hezaveh <hezpublic@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['server'] = 'سرور LDAP شما. Ú†Ù‡ به صورت '; +$lang['port'] = 'درگاه سرور LDAP اگر Ú©Ù‡ URL کامل در بالا نوشته نشده'; +$lang['usertree'] = 'Ù…ØÙ„ ØØ³Ø§Ø¨â€ŒÙ‡Ø§ÛŒ کاربری. برای مثال <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Ù…ØÙ„ گروه‌های کاربری. برای مثال <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'Ùیتلرهای LDAP برای جستجوی ØØ³Ø§Ø¨â€ŒÙ‡Ø§ÛŒ کاربری. برای مثال <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'Ùیلتر LDAP برای جستجوی گروه‌ها. برای مثال <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'نسخهٔ پروتوکل برای Ø§Ø³ØªÙØ§Ø¯Ù‡. Ø§ØØªÙ…الا این را باید <code>3</code> وارد کنید.'; $lang['starttls'] = 'از تی‌ال‌اس (TLS) Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟'; +$lang['referrals'] = 'آیا ارجاعات باید دنبال شوند؟'; +$lang['deref'] = 'نام‌های مستعار چطور ارجاع یابی شوند؟'; +$lang['binddn'] = ' DN برای کاربر اتصال اگر اتصال ناشناخته کاÙÛŒ نیست. مثال +<code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'رمزعبور کاربر بالا'; +$lang['userscope'] = 'Ù…ØØ¯ÙˆØ¯ کردن Ù…ØØ¯ÙˆØ¯Ù‡Ù” جستجو به جستجوی کاربر'; +$lang['groupscope'] = 'Ù…ØØ¯ÙˆØ¯ کردن Ù…ØØ¯ÙˆØ¯Ù‡Ù” جستجو به جستجوی گروه'; +$lang['userkey'] = 'ØµÙØªÛŒ Ú©Ù‡ نشان‌دهندهٔ نام کاربر است؛ باید با userfilter نامتناقض باشد.'; +$lang['groupkey'] = 'عضویت در گروه برمبنای هر کدام از ØµÙØ§Øª کاربر (به جای گروه‌های استاندارد AD) برای مثال گروه برمبنای دپارتمان یا شماره تلÙÙ†'; +$lang['modPass'] = 'آیا پسورد LDAP می‌تواند توسط داکو ویکی تغییر کند؟'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی در ارورها'; +$lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; +$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; +$lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; +$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از Ù¾ÛŒØ´ÙØ±Ø¶'; +$lang['referrals_o_0'] = 'ارجاعات را دنبال Ù†Ú©Ù†'; +$lang['referrals_o_1'] = 'ارجاعات را دنبال Ú©Ù†'; diff --git a/lib/plugins/authldap/lang/fr/lang.php b/lib/plugins/authldap/lang/fr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5797bda428e7345e8452cd1588efd5f0485d19ae --- /dev/null +++ b/lib/plugins/authldap/lang/fr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + */ +$lang['connectfail'] = 'LDAP ne peux se connecter : %s'; +$lang['domainfail'] = 'LDAP ne trouve pas l\'utilisateur dn'; diff --git a/lib/plugins/authldap/lang/fr/settings.php b/lib/plugins/authldap/lang/fr/settings.php index aa75105cf627fe5d804a4d6cf478499599f01ac6..619aee3d323f630b78bcc78076c35539df547080 100644 --- a/lib/plugins/authldap/lang/fr/settings.php +++ b/lib/plugins/authldap/lang/fr/settings.php @@ -21,7 +21,9 @@ $lang['binddn'] = 'Nom de domaine d\'un utilisateur de connexion $lang['bindpw'] = 'Mot de passe de l\'utilisateur ci-dessus.'; $lang['userscope'] = 'Limiter la portée de recherche d\'utilisateurs'; $lang['groupscope'] = 'Limiter la portée de recherche de groupes'; +$lang['userkey'] = 'Attribut indiquant le nom d\'utilisateur. Doit être en accord avec le filtre d\'utilisateur.'; $lang['groupkey'] = 'Affiliation aux groupes à partir de n\'importe quel attribut utilisateur (au lieu des groupes AD standards), p. ex. groupes par département ou numéro de téléphone'; +$lang['modPass'] = 'Peut-on changer le mot de passe LDAP depuis DokiWiki ?'; $lang['debug'] = 'Afficher des informations de bégogage supplémentaires pour les erreurs'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; diff --git a/lib/plugins/authldap/lang/he/settings.php b/lib/plugins/authldap/lang/he/settings.php index 357a58c56b8394b923ee21fbd107d6f9d58109fd..10af7010d21177312d329f9be591a16ca352a257 100644 --- a/lib/plugins/authldap/lang/he/settings.php +++ b/lib/plugins/authldap/lang/he/settings.php @@ -4,5 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author matt carroll <matt.carroll@gmail.com> + * @author Menashe Tomer <menashesite@gmail.com> */ $lang['starttls'] = 'השתמש בחיבורי TLS'; +$lang['modPass'] = '×”×× dokuwiki יכול ליצור סיסמ×ות LDAP?'; +$lang['debug'] = 'הצג מידע × ×•×¡×£ על שגי×ות'; +$lang['referrals_o_-1'] = 'ברירת מחדל'; diff --git a/lib/plugins/authldap/lang/hr/lang.php b/lib/plugins/authldap/lang/hr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5e13d1b0572ff7f47726693ecb82e5153ed33e53 --- /dev/null +++ b/lib/plugins/authldap/lang/hr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Davor Turkalj <turki.bsc@gmail.com> + */ +$lang['connectfail'] = 'LDAP se ne može spojiti: %s'; +$lang['domainfail'] = 'LDAP ne može pronaći VaÅ¡ korisniÄki dn'; diff --git a/lib/plugins/authldap/lang/hr/settings.php b/lib/plugins/authldap/lang/hr/settings.php index cb8df7218cc9bf64ccf4019d6c157eaac88a508c..5c306d84bb67e3d3a2580277062f4afba01c61e6 100644 --- a/lib/plugins/authldap/lang/hr/settings.php +++ b/lib/plugins/authldap/lang/hr/settings.php @@ -19,9 +19,14 @@ $lang['binddn'] = 'DN opcionalnog korisnika ako anonimni korisnik $lang['bindpw'] = 'Lozinka gore navedenog korisnika'; $lang['userscope'] = 'OgraniÄi podruÄje za pretragu korisnika'; $lang['groupscope'] = 'OgraniÄi podruÄje za pretragu grupa'; +$lang['userkey'] = 'Atribut oznaÄava ime; mora biti u skladu s korisniÄkim filterom.'; $lang['groupkey'] = 'ÄŒlanstvo grupa iz svih atributa korisnika (umjesto standardnih AD grupa) npr. grupa iz odjela ili telefonskog broja'; +$lang['modPass'] = 'Da li LDAP lozinka može biti izmijenjena kroz dokuwiki?'; $lang['debug'] = 'Prikaži dodatne informacije u sluÄaju greÅ¡ke'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'koristi podrazumijevano'; +$lang['referrals_o_0'] = 'ne slijedi preporuke'; +$lang['referrals_o_1'] = 'slijedi preporuke'; diff --git a/lib/plugins/authldap/lang/hu/lang.php b/lib/plugins/authldap/lang/hu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..07c16f3f007800426ed330d0b561521ba9510bd4 --- /dev/null +++ b/lib/plugins/authldap/lang/hu/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['connectfail'] = 'Az LDAP nem tudott csatlakozni: %s'; +$lang['domainfail'] = 'Az LDAP nem találta a felhasználód megkülönböztetÅ‘ nevét (DN)'; diff --git a/lib/plugins/authldap/lang/hu/settings.php b/lib/plugins/authldap/lang/hu/settings.php index 1e6608dabc9b6d4504e01a013022ad801165a90f..364a1e9870c043a5a78f11fb9bf15f91e1140226 100644 --- a/lib/plugins/authldap/lang/hu/settings.php +++ b/lib/plugins/authldap/lang/hu/settings.php @@ -20,9 +20,14 @@ $lang['binddn'] = 'Egy hozzáféréshez használt felhasználó D $lang['bindpw'] = 'Ehhez tartozó jelszó.'; $lang['userscope'] = 'A keresési tartomány korlátozása erre a felhasználókra való keresésnél'; $lang['groupscope'] = 'A keresési tartomány korlátozása erre a csoportokra való keresésnél'; +$lang['userkey'] = 'A felhasználónevet leÃró attribútum; konzisztensnek kell lennie a felhasználói szűrÅ‘vel (userfilter).'; $lang['groupkey'] = 'Csoport meghatározása a következÅ‘ attribútumból (az alapértelmezett AD csoporttagság helyett), pl. a szervezeti egység vagy a telefonszám'; +$lang['modPass'] = 'Az LDAP jelszó megváltoztatható a DokuWiki-n keresztül?'; $lang['debug'] = 'Továbi hibakeresési információk megjelenÃtése hiba esetén'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'alapértelmezett érték használata'; +$lang['referrals_o_0'] = 'ne kövesse az átirányÃtásokat (referral)'; +$lang['referrals_o_1'] = 'kövesse az átirányÃtásokat (referral)'; diff --git a/lib/plugins/authldap/lang/it/lang.php b/lib/plugins/authldap/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..9832e9319764ef99ea7322d3e76e779ac9a1d6be --- /dev/null +++ b/lib/plugins/authldap/lang/it/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['connectfail'] = 'LDAP non è in grado di connettere: %s'; +$lang['domainfail'] = 'LDAP non è in grado di trovare il tuo DN utente'; diff --git a/lib/plugins/authldap/lang/it/settings.php b/lib/plugins/authldap/lang/it/settings.php index 858c694b824373b8b30bd27af52048cbe405081b..58bf497ed17c4394b57b6d9e8ffdfa8a364abffd 100644 --- a/lib/plugins/authldap/lang/it/settings.php +++ b/lib/plugins/authldap/lang/it/settings.php @@ -6,6 +6,7 @@ * @author Edmondo Di Tucci <snarchio@gmail.com> * @author Claudio Lanconelli <lancos@libero.it> * @author Francesco <francesco.cavalli@hotmail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['server'] = 'Il tuo server LDAP. Inserire o l\'hostname (<code>localhost</code>) oppure un URL completo (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.'; @@ -15,11 +16,20 @@ $lang['userfilter'] = 'Filtro per cercare l\'account utente LDAP. Eg. $lang['groupfilter'] = 'Filtro per cercare i gruppi LDAP. Eg. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'Versione protocollo da usare. Pu<code>3</code>'; $lang['starttls'] = 'Usare la connessione TSL?'; +$lang['referrals'] = 'Possono i reindirizzamenti essere seguiti?'; $lang['deref'] = 'Come differenziare un alias?'; +$lang['binddn'] = 'DN di un utente bind opzionale se un bind anonimo non è sufficiente. E.g. <code>cn=admin, dc=casa, dc=mia</code>'; +$lang['bindpw'] = 'Password del utente di cui sopra'; $lang['userscope'] = 'Limita il contesto di ricerca per la ricerca degli utenti'; $lang['groupscope'] = 'Limita il contesto di ricerca per la ricerca dei gruppi'; +$lang['userkey'] = 'Attributo indicante il nome utente; deve essere consistente con il filtro utente.'; +$lang['groupkey'] = 'Gruppo di appartenenza sulla base di qualunque attributo utente (invece di gruppo AD standard) e.g. gruppo in base al dipartimento o al numero di telefono'; +$lang['modPass'] = 'Può la password LDAP essere cambiata attraverso DokuWiki?'; $lang['debug'] = 'In caso di errori mostra ulteriori informazioni di debug'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'usa default'; +$lang['referrals_o_0'] = 'non seguire i reindirizzamenti'; +$lang['referrals_o_1'] = 'segui i reindirizzamenti'; diff --git a/lib/plugins/authldap/lang/ja/lang.php b/lib/plugins/authldap/lang/ja/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..aeeb6c75e7956d16d3044fcabbe08013537f20e6 --- /dev/null +++ b/lib/plugins/authldap/lang/ja/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['connectfail'] = 'LDAP ã«æŽ¥ç¶šã§ãã¾ã›ã‚“: %s'; +$lang['domainfail'] = 'LDAP ã§ user dn を発見ã§ãã¾ã›ã‚“。'; diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index 6cff0ea67a1a25a1f3e89339057ea7e56e7ad79e..99a70de7964ae451d590e09cb07a734f4a9693a0 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -7,6 +7,7 @@ * @author Hideaki SAWADA <sawadakun@live.jp> * @author Hideaki SAWADA <chuno@live.jp> * @author PzF_X <jp_minecraft@yahoo.co.jp> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['server'] = 'LDAPサーãƒãƒ¼ã€‚ホストå(<code>localhost</code>)åˆã¯å®Œå…¨ä¿®é£¾URL(<code>ldap://server.tld:389</code>)'; $lang['port'] = '上記ãŒå®Œå…¨ä¿®é£¾URLã§ãªã„å ´åˆã€LDAPサーãƒãƒ¼ãƒãƒ¼ãƒˆ'; @@ -22,10 +23,15 @@ $lang['binddn'] = '匿åãƒã‚¤ãƒ³ãƒ‰ã§ã¯ä¸å分ãªå ´åˆã€ $lang['bindpw'] = '上記ユーザーã®ãƒ‘スワード'; $lang['userscope'] = 'ユーザー検索ã®ç¯„囲をé™å®šã•ã›ã‚‹'; $lang['groupscope'] = 'グループ検索ã®ç¯„囲をé™å®šã•ã›ã‚‹'; +$lang['userkey'] = 'ユーザーåを示ã™å±žæ€§ã€‚userfilter ã¨ä¸€è‡´ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'; $lang['groupkey'] = 'ユーザー属性をグループã®ãƒ¡ãƒ³ãƒãƒ¼ã‚·ãƒƒãƒ—ã‹ã‚‰è¨å®šã—ã¾ã™(代ã‚ã‚Šã«æ¨™æº–ã®ADグループ)。 例ãˆã°ã€éƒ¨ç½²ã‚„電話番å·ãªã©ã§ã™ã€‚'; +$lang['modPass'] = 'DokuWiki ã‹ã‚‰ LDAP パスワードã®å¤‰æ›´ãŒå¯èƒ½ï¼Ÿ'; $lang['debug'] = 'エラーã«é–¢ã—ã¦è¿½åŠ ã®ãƒ‡ãƒãƒƒã‚°æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹ã€‚'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'デフォルトを使用ã™ã‚‹'; +$lang['referrals_o_0'] = 'referral ã«å¾“ã‚ãªã„'; +$lang['referrals_o_1'] = 'referral ã«å¾“ã†'; diff --git a/lib/plugins/authldap/lang/ko/lang.php b/lib/plugins/authldap/lang/ko/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3c6722a81230ea4f33465d6de49ede159793e14c --- /dev/null +++ b/lib/plugins/authldap/lang/ko/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['connectfail'] = 'LDAPê°€ ì—°ê²°í• ìˆ˜ 없습니다: %s'; +$lang['domainfail'] = 'LDAPê°€ ì‚¬ìš©ìž DNì„ ì°¾ì„ ìˆ˜ 없습니다'; diff --git a/lib/plugins/authldap/lang/nl/lang.php b/lib/plugins/authldap/lang/nl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7cbec9baa6ab9da37b1c9fac5f085afce1399e08 --- /dev/null +++ b/lib/plugins/authldap/lang/nl/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hugo Smet <hugo.smet@scarlet.be> + */ +$lang['connectfail'] = 'LDAP kan niet connecteren: %s'; +$lang['domainfail'] = 'LDAP kan je gebruikers dn niet vinden'; diff --git a/lib/plugins/authldap/lang/nl/settings.php b/lib/plugins/authldap/lang/nl/settings.php index 193d1a386b33d4d6d19f3c8c600658d129a8482b..41fcce2cd66f0bc4ae2ef814d871de80b90b9189 100644 --- a/lib/plugins/authldap/lang/nl/settings.php +++ b/lib/plugins/authldap/lang/nl/settings.php @@ -5,6 +5,7 @@ * * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Remon <no@email.local> + * @author Johan Wijnker <johan@wijnker.eu> */ $lang['server'] = 'Je LDAP server. Of de servernaam (<code>localhost</code>) of de volledige URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP server poort als bij de entry hierboven geen volledige URL is opgegeven'; @@ -20,9 +21,14 @@ $lang['binddn'] = 'DN van een optionele bind gebruiker als anonie $lang['bindpw'] = 'Wachtwoord van bovenstaande gebruiker'; $lang['userscope'] = 'Beperken scope van zoekfuncties voor gebruikers'; $lang['groupscope'] = 'Beperken scope van zoekfuncties voor groepen'; +$lang['userkey'] = 'Attribuut aanduiding van de gebruikersnaam; moet consistent zijn met userfilter.'; $lang['groupkey'] = 'Groepslidmaatschap van enig gebruikersattribuut (in plaats van standaard AD groepen), bijv. groep van afdeling of telefoonnummer'; +$lang['modPass'] = 'Kan het LDAP wachtwoord worden gewijzigd met DokuWiki?'; $lang['debug'] = 'Tonen van aanvullende debuginformatie bij fouten'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'gebruik standaard'; +$lang['referrals_o_0'] = 'volg verwijzing niet'; +$lang['referrals_o_1'] = 'volg verwijzing'; diff --git a/lib/plugins/authldap/lang/pt-br/lang.php b/lib/plugins/authldap/lang/pt-br/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..20f5ec33bb3125fb35790e2312ba2ce277e1f7d2 --- /dev/null +++ b/lib/plugins/authldap/lang/pt-br/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar ao LDAP: %s'; +$lang['domainfail'] = 'Não foi possÃvel encontrar o seu user dn no LDAP'; diff --git a/lib/plugins/authldap/lang/pt-br/settings.php b/lib/plugins/authldap/lang/pt-br/settings.php index 6ad6b4862fb347441f936024d498dc60726eceb6..f35ed8eb85306397b5fb3370643fdf66e17978a0 100644 --- a/lib/plugins/authldap/lang/pt-br/settings.php +++ b/lib/plugins/authldap/lang/pt-br/settings.php @@ -5,6 +5,7 @@ * * @author Victor Westmann <victor.westmann@gmail.com> * @author Frederico Guimarães <frederico@teia.bio.br> + * @author Hudson FAS <hudsonfas@gmail.com> */ $lang['server'] = 'Seu servidor LDAP. Ou hostname (<code>localhost</code>) ou uma URL completa (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Porta LDAP do servidor se nenhuma URL completa tiver sido fornecida acima'; @@ -20,9 +21,14 @@ $lang['binddn'] = 'DN de um vÃnculo opcional de usuário se vÃn $lang['bindpw'] = 'Senha do usuário acima'; $lang['userscope'] = 'Limitar escopo da busca para busca de usuário'; $lang['groupscope'] = 'Limitar escopo da busca para busca de grupo'; +$lang['userkey'] = 'Atributo que indica o nome do usuário; deve ser consistente com userfilter.'; $lang['groupkey'] = 'Membro de grupo vem de qualquer atributo do usuário (ao invés de grupos padrões AD) e.g. departamento de grupo ou número de telefone'; +$lang['modPass'] = 'A senha LDAP pode ser alterada pelo dokuwiki ?'; $lang['debug'] = 'Mostrar informações adicionais de depuração em erros'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'use o padrão'; +$lang['referrals_o_0'] = 'não seguem referências'; +$lang['referrals_o_1'] = 'seguem referências'; diff --git a/lib/plugins/authldap/lang/pt/lang.php b/lib/plugins/authldap/lang/pt/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..cd782f4b421cdc4826d36dba561c5b65914551d7 --- /dev/null +++ b/lib/plugins/authldap/lang/pt/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Paulo Carmino <contato@paulocarmino.com> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar o LDAP: %s'; +$lang['domainfail'] = 'O LDAP não encontrou seu usuário'; diff --git a/lib/plugins/authldap/lang/pt/settings.php b/lib/plugins/authldap/lang/pt/settings.php index b54f2a1bcdb1d6dc5242f5845d30d3b525a17a99..4d4ed2d85bb532f0df61324e37f8c294ff38fedc 100644 --- a/lib/plugins/authldap/lang/pt/settings.php +++ b/lib/plugins/authldap/lang/pt/settings.php @@ -5,6 +5,8 @@ * * @author André Neves <drakferion@gmail.com> * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> */ $lang['server'] = 'O seu servidor de LDAP. Ou hostname (<code>localhost</code>) ou URL qualificado completo (<code>ldap://servidor.tld:389</code>)'; $lang['port'] = 'Porta de servidor de LDAP se o URL completo não foi fornecido acima'; @@ -21,8 +23,12 @@ $lang['bindpw'] = 'Senha do utilizador acima'; $lang['userscope'] = 'Escopo de pesquisa Limite para pesquisa de usuário'; $lang['groupscope'] = 'Escopo de pesquisa Limite para pesquisa de grupo'; $lang['groupkey'] = 'A participação no grupo a partir de qualquer atributo de usuário (em vez de AD padrão de grupos) exemplo: grupo de departamento ou número de telefone'; +$lang['modPass'] = 'Sua senha LDAP pode ser alterada via dokuwiki?'; $lang['debug'] = 'Mostrar informação adicional de debug aquando de erros'; $lang['deref_o_0'] = 'LDAP_DEREF_NUNCA'; $lang['deref_o_1'] = 'LDAP_DEREF_PESQUISANDO'; $lang['deref_o_2'] = 'LDAP_DEREF_BUSCANDO'; $lang['deref_o_3'] = 'LDAP_DEREF_SEMPRE'; +$lang['referrals_o_-1'] = 'usar padrão'; +$lang['referrals_o_0'] = 'não seguir as referências'; +$lang['referrals_o_1'] = 'seguir as referências'; diff --git a/lib/plugins/authldap/lang/ru/lang.php b/lib/plugins/authldap/lang/ru/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c05ed3b1545204e912f6e7cab7fc5628c4aaf848 --- /dev/null +++ b/lib/plugins/authldap/lang/ru/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Takumo <9206984@mail.ru> + */ +$lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ LDAP Ñ %s'; +$lang['domainfail'] = 'Ðе найдено Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ LDAP (dn)'; diff --git a/lib/plugins/authldap/lang/ru/settings.php b/lib/plugins/authldap/lang/ru/settings.php index 1e5391644c47bc95bf1caf718b2e9d837e31afe2..0b6ad4abd23f0ea35c0a214bd9140e2a27933450 100644 --- a/lib/plugins/authldap/lang/ru/settings.php +++ b/lib/plugins/authldap/lang/ru/settings.php @@ -9,6 +9,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Владимир <id37736@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> */ $lang['server'] = 'Ваш LDAP-Ñервер. Либо Ð¸Ð¼Ñ Ñ…Ð¾Ñта (<code>localhost</code>), либо полный URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'Порт LDAP-Ñервера, еÑли выше не был указан полный URL'; @@ -18,12 +19,20 @@ $lang['userfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка акка $lang['groupfilter'] = 'LDAP-фильтр Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка групп. Ðапример: <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = 'ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð°. Возможно, вам нужно указать <code>3</code>'; $lang['starttls'] = 'ИÑпользовать TLS-подключениÑ?'; +$lang['referrals'] = 'Следовать за referrals?'; $lang['deref'] = 'Как раÑшифровывать пÑевдонимы?'; +$lang['binddn'] = 'DN вторичного bind-пользователÑ, еÑли anonymous bind недоÑтаточно. Ðапример: <code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['userscope'] = 'Ограничить облаÑть поиÑка при поиÑке пользователей'; $lang['groupscope'] = 'Ограничить облаÑть поиÑка при поиÑке групп'; +$lang['userkey'] = 'Ðтрибут означающий Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ; должен быть таким же как в userfilter'; +$lang['groupkey'] = 'ИÑпользовать любой атрибут Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² группу (вмеÑто Ñтандартного AD groups) Ðапример из атрибута department или telephone number'; +$lang['modPass'] = 'Может ли пароль LDAP быть изменён через «Докувики»?'; $lang['debug'] = 'Показывать дополнительную отладочную информацию при ошибках'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; $lang['deref_o_2'] = 'LDAP_DEREF_FINDING'; $lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; +$lang['referrals_o_-1'] = 'иÑользовать по умолчанию'; +$lang['referrals_o_0'] = 'не Ñледовать за referrals'; +$lang['referrals_o_1'] = 'Ñледовать за referrals'; diff --git a/lib/plugins/authldap/lang/zh-tw/settings.php b/lib/plugins/authldap/lang/zh-tw/settings.php index e3d85cb873e532e2f6be164763620fc73433170a..cb0bb71a43a10b4cb5d3c86572bf13875a0bf41e 100644 --- a/lib/plugins/authldap/lang/zh-tw/settings.php +++ b/lib/plugins/authldap/lang/zh-tw/settings.php @@ -9,8 +9,8 @@ $lang['server'] = '您的 LDAP 伺æœå™¨ã€‚填寫主機å稱 (<c $lang['port'] = 'LDAP 伺æœå™¨ç«¯å£ (若上方沒填寫完整的 URL)'; $lang['usertree'] = '到哪è£å°‹æ‰¾ä½¿ç”¨è€…帳號?如: <code>ou=People, dc=server, dc=tld</code>'; $lang['grouptree'] = '到哪è£å°‹æ‰¾ä½¿ç”¨è€…群組?如: <code>ou=Group, dc=server, dc=tld</code>'; -$lang['userfilter'] = '用於æœç´¢ä½¿ç”¨è€…賬號的 LDAP 篩é¸å™¨ã€‚如: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; -$lang['groupfilter'] = '用於æœç´¢ç¾¤çµ„çš„ LDAP 篩é¸å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['userfilter'] = '用於æœç´¢ä½¿ç”¨è€…賬號的 LDAP 篩é¸å™¨ã€‚如: <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = '用於æœç´¢ç¾¤çµ„çš„ LDAP 篩é¸å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = '使用的通訊å”定版本。您å¯èƒ½è¦è¨ç½®ç‚º <code>3</code>'; $lang['starttls'] = '使用 TLS 連接嗎?'; $lang['referrals'] = '是å¦å…許引用 (referrals)?'; diff --git a/lib/plugins/authldap/lang/zh/lang.php b/lib/plugins/authldap/lang/zh/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ef727497ed2ccae463b734cfd9b04e4b415c9bf5 --- /dev/null +++ b/lib/plugins/authldap/lang/zh/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Errol <errol@hotmail.com> + */ +$lang['connectfail'] = 'LDAP æ— æ³•è¿žæŽ¥: %s'; +$lang['domainfail'] = 'LDAP æ— æ³•æ‰¾åˆ°ä½ çš„ç”¨æˆ· dn'; diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php index d4ea5c615f6693ad55e866ab8754807e6387e754..7bb63975f08ca8602f8b37d84354d704833758d6 100644 --- a/lib/plugins/authldap/lang/zh/settings.php +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -5,13 +5,14 @@ * * @author lainme <lainme993@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> + * @author Errol <errol@hotmail.com> */ $lang['server'] = '您的 LDAP æœåŠ¡å™¨ã€‚å¡«å†™ä¸»æœºå (<code>localhost</code>) 或者完整的 URL (<code>ldap://server.tld:389</code>)'; $lang['port'] = 'LDAP æœåŠ¡å™¨ç«¯å£ (å¦‚æžœä¸Šé¢æ²¡æœ‰ç»™å‡ºå®Œæ•´çš„ URL)'; $lang['usertree'] = '何处查找用户账户。例如 <code>ou=People, dc=server, dc=tld</code>'; $lang['grouptree'] = '何处查找用户组。例如 <code>ou=Group, dc=server, dc=tld</code>'; -$lang['userfilter'] = '用于æœç´¢ç”¨æˆ·è´¦æˆ·çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; -$lang['groupfilter'] = '用于æœç´¢ç»„çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['userfilter'] = '用于æœç´¢ç”¨æˆ·è´¦æˆ·çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = '用于æœç´¢ç»„çš„ LDAP ç›é€‰å™¨ã€‚例如 <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = '使用的å议版本。您或许需è¦è®¾ç½®ä¸º <code>3</code>'; $lang['starttls'] = '使用 TLS 连接?'; $lang['referrals'] = '是å¦å…许引用 (referrals)?'; @@ -20,7 +21,9 @@ $lang['binddn'] = '一个å¯é€‰çš„绑定用户的 DN (如果匿 $lang['bindpw'] = '上述用户的密ç '; $lang['userscope'] = 'é™åˆ¶ç”¨æˆ·æœç´¢çš„范围'; $lang['groupscope'] = 'é™åˆ¶ç»„æœç´¢çš„范围'; +$lang['userkey'] = '表示用户åçš„å±žæ€§ï¼›å¿…é¡»å’Œç”¨æˆ·è¿‡æ»¤å™¨ä¿æŒä¸€è‡´ã€‚'; $lang['groupkey'] = 'æ ¹æ®ä»»ä½•用户属性得æ¥çš„组æˆå‘˜(è€Œä¸æ˜¯æ ‡å‡†çš„ AD 组)ï¼Œä¾‹å¦‚æ ¹æ®éƒ¨é—¨æˆ–者电è¯å·ç 得到的组。'; +$lang['modPass'] = ' LDAP密ç å¯ä»¥ç”±dokuwiki修改å—?'; $lang['debug'] = '有错误时显示é¢å¤–的调试信æ¯'; $lang['deref_o_0'] = 'LDAP_DEREF_NEVER'; $lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING'; diff --git a/lib/plugins/authldap/plugin.info.txt b/lib/plugins/authldap/plugin.info.txt index 964fbb99453718d2e1a5702cbd61464543a32084..e0c6144c37eb324fe70f97f2fa2de1a1a2e5b518 100644 --- a/lib/plugins/authldap/plugin.info.txt +++ b/lib/plugins/authldap/plugin.info.txt @@ -1,7 +1,7 @@ base authldap author Andreas Gohr email andi@splitbrain.org -date 2014-05-18 +date 2015-07-13 name LDAP Auth Plugin desc Provides user authentication against an LDAP server url http://www.dokuwiki.org/plugin:authldap diff --git a/lib/plugins/authmysql/auth.php b/lib/plugins/authmysql/auth.php index 0d423b6c9bf053a830fd508dba19cd0c392246f9..999542a3deb5288b6879c85fd11b749ebeecf727 100644 --- a/lib/plugins/authmysql/auth.php +++ b/lib/plugins/authmysql/auth.php @@ -222,6 +222,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { if($this->_openDB()) { if(($info = $this->_getUserInfo($user)) !== false) { + msg($this->getLang('userexists'), -1); return false; // user already exists } @@ -235,7 +236,13 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = $this->_addUser($user, $pwd, $name, $mail, $grps); $this->_unlockTables(); $this->_closeDB(); - if($rc) return true; + if(!$rc) { + msg($this->getLang('writefail')); + return null; + } + return true; + } else { + msg($this->getLang('connectfail'), -1); } return null; // return error } @@ -279,7 +286,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = $this->_updateUserInfo($user, $changes); - if($rc && isset($changes['grps']) && $this->cando['modGroups']) { + if(!$rc) { + msg($this->getLang('usernotexists'), -1); + } elseif(isset($changes['grps']) && $this->cando['modGroups']) { $groups = $this->_getGroups($user); $grpadd = array_diff($changes['grps'], $groups); $grpdel = array_diff($groups, $changes['grps']); @@ -295,10 +304,14 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $rc = false; } } + + if(!$rc) msg($this->getLang('writefail')); } $this->_unlockTables(); $this->_closeDB(); + } else { + msg($this->getLang('connectfail'), -1); } return $rc; } @@ -328,6 +341,8 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { $this->_unlockTables(); } $this->_closeDB(); + } else { + msg($this->getLang('connectfail'), -1); } return $count; } @@ -859,7 +874,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin { */ protected function _openDB() { if(!$this->dbcon) { - $con = @mysql_connect($this->getConf('server'), $this->getConf('user'), $this->getConf('password')); + $con = @mysql_connect($this->getConf('server'), $this->getConf('user'), conf_decodeString($this->getConf('password'))); if($con) { if((mysql_select_db($this->getConf('database'), $con))) { if((preg_match('/^(\d+)\.(\d+)\.(\d+).*/', mysql_get_server_info($con), $result)) == 1) { diff --git a/lib/plugins/authmysql/conf/metadata.php b/lib/plugins/authmysql/conf/metadata.php index 54d6f14041161cf916ed19bc41a997f7aa581c97..bad34e669b72e3b515d0a499bddd7f399b3ab6b1 100644 --- a/lib/plugins/authmysql/conf/metadata.php +++ b/lib/plugins/authmysql/conf/metadata.php @@ -2,7 +2,7 @@ $meta['server'] = array('string','_caution' => 'danger'); $meta['user'] = array('string','_caution' => 'danger'); -$meta['password'] = array('password','_caution' => 'danger'); +$meta['password'] = array('password','_caution' => 'danger','_code' => 'base64'); $meta['database'] = array('string','_caution' => 'danger'); $meta['charset'] = array('string','_caution' => 'danger'); $meta['debug'] = array('multichoice','_choices' => array(0,1,2),'_caution' => 'security'); @@ -31,4 +31,4 @@ $meta['UpdateEmail'] = array('string','_caution' => 'danger'); $meta['UpdateName'] = array('string','_caution' => 'danger'); $meta['UpdateTarget'] = array('string','_caution' => 'danger'); $meta['delUserGroup'] = array('','_caution' => 'danger'); -$meta['getGroupID'] = array('','_caution' => 'danger'); \ No newline at end of file +$meta['getGroupID'] = array('','_caution' => 'danger'); diff --git a/lib/plugins/authmysql/lang/bg/lang.php b/lib/plugins/authmysql/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..d5837c72631063c23903de22c522c994ac4a9933 --- /dev/null +++ b/lib/plugins/authmysql/lang/bg/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['connectfail'] = 'Свързването Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни Ñе провали.'; +$lang['userexists'] = 'За Ñъжаление вече ÑъщеÑтвува потребител Ñ Ñ‚Ð¾Ð²Ð° име.'; +$lang['usernotexists'] = 'За Ñъжаление не ÑъщеÑтвува такъв потребител.'; diff --git a/lib/plugins/authmysql/lang/cs/lang.php b/lib/plugins/authmysql/lang/cs/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..464a031b1604575d60edabe2816fe285c9d7f951 --- /dev/null +++ b/lib/plugins/authmysql/lang/cs/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['connectfail'] = 'Selhalo pÅ™ipojenà k databázi.'; +$lang['userexists'] = 'Omlouváme se, ale uživatel s tÃmto jménem již existuje.'; +$lang['usernotexists'] = 'Omlouváme se, uživatel tohoto jména neexistuje.'; +$lang['writefail'] = 'Nelze zmÄ›nit údaje uživatele. Informujte prosÃm správce wiki'; diff --git a/lib/plugins/authmysql/lang/cy/lang.php b/lib/plugins/authmysql/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a96715c12a1ca1fbdaac14af5c43d753803fba30 --- /dev/null +++ b/lib/plugins/authmysql/lang/cy/lang.php @@ -0,0 +1,13 @@ +<?php +/** + * Welsh language file for authmysql plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'Method y cysylltiad i\'r databas.'; +$lang['userexists'] = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.'; +$lang['usernotexists'] = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.'; +$lang['writefail'] = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authmysql/lang/cy/settings.php b/lib/plugins/authmysql/lang/cy/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..526cffa6151d74958b13d8f7793a5a2dfb5c1d71 --- /dev/null +++ b/lib/plugins/authmysql/lang/cy/settings.php @@ -0,0 +1,39 @@ +<?php + +$lang['server'] = 'Eich gweinydd MySQL'; +$lang['user'] = 'Defnyddair MySQL'; +$lang['password'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['database'] = 'Databas i\'w ddefnyddio'; +$lang['charset'] = 'Set nodau i\'w defnyddio gyda\'r databas'; +$lang['debug'] = 'Dangos gwybodaeth dadfygio ychwanegol'; +$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\''; +$lang['TablesToLock'] = 'Rhestr a wahanwyd gan goma o dablau sydd angen eu cloi yn ystod gweithredoedd ysgrifennu'; +$lang['checkPass'] = 'Datganiad SQL i wirio cyfrineiriau'; +$lang['getUserInfo'] = 'Datganiad SQL i nôl gwybodaeth defnyddiwr'; +$lang['getGroups'] = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr'; +$lang['getUsers'] = 'Datganiad SQL i restru pob defnyddiwr'; +$lang['FilterLogin'] = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi'; +$lang['FilterName'] = 'Cymal SQL i hidlo defnyddwyr gan enw llawn'; +$lang['FilterEmail'] = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost'; +$lang['FilterGroup'] = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp'; +$lang['SortOrder'] = 'Cymal SQL i drefnu defnyddwyr'; +$lang['addUser'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd'; +$lang['addGroup'] = 'Datganiad SQL i ychwanegu grŵp newydd'; +$lang['addUserGroup'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes'; +$lang['delGroup'] = 'Datganiad SQL i dynnu grŵp'; +$lang['getUserID'] = 'Datganiad SQL i nôl prif allwedd y defnyddiwr'; +$lang['delUser'] = 'Datganiad SQL i ddileu defnyddiwr'; +$lang['delUserRefs'] = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp'; +$lang['updateUser'] = 'Datganiad SQL i ddiweddaru proffil defnyddiwr'; +$lang['UpdateLogin'] = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr'; +$lang['UpdatePass'] = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr'; +$lang['UpdateEmail'] = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr'; +$lang['UpdateName'] = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr'; +$lang['UpdateTarget'] = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru'; +$lang['delUserGroup'] = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp'; +$lang['getGroupID'] = 'Datganiad SQL i nôl prif allwedd grŵp penodol'; + + +$lang['debug_o_0'] = 'dim'; +$lang['debug_o_1'] = 'gyda gwallau yn unig'; +$lang['debug_o_2'] = 'pob ymholiad SQL'; diff --git a/lib/plugins/authmysql/lang/de/lang.php b/lib/plugins/authmysql/lang/de/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c5c3c657a3dae22529c1b3c18df55a9b9f8de80a --- /dev/null +++ b/lib/plugins/authmysql/lang/de/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Noel Tilliot <noeltilliot@byom.de> + * @author Hendrik Diel <diel.hendrik@gmail.com> + * @author Philip Knack <p.knack@stollfuss.de> + */ +$lang['connectfail'] = 'Verbindung zur Datenbank fehlgeschlagen.'; +$lang['userexists'] = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.'; +$lang['usernotexists'] = 'Sorry, dieser Nutzer existiert nicht.'; +$lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.'; diff --git a/lib/plugins/authmysql/lang/en/lang.php b/lib/plugins/authmysql/lang/en/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8313616c6184e756a8c64360a91294515f06fb15 --- /dev/null +++ b/lib/plugins/authmysql/lang/en/lang.php @@ -0,0 +1,13 @@ +<?php +/** + * English language file for authmysql plugin + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ + +$lang['connectfail'] = 'Failed to connect to database.'; +$lang['userexists'] = 'Sorry, a user with this login already exists.'; +$lang['usernotexists'] = 'Sorry, that user doesn\'t exist.'; +$lang['writefail'] = 'Unable to modify user data. Please inform the Wiki-Admin'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/authmysql/lang/es/lang.php b/lib/plugins/authmysql/lang/es/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..e25b801c33b5316871d741316c04ea6cf2c11664 --- /dev/null +++ b/lib/plugins/authmysql/lang/es/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['connectfail'] = 'Error al conectar con la base de datos.'; +$lang['userexists'] = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.'; +$lang['usernotexists'] = 'Lo sentimos, no existe ese usuario.'; +$lang['writefail'] = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki'; diff --git a/lib/plugins/authmysql/lang/es/settings.php b/lib/plugins/authmysql/lang/es/settings.php index cda3c23f83654f8f53e7f91211878b70e9bcc114..8b5c79995028f5c0fb91ca6310a649fd8990e55f 100644 --- a/lib/plugins/authmysql/lang/es/settings.php +++ b/lib/plugins/authmysql/lang/es/settings.php @@ -7,6 +7,7 @@ * @author Eloy <ej.perezgomez@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Alejandro Nunez <nunez.alejandro@gmail.com> + * @author Domingo Redal <docxml@gmail.com> */ $lang['server'] = 'Tu servidor MySQL'; $lang['user'] = 'Nombre de usuario MySQL'; @@ -37,6 +38,7 @@ $lang['UpdateLogin'] = 'Cláusula de actualización para actualizar el $lang['UpdatePass'] = 'Cláusula de actualización para actualizar la contraseña del usuario'; $lang['UpdateEmail'] = 'Cláusula de actualización para actualizar la dirección de correo del usuario'; $lang['UpdateName'] = 'Cláusula de actualización para actualizar el nomblre completo del usuario'; +$lang['UpdateTarget'] = 'Cláusula limite para identificar al usuario cuando se actualiza'; $lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo dado'; $lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado'; $lang['debug_o_0'] = 'ninguno'; diff --git a/lib/plugins/authmysql/lang/fa/lang.php b/lib/plugins/authmysql/lang/fa/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c73c053b16529e773bff09b55abfe6984e0310f8 --- /dev/null +++ b/lib/plugins/authmysql/lang/fa/lang.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['connectfail'] = 'خطا در اتصال به دیتابیس'; +$lang['userexists'] = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.'; +$lang['usernotexists'] = 'با عرض پوزش، آن کاربر وجود نداشت.'; +$lang['writefail'] = 'امکان تغییر داده کاربر وجود نداشت. Ù„Ø·ÙØ§ مسئول Wiki را آگاه کنید.'; diff --git a/lib/plugins/authmysql/lang/fa/settings.php b/lib/plugins/authmysql/lang/fa/settings.php index 68ad5ce8374104adaf90a3a769fc92d545f686f3..bca4bbf07dc6cc824eaf9620f0deac151184fe4f 100644 --- a/lib/plugins/authmysql/lang/fa/settings.php +++ b/lib/plugins/authmysql/lang/fa/settings.php @@ -4,7 +4,40 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> */ $lang['server'] = 'سرور MySQL'; $lang['user'] = 'نام کاربری MySQL'; +$lang['password'] = 'رمزعبور کاربر بالا'; $lang['database'] = 'پایگاه داده مورد Ø§Ø³ØªÙØ§Ø¯Ù‡'; +$lang['charset'] = 'مجموعه کاراکترهایی (Character set) Ú©Ù‡ در پایگاه داده بکار Ø±ÙØªÙ‡'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای دیباگ'; +$lang['forwardClearPass'] = 'بجای Ø§Ø³ØªÙØ§Ø¯Ù‡ از گزینه passcryptØŒ رمزعبورهای کاربر را بصورت آشکار به دستور SQL زیر پاس دهید.'; +$lang['TablesToLock'] = 'لیست جدولهایی Ú©Ù‡ هنگام عملیات نوشتن باید Ù‚ÙÙ„ شود Ú©Ù‡ با کاما از هم جدا شده اند'; +$lang['checkPass'] = 'دستور SQL برای بررسی رمزعبورها'; +$lang['getUserInfo'] = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª اطلاعات نام کاربری'; +$lang['getGroups'] = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª گروه‌های عضویت یک کاربر'; +$lang['getUsers'] = 'دستور SQL برای Ú¯Ø±ÙØªÙ† لیست تمامی کاربران'; +$lang['FilterLogin'] = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کاربری (login name)'; +$lang['FilterName'] = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کامل'; +$lang['FilterEmail'] = 'عبارت SQL برای Ùیلتر کردن کابران با آدرس ایمیل'; +$lang['FilterGroup'] = 'عبارت SQL برای Ùیلتر کاربران با گروه عضویتشان'; +$lang['SortOrder'] = 'عبارت SQL برای مرتب کردن کاربران'; +$lang['addUser'] = 'دستور SQL برای اضاÙÙ‡ کردن کاربر جدید'; +$lang['addGroup'] = 'دستور SQL برای اضاÙÙ‡ کردن گروه جدید'; +$lang['addUserGroup'] = 'دستور SQL برای اضاÙÙ‡ کردن یک کاربر به یک گروه موجود از قبل'; +$lang['delGroup'] = 'دستور SQL برای ØØ°Ù یک گروه'; +$lang['getUserID'] = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی (primary key) یک کاربر'; +$lang['delUser'] = 'دستور SQL برای ØØ°Ù یک کاربر'; +$lang['delUserRefs'] = 'دستور SQL برای ØØ°Ù یک کابر از تمامی گروه‌ها'; +$lang['updateUser'] = 'دستور SQL برای بروزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ یک کاربر'; +$lang['UpdateLogin'] = 'عبارت Update برای بروزرسانی نام کاربری (login name)'; +$lang['UpdatePass'] = 'عبارت Update برای بروزرسانی رمزعبور کاربر'; +$lang['UpdateEmail'] = 'عبارت Update برای بروزرسانی ادرسی ایمیل کاربر'; +$lang['UpdateName'] = 'عبارت Update برای بروزرسانی نام کامل کاربر'; +$lang['UpdateTarget'] = 'عبارت Limit برای شناسایی کابر هنگام بروزرسانی'; +$lang['delUserGroup'] = 'دستور SQL برای ØØ°Ù یک کاربر '; +$lang['getGroupID'] = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی (primary key) گروه داده شده'; +$lang['debug_o_0'] = 'هیچ'; +$lang['debug_o_1'] = 'Ùقط هنگام خطا'; +$lang['debug_o_2'] = 'تمام پرس‌وجوهای SQL'; diff --git a/lib/plugins/authmysql/lang/fr/lang.php b/lib/plugins/authmysql/lang/fr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..d5a1e1209dae8833941ccf8ee169d8e6502d80e1 --- /dev/null +++ b/lib/plugins/authmysql/lang/fr/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr> + */ +$lang['connectfail'] = 'Impossible de se connecter à la base de données.'; +$lang['userexists'] = 'Désolé, un utilisateur avec cet identifiant existe déjà .'; +$lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; +$lang['writefail'] = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.'; diff --git a/lib/plugins/authmysql/lang/he/settings.php b/lib/plugins/authmysql/lang/he/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..3671b1bb9c86a996577ef3be6f3de642e0ec58df --- /dev/null +++ b/lib/plugins/authmysql/lang/he/settings.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Menashe Tomer <menashesite@gmail.com> + */ +$lang['getUserID'] = 'ש×ילתת SQL לקבלת מפתח ר×שי של המשתמש'; +$lang['UpdateLogin'] = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©'; +$lang['UpdatePass'] = 'ש×ילתת SQL לעדכון סיסמת המשתמש'; +$lang['UpdateEmail'] = 'ש×ילתת SQL לעדכון כתובת הדו×"ל של המשתמש'; +$lang['UpdateName'] = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©'; diff --git a/lib/plugins/authmysql/lang/hr/lang.php b/lib/plugins/authmysql/lang/hr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3f5dc5d6010a0754e4807bda379fb2d665f8fd96 --- /dev/null +++ b/lib/plugins/authmysql/lang/hr/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Davor Turkalj <turki.bsc@gmail.com> + */ +$lang['connectfail'] = 'Ne mogu se spojiti na bazu.'; +$lang['userexists'] = 'Oprostite ali korisnik s ovom prijavom već postoji.'; +$lang['usernotexists'] = 'Oprostite ali ovaj korisnik ne postoji.'; +$lang['writefail'] = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora'; diff --git a/lib/plugins/authmysql/lang/hu/lang.php b/lib/plugins/authmysql/lang/hu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3f48da3356f4df9dec265f25a362000db6e27f2e --- /dev/null +++ b/lib/plugins/authmysql/lang/hu/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['connectfail'] = 'Az adatbázishoz való csatlakozás sikertelen.'; +$lang['userexists'] = 'Sajnos már létezik ilyen azonosÃtójú felhasználó.'; +$lang['usernotexists'] = 'Sajnos ez a felhasználó nem létezik.'; +$lang['writefail'] = 'A felhasználói adatok módosÃtása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!'; diff --git a/lib/plugins/authmysql/lang/it/lang.php b/lib/plugins/authmysql/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5b1ae0a00d3b19af16aa76012ff188c69515ed14 --- /dev/null +++ b/lib/plugins/authmysql/lang/it/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['connectfail'] = 'Connessione fallita al database.'; +$lang['userexists'] = 'Spiacente, esiste già un utente con queste credenziali.'; +$lang['usernotexists'] = 'Spiacente, quell\'utente non esiste.'; +$lang['writefail'] = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki'; diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php index 10c0de96fb49ae7c969de59f790ed8a01c694a30..1e93077000bb9ef9c89dbc72c1e3efe1cc27c5a6 100644 --- a/lib/plugins/authmysql/lang/it/settings.php +++ b/lib/plugins/authmysql/lang/it/settings.php @@ -6,18 +6,26 @@ * @author Claudio Lanconelli <lancos@libero.it> * @author Mirko <malisan.mirko@gmail.com> * @author Francesco <francesco.cavalli@hotmail.com> + * @author Maurizio <mcannavo@katamail.com> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['server'] = 'Il tuo server MySQL'; $lang['user'] = 'User name di MySQL'; +$lang['password'] = 'Password per l\'utente di cui sopra'; $lang['database'] = 'Database da usare'; $lang['charset'] = 'Set di caratteri usato nel database'; $lang['debug'] = 'Mostra ulteriori informazioni di debug'; +$lang['forwardClearPass'] = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt'; $lang['TablesToLock'] = 'Lista, separata da virgola, delle tabelle che devono essere bloccate in scrittura'; $lang['checkPass'] = 'Istruzione SQL per il controllo password'; $lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; +$lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; $lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti'; -$lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"'; -$lang['SortOrder'] = 'Istruzione SQL per ordinare gli utenti'; +$lang['FilterLogin'] = 'Condizione SQL per per filtrare gli utenti in funzione del "login name"'; +$lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; +$lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; +$lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; +$lang['SortOrder'] = 'Condizione SQL per ordinare gli utenti'; $lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; $lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo'; $lang['addUserGroup'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente'; @@ -26,10 +34,11 @@ $lang['getUserID'] = 'Istruzione SQL per recuperare la primary key d $lang['delUser'] = 'Istruzione SQL per cancellare un utente'; $lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi'; $lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente'; -$lang['UpdateLogin'] = 'Clausola per aggiornare il "login name" dell\'utente'; -$lang['UpdatePass'] = 'Clausola per aggiornare la password utente'; -$lang['UpdateEmail'] = 'Clausola per aggiornare l\'email utente'; -$lang['UpdateName'] = 'Clausola per aggiornare il nome completo'; +$lang['UpdateLogin'] = 'Condizione SQL per aggiornare il nome di accesso dell\'utente'; +$lang['UpdatePass'] = 'Condizione SQL per aggiornare la password utente'; +$lang['UpdateEmail'] = 'Condizione SQL per aggiornare l\'e-mail utente'; +$lang['UpdateName'] = 'Condizione SQL per aggiornare il nome completo dell\'utente'; +$lang['UpdateTarget'] = 'Condizione SQL per identificare l\'utente quando aggiornato'; $lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo'; $lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo'; $lang['debug_o_0'] = 'Nulla'; diff --git a/lib/plugins/authmysql/lang/ja/lang.php b/lib/plugins/authmysql/lang/ja/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a2348f2f3ab6a5013a6b88c9fd2a44ea6803b4a6 --- /dev/null +++ b/lib/plugins/authmysql/lang/ja/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['connectfail'] = 'データベースã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚'; +$lang['userexists'] = 'ã“ã®ãƒã‚°ã‚¤ãƒ³åã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; +$lang['usernotexists'] = 'ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å˜åœ¨ã—ã¾ã›ã‚“。'; +$lang['writefail'] = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。Wiki ã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。'; diff --git a/lib/plugins/authmysql/lang/ja/settings.php b/lib/plugins/authmysql/lang/ja/settings.php index e5d5689df24be1f61c3e745b9bba711a3af115ca..6bc3f9a14705c1bf7d04e72a5567472098620c7a 100644 --- a/lib/plugins/authmysql/lang/ja/settings.php +++ b/lib/plugins/authmysql/lang/ja/settings.php @@ -11,7 +11,7 @@ $lang['password'] = 'MySQL 接続用ユーザーã®ãƒ‘スワード' $lang['database'] = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å'; $lang['charset'] = 'ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æ–‡å—コード'; $lang['debug'] = 'デãƒãƒƒã‚¯æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹'; -$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 %{pass} を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; +$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; $lang['TablesToLock'] = '書ãè¾¼ã¿æ™‚ã«ãƒãƒƒã‚¯ã™ã‚‹ãƒ†ãƒ¼ãƒ–ル(コンマ区切りã§åˆ—挙)'; $lang['checkPass'] = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getUserInfo'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; diff --git a/lib/plugins/authmysql/lang/ko/lang.php b/lib/plugins/authmysql/lang/ko/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..d07d58388cd25487a72a7ca888b886b5e0d91d09 --- /dev/null +++ b/lib/plugins/authmysql/lang/ko/lang.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author hyeonsoft <hyeonsoft@live.co.kr> + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['connectfail'] = 'ë°ì´í„°ë² ì´ìŠ¤ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; +$lang['userexists'] = '죄송하지만 ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ 로그ì¸í•œ 사용ìžê°€ 있습니다.'; +$lang['usernotexists'] = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.'; +$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤'; diff --git a/lib/plugins/authmysql/lang/nl/lang.php b/lib/plugins/authmysql/lang/nl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..9a8cf31147a603c6e7258c96cf9c7ef81564dd51 --- /dev/null +++ b/lib/plugins/authmysql/lang/nl/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hugo Smet <hugo.smet@scarlet.be> + */ +$lang['connectfail'] = 'Connectie met de database mislukt.'; +$lang['userexists'] = 'Sorry, een gebruiker met deze login bestaat reeds.'; +$lang['usernotexists'] = 'Sorry, deze gebruiker bestaat niet.'; +$lang['writefail'] = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.'; diff --git a/lib/plugins/authmysql/lang/pt-br/lang.php b/lib/plugins/authmysql/lang/pt-br/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6b1a4c3add73399aaafd54e81ffe8fe6f894a5ba --- /dev/null +++ b/lib/plugins/authmysql/lang/pt-br/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['connectfail'] = 'Não foi possÃvel conectar ao banco de dados.'; +$lang['userexists'] = 'Desculpe, mas já existe esse nome de usuário.'; +$lang['usernotexists'] = 'Desculpe, mas esse usuário não existe.'; +$lang['writefail'] = 'Não foi possÃvel modificar os dados do usuário. Por favor, informe ao administrador do Wiki.'; diff --git a/lib/plugins/authmysql/lang/pt/lang.php b/lib/plugins/authmysql/lang/pt/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..754a552f8dee424aab6375d16abf584ebdb78c8f --- /dev/null +++ b/lib/plugins/authmysql/lang/pt/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Paulo Carmino <contato@paulocarmino.com> + */ +$lang['connectfail'] = 'Falha ao conectar com o banco de dados.'; +$lang['userexists'] = 'Desculpe, esse login já está sendo usado.'; +$lang['usernotexists'] = 'Desculpe, esse login não existe.'; diff --git a/lib/plugins/authmysql/lang/ru/lang.php b/lib/plugins/authmysql/lang/ru/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..e2160c375f9cc0e223e779ea4d12129741b150a8 --- /dev/null +++ b/lib/plugins/authmysql/lang/ru/lang.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Takumo <9206984@mail.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + */ +$lang['connectfail'] = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.'; +$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; +$lang['usernotexists'] = 'Извините, такой пользователь не ÑущеÑтвует.'; +$lang['writefail'] = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору вики.'; diff --git a/lib/plugins/authmysql/lang/sk/lang.php b/lib/plugins/authmysql/lang/sk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..d143bbf2c7071014639cba2e0266b1d98de73f31 --- /dev/null +++ b/lib/plugins/authmysql/lang/sk/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['connectfail'] = 'Nepodarilo sa pripojiÅ¥ k databáze.'; +$lang['userexists'] = 'Ľutujem, ale použÃvateľ s týmto prihlasovacÃm menom už existuje.'; +$lang['writefail'] = 'Nie je možné zmeniÅ¥ údaje použÃvateľa, informujte prosÃm administrátora Wiki.'; diff --git a/lib/plugins/authmysql/lang/tr/lang.php b/lib/plugins/authmysql/lang/tr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b5c7b2fe198c0e33d994f9667ba94d93f6bc8d85 --- /dev/null +++ b/lib/plugins/authmysql/lang/tr/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mete Cuma <mcumax@gmail.com> + */ +$lang['connectfail'] = 'Veritabanına baÄŸlantı kurulamadı.'; +$lang['usernotexists'] = 'Üzgünüz, kullanıcı mevcut deÄŸil.'; diff --git a/lib/plugins/authmysql/lang/zh/lang.php b/lib/plugins/authmysql/lang/zh/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..044fe6d609d545d9fdfd0e2f2c5995e7a4fc8f53 --- /dev/null +++ b/lib/plugins/authmysql/lang/zh/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Errol <errol@hotmail.com> + */ +$lang['connectfail'] = '连接数æ®åº“失败'; +$lang['userexists'] = '抱æ‰ï¼Œç”¨æˆ·å已被使用。'; +$lang['usernotexists'] = '抱æ‰ï¼Œç”¨æˆ·ä¸å˜åœ¨ã€‚'; +$lang['writefail'] = 'æ— æ³•ä¿®æ”¹ç”¨æˆ·æ•°æ®ã€‚请通知管ç†å‘˜'; diff --git a/lib/plugins/authmysql/plugin.info.txt b/lib/plugins/authmysql/plugin.info.txt index fa00fccf4ba75fba6ff14013a3121550abeac88e..1658d7aac231e094012f5718fbdfe285f6df344c 100644 --- a/lib/plugins/authmysql/plugin.info.txt +++ b/lib/plugins/authmysql/plugin.info.txt @@ -1,7 +1,7 @@ base authmysql author Andreas Gohr email andi@splitbrain.org -date 2014-02-15 +date 2015-07-13 name MYSQL Auth Plugin desc Provides user authentication against a MySQL database url http://www.dokuwiki.org/plugin:authmysql diff --git a/lib/plugins/authpgsql/auth.php b/lib/plugins/authpgsql/auth.php index 4cb280aae34063687f2daed571cd20485905015d..7b677d3d7394dd6bbb84ece3cdc8ca02ec5416f9 100644 --- a/lib/plugins/authpgsql/auth.php +++ b/lib/plugins/authpgsql/auth.php @@ -303,7 +303,7 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { $dsn .= ' port='.$this->conf['port']; $dsn .= ' dbname='.$this->conf['database']; $dsn .= ' user='.$this->conf['user']; - $dsn .= ' password='.$this->conf['password']; + $dsn .= ' password='.conf_decodeString($this->conf['password']); $con = @pg_connect($dsn); if($con) { @@ -428,4 +428,4 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { } return $string; } -} \ No newline at end of file +} diff --git a/lib/plugins/authpgsql/conf/metadata.php b/lib/plugins/authpgsql/conf/metadata.php index fbd0512702fb668351cb48d7916fa0cd8199899e..cb9c4564366fea2848d352fa5a780813cd44cd6c 100644 --- a/lib/plugins/authpgsql/conf/metadata.php +++ b/lib/plugins/authpgsql/conf/metadata.php @@ -3,7 +3,7 @@ $meta['server'] = array('string','_caution' => 'danger'); $meta['port'] = array('numeric','_caution' => 'danger'); $meta['user'] = array('string','_caution' => 'danger'); -$meta['password'] = array('password','_caution' => 'danger'); +$meta['password'] = array('password','_caution' => 'danger','_code'=>'base64'); $meta['database'] = array('string','_caution' => 'danger'); $meta['debug'] = array('onoff','_caution' => 'security'); $meta['forwardClearPass'] = array('onoff','_caution' => 'danger'); @@ -30,4 +30,4 @@ $meta['UpdateEmail'] = array('string','_caution' => 'danger'); $meta['UpdateName'] = array('string','_caution' => 'danger'); $meta['UpdateTarget'] = array('string','_caution' => 'danger'); $meta['delUserGroup'] = array('','_caution' => 'danger'); -$meta['getGroupID'] = array('','_caution' => 'danger'); \ No newline at end of file +$meta['getGroupID'] = array('','_caution' => 'danger'); diff --git a/lib/plugins/authpgsql/lang/cy/settings.php b/lib/plugins/authpgsql/lang/cy/settings.php new file mode 100644 index 0000000000000000000000000000000000000000..0c32ad7b2f145988e549394012d1c708680655de --- /dev/null +++ b/lib/plugins/authpgsql/lang/cy/settings.php @@ -0,0 +1,33 @@ +<?php + +$lang['server'] = 'Eich gweinydd PostgreSQL'; +$lang['port'] = 'Porth eich gweinydd PostgreSQL'; +$lang['user'] = 'Defnyddair PostgreSQL'; +$lang['password'] = 'Cyfrinair y defnyddiwr uchod'; +$lang['database'] = 'Databas i\'w ddefnyddio'; +$lang['debug'] = 'angos gwybodaeth dadfygio ychwanegol'; +$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\''; +$lang['checkPass'] = 'Datganiad SQL i wirio cyfrineiriau'; +$lang['getUserInfo'] = 'Datganiad SQL i nôl gwybodaeth defnyddiwr'; +$lang['getGroups'] = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr'; +$lang['getUsers'] = 'Datganiad SQL i restru pob defnyddiwr'; +$lang['FilterLogin'] = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi'; +$lang['FilterName'] = 'Cymal SQL i hidlo defnyddwyr gan enw llawn'; +$lang['FilterEmail'] = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost'; +$lang['FilterGroup'] = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp'; +$lang['SortOrder'] = 'Cymal SQL i drefnu defnyddwyr'; +$lang['addUser'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd'; +$lang['addGroup'] = 'Datganiad SQL i ychwanegu grŵp newydd'; +$lang['addUserGroup'] = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes'; +$lang['delGroup'] = 'Datganiad SQL i dynnu grŵp'; +$lang['getUserID'] = 'Datganiad SQL i nôl prif allwedd y defnyddiwr'; +$lang['delUser'] = 'Datganiad SQL i ddileu defnyddiwr'; +$lang['delUserRefs'] = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp'; +$lang['updateUser'] = 'Datganiad SQL i ddiweddaru proffil defnyddiwr'; +$lang['UpdateLogin'] = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr'; +$lang['UpdatePass'] = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr'; +$lang['UpdateEmail'] = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr'; +$lang['UpdateName'] = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr'; +$lang['UpdateTarget'] = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru'; +$lang['delUserGroup'] = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp'; +$lang['getGroupID'] = 'Datganiad SQL i nôl prif allwedd grŵp penodol'; diff --git a/lib/plugins/authpgsql/lang/es/settings.php b/lib/plugins/authpgsql/lang/es/settings.php index abfb00d387bd8e8e5bc1d9bf1fe0d59b4d91190e..0ca264bc200b9deb3540736821e48d6ffe6eab96 100644 --- a/lib/plugins/authpgsql/lang/es/settings.php +++ b/lib/plugins/authpgsql/lang/es/settings.php @@ -6,6 +6,7 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author pokesakura <pokesakura@gmail.com> + * @author Domingo Redal <docxml@gmail.com> */ $lang['server'] = 'Su servidor PostgreSQL'; $lang['port'] = 'Puerto de su servidor PostgreSQL'; @@ -35,4 +36,6 @@ $lang['UpdateLogin'] = 'Sentencia de actualizacion para el login del u $lang['UpdatePass'] = 'Sentencia de actualizacion para el password del usuario'; $lang['UpdateEmail'] = 'Sentencia de actualizacion del correo electrónico del usuario'; $lang['UpdateName'] = 'Sentencia de actualizacion del nombre completo del usuario'; +$lang['UpdateTarget'] = 'Cláusula limite para identificar al usuario cuando se actualiza'; +$lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo determinado'; $lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado'; diff --git a/lib/plugins/authpgsql/lang/fa/settings.php b/lib/plugins/authpgsql/lang/fa/settings.php index 8134939674937ca62b6b6f4ae199add8dbc76b19..5afe8118217fbe147a927da94283156f3d3bfc12 100644 --- a/lib/plugins/authpgsql/lang/fa/settings.php +++ b/lib/plugins/authpgsql/lang/fa/settings.php @@ -4,5 +4,37 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ +$lang['server'] = 'سرور PostgreSQL شما'; +$lang['port'] = 'پورت سرور PostgreSQL شما'; +$lang['user'] = 'نام کاربری PostgreSQL'; +$lang['password'] = 'رمزعبور کابر بالا'; $lang['database'] = 'پایگاه داده مورد Ø§Ø³ØªÙØ§Ø¯Ù‡'; +$lang['debug'] = 'نمایش اطلاعات بیشتر برای خطایابی'; +$lang['forwardClearPass'] = 'به جای Ø§Ø³ØªÙØ§Ø¯Ù‡ از امکان رمزنگاری، پسورد کاربران به صورت متنی به دستورات SQL ارسال شود'; +$lang['checkPass'] = 'دستور SQL برای Ú†Ú© کردن پسورد'; +$lang['getUserInfo'] = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª اطلاعات کاربران'; +$lang['getGroups'] = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª گروه‌های یک کاربر'; +$lang['getUsers'] = 'دستور SQL برای Ùهرست کردن تمام کاربران'; +$lang['FilterLogin'] = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کاربری'; +$lang['FilterName'] = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کامل'; +$lang['FilterEmail'] = 'کلاز SQL برای Ùیلتر کردن کاربران با آدرس ایمیل'; +$lang['FilterGroup'] = 'کلاز SQL برای Ùیلتر کردن کاربران با عضویت در گروه'; +$lang['SortOrder'] = 'کلاز SQL برای مرتب کردن کاربران'; +$lang['addUser'] = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† کاربر جدید'; +$lang['addGroup'] = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† گروه جدید'; +$lang['addUserGroup'] = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† یک کاربر به یک گروه موجود'; +$lang['delGroup'] = 'دستور SQL برای پاک کردن یک گروه'; +$lang['getUserID'] = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی یک کاربر'; +$lang['delUser'] = 'دستور SQL برای ØØ°Ù یک کاربر'; +$lang['delUserRefs'] = 'دستور SQL برای پاک کردن یک کاربر از تمام گروه‌ها'; +$lang['updateUser'] = 'دستور SQL برای به‌روزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر'; +$lang['UpdateLogin'] = 'کلاز Update برای به روز کردن نام کاربری'; +$lang['UpdatePass'] = 'کلاز Update برای به روز کردن پسورد کاربر'; +$lang['UpdateEmail'] = 'کلاز Update برای به روز کردن ایمیل کاربر'; +$lang['UpdateName'] = 'کلاز Update برای به روز کردن نام کامل کاربر'; +$lang['UpdateTarget'] = 'کلاز Limit برای شناسایی کاربر هنگام به روز رسانی'; +$lang['delUserGroup'] = 'دستور SQL برای ØØ°Ù یک کاربر از یک گروه'; +$lang['getGroupID'] = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی یک گروه'; diff --git a/lib/plugins/authpgsql/lang/it/settings.php b/lib/plugins/authpgsql/lang/it/settings.php index e8a40dcb2c7310ba308a51f9d5bbba80570386da..e786f2f2d007c9b516a06ce416a02cd147e44e1a 100644 --- a/lib/plugins/authpgsql/lang/it/settings.php +++ b/lib/plugins/authpgsql/lang/it/settings.php @@ -5,9 +5,36 @@ * * @author Francesco <francesco.cavalli@hotmail.com> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ $lang['server'] = 'Il tuo server PostgreSQL '; $lang['port'] = 'La porta del tuo server PostgreSQL '; $lang['user'] = 'Lo username PostgreSQL'; +$lang['password'] = 'Password dell\'utente summenzionato'; $lang['database'] = 'Database da usare'; -$lang['getUsers'] = 'Dichiarazione SQL per elencare tutti gli utenti'; +$lang['debug'] = 'Visualizza informazioni addizionali di debug'; +$lang['forwardClearPass'] = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt'; +$lang['checkPass'] = 'Istruzione SQL per il controllo password'; +$lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente'; +$lang['getGroups'] = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente'; +$lang['getUsers'] = 'Istruzione SQL per elencare tutti gli utenti'; +$lang['FilterLogin'] = 'Condizione SQL per filtrare gli utenti in base al nome di accesso'; +$lang['FilterName'] = 'Condizione SQL per filtrare gli utenti in base al nome completo'; +$lang['FilterEmail'] = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail'; +$lang['FilterGroup'] = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza'; +$lang['SortOrder'] = 'Condizione SQL per ordinare gli utenti'; +$lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente'; +$lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo'; +$lang['addUserGroup'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente'; +$lang['delGroup'] = 'Istruzione SQL per imuovere un gruppo'; +$lang['getUserID'] = 'Istruzione SQL per recuperare la primary key di un utente'; +$lang['delUser'] = 'Istruzione SQL per cancellare un utente'; +$lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi'; +$lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente'; +$lang['UpdateLogin'] = 'Condizione SQL per aggiornare il nome di accesso dell\'utente'; +$lang['UpdatePass'] = 'Condizione SQL per aggiornare la password utente'; +$lang['UpdateEmail'] = 'Condizione SQL per aggiornare l\'e-mail utente'; +$lang['UpdateName'] = 'Condizione SQL per aggiornare il nome completo dell\'utente'; +$lang['UpdateTarget'] = 'Condizione SQL per identificare l\'utente quando aggiornato'; +$lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo'; +$lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo'; diff --git a/lib/plugins/authpgsql/lang/ja/settings.php b/lib/plugins/authpgsql/lang/ja/settings.php index d7a5f6cf26540e70074e2edf70773f1daf224007..c4a82a1790747883333692d4c388d649cf9bfbeb 100644 --- a/lib/plugins/authpgsql/lang/ja/settings.php +++ b/lib/plugins/authpgsql/lang/ja/settings.php @@ -11,7 +11,7 @@ $lang['user'] = 'PostgreSQL 接続用ユーザーå'; $lang['password'] = 'PostgreSQL 接続用ユーザーã®ãƒ‘スワード'; $lang['database'] = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å'; $lang['debug'] = 'デãƒãƒƒã‚¯æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹'; -$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 %{pass} を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; +$lang['forwardClearPass'] = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)'; $lang['checkPass'] = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getUserInfo'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; $lang['getGroups'] = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€å±žã™ã‚‹å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント'; diff --git a/lib/plugins/authpgsql/lang/ru/settings.php b/lib/plugins/authpgsql/lang/ru/settings.php index 2af2991723b1b2157472cc1044a58808c0709135..a74296ab8ee1daadefb9fcd2b391dcf5da310da1 100644 --- a/lib/plugins/authpgsql/lang/ru/settings.php +++ b/lib/plugins/authpgsql/lang/ru/settings.php @@ -8,6 +8,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> * @author Type-kun <workwork-1@yandex.ru> + * @author Alex P <alexander@lanos.co.uk> */ $lang['server'] = 'Ваш PostgreSQL-Ñервер'; $lang['port'] = 'Порт вашего PostgreSQL-Ñервера'; @@ -15,6 +16,7 @@ $lang['user'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ PostgreSQL'; $lang['password'] = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ'; $lang['database'] = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных'; $lang['debug'] = 'Отображать дополнительную отладочную информацию'; +$lang['forwardClearPass'] = 'Передать чиÑтым текÑтом ползовательÑкие пароли в SQL запроÑÑ‹ ниже, вмеÑто иÑпользование опции passcrypt'; $lang['checkPass'] = 'Выражение SQL, оÑущеÑтвлÑющее проверку паролÑ'; $lang['getUserInfo'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о пользователе'; $lang['getGroups'] = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о членÑтве пользователе в группах'; diff --git a/lib/plugins/authpgsql/plugin.info.txt b/lib/plugins/authpgsql/plugin.info.txt index 59b7d89a9839533607216fcb52ae9ccaa9435141..1d53ca0b1f4e9e18908e8c13602f257a2b3403da 100644 --- a/lib/plugins/authpgsql/plugin.info.txt +++ b/lib/plugins/authpgsql/plugin.info.txt @@ -1,7 +1,7 @@ base authpgsql author Andreas Gohr email andi@splitbrain.org -date 2014-02-15 +date 2015-07-13 name PostgreSQL Auth Plugin desc Provides user authentication against a PostgreSQL database url http://www.dokuwiki.org/plugin:authpgsql diff --git a/lib/plugins/authplain/_test/escaping.test.php b/lib/plugins/authplain/_test/escaping.test.php index e1eade8d4c273666fbc80bac11516f8402a3e593..7139aa99b0b2bcc684588ef8c0c39f4a518a0539 100644 --- a/lib/plugins/authplain/_test/escaping.test.php +++ b/lib/plugins/authplain/_test/escaping.test.php @@ -9,7 +9,9 @@ * authplain won't get unexpectedly surprised.) * * @group plugin_authplain + * @group auth_plugins * @group plugins + * @group bundled_plugins */ class helper_plugin_authplain_escaping_test extends DokuWikiTest { diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php index b31c02fc8634237f9f9859385b3264380e179d1a..8ec632dada62424a5a847ce3c36d9bd9833ae6e9 100644 --- a/lib/plugins/authplain/auth.php +++ b/lib/plugins/authplain/auth.php @@ -134,7 +134,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { global $config_cascade; // user mustn't already exist - if($this->getUserData($user) !== false) return false; + if($this->getUserData($user) !== false) { + msg($this->getLang('userexists'), -1); + return false; + } $pass = auth_cryptPassword($pwd); @@ -144,16 +147,13 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { // prepare user line $userline = $this->_createUserLine($user, $pass, $name, $mail, $grps); - if(io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { - $this->users[$user] = compact('pass', 'name', 'mail', 'grps'); - return $pwd; + if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) { + msg($this->getLang('writefail'), -1); + return null; } - msg( - 'The '.$config_cascade['plainauth.users']['default']. - ' file is not writable. Please inform the Wiki-Admin', -1 - ); - return null; + $this->users[$user] = compact('pass', 'name', 'mail', 'grps'); + return $pwd; } /** @@ -169,7 +169,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { global $config_cascade; // sanity checks, user must already exist and there must be something to change - if(($userinfo = $this->getUserData($user)) === false) return false; + if(($userinfo = $this->getUserData($user)) === false) { + msg($this->getLang('usernotexists'), -1); + return false; + } if(!is_array($changes) || !count($changes)) return true; // update userinfo with new data, remembering to encrypt any password @@ -185,14 +188,9 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { $userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']); - if(!$this->deleteUsers(array($user))) { - msg('Unable to modify user data. Please inform the Wiki-Admin', -1); - return false; - } - - 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 + if(!io_replaceInFile($config_cascade['plainauth.users']['default'], '/^'.$user.':/', $userline, true)) { + msg('There was an error modifying your user data. You may need to register again.', -1); + // FIXME, io functions should be fail-safe so existing data isn't lost $ACT = 'register'; return false; } @@ -223,7 +221,10 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { if(empty($deleted)) return 0; $pattern = '/^('.join('|', $deleted).'):/'; - io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true); + if (!io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true)) { + msg($this->getLang('writefail'), -1); + return 0; + } // reload the user list and count the difference $count = count($this->users); @@ -407,4 +408,4 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin { $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters } } -} \ No newline at end of file +} diff --git a/lib/plugins/authplain/lang/af/lang.php b/lib/plugins/authplain/lang/af/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..29742cfd2062078ee4a93af2200dca3c1d8b535b --- /dev/null +++ b/lib/plugins/authplain/lang/af/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.'; diff --git a/lib/plugins/authplain/lang/ar/lang.php b/lib/plugins/authplain/lang/ar/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..16d59f397a0a9c9aab1f2c835a4e50a29af05573 --- /dev/null +++ b/lib/plugins/authplain/lang/ar/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'عذرا، يوجد مشترك Ø¨Ù†ÙØ³ الاسم.'; diff --git a/lib/plugins/authplain/lang/az/lang.php b/lib/plugins/authplain/lang/az/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f98eccde17c5136f3117c2edfcdcb33f1ee291d0 --- /dev/null +++ b/lib/plugins/authplain/lang/az/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'TÉ™ssüf ki bu ad ilÉ™ istifadəçi artıq mövcuddur.'; diff --git a/lib/plugins/authplain/lang/bg/lang.php b/lib/plugins/authplain/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..62e62dc134d4b461e604d2b453168f0e62fce634 --- /dev/null +++ b/lib/plugins/authplain/lang/bg/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['userexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; +$lang['usernotexists'] = 'За Ñъжаление потребителÑÑ‚ не ÑъщеÑтвува.'; diff --git a/lib/plugins/authplain/lang/bn/lang.php b/lib/plugins/authplain/lang/bn/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..43fe4ca6ec28fb1fcabe09873819dbfa0d8787c4 --- /dev/null +++ b/lib/plugins/authplain/lang/bn/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'দà§à¦ƒà¦–িত, à¦à¦‡ লগইন সঙà§à¦—ে à¦à¦•টি বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨.'; diff --git a/lib/plugins/authplain/lang/ca-valencia/lang.php b/lib/plugins/authplain/lang/ca-valencia/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3e973beaef57c467e9797152a9e103bb50ddf2ba --- /dev/null +++ b/lib/plugins/authplain/lang/ca-valencia/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Disculpe, pero ya existix un usuari en este nom.'; diff --git a/lib/plugins/authplain/lang/ca/lang.php b/lib/plugins/authplain/lang/ca/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8cbada1b92e15c66d480f501893e73c811d39640 --- /dev/null +++ b/lib/plugins/authplain/lang/ca/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Ja existeix un altre usuari amb aquest nom.'; diff --git a/lib/plugins/authplain/lang/cs/lang.php b/lib/plugins/authplain/lang/cs/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..852a3004481495458a117afe4bd06097a6df5e04 --- /dev/null +++ b/lib/plugins/authplain/lang/cs/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['userexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; +$lang['usernotexists'] = 'Omlouváme se, uživatel tohoto jména neexistuje.'; +$lang['writefail'] = 'Nelze zmÄ›nit údaje uživatele. Informujte prosÃm správce wiki'; diff --git a/lib/plugins/authplain/lang/cy/lang.php b/lib/plugins/authplain/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7f789e5291008112af69f7133e05fd99a6eba5b2 --- /dev/null +++ b/lib/plugins/authplain/lang/cy/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sori, mae defnyddiwr gyda\'r enw hwnnw eisoes yn bodoli.'; +$lang['usernotexists'] = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.'; +$lang['writefail'] = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinydd y Wici'; diff --git a/lib/plugins/authplain/lang/da/lang.php b/lib/plugins/authplain/lang/da/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c7dd376c1771fa6c2b3aea91dbb61f67cabb3d9a --- /dev/null +++ b/lib/plugins/authplain/lang/da/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Dette brugernavn er allerede i brug.'; diff --git a/lib/plugins/authplain/lang/de-informal/lang.php b/lib/plugins/authplain/lang/de-informal/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f1d484947f1ab0244c6252b2ecf68cbf4d7a612c --- /dev/null +++ b/lib/plugins/authplain/lang/de-informal/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Der Benutzername existiert leider schon.'; diff --git a/lib/plugins/authplain/lang/de/lang.php b/lib/plugins/authplain/lang/de/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b0cff006860828827a6d89aa9440780428b0f643 --- /dev/null +++ b/lib/plugins/authplain/lang/de/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Anika Henke <anika@selfthinker.org> + */ +$lang['userexists'] = 'Der Benutzername existiert leider schon.'; +$lang['usernotexists'] = 'Dieser Benutzer existiert nicht.'; +$lang['writefail'] = 'Kann Benutzerdaten nicht ändern. Bitte informieren Sie den Wiki-Administratoren'; diff --git a/lib/plugins/authplain/lang/el/lang.php b/lib/plugins/authplain/lang/el/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7f7e4e76dc617a654a18a61c7ae159df000f616f --- /dev/null +++ b/lib/plugins/authplain/lang/el/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Αυτός ο λογαÏιασμός υπάÏχει ήδη.'; diff --git a/lib/plugins/authplain/lang/en/lang.php b/lib/plugins/authplain/lang/en/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6f8abfdb6cbf70ad9ff6faf10529f45fb4cf18e8 --- /dev/null +++ b/lib/plugins/authplain/lang/en/lang.php @@ -0,0 +1,8 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sorry, a user with this login already exists.'; +$lang['usernotexists'] = 'Sorry, that user doesn\'t exist.'; +$lang['writefail'] = 'Unable to modify user data. Please inform the Wiki-Admin'; diff --git a/lib/plugins/authplain/lang/eo/lang.php b/lib/plugins/authplain/lang/eo/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ab7655e818a5c4875b9a94c8dd398f43bca13be3 --- /dev/null +++ b/lib/plugins/authplain/lang/eo/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.'; diff --git a/lib/plugins/authplain/lang/es/lang.php b/lib/plugins/authplain/lang/es/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8ef567a16697154f9759166d34c168d3beef909c --- /dev/null +++ b/lib/plugins/authplain/lang/es/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['userexists'] = 'Lo siento, ya existe un usuario con este nombre.'; +$lang['usernotexists'] = 'Lo sentimos, no existe ese usuario.'; +$lang['writefail'] = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki'; diff --git a/lib/plugins/authplain/lang/et/lang.php b/lib/plugins/authplain/lang/et/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7f9f7771bf9521ff51f31a82bffab04bcef89c73 --- /dev/null +++ b/lib/plugins/authplain/lang/et/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Tegelikult on sellise nimega kasutaja juba olemas.'; diff --git a/lib/plugins/authplain/lang/eu/lang.php b/lib/plugins/authplain/lang/eu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..09ca4d3b77ab859ec7073ddb99e9747ad155728e --- /dev/null +++ b/lib/plugins/authplain/lang/eu/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Barkatu, izen bereko erabiltzailea existitzen da.'; diff --git a/lib/plugins/authplain/lang/fa/lang.php b/lib/plugins/authplain/lang/fa/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c222927dbdeb551a8e10ff6937fb1c32ff0aeba9 --- /dev/null +++ b/lib/plugins/authplain/lang/fa/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['userexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است. خواهشمندیم یک نام دیگر انتخاب کنید.'; +$lang['usernotexists'] = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ این کاربر وجود ندارد.'; +$lang['writefail'] = 'امکان ویرایش اطلاعات کاربر وجود ندارد. Ù„Ø·ÙØ§ ادمین ویکی را مطلع نمایید.'; diff --git a/lib/plugins/authplain/lang/fi/lang.php b/lib/plugins/authplain/lang/fi/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3a77f3e3ae7176a4d8c82e78539f158ffe4fc3f2 --- /dev/null +++ b/lib/plugins/authplain/lang/fi/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.'; diff --git a/lib/plugins/authplain/lang/fo/lang.php b/lib/plugins/authplain/lang/fo/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a9654664b2f2fb195583b4b2c195c5548aa4bca5 --- /dev/null +++ b/lib/plugins/authplain/lang/fo/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Hetta brúkaranavn er upptiki.'; diff --git a/lib/plugins/authplain/lang/fr/lang.php b/lib/plugins/authplain/lang/fr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..362e03bffeeb4e9980b3057ea68091f1cc5bc389 --- /dev/null +++ b/lib/plugins/authplain/lang/fr/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> + */ +$lang['userexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; +$lang['usernotexists'] = 'Désolé, cet utilisateur n\'existe pas.'; +$lang['writefail'] = 'Impossible de modifier les données utilisateur. Merci d\'en informer l\'administrateur du wiki.'; diff --git a/lib/plugins/authplain/lang/gl/lang.php b/lib/plugins/authplain/lang/gl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..35138d3788d747060754d4d390848c8a1f924fda --- /dev/null +++ b/lib/plugins/authplain/lang/gl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'SentÃmolo, mais xa existe un usuario con ese nome.'; diff --git a/lib/plugins/authplain/lang/he/lang.php b/lib/plugins/authplain/lang/he/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..160968edd26c10446374f8cb35a78617a3a440b2 --- /dev/null +++ b/lib/plugins/authplain/lang/he/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; diff --git a/lib/plugins/authplain/lang/hr/lang.php b/lib/plugins/authplain/lang/hr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ffcbf5f61ebb2c1cdfddf9f9a03402288a6c8a24 --- /dev/null +++ b/lib/plugins/authplain/lang/hr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Korisnik s tim korisniÄkim imenom već postoji.'; diff --git a/lib/plugins/authplain/lang/hu/lang.php b/lib/plugins/authplain/lang/hu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5f684d722c2a087516e0667119c153db76db8651 --- /dev/null +++ b/lib/plugins/authplain/lang/hu/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['userexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; +$lang['usernotexists'] = 'Sajnos ez a felhasználó nem létezik.'; +$lang['writefail'] = 'A felhasználói adatok módosÃtása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!'; diff --git a/lib/plugins/authplain/lang/ia/lang.php b/lib/plugins/authplain/lang/ia/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7596f3f4c21dd7de9fd004df09a0b1bcbbfc20c0 --- /dev/null +++ b/lib/plugins/authplain/lang/ia/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.'; diff --git a/lib/plugins/authplain/lang/id-ni/lang.php b/lib/plugins/authplain/lang/id-ni/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..729c9f9dcb5b26a0eb4a2368e7b82638f42a0441 --- /dev/null +++ b/lib/plugins/authplain/lang/id-ni/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Bologö dödöu, no so zangoguna\'ö töi da\'a.'; diff --git a/lib/plugins/authplain/lang/id/lang.php b/lib/plugins/authplain/lang/id/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5e6a99830f921969099a7af7354c095a46513efc --- /dev/null +++ b/lib/plugins/authplain/lang/id/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Maaf, user dengan user login ini telah ada.'; diff --git a/lib/plugins/authplain/lang/is/lang.php b/lib/plugins/authplain/lang/is/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..21392ee5e715c5a2407040fe06a40918ed1bd5d1 --- /dev/null +++ b/lib/plugins/authplain/lang/is/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Afsakið, notandi með þessu nafni er þegar skráður inn.'; diff --git a/lib/plugins/authplain/lang/it/lang.php b/lib/plugins/authplain/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..59c8c30764198b7e1595490b998281297c3c64a1 --- /dev/null +++ b/lib/plugins/authplain/lang/it/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['userexists'] = 'Il nome utente inserito esiste già .'; +$lang['usernotexists'] = 'Spiacente, quell\'utente non esiste.'; +$lang['writefail'] = 'Impossibile modificare i dati utente. Per favore informa l\'Amministratore del Wiki'; diff --git a/lib/plugins/authplain/lang/ja/lang.php b/lib/plugins/authplain/lang/ja/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6aa0be79c895836599852df27b75e91c79a94bf4 --- /dev/null +++ b/lib/plugins/authplain/lang/ja/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['userexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; +$lang['usernotexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æœªç™»éŒ²ã§ã™ã€‚'; +$lang['writefail'] = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。管ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。'; diff --git a/lib/plugins/authplain/lang/ka/lang.php b/lib/plugins/authplain/lang/ka/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8983791c98d2077c1dfaa5ac5e591cc430f7b674 --- /dev/null +++ b/lib/plugins/authplain/lang/ka/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'მსგáƒáƒ•სი ლáƒáƒ’ინი უკვე áƒáƒ სებáƒáƒ‘ს'; diff --git a/lib/plugins/authplain/lang/kk/lang.php b/lib/plugins/authplain/lang/kk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..95fe532045c9b7a13eac1d6d8e812edcf8d8e856 --- /dev/null +++ b/lib/plugins/authplain/lang/kk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Кешіріңіз, бұл түпнұÑкамен де пайдаланушы бар.'; diff --git a/lib/plugins/authplain/lang/km/lang.php b/lib/plugins/authplain/lang/km/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..322e454e50052e5337c798055d4776e2241965fb --- /dev/null +++ b/lib/plugins/authplain/lang/km/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'សុំអាទោស​ នាមប្រើនáŸáŸ‡áž˜áž¶áž“រួចហើ។'; diff --git a/lib/plugins/authplain/lang/ko/lang.php b/lib/plugins/authplain/lang/ko/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..50669822eda401435f32971faf7846714f0e6c00 --- /dev/null +++ b/lib/plugins/authplain/lang/ko/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['userexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; +$lang['usernotexists'] = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.'; +$lang['writefail'] = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ ìˆ˜ì •í• ìˆ˜ 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤'; diff --git a/lib/plugins/authplain/lang/ku/lang.php b/lib/plugins/authplain/lang/ku/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..64cb834f30e8a9a9179bc23423566bf652a072cd --- /dev/null +++ b/lib/plugins/authplain/lang/ku/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Sorry, a user with this login already exists.'; diff --git a/lib/plugins/authplain/lang/la/lang.php b/lib/plugins/authplain/lang/la/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5f2eecfd826981f334984b33863d5d3ccb92e9ef --- /dev/null +++ b/lib/plugins/authplain/lang/la/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Nomen Sodalis ab aliquo iam elegitur.'; diff --git a/lib/plugins/authplain/lang/lb/lang.php b/lib/plugins/authplain/lang/lb/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..4c760dfe40e77b47d7bc1ca47ad0dc8476eb81fc --- /dev/null +++ b/lib/plugins/authplain/lang/lb/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Et get schonn e Benotzer mat deem Numm.'; diff --git a/lib/plugins/authplain/lang/lt/lang.php b/lib/plugins/authplain/lang/lt/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5ad435a045536f64c5bbd1e28c91767d21ea2b32 --- /dev/null +++ b/lib/plugins/authplain/lang/lt/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.'; diff --git a/lib/plugins/authplain/lang/lv/lang.php b/lib/plugins/authplain/lang/lv/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3a9d4d3e5c5b249267dd23032a73e9b3d79bf5e1 --- /dev/null +++ b/lib/plugins/authplain/lang/lv/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Atvaino, tÄds lietotÄjs jau ir.'; diff --git a/lib/plugins/authplain/lang/mg/lang.php b/lib/plugins/authplain/lang/mg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8472161b7825f179f38b2fef3c98a832d2d5efe3 --- /dev/null +++ b/lib/plugins/authplain/lang/mg/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Indrisy fa efa nisy namandrika io anarana io.'; diff --git a/lib/plugins/authplain/lang/mk/lang.php b/lib/plugins/authplain/lang/mk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8ebb9fab85396eaca48bfbd0cb6d60fe4ff1af10 --- /dev/null +++ b/lib/plugins/authplain/lang/mk/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Жалам, кориÑник Ñо ова кориÑничко име веќе поÑтои.'; diff --git a/lib/plugins/authplain/lang/mr/lang.php b/lib/plugins/authplain/lang/mr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..15dcf18a065fd2e707a6999b78e6831b2f84fad9 --- /dev/null +++ b/lib/plugins/authplain/lang/mr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'या नावाने सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥‡à¤²à¥€ आहे, कृपया दà¥à¤¸à¤°à¥‡ सदसà¥à¤¯ नाव निवडा.'; diff --git a/lib/plugins/authplain/lang/ms/lang.php b/lib/plugins/authplain/lang/ms/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..14c3b11af92d7b79e4bfbbb767f7543ea89ca2bf --- /dev/null +++ b/lib/plugins/authplain/lang/ms/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.'; diff --git a/lib/plugins/authplain/lang/ne/lang.php b/lib/plugins/authplain/lang/ne/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..94275785574b32dc0f79b3c9bc68f546cad26dd9 --- /dev/null +++ b/lib/plugins/authplain/lang/ne/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'यो नामको पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पहिले देखि रहेको छ।'; diff --git a/lib/plugins/authplain/lang/nl/lang.php b/lib/plugins/authplain/lang/nl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..56ba2ab90318d0f95adf53fa88f61dcaf22293ea --- /dev/null +++ b/lib/plugins/authplain/lang/nl/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hugo Smet <hugo.smet@scarlet.be> + */ +$lang['userexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; +$lang['usernotexists'] = 'Sorry, deze gebruiker bestaat niet.'; +$lang['writefail'] = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.'; diff --git a/lib/plugins/authplain/lang/no/lang.php b/lib/plugins/authplain/lang/no/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..981881369f35257aaf386a045587916b5ccce6ea --- /dev/null +++ b/lib/plugins/authplain/lang/no/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; diff --git a/lib/plugins/authplain/lang/pl/lang.php b/lib/plugins/authplain/lang/pl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..9a61b004764ff7030cd900587206b284a9b1bcb8 --- /dev/null +++ b/lib/plugins/authplain/lang/pl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Użytkownik o tej nazwie już istnieje.'; diff --git a/lib/plugins/authplain/lang/pt-br/lang.php b/lib/plugins/authplain/lang/pt-br/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..654ec2b801218b3895b9967ab7c5d47238d59881 --- /dev/null +++ b/lib/plugins/authplain/lang/pt-br/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['userexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; +$lang['usernotexists'] = 'Desculpe, mas esse usuário não existe.'; +$lang['writefail'] = 'Não foi possÃvel modificar os dados do usuário. Por favor, informe ao administrador do Wiki.'; diff --git a/lib/plugins/authplain/lang/pt/lang.php b/lib/plugins/authplain/lang/pt/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..26d4180c5bcca0ab2272ad99477199681cee5463 --- /dev/null +++ b/lib/plugins/authplain/lang/pt/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Paulo Carmino <contato@paulocarmino.com> + */ +$lang['userexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; +$lang['usernotexists'] = 'Desculpe, esse login não existe.'; diff --git a/lib/plugins/authplain/lang/ro/lang.php b/lib/plugins/authplain/lang/ro/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ece72b18208b09f5beda0d22ef895a37e33273ae --- /dev/null +++ b/lib/plugins/authplain/lang/ro/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.'; diff --git a/lib/plugins/authplain/lang/ru/lang.php b/lib/plugins/authplain/lang/ru/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a53a57b40bbdb9ee2b1ba86e3b5ff36da5d21a08 --- /dev/null +++ b/lib/plugins/authplain/lang/ru/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + */ +$lang['userexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; +$lang['usernotexists'] = 'Ðтот пользователь не зарегиÑтрирован.'; +$lang['writefail'] = 'Ðевозможно обновить данные пользователÑ. СвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором вики'; diff --git a/lib/plugins/authplain/lang/sk/lang.php b/lib/plugins/authplain/lang/sk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..46ce389f3d38f5534f5a3d3ca5671cd3c9e6696f --- /dev/null +++ b/lib/plugins/authplain/lang/sk/lang.php @@ -0,0 +1,9 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['userexists'] = 'UžÃvateľ s rovnakým menom je už zaregistrovaný.'; +$lang['writefail'] = 'Nie je možné zmeniÅ¥ údaje použÃvateľa, informujte prosÃm administrátora Wiki.'; diff --git a/lib/plugins/authplain/lang/sl/lang.php b/lib/plugins/authplain/lang/sl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..d4ee30fda514aadd47e958be644251b755dfe5f3 --- /dev/null +++ b/lib/plugins/authplain/lang/sl/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Uporabnik s tem imenom že obstaja.'; diff --git a/lib/plugins/authplain/lang/sq/lang.php b/lib/plugins/authplain/lang/sq/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..e3a93502f0f8e6c4aa4edc7d50ee790f4bd334c0 --- /dev/null +++ b/lib/plugins/authplain/lang/sq/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.'; diff --git a/lib/plugins/authplain/lang/sr/lang.php b/lib/plugins/authplain/lang/sr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..2d85ca42a1f52092e610789eac66d75b22f60967 --- /dev/null +++ b/lib/plugins/authplain/lang/sr/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; diff --git a/lib/plugins/authplain/lang/sv/lang.php b/lib/plugins/authplain/lang/sv/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..fb80df956601d67ecb91d4590edf3145db660688 --- /dev/null +++ b/lib/plugins/authplain/lang/sv/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Det finns redan en användare med det användarnamnet.'; diff --git a/lib/plugins/authplain/lang/th/lang.php b/lib/plugins/authplain/lang/th/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..463a2799296a1e466e78046ef86fa924ddc1d5c6 --- /dev/null +++ b/lib/plugins/authplain/lang/th/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; diff --git a/lib/plugins/authplain/lang/tr/lang.php b/lib/plugins/authplain/lang/tr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6111085c21cc607f148ea14327bbe0f324e19a0a --- /dev/null +++ b/lib/plugins/authplain/lang/tr/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; diff --git a/lib/plugins/authplain/lang/uk/lang.php b/lib/plugins/authplain/lang/uk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8a796870facee443e46266b50ea9ccc35402c110 --- /dev/null +++ b/lib/plugins/authplain/lang/uk/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; diff --git a/lib/plugins/authplain/lang/vi/lang.php b/lib/plugins/authplain/lang/vi/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7ecb0a27cff5728cc084649f0219da11728c5b25 --- /dev/null +++ b/lib/plugins/authplain/lang/vi/lang.php @@ -0,0 +1,6 @@ +<?php +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = 'Bạn khác đã dùng username nà y rồi.'; diff --git a/lib/plugins/authplain/lang/zh-tw/lang.php b/lib/plugins/authplain/lang/zh-tw/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..39578f52da79cc9f99a53b39d741164a760e686e --- /dev/null +++ b/lib/plugins/authplain/lang/zh-tw/lang.php @@ -0,0 +1,7 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + */ +$lang['userexists'] = '很抱æ‰ï¼Œæœ‰äººå·²ä½¿ç”¨äº†é€™å€‹å¸³è™Ÿã€‚'; diff --git a/lib/plugins/authplain/lang/zh/lang.php b/lib/plugins/authplain/lang/zh/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..3dcebd28dbe22f01ae1b8d6528e678cd29a31cf6 --- /dev/null +++ b/lib/plugins/authplain/lang/zh/lang.php @@ -0,0 +1,10 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author lainme <lainme993@gmail.com> + */ +$lang['userexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; +$lang['usernotexists'] = '抱æ‰ï¼Œè¯¥ç”¨æˆ·ä¸å˜åœ¨'; +$lang['writefail'] = 'æ— æ³•ä¿®æ”¹ç”¨æˆ·æ•°æ®ã€‚请è”系维基管ç†å‘˜'; diff --git a/lib/plugins/authplain/plugin.info.txt b/lib/plugins/authplain/plugin.info.txt index 2659ac7ad5c38cb121caede91f3a1a6a9c7381cd..c09dbcb34bc281eb8c2de9c3d47c86d8d5e0d5e2 100644 --- a/lib/plugins/authplain/plugin.info.txt +++ b/lib/plugins/authplain/plugin.info.txt @@ -1,7 +1,7 @@ base authplain author Andreas Gohr email andi@splitbrain.org -date 2014-07-01 +date 2015-07-18 name Plain Auth Plugin desc Provides user authentication against DokuWiki's local password storage url http://www.dokuwiki.org/plugin:authplain diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php index b808ad505844c8cf2cc5e1e9636fe8d41c8eec2e..6e9eb0cc6f4ea6f9303d84cfce78b12ee5944447 100644 --- a/lib/plugins/config/_test/configuration.test.php +++ b/lib/plugins/config/_test/configuration.test.php @@ -1,4 +1,10 @@ <?php +/** + * @group plugin_config + * @group admin_plugins + * @group plugins + * @group bundled_plugins + */ class plugin_config_configuration_test extends DokuWikiTest { diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php index 2ef570b682c0738880d19cc737818446af5ef53f..ec8ee0b842bf566a635754c554b86cb969383cec 100644 --- a/lib/plugins/config/admin.php +++ b/lib/plugins/config/admin.php @@ -212,8 +212,8 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { if (!$this->_config->locked) { ptln(' <input type="hidden" name="save" value="1" />'); - ptln(' <input type="submit" name="submit" class="button" value="'.$lang['btn_save'].'" accesskey="s" />'); - ptln(' <input type="reset" class="button" value="'.$lang['btn_reset'].'" />'); + ptln(' <button type="submit" name="submit" accesskey="s">'.$lang['btn_save'].'</button>'); + ptln(' <button type="reset">'.$lang['btn_reset'].'</button>'); } ptln('</p>'); diff --git a/lib/plugins/config/lang/ar/intro.txt b/lib/plugins/config/lang/ar/intro.txt index d447ec315eb66deb8fa0c874956759f94684545c..15905189f94bd5c9b7cf00826ace90a10af9e551 100644 --- a/lib/plugins/config/lang/ar/intro.txt +++ b/lib/plugins/config/lang/ar/intro.txt @@ -4,4 +4,4 @@ الاعدادات الظاهرة بخلÙية ØÙ…راء ÙØ§ØªØØ© اعدادات Ù…ØÙ…ية ولا يمكن تغييرها بهذه Ø§Ù„Ø§Ø¶Ø§ÙØ©. الاعدادات الظاهرة بخلÙية زرقاء هي القيم Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© والاعدادات الظاهرة بخلÙية بيضاء خصصت لهذا التثبيت Ù…ØÙ„يا. الاعدادات الزرقاء والبيضاء يمكن تغييرها. -تأكد من ضغط زر **SAVE** قبل ترك Ø§Ù„ØµÙØØ© وإلا ستضيع تعديلاتك. \ No newline at end of file +تأكد من ضغط زر **SAVE** قبل ترك Ø§Ù„ØµÙØØ© وإلا ستضيع تعديلاتك. diff --git a/lib/plugins/config/lang/bg/lang.php b/lib/plugins/config/lang/bg/lang.php index 64ddb1eae873a749a4f1d33c82b5123809b6531c..0426df0609c5a546e4a1368e61c978c6e31182b7 100644 --- a/lib/plugins/config/lang/bg/lang.php +++ b/lib/plugins/config/lang/bg/lang.php @@ -1,259 +1,195 @@ <?php + /** - * bulgarian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Nikolay Vladimirov <nikolay@vladimiroff.com> * @author Viktor Usunov <usun0v@mail.bg> * @author Kiril <neohidra@gmail.com> */ - -// for admin plugins, the menu prompt to be displayed in the admin menu -// if set here, the plugin doesn't need to override the getMenuText() method -$lang['menu'] = 'ÐаÑтройки'; - -$lang['error'] = 'ОбновÑването на наÑтройките не е възможно, поради невалидна ÑтойноÑÑ‚, молÑ, прегледайте промените Ñи и пробвайте отново. +$lang['menu'] = 'ÐаÑтройки'; +$lang['error'] = 'ОбновÑването на наÑтройките не е възможно, поради невалидна ÑтойноÑÑ‚, молÑ, прегледайте промените Ñи и пробвайте отново. <br />Ðеверните ÑтойноÑти ще бъдат обградени Ñ Ñ‡ÐµÑ€Ð²ÐµÐ½Ð° рамка.'; -$lang['updated'] = 'ОбновÑването на наÑтройките е уÑпешно.'; -$lang['nochoice'] = '(нÑма друг възможен избор)'; -$lang['locked'] = 'ОбновÑването на файла Ñ Ð½Ð°Ñтройките не е възможно, ако това не е нарочно, проверете,<br /> +$lang['updated'] = 'ОбновÑването на наÑтройките е уÑпешно.'; +$lang['nochoice'] = '(нÑма друг възможен избор)'; +$lang['locked'] = 'ОбновÑването на файла Ñ Ð½Ð°Ñтройките не е възможно, ако това не е нарочно, проверете,<br /> дали името на Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ Ð½Ð°Ñтройки и правата Ñа верни.'; - -$lang['danger'] = 'Внимание: промÑна на опциÑта може да направи Wiki-то и менюто за наÑтройване недоÑтъпни.'; -$lang['warning'] = 'Предупреждение: промÑна на опциÑта може предизвика нежелани поÑледици.'; -$lang['security'] = 'Предупреждение: промÑна на опциÑта може да предÑтавлÑва риÑк за ÑигурноÑтта.'; - -/* --- Config Setting Headers --- */ -$lang['_configuration_manager'] = 'ДиÑпечер на наÑтройките'; //same as heading in intro.txt -$lang['_header_dokuwiki'] = 'ÐаÑтройки на DokuWiki'; -$lang['_header_plugin'] = 'ÐаÑтройки на приÑтавки'; -$lang['_header_template'] = 'ÐаÑтройки на шаблона'; -$lang['_header_undefined'] = 'Ðеопределени наÑтройки'; - -/* --- Config Setting Groups --- */ -$lang['_basic'] = 'ОÑновни наÑтройки'; -$lang['_display'] = 'ÐаÑтройки за изобразÑване'; -$lang['_authentication'] = 'ÐаÑтройки за удоÑтоверÑване'; -$lang['_anti_spam'] = 'ÐаÑтройки за борба ÑÑŠÑ SPAM-ма'; -$lang['_editing'] = 'ÐаÑтройки за редактиране'; -$lang['_links'] = 'ÐаÑтройки на препратките'; -$lang['_media'] = 'ÐаÑтройки на медиÑта'; -$lang['_notifications'] = 'ÐаÑтройки за извеÑÑ‚Ñване'; -$lang['_syndication'] = 'ÐаÑтройки на RSS емиÑиите'; -$lang['_advanced'] = 'Допълнителни наÑтройки'; -$lang['_network'] = 'Мрежови наÑтройки'; - -/* --- Undefined Setting Messages --- */ +$lang['danger'] = 'Внимание: промÑна на опциÑта може да направи Wiki-то и менюто за наÑтройване недоÑтъпни.'; +$lang['warning'] = 'Предупреждение: промÑна на опциÑта може предизвика нежелани поÑледици.'; +$lang['security'] = 'Предупреждение: промÑна на опциÑта може да предÑтавлÑва риÑк за ÑигурноÑтта.'; +$lang['_configuration_manager'] = 'ДиÑпечер на наÑтройките'; +$lang['_header_dokuwiki'] = 'ÐаÑтройки на DokuWiki'; +$lang['_header_plugin'] = 'ÐаÑтройки на приÑтавки'; +$lang['_header_template'] = 'ÐаÑтройки на шаблона'; +$lang['_header_undefined'] = 'Ðеопределени наÑтройки'; +$lang['_basic'] = 'ОÑновни наÑтройки'; +$lang['_display'] = 'ÐаÑтройки за изобразÑване'; +$lang['_authentication'] = 'ÐаÑтройки за удоÑтоверÑване'; +$lang['_anti_spam'] = 'ÐаÑтройки за борба ÑÑŠÑ SPAM-ма'; +$lang['_editing'] = 'ÐаÑтройки за редактиране'; +$lang['_links'] = 'ÐаÑтройки на препратките'; +$lang['_media'] = 'ÐаÑтройки на медиÑта'; +$lang['_notifications'] = 'ÐаÑтройки за извеÑÑ‚Ñване'; +$lang['_syndication'] = 'ÐаÑтройки на RSS емиÑиите'; +$lang['_advanced'] = 'Допълнителни наÑтройки'; +$lang['_network'] = 'Мрежови наÑтройки'; $lang['_msg_setting_undefined'] = 'ÐÑма метаданни за наÑтройките.'; $lang['_msg_setting_no_class'] = 'ÐÑма ÐºÐ»Ð°Ñ Ð½Ð°Ñтройки.'; $lang['_msg_setting_no_default'] = 'ÐÑма Ñтандартна ÑтойноÑÑ‚.'; - -/* -------------------- Config Options --------------------------- */ - -/* Basic Settings */ -$lang['title'] = 'Заглавие за Wiki-то, тоеÑÑ‚ името'; -$lang['start'] = 'Име на началната Ñтраница'; -$lang['lang'] = 'Език на интерфейÑа'; -$lang['template'] = 'Шаблон (Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð²Ð¸Ð´Ð° на Ñтраниците)'; -$lang['tagline'] = 'Подзаглавие - изобразÑва Ñе под името на Wiki-то (ако Ñе поддържа от шаблона)'; -$lang['sidebar'] = 'Име на Ñтраницата за Ñтраничната лента (ако Ñе поддържа от шаблона). ОÑтавите ли полето празно лентата ще бъде изключена'; -$lang['license'] = 'Под какъв лиценз да бъде публикувано Ñъдържанието?'; -$lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° запиÑване на данните'; -$lang['basedir'] = 'Главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (напр. <code>/dokuwiki/</code>). ОÑтавете празно, за да бъде заÑечена автоматично.'; -$lang['baseurl'] = 'URL Ð°Ð´Ñ€ÐµÑ (напр. <code>http://www.yourserver.com</code>). ОÑтавете празно, за да бъде заÑечен автоматично.'; -$lang['cookiedir'] = 'Път за биÑквитките. ОÑтавите ли полето празно ще Ñе ползва Ð³Ð¾Ñ€Ð½Ð¸Ñ URL адреÑ.'; -$lang['dmode'] = 'Режим (права) за Ñъздаване на директории'; -$lang['fmode'] = 'Режим (права) за Ñъздаване на файлове'; -$lang['allowdebug'] = 'Включване на режи debug - <b>изключете, ако не е нужен!</b>'; - -/* Display Settings */ -$lang['recent'] = 'Скорошни промени - брой елементи на Ñтраница'; -$lang['recent_days'] = 'Колко от Ñкорошните промени да Ñе пазÑÑ‚ (дни)'; -$lang['breadcrumbs'] = 'Брой на Ñледите. За изключване на функциÑта задайте 0.'; -$lang['youarehere'] = 'Йерархични Ñледи (в този Ñлучай можете да изключите горната опциÑ)'; -$lang['fullpath'] = 'Показване на Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ до Ñтраниците в Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ñ‚Ð¸Ñ‚ÑƒÐ».'; -$lang['typography'] = 'ЗамÑна на поÑледователноÑÑ‚ от Ñимволи Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„Ñки еквивалент'; -$lang['dformat'] = 'Формат на датата (виж. <a href="http://www.php.net/strftime">strftime</a> функциÑта на PHP)'; -$lang['signature'] = 'ÐŸÐ¾Ð´Ð¿Ð¸Ñ - какво да внаÑÑ Ð±ÑƒÑ‚Ð¾Ð½Ð° "Вмъкване на подпиÑ" от редактора'; -$lang['showuseras'] = 'Какво да Ñе показва за потребителÑ, който поÑледно е променил дадена Ñтраницата'; -$lang['toptoclevel'] = 'Главно ниво (заглавие) за Ñъдържанието'; -$lang['tocminheads'] = 'Минимален брой заглавиÑ, определÑщ дали да бъде Ñъздадено Ñъдържание'; -$lang['maxtoclevel'] = 'МакÑимален брой нива (заглавиÑ) за включване в Ñъдържанието'; -$lang['maxseclevel'] = 'МакÑимален брой нива предоÑтавÑни за ÑамоÑтоÑтелно редактиране'; -$lang['camelcase'] = 'Ползване на CamelCase за линкове'; -$lang['deaccent'] = 'ПочиÑтване имената на Ñтраниците (на файловете)'; -$lang['useheading'] = 'Ползване на първото заглавие за име на Ñтраница'; -$lang['sneaky_index'] = 'Стандартно DokuWiki ще показва вÑички именни проÑтранÑтва в индекÑа. ОпциÑта Ñкрива тези, за които потребителÑÑ‚ нÑма права за четене. Това може да доведе и до Ñкриване на иначе доÑтъпни подименни проÑтранÑтва. С определени наÑтройки на ÑпиÑъците за контрол на доÑтъпа (ACL) може да направи индекÑа неизползваем. '; -$lang['hidepages'] = 'Скриване на Ñтраниците Ñъвпадащи Ñ Ñ‚Ð¾Ð·Ð¸ регулÑрен израз(regular expressions)'; - -/* Authentication Settings */ -$lang['useacl'] = 'Ползване на ÑпиÑъци за доÑтъп'; -$lang['autopasswd'] = 'Ðвтоматично генериране на пароли, на нови потребители и пращане по пощата'; -$lang['authtype'] = 'Метод за удоÑтоверÑване'; -$lang['passcrypt'] = 'Метод за криптиране на паролите'; -$lang['defaultgroup']= 'Стандартна група'; -$lang['superuser'] = 'Супер потребител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð¿ÑŠÐ»ÐµÐ½ доÑтъп до вÑички Ñтраници и функции без значение от наÑтройките на ÑпиÑъците за доÑтъп (ACL)'; -$lang['manager'] = 'Управител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð´Ð¾Ñтъп до определени управленÑки функции '; -$lang['profileconfirm'] = 'Потвърждаване на промени в профила Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°'; -$lang['rememberme'] = 'Ползване на поÑтоÑнни биÑквитки за впиÑване (за функциÑта "Запомни ме")'; -$lang['disableactions'] = 'Изключване функции на DokuWiki'; -$lang['disableactions_check'] = 'Проверка'; +$lang['title'] = 'Заглавие за Wiki-то, тоеÑÑ‚ името'; +$lang['start'] = 'Име на началната Ñтраница'; +$lang['lang'] = 'Език на интерфейÑа'; +$lang['template'] = 'Шаблон (Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð²Ð¸Ð´Ð° на Ñтраниците)'; +$lang['tagline'] = 'Подзаглавие - изобразÑва Ñе под името на Wiki-то (ако Ñе поддържа от шаблона)'; +$lang['sidebar'] = 'Име на Ñтраницата за Ñтраничната лента (ако Ñе поддържа от шаблона). ОÑтавите ли полето празно лентата ще бъде изключена'; +$lang['license'] = 'Под какъв лиценз да бъде публикувано Ñъдържанието?'; +$lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° запиÑване на данните'; +$lang['basedir'] = 'Главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (напр. <code>/dokuwiki/</code>). ОÑтавете празно, за да бъде заÑечена автоматично.'; +$lang['baseurl'] = 'URL Ð°Ð´Ñ€ÐµÑ (напр. <code>http://www.yourserver.com</code>). ОÑтавете празно, за да бъде заÑечен автоматично.'; +$lang['cookiedir'] = 'Път за биÑквитките. ОÑтавите ли полето празно ще Ñе ползва Ð³Ð¾Ñ€Ð½Ð¸Ñ URL адреÑ.'; +$lang['dmode'] = 'Режим (права) за Ñъздаване на директории'; +$lang['fmode'] = 'Режим (права) за Ñъздаване на файлове'; +$lang['allowdebug'] = 'Включване на режи debug - <b>изключете, ако не е нужен!</b>'; +$lang['recent'] = 'Скорошни промени - брой елементи на Ñтраница'; +$lang['recent_days'] = 'Колко от Ñкорошните промени да Ñе пазÑÑ‚ (дни)'; +$lang['breadcrumbs'] = 'Брой на Ñледите. За изключване на функциÑта задайте 0.'; +$lang['youarehere'] = 'Йерархични Ñледи (в този Ñлучай можете да изключите горната опциÑ)'; +$lang['fullpath'] = 'Показване на Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ до Ñтраниците в Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ñ‚Ð¸Ñ‚ÑƒÐ».'; +$lang['typography'] = 'ЗамÑна на поÑледователноÑÑ‚ от Ñимволи Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„Ñки еквивалент'; +$lang['dformat'] = 'Формат на датата (виж. <a href="http://www.php.net/strftime">strftime</a> функциÑта на PHP)'; +$lang['signature'] = 'ÐŸÐ¾Ð´Ð¿Ð¸Ñ - какво да внаÑÑ Ð±ÑƒÑ‚Ð¾Ð½Ð° "Вмъкване на подпиÑ" от редактора'; +$lang['showuseras'] = 'Какво да Ñе показва за потребителÑ, който поÑледно е променил дадена Ñтраницата'; +$lang['toptoclevel'] = 'Главно ниво (заглавие) за Ñъдържанието'; +$lang['tocminheads'] = 'Минимален брой заглавиÑ, определÑщ дали да бъде Ñъздадено Ñъдържание'; +$lang['maxtoclevel'] = 'МакÑимален брой нива (заглавиÑ) за включване в Ñъдържанието'; +$lang['maxseclevel'] = 'МакÑимален брой нива предоÑтавÑни за ÑамоÑтоÑтелно редактиране'; +$lang['camelcase'] = 'Ползване на CamelCase за линкове'; +$lang['deaccent'] = 'ПочиÑтване имената на Ñтраниците (на файловете)'; +$lang['useheading'] = 'Ползване на първото заглавие за име на Ñтраница'; +$lang['sneaky_index'] = 'Стандартно DokuWiki ще показва вÑички именни проÑтранÑтва в индекÑа. ОпциÑта Ñкрива тези, за които потребителÑÑ‚ нÑма права за четене. Това може да доведе и до Ñкриване на иначе доÑтъпни подименни проÑтранÑтва. С определени наÑтройки на ÑпиÑъците за контрол на доÑтъпа (ACL) може да направи индекÑа неизползваем. '; +$lang['hidepages'] = 'Скриване на Ñтраниците Ñъвпадащи Ñ Ñ‚Ð¾Ð·Ð¸ регулÑрен израз(regular expressions)'; +$lang['useacl'] = 'Ползване на ÑпиÑъци за доÑтъп'; +$lang['autopasswd'] = 'Ðвтоматично генериране на пароли, на нови потребители и пращане по пощата'; +$lang['authtype'] = 'Метод за удоÑтоверÑване'; +$lang['passcrypt'] = 'Метод за криптиране на паролите'; +$lang['defaultgroup'] = 'Стандартна група'; +$lang['superuser'] = 'Супер потребител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð¿ÑŠÐ»ÐµÐ½ доÑтъп до вÑички Ñтраници и функции без значение от наÑтройките на ÑпиÑъците за доÑтъп (ACL)'; +$lang['manager'] = 'Управител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð´Ð¾Ñтъп до определени управленÑки функции '; +$lang['profileconfirm'] = 'Потвърждаване на промени в профила Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°'; +$lang['rememberme'] = 'Ползване на поÑтоÑнни биÑквитки за впиÑване (за функциÑта "Запомни ме")'; +$lang['disableactions'] = 'Изключване функции на DokuWiki'; +$lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'Ðбониране/ОтпиÑване'; $lang['disableactions_wikicode'] = 'Преглед на кода/ЕкÑпортиране на оригинална верÑиÑ'; -$lang['disableactions_other'] = 'Други дейÑÑ‚Ð²Ð¸Ñ (разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ)'; +$lang['disableactions_other'] = 'Други дейÑÑ‚Ð²Ð¸Ñ (разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ)'; $lang['auth_security_timeout'] = 'Ðвтоматично проверÑване на удоÑтоверÑването вÑеки (Ñек)'; -$lang['securecookie'] = 'Да Ñе изпращат ли биÑквитките зададени чрез HTTPS, Ñамо чрез HTTPS от браузъра? Изключете опциÑта, когато SSL Ñе ползва Ñамо за впиÑване, а четенето е без SSL.'; -$lang['remote'] = 'Включване на ÑиÑтемата за отдалечен API доÑтъп. Това ще позволи на Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ñе Ñвързват Ñ DokuWiki чрез XML-RPC или друг механизъм.'; -$lang['remoteuser'] = 'Ограничаване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ API доÑтъп - активиране Ñамо за Ñледните групи и потребители (отделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ðко оÑтавите полето празно вÑеки ще има доÑтъп доÑтъп.'; - -/* Anti-Spam Settings */ -$lang['usewordblock'] = 'Блокиране на SPAM въз оÑнова на на ÑпиÑък от думи'; -$lang['relnofollow'] = 'Ползване на rel="nofollow" за външни препратки'; -$lang['indexdelay'] = 'ЗабавÑне преди индекÑиране (Ñек)'; -$lang['mailguard'] = 'ПромÑна на адреÑите на ел. поща (във форма непозволÑваща пращането на SPAM)'; -$lang['iexssprotect'] = 'ПроверÑване на качените файлове за вероÑтен зловреден JavaScript и HTML код'; - -/* Editing Settings */ -$lang['usedraft'] = 'Ðвтоматично запазване на чернова по време на редактиране'; -$lang['htmlok'] = 'Разрешаване вграждането на HTML код'; -$lang['phpok'] = 'Разрешаване вграждането на PHP код'; -$lang['locktime'] = 'МакÑ. период за ÑъхранÑване на заключените файлове (Ñек)'; -$lang['cachetime'] = 'МакÑ. период за ÑъхранÑване на кеша (Ñек)'; - -/* Link settings */ -$lang['target____wiki'] = 'Прозорец за вътрешни препратки'; -$lang['target____interwiki'] = 'Прозорец за препратки към други Wiki Ñайтове'; -$lang['target____extern'] = 'Прозорец за външни препратки'; -$lang['target____media'] = 'Прозорец за медийни препратки'; -$lang['target____windows'] = 'Прозорец за препратки към Windows'; - -/* Media Settings */ -$lang['mediarevisions'] = 'Да Ñе пазÑÑ‚ ли Ñтари верÑии на качените файлове (Mediarevisions)?'; -$lang['refcheck'] = 'Проверка за препратка към медиÑ, преди да бъде изтрита'; -$lang['gdlib'] = 'ВерÑÐ¸Ñ Ð½Ð° GD Lib'; -$lang['im_convert'] = 'Път до инÑтрумента за транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° ImageMagick'; -$lang['jpg_quality'] = 'КачеÑтво на JPG компреÑиÑта (0-100)'; -$lang['fetchsize'] = 'МакÑимален размер (байтове), който fetch.php може да ÑвалÑ'; - -/* Notification Settings */ -$lang['subscribers'] = 'Включване на поддръжката за абониране към Ñтраници'; -$lang['subscribe_time'] = 'Време Ñлед което абонаментните ÑпиÑъци и Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñе изпращат (Ñек); ТрÑбва да е по-малко от времето определено в recent_days.'; -$lang['notify'] = 'Пращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° промени по Ñтраниците на Ñледната eл. поща'; -$lang['registernotify'] = 'Пращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° нови потребители на Ñледната ел. поща'; -$lang['mailfrom'] = 'Ел. поща, коÑто да Ñе ползва за автоматично изпращане на ел. пиÑма'; -$lang['mailprefix'] = 'ПредÑтавка за темите (поле subject) на автоматично изпращаните ел. пиÑма'; -$lang['htmlmail'] = 'Изпращане на по-добре изглеждащи, но по-големи по-размер HTML ел. пиÑма. Изключете ако желаете пиÑмата да Ñе изпращат като чиÑÑ‚ текÑÑ‚.'; - -/* Syndication Settings */ -$lang['sitemap'] = 'Генериране на Google sitemap (дни)'; -$lang['rss_type'] = 'Тип на XML емиÑиÑта'; -$lang['rss_linkto'] = 'XML емиÑиÑта препраща към'; -$lang['rss_content'] = 'Какво да показват елементите на XML емиÑиÑта?'; -$lang['rss_update'] = 'Интервал на актуализиране на XML емиÑиÑта (Ñек)'; -$lang['rss_show_summary'] = 'Показване на обобщение в заглавието на XML емиÑиÑта'; -$lang['rss_media'] = 'Кой тип промени да Ñе включват в XML миÑиÑта?'; - -/* Advanced Options */ -$lang['updatecheck'] = 'ПроверÑване за за нови верÑии и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑтта? Ðеобходимо е Dokiwiki да може да Ñе Ñвързва ÑÑŠÑ update.dokuwiki.org за тази функционалноÑÑ‚.'; -$lang['userewrite'] = 'Ползване на nice URL адреÑи'; -$lang['useslash'] = 'Ползване на наклонена черта за разделител на именните проÑтранÑтва в URL'; -$lang['sepchar'] = 'Разделител между думите в имената на Ñтраници'; -$lang['canonical'] = 'Ползване на напълно уеднаквени URL адреÑи (абÑолютни адреÑи - http://server/path)'; -$lang['fnencode'] = 'Метод за кодиране на не-ASCII именуваните файлове.'; -$lang['autoplural'] = 'ПроверÑване за множеÑтвено чиÑло в препратките'; -$lang['compression'] = 'Метод за компреÑÐ¸Ñ Ð½Ð° attic файлове'; -$lang['gzip_output'] = 'Кодиране на Ñъдържанието Ñ gzip за xhtml'; -$lang['compress'] = 'Компактен CSS и javascript изглед'; -$lang['cssdatauri'] = 'МакÑимален размер, в байтове, до който изображениÑта поÑочени в .CSS файл ще бъдат вграждани в Ñтила (stylesheet), за да Ñе намали Ð±Ñ€Ð¾Ñ Ð½Ð° HTTP заÑвките. Техниката не работи за верÑиите на IE преди 8! Препоръчителни ÑтойноÑти: <code>400</code> до <code>600</code> байта. Въведете <code>0</code> за изключване.'; -$lang['send404'] = 'Пращане на "HTTP 404/Page Not Found" за неÑъщеÑтвуващи Ñтраници'; -$lang['broken_iua'] = 'Отметнете, ако ignore_user_abort функциÑта не работи. Може да попречи на търÑенето в Ñтраниците. Знае Ñе, че комбинациÑта IIS+PHP/CGI е лоша. Вижте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Грешка 852</a> за повече информациÑ.'; -$lang['xsendfile'] = 'Ползване на Ð¥-Sendfile header, за да може уебÑървъра да дава Ñтатични файлове? ВашиÑÑ‚ уеб Ñървър трÑбва да го поддържа.'; -$lang['renderer_xhtml'] = 'ПредÑтавÑне на оÑновните изходни данни (xhtml) от Wiki-то Ñ'; -$lang['renderer__core'] = '%s (Ñдрото на DokuWiki)'; -$lang['renderer__plugin'] = '%s (приÑтавка)'; - -/* Network Options */ -$lang['dnslookups'] = 'DokuWiki ще търÑи имената на хоÑтовете, на отдалечени IP адреÑи, от които потребители редактират Ñтраници. ÐЕ е желателно да ползвате опциÑта ако имате бавен или неработещ DNS Ñървър.'; - -/* Proxy Options */ -$lang['proxy____host'] = 'Име на прокÑи Ñървър'; -$lang['proxy____port'] = 'Порт за прокÑито'; -$lang['proxy____user'] = 'Потребител за прокÑито'; -$lang['proxy____pass'] = 'Парола за прокÑито'; -$lang['proxy____ssl'] = 'Ползване на SSL при Ñвързване Ñ Ð¿Ñ€Ð¾ÐºÑито'; -$lang['proxy____except'] = 'РегулÑрен израз определÑщ за кои URL адреÑи да не Ñе ползва прокÑи Ñървър.'; - -/* Safemode Hack */ -$lang['safemodehack'] = 'Ползване на хака safemode'; -$lang['ftp____host'] = 'FTP Ñървър за хака safemode'; -$lang['ftp____port'] = 'FTP порт за хака safemode'; -$lang['ftp____user'] = 'FTP потребител за хака safemode'; -$lang['ftp____pass'] = 'FTP парола за хака safemode'; -$lang['ftp____root'] = 'FTP главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° хака safemode'; - -/* License Options */ -$lang['license_o_'] = 'Ðищо не е избрано'; - -/* typography options */ -$lang['typography_o_0'] = 'без'; -$lang['typography_o_1'] = 'Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на единични кавички'; -$lang['typography_o_2'] = 'включително единични кавички (не винаги работи)'; - -/* userewrite options */ -$lang['userewrite_o_0'] = 'без'; -$lang['userewrite_o_1'] = 'файлът .htaccess'; -$lang['userewrite_o_2'] = 'вътрешно от DokuWiki '; - -/* deaccent options */ -$lang['deaccent_o_0'] = 'изключено'; -$lang['deaccent_o_1'] = 'премахване на акценти'; -$lang['deaccent_o_2'] = 'транÑлитерациÑ'; - -/* gdlib options */ -$lang['gdlib_o_0'] = 'GD Lib не е доÑтъпна'; -$lang['gdlib_o_1'] = 'ВерÑÐ¸Ñ 1.x'; -$lang['gdlib_o_2'] = 'Ðвтоматично разпознаване'; - -/* rss_type options */ -$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'; - -/* rss_content options */ +$lang['securecookie'] = 'Да Ñе изпращат ли биÑквитките зададени чрез HTTPS, Ñамо чрез HTTPS от браузъра? Изключете опциÑта, когато SSL Ñе ползва Ñамо за впиÑване, а четенето е без SSL.'; +$lang['remote'] = 'Включване на ÑиÑтемата за отдалечен API доÑтъп. Това ще позволи на Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ñе Ñвързват Ñ DokuWiki чрез XML-RPC или друг механизъм.'; +$lang['remoteuser'] = 'Ограничаване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ API доÑтъп - активиране Ñамо за Ñледните групи и потребители (отделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ðко оÑтавите полето празно вÑеки ще има доÑтъп доÑтъп.'; +$lang['usewordblock'] = 'Блокиране на SPAM въз оÑнова на на ÑпиÑък от думи'; +$lang['relnofollow'] = 'Ползване на rel="nofollow" за външни препратки'; +$lang['indexdelay'] = 'ЗабавÑне преди индекÑиране (Ñек)'; +$lang['mailguard'] = 'ПромÑна на адреÑите на ел. поща (във форма непозволÑваща пращането на SPAM)'; +$lang['iexssprotect'] = 'ПроверÑване на качените файлове за вероÑтен зловреден JavaScript и HTML код'; +$lang['usedraft'] = 'Ðвтоматично запазване на чернова по време на редактиране'; +$lang['htmlok'] = 'Разрешаване вграждането на HTML код'; +$lang['phpok'] = 'Разрешаване вграждането на PHP код'; +$lang['locktime'] = 'МакÑ. период за ÑъхранÑване на заключените файлове (Ñек)'; +$lang['cachetime'] = 'МакÑ. период за ÑъхранÑване на кеша (Ñек)'; +$lang['target____wiki'] = 'Прозорец за вътрешни препратки'; +$lang['target____interwiki'] = 'Прозорец за препратки към други Wiki Ñайтове'; +$lang['target____extern'] = 'Прозорец за външни препратки'; +$lang['target____media'] = 'Прозорец за медийни препратки'; +$lang['target____windows'] = 'Прозорец за препратки към Windows'; +$lang['mediarevisions'] = 'Да Ñе пазÑÑ‚ ли Ñтари верÑии на качените файлове (Mediarevisions)?'; +$lang['refcheck'] = 'Проверка за препратка към медиÑ, преди да бъде изтрита'; +$lang['gdlib'] = 'ВерÑÐ¸Ñ Ð½Ð° GD Lib'; +$lang['im_convert'] = 'Път до инÑтрумента за транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° ImageMagick'; +$lang['jpg_quality'] = 'КачеÑтво на JPG компреÑиÑта (0-100)'; +$lang['fetchsize'] = 'МакÑимален размер (байтове), който fetch.php може да ÑвалÑ'; +$lang['subscribers'] = 'Включване на поддръжката за абониране към Ñтраници'; +$lang['subscribe_time'] = 'Време Ñлед което абонаментните ÑпиÑъци и Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñе изпращат (Ñек); ТрÑбва да е по-малко от времето определено в recent_days.'; +$lang['notify'] = 'Пращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° промени по Ñтраниците на Ñледната eл. поща'; +$lang['registernotify'] = 'Пращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° нови потребители на Ñледната ел. поща'; +$lang['mailfrom'] = 'Ел. поща, коÑто да Ñе ползва за автоматично изпращане на ел. пиÑма'; +$lang['mailprefix'] = 'ПредÑтавка за темите (поле subject) на автоматично изпращаните ел. пиÑма'; +$lang['htmlmail'] = 'Изпращане на по-добре изглеждащи, но по-големи по-размер HTML ел. пиÑма. Изключете ако желаете пиÑмата да Ñе изпращат като чиÑÑ‚ текÑÑ‚.'; +$lang['sitemap'] = 'Генериране на Google sitemap (дни)'; +$lang['rss_type'] = 'Тип на XML емиÑиÑта'; +$lang['rss_linkto'] = 'XML емиÑиÑта препраща към'; +$lang['rss_content'] = 'Какво да показват елементите на XML емиÑиÑта?'; +$lang['rss_update'] = 'Интервал на актуализиране на XML емиÑиÑта (Ñек)'; +$lang['rss_show_summary'] = 'Показване на обобщение в заглавието на XML емиÑиÑта'; +$lang['rss_media'] = 'Кой тип промени да Ñе включват в XML миÑиÑта?'; +$lang['updatecheck'] = 'ПроверÑване за за нови верÑии и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑтта? Ðеобходимо е Dokiwiki да може да Ñе Ñвързва ÑÑŠÑ update.dokuwiki.org за тази функционалноÑÑ‚.'; +$lang['userewrite'] = 'Ползване на nice URL адреÑи'; +$lang['useslash'] = 'Ползване на наклонена черта за разделител на именните проÑтранÑтва в URL'; +$lang['sepchar'] = 'Разделител между думите в имената на Ñтраници'; +$lang['canonical'] = 'Ползване на напълно уеднаквени URL адреÑи (абÑолютни адреÑи - http://server/path)'; +$lang['fnencode'] = 'Метод за кодиране на не-ASCII именуваните файлове.'; +$lang['autoplural'] = 'ПроверÑване за множеÑтвено чиÑло в препратките'; +$lang['compression'] = 'Метод за компреÑÐ¸Ñ Ð½Ð° attic файлове'; +$lang['gzip_output'] = 'Кодиране на Ñъдържанието Ñ gzip за xhtml'; +$lang['compress'] = 'Компактен CSS и javascript изглед'; +$lang['cssdatauri'] = 'МакÑимален размер, в байтове, до който изображениÑта поÑочени в .CSS файл ще бъдат вграждани в Ñтила (stylesheet), за да Ñе намали Ð±Ñ€Ð¾Ñ Ð½Ð° HTTP заÑвките. Техниката не работи за верÑиите на IE преди 8! Препоръчителни ÑтойноÑти: <code>400</code> до <code>600</code> байта. Въведете <code>0</code> за изключване.'; +$lang['send404'] = 'Пращане на "HTTP 404/Page Not Found" за неÑъщеÑтвуващи Ñтраници'; +$lang['broken_iua'] = 'Отметнете, ако ignore_user_abort функциÑта не работи. Може да попречи на търÑенето в Ñтраниците. Знае Ñе, че комбинациÑта IIS+PHP/CGI е лоша. Вижте <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Грешка 852</a> за повече информациÑ.'; +$lang['xsendfile'] = 'Ползване на Ð¥-Sendfile header, за да може уебÑървъра да дава Ñтатични файлове? ВашиÑÑ‚ уеб Ñървър трÑбва да го поддържа.'; +$lang['renderer_xhtml'] = 'ПредÑтавÑне на оÑновните изходни данни (xhtml) от Wiki-то Ñ'; +$lang['renderer__core'] = '%s (Ñдрото на DokuWiki)'; +$lang['renderer__plugin'] = '%s (приÑтавка)'; +$lang['dnslookups'] = 'DokuWiki ще търÑи имената на хоÑтовете, на отдалечени IP адреÑи, от които потребители редактират Ñтраници. ÐЕ е желателно да ползвате опциÑта ако имате бавен или неработещ DNS Ñървър.'; +$lang['proxy____host'] = 'Име на прокÑи Ñървър'; +$lang['proxy____port'] = 'Порт за прокÑито'; +$lang['proxy____user'] = 'Потребител за прокÑито'; +$lang['proxy____pass'] = 'Парола за прокÑито'; +$lang['proxy____ssl'] = 'Ползване на SSL при Ñвързване Ñ Ð¿Ñ€Ð¾ÐºÑито'; +$lang['proxy____except'] = 'РегулÑрен израз определÑщ за кои URL адреÑи да не Ñе ползва прокÑи Ñървър.'; +$lang['safemodehack'] = 'Ползване на хака safemode'; +$lang['ftp____host'] = 'FTP Ñървър за хака safemode'; +$lang['ftp____port'] = 'FTP порт за хака safemode'; +$lang['ftp____user'] = 'FTP потребител за хака safemode'; +$lang['ftp____pass'] = 'FTP парола за хака safemode'; +$lang['ftp____root'] = 'FTP главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° хака safemode'; +$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['userewrite_o_2'] = 'вътрешно от DokuWiki '; +$lang['deaccent_o_0'] = 'изключено'; +$lang['deaccent_o_1'] = 'премахване на акценти'; +$lang['deaccent_o_2'] = 'транÑлитерациÑ'; +$lang['gdlib_o_0'] = 'GD Lib не е доÑтъпна'; +$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'] = 'Atom верÑÐ¸Ñ 0.3'; +$lang['rss_type_o_atom1'] = 'Atom верÑÐ¸Ñ 1.0'; $lang['rss_content_o_abstract'] = 'Извлечение'; -$lang['rss_content_o_diff'] = 'Обединени разлики'; +$lang['rss_content_o_diff'] = 'Обединени разлики'; $lang['rss_content_o_htmldiff'] = 'Таблица Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸Ñ‚Ðµ в HTML формат'; -$lang['rss_content_o_html'] = 'ЦÑлото Ñъдържание на HTML Ñтраницата'; - -/* rss_linkto options */ +$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'] = 'текущата Ñтраница'; - -/* compression options */ -$lang['compression_o_0'] = 'без'; -$lang['compression_o_gz'] = 'gzip'; -$lang['compression_o_bz2'] = 'bz2'; - -/* xsendfile header */ -$lang['xsendfile_o_0'] = 'без'; -$lang['xsendfile_o_1'] = 'Специфичен lighttpd header (преди верÑÐ¸Ñ 1.5)'; -$lang['xsendfile_o_2'] = 'Стандартен X-Sendfile header'; -$lang['xsendfile_o_3'] = 'Специфичен Nginx X-Accel-Redirect header за пренаÑочване'; - -/* Display user info */ -$lang['showuseras_o_loginname'] = 'Име за впиÑване'; -$lang['showuseras_o_username'] = 'Пълно потребителÑко име'; -$lang['showuseras_o_email'] = 'Ел, поща (променени Ñпоред наÑтройките на mailguard)'; +$lang['compression_o_0'] = 'без'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; +$lang['xsendfile_o_0'] = 'без'; +$lang['xsendfile_o_1'] = 'Специфичен lighttpd header (преди верÑÐ¸Ñ 1.5)'; +$lang['xsendfile_o_2'] = 'Стандартен X-Sendfile header'; +$lang['xsendfile_o_3'] = 'Специфичен Nginx X-Accel-Redirect header за пренаÑочване'; +$lang['showuseras_o_loginname'] = 'Име за впиÑване'; +$lang['showuseras_o_username'] = 'Пълно потребителÑко име'; +$lang['showuseras_o_email'] = 'Ел, поща (променени Ñпоред наÑтройките на mailguard)'; $lang['showuseras_o_email_link'] = 'Ел. поща под формата на връзка тип mailto:'; - -/* useheading options */ -$lang['useheading_o_0'] = 'Ðикога'; +$lang['useheading_o_0'] = 'Ðикога'; $lang['useheading_o_navigation'] = 'Само за навигациÑ'; -$lang['useheading_o_content'] = 'Само за Ñъдържанието на Wiki-то'; -$lang['useheading_o_1'] = 'Винаги'; - -$lang['readdircache'] = 'МакÑимален период за ÑъхранÑване кеша на readdir (Ñек)'; +$lang['useheading_o_content'] = 'Само за Ñъдържанието на Wiki-то'; +$lang['useheading_o_1'] = 'Винаги'; +$lang['readdircache'] = 'МакÑимален период за ÑъхранÑване кеша на readdir (Ñек)'; diff --git a/lib/plugins/config/lang/ca-valencia/intro.txt b/lib/plugins/config/lang/ca-valencia/intro.txt index 40729e5fe9adb569d8a482e146b9f7ad488e9d24..6dd461db344b9519c5f47f9d1bee8c5aa353db59 100644 --- a/lib/plugins/config/lang/ca-valencia/intro.txt +++ b/lib/plugins/config/lang/ca-valencia/intro.txt @@ -7,4 +7,4 @@ Per a més informació al voltant d'este plúgin vaja a [[doku>config]]. Els ajusts mostrats en un fondo roig claret estan protegits i no els pot modificar en este plúgin. Els ajusts mostrats en un fondo blau tenen els valors predeterminats i els ajusts mostrats en un fondo blanc han segut modificats localment per ad esta instalació. Abdós ajusts, blaus i blancs, es poden modificar. -Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pà gina o perdrà els canvis que haja fet. \ No newline at end of file +Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pà gina o perdrà els canvis que haja fet. diff --git a/lib/plugins/config/lang/ca/lang.php b/lib/plugins/config/lang/ca/lang.php index a53a859a0a48f6b8874e6aa2bcd0f531a0b04c76..404d3ea709d22ee165dacec78c80f233466edfd1 100644 --- a/lib/plugins/config/lang/ca/lang.php +++ b/lib/plugins/config/lang/ca/lang.php @@ -1,12 +1,14 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es * @author Carles Bellver <carles.bellver@cent.uji.es> * @author daniel@6temes.cat + * @author controlonline.net <controlonline.net@gmail.com> */ $lang['menu'] = 'Parà metres de configuració'; $lang['error'] = 'Els parà metres no s\'han pogut actualitzar per causa d\'un valor incorrecte Reviseu els canvis i torneu a enviar-los.<br />Els valors incorrectes es ressaltaran amb un marc vermell.'; diff --git a/lib/plugins/config/lang/cs/intro.txt b/lib/plugins/config/lang/cs/intro.txt index 63381b84e66fb258b56f4b2beb3e356d2a0882fd..f98a62a6e9ae99563738cb0945d85874c3d22e04 100644 --- a/lib/plugins/config/lang/cs/intro.txt +++ b/lib/plugins/config/lang/cs/intro.txt @@ -5,4 +5,3 @@ Tuto stránku můžete použÃvat ke správÄ› nastavenà vašà instalace DokuWi Položky se svÄ›tle Äerveným pozadÃm jsou chránÄ›né a nelze je upravovat tÃmto pluginem. Položky s modrým pozadÃm jsou výchozà hodnoty a položky s bÃlým pozadÃm byly nastaveny lokálnÄ› v této konkrétnà instalaci. Modré i bÃlé položky je možné upravovat. Než opustÃte tuto stránku, nezapomeňte stisknout tlaÄÃtko **Uložit**, jinak budou zmÄ›ny ztraceny. - diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php index 289c458e5cb1ebe592b4a34be0b6b646d7db20ff..05d2d52f740872bd24f4394eac215d291737dd52 100644 --- a/lib/plugins/config/lang/cs/lang.php +++ b/lib/plugins/config/lang/cs/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Czech language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Bohumir Zamecnik <bohumir@zamecnik.org> * @author Zbynek Krivka <zbynek.krivka@seznam.cz> * @author tomas@valenta.cz @@ -13,6 +13,8 @@ * @author Bohumir Zamecnik <bohumir.zamecnik@gmail.com> * @author Jakub A. TěšÃnský (j@kub.cz) * @author mkucera66@seznam.cz + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['menu'] = 'Správa nastavenÃ'; $lang['error'] = 'Nastavenà nebyla zmÄ›nÄ›na kvůli alespoň jedné neplatné položce, @@ -95,7 +97,9 @@ $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_wikicode'] = 'ProhlÞet zdrojové kódy/Export wiki textu'; +$lang['disableactions_profile_delete'] = 'Smazat vlasnà úÄet'; $lang['disableactions_other'] = 'Dalšà akce (oddÄ›lené Äárkou)'; +$lang['disableactions_rss'] = 'XMS syndikace (RSS)'; $lang['auth_security_timeout'] = 'ÄŒasový limit pro autentikaci (v sekundách)'; $lang['securecookie'] = 'Má prohlÞeÄ posÃlat cookies nastavené pÅ™es HTTPS opÄ›t jen pÅ™es HTTPS? VypnÄ›te tuto volbu, pokud chcete, aby bylo pomocà SSL zabezpeÄeno pouze pÅ™ihlaÅ¡ovánà do wiki, ale obsah budete prohlÞet nezabezpeÄenÄ›.'; $lang['remote'] = 'Zapne API systému, umožňujÃcà jiným aplikacÃm vzdálený pÅ™Ãstup k wiki pomoci XML-RPC nebo jiných mechanizmů.'; @@ -200,6 +204,7 @@ $lang['xsendfile_o_2'] = 'Standardnà hlaviÄka X-Sendfile'; $lang['xsendfile_o_3'] = 'Proprietárnà hlaviÄka Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'PÅ™ihlaÅ¡ovacà jméno'; $lang['showuseras_o_username'] = 'Celé jméno uživatele'; +$lang['showuseras_o_username_link'] = 'Celé uživatelské jméno jako odkaz mezi wiki'; $lang['showuseras_o_email'] = 'E-mailová adresa uživatele ("zamaskována" aktuálnÄ› nastavenou metodou)'; $lang['showuseras_o_email_link'] = 'E-mailová adresa uživatele jako mailto: odkaz'; $lang['useheading_o_0'] = 'Nikdy'; diff --git a/lib/plugins/config/lang/cy/intro.txt b/lib/plugins/config/lang/cy/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..02ccec5860d63e9b62e4313277e84a00b7622c49 --- /dev/null +++ b/lib/plugins/config/lang/cy/intro.txt @@ -0,0 +1,7 @@ +====== Rheolwr Ffurfwedd ====== + +Defnyddiwch y dudalen hon i reoli gosodiadau eich arsefydliad DokuWiki. Am gymorth ar osodiadau unigol ewch i [[doku>config]]. Am wybodaeth bellach ar yr ategyn hwn ewch i [[doku>plugin:config]]. + +Mae gosodiadau gyda chefndir coch golau wedi\'u hamddiffyn a \'sdim modd eu newid gyda\'r ategyn hwn. Mae gosodiaadau gyda chefndir glas yn dynodi gwerthoedd diofyn ac mae gosodiadau gyda chefndir gwyn wedi\'u gosod yn lleol ar gyfer yr arsefydliad penodol hwn. Mae modd newid gosodiadau gwyn a glas. + +Cofiwch bwyso y botwm **Cadw** cyn gadael y dudalen neu caiff eich newidiadau eu colli. diff --git a/lib/plugins/config/lang/cy/lang.php b/lib/plugins/config/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..54f3b4cebe52178ae48d8738a3273280f095fc40 --- /dev/null +++ b/lib/plugins/config/lang/cy/lang.php @@ -0,0 +1,262 @@ +<?php +/** + * welsh language file + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Matthias Schulte <dokuwiki@lupo49.de> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +// for admin plugins, the menu prompt to be displayed in the admin menu +// if set here, the plugin doesn't need to override the getMenuText() method +$lang['menu'] = 'Gosodiadau Ffurwedd'; + +$lang['error'] = 'Gosodiadau heb eu diweddaru oherwydd gwerth annilys, gwiriwch eich newidiadau ac ailgyflwyno. + <br />Caiff y gwerth(oedd) anghywir ei/eu dangos gydag ymyl coch.'; +$lang['updated'] = 'Diweddarwyd gosodiadau\'n llwyddiannus.'; +$lang['nochoice'] = '(dim dewisiadau eraill ar gael)'; +$lang['locked'] = '\'Sdim modd diweddaru\'r ffeil osodiadau, os ydy hyn yn anfwriadol, <br /> + sicrhewch fod enw\'r ffeil osodiadau a\'r hawliau lleol yn gywir.'; + +$lang['danger'] = 'Perygl: Gall newid yr opsiwn hwn wneud eich wici a\'r ddewislen ffurfwedd yn anghyraeddadwy.'; +$lang['warning'] = 'Rhybudd: Gall newid yr opsiwn hwn achosi ymddygiad anfwriadol.'; +$lang['security'] = 'Rhybudd Diogelwch: Gall newid yr opsiwn hwn achosi risg diogelwch.'; + +/* --- Config Setting Headers --- */ +$lang['_configuration_manager'] = 'Rheolwr Ffurfwedd'; //same as heading in intro.txt +$lang['_header_dokuwiki'] = 'DokuWiki'; +$lang['_header_plugin'] = 'Ategyn'; +$lang['_header_template'] = 'Templed'; +$lang['_header_undefined'] = 'Gosodiadau Amhenodol'; + +/* --- Config Setting Groups --- */ +$lang['_basic'] = 'Sylfaenol'; +$lang['_display'] = 'Dangos'; +$lang['_authentication'] = 'Dilysiad'; +$lang['_anti_spam'] = 'Gwrth-Sbam'; +$lang['_editing'] = 'Yn Golygu'; +$lang['_links'] = 'Dolenni'; +$lang['_media'] = 'Cyfrwng'; +$lang['_notifications'] = 'Hysbysiad'; +$lang['_syndication'] = 'Syndication (RSS)'; //angen newid +$lang['_advanced'] = 'Uwch'; +$lang['_network'] = 'Rhwydwaith'; + +/* --- Undefined Setting Messages --- */ +$lang['_msg_setting_undefined'] = 'Dim gosodiad metadata.'; +$lang['_msg_setting_no_class'] = 'Dim gosodiad dosbarth.'; +$lang['_msg_setting_no_default'] = 'Dim gwerth diofyn.'; + +/* -------------------- Config Options --------------------------- */ + +/* Basic Settings */ +$lang['title'] = 'Teitl y wici h.y. enw\'ch wici'; +$lang['start'] = 'Enw\'r dudalen i\'w defnyddio fel man cychwyn ar gyfer pob namespace'; //namespace +$lang['lang'] = 'Iaith y rhyngwyneb'; +$lang['template'] = 'Templed h.y. dyluniad y wici.'; +$lang['tagline'] = 'Taglinell (os yw\'r templed yn ei gynnal)'; +$lang['sidebar'] = 'Enw tudalen y bar ochr (os yw\'r templed yn ei gynnal), Mae maes gwag yn analluogi\'r bar ochr'; +$lang['license'] = 'O dan ba drwydded dylai\'ch cynnwys gael ei ryddhau?'; +$lang['savedir'] = 'Ffolder ar gyfer cadw data'; +$lang['basedir'] = 'Llwybr y gweinydd (ee. <code>/dokuwiki/</code>). Gadewch yn wag ar gyfer awtoddatgeliad.'; +$lang['baseurl'] = 'URL y gweinydd (ee. <code>http://www.yourserver.com</code>). Gadewch yn wag ar gyfer awtoddatgeliad.'; +$lang['cookiedir'] = 'Llwybr cwcis. Gadewch yn wag i ddefnyddio \'baseurl\'.'; +$lang['dmode'] = 'Modd creu ffolderi'; +$lang['fmode'] = 'Modd creu ffeiliau'; +$lang['allowdebug'] = 'Caniatáu dadfygio. <b>Analluogwch os nac oes angen hwn!</b>'; + +/* Display Settings */ +$lang['recent'] = 'Nifer y cofnodion y dudalen yn y newidiadau diweddar'; +$lang['recent_days'] = 'Sawl newid diweddar i\'w cadw (diwrnodau)'; +$lang['breadcrumbs'] = 'Nifer y briwsion "trywydd". Gosodwch i 0 i analluogi.'; +$lang['youarehere'] = 'Defnyddiwch briwsion hierarchaidd (byddwch chi yn debygol o angen analluogi\'r opsiwn uchod wedyn)'; +$lang['fullpath'] = 'Datgelu llwybr llawn y tudalennau yn y troedyn'; +$lang['typography'] = 'Gwnewch amnewidiadau argraffyddol'; +$lang['dformat'] = 'Fformat dyddiad (gweler swyddogaeth <a href="http://www.php.net/strftime">strftime</a> PHP)'; +$lang['signature'] = 'Yr hyn i\'w mewnosod gyda\'r botwm llofnod yn y golygydd'; +$lang['showuseras'] = 'Yr hyn i\'w harddangos wrth ddangos y defnyddiwr a wnaeth olygu\'r dudalen yn olaf'; +$lang['toptoclevel'] = 'Lefel uchaf ar gyfer tabl cynnwys'; +$lang['tocminheads'] = 'Isafswm y penawdau sy\'n penderfynu os ydy\'r tabl cynnwys yn cael ei adeiladu'; +$lang['maxtoclevel'] = 'Lefel uchaf ar gyfer y tabl cynnwys'; +$lang['maxseclevel'] = 'Lefel uchaf adran olygu'; +$lang['camelcase'] = 'Defnyddio CamelCase ar gyfer dolenni'; +$lang['deaccent'] = 'Sut i lanhau enwau tudalennau'; +$lang['useheading'] = 'Defnyddio\'r pennawd cyntaf ar gyfer enwau tudalennau'; +$lang['sneaky_index'] = 'Yn ddiofyn, bydd DokuWiki yn dangos pob namespace yn y map safle. Bydd galluogi yr opsiwn hwn yn cuddio\'r rheiny lle \'sdim hawliau darllen gan y defnyddiwr. Gall hwn achosi cuddio subnamespaces cyraeddadwy a fydd yn gallu peri\'r indecs i beidio â gweithio gyda gosodiadau ACL penodol.'; //namespace +$lang['hidepages'] = 'Cuddio tudalennau sy\'n cydweddu gyda\'r mynegiad rheolaidd o\'r chwiliad, y map safle ac indecsau awtomatig eraill'; + +/* Authentication Settings */ +$lang['useacl'] = 'Defnyddio rhestrau rheoli mynediad'; +$lang['autopasswd'] = 'Awtogeneradu cyfrineiriau'; +$lang['authtype'] = 'Ôl-brosesydd dilysu'; +$lang['passcrypt'] = 'Dull amgryptio cyfrineiriau'; +$lang['defaultgroup']= 'Grŵp diofyn, caiff pob defnyddiwr newydd ei osod yn y grŵp hwn'; +$lang['superuser'] = 'Uwchddefnyddiwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad llawn i bob tudalen beth bynnag y gosodiadau ACL'; +$lang['manager'] = 'Rheolwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad i swyddogaethau rheoli penodol'; +$lang['profileconfirm'] = 'Cadrnhau newidiadau proffil gyda chyfrinair'; +$lang['rememberme'] = 'Caniatáu cwcis mewngofnodi parhaol (cofio fi)'; +$lang['disableactions'] = 'Analluogi gweithredoedd DokuWiki'; +$lang['disableactions_check'] = 'Gwirio'; +$lang['disableactions_subscription'] = 'Tanysgrifio/Dad-tanysgrifio'; +$lang['disableactions_wikicode'] = 'Dangos ffynhonnell/Allforio Crai'; +$lang['disableactions_profile_delete'] = 'Dileu Cyfrif Eu Hunain'; +$lang['disableactions_other'] = 'Gweithredoedd eraill (gwahanu gan goma)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; //angen newid hwn +$lang['auth_security_timeout'] = 'Terfyn Amser Diogelwch Dilysiad (eiliadau)'; +$lang['securecookie'] = 'A ddylai cwcis sydd wedi cael eu gosod gan HTTPS gael eu hanfon trwy HTTPS yn unig gan y porwr? Analluogwch yr opsiwn hwn dim ond pan fydd yr unig mewngofnodiad i\'ch wici wedi\'i ddiogelu gydag SSL ond mae pori\'r wici yn cael ei wneud heb ddiogelu.'; +$lang['remote'] = 'Galluogi\'r system API pell. Mae hwn yn galluogi apps eraill i gael mynediad i\'r wici trwy XML-RPC neu fecanweithiau eraill.'; +$lang['remoteuser'] = 'Cyfyngu mynediad API pell i grwpiau neu ddefnydwyr wedi\'u gwahanu gan goma yma. Gadewch yn wag i roi mynediad i bawb.'; + +/* Anti-Spam Settings */ +$lang['usewordblock']= 'Blocio sbam wedi selio ar restr eiriau'; +$lang['relnofollow'] = 'Defnyddio rel="nofollow" ar ddolenni allanol'; +$lang['indexdelay'] = 'Oediad cyn indecsio (eil)'; +$lang['mailguard'] = 'Tywyllu cyfeiriadau ebost'; +$lang['iexssprotect']= 'Gwirio ffeiliau a lanlwythwyd am JavaScript neu god HTML sydd efallai\'n faleisis'; + +/* Editing Settings */ +$lang['usedraft'] = 'Cadw drafft yn awtomatig wrth olygu'; +$lang['htmlok'] = 'Caniatáu HTML wedi\'i fewnosod'; +$lang['phpok'] = 'Caniatáu PHP wedi\'i fewnosod'; +$lang['locktime'] = 'Oed mwyaf ar gyfer cloi ffeiliau (eil)'; +$lang['cachetime'] = 'Oed mwyaf ar gyfer y storfa (eil)'; + +/* Link settings */ +$lang['target____wiki'] = 'Ffenestr darged ar gyfer dolenni mewnol'; +$lang['target____interwiki'] = 'Ffenestr darged ar gyfer dolenni interwiki'; +$lang['target____extern'] = 'Ffenestr darged ar gyfer dolenni allanol'; +$lang['target____media'] = 'Ffenestr darged ar gyfer dolenni cyfrwng'; +$lang['target____windows'] = 'Ffenestr darged ar gyfer dolenni ffenestri'; + +/* Media Settings */ +$lang['mediarevisions'] = 'Galluogi Mediarevisions?'; +$lang['refcheck'] = 'Gwirio os ydy ffeil gyfrwng yn dal yn cael ei defnydio cyn ei dileu hi'; +$lang['gdlib'] = 'Fersiwn GD Lib'; +$lang['im_convert'] = 'Llwybr i declyn trosi ImageMagick'; +$lang['jpg_quality'] = 'Ansawdd cywasgu JPG (0-100)'; +$lang['fetchsize'] = 'Uchafswm maint (beit) gall fetch.php lawlwytho o URL allanol, ee. i storio ac ailfeintio delweddau allanol.'; + +/* Notification Settings */ +$lang['subscribers'] = 'Caniatáu defnyddwyr i danysgrifio i newidiadau tudalen gan ebost'; +$lang['subscribe_time'] = 'Yr amser cyn caiff rhestrau tanysgrifio a chrynoadau eu hanfon (eil); Dylai hwn fod yn llai na\'r amser wedi\'i gosod mewn recent_days.'; +$lang['notify'] = 'Wastad anfon hysbysiadau newidiadau i\'r cyfeiriad ebost hwn'; +$lang['registernotify'] = 'Wastad anfon gwybodaeth ar ddefnyddwyr newydd gofrestru i\'r cyfeiriad ebost hwn'; +$lang['mailfrom'] = 'Cyfeiriad anfon ebyst i\'w ddefnyddio ar gyfer pyst awtomatig'; +$lang['mailprefix'] = 'Rhagddodiad testun ebyst i\'w ddefnyddio ar gyfer pyst awtomatig. Gadewch yn wag i ddefnyddio teitl y wici'; +$lang['htmlmail'] = 'Anfonwch ebyst aml-ddarn HTML sydd yn edrych yn well, ond sy\'n fwy mewn maint. Analluogwch ar gyfer pyst testun plaen yn unig.'; + +/* Syndication Settings */ +$lang['sitemap'] = 'Generadu map safle Google mor aml â hyn (mewn diwrnodau). 0 i anallogi'; +$lang['rss_type'] = 'Math y ffrwd XML'; +$lang['rss_linkto'] = 'Ffrwd XML yn cysylltu â'; +$lang['rss_content'] = 'Beth i\'w ddangos mewn eitemau\'r ffrwd XML?'; +$lang['rss_update'] = 'Cyfnod diwedaru ffrwd XML (eil)'; +$lang['rss_show_summary'] = 'Dangos crynodeb mewn teitl y ffrwd XML'; +$lang['rss_media'] = 'Pa fath newidiadau a ddylai cael eu rhestru yn y ffrwd XML??'; + +/* Advanced Options */ +$lang['updatecheck'] = 'Gwirio am ddiweddariadau a rhybuddion diogelwch? Mae\'n rhaid i DokuWiki gysylltu ag update.dokuwiki.org ar gyfer y nodwedd hon.'; +$lang['userewrite'] = 'Defnyddio URLs pert'; +$lang['useslash'] = 'Defnyddio slaes fel gwahanydd namespace mewn URL'; +$lang['sepchar'] = 'Gwanahydd geiriau mewn enw tudalennau'; +$lang['canonical'] = 'Defnyddio URLs canonaidd llawn'; +$lang['fnencode'] = 'Dull amgodio enw ffeiliau \'non-ASCII\'.'; +$lang['autoplural'] = 'Gwirio am ffurfiau lluosog mewn dolenni'; +$lang['compression'] = 'Dull cywasgu ar gyfer ffeiliau llofft (hen adolygiadau)'; +$lang['gzip_output'] = 'Defnyddio gzip Content-Encoding ar gyfer xhtml'; //pwy a wyr +$lang['compress'] = 'Cywasgu allbwn CSS a javascript'; +$lang['cssdatauri'] = 'Uchafswm maint mewn beitiau ar gyfer delweddau i\'w cyfeirio atynt mewn ffeiliau CSS a ddylai cael eu mewnosod i\'r ddalen arddull i leihau gorbenion pennyn cais HTTP. \'Dyw\'r dechneg hon ddim yn gweithio mewn IE 7 ac is! Mae <code>400</code> i <code>600</code> beit yn werth da. Gosodwch i <code>0</code> i\'w analluogi.'; +$lang['send404'] = 'Anfon "HTTP 404/Page Not Found" ar gyfer tudalennau sy ddim yn bodoli'; +$lang['broken_iua'] = 'Ydy\'r swyddogaeth ignore_user_abort wedi torri ar eich system? Gall hwn achosi\'r indecs chwilio i beidio â gweithio. Rydym yn gwybod bod IIS+PHP/CGI wedi torri. Gweler <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">Bug 852</a> am wybodaeth bellach.'; +$lang['xsendfile'] = 'Defnyddio\'r pennyn X-Sendfile i ganiatáu\'r gweinydd gwe i ddanfon ffeiliau statig? Mae\'n rhaid bod eich gweinydd gwe yn caniatáu hyn.'; +$lang['renderer_xhtml'] = 'Cyflwynydd i ddefnyddio ar gyfer prif allbwn (xhtml) y wici'; +$lang['renderer__core'] = '%s (craidd dokuwiki)'; +$lang['renderer__plugin'] = '%s (ategyn)'; + +/* Network Options */ +$lang['dnslookups'] = 'Bydd DokuWiki yn edrych i fyny enwau gwesteiwyr ar gyfer cyfeiriadau IP pell y defnyddwyr hynny sy\'n golygu tudalennau. Os oes gweinydd DNS sy\'n araf neu sy ddim yn gweithio \'da chi neu \'dych chi ddim am ddefnyddio\'r nodwedd hon, analluogwch yr opsiwn hwn.'; + +/* Proxy Options */ +$lang['proxy____host'] = 'Enw\'r gweinydd procsi'; +$lang['proxy____port'] = 'Porth procsi'; +$lang['proxy____user'] = 'Defnyddair procsi'; +$lang['proxy____pass'] = 'Cyfrinair procsi'; +$lang['proxy____ssl'] = 'Defnyddio SSL i gysylltu â\'r procsi'; +$lang['proxy____except'] = 'Mynegiad rheolaidd i gydweddu URL ar gyfer y procsi a ddylai cael eu hanwybyddu.'; + +/* Safemode Hack */ +$lang['safemodehack'] = 'Galluogi safemode hack'; +$lang['ftp____host'] = 'Gweinydd FTP safemode hack'; +$lang['ftp____port'] = 'Porth FTP safemode hack'; +$lang['ftp____user'] = 'Defnyddair FTP safemode hack'; +$lang['ftp____pass'] = 'Cyfrinair FTP safemode hack'; +$lang['ftp____root'] = 'Gwraiddffolder FTP safemode hack'; + +/* License Options */ +$lang['license_o_'] = 'Dim wedi\'i ddewis'; + +/* typography options */ +$lang['typography_o_0'] = 'dim'; +$lang['typography_o_1'] = 'eithrio dyfynodau sengl'; +$lang['typography_o_2'] = 'cynnwys dyfynodau sengl (efallai ddim yn gweithio pob tro)'; + +/* userewrite options */ +$lang['userewrite_o_0'] = 'dim'; +$lang['userewrite_o_1'] = '.htaccess'; +$lang['userewrite_o_2'] = 'DokuWiki mewnol'; + +/* deaccent options */ +$lang['deaccent_o_0'] = 'bant'; +$lang['deaccent_o_1'] = 'tynnu acenion'; +$lang['deaccent_o_2'] = 'rhufeinio'; + +/* gdlib options */ +$lang['gdlib_o_0'] = 'GD Lib ddim ar gael'; +$lang['gdlib_o_1'] = 'Fersiwn 1.x'; +$lang['gdlib_o_2'] = 'Awtoddatgeliad'; + +/* rss_type options */ +$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'; + +/* rss_content options */ +$lang['rss_content_o_abstract'] = 'Crynodeb'; +$lang['rss_content_o_diff'] = 'Gwahan. Unedig'; +$lang['rss_content_o_htmldiff'] = 'Gwahaniaethau ar ffurf tabl HTML'; +$lang['rss_content_o_html'] = 'Cynnwys tudalen HTML llawn'; + +/* rss_linkto options */ +$lang['rss_linkto_o_diff'] = 'golwg gwahaniaethau'; +$lang['rss_linkto_o_page'] = 'y dudalen a adolygwyd'; +$lang['rss_linkto_o_rev'] = 'rhestr adolygiadau'; +$lang['rss_linkto_o_current'] = 'y dudalen gyfredol'; + +/* compression options */ +$lang['compression_o_0'] = 'dim'; +$lang['compression_o_gz'] = 'gzip'; +$lang['compression_o_bz2'] = 'bz2'; + +/* xsendfile header */ +$lang['xsendfile_o_0'] = "peidio â defnyddio"; +$lang['xsendfile_o_1'] = 'Pennyn perchnogol lighttpd (cyn rhyddhad 1.5)'; +$lang['xsendfile_o_2'] = 'Pennyn safonol X-Sendfile'; +$lang['xsendfile_o_3'] = 'Pennyn perchnogol Nginx X-Accel-Redirect'; + +/* Display user info */ +$lang['showuseras_o_loginname'] = 'Enw mewngofnodi'; +$lang['showuseras_o_username'] = "Enw llawn y defnyddiwr"; +$lang['showuseras_o_username_link'] = "Enw llawn y defnyddiwr fel dolen defnyddiwr interwiki"; +$lang['showuseras_o_email'] = "Cyfeiriad e-bost y defnyddiwr (tywyllu yn ôl gosodiad mailguard)"; +$lang['showuseras_o_email_link'] = "Cyfeiriad e-bost y defnyddiwr fel dolen mailto:"; + +/* useheading options */ +$lang['useheading_o_0'] = 'Byth'; +$lang['useheading_o_navigation'] = 'Llywio yn Unig'; +$lang['useheading_o_content'] = 'Cynnwys Wici yn Unig'; +$lang['useheading_o_1'] = 'Wastad'; + +$lang['readdircache'] = 'Uchafswm amser ar gyfer storfa readdir (eil)'; diff --git a/lib/plugins/config/lang/da/intro.txt b/lib/plugins/config/lang/da/intro.txt index f20961b9881014b440374465bf6d7b57e7105eae..14cd3d601d43f9ff0007ed313f335af647b4193c 100644 --- a/lib/plugins/config/lang/da/intro.txt +++ b/lib/plugins/config/lang/da/intro.txt @@ -5,4 +5,3 @@ Brug denne side til at kontrollere indstillingerne for din Dokuwiki-opsætning. Indstillinger vist med lys rød baggrund er beskyttede og kan ikke ændres med denne udvidelse. Indstillinger vist med blÃ¥ baggrund er standardindstillinger og indstillinger vist med hvid baggrund er blevet sat lokalt denne konkrete opsætning. BÃ¥de blÃ¥ og hvide indstillinger kan ændres. Husk at trykke pÃ¥ **Gem**-knappen før du forlader siden, for at du ikke mister dine ændringer. - diff --git a/lib/plugins/config/lang/de-informal/intro.txt b/lib/plugins/config/lang/de-informal/intro.txt index df9845ebc0610e1d8508da0ec967f4e3289013dd..ce4625cffb079869ebeaf49a5b254078edbd8c8b 100644 --- a/lib/plugins/config/lang/de-informal/intro.txt +++ b/lib/plugins/config/lang/de-informal/intro.txt @@ -4,4 +4,4 @@ Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation 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 **Speichern** zu drücken bevor du die Seite verlässt, 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. diff --git a/lib/plugins/config/lang/de/intro.txt b/lib/plugins/config/lang/de/intro.txt index b79b5f871c05c9087754b4eea33a750b979b5d89..e743379ff53d50273612f00ee461aeaf246daf00 100644 --- a/lib/plugins/config/lang/de/intro.txt +++ b/lib/plugins/config/lang/de/intro.txt @@ -5,6 +5,3 @@ Dieses Plugin hilft Ihnen bei der Konfiguration von DokuWiki. Hilfe zu den einze Einstellungen mit einem hellroten Hintergrund sind gesichert und können nicht mit diesem Plugin verändert werden, Einstellungen mit hellblauem Hintergrund sind Voreinstellungen, weiß hinterlegte Felder zeigen lokal veränderte Werte an. Sowohl die blauen als auch die weißen Felder können verändert werden. Bitte vergessen Sie nicht **Speichern** zu drücken bevor Sie die Seite verlassen, andernfalls gehen Ihre Änderungen verloren. - - - diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php index d398ebf843872a31f6c25d7511b6fd7a32eba662..f3ddefd9b5057a756bbd2758d8411dd4228b50f0 100644 --- a/lib/plugins/config/lang/de/lang.php +++ b/lib/plugins/config/lang/de/lang.php @@ -1,8 +1,8 @@ <?php + /** - * German language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Andreas Gohr <andi@splitbrain.org> * @author Michael Klier <chi@chimeric.de> * @author Leo Moll <leo@yeasoft.com> @@ -18,6 +18,7 @@ * @author Pierre Corell <info@joomla-praxis.de> * @author Matthias Schulte <dokuwiki@lupo49.de> * @author Mateng Schimmerlos <mateng@firemail.de> + * @author Anika Henke <anika@selfthinker.org> */ $lang['menu'] = 'Konfiguration'; $lang['error'] = 'Die Einstellungen wurden wegen einer fehlerhaften Eingabe nicht gespeichert.<br /> Bitte überprüfen sie die rot umrandeten Eingaben und speichern Sie erneut.'; @@ -46,28 +47,29 @@ $lang['_network'] = 'Netzwerk'; $lang['_msg_setting_undefined'] = 'Keine Konfigurationsmetadaten.'; $lang['_msg_setting_no_class'] = 'Keine Konfigurationsklasse.'; $lang['_msg_setting_no_default'] = 'Kein Standardwert.'; -$lang['fmode'] = 'Berechtigungen für neue Dateien'; -$lang['dmode'] = 'Berechtigungen für neue Verzeichnisse'; -$lang['lang'] = 'Sprache'; -$lang['basedir'] = 'Installationsverzeichnis'; -$lang['baseurl'] = 'Installationspfad (URL)'; -$lang['savedir'] = 'Speicherverzeichnis'; -$lang['cookiedir'] = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.'; -$lang['start'] = 'Startseitenname'; $lang['title'] = 'Titel des Wikis'; +$lang['start'] = 'Startseitenname'; +$lang['lang'] = 'Sprache'; $lang['template'] = 'Designvorlage (Template)'; $lang['tagline'] = 'Tag-Linie (nur, wenn vom Template unterstützt)'; $lang['sidebar'] = 'Name der Sidebar-Seite (nur, wenn vom Template unterstützt), ein leeres Feld deaktiviert die Sidebar'; $lang['license'] = 'Unter welcher Lizenz sollen Ihre Inhalte veröffentlicht werden?'; -$lang['fullpath'] = 'Den kompletten Dateipfad im Footer anzeigen'; +$lang['savedir'] = 'Speicherverzeichnis'; +$lang['basedir'] = 'Installationsverzeichnis'; +$lang['baseurl'] = 'Installationspfad (URL)'; +$lang['cookiedir'] = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.'; +$lang['dmode'] = 'Berechtigungen für neue Verzeichnisse'; +$lang['fmode'] = 'Berechtigungen für neue Dateien'; +$lang['allowdebug'] = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>'; $lang['recent'] = 'Anzahl der Einträge in der Änderungsliste'; +$lang['recent_days'] = 'Wie viele letzte Änderungen sollen einsehbar bleiben? (Tage)'; $lang['breadcrumbs'] = 'Anzahl der Einträge im "Krümelpfad"'; $lang['youarehere'] = 'Hierarchische Pfadnavigation verwenden'; +$lang['fullpath'] = 'Den kompletten Dateipfad im Footer anzeigen'; $lang['typography'] = 'Typographische Ersetzungen'; -$lang['htmlok'] = 'HTML erlauben'; -$lang['phpok'] = 'PHP erlauben'; $lang['dformat'] = 'Datumsformat (Siehe PHP <a href="http://www.php.net/strftime">strftime</a> Funktion)'; $lang['signature'] = 'Signatur'; +$lang['showuseras'] = 'Was angezeigt werden soll, wenn der Benutzer, der zuletzt eine Seite bearbeitet hat, angezeigt wird'; $lang['toptoclevel'] = 'Inhaltsverzeichnis bei dieser Überschriftengröße beginnen'; $lang['tocminheads'] = 'Mindestanzahl der Überschriften die entscheidet, ob ein Inhaltsverzeichnis erscheinen soll'; $lang['maxtoclevel'] = 'Maximale Überschriftengröße für Inhaltsverzeichnis'; @@ -75,15 +77,8 @@ $lang['maxseclevel'] = 'Abschnitte bis zu dieser Stufe einzeln editier $lang['camelcase'] = 'CamelCase-Verlinkungen verwenden'; $lang['deaccent'] = 'Seitennamen bereinigen'; $lang['useheading'] = 'Erste Überschrift als Seitennamen verwenden'; -$lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; -$lang['allowdebug'] = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>'; -$lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; -$lang['usewordblock'] = 'Spam-Blocking benutzen'; -$lang['indexdelay'] = 'Zeit bevor Suchmaschinenindexierung erlaubt ist'; -$lang['relnofollow'] = 'rel="nofollow" verwenden'; -$lang['mailguard'] = 'E-Mail-Adressen schützen'; -$lang['iexssprotect'] = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen'; -$lang['showuseras'] = 'Was angezeigt werden soll, wenn der Benutzer, der zuletzt eine Seite bearbeitet hat, angezeigt wird'; +$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.'; +$lang['hidepages'] = 'Seiten verstecken (Regulärer Ausdruck)'; $lang['useacl'] = 'Zugangskontrolle verwenden'; $lang['autopasswd'] = 'Passwort automatisch generieren'; $lang['authtype'] = 'Authentifizierungsmechanismus'; @@ -92,63 +87,70 @@ $lang['defaultgroup'] = 'Standardgruppe'; $lang['superuser'] = 'Administrator - Eine Gruppe oder Benutzer mit vollem Zugriff auf alle Seiten und Administrationswerkzeuge.'; $lang['manager'] = 'Manager - Eine Gruppe oder Benutzer mit Zugriff auf einige Administrationswerkzeuge.'; $lang['profileconfirm'] = 'Profiländerung nur nach Passwortbestätigung'; +$lang['rememberme'] = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)'; $lang['disableactions'] = 'DokuWiki-Aktionen deaktivieren'; $lang['disableactions_check'] = 'Check'; $lang['disableactions_subscription'] = 'Seiten-Abonnements'; $lang['disableactions_wikicode'] = 'Quelltext betrachten/exportieren'; $lang['disableactions_profile_delete'] = 'Eigenes Benutzerprofil löschen'; $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.'; +$lang['disableactions_rss'] = 'XML-Syndikation (RSS)'; $lang['auth_security_timeout'] = 'Authentifikations-Timeout (Sekunden)'; $lang['securecookie'] = 'Sollen Cookies, die via HTTPS gesetzt wurden nur per HTTPS versendet werden? Deaktivieren Sie diese Option, wenn nur der Login Ihres Wikis mit SSL gesichert ist, aber das Betrachten des Wikis ungesichert geschieht.'; $lang['remote'] = 'Aktiviert den externen API-Zugang. Diese Option erlaubt es externen Anwendungen von außen auf die XML-RPC-Schnittstelle oder anderweitigen Schnittstellen zu zugreifen.'; $lang['remoteuser'] = 'Zugriff auf die externen Schnittstellen durch kommaseparierte Angabe von Benutzern oder Gruppen einschränken. Ein leeres Feld erlaubt Zugriff für jeden.'; -$lang['updatecheck'] = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.'; -$lang['userewrite'] = 'URL rewriting'; -$lang['useslash'] = 'Schrägstrich (/) als Namensraumtrenner in URLs verwenden'; +$lang['usewordblock'] = 'Spam-Blocking benutzen'; +$lang['relnofollow'] = 'rel="nofollow" verwenden'; +$lang['indexdelay'] = 'Zeit bevor Suchmaschinenindexierung erlaubt ist'; +$lang['mailguard'] = 'E-Mail-Adressen schützen'; +$lang['iexssprotect'] = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen'; $lang['usedraft'] = 'Während des Bearbeitens automatisch Zwischenentwürfe speichern'; -$lang['sepchar'] = 'Worttrenner für Seitennamen in URLs'; -$lang['canonical'] = 'Immer Links mit vollständigen URLs erzeugen'; -$lang['fnencode'] = 'Methode um nicht-ASCII Dateinamen zu kodieren.'; -$lang['autoplural'] = 'Bei Links automatisch nach vorhandenen Pluralformen suchen'; -$lang['compression'] = 'Komprimierungsmethode für alte Seitenrevisionen'; -$lang['cachetime'] = 'Maximale Cachespeicherung (Sekunden)'; +$lang['htmlok'] = 'HTML erlauben'; +$lang['phpok'] = 'PHP erlauben'; $lang['locktime'] = 'Maximales Alter für Seitensperren (Sekunden)'; +$lang['cachetime'] = 'Maximale Cachespeicherung (Sekunden)'; +$lang['target____wiki'] = 'Zielfenster für interne Links (target Attribut)'; +$lang['target____interwiki'] = 'Zielfenster für InterWiki-Links (target Attribut)'; +$lang['target____extern'] = 'Zielfenster für Externe Links (target Attribut)'; +$lang['target____media'] = 'Zielfenster für (Bild-)Dateien (target Attribut)'; +$lang['target____windows'] = 'Zielfenster für Windows Freigaben (target Attribut)'; +$lang['mediarevisions'] = 'Media-Revisionen (ältere Versionen) aktivieren?'; +$lang['refcheck'] = 'Auf Verwendung beim Löschen von Media-Dateien testen'; +$lang['gdlib'] = 'GD Lib Version'; +$lang['im_convert'] = 'Pfad zum ImageMagicks-Konvertierwerkzeug'; +$lang['jpg_quality'] = 'JPEG Kompressionsqualität (0-100)'; $lang['fetchsize'] = 'Maximale Größe (in Bytes), die fetch.php von extern herunterladen darf'; +$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['notify'] = 'Änderungsmitteilungen an diese E-Mail-Adresse versenden'; $lang['registernotify'] = 'Information über neu registrierte Benutzer an diese E-Mail-Adresse senden'; $lang['mailfrom'] = 'Absender-E-Mail-Adresse für automatische Mails'; $lang['mailprefix'] = 'Präfix für E-Mail-Betreff beim automatischen Versand von Benachrichtigungen'; $lang['htmlmail'] = 'Versendet optisch angenehmere, aber größere E-Mails im HTML-Format (multipart). Deaktivieren, um Text-Mails zu versenden.'; +$lang['sitemap'] = 'Google Sitemap erzeugen (Tage)'; +$lang['rss_type'] = 'XML-Feed-Format'; +$lang['rss_linkto'] = 'XML-Feed verlinken auf'; +$lang['rss_content'] = 'Welche Inhalte sollen im XML-Feed dargestellt werden?'; +$lang['rss_update'] = 'XML-Feed Aktualisierungsintervall (Sekunden)'; +$lang['rss_show_summary'] = 'Bearbeitungs-Zusammenfassung im XML-Feed anzeigen'; +$lang['rss_media'] = 'Welche Änderungen sollen im XML-Feed angezeigt werden?'; +$lang['updatecheck'] = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.'; +$lang['userewrite'] = 'URL rewriting'; +$lang['useslash'] = 'Schrägstrich (/) als Namensraumtrenner in URLs verwenden'; +$lang['sepchar'] = 'Worttrenner für Seitennamen in URLs'; +$lang['canonical'] = 'Immer Links mit vollständigen URLs erzeugen'; +$lang['fnencode'] = 'Methode um nicht-ASCII Dateinamen zu kodieren.'; +$lang['autoplural'] = 'Bei Links automatisch nach vorhandenen Pluralformen suchen'; +$lang['compression'] = 'Komprimierungsmethode für alte Seitenrevisionen'; $lang['gzip_output'] = 'Seiten mit gzip komprimiert ausliefern'; -$lang['gdlib'] = 'GD Lib Version'; -$lang['im_convert'] = 'Pfad zum 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['cssdatauri'] = 'Größe in Bytes, bis zu der Bilder in CSS-Dateien referenziert werden können, um HTTP-Anfragen zu minimieren. Diese Technik funktioniert nicht im IE 7 und älter! Empfohlene Einstellung: <code>400</code> to <code>600</code> Bytes. Setzen Sie die Einstellung auf <code>0</code> um die Funktion zu deaktivieren.'; -$lang['hidepages'] = 'Seiten verstecken (Regulärer Ausdruck)'; $lang['send404'] = 'Bei nicht vorhandenen Seiten mit 404 Fehlercode antworten'; -$lang['sitemap'] = 'Google Sitemap erzeugen (Tage)'; $lang['broken_iua'] = 'Falls die Funktion ignore_user_abort auf Ihrem System nicht funktioniert, könnte der Such-Index nicht funktionieren. IIS+PHP/CGI ist bekannt dafür. Siehe auch <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a>.'; $lang['xsendfile'] = 'Den X-Sendfile-Header nutzen, um Dateien direkt vom Webserver ausliefern zu lassen? Ihr Webserver muss dies unterstützen!'; $lang['renderer_xhtml'] = 'Standard-Renderer für die normale (XHTML) Wiki-Ausgabe.'; $lang['renderer__core'] = '%s (DokuWiki Kern)'; $lang['renderer__plugin'] = '%s (Plugin)'; -$lang['rememberme'] = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)'; -$lang['rss_type'] = 'XML-Feed-Format'; -$lang['rss_linkto'] = 'XML-Feed verlinken auf'; -$lang['rss_content'] = 'Welche Inhalte sollen im XML-Feed dargestellt werden?'; -$lang['rss_update'] = 'XML-Feed Aktualisierungsintervall (Sekunden)'; -$lang['recent_days'] = 'Wie viele letzte Änderungen sollen einsehbar bleiben? (Tage)'; -$lang['rss_show_summary'] = 'Bearbeitungs-Zusammenfassung im XML-Feed anzeigen'; -$lang['rss_media'] = 'Welche Änderungen sollen im XML-Feed angezeigt werden?'; -$lang['target____wiki'] = 'Zielfenster für interne Links (target Attribut)'; -$lang['target____interwiki'] = 'Zielfenster für InterWiki-Links (target Attribut)'; -$lang['target____extern'] = 'Zielfenster für Externe Links (target Attribut)'; -$lang['target____media'] = 'Zielfenster für (Bild-)Dateien (target Attribut)'; -$lang['target____windows'] = 'Zielfenster für Windows Freigaben (target Attribut)'; $lang['dnslookups'] = 'DokuWiki löst die IP-Adressen von Benutzern zu deren Hostnamen auf. Wenn du einen langsamen, unbrauchbaren DNS-Server verwendest oder die Funktion nicht benötigst, dann sollte diese Option deaktiviert sein.'; $lang['proxy____host'] = 'Proxy-Server'; $lang['proxy____port'] = 'Proxy-Port'; @@ -197,6 +199,7 @@ $lang['xsendfile_o_2'] = 'Standard X-Sendfile-Header'; $lang['xsendfile_o_3'] = 'Proprietärer Nginx X-Accel-Redirect-Header'; $lang['showuseras_o_loginname'] = 'Login-Name'; $lang['showuseras_o_username'] = 'Vollständiger Name des Benutzers'; +$lang['showuseras_o_username_link'] = 'Kompletter Name des Benutzers als Interwiki-Link'; $lang['showuseras_o_email'] = 'E-Mail-Adresse des Benutzers (je nach Mailguard-Einstellung verschleiert)'; $lang['showuseras_o_email_link'] = 'E-Mail-Adresse des Benutzers als mailto:-Link'; $lang['useheading_o_0'] = 'Nie'; diff --git a/lib/plugins/config/lang/en/intro.txt b/lib/plugins/config/lang/en/intro.txt index 7cf46cee3c23e25a9625c757846765fe11aa2818..01089871c3a15e34dbd1d2d41d21639f60d140bf 100644 --- a/lib/plugins/config/lang/en/intro.txt +++ b/lib/plugins/config/lang/en/intro.txt @@ -5,5 +5,3 @@ Use this page to control the settings of your DokuWiki installation. For help o Settings shown with a light red background are protected and can not be altered with this plugin. Settings shown with a blue background are the default values and settings shown with a white background have been set locally for this particular installation. Both blue and white settings can be altered. Remember to press the **Save** button before leaving this page otherwise your changes will be lost. - - diff --git a/lib/plugins/config/lang/eo/lang.php b/lib/plugins/config/lang/eo/lang.php index 440d771dcca39ae24f09b706ed79ffe165ed0d4c..566da0d2d052e67d7589490125fa4cf834d36afd 100644 --- a/lib/plugins/config/lang/eo/lang.php +++ b/lib/plugins/config/lang/eo/lang.php @@ -137,7 +137,7 @@ $lang['compress'] = 'Kompaktigi CSS-ajn kaj ĵavaskriptajn elmetojn $lang['cssdatauri'] = 'Grandeco en bitokoj, Äis kiom en CSS-dosieroj referencitaj bildoj enmetiÄu rekte en la stilfolion por malgrandigi vanan HTTP-kapan trafikon. Tiu tekniko ne funkcias en IE 7 aÅ pli frua! <code>400</code> Äis <code>600</code> bitokoj estas bona grandeco. Indiku <code>0</code> por malebligi enmeton.'; $lang['send404'] = 'Sendi la mesaÄon "HTTP 404/PaÄo ne trovita" por ne ekzistantaj paÄoj'; -$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuÅaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&task_id=852&">Cimon 852</a> por pli da informoj.'; +$lang['broken_iua'] = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuÅaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Cimon 852</a> por pli da informoj.'; $lang['xsendfile'] = 'Ĉu uzi la kaplinion X-Sendfile por ebligi al la retservilo liveri fiksajn dosierojn? Via retservilo subtenu tion.'; $lang['renderer_xhtml'] = 'Prezentilo por la ĉefa vikia rezulto (xhtml)'; $lang['renderer__core'] = '%s (DokuWiki-a kerno)'; diff --git a/lib/plugins/config/lang/es/lang.php b/lib/plugins/config/lang/es/lang.php index 847b326a8a241453c9fca9e42b59591ba54eecef..74946bde868c7374054451e4ba64d0f51dcdfb30 100644 --- a/lib/plugins/config/lang/es/lang.php +++ b/lib/plugins/config/lang/es/lang.php @@ -1,8 +1,8 @@ <?php + /** - * spanish language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Miguel Pagano <miguel.pagano@gmail.com> * @author Oscar M. Lage <r0sk10@gmail.com> * @author Gabriel Castillo <gch@pumas.ii.unam.mx> @@ -24,6 +24,7 @@ * @author Ruben Figols <ruben.figols@gmail.com> * @author Gerardo Zamudio <gerardo@gerardozamudio.net> * @author Mercè López mercelz@gmail.com + * @author Domingo Redal <docxml@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.'; @@ -97,7 +98,9 @@ $lang['disableactions'] = 'Deshabilitar acciones DokuWiki'; $lang['disableactions_check'] = 'Controlar'; $lang['disableactions_subscription'] = 'Suscribirse/Cancelar suscripción'; $lang['disableactions_wikicode'] = 'Ver la fuente/Exportar en formato raw'; +$lang['disableactions_profile_delete'] = 'Borrar tu propia cuenta'; $lang['disableactions_other'] = 'Otras acciones (separadas por coma)'; +$lang['disableactions_rss'] = 'Sindicación XML (RSS)'; $lang['auth_security_timeout'] = 'Tiempo de Autenticación (en segundos), por motivos de seguridad'; $lang['securecookie'] = 'Las cookies establecidas por HTTPS, ¿el naveagdor solo puede enviarlas por HTTPS? Inhabilite esta opción cuando solo se asegure con SSL la entrada, pero no la navegación de su wiki.'; $lang['remote'] = 'Activar el sistema API remoto. Esto permite a otras aplicaciones acceder al wiki a traves de XML-RPC u otros mecanismos.'; @@ -202,6 +205,7 @@ $lang['xsendfile_o_2'] = 'Encabezado X-Sendfile estándar'; $lang['xsendfile_o_3'] = 'Encabezado propietario Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Nombre de entrada'; $lang['showuseras_o_username'] = 'Nombre completo del usuario'; +$lang['showuseras_o_username_link'] = 'Nombre completo del usuario como enlace de usuario interwiki'; $lang['showuseras_o_email'] = 'Dirección de correo electrónico del usuario (ofuscada según la configuración de "mailguard")'; $lang['showuseras_o_email_link'] = 'Dirección de correo de usuario como enlace de envÃo de correo'; $lang['useheading_o_0'] = 'Nunca'; diff --git a/lib/plugins/config/lang/fa/intro.txt b/lib/plugins/config/lang/fa/intro.txt index f5b6ba235d181fa624043c513ff6f44c6a5b4106..31bbaea98daa731c4bc89b30ba6172e41e25bcb0 100644 --- a/lib/plugins/config/lang/fa/intro.txt +++ b/lib/plugins/config/lang/fa/intro.txt @@ -5,4 +5,4 @@ تنظیماتی Ú©Ù‡ با پیش‌زمینه‌ی قرمز مشخص شده‌اند، غیرقابل تغییر می‌باشند. تنظیماتی Ú©Ù‡ به پیش‌زمینه‌ی آبی مشخص شده‌اند نیز ØØ§Ù…Ù„ مقادیر Ù¾ÛŒØ´â€ŒÙØ±Ø¶ می‌باشند Ùˆ تنظیماتی Ú©Ù‡ پیش‌زمینه‌ی سÙید دارند به طور Ù…ØÙ„ÛŒ برای این سیستم تنظیم شده‌اند. تمامی مقادیر آبی Ùˆ سÙید قابلیت تغییر دارند. -به یاد داشته باشید Ú©Ù‡ قبل از ترک ØµÙØÙ‡ØŒ دکمه‌ی **ذخیره** را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ØŒ در غیر این صورت تنظیمات شما از بین خواهد Ø±ÙØª. \ No newline at end of file +به یاد داشته باشید Ú©Ù‡ قبل از ترک ØµÙØÙ‡ØŒ دکمه‌ی **ذخیره** را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ØŒ در غیر این صورت تنظیمات شما از بین خواهد Ø±ÙØª. diff --git a/lib/plugins/config/lang/fa/lang.php b/lib/plugins/config/lang/fa/lang.php index dd97f716e7e0ac3afd96b2b7ea80a465233c8298..00b60f062b9e7b6e5d018576d8c3cfb2ffc9dca4 100644 --- a/lib/plugins/config/lang/fa/lang.php +++ b/lib/plugins/config/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com @@ -9,6 +10,8 @@ * @author Mohammad Reza Shoaei <shoaei@gmail.com> * @author Milad DZand <M.DastanZand@gmail.com> * @author AmirH Hassaneini <mytechmix@gmail.com> + * @author Mohmmad Razavi <sepent@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'تنظیمات پیکر‌بندی'; $lang['error'] = 'به دلیل ایراد در مقادیر وارد شده، تنظیمات اعمال نشد، خواهشمندیم تغییرات را مجددن کنترل نمایید Ùˆ دوباره ارسال کنید.<br/> مقادیر مشکل‌دار با کادر قرمز مشخص شده‌اند.'; @@ -82,7 +85,9 @@ $lang['disableactions'] = 'ØºÛŒØ±ÙØ¹Ø§Ù„ کردن ÙØ¹Ø§Ù„یت‌های $lang['disableactions_check'] = 'بررسی'; $lang['disableactions_subscription'] = 'عضویت/عدم عضویت'; $lang['disableactions_wikicode'] = 'نمایش سورس/برون‌بری خام'; +$lang['disableactions_profile_delete'] = 'ØØ°Ù ØØ³Ø§Ø¨ کاربری خود.'; $lang['disableactions_other'] = 'ÙØ¹Ø§Ù„یت‌های دیگر (با ویرگول انگلیسی «,» از هم جدا کنید)'; +$lang['disableactions_rss'] = 'خبرخوان (RSS)'; $lang['auth_security_timeout'] = 'زمان انقضای معتبرسازی به ثانیه'; $lang['securecookie'] = 'آیا کوکی‌ها باید با قرارداد HTTPS ارسال شوند؟ این گزینه را زمانی Ú©Ù‡ Ùقط ØµÙØÙ‡â€ŒÛŒ ورود ویکی‌تان با SSL امن شده است، اما ویکی را ناامن مرور می‌کنید، ØºÛŒØ±ÙØ¹Ø§Ù„ نمایید.'; $lang['remote'] = 'سیستم API راه دور را ÙØ¹Ø§Ù„ کنید . این به سایر کاربردها اجازه Ù…ÛŒ دهد Ú©Ù‡ به ویکی از طریق XML-RPC یا سایر مکانیزم ها دسترسی داشته باشند.'; @@ -188,6 +193,7 @@ $lang['xsendfile_o_2'] = 'هدر استاندارد X-Sendfile'; $lang['xsendfile_o_3'] = 'هدر اختصاصی X-Accel-Redirect در وب سرور Nginx'; $lang['showuseras_o_loginname'] = 'نام کاربری'; $lang['showuseras_o_username'] = 'نام کامل کاربران'; +$lang['showuseras_o_username_link'] = 'نام کامل کاربر به عنوان لینک داخلی ویکی'; $lang['showuseras_o_email'] = 'آدرس ایمیل کاربران (با تنظیمات «نگهبان ایمیل» مبهم می‌شود)'; $lang['showuseras_o_email_link'] = 'نمایش ایمیل کاربران با Ø§ÙØ²ÙˆØ¯Ù† mailto'; $lang['useheading_o_0'] = 'هرگز'; diff --git a/lib/plugins/config/lang/fi/intro.txt b/lib/plugins/config/lang/fi/intro.txt index f6eedb50c015238b3cf173405c0e22631eb47db8..2765a18afe19ef025a0ff5258408df190a5382a3 100644 --- a/lib/plugins/config/lang/fi/intro.txt +++ b/lib/plugins/config/lang/fi/intro.txt @@ -4,4 +4,4 @@ Käytä tätä sivua hallitaksesi DokuWikisi asetuksia. Apua yksittäisiin asetu Asetukset, jotka näkyvät vaaleanpunaisella taustalla ovat suojattuja, eikä niitä voi muutta tämän liitännäisen avulla. Asetukset, jotka näkyvät sinisellä taustalla ovat oletusasetuksia. Asetukset valkoisella taustalla ovat asetettu paikallisesti tätä asennusta varten. Sekä sinisiä että valkoisia asetuksia voi muokata. -Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät. \ No newline at end of file +Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät. diff --git a/lib/plugins/config/lang/fr/intro.txt b/lib/plugins/config/lang/fr/intro.txt index 3d71f618488f12de0f93a1d284ce05a365dfab41..afc5805d8a9e9bc3420ee6bd62cc60c6e5278fe2 100644 --- a/lib/plugins/config/lang/fr/intro.txt +++ b/lib/plugins/config/lang/fr/intro.txt @@ -5,5 +5,3 @@ Utilisez cette page pour contrôler les paramètres de votre installation de Dok Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec cette extension. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs spécifiquement définies pour votre installation sont affichées sur un fond blanc. Seuls les paramètres sur fond bleu ou blanc peuvent être modifiés. N'oubliez pas d'utiliser le bouton **ENREGISTRER** avant de quitter cette page, sinon vos modifications ne seront pas prises en compte ! - - diff --git a/lib/plugins/config/lang/fr/lang.php b/lib/plugins/config/lang/fr/lang.php index e92144b22fe7114a8fd11f8deff0b3b6d9666b4f..88f78f4252e9aac21a7bfa4a491d7a9b2e5f3d7d 100644 --- a/lib/plugins/config/lang/fr/lang.php +++ b/lib/plugins/config/lang/fr/lang.php @@ -1,26 +1,30 @@ <?php + /** - * french language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Guy Brand <gb@unistra.fr> * @author Delassaux Julien <julien@delassaux.fr> * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca> - * @author stephane.gully@gmail.com + * @author <stephane.gully@gmail.com> * @author Guillaume Turri <guillaume.turri@gmail.com> * @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 + * @author Samuel Dorsaz <samuel.dorsaz@novelion.net> * @author Johan Guilbaud <guilbaud.johan@gmail.com> - * @author schplurtz@laposte.net - * @author skimpax@gmail.com + * @author <skimpax@gmail.com> * @author Yannick Aure <yannick.aure@gmail.com> * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> + * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> + * @author Floriang <antispam@floriang.eu> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> + * @author Simon DELAGE <simon.geekitude@gmail.com> */ $lang['menu'] = 'Paramètres de configuration'; $lang['error'] = 'Paramètres non modifiés en raison d\'une valeur invalide, vérifiez vos réglages puis réessayez. <br />Les valeurs erronées sont entourées d\'une bordure rouge.'; @@ -33,7 +37,7 @@ $lang['security'] = 'Avertissement de sécurité : modifier cette o $lang['_configuration_manager'] = 'Gestionnaire de configuration'; $lang['_header_dokuwiki'] = 'Paramètres de DokuWiki'; $lang['_header_plugin'] = 'Paramètres des extensions'; -$lang['_header_template'] = 'Paramètres des modèles'; +$lang['_header_template'] = 'Paramètres du modèle'; $lang['_header_undefined'] = 'Paramètres indéfinis'; $lang['_basic'] = 'Paramètres de base'; $lang['_display'] = 'Paramètres d\'affichage'; @@ -94,7 +98,9 @@ $lang['disableactions'] = 'Actions à désactiver dans DokuWiki'; $lang['disableactions_check'] = 'Vérifier'; $lang['disableactions_subscription'] = 'Abonnement aux pages'; $lang['disableactions_wikicode'] = 'Afficher le texte source'; +$lang['disableactions_profile_delete'] = 'Supprimer votre propre compte'; $lang['disableactions_other'] = 'Autres actions (séparées par des virgules)'; +$lang['disableactions_rss'] = 'Syndication XML (RSS)'; $lang['auth_security_timeout'] = 'Délai d\'expiration de sécurité (secondes)'; $lang['securecookie'] = 'Les cookies définis via HTTPS doivent-ils n\'être envoyé par le navigateur que via HTTPS ? Désactivez cette option lorsque seule la connexion à votre wiki est sécurisée avec SSL et que la navigation sur le wiki est effectuée de manière non sécurisée.'; $lang['remote'] = 'Active l\'API système distante. Ceci permet à d\'autres applications d\'accéder au wiki via XML-RPC ou d\'autres mécanismes.'; @@ -200,6 +206,7 @@ $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'] = 'Identifiant de l\'utilisateur'; $lang['showuseras_o_username'] = 'Nom de l\'utilisateur'; +$lang['showuseras_o_username_link'] = 'Nom complet de l\'utilisateur en tant que lien interwiki'; $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'; diff --git a/lib/plugins/config/lang/he/intro.txt b/lib/plugins/config/lang/he/intro.txt index 010c69018d36dc3982554ccb2605d99c7f49f0f5..d61a93861ff6f8def21ceeea7f1f965228f2682f 100644 --- a/lib/plugins/config/lang/he/intro.txt +++ b/lib/plugins/config/lang/he/intro.txt @@ -5,5 +5,3 @@ הגדרות ×¢× ×¨×§×¢ ×דו×-בהיר ×ž×•×’× ×•×ª ו×ין ×פשרות ×œ×©× ×•×ª×Ÿ ×¢× ×ª×•×¡×£ ×–×”. הגדרות ×¢× ×¨×§×¢ כחול הן בעלות ערך ברירת המחדל והגדרות ×¢× ×¨×§×¢ לבן הוגדרו ב×ופן מקומי עבור ×”×ª×§× ×” זו. ההגדרות בעלות ×”×¨×§×¢×™× ×”×›×—×•×œ והלבן הן ברות ×©×™× ×•×™. יש לזכור ללחוץ על כפתור ×”**שמירה** ×˜×¨× ×¢×–×™×‘×ª דף ×–×” פן ×™×בדו ×”×©×™× ×•×™×™×. - - diff --git a/lib/plugins/config/lang/he/lang.php b/lib/plugins/config/lang/he/lang.php index bddfd90afb6bdf6dcc4c3fb9a9a972764bb116b5..416d775d00c0dddeacfa2c19fe172c16b3fe8850 100644 --- a/lib/plugins/config/lang/he/lang.php +++ b/lib/plugins/config/lang/he/lang.php @@ -1,13 +1,14 @@ <?php + /** - * hebrew language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author DoK <kamberd@yahoo.com> * @author Dotan Kamber <kamberd@yahoo.com> * @author Moshe Kaplan <mokplan@gmail.com> * @author Yaron Yogev <yaronyogev@gmail.com> * @author Yaron Shahrabani <sh.yaron@gmail.com> + * @author sagi <sagiyosef@gmail.com> */ $lang['menu'] = 'הגדרות תצורה'; $lang['error'] = 'ההגדרות ×œ× ×¢×•×“×›× ×• בגלל ערך ×œ× ×ª×§×£, × × ×œ×¢×™×™×Ÿ ×‘×©×™× ×•×™×™× ×•×œ×©×œ×•×— ×©× ×™×ª. @@ -33,22 +34,22 @@ $lang['_network'] = 'הגדרות רשת'; $lang['_msg_setting_undefined'] = '×ין מידע-על להגדרה.'; $lang['_msg_setting_no_class'] = '×ין קבוצה להגדרה.'; $lang['_msg_setting_no_default'] = '×ין ערך ברירת מחדל.'; -$lang['fmode'] = 'מצב יצירת קובץ'; -$lang['dmode'] = 'מצב יצירת ספריה'; +$lang['title'] = 'כותרת הויקי'; +$lang['start'] = '×©× ×“×£ הפתיחה'; $lang['lang'] = 'שפה'; +$lang['template'] = '×ª×‘× ×™×ª'; +$lang['savedir'] = 'ספריה לשמירת מידע'; $lang['basedir'] = 'ספרית בסיס'; $lang['baseurl'] = 'כתובת URL בסיסית'; -$lang['savedir'] = 'ספריה לשמירת מידע'; -$lang['start'] = '×©× ×“×£ הפתיחה'; -$lang['title'] = 'כותרת הויקי'; -$lang['template'] = '×ª×‘× ×™×ª'; -$lang['fullpath'] = 'הצגת × ×ª×™×‘ ×ž×œ× ×œ×“×¤×™× ×‘×ª×—×ª×™×ª'; +$lang['dmode'] = 'מצב יצירת ספריה'; +$lang['fmode'] = 'מצב יצירת קובץ'; +$lang['allowdebug'] = '×פשר דיבוג <b>יש לבטל ×× ×ין צורך!</b>'; $lang['recent'] = '×©×™× ×•×™×™× ××—×¨×•× ×™×'; +$lang['recent_days'] = 'כמה ×©×™× ×•×™×™× ××—×¨×•× ×™× ×œ×©×ž×•×¨ (ימי×)'; $lang['breadcrumbs'] = 'מספר עקבות להיסטוריה'; $lang['youarehere'] = 'עקבות היררכיות להיסטוריה'; +$lang['fullpath'] = 'הצגת × ×ª×™×‘ ×ž×œ× ×œ×“×¤×™× ×‘×ª×—×ª×™×ª'; $lang['typography'] = 'שימוש בחלופות טיפוגרפיות'; -$lang['htmlok'] = '×ישור שיבוץ HTML'; -$lang['phpok'] = '×ישור שיבוץ PHP'; $lang['dformat'] = 'תסדיר ת×ריך (× × ×œ×¤× ×•×ª ×œ×¤×•× ×§×¦×™×” <a href="http://www.php.net/strftime">strftime</a> של PHP)'; $lang['signature'] = 'חתימה'; $lang['toptoclevel'] = 'רמה ×¢×œ×™×•× ×” בתוכן ×”×¢× ×™× ×™×'; @@ -57,13 +58,8 @@ $lang['maxseclevel'] = 'רמה מירבית בעריכת קטעי×'; $lang['camelcase'] = 'השתמש בר×שיות גדולות לקישורי×'; $lang['deaccent'] = '× ×§×” שמות דפי×'; $lang['useheading'] = 'השתמש בכותרת הר××©×•× ×” ×œ×©× ×”×“×£'; -$lang['refcheck'] = 'בדוק שיוך מדיה'; -$lang['allowdebug'] = '×פשר דיבוג <b>יש לבטל ×× ×ין צורך!</b>'; -$lang['usewordblock'] = 'חסימת דו×ר זבל לפי רשימת מילי×'; -$lang['indexdelay'] = 'השהיה ×‘×˜×¨× ×”×›× ×¡×” ל××™× ×“×§×¡ (×©× ×™×•×ª)'; -$lang['relnofollow'] = 'השתמש ב- rel="nofollow" ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; -$lang['mailguard'] = 'הגן על כתובות דו×"ל'; -$lang['iexssprotect'] = 'בדוק ×ת ×”×“×¤×™× ×”×ž×•×¢×œ×™× ×œ×—×©×“ ל-JavaScript ×ו קוד HTML ×–×“×•× ×™'; +$lang['sneaky_index'] = 'כברירת מחדל, דוקוויקי יציג ×ת כל מרחבי השמות בתצוגת תוכן ×”×¢× ×™× ×™×. בחירה ב×פשרות ×–×ת תסתיר ×ת ×לו ×©×‘×”× ×œ×ž×©×ª×ž×© ×ין הרש×ות קרי××”. התוצ××” עלולה להיות הסתרת תת מרחבי שמות ××œ×™×”× ×™×© למשתמש גישה. ב×ופן ×–×” תוכן ×”×¢× ×™× ×™× ×¢×œ×•×œ להפוך לחסר תועלת ×¢× ×”×’×“×¨×•×ª ACL מסוימות'; +$lang['hidepages'] = 'הסתר ×“×¤×™× ×ª×•××ž×™× (×‘×™×˜×•×™×™× ×¨×’×•×œ×¨×™×™×)'; $lang['useacl'] = 'השתמש ברשימות בקרת גישה'; $lang['autopasswd'] = 'צור סיסמ×ות ב×ופן ×וטומטי'; $lang['authtype'] = '×ž× ×•×¢ הזדהות'; @@ -77,47 +73,52 @@ $lang['disableactions_check'] = 'בדיקה'; $lang['disableactions_subscription'] = 'הרשמה/הסרה מרשימה'; $lang['disableactions_wikicode'] = 'הצגת המקור/×™×¦×•× ×’×•×œ×ž×™'; $lang['disableactions_other'] = 'פעולות ×חרות (מופרדות בפסיק)'; -$lang['sneaky_index'] = 'כברירת מחדל, דוקוויקי יציג ×ת כל מרחבי השמות בתצוגת תוכן ×”×¢× ×™× ×™×. בחירה ב×פשרות ×–×ת תסתיר ×ת ×לו ×©×‘×”× ×œ×ž×©×ª×ž×© ×ין הרש×ות קרי××”. התוצ××” עלולה להיות הסתרת תת מרחבי שמות ××œ×™×”× ×™×© למשתמש גישה. ב×ופן ×–×” תוכן ×”×¢× ×™× ×™× ×¢×œ×•×œ להפוך לחסר תועלת ×¢× ×”×’×“×¨×•×ª ACL מסוימות'; $lang['auth_security_timeout'] = 'מגבלת ×בטח פסק הזמן להזדהות (×©× ×™×•×ª)'; +$lang['usewordblock'] = 'חסימת דו×ר זבל לפי רשימת מילי×'; +$lang['relnofollow'] = 'השתמש ב- rel="nofollow" ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; +$lang['indexdelay'] = 'השהיה ×‘×˜×¨× ×”×›× ×¡×” ל××™× ×“×§×¡ (×©× ×™×•×ª)'; +$lang['mailguard'] = 'הגן על כתובות דו×"ל'; +$lang['iexssprotect'] = 'בדוק ×ת ×”×“×¤×™× ×”×ž×•×¢×œ×™× ×œ×—×©×“ ל-JavaScript ×ו קוד HTML ×–×“×•× ×™'; +$lang['usedraft'] = 'שמור טיוטות ב×ופן ×וטומטי בעת עריכה'; +$lang['htmlok'] = '×ישור שיבוץ HTML'; +$lang['phpok'] = '×ישור שיבוץ PHP'; +$lang['locktime'] = 'גיל מירבי לקבצי × ×¢×™×œ×” (×©× ×™×•×ª)'; +$lang['cachetime'] = 'גיל מירבי לזכרון מטמון (×©× ×™×•×ª)'; +$lang['target____wiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×¤× ×™×ž×™×™×'; +$lang['target____interwiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×‘×™×Ÿ מערכות ויקי'; +$lang['target____extern'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; +$lang['target____media'] = 'חלון יעד לקישור למדיה'; +$lang['target____windows'] = 'חלון יעד לתיקיות משותפות'; +$lang['refcheck'] = 'בדוק שיוך מדיה'; +$lang['gdlib'] = 'גרסת ספרית ×”-GD'; +$lang['im_convert'] = '× ×ª×™×‘ לכלי ×”-convert של ImageMagick'; +$lang['jpg_quality'] = '×יכות הדחיסה של JPG (0-100)'; +$lang['fetchsize'] = 'גודל הקובץ המירבי (bytes) ש-fetch.php יכול להוריד מבחוץ'; +$lang['subscribers'] = 'התר תמיכה ×‘×¨×™×©×•× ×œ×“×¤×™×'; +$lang['notify'] = 'שלח התר×ות על ×©×™× ×•×™×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; +$lang['registernotify'] = 'שלח מידע על ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×—×“×©×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; +$lang['mailfrom'] = 'כתובת הדו×"ל לשימוש בדברי דו×"ל ×וטומטיי×'; +$lang['sitemap'] = 'צור מפת ×תר של Google (ימי×)'; +$lang['rss_type'] = 'סוג פלט XML'; +$lang['rss_linkto'] = 'פלט ×”-XML מקשר ×ל'; +$lang['rss_content'] = 'מה להציג בפרטי פלט ×”-XML'; +$lang['rss_update'] = 'פלט ×”-XML מתעדכן כל (×©× ×™×•×ª)'; +$lang['rss_show_summary'] = 'פלט ×”-XML מציג תקציר בכותרת'; $lang['updatecheck'] = 'בדיקת ×¢×™×“×›×•× ×™ ×בטחה והתר×ות? על DokuWiki להתקשר ×ל update.dokuwiki.org לצורך כך.'; $lang['userewrite'] = 'השתמש בכתובות URL יפות'; $lang['useslash'] = 'השתמש בלוכסן להגדרת מרחבי שמות בכתובות'; -$lang['usedraft'] = 'שמור טיוטות ב×ופן ×וטומטי בעת עריכה'; $lang['sepchar'] = 'מפריד בין מילות ש×-דף'; $lang['canonical'] = 'השתמש בכתובות URL מל×ות'; $lang['autoplural'] = 'בדוק לצורת ×¨×‘×™× ×‘×§×™×©×•×¨×™×'; $lang['compression'] = '×ופן דחיסת ×§×‘×¦×™× ×‘-attic'; -$lang['cachetime'] = 'גיל מירבי לזכרון מטמון (×©× ×™×•×ª)'; -$lang['locktime'] = 'גיל מירבי לקבצי × ×¢×™×œ×” (×©× ×™×•×ª)'; -$lang['fetchsize'] = 'גודל הקובץ המירבי (bytes) ש-fetch.php יכול להוריד מבחוץ'; -$lang['notify'] = 'שלח התר×ות על ×©×™× ×•×™×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; -$lang['registernotify'] = 'שלח מידע על ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×—×“×©×™× ×œ×›×ª×•×‘×ª דו×"ל זו'; -$lang['mailfrom'] = 'כתובת הדו×"ל לשימוש בדברי דו×"ל ×וטומטיי×'; $lang['gzip_output'] = 'השתמש בקידוד תוכן של gzip עבור xhtml'; -$lang['gdlib'] = 'גרסת ספרית ×”-GD'; -$lang['im_convert'] = '× ×ª×™×‘ לכלי ×”-convert של ImageMagick'; -$lang['jpg_quality'] = '×יכות הדחיסה של JPG (0-100)'; -$lang['subscribers'] = 'התר תמיכה ×‘×¨×™×©×•× ×œ×“×¤×™×'; $lang['compress'] = 'פלט קומפקטי של CSS ו-javascript'; -$lang['hidepages'] = 'הסתר ×“×¤×™× ×ª×•××ž×™× (×‘×™×˜×•×™×™× ×¨×’×•×œ×¨×™×™×)'; $lang['send404'] = 'שלח "HTTP 404/Page Not Found" עבור ×“×¤×™× ×©××™× × ×§×™×™×ž×™×'; -$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 (ליבת דוקוויקי)'; $lang['renderer__plugin'] = '%s (הרחבות)'; -$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____interwiki'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×‘×™×Ÿ מערכות ויקי'; -$lang['target____extern'] = 'חלון יעד ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×'; -$lang['target____media'] = 'חלון יעד לקישור למדיה'; -$lang['target____windows'] = 'חלון יעד לתיקיות משותפות'; $lang['proxy____host'] = '×©× ×”×©×¨×ª המתווך'; $lang['proxy____port'] = 'שער השרת המתווך'; $lang['proxy____user'] = '×©× ×”×ž×©×ª×ž×© בשרת המתווך'; diff --git a/lib/plugins/config/lang/hu/lang.php b/lib/plugins/config/lang/hu/lang.php index 6f774bfacc893895ddaf70e4fad26d60d7845cf7..59d7e9f57a49cd6739d591b11b6d6ceb178410a4 100644 --- a/lib/plugins/config/lang/hu/lang.php +++ b/lib/plugins/config/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com @@ -84,7 +85,9 @@ $lang['disableactions'] = 'Bizonyos DokuWiki tevékenységek (action) til $lang['disableactions_check'] = 'EllenÅ‘rzés'; $lang['disableactions_subscription'] = 'Feliratkozás/Leiratkozás'; $lang['disableactions_wikicode'] = 'Forrás megtekintése/Nyers adat exportja'; +$lang['disableactions_profile_delete'] = 'Saját felhasználó törlése'; $lang['disableactions_other'] = 'Egyéb tevékenységek (vesszÅ‘vel elválasztva)'; +$lang['disableactions_rss'] = 'XML hÃrfolyam (RSS)'; $lang['auth_security_timeout'] = 'Authentikációs biztonsági idÅ‘ablak (másodperc)'; $lang['securecookie'] = 'A böngészÅ‘k a HTTPS felett beállÃtott sütijüket csak HTTPS felett küldhetik? Kapcsoljuk ki ezt az opciót, ha csak a bejelentkezést védjük SSL-lel, a wiki tartalmának böngészése nyÃlt forgalommal történik.'; $lang['remote'] = 'Távoli API engedélyezése. Ezzel más alkalmazások XML-RPC-n keresztül hozzáférhetnek a wikihez.'; @@ -189,6 +192,7 @@ $lang['xsendfile_o_2'] = 'Standard X-Sendfile fejléc'; $lang['xsendfile_o_3'] = 'Nginx saját X-Accel-Redirect fejléce'; $lang['showuseras_o_loginname'] = 'AzonosÃtó'; $lang['showuseras_o_username'] = 'Teljes név'; +$lang['showuseras_o_username_link'] = 'A felhasználó teljes neve belsÅ‘ wiki-hivatkozásként'; $lang['showuseras_o_email'] = 'E-mail cÃm (olvashatatlanná téve az e-mailcÃm védelem beállÃtása szerint)'; $lang['showuseras_o_email_link'] = 'E-mail cÃm mailto: linkként'; $lang['useheading_o_0'] = 'Soha'; diff --git a/lib/plugins/config/lang/ia/intro.txt b/lib/plugins/config/lang/ia/intro.txt index 37b970c4f935231a1f015c8b38029d58bf2193fe..eb2e105915ff740f3c7c08df34e9947a9450e399 100644 --- a/lib/plugins/config/lang/ia/intro.txt +++ b/lib/plugins/config/lang/ia/intro.txt @@ -4,4 +4,4 @@ Usa iste pagina pro controlar le configurationes de tu installation de DokuWiki. 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 +Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite. diff --git a/lib/plugins/config/lang/it/intro.txt b/lib/plugins/config/lang/it/intro.txt index 617e8c7b5f9baa0498baea0daad922e2ac74a2e8..02984baa7c0be4230d70e23478f698f3e26b4548 100644 --- a/lib/plugins/config/lang/it/intro.txt +++ b/lib/plugins/config/lang/it/intro.txt @@ -5,5 +5,3 @@ Usa questa pagina per gestire la configurazione della tua installazione DokuWiki Le impostazioni con lo sfondo rosso chiaro sono protette e non possono essere modificate con questo plugin. Le impostazioni con lo sfondo blu contengono i valori predefiniti, e le impostazioni con lo sfondo bianco sono relative solo a questa particolare installazione. Sia le impostazioni su sfondo blu che quelle su sfondo bianco possono essere modificate. Ricordati di premere il pulsante **SALVA** prima di lasciare questa pagina altrimenti le modifiche andranno perse. - - diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php index 7a831c8ded2aa1e50d02f83851f5c6874de3c790..1e371613c330bc39233e8c5e9dfd4f2c6d41d93f 100644 --- a/lib/plugins/config/lang/it/lang.php +++ b/lib/plugins/config/lang/it/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Italian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Christopher Smith <chris@jalakai.co.uk> * @author Silvia Sargentoni <polinnia@tin.it> * @author Pietro Battiston toobaz@email.it @@ -15,6 +15,7 @@ * @author Jacopo Corbetta <jacopo.corbetta@gmail.com> * @author Matteo Pasotti <matteo@xquiet.eu> * @author snarchio@gmail.com + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['menu'] = 'Configurazione Wiki'; $lang['error'] = 'Impostazioni non aggiornate a causa di un valore non corretto, controlla le modifiche apportate e salva di nuovo. @@ -90,7 +91,9 @@ $lang['disableactions'] = 'Disabilita azioni DokuWiki'; $lang['disableactions_check'] = 'Controlla'; $lang['disableactions_subscription'] = 'Sottoscrivi/Rimuovi sottoscrizione'; $lang['disableactions_wikicode'] = 'Mostra sorgente/Esporta Raw'; +$lang['disableactions_profile_delete'] = 'Elimina il proprio account'; $lang['disableactions_other'] = 'Altre azioni (separate da virgola)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; $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['remote'] = 'Abilita il sistema di API remoto. Questo permette ad altre applicazioni di accedere al wiki tramite XML-RPC o altri meccanismi.'; @@ -195,6 +198,7 @@ $lang['xsendfile_o_2'] = 'Header standard X-Sendfile'; $lang['xsendfile_o_3'] = 'Header proprietario Nginx X-Accel-Redirect'; $lang['showuseras_o_loginname'] = 'Nome utente'; $lang['showuseras_o_username'] = 'Nome completo dell\'utente'; +$lang['showuseras_o_username_link'] = 'Nome completo dell\'utente come link interwiki'; $lang['showuseras_o_email'] = 'Indirizzo email dell\'utente (offuscato in base alle impostazioni di sicurezza posta)'; $lang['showuseras_o_email_link'] = 'Indirizzo email dell\'utente come collegamento mailto:'; $lang['useheading_o_0'] = 'Mai'; diff --git a/lib/plugins/config/lang/ja/intro.txt b/lib/plugins/config/lang/ja/intro.txt index 0c45471c6ce6194df42e77b58a9e8ded0736b75d..4d98dd3ed0fbae0e2f4a94984abb476ff2b1702c 100644 --- a/lib/plugins/config/lang/ja/intro.txt +++ b/lib/plugins/config/lang/ja/intro.txt @@ -1,9 +1,11 @@ ====== è¨å®šç®¡ç† ====== -ã“ã®ç”»é¢ã§ã€Dokuwikiã®è¨å®šã‚’管ç†ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚ 個々ã®è¨å®šã«é–¢ã—ã¦ã¯ [[doku>config]] ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 ã“ã®ãƒ—ラグインã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã¯ [[doku>plugin:config]] ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 - -背景ãŒè–„ã„赤ã«ãªã£ã¦ã„ã‚‹å ´åˆã€ãã®è¨å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。 背景ãŒé’ã®å€¤ã¯ãƒ‡ãƒ•ォルトã€èƒŒæ™¯ãŒç™½ã®å€¤ã¯ç¾åœ¨ã®è¨å®šã¨ãªã£ã¦ãŠã‚Šã€ ã©ã¡ã‚‰ã®å€¤ã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚ - -è¨å®šã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。 ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•れã¾ã™ã€‚ +ã“ã®ç”»é¢ã§ã€Dokuwikiã®è¨å®šã‚’管ç†ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚ +個々ã®è¨å®šã«é–¢ã—ã¦ã¯[[doku>ja:config|DokuWiki ã®è¨å®š]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +ã“ã®ãƒ—ラグインã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã¯[[doku>ja:plugin:config|è¨å®šç®¡ç†ãƒ—ラグイン]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +背景ãŒè–„ã„赤ã®å ´åˆã€ãã®è¨å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。 +背景ãŒé’ã®å ´åˆã¯ãƒ‡ãƒ•ォルトè¨å®šã€èƒŒæ™¯ãŒç™½ã®å ´åˆã¯ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨å®šã«ãªã£ã¦ãŠã‚Šã€ã©ã¡ã‚‰è¨å®šã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚ +è¨å®šã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。 +ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•れã¾ã™ã€‚ diff --git a/lib/plugins/config/lang/ja/lang.php b/lib/plugins/config/lang/ja/lang.php index e8cf8227b92fbff0a97a6e94bc9104e40db8f66a..83445e6f12bfaffc4854489bfbd421244d69a453 100644 --- a/lib/plugins/config/lang/ja/lang.php +++ b/lib/plugins/config/lang/ja/lang.php @@ -1,8 +1,8 @@ <?php + /** - * japanese language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Yuji Takenaka <webmaster@davilin.com> * @author Christopher Smith <chris@jalakai.co.uk> * @author Ikuo Obataya <i.obataya@gmail.com> @@ -10,6 +10,7 @@ * @author Kazutaka Miyasaka <kazmiya@gmail.com> * @author Taisuke Shimamoto <dentostar@gmail.com> * @author Satoshi Sahara <sahara.satoshi@gmail.com> + * @author Hideaki SAWADA <chuno@live.jp> */ $lang['menu'] = 'サイトè¨å®š'; $lang['error'] = '䏿£ãªå€¤ãŒå˜åœ¨ã™ã‚‹ãŸã‚ã€è¨å®šã¯æ›´æ–°ã•れã¾ã›ã‚“ã§ã—ãŸã€‚入力値を確èªã—ã¦ã‹ã‚‰ã€å†åº¦æ›´æ–°ã—ã¦ãã ã•ã„。 @@ -83,9 +84,11 @@ $lang['profileconfirm'] = 'プãƒãƒ•ィール変更時ã«ç¾åœ¨ã®ãƒ‘ス $lang['rememberme'] = 'ãƒã‚°ã‚¤ãƒ³ç”¨ã‚¯ãƒƒã‚ーを永久ã«ä¿æŒã™ã‚‹ã“ã¨ã‚’許å¯ï¼ˆãƒã‚°ã‚¤ãƒ³ã‚’ä¿æŒï¼‰'; $lang['disableactions'] = 'DokuWiki ã®å‹•作を無効ã«ã™ã‚‹'; $lang['disableactions_check'] = 'ãƒã‚§ãƒƒã‚¯'; -$lang['disableactions_subscription'] = '登録 / 解除'; +$lang['disableactions_subscription'] = '変更履æ´é…ä¿¡ã®ç™»éŒ²ãƒ»è§£é™¤'; $lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力'; +$lang['disableactions_profile_delete'] = '自分ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æŠ¹æ¶ˆ'; $lang['disableactions_other'] = 'ãã®ä»–ã®å‹•作(カンマ区切り)'; +$lang['disableactions_rss'] = 'XML é…信(RSS)'; $lang['auth_security_timeout'] = 'èªè¨¼ã‚¿ã‚¤ãƒ アウトè¨å®šï¼ˆç§’)'; $lang['securecookie'] = 'クッã‚ーをHTTPSã«ã¦ã‚»ãƒƒãƒˆã™ã‚‹å ´åˆã¯ã€ãƒ–ラウザよりHTTPS経由ã§é€ä¿¡ã•れãŸå ´åˆã«ã¿ã«åˆ¶é™ã—ã¾ã™ã‹ï¼Ÿãƒã‚°ã‚¤ãƒ³ã®ã¿ã‚’SSLã§è¡Œã†å ´åˆã¯ã€ã“ã®æ©Ÿèƒ½ã‚’無効ã«ã—ã¦ãã ã•ã„。'; $lang['remote'] = 'リモートAPIを有効化ã—ã¾ã™ã€‚有効化ã™ã‚‹ã¨XML-RPCã¾ãŸã¯ä»–ã®æ‰‹æ®µã§wikiã«ã‚¢ãƒ—リケーションãŒã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã‚’許å¯ã—ã¾ã™ã€‚'; @@ -190,6 +193,7 @@ $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_username_link'] = 'user ã¨ã„ㆠInterWiki リンクã«ãªã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ルãƒãƒ¼ãƒ '; $lang['showuseras_o_email'] = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ï¼ˆãƒ¡ãƒ¼ãƒ«ã‚¬ãƒ¼ãƒ‰è¨å®šã«ã‚ˆã‚‹é›£èªåŒ–)'; $lang['showuseras_o_email_link'] = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’リンクã«ã™ã‚‹'; $lang['useheading_o_0'] = '使用ã—ãªã„'; diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt index 979bbcb147643ec542388ceaf05d455e8d8e7a68..b05264a64350d86f61fd21e8ee6f0655c14ff065 100644 --- a/lib/plugins/config/lang/ko/intro.txt +++ b/lib/plugins/config/lang/ko/intro.txt @@ -1,8 +1,7 @@ ====== 환경 ì„¤ì • ê´€ë¦¬ìž ====== -ë„ì¿ ìœ„í‚¤ë¥¼ ì„¤ì¹˜í• ë•Œ ì„¤ì •ì„ ë°”ê¾¸ë ¤ë©´ ì´ íŽ˜ì´ì§€ë¥¼ 사용하세요. 개별 ì„¤ì •ì— ëŒ€í•œ ë„움ë§ì€ [[doku>ko:config]]를 ì°¸ê³ í•˜ì„¸ìš”. ì´ í”ŒëŸ¬ê·¸ì¸ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ [[doku>ko:plugin:config]]를 ì°¸ê³ í•˜ì„¸ìš”. +ì„¤ì¹˜ëœ ë„ì¿ ìœ„í‚¤ì˜ ì„¤ì •ì„ ì œì–´í•˜ë ¤ë©´ ì´ íŽ˜ì´ì§€ë¥¼ 사용하세요. 개별 ì„¤ì •ì— ëŒ€í•œ ë„움ë§ì€ [[doku>ko:config]]를 참조하세요. ì´ í”ŒëŸ¬ê·¸ì¸ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ [[doku>ko:plugin:config]]를 참조하세요. -ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ì—서 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ìˆ˜í•œ 설치를 위해 로컬로 ì„¤ì •ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다. - -ì´ íŽ˜ì´ì§€ë¥¼ ë– ë‚˜ê¸° ì „ì— **ì €ìž¥** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”. +ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ìœ¼ë¡œ 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ì • ì„¤ì¹˜ì— ëŒ€í•´ 로컬로 ì„¤ì •ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다. +ì´ íŽ˜ì´ì§€ë¥¼ ë– ë‚˜ê¸° ì „ì— **ì €ìž¥** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”. \ No newline at end of file diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php index 0cdaca90db1208522d21f864fe3132ebc7fa790e..fbec5167bf6ca294dcaaf1c46448dfb49883fe59 100644 --- a/lib/plugins/config/lang/ko/lang.php +++ b/lib/plugins/config/lang/ko/lang.php @@ -1,199 +1,202 @@ <?php + /** - * Korean language file - * - * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author jk Lee * @author dongnak@gmail.com * @author Song Younghwan <purluno@gmail.com> * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = '환경 ì„¤ì •'; -$lang['error'] = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다. ë°”ë€œì„ ê²€í† í•˜ê³ í™•ì¸ì„ 누르세요. -<br />ìž˜ëª»ëœ ê°’ì€ ë¹¨ê°„ ì„ ìœ¼ë¡œ 둘러싸여 있습니다.'; +$lang['error'] = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다, ë°”ë€œì„ ê²€í† í•˜ê³ ë‹¤ì‹œ ì œì¶œí•˜ì„¸ìš”. + <br />ìž˜ëª»ëœ ê°’ì€ ë¹¨ê°„ ì„ ìœ¼ë¡œ 둘러싸여 보여집니다.'; $lang['updated'] = 'ì„¤ì •ì´ ì„±ê³µì 으로 바뀌었습니다.'; -$lang['nochoice'] = '(다른 ì„ íƒì´ 불가능합니다)'; -$lang['locked'] = '환경 ì„¤ì • 파ì¼ì„ 바꿀 수 없습니다. ì˜ë„한 í–‰ë™ì´ 아니ë¼ë©´,<br /> -íŒŒì¼ ì´ë¦„ê³¼ ê¶Œí•œì´ ë§žëŠ”ì§€ 확ì¸í•˜ì„¸ìš”.'; -$lang['danger'] = '위험: ì´ ì˜µì…˜ì„ ìž˜ëª» 바꾸면 환경 ì„¤ì • 메뉴를 ì‚¬ìš©í• ìˆ˜ ì—†ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; -$lang['warning'] = 'ê²½ê³ : ì´ ì˜µì…˜ì„ ìž˜ëª» 바꾸면 잘못 ë™ìž‘í• ìˆ˜ 있습니다.'; -$lang['security'] = '보안 ê²½ê³ : ì´ ì˜µì…˜ì€ ë³´ì•ˆì— ìœ„í—˜ì´ ìžˆì„ ìˆ˜ 있습니다.'; +$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_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['_notifications'] = '알림 ì„¤ì •'; -$lang['_syndication'] = 'ì‹ ë””ì¼€ì´ì…˜ ì„¤ì •'; -$lang['_advanced'] = 'ê³ ê¸‰ ì„¤ì •'; -$lang['_network'] = 'ë„¤íŠ¸ì›Œí¬ ì„¤ì •'; -$lang['_msg_setting_undefined'] = 'ì„¤ì •ëœ ë©”íƒ€ë°ì´í„°ê°€ 없습니다.'; -$lang['_msg_setting_no_class'] = 'ì„¤ì •ëœ í´ëž˜ìŠ¤ê°€ 없습니다.'; +$lang['_basic'] = '기본'; +$lang['_display'] = 'ë³´ì´ê¸°'; +$lang['_authentication'] = 'ì¸ì¦'; +$lang['_anti_spam'] = '스팸 ë°©ì§€'; +$lang['_editing'] = '편집'; +$lang['_links'] = 'ë§í¬'; +$lang['_media'] = '미디어'; +$lang['_notifications'] = '알림'; +$lang['_syndication'] = 'ì‹ ë””ì¼€ì´ì…˜ (RSS)'; +$lang['_advanced'] = 'ê³ ê¸‰'; +$lang['_network'] = '네트워í¬'; +$lang['_msg_setting_undefined'] = 'ì„¤ì •ì— ë©”íƒ€ë°ì´í„°ê°€ 없습니다.'; +$lang['_msg_setting_no_class'] = 'ì„¤ì •ì— í´ëž˜ìŠ¤ê°€ 없습니다.'; $lang['_msg_setting_no_default'] = 'ê¸°ë³¸ê°’ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['title'] = '위키 ì œëª© (위키 ì´ë¦„)'; -$lang['start'] = 'ê° ì´ë¦„공간ì—서 ì‚¬ìš©í• ì‹œìž‘ 문서 ì´ë¦„'; +$lang['start'] = 'ê° ì´ë¦„ê³µê°„ì— ì‹œìž‘ì 으로 ì‚¬ìš©í• ë¬¸ì„œ ì´ë¦„'; $lang['lang'] = 'ì¸í„°íŽ˜ì´ìФ 언어'; $lang['template'] = '템플릿 (위키 ë””ìžì¸)'; -$lang['tagline'] = '태그 ë¼ì¸ (í…œí”Œë¦¿ì´ ì§€ì›í• ë•Œì— í•œí•¨)'; -$lang['sidebar'] = '사ì´ë“œë°” 문서 ì´ë¦„ (í…œí”Œë¦¿ì´ ì§€ì›í• ë•Œì— í•œí•¨), 비워ë‘ë©´ 사ì´ë“œë°”를 비활성화'; -$lang['license'] = 'ë‚´ìš©ì— ì–´ë–¤ ë¼ì´ì„ 스를 ì ìš©í•˜ê² ìŠµë‹ˆê¹Œ?'; -$lang['savedir'] = 'ë°ì´í„° ì €ìž¥ ë””ë ‰í„°ë¦¬'; -$lang['basedir'] = '서버 경로 (예를 들어 <code>/dokuwiki/</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비우세요.'; -$lang['baseurl'] = '서버 URL (예를 들어 <code>http://www.yourserver.com</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비우세요.'; -$lang['cookiedir'] = 'ì¿ í‚¤ 위치. 비워ë‘ë©´ 기본 URL 위치로 ì§€ì •ë©ë‹ˆë‹¤.'; +$lang['tagline'] = '태그ë¼ì¸ (í…œí”Œë¦¿ì´ ì§€ì›í• 경우)'; +$lang['sidebar'] = '사ì´ë“œë°” 문서 ì´ë¦„ (í…œí”Œë¦¿ì´ ì§€ì›í• 경우), 필드를 비우면 사ì´ë“œë°”를 비활성화'; +$lang['license'] = 'ë‚´ìš©ì„ ë°°í¬í• 때 ì–´ë–¤ ë¼ì´ì„ ìŠ¤ì— ë”°ë¼ì•¼ 합니까?'; +$lang['savedir'] = 'ë°ì´í„°ë¥¼ ì €ìž¥í• ë””ë ‰í„°ë¦¬'; +$lang['basedir'] = '서버 경로 (예 <code>/dokuwiki/</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비워 ë‘세요.'; +$lang['baseurl'] = '서버 URL (예 <code>http://www.yourserver.com</code>). ìžë™ ê°ì§€ë¥¼ í•˜ë ¤ë©´ 비워 ë‘세요.'; +$lang['cookiedir'] = 'ì¿ í‚¤ 경로. 기본 URL 위치로 ì§€ì •í•˜ë ¤ë©´ 비워 ë‘세요.'; $lang['dmode'] = 'ë””ë ‰í„°ë¦¬ 만들기 모드'; $lang['fmode'] = 'íŒŒì¼ ë§Œë“¤ê¸° 모드'; -$lang['allowdebug'] = '디버그 허용 <b>필요하지 않으면 비활성화하세요!</b>'; -$lang['recent'] = '최근 ë°”ë€ ë¬¸ì„œë‹¹ í•목 수'; -$lang['recent_days'] = '최근 ë°”ë€ ë¬¸ì„œ 기준 시간 (ì¼)'; -$lang['breadcrumbs'] = '위치 "ì¶”ì " 수. 0으로 ì„¤ì •í•˜ë©´ 비활성화합니다.'; -$lang['youarehere'] = '계층형 위치 ì¶”ì (ë‹¤ìŒ ìœ„ì˜ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ê²Œ ë©ë‹ˆë‹¤)'; -$lang['fullpath'] = '문서 í•˜ë‹¨ì— ì „ì²´ 경로 보여주기'; -$lang['typography'] = '기호 대체'; -$lang['dformat'] = 'ë‚ ì§œ í˜•ì‹ (PHP <a href="http://www.php.net/strftime">strftime</a> 기능 ì°¸ê³ )'; +$lang['allowdebug'] = '디버그 허용. <b>필요하지 않으면 비활성화하세요!</b>'; +$lang['recent'] = '최근 바뀜ì—서 문서당 í•목 수'; +$lang['recent_days'] = '최근 ë°”ë€œì„ ìœ ì§€í• ê¸°í•œ (ì¼)'; +$lang['breadcrumbs'] = 'ì´ë™ 경로 "ì¶”ì " 수. ë¹„í™œì„±í™”í•˜ë ¤ë©´ 0으로 ì„¤ì •í•˜ì„¸ìš”.'; +$lang['youarehere'] = '계층ì ì´ë™ 경로 사용 (다ìŒì— 위 ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ê¸°ë¥¼ ì›í• ê²ë‹ˆë‹¤)'; +$lang['fullpath'] = 'ë°”ë‹¥ê¸€ì— ë¬¸ì„œì˜ ì „ì²´ 경로 ë°ížˆê¸°'; +$lang['typography'] = '타ì´í¬ê·¸ëž˜í”¼ 대체'; +$lang['dformat'] = 'ë‚ ì§œ í˜•ì‹ (PHPì˜ <a href="http://www.php.net/strftime">strftime</a> 함수 ì°¸ê³ )'; $lang['signature'] = '편집기ì—서 서명 ë²„íŠ¼ì„ ëˆ„ë¥¼ 때 ë„£ì„ ë‚´ìš©'; -$lang['showuseras'] = 'ë§ˆì§€ë§‰ì— ë¬¸ì„œë¥¼ 편집한 사용ìžë¥¼ 보여줄지 여부'; -$lang['toptoclevel'] = '목차 최ìƒìœ„ í•목'; -$lang['tocminheads'] = '목차 표시 여부를 ê²°ì •í• ìµœì†Œí•œì˜ ë¬¸ë‹¨ ì œëª© í•ëª©ì˜ ìˆ˜'; -$lang['maxtoclevel'] = '목차 최대 단계'; -$lang['maxseclevel'] = '문단 최대 편집 단계'; +$lang['showuseras'] = '문서를 마지막으로 편집한 사용ìžë¥¼ 보여줄지 여부'; +$lang['toptoclevel'] = 'ëª©ì°¨ì˜ ìµœìƒìœ„ 단계'; +$lang['tocminheads'] = '목차를 ë„£ì„ ì—¬ë¶€ë¥¼ ê²°ì •í• ìµœì†Œ 문단 수'; +$lang['maxtoclevel'] = 'ëª©ì°¨ì˜ ìµœëŒ€ 단계'; +$lang['maxseclevel'] = 'ë¬¸ë‹¨ì˜ ìµœëŒ€ 편집 단계'; $lang['camelcase'] = 'ë§í¬ì— CamelCase 사용'; $lang['deaccent'] = '문서 ì´ë¦„ì„ ì§€ìš°ëŠ” 방법'; -$lang['useheading'] = '문서 ì´ë¦„으로 첫 문단 ì œëª© 사용'; -$lang['sneaky_index'] = '기본ì 으로 ë„ì¿ ìœ„í‚¤ëŠ” ìƒ‰ì¸ ëª©ë¡ì— ëª¨ë“ ì´ë¦„ê³µê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. -ì´ ì˜µì…˜ì„ ì„¤ì •í•˜ë©´ 사용ìžê°€ ì½ê¸° ê¶Œí•œì„ ê°€ì§€ê³ ìžˆì§€ ì•Šì€ ì´ë¦„ê³µê°„ì€ ë³´ì—¬ì£¼ì§€ 않습니다. ì ‘ê·¼ 가능한 하위 ì´ë¦„ê³µê°„ì„ ë³´ì´ì§€ 않게 ì„¤ì •í•˜ë©´ ìžë™ìœ¼ë¡œ ì„¤ì •ë©ë‹ˆë‹¤. íŠ¹ì • ACL ì„¤ì •ì€ ìƒ‰ì¸ ì‚¬ìš©ì´ ë¶ˆê°€ëŠ¥í•˜ê²Œ í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; -$lang['hidepages'] = '검색, 사ì´íŠ¸ë§µê³¼ 기타 ìžë™ 색ì¸ì—서 ì •ê·œ 표현ì‹ê³¼ ì¼ì¹˜í•˜ëŠ” 문서 숨기기'; +$lang['useheading'] = '문서 ì´ë¦„ì„ ì²« 문단 ì œëª©ìœ¼ë¡œ 사용'; +$lang['sneaky_index'] = '기본ì 으로, ë„ì¿ ìœ„í‚¤ëŠ” 사ì´íŠ¸ë§µì— ëª¨ë“ ì´ë¦„ê³µê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ 사용ìžê°€ ì½ê¸° ê¶Œí•œì´ ì—†ëŠ” ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ê²Œ ë©ë‹ˆë‹¤. íŠ¹ì • ACL ì„¤ì •ìœ¼ë¡œ 색ì¸ì„ ì‚¬ìš©í• ìˆ˜ 없게 í• ìˆ˜ 있는 ì ‘ê·¼í• ìˆ˜ 있는 하위 ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ë©´ ì„¤ì •ë©ë‹ˆë‹¤.'; +$lang['hidepages'] = '검색, 사ì´íŠ¸ë§µ ë° ë‹¤ë¥¸ ìžë™ 색ì¸ì—서 ì´ ì •ê·œ 표현ì‹ê³¼ ì¼ì¹˜í•˜ëŠ” 문서 숨기기'; $lang['useacl'] = 'ì ‘ê·¼ ì œì–´ ëª©ë¡ (ACL) 사용'; -$lang['autopasswd'] = 'ìžë™ìœ¼ë¡œ 만들어진 비밀번호'; -$lang['authtype'] = 'ì¸ì¦ ë°±-엔드'; +$lang['autopasswd'] = 'ìžë™ ìƒì„± 비밀번호'; +$lang['authtype'] = 'ì¸ì¦ 백엔드'; $lang['passcrypt'] = '비밀번호 암호화 방법'; -$lang['defaultgroup'] = '기본 그룹, ëª¨ë“ ìƒˆ 사용ìžëŠ” ì´ ê·¸ë£¹ì— ì†í•©ë‹ˆë‹¤'; -$lang['superuser'] = 'ìŠˆí¼ ìœ ì € - ACL ì„¤ì •ê³¼ ìƒê´€ì—†ì´ ëª¨ë“ ë¬¸ì„œì™€ ê¸°ëŠ¥ì— ëŒ€í•œ ì „ì²´ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ 그룹ì´ë‚˜ ì‚¬ìš©ìž ë˜ëŠ” 사용ìž1,@그룹1,사용ìž2 쉼표로 구분한 목ë¡'; -$lang['manager'] = 'ê´€ë¦¬ìž - 관리 ê¸°ëŠ¥ì„ ì‚¬ìš©í• ìˆ˜ 있는 그룹ì´ë‚˜ ì‚¬ìš©ìž ë˜ëŠ” 사용ìž1,@그룹1,사용ìž2 쉼표로 구분한 목ë¡'; -$lang['profileconfirm'] = 'ê°œì¸ ì •ë³´ë¥¼ 바꿀 때 비밀번호 다시 확ì¸'; -$lang['rememberme'] = 'í•ìƒ ë¡œê·¸ì¸ ì •ë³´ ì €ìž¥ 허용 (기억하기)'; -$lang['disableactions'] = 'ë„ì¿ ìœ„í‚¤ í™œë™ ë¹„í™œì„±í™”'; +$lang['defaultgroup'] = '기본 그룹, ëª¨ë“ ìƒˆ 사용ìžëŠ” ì´ ê·¸ë£¹ì— ì†í•˜ê²Œ ë©ë‹ˆë‹¤'; +$lang['superuser'] = '슈í¼ìœ ì € - ACL ì„¤ì •ê³¼ ìƒê´€ì—†ì´ ëª¨ë“ ë¬¸ì„œì™€ ê¸°ëŠ¥ì— ì™„ì „ížˆ ì ‘ê·¼í• ìˆ˜ 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2'; +$lang['manager'] = 'ê´€ë¦¬ìž - íŠ¹ì • 관리 ê¸°ëŠ¥ì— ì ‘ê·¼í• ìˆ˜ 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2'; +$lang['profileconfirm'] = 'í”„ë¡œí•„ì„ ë°”ê¿€ 때 비밀번호로 확ì¸'; +$lang['rememberme'] = 'ì˜êµ¬ì 으로 ë¡œê·¸ì¸ ì¿ í‚¤ 허용 (기억하기)'; +$lang['disableactions'] = 'ë„ì¿ ìœ„í‚¤ ë™ìž‘ 비활성화'; $lang['disableactions_check'] = '검사'; -$lang['disableactions_subscription'] = 'êµ¬ë… ì‹ ì²/êµ¬ë… ì·¨ì†Œ'; +$lang['disableactions_subscription'] = '구ë…/êµ¬ë… ì·¨ì†Œ'; $lang['disableactions_wikicode'] = 'ì›ë³¸ 보기/ì›ë³¸ 내보내기'; -$lang['disableactions_other'] = '다른 í™œë™ (쉼표로 구분)'; -$lang['auth_security_timeout'] = 'ì¸ì¦ 보안 초과 시간 (ì´ˆ)'; -$lang['securecookie'] = 'HTTPS로 ë³´ë‚´ì§„ ì¿ í‚¤ëŠ” HTTPSì—ë§Œ ì ìš© í• ê¹Œìš”? ìœ„í‚¤ì˜ ë¡œê·¸ì¸ íŽ˜ì´ì§€ë§Œ SSL로 ì•”í˜¸í™”í•˜ê³ ìœ„í‚¤ 문서는 ê·¸ë ‡ì§€ ì•Šì€ ê²½ìš° 비활성화 합니다.'; -$lang['remote'] = 'ì›ê²© API를 활성화 합니다. ì´ í•ëª©ì„ í—ˆìš©í•˜ë©´ XML-RPC ë° ê¸°íƒ€ ë©”ì»¤ë‹ˆì¦˜ì„ í†µí•´ 다른 어플리케ì´ì…˜ìœ¼ë¡œ ì ‘ê·¼ 가능합니다.'; -$lang['remoteuser'] = 'ì´ í•ëª©ì— ìž…ë ¥ëœ ì‰¼í‘œë¡œ ë‚˜ëˆ ì§„ 그룹ì´ë‚˜ 사용ìžì—게 ì›ê²© API ì ‘ê·¼ì„ ì œí•œí•©ë‹ˆë‹¤. 빈칸으로 ë‘ë©´ 모ë‘ì—게 허용합니다.'; -$lang['usewordblock'] = '금지 단어를 사용해 스팸 막기'; +$lang['disableactions_profile_delete'] = 'ìžì‹ ì˜ ê³„ì • ì‚ì œ'; +$lang['disableactions_other'] = '다른 ë™ìž‘ (쉼표로 구분)'; +$lang['disableactions_rss'] = 'XML ì‹ ë””ì¼€ì´ì…˜ (RSS)'; +$lang['auth_security_timeout'] = 'ì¸ì¦ 보안 시간 초과 (ì´ˆ)'; +$lang['securecookie'] = 'HTTPS를 통해 ì„¤ì •ëœ ì¿ í‚¤ëŠ” HTTPS를 통해서만 ë³´ë‚´ì ¸ì•¼ 합니까? 위키 로그ì¸ì—ë§Œ SSL로 ë³´í˜¸í•˜ê³ ìœ„í‚¤ë¥¼ 둘러보는 것ì—는 보호하지 않게 í•˜ë ¤ë©´ ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”.'; +$lang['remote'] = 'ì›ê²© API 시스템 활성화. 다른 어플리케ì´ì…˜ì´ XML-RPC ë˜ëŠ” 다른 ë©”ì»¤ë‹ˆì¦˜ì„ í†µí•´ ìœ„í‚¤ì— ì ‘ê·¼í• ìˆ˜ 있습니다.'; +$lang['remoteuser'] = 'ì—¬ê¸°ì— ìž…ë ¥í•œ 쉼표로 êµ¬ë¶„ëœ ê·¸ë£¹ ë˜ëŠ” 사용ìžì—게 ì›ê²© API ì ‘ê·¼ì„ ì œí•œí•©ë‹ˆë‹¤. 모ë‘ì—게 ì ‘ê·¼ ê¶Œí•œì„ ì£¼ë ¤ë©´ 비워 ë‘세요.'; +$lang['usewordblock'] = 'ë‚±ë§ ëª©ë¡ì„ 바탕으로 스팸 막기'; $lang['relnofollow'] = '바깥 ë§í¬ì— rel="nofollow" 사용'; -$lang['indexdelay'] = 'ìƒ‰ì¸ ì—°ê¸° 시간 (ì´ˆ)'; +$lang['indexdelay'] = 'ìƒ‰ì¸ ì „ 지연 시간 (ì´ˆ)'; $lang['mailguard'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 알아볼 수 없게 하기'; $lang['iexssprotect'] = '올린 파ì¼ì˜ 악성 ìžë°”스í¬ë¦½íЏ, HTML 코드 가능성 여부를 검사'; -$lang['usedraft'] = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 문서 초안 ì €ìž¥'; -$lang['htmlok'] = 'HTML 내장 허용'; -$lang['phpok'] = 'PHP 내장 허용'; -$lang['locktime'] = '최대 íŒŒì¼ ìž ê¸ˆ 시간(ì´ˆ)'; -$lang['cachetime'] = '최대 ìºì‹œ ìƒì¡´ 시간 (ì´ˆ)'; +$lang['usedraft'] = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 초안 ì €ìž¥'; +$lang['htmlok'] = 'HTML í¬í•¨ 허용'; +$lang['phpok'] = 'PHP í¬í•¨ 허용'; +$lang['locktime'] = 'íŒŒì¼ ìž ê·¸ê¸°ì— ëŒ€í•œ 최대 시간 (ì´ˆ)'; +$lang['cachetime'] = 'ìºì‹œì— 대한 최대 시간 (ì´ˆ)'; $lang['target____wiki'] = '안쪽 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____interwiki'] = 'ì¸í„°ìœ„키 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____extern'] = '바깥 ë§í¬ì— 대한 타겟 ì°½'; $lang['target____media'] = '미디어 ë§í¬ì— 대한 타겟 ì°½'; -$lang['target____windows'] = 'ì°½ ë§í¬ì— 대한 타겟 ì°½'; -$lang['mediarevisions'] = '미디어 íŒ ê´€ë¦¬ë¥¼ ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ?'; -$lang['refcheck'] = '미디어 파ì¼ì„ ì‚ì œí•˜ê¸° ì „ì— ì‚¬ìš©í•˜ê³ ìžˆëŠ”ì§€ 검사'; +$lang['target____windows'] = 'Windows ë§í¬ì— 대한 타겟 ì°½'; +$lang['mediarevisions'] = '미디어 íŒì„ í™œì„±í™”í•˜ê² ìŠµë‹ˆê¹Œ?'; +$lang['refcheck'] = '미디어 파ì¼ì„ ì‚ì œí•˜ê¸° ì „ì— ì•„ì§ ì‚¬ìš©í•˜ê³ ìžˆëŠ”ì§€ 검사'; $lang['gdlib'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ ë²„ì „'; -$lang['im_convert'] = 'ImageMagick 변환 ë„구 위치'; +$lang['im_convert'] = 'ImageMagickì˜ ë³€í™˜ ë„êµ¬ì˜ ê²½ë¡œ'; $lang['jpg_quality'] = 'JPG ì••ì¶• 품질 (0-100)'; -$lang['fetchsize'] = 'fetch.phpê°€ 바깥ì—서 ë‹¤ìš´ë¡œë“œí• ìˆ˜ë„ ìžˆëŠ” 최대 í¬ê¸° (ë°”ì´íЏ)'; -$lang['subscribers'] = '사용ìžê°€ ì´ë©”ì¼ë¡œ 문서 ë°”ë€œì— êµ¬ë…하ë„ë¡ í—ˆìš©'; -$lang['subscribe_time'] = 'êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); recent_daysì—서 ì„¤ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.'; +$lang['fetchsize'] = 'fetch.phpê°€ 바깥 URLì—서 ë‹¤ìš´ë¡œë“œí• ìˆ˜ 있는 최대 í¬ê¸° (ë°”ì´íЏ), 예를 들어 바깥 ê·¸ë¦¼ì„ ìºì‹œí•˜ê³ í¬ê¸° ì¡°ì ˆí• ë•Œ.'; +$lang['subscribers'] = '사용ìžê°€ ì´ë©”ì¼ë¡œ 문서 ë°”ë€œì„ êµ¬ë…í• ìˆ˜ 있ë„ë¡ í•˜ê¸°'; +$lang['subscribe_time'] = 'êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); recent_daysì— ì§€ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.'; $lang['notify'] = 'í•ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 바뀜 ì•Œë¦¼ì„ ë³´ëƒ„'; -$lang['registernotify'] = 'í•ìƒ ìƒˆ 사용ìží•œí…Œ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ ì •ë³´ë¥¼ 보냄'; -$lang['mailfrom'] = 'ìžë™ìœ¼ë¡œ 보내지는 ë©”ì¼ ë°œì‹ ìž'; -$lang['mailprefix'] = 'ìžë™ìœ¼ë¡œ 보내지는 ë©”ì¼ì˜ ì œëª© ë§ë¨¸ë¦¬ ë‚´ìš©. ë¹„ì› ì„ ê²½ìš° 위키 ì œëª© 사용'; -$lang['htmlmail'] = 'ìš©ëŸ‰ì€ ì¡°ê¸ˆ ë” í¬ì§€ë§Œ 보기 ì¢‹ì€ HTML 태그가 í¬í•¨ëœ ë©”ì¼ì„ 보냅니다. í…ìŠ¤íŠ¸ë§Œì˜ ë©”ì¼ì„ ë³´ë‚´ë ¤ë©´ 비활성화하세요.'; -$lang['sitemap'] = '구글 사ì´íŠ¸ë§µ ìƒì„± ë‚ ì§œ 빈ë„. 0ì¼ ê²½ìš° 비활성화합니다'; -$lang['rss_type'] = 'XML 피드 타입'; +$lang['registernotify'] = 'í•ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 새로 등ë¡í•œ 사용ìžì˜ ì •ë³´ë¥¼ 보냄'; +$lang['mailfrom'] = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— ì‚¬ìš©í• ë³´ë‚´ëŠ” 사람 ì´ë©”ì¼ ì£¼ì†Œ'; +$lang['mailprefix'] = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— ì‚¬ìš©í• ì´ë©”ì¼ ì œëª© ì ‘ë‘ì–´. 위키 ì œëª©ì„ ì‚¬ìš©í•˜ë ¤ë©´ 비워 ë‘세요'; +$lang['htmlmail'] = '보기ì—는 ë” ì¢‹ì§€ë§Œ í¬í‚¤ê°€ 조금 ë” í° HTML 태그가 í¬í•¨ëœ ì´ë©”ì¼ì„ 보내기. ì¼ë°˜ í…스트만으로 ëœ ë©”ì¼ì„ ë³´ë‚´ë ¤ë©´ 비활성화하세요.'; +$lang['sitemap'] = 'Google 사ì´íŠ¸ë§µ ìƒì„± ë‚ ì§œ ë¹ˆë„ (ì¼). ë¹„í™œì„±í™”í•˜ë ¤ë©´ 0'; +$lang['rss_type'] = 'XML 피드 형ì‹'; $lang['rss_linkto'] = 'XML 피드 ë§í¬ ì •ë³´'; -$lang['rss_content'] = 'XML 피드 í•ëª©ì— í‘œì‹œë˜ëŠ” ë‚´ìš©ì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?'; -$lang['rss_update'] = 'XML 피드 ì—…ë°ì´íЏ 주기 (ì´ˆ)'; -$lang['rss_show_summary'] = 'XML 피드 ì œëª©ì—서 요약 보여주기'; -$lang['rss_media'] = 'ì–´ë–¤ 규격으로 XML 피드를 ë°›ì•„ë³´ì‹œê² ìŠµë‹ˆê¹Œ?'; -$lang['updatecheck'] = 'ì—…ë°ì´íŠ¸ì™€ 보안 ë¬¸ì œë¥¼ ê²€ì‚¬í• ê¹Œìš”? ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ ë„ì¿ ìœ„í‚¤ë¥¼ update.dokuwiki.orgì— ì—°ê²°í•´ì•¼ 합니다.'; +$lang['rss_content'] = 'XML 피드 í•ëª©ì— ë³´ì—¬ì£¼ëŠ” ë‚´ìš©ì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?'; +$lang['rss_update'] = 'XML 피드 ì—…ë°ì´íЏ 간격 (ì´ˆ)'; +$lang['rss_show_summary'] = 'XML í”¼ë“œì˜ ì œëª©ì—서 요악 보여주기'; +$lang['rss_media'] = 'ì–´ë–¤ 규격으로 XML í”¼ë“œì— ë°”ë€œì„ ë‚˜ì—´í•´ì•¼ 합니까?'; +$lang['updatecheck'] = 'ë°ì´íŠ¸ì™€ 보안 ê²½ê³ ë¥¼ ê²€ì‚¬í• ê¹Œìš”? ë„ì¿ ìœ„í‚¤ëŠ” ì´ ê¸°ëŠ¥ì„ ìœ„í•´ update.dokuwiki.orgì— ì—°ê²°ì´ í•„ìš”í•©ë‹ˆë‹¤.'; $lang['userewrite'] = 'ë©‹ì§„ URL 사용'; -$lang['useslash'] = 'URLì—서 ì´ë¦„ 구분ìžë¡œ 슬래시 ë¬¸ìž ì‚¬ìš©'; -$lang['sepchar'] = '문서 ì´ë¦„ 단어 구분ìž'; +$lang['useslash'] = 'URLì—서 ì´ë¦„공간 구분ìžë¡œ 슬래시 사용'; +$lang['sepchar'] = '문서 ì´ë¦„ ë‚±ë§ êµ¬ë¶„ìž'; $lang['canonical'] = 'ì™„ì „í•œ canonical URL 사용'; -$lang['fnencode'] = 'ASCIIê°€ 아닌 íŒŒì¼ ì´ë¦„ì„ ì¸ì½”딩 하는 방법.'; -$lang['autoplural'] = 'ë§í¬ 연결시 복수 ì–‘ì‹ ê²€ì‚¬'; -$lang['compression'] = '첨부 íŒŒì¼ ì••ì¶• 방법 ì„ íƒ'; -$lang['gzip_output'] = 'xhml ë‚´ìš© gzip ì••ì¶• 사용'; -$lang['compress'] = '최ì í™”ëœ CSS, ìžë°”스í¬ë¦½íЏ ì¶œë ¥'; -$lang['cssdatauri'] = 'ê·¸ë¦¼ì´ ë Œë”ë§ë 최대 용량 í¬ê¸°ë¥¼ CSSì— ê·œì •í•´ì•¼ HTTP ìš”ì² í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ê°ì†Œì‹œí‚¬ 수 있습니다. ì´ ê¸°ìˆ ì€ IE 7 ì´í•˜ì—서는 ìž‘ë™í•˜ì§€ 않습니다! <code>400</code>ì—서 <code>600</code> ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. <code>0</code>로 ì§€ì •í• ê²½ìš° 비활성화 ë©ë‹ˆë‹¤.'; -$lang['send404'] = '존재하지 않는 페ì´ì§€ì— 대해 "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" ì‘답'; -$lang['broken_iua'] = 'ì„¤ì¹˜ëœ ì‹œìŠ¤í…œì—서 ignore_user_abort ê¸°ëŠ¥ì— ë¬¸ì œê°€ 있습니까? ë¬¸ì œê°€ 있다면 검색 색ì¸ì´ ì •ìƒì 으로 ë™ìž‘하지 않습니다. ì´ ê¸°ëŠ¥ì´ IIS+PHP/CGIì—서 ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì¡ŒìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">버그 852</a>를 ì°¸ê³ í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; -$lang['xsendfile'] = '웹 서버가 ì •ì 파ì¼ì„ ì œê³µí•˜ë„ë¡ X-Sendfile í—¤ë”를 ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; -$lang['renderer_xhtml'] = '주 (xhtml) 위키 ì¶œë ¥ 처리기'; -$lang['renderer__core'] = '%s (ë„ì¿ ìœ„í‚¤ ë‚´ë¶€)'; +$lang['fnencode'] = 'ASCIIê°€ 아닌 íŒŒì¼ ì´ë¦„ì„ ì¸ì½”딩하는 방법.'; +$lang['autoplural'] = 'ë§í¬ì—서 복수형 검사'; +$lang['compression'] = '첨부 파ì¼ì˜ ì••ì¶• 방법'; +$lang['gzip_output'] = 'xhtmlì— ëŒ€í•´ gzip ë‚´ìš© ì¸ì½”딩 사용'; +$lang['compress'] = 'CSS ë° ìžë°”스í¬ë¦½íŠ¸ë¥¼ 압축하여 ì¶œë ¥'; +$lang['cssdatauri'] = 'CSS 파ì¼ì—서 ê·¸ë¦¼ì´ ì°¸ì¡°ë˜ëŠ” 최대 ë°”ì´íЏ í¬ê¸°ë¥¼ 스타ì¼ì‹œíŠ¸ì— ê·œì •í•´ì•¼ HTTP ìš”ì² í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ì¤„ì¼ ìˆ˜ 있습니다. ì´ ê¸°ìˆ ì€ IE 7 ì´í•˜ì—서는 ìž‘ë™í•˜ì§€ 않습니다! <code>400</code>ì—서 <code>600</code> ë°”ì´íЏ ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. ë¹„í™œì„±í™”í•˜ë ¤ë©´ <code>0</code>으로 ì„¤ì •í•˜ì„¸ìš”.'; +$lang['send404'] = '존재하지 않는 ë¬¸ì„œì— "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" 보내기'; +$lang['broken_iua'] = '시스템ì—서 ignore_user_abort í•¨ìˆ˜ì— ë¬¸ì œê°€ 있습니까? ë¬¸ì œê°€ 있다면 검색 색ì¸ì´ ë™ìž‘하지 않는 ì›ì¸ì´ ë©ë‹ˆë‹¤. ì´ í•¨ìˆ˜ê°€ IIS+PHP/CGIì—서 ë¬¸ì œê°€ 있는 것으로 ì•Œë ¤ì ¸ 있습니다. ìžì„¸í•œ ì •ë³´ëŠ” <a href="http://bugs.dokuwiki.org/?do=details&task_id=852">버그 852</a>를 참조하시기 ë°”ëžë‹ˆë‹¤.'; +$lang['xsendfile'] = '웹 서버가 ì •ì 파ì¼ì„ ì œê³µí• ìˆ˜ 있ë„ë¡ X-Sendfile í—¤ë”를 ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.'; +$lang['renderer_xhtml'] = '주요 (xhtml) 위키 ì¶œë ¥ì— ì‚¬ìš©í• ë Œë”러'; +$lang['renderer__core'] = '%s (ë„ì¿ ìœ„í‚¤ 코어)'; $lang['renderer__plugin'] = '%s (플러그ì¸)'; -$lang['dnslookups'] = 'ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ ë„ì¿ ìœ„í‚¤ê°€ 문서를 편집하는 사용ìžì˜ 호스트 네임과 ì›ê²© IP 주소를 확ì¸í•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜, DNS를 ìš´ì˜í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›ì¹˜ 않으면 비활성화하세요'; +$lang['dnslookups'] = 'ë„ì¿ ìœ„í‚¤ê°€ 문서를 편집하는 사용ìžì˜ ì›ê²© IP ì£¼ì†Œì— ëŒ€í•œ 호스트 ì´ë¦„ì„ ì¡°íšŒí•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜ DNS 서버를 ìž‘ë™í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›í•˜ì§€ 않으면, ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”'; $lang['proxy____host'] = '프ë¡ì‹œ 서버 ì´ë¦„'; -$lang['proxy____port'] = '프ë¡ì‹œ 서버 í¬íЏ'; +$lang['proxy____port'] = '프ë¡ì‹œ í¬íЏ'; $lang['proxy____user'] = '프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„'; $lang['proxy____pass'] = '프ë¡ì‹œ 비밀번호'; -$lang['proxy____ssl'] = '프ë¡ì‹œ 연결시 SSL 사용'; -$lang['proxy____except'] = '프ë¡ì‹œ ì„¤ì •ì´ ë¬´ì‹œë URLì£¼ì†Œì˜ ì •ê·œ 표현ì‹'; -$lang['safemodehack'] = 'safemode hack기능 사용'; +$lang['proxy____ssl'] = '프ë¡ì‹œë¡œ 연결하는 ë° SSL 사용'; +$lang['proxy____except'] = '프ë¡ì‹œê°€ 건너뛰어야 í• ì¼ì¹˜í•˜ëŠ” URLì˜ ì •ê·œ 표현ì‹.'; +$lang['safemodehack'] = 'safemode hack 활성화'; $lang['ftp____host'] = 'safemode hackì˜ FTP 서버'; $lang['ftp____port'] = 'safemode hackì˜ FTP í¬íЏ'; $lang['ftp____user'] = 'safemode hackì˜ FTP ì‚¬ìš©ìž ì´ë¦„'; $lang['ftp____pass'] = 'safemode hackì˜ FTP 비밀번호'; $lang['ftp____root'] = 'safemode hackì˜ FTP 루트 ë””ë ‰í„°ë¦¬'; $lang['license_o_'] = 'ì„ íƒí•˜ì§€ 않ìŒ'; -$lang['typography_o_0'] = '사용 안함'; -$lang['typography_o_1'] = 'ì´ì¤‘ ì¸ìš©ë¶€í˜¸("")ë§Œ ì§€ì›'; -$lang['typography_o_2'] = 'ëª¨ë“ ê°€ëŠ¥í•œ ì¸ìš© 부호 (ë™ìž‘ 안ë ìˆ˜ë„ ìžˆìŒ)'; -$lang['userewrite_o_0'] = '사용 안함'; +$lang['typography_o_0'] = 'ì—†ìŒ'; +$lang['typography_o_1'] = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ ì œì™¸'; +$lang['typography_o_2'] = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ í¬í•¨ (í•ìƒ ë™ìž‘하지 ì•Šì„ ìˆ˜ë„ ìžˆìŒ)'; +$lang['userewrite_o_0'] = 'ì—†ìŒ'; $lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'ë„ì¿ ìœ„í‚¤ ë‚´ë¶€ 기능'; +$lang['userewrite_o_2'] = 'ë„ì¿ ìœ„í‚¤ ë‚´ë¶€'; $lang['deaccent_o_0'] = 'ë„기'; $lang['deaccent_o_1'] = '악센트 ì œê±°'; -$lang['deaccent_o_2'] = 'ë¼í‹´ë¬¸ìží™”'; -$lang['gdlib_o_0'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ 사용 불가'; +$lang['deaccent_o_2'] = '로마ìží™”'; +$lang['gdlib_o_0'] = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì‚¬ìš©í• ìˆ˜ ì—†ìŒ'; $lang['gdlib_o_1'] = 'ë²„ì „ 1.x'; -$lang['gdlib_o_2'] = 'ìžë™ ì¸ì‹'; +$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'] = 'Atom 0.3'; $lang['rss_type_o_atom1'] = 'Atom 1.0'; $lang['rss_content_o_abstract'] = '개요'; -$lang['rss_content_o_diff'] = '통합 ì°¨ì´ ëª©ë¡'; -$lang['rss_content_o_htmldiff'] = 'HTML ì°¨ì´ ëª©ë¡ í˜•ì‹'; -$lang['rss_content_o_html'] = '최대 HTML 페ì´ì§€ ë‚´ìš©'; +$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['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['xsendfile_o_1'] = '비공개 lighttpd í—¤ë” (1.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['xsendfile_o_3'] = 'ì‚¬ìœ Nginx X-Accel-Redirect í—¤ë”'; $lang['showuseras_o_loginname'] = 'ë¡œê·¸ì¸ ì´ë¦„'; -$lang['showuseras_o_username'] = '사용ìžì˜ ì „ì²´ ì´ë¦„'; +$lang['showuseras_o_username'] = '사용ìžì˜ 실명'; +$lang['showuseras_o_username_link'] = 'ì¸í„°ìœ„키 ì‚¬ìš©ìž ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ 실명'; $lang['showuseras_o_email'] = '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ (ë©”ì¼ ì£¼ì†Œ ì„¤ì •ì— ë”°ë¼ ì•ˆë³´ì¼ ìˆ˜ 있ìŒ)'; -$lang['showuseras_o_email_link'] = 'mailto: link로 표현ë ì‚¬ìš©ìž ì´ë©”ì¼ ì£¼ì†Œ'; -$lang['useheading_o_0'] = '아니오'; +$lang['showuseras_o_email_link'] = 'mailto: ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ'; +$lang['useheading_o_0'] = 'ì „í˜€ ì—†ìŒ'; $lang['useheading_o_navigation'] = '둘러보기ì—ë§Œ'; $lang['useheading_o_content'] = '위키 ë‚´ìš©ì—ë§Œ'; $lang['useheading_o_1'] = 'í•ìƒ'; -$lang['readdircache'] = 'readdir ìºì‹œë¥¼ 위한 최대 시간 (ì´ˆ)'; +$lang['readdircache'] = 'readdir ìºì‹œì˜ 최대 시간 (ì´ˆ)'; diff --git a/lib/plugins/config/lang/la/intro.txt b/lib/plugins/config/lang/la/intro.txt index 573d34ac1e42943f3c06ca3ed8b0e4da6dd2914f..51d8c3d711f7034a64cda573ec3504d95dd84a03 100644 --- a/lib/plugins/config/lang/la/intro.txt +++ b/lib/plugins/config/lang/la/intro.txt @@ -4,4 +4,4 @@ In hac pagina administratoris optiones mutare et inspicere potes. Auxilia in pag Optiones ostensae rubro colore tutae et non nunc mutabiles sunt. Optiones ostensae caeruleo colore praecipuae sunt et optiones ostensae in area alba singulares huic uici sunt. Et caerulae et albae optiones mutabiles sunt. -Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt. \ No newline at end of file +Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt. diff --git a/lib/plugins/config/lang/mr/intro.txt b/lib/plugins/config/lang/mr/intro.txt index 12ada73a146c76f7fea7725d39df7bb1d7d73d6e..e068295e5aab88efbdcc14c2c15da54ed721271a 100644 --- a/lib/plugins/config/lang/mr/intro.txt +++ b/lib/plugins/config/lang/mr/intro.txt @@ -7,4 +7,4 @@ निळà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤à¥‚मीमधे दाखवलेले सेटिंग आपोआप सेट होणारà¥à¤¯à¤¾ किमती आहेत आणि पांढरà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤à¥‚मीमधे दाखवलेले सेटिंग या इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨à¤¸à¤¾à¤ ी ख़ास सेट केलेले आहेत. निळे आणि पांढरे दोनà¥à¤¹à¥€ सेटिंग बदलता येतील. -हà¥à¤¯à¤¾ पानावरून बाहर जाणà¥à¤¯à¤¾à¤†à¤§à¥€ "Save" चे बटन कà¥à¤²à¤¿à¤• करायला विसरू नका नाहीतर सरà¥à¤µ बदल नाहीसे होतील. \ No newline at end of file +हà¥à¤¯à¤¾ पानावरून बाहर जाणà¥à¤¯à¤¾à¤†à¤§à¥€ "Save" चे बटन कà¥à¤²à¤¿à¤• करायला विसरू नका नाहीतर सरà¥à¤µ बदल नाहीसे होतील. diff --git a/lib/plugins/config/lang/nl/intro.txt b/lib/plugins/config/lang/nl/intro.txt index 3814b70bdf139c26558b1a2fe6b440beea9ebe53..4d72b695da1922ebde4292e58b5c3d79e63fe2ef 100644 --- a/lib/plugins/config/lang/nl/intro.txt +++ b/lib/plugins/config/lang/nl/intro.txt @@ -5,5 +5,3 @@ Gebruik deze pagina om de instellingen van je DokuWiki te bekijken en/of te wijz Instellingen met een rode achtergond kunnen niet worden gewijzigd met deze plugin. Instellingen met een blauwe achtergrond hebben de default waarde, en instellingen met een witte achtergrond zijn lokaal gewijzigd voor deze specifieke installatie. Zowel blauwe als witte instellingen kunnen worden gewijzigd. Vergeet niet op **Opslaan** te drukken alvorens de pagina te verlaten, anders gaan je wijzigingen verloren. - - diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php index 14c8f9b1e311f6c167b166466031c4ab1faaa9f1..a9791b7871f60689230c11ed1f25d4f455450f72 100644 --- a/lib/plugins/config/lang/nl/lang.php +++ b/lib/plugins/config/lang/nl/lang.php @@ -1,8 +1,8 @@ <?php + /** - * dutch language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Pieter van der Meulen <pieter@vdmeulen.net> * @author Wouter Schoot <wouter@schoot.org> * @author John de Graaff <john@de-graaff.net> @@ -16,6 +16,8 @@ * @author Jeroen * @author Ricardo Guijt <ricardoguijt@gmail.com> * @author Gerrit <klapinklapin@gmail.com> + * @author Hugo Smet <hugo.smet@scarlet.be> + * @author hugo smet <hugo.smet@scarlet.be> */ $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.'; @@ -28,7 +30,7 @@ $lang['security'] = 'Beveiligingswaarschuwing: Het wijzigen van dez $lang['_configuration_manager'] = 'Configuratiemanager'; $lang['_header_dokuwiki'] = 'DokuWiki-instellingen'; $lang['_header_plugin'] = 'Plugin-instellingen'; -$lang['_header_template'] = 'Sjabloon-instellingen'; +$lang['_header_template'] = 'Template-instellingen'; $lang['_header_undefined'] = 'Ongedefinieerde instellingen'; $lang['_basic'] = 'Basisinstellingen'; $lang['_display'] = 'Beeldinstellingen'; @@ -47,9 +49,9 @@ $lang['_msg_setting_no_default'] = 'Geen standaard waarde.'; $lang['title'] = 'Titel van de wiki'; $lang['start'] = 'Naam startpagina'; $lang['lang'] = 'Taal'; -$lang['template'] = 'Sjabloon ofwel het design van de wiki.'; -$lang['tagline'] = 'Ondertitel (als het sjabloon dat ondersteunt)'; -$lang['sidebar'] = 'Zijbalk-paginanaam (als het sjabloon dat ondersteunt), leeg veld betekent geen zijbalk'; +$lang['template'] = 'Template ofwel het design van de wiki.'; +$lang['tagline'] = 'Ondertitel (als het template dat ondersteunt)'; +$lang['sidebar'] = 'Zijbalk-paginanaam (als het template dat ondersteunt), leeg veld betekent geen zijbalk'; $lang['license'] = 'Onder welke licentie zou je tekst moeten worden gepubliceerd?'; $lang['savedir'] = 'Directory om data op te slaan'; $lang['basedir'] = 'Basisdirectory'; @@ -89,7 +91,9 @@ $lang['disableactions'] = 'Aangevinkte DokuWiki-akties uitschakelen'; $lang['disableactions_check'] = 'Controleer'; $lang['disableactions_subscription'] = 'Inschrijven/opzeggen'; $lang['disableactions_wikicode'] = 'Bron bekijken/exporteer rauw'; +$lang['disableactions_profile_delete'] = 'Schrap eigen account'; $lang['disableactions_other'] = 'Andere akties (gescheiden door komma\'s)'; +$lang['disableactions_rss'] = 'XML Syndication (RSS)'; $lang['auth_security_timeout'] = 'Authenticatiebeveiligings-timeout (seconden)'; $lang['securecookie'] = 'Moeten cookies die via HTTPS gezet zijn alleen via HTTPS verzonden worden door de browser? Zet deze optie uit als alleen het inloggen op de wiki beveiligd is, maar het gebruik verder niet.'; $lang['remote'] = 'Activeer het remote API-systeem. Hiermee kunnen andere applicaties de wiki benaderen via XML-RPC of andere mechanismen.'; @@ -194,6 +198,7 @@ $lang['xsendfile_o_2'] = 'Standaard X-Sendfile header'; $lang['xsendfile_o_3'] = 'Merkgebonden Nginx X-Accel-Redirect header'; $lang['showuseras_o_loginname'] = 'Loginnaam'; $lang['showuseras_o_username'] = 'Volledige naam'; +$lang['showuseras_o_username_link'] = 'Gebruikers volledige naam als interwiki gebruikers link'; $lang['showuseras_o_email'] = 'E-mailadres (onherkenbaar gemaakt volgens mailguard-instelling)'; $lang['showuseras_o_email_link'] = 'E-mailadres als mailto: link'; $lang['useheading_o_0'] = 'Nooit'; diff --git a/lib/plugins/config/lang/pl/intro.txt b/lib/plugins/config/lang/pl/intro.txt index 72c0e1c13bb84a0842454aba321bc28c819c034c..9d85c7a7ccd99066502010d052f868926d4b7540 100644 --- a/lib/plugins/config/lang/pl/intro.txt +++ b/lib/plugins/config/lang/pl/intro.txt @@ -5,5 +5,3 @@ Na tej stronie można zmienić ustawienia tej instalacji DokuWiki. W celu uzyska Ustawienia w kolorze jasnoczerwonym sÄ… chronione i nie mogÄ… być zmienionÄ… z użyciem tej wtyczki. Ustawienia w kolorze niebieskim majÄ… domyÅ›lne wartoÅ›ci. Ustawienia w kolorze biaÅ‚ym sÄ… specyficzne dla tej instalacji. Ustawienia w kolorach niebieskim i biaÅ‚ym mogÄ… być zmienione. W celu zapisania nowej konfiguracji naciÅ›nij **zapisz** przed opuszczeniem tej strony. - - diff --git a/lib/plugins/config/lang/pt-br/intro.txt b/lib/plugins/config/lang/pt-br/intro.txt index 850ba25cb7e4363f58e7e8a1cdb2634b2db23d58..db31de4cf2e72c685c2b57f6c5a68c205e90ec1f 100644 --- a/lib/plugins/config/lang/pt-br/intro.txt +++ b/lib/plugins/config/lang/pt-br/intro.txt @@ -4,4 +4,4 @@ Use essa página para controlar as configurações da instalação do seu DokuWi Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com esse plug-in. As definições com um fundo azul são o padrão e as com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul quanto as em branco podem ser alteradas. -Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas. \ No newline at end of file +Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas. diff --git a/lib/plugins/config/lang/pt-br/lang.php b/lib/plugins/config/lang/pt-br/lang.php index 795ee81c0c9c364de9473aedbaaa897b458b8b43..0d13991ae99b4dd9963193d9247ea06565af51aa 100644 --- a/lib/plugins/config/lang/pt-br/lang.php +++ b/lib/plugins/config/lang/pt-br/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Portuguese language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> * @author Felipe Castro <fefcas@gmail.com> * @author Lucien Raven <lucienraven@yahoo.com.br> @@ -17,6 +18,8 @@ * @author Isaias Masiero Filho <masiero@masiero.org> * @author Balaco Baco <balacobaco@imap.cc> * @author Victor Westmann <victor.westmann@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> + * @author Viliam Dias <viliamjr@gmail.com> */ $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.'; @@ -92,7 +95,9 @@ $lang['disableactions'] = 'Desabilitar as ações do DokuWiki'; $lang['disableactions_check'] = 'Verificação'; $lang['disableactions_subscription'] = 'Monitoramento'; $lang['disableactions_wikicode'] = 'Ver a fonte/Exportar sem processamento'; +$lang['disableactions_profile_delete'] = 'Excluir a própria conta'; $lang['disableactions_other'] = 'Outras ações (separadas por vÃrgula)'; +$lang['disableactions_rss'] = 'Sindicância XML (RSS)'; $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['remote'] = 'Habilitar o sistema de API remota. Isso permite que outras aplicações acessem o wiki via XML-RPC ou outros mecanismos.'; @@ -197,6 +202,7 @@ $lang['xsendfile_o_2'] = 'cabeçalho "X-Sendfile" padrão'; $lang['xsendfile_o_3'] = 'cabeçalho proprietário "Nginx X-Accel-Redirect"'; $lang['showuseras_o_loginname'] = 'nome de usuário'; $lang['showuseras_o_username'] = 'nome completo do usuário'; +$lang['showuseras_o_username_link'] = 'Nome completo do usuário como um link de usuário interwiki'; $lang['showuseras_o_email'] = 'endereço de e-mail do usuário (obscurecido segundo a definição anterior)'; $lang['showuseras_o_email_link'] = 'endereço de e-mail de usuário como um link "mailto:"'; $lang['useheading_o_0'] = 'nunca'; diff --git a/lib/plugins/config/lang/pt/intro.txt b/lib/plugins/config/lang/pt/intro.txt index 2010dadafa50eec22a952a6a03b5b8c5cbb7456c..06a68c4750c866f016b967dfdeb53377701538d8 100644 --- a/lib/plugins/config/lang/pt/intro.txt +++ b/lib/plugins/config/lang/pt/intro.txt @@ -4,4 +4,4 @@ Use esta página para controlar as definições da instalação do seu DokuWiki. Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com este plugin. Definições com um fundo azul são padrão e definições com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul como em branco podem ser alteradas. -Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas. \ No newline at end of file +Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas. diff --git a/lib/plugins/config/lang/pt/lang.php b/lib/plugins/config/lang/pt/lang.php index 7a9111c62b9d933ffefa7dde9a11b1f29d150538..509ccc6a78cd9073541ed88486879309f30a027d 100644 --- a/lib/plugins/config/lang/pt/lang.php +++ b/lib/plugins/config/lang/pt/lang.php @@ -1,12 +1,15 @@ <?php + /** - * Portugueselanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com> * @author Enrico Nicoletto <liverig@gmail.com> * @author Fil <fil@meteopt.com> * @author André Neves <drakferion@gmail.com> * @author José Campos zecarlosdecampos@gmail.com + * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Configuração'; $lang['error'] = 'Parâmetros de Configuração não actualizados devido a valores inválidos. Por favor, reveja as modificações que pretende efectuar antes de re-submetê-las.<br /> Os valores incorrectos serão mostrados dentro de uma "moldura" vermelha.'; @@ -29,30 +32,33 @@ $lang['_anti_spam'] = 'Configuração Anti-Spam'; $lang['_editing'] = 'Configuração de Edição'; $lang['_links'] = 'Configuração de Ligações'; $lang['_media'] = 'Configuração de Media'; +$lang['_notifications'] = 'Notificação'; +$lang['_syndication'] = 'Sindicação (RSS)'; $lang['_advanced'] = 'Configurações Avançadas'; $lang['_network'] = 'Configuração de Rede'; $lang['_msg_setting_undefined'] = 'Nenhum metadado configurado.'; $lang['_msg_setting_no_class'] = 'Nenhuma classe definida.'; $lang['_msg_setting_no_default'] = 'Sem valor por omissão.'; -$lang['fmode'] = 'Modo de criação de ficheiros.'; -$lang['dmode'] = 'Modo de criação de pastas.'; -$lang['lang'] = 'Idioma'; -$lang['basedir'] = 'Pasta Base'; -$lang['baseurl'] = 'URL Base'; -$lang['savedir'] = 'Pasta para guardar dados'; -$lang['start'] = 'Nome da Página Inicial'; $lang['title'] = 'TÃtulo deste Wiki'; +$lang['start'] = 'Nome da Página Inicial'; +$lang['lang'] = 'Idioma'; $lang['template'] = 'Template'; $lang['license'] = 'Sob que licença o seu conteúdo deverá ser disponibilizado?'; -$lang['fullpath'] = 'Revelar caminho completo no rodapé'; +$lang['savedir'] = 'Pasta para guardar dados'; +$lang['basedir'] = 'Pasta Base'; +$lang['baseurl'] = 'URL Base'; +$lang['dmode'] = 'Modo de criação de pastas.'; +$lang['fmode'] = 'Modo de criação de ficheiros.'; +$lang['allowdebug'] = 'Permitir depuração <b>desabilite se não for necessário!</b>'; $lang['recent'] = 'Alterações recentes'; +$lang['recent_days'] = 'Quantas mudanças recentes devem ser mantidas? (dias)'; $lang['breadcrumbs'] = 'Número máximo de breadcrumbs'; $lang['youarehere'] = 'Breadcrumbs hierárquicas'; +$lang['fullpath'] = 'Revelar caminho completo no rodapé'; $lang['typography'] = 'Executar substituições tipográficas'; -$lang['htmlok'] = 'Permitir embeber HTML'; -$lang['phpok'] = 'Permitir embeber PHP'; $lang['dformat'] = 'Formato de Data (ver função PHP\'s <a href="http://www.php.net/strftime">strftime</a>)'; $lang['signature'] = 'Assinatura'; +$lang['showuseras'] = 'O que exibir quando mostrar o utilizador que editou a página pela última vez'; $lang['toptoclevel'] = 'NÃvel de topo para a tabela de conteúdo'; $lang['tocminheads'] = 'Quantidade mÃnima de cabeçalhos para a construção da tabela de conteúdos.'; $lang['maxtoclevel'] = 'Máximo nÃvel para a tabela de conteúdo'; @@ -60,14 +66,8 @@ $lang['maxseclevel'] = 'Máximo nÃvel para editar secção'; $lang['camelcase'] = 'Usar CamelCase'; $lang['deaccent'] = 'Nomes das páginas sem acentos'; $lang['useheading'] = 'Usar o primeiro cabeçalho para o nome da página'; -$lang['refcheck'] = 'Verificação de referência da media'; -$lang['allowdebug'] = 'Permitir depuração <b>desabilite se não for necessário!</b>'; -$lang['usewordblock'] = 'Bloquear spam baseado em lista de palavras (wordlist)'; -$lang['indexdelay'] = 'Tempo de espera antes da indexação (seg)'; -$lang['relnofollow'] = 'Usar rel="nofollow" em links externos'; -$lang['mailguard'] = 'Obscurecer endereços de email'; -$lang['iexssprotect'] = 'Verificar os arquivos enviados contra possÃveis códigos maliciosos em HTML ou JavaScript'; -$lang['showuseras'] = 'O que exibir quando mostrar o utilizador que editou a página pela última vez'; +$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.'; +$lang['hidepages'] = 'Esconder páginas correspondentes (expressões regulares)'; $lang['useacl'] = 'Usar ACL - Listas de Controlo de Acessos'; $lang['autopasswd'] = 'Auto-gerar senhas'; $lang['authtype'] = 'Método de autenticação'; @@ -76,58 +76,66 @@ $lang['defaultgroup'] = 'Grupo por omissão'; $lang['superuser'] = 'Superutilizador - um grupo, utilizador ou uma lista separada por vÃrgulas usuário1,@grupo1,usuário2 que tem acesso completo a todas as páginas e funções, independente das definições da ACL'; $lang['manager'] = 'Gestor - um grupo, utilizador ou uma lista separada por vÃrgulas usuário1,@grupo1,usuário2 que tem acesso a certas funções de gestão'; $lang['profileconfirm'] = 'Confirmar mudanças no perfil com a senha'; +$lang['rememberme'] = 'Permitir cookies de autenticação permanentes (Memorizar?)'; $lang['disableactions'] = 'Desactivar acções DokuWiki'; $lang['disableactions_check'] = 'Checar'; $lang['disableactions_subscription'] = 'Subscrever/Não Subscrver'; $lang['disableactions_wikicode'] = 'Ver fonte/Exportar em bruto'; +$lang['disableactions_profile_delete'] = 'Deletar Sua Conta.'; $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.'; +$lang['disableactions_rss'] = 'Sindicação XML (RSS)'; $lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)'; $lang['securecookie'] = 'Os cookies definidos via HTTPS deverão 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['usewordblock'] = 'Bloquear spam baseado em lista de palavras (wordlist)'; +$lang['relnofollow'] = 'Usar rel="nofollow" em links externos'; +$lang['indexdelay'] = 'Tempo de espera antes da indexação (seg)'; +$lang['mailguard'] = 'Obscurecer endereços de email'; +$lang['iexssprotect'] = 'Verificar os arquivos enviados contra possÃveis códigos maliciosos em HTML ou JavaScript'; +$lang['usedraft'] = 'Guardar o rascunho automaticamente durante a edição'; +$lang['htmlok'] = 'Permitir embeber HTML'; +$lang['phpok'] = 'Permitir embeber PHP'; +$lang['locktime'] = 'Idade máxima para locks (seg.)'; +$lang['cachetime'] = 'Idade máxima para cache (seg.)'; +$lang['target____wiki'] = 'Parâmetro "target" para links internos'; +$lang['target____interwiki'] = 'Parâmetro "target" para links entre wikis'; +$lang['target____extern'] = 'Parâmetro "target" para links externos'; +$lang['target____media'] = 'Parâmetro "target" para links de media'; +$lang['target____windows'] = 'Parâmetro "target" para links do Windows'; +$lang['mediarevisions'] = 'Ativar Mediarevisions?'; +$lang['refcheck'] = 'Verificação de referência da media'; +$lang['gdlib'] = 'Versão GD Lib'; +$lang['im_convert'] = 'Caminho para a ferramenta "convert" do ImageMagick'; +$lang['jpg_quality'] = 'Compressão/Qualidade JPG (0-100)'; +$lang['fetchsize'] = 'Tamanho máximo (bytes) que o fetch.php pode transferir do exterior'; +$lang['subscribers'] = 'Habilitar o suporte a subscrição de páginas '; +$lang['subscribe_time'] = 'Tempo após o qual as listas de subscrição e "digests" são enviados (seg.); Isto deve ser inferior ao tempo especificado em recent_days.'; +$lang['notify'] = 'Enviar notificações de mudanças para este endereço de email'; +$lang['registernotify'] = 'Enviar informações de utilizadores registados para este endereço de email'; +$lang['mailfrom'] = 'Endereço de email a ser utilizado para mensagens automáticas'; +$lang['mailprefix'] = 'Prefixo de email a ser utilizado para mensagens automáticas'; +$lang['sitemap'] = 'Gerar Sitemap Google (dias)'; +$lang['rss_type'] = 'Tipo de feed XML'; +$lang['rss_linkto'] = 'Links de feed XML ara'; +$lang['rss_content'] = 'O que deve ser exibido nos itens do alimentador XML?'; +$lang['rss_update'] = 'Intervalo de actualização do alimentador XML (seg)'; +$lang['rss_show_summary'] = 'Resumo de exibição do alimentador XML no tÃtulo'; $lang['updatecheck'] = 'Verificar por actualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efectuar esta verificação.'; $lang['userewrite'] = 'Usar URLs SEO'; $lang['useslash'] = 'Usar a barra como separador de espaços de nomes nas URLs'; -$lang['usedraft'] = 'Guardar 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 codificar nomes de ficheiro não-ASCII.'; $lang['autoplural'] = 'Verificar formas plurais nos links'; $lang['compression'] = 'Método de compressão para histórico'; -$lang['cachetime'] = 'Idade máxima para cache (seg.)'; -$lang['locktime'] = 'Idade máxima para locks (seg.)'; -$lang['fetchsize'] = 'Tamanho máximo (bytes) que o fetch.php pode transferir do exterior'; -$lang['notify'] = 'Enviar notificações de mudanças para este endereço de email'; -$lang['registernotify'] = 'Enviar informações de utilizadores registados para este endereço de email'; -$lang['mailfrom'] = 'Endereço de email a ser utilizado para mensagens automáticas'; -$lang['mailprefix'] = 'Prefixo de email a ser utilizado para mensagens automáticas'; $lang['gzip_output'] = 'Usar "Content-Encoding" do gzip para o código xhtml'; -$lang['gdlib'] = 'Versão GD Lib'; -$lang['im_convert'] = 'Caminho para a ferramenta "convert" do ImageMagick'; -$lang['jpg_quality'] = 'Compressão/Qualidade JPG (0-100)'; -$lang['subscribers'] = 'Habilitar o suporte a subscrição de páginas '; -$lang['subscribe_time'] = 'Tempo após o qual as listas de subscrição e "digests" são enviados (seg.); Isto deve ser inferior ao tempo especificado em recent_days.'; $lang['compress'] = 'Compactar as saÃdas de CSS e JavaScript'; $lang['cssdatauri'] = 'Tamanho em bytes até ao qual as imagens referenciadas em ficheiros CSS devem ser embutidas diretamente no CSS para reduzir a carga de pedidos HTTP extra. Esta técnica não funciona em IE 7 e abaixo! <code>400</code> a <code>600</code> bytes é um bom valor. Escolher <code>0</code> para desativar.'; -$lang['hidepages'] = 'Esconder páginas correspondentes (expressões regulares)'; $lang['send404'] = 'Enviar "HTTP 404/Página não encontrada" para páginas não existentes'; -$lang['sitemap'] = 'Gerar Sitemap Google (dias)'; $lang['broken_iua'] = 'A função "ignore_user_abort" não está a funcionar no seu sistema? Isso pode causar um Ãndice de busca defeituoso. Sistemas com IIS+PHP/CGI são conhecidos por possuÃrem este problema. Veja o <a href="http://bugs.splitbrain.org/?do=details&task_id=852">bug 852</a> para mais informações.'; $lang['xsendfile'] = 'Usar o cabeçalho "X-Sendfile" para permitir o servidor de internet encaminhar ficheiros estáticos? O seu servidor de internet precisa ter suporte a isso.'; $lang['renderer_xhtml'] = 'Renderizador a ser utilizado para a saÃda principal do wiki (xhtml)'; $lang['renderer__core'] = '%s (núcleo dokuwiki)'; $lang['renderer__plugin'] = '%s (plugin)'; -$lang['rememberme'] = 'Permitir cookies de autenticação permanentes (Memorizar?)'; -$lang['rss_type'] = 'Tipo de feed XML'; -$lang['rss_linkto'] = 'Links de feed XML ara'; -$lang['rss_content'] = 'O que deve ser exibido nos itens do alimentador XML?'; -$lang['rss_update'] = 'Intervalo de actualização do alimentador XML (seg)'; -$lang['recent_days'] = 'Quantas mudanças recentes devem ser mantidas? (dias)'; -$lang['rss_show_summary'] = 'Resumo de exibição do alimentador XML no tÃtulo'; -$lang['target____wiki'] = 'Parâmetro "target" para links internos'; -$lang['target____interwiki'] = 'Parâmetro "target" para links entre wikis'; -$lang['target____extern'] = 'Parâmetro "target" para links externos'; -$lang['target____media'] = 'Parâmetro "target" para links de media'; -$lang['target____windows'] = 'Parâmetro "target" para links do Windows'; $lang['proxy____host'] = 'Nome do servidor proxy'; $lang['proxy____port'] = 'Porta de Proxy'; $lang['proxy____user'] = 'Nome de utilizador Proxy'; diff --git a/lib/plugins/config/lang/ro/lang.php b/lib/plugins/config/lang/ro/lang.php index e95c551e73d4f039c94f02aebd2786da740597b5..30f543fd1147a59bae6200c4f4db88ba0dd55bd4 100644 --- a/lib/plugins/config/lang/ro/lang.php +++ b/lib/plugins/config/lang/ro/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Romanian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sergiu Baltariu <s_baltariu@yahoo.com> * @author s_baltariu@yahoo.com * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro> @@ -37,28 +38,29 @@ $lang['_network'] = 'Setări ReÅ£ea'; $lang['_msg_setting_undefined'] = 'Nesetat metadata'; $lang['_msg_setting_no_class'] = 'Nesetat class'; $lang['_msg_setting_no_default'] = 'Nici o valoare implicită'; -$lang['fmode'] = 'Mod creare fiÅŸier'; -$lang['dmode'] = 'Mod creare director'; -$lang['lang'] = 'Limbă'; -$lang['basedir'] = 'Director bază'; -$lang['baseurl'] = 'URL bază '; -$lang['savedir'] = 'Director pentru salvarea datelor'; -$lang['cookiedir'] = 'Cale Cookie. LăsaÈ›i gol pentru a utiliza baseurl.'; -$lang['start'] = 'Numele paginii de start'; $lang['title'] = 'Titlul wiki'; +$lang['start'] = 'Numele paginii de start'; +$lang['lang'] = 'Limbă'; $lang['template'] = 'Åžablon'; $lang['tagline'] = 'Slogan (dacă templateul suportă opÈ›iunea)'; $lang['sidebar'] = 'Numele paginii barei laterale (dacă templateul suportă opÈ›iunea), câmpul lăsat gol dezactivează bara laterală'; $lang['license'] = 'Sub ce licenţă va fi publicat conÅ£inutul?'; -$lang['fullpath'] = 'Arată calea completă a paginii în subsol'; +$lang['savedir'] = 'Director pentru salvarea datelor'; +$lang['basedir'] = 'Director bază'; +$lang['baseurl'] = 'URL bază '; +$lang['cookiedir'] = 'Cale Cookie. LăsaÈ›i gol pentru a utiliza baseurl.'; +$lang['dmode'] = 'Mod creare director'; +$lang['fmode'] = 'Mod creare fiÅŸier'; +$lang['allowdebug'] = 'Permite depanarea <b>dezactivaÅ£i dacă cu e necesar!</b>'; $lang['recent'] = 'Modificări recente'; +$lang['recent_days'] = 'Câte modificări recente să se păstreze?'; $lang['breadcrumbs'] = 'Numărul de "urme" lăsate'; $lang['youarehere'] = 'Structura ierarhică a "urmelor" lăsate'; +$lang['fullpath'] = 'Arată calea completă a paginii în subsol'; $lang['typography'] = 'Fă înlocuiri topografice'; -$lang['htmlok'] = 'Permite intercalare cod HTML'; -$lang['phpok'] = 'Permite intercalare cod PHP'; $lang['dformat'] = 'Format dată (vezi funcÅ£ia PHP <a href="http://www.php.net/strftime">strftime</a>)'; $lang['signature'] = 'Semnătura'; +$lang['showuseras'] = 'Ce se afiÅŸează la indicarea utilizatorului care a editat ultimul o pagină'; $lang['toptoclevel'] = 'Primul nivel pentru cuprins'; $lang['tocminheads'] = 'Numărul minim de titluri ce determină dacă se alcătuieÅŸte Tabelul de Cuprins (TOC)'; $lang['maxtoclevel'] = 'Nivelul maxim pentru cuprins'; @@ -66,15 +68,8 @@ $lang['maxseclevel'] = 'Nivelul maxim de editare al secÅ£iunii'; $lang['camelcase'] = 'FoloseÅŸte CamelCase pentru legături'; $lang['deaccent'] = 'numedepagină curate'; $lang['useheading'] = 'FoloseÅŸte primul titlu pentru numele paginii'; -$lang['refcheck'] = 'Verificare referinţă media'; -$lang['allowdebug'] = 'Permite depanarea <b>dezactivaÅ£i dacă cu e necesar!</b>'; -$lang['mediarevisions'] = 'Activare Revizii Media?'; -$lang['usewordblock'] = 'Blochează spam-ul pe baza listei de cuvinte'; -$lang['indexdelay'] = 'Timpul de întârziere înainte de indexare (sec)'; -$lang['relnofollow'] = 'FolosiÅ£i rel="nofollow" pentru legăturile externe'; -$lang['mailguard'] = 'Adrese de email acoperite'; -$lang['iexssprotect'] = 'Verifică fiÅŸierele încărcate pentru posibil cod periculos JavaScript sau HTML'; -$lang['showuseras'] = 'Ce se afiÅŸează la indicarea utilizatorului care a editat ultimul o pagină'; +$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'; +$lang['hidepages'] = 'Ascunde paginile pereche (expresii regulate)'; $lang['useacl'] = 'Utilizează liste de control al accesului'; $lang['autopasswd'] = 'Parole autogenerate'; $lang['authtype'] = 'Autentificare backend'; @@ -83,61 +78,67 @@ $lang['defaultgroup'] = 'Grup implicit'; $lang['superuser'] = 'Superuser - un grup sau un utilizator cu acces complet la toate paginile ÅŸi funcÅ£iile indiferent de setările ACL'; $lang['manager'] = 'Manager - un grup sau un utilizator cu acces la anumite funcÅ£ii de management'; $lang['profileconfirm'] = 'Confirmă schimbarea profilului cu parola'; +$lang['rememberme'] = 'PermiteÅ£i cookies permanente la login (Å£ine-mă minte)'; $lang['disableactions'] = 'Dezactivează acÅ£iunile DokuWiki'; $lang['disableactions_check'] = 'Verifică'; $lang['disableactions_subscription'] = 'Subscrie/Anulează subscrierea'; $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'; $lang['auth_security_timeout'] = 'Timpul de expirare al Autentificării Securizate (secunde)'; $lang['securecookie'] = 'Cookies-urile setate via HTTPS să fie trimise doar via HTTPS de către browser? DezactivaÅ£i această opÅ£iune numai când login-ul wiki-ului este securizat cu SSL dar navigarea wiki-ului se realizează nesecurizat.'; $lang['remote'] = 'Activează sistemul remote API. Acesta permite altor aplicaÈ›ii să acceseze wiki-ul via XML-RPC sau alte mecanisme.'; $lang['remoteuser'] = 'RestricÈ›ionează accesul sistemului remote API la grupurile sau utilizatorii următori (separaÈ›i prin virgulă). LăsaÈ›i câmpul gol pentru a da acces către toÈ›i.'; +$lang['usewordblock'] = 'Blochează spam-ul pe baza listei de cuvinte'; +$lang['relnofollow'] = 'FolosiÅ£i rel="nofollow" pentru legăturile externe'; +$lang['indexdelay'] = 'Timpul de întârziere înainte de indexare (sec)'; +$lang['mailguard'] = 'Adrese de email acoperite'; +$lang['iexssprotect'] = 'Verifică fiÅŸierele încărcate pentru posibil cod periculos JavaScript sau HTML'; +$lang['usedraft'] = 'Salvează automat o schiţă în timpul editării'; +$lang['htmlok'] = 'Permite intercalare cod HTML'; +$lang['phpok'] = 'Permite intercalare cod PHP'; +$lang['locktime'] = 'Durata maximă pentru blocarea fiÅŸierelor (secunde)'; +$lang['cachetime'] = 'Durata maximă pentru cache (secunde)'; +$lang['target____wiki'] = 'Fereastra Å£intă pentru legăturile interne'; +$lang['target____interwiki'] = 'Fereastra Å£intă pentru legăturile interwiki'; +$lang['target____extern'] = 'Fereastra Å£intă pentru legăturile externe'; +$lang['target____media'] = 'Fereastra Å£intă pentru legăturile media'; +$lang['target____windows'] = 'Fereastra Å£intă pentru legăturile windows'; +$lang['mediarevisions'] = 'Activare Revizii Media?'; +$lang['refcheck'] = 'Verificare referinţă media'; +$lang['gdlib'] = 'Versiunea GD Lib'; +$lang['im_convert'] = 'Calea către instrumentul de conversie ImageMagick'; +$lang['jpg_quality'] = 'Calitatea compresiei JPG (0-100)'; +$lang['fetchsize'] = 'Dimensiunea maximă (byte) pe care fetch.php poate să descarce din exterior'; +$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['notify'] = 'Trimite notificări privind modificările pe această adresă de email'; +$lang['registernotify'] = 'Trimite informare noilor utilizatori înregistraÅ£i pe această adresă de email'; +$lang['mailfrom'] = 'Adresa de email utilizată pentru mailuri automate'; +$lang['mailprefix'] = 'Prefix subiect e-mail de folosit pentru mail-uri automate'; +$lang['sitemap'] = 'Generează Google sitemap (zile)'; +$lang['rss_type'] = 'Tip flux XML'; +$lang['rss_linkto'] = 'Fluxul XML se leagă la'; +$lang['rss_content'] = 'Ce să afiÅŸez în obiectele fluxurilor XML'; +$lang['rss_update'] = 'Intervalul de actualizare a fluxului XML (sec)'; +$lang['rss_show_summary'] = 'Fluxul XML arată rezumat în titlu'; +$lang['rss_media'] = 'Ce fel de modificări ar trebui afiÈ™ate în fluxul XML?'; $lang['updatecheck'] = 'Verificare actualizări ÅŸi avertismente privind securitatea? DokuWiki trebuie să contacteze update.dokuwiki.org pentru această facilitate.'; $lang['userewrite'] = 'Folosire URL-uri "nice"'; $lang['useslash'] = 'FoloseÅŸte slash-ul ca separator de spaÅ£ii de nume în URL-uri'; -$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)'; -$lang['locktime'] = 'Durata maximă pentru blocarea fiÅŸierelor (secunde)'; -$lang['fetchsize'] = 'Dimensiunea maximă (byte) pe care fetch.php poate să descarce din exterior'; -$lang['notify'] = 'Trimite notificări privind modificările pe această adresă de email'; -$lang['registernotify'] = 'Trimite informare noilor utilizatori înregistraÅ£i pe această adresă de email'; -$lang['mailfrom'] = 'Adresa de email utilizată pentru mailuri automate'; -$lang['mailprefix'] = 'Prefix subiect e-mail de folosit pentru mail-uri automate'; $lang['gzip_output'] = 'FoloseÅŸte gzip pentru codarea conÅ£inutului xhtml'; -$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['cssdatauri'] = 'Dimensiunea în octeÈ›i până la care imaginile regasite în fiÈ™ierele CSS ar trebui să fie incluse direct în stylesheet pentru a reduce supraîncărcarea antetului cererii HTTP. Această tehnică nu va funcÈ›iona în IE < 8! <code>400</code> până la <code>600</code> octeÈ›i sunt suficienÈ›i. IntroduceÈ›i <code>0</code> pentru a dezactiva această opÈ›iune.'; -$lang['hidepages'] = 'Ascunde paginile pereche (expresii regulate)'; $lang['send404'] = 'Trimite mesajul "HTTP 404/Page Not Found" pentru paginile inexistente'; -$lang['sitemap'] = 'Generează Google sitemap (zile)'; $lang['broken_iua'] = 'FuncÅ£ia ignore_user_abort nu funcÅ£ionează pe sistemul dumneavoastră? Aceasta poate determina nefuncÅ£ionarea indexului de căutare. IIS+PHP/CGI sunt cunoscute ca fiind nefuncÅ£ionale. Mai multe detalii găsiÅ£i la <a href="http://bugs.splitbrain.org/?do=details&task_id=852">Bug 852</a>'; $lang['xsendfile'] = 'FolosiÅ£i header-ul X-Send pentru a-i permite serverului web să trimită fiÅŸiere statice? Serverul web trebuie să permită aceasta.'; $lang['renderer_xhtml'] = 'Motorul de randare principal folosit pentru afiÅŸarea wiki în format xhtml'; $lang['renderer__core'] = '%s (nucleu dokuwiki)'; $lang['renderer__plugin'] = '%s (plugin)'; -$lang['rememberme'] = 'PermiteÅ£i cookies permanente la login (Å£ine-mă minte)'; -$lang['rss_type'] = 'Tip flux XML'; -$lang['rss_linkto'] = 'Fluxul XML se leagă la'; -$lang['rss_content'] = 'Ce să afiÅŸez în obiectele fluxurilor XML'; -$lang['rss_update'] = 'Intervalul de actualizare a fluxului XML (sec)'; -$lang['recent_days'] = 'Câte modificări recente să se păstreze?'; -$lang['rss_show_summary'] = 'Fluxul XML arată rezumat în titlu'; -$lang['rss_media'] = 'Ce fel de modificări ar trebui afiÈ™ate în fluxul XML?'; -$lang['target____wiki'] = 'Fereastra Å£intă pentru legăturile interne'; -$lang['target____interwiki'] = 'Fereastra Å£intă pentru legăturile interwiki'; -$lang['target____extern'] = 'Fereastra Å£intă pentru legăturile externe'; -$lang['target____media'] = 'Fereastra Å£intă pentru legăturile media'; -$lang['target____windows'] = 'Fereastra Å£intă pentru legăturile windows'; $lang['proxy____host'] = 'Nume server Proxy'; $lang['proxy____port'] = 'Port Proxy'; $lang['proxy____user'] = 'Nume utilizator Proxy'; diff --git a/lib/plugins/config/lang/ru/intro.txt b/lib/plugins/config/lang/ru/intro.txt index a629d9332ce071b17b802b14aa6fb94311488adf..01cf19063721b0744ae6aeaf62c60956bb3bc158 100644 --- a/lib/plugins/config/lang/ru/intro.txt +++ b/lib/plugins/config/lang/ru/intro.txt @@ -1,9 +1,7 @@ ====== ÐаÑтройки вики ====== -ЗдеÑÑŒ вы можете изменить наÑтройки Ñвоей «ДокуВики». Ð”Ð»Ñ Ñправки по поводу конкретных опций Ñмотрите [[doku>config]]. Дополнительные детали об Ñтом плагине доÑтупны здеÑÑŒ: [[doku>plugin:config]]. +ЗдеÑÑŒ вы можете изменить наÑтройки Ñвоей «Докувики». Ð”Ð»Ñ Ñправки по поводу конкретных опций Ñмотрите [[doku>config|Конфигурирование «Докувики»]]. Дополнительные детали об Ñтом плагине доÑтупны здеÑÑŒ: [[doku>plugin:config]]. -ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина. Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «ДокуВики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. +ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина. Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «Докувики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. Ðе забудьте нажать кнопку «**Сохранить**» перед тем, как покинуть Ñту Ñтраницу, иначе вÑе ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. - - diff --git a/lib/plugins/config/lang/ru/lang.php b/lib/plugins/config/lang/ru/lang.php index 596ad4eadf787f5a9a9f751a393a2aa549b3370b..0bc6d8f752f23e2f777a76b75cfbbacf5408b9b5 100644 --- a/lib/plugins/config/lang/ru/lang.php +++ b/lib/plugins/config/lang/ru/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Russian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Denis Simakov <akinoame1@gmail.com> * @author Andrew Pleshakov <beotiger@mail.ru> * @author Змей ÐтерийÑкий evil_snake@eternion.ru @@ -18,6 +18,8 @@ * @author Eugene <windy.wanderer@gmail.com> * @author Johnny Utah <pcpa@cyberpunk.su> * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) + * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> */ $lang['menu'] = 'ÐаÑтройки вики'; $lang['error'] = 'ÐаÑтройки не были Ñохранены из-за ошибки в одном из значений. ПожалуйÑта, проверьте Ñвои Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ попробуйте ещё раз.<br />Ðеправильные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ обведены краÑной рамкой.'; @@ -28,7 +30,7 @@ $lang['danger'] = 'Внимание: изменение Ñтой $lang['warning'] = 'ПредоÑтережение: изменение Ñтой опции может вызвать непредÑказуемое поведение.'; $lang['security'] = 'ПредоÑтережение по безопаÑноÑти: изменение Ñтой опции может вызвать риÑк, ÑвÑзанный Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑтью.'; $lang['_configuration_manager'] = 'ÐаÑтройки вики'; -$lang['_header_dokuwiki'] = 'Параметры «ДокуВики»'; +$lang['_header_dokuwiki'] = 'Параметры «Докувики»'; $lang['_header_plugin'] = 'Параметры плагинов'; $lang['_header_template'] = 'Параметры шаблонов'; $lang['_header_undefined'] = 'Прочие параметры'; @@ -51,7 +53,7 @@ $lang['start'] = 'Ð˜Ð¼Ñ Ñтартовой Ñтраницы'; $lang['lang'] = 'Язык'; $lang['template'] = 'Шаблон'; $lang['tagline'] = 'Слоган (еÑли поддерживаетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼)'; -$lang['sidebar'] = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ, пуÑтое поле отключает боковую панель.'; +$lang['sidebar'] = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ; пуÑтое поле отключает боковую панель.'; $lang['license'] = 'Ðа уÑловиÑÑ… какой лицензии будет предоÑтавлÑтьÑÑ Ñодержимое вики?'; $lang['savedir'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…'; $lang['basedir'] = 'ÐšÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (например, <code>/dokuwiki/</code>). ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.'; @@ -59,14 +61,14 @@ $lang['baseurl'] = 'Корневой Ð°Ð´Ñ€ÐµÑ (URL) (напри $lang['cookiedir'] = 'Cookie директориÑ. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.'; $lang['dmode'] = 'Права Ð´Ð»Ñ Ñоздаваемых директорий'; $lang['fmode'] = 'Права Ð´Ð»Ñ Ñоздаваемых файлов'; -$lang['allowdebug'] = 'Включить отладку (отключите!)'; +$lang['allowdebug'] = 'Включить отладку. <b>Отключите, еÑли она вам не нужна!</b>'; $lang['recent'] = 'Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (кол-во)'; $lang['recent_days'] = 'Ðа Ñколько дней назад ÑохранÑть недавние изменениÑ'; -$lang['breadcrumbs'] = 'Ð’Ñ‹ поÑетили (кол-во)'; +$lang['breadcrumbs'] = 'Ð’Ñ‹ поÑетили (кол-во). ПоÑтавьте 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.'; $lang['youarehere'] = 'Показывать «Вы находитеÑÑŒ здеÑь»'; $lang['fullpath'] = 'Полный путь к документу'; $lang['typography'] = 'ТипографÑкие Ñимволы'; -$lang['dformat'] = 'Формат даты и времени'; +$lang['dformat'] = 'Формат даты и времени (Ñм. функцию PHP <a href="http://www.php.net/strftime">strftime</a>)'; $lang['signature'] = 'Шаблон подпиÑи'; $lang['showuseras'] = 'Что отображать при показе пользователÑ, редактировавшего Ñтраницу поÑледним'; $lang['toptoclevel'] = 'Мин. уровень в Ñодержании'; @@ -75,30 +77,32 @@ $lang['maxtoclevel'] = 'МакÑ. уровень в Ñодержани $lang['maxseclevel'] = 'МакÑ. уровень Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸'; $lang['camelcase'] = 'ИÑпользовать ВикиРегиÑтр Ð´Ð»Ñ ÑÑылок'; $lang['deaccent'] = 'ТранÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð² именах Ñтраниц'; -$lang['useheading'] = 'Первый заголовок вмеÑто имени'; -$lang['sneaky_index'] = 'По умолчанию, «ДокуВики» показывает в индекÑе Ñтраниц вÑе проÑтранÑтва имён. Включение Ñтой опции Ñкроет проÑтранÑтва имён, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… пользователь не имеет прав чтениÑ. Ðто может привеÑти к Ñкрытию доÑтупных вложенных проÑтранÑтв имён и потере функциональноÑти индекÑа Ñтраниц при некоторых конфигурациÑÑ… прав доÑтупа.'; -$lang['hidepages'] = 'Скрыть Ñтраницы (рег. выражение)'; +$lang['useheading'] = 'Первый заголовок вмеÑто имени Ñтраницы'; +$lang['sneaky_index'] = 'По умолчанию, «Докувики» показывает в индекÑе Ñтраниц вÑе проÑтранÑтва имён. Включение Ñтой опции Ñкроет проÑтранÑтва имён, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… пользователь не имеет прав чтениÑ. Ðто может привеÑти к Ñкрытию доÑтупных вложенных проÑтранÑтв имён и потере функциональноÑти индекÑа Ñтраниц при некоторых конфигурациÑÑ… прав доÑтупа.'; +$lang['hidepages'] = 'Скрыть Ñтраницы (регулÑрное выражение)'; $lang['useacl'] = 'ИÑпользовать ÑпиÑки прав доÑтупа'; $lang['autopasswd'] = 'ÐÐ²Ñ‚Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¹'; $lang['authtype'] = 'Механизм аутентификации'; $lang['passcrypt'] = 'Метод ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ'; -$lang['defaultgroup'] = 'Группа по умолчанию'; -$lang['superuser'] = 'Суперпользователь — группа или пользователь Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доÑтупом ко вÑем Ñтраницам и функциÑм админиÑтрированиÑ, незавиÑимо от уÑтановок ACL. Перечень разделÑйте запÑтыми: user1,@group1,user2'; +$lang['defaultgroup'] = 'Группа по умолчанию. Ð’Ñе новые пользователю будут добавлÑтьÑÑ Ð²Â Ñту группу.'; +$lang['superuser'] = 'Суперпользователь — группа или пользователь Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доÑтупом ко вÑем Ñтраницам и функциÑм админиÑтрированиÑ, незавиÑимо от уÑтановок ÑпиÑков прав доÑтупа. Перечень разделÑйте запÑтыми: user1,@group1,user2'; $lang['manager'] = 'Менеджер — группа или пользователь Ñ Ð´Ð¾Ñтупом к определённым функциÑм управлениÑ. Перечень разделÑйте запÑтыми: user1,@group1,user2'; $lang['profileconfirm'] = 'Пароль Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ'; $lang['rememberme'] = 'Разрешить перманентные куки (cookies) Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° («запомнить менÑ»)'; -$lang['disableactions'] = 'Заблокировать операции «ДокуВики»'; +$lang['disableactions'] = 'Заблокировать операции «Докувики»'; $lang['disableactions_check'] = 'Проверка'; $lang['disableactions_subscription'] = 'ПодпиÑка/Отмена подпиÑки'; $lang['disableactions_wikicode'] = 'Показ/ÑкÑпорт иÑходного текÑта'; +$lang['disableactions_profile_delete'] = 'Удалить Ñвой аккаунт'; $lang['disableactions_other'] = 'Другие операции (через запÑтую)'; +$lang['disableactions_rss'] = 'XML-ÑÐ¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ (RSS)'; $lang['auth_security_timeout'] = 'Интервал Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти авторизации (Ñек.)'; $lang['securecookie'] = 'Должны ли куки (cookies), выÑтавленные через HTTPS, отправлÑтьÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ только через HTTPS. Отключите Ñту опцию в Ñлучае, когда только логин вашей вики передаётÑÑ Ñ‡ÐµÑ€ÐµÐ· SSL, а обычный проÑмотр оÑущеÑтвлÑетÑÑ Ð² небезопаÑном режиме.'; $lang['remote'] = 'Включить ÑиÑтему API Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹. Ðто позволит другим приложениÑм получить доÑтуп к вики через XML-RPC или другие механизмы.'; -$lang['remoteuser'] = 'Дать права Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ API доÑтупа пользователÑм указанным тут (разделÑть запÑтыми). ОÑтавьте Ñто поле пуÑтым что бы открыть доÑтуп вÑем.'; +$lang['remoteuser'] = 'Дать права Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ API-доÑтупа пользователÑм, указанным здеÑÑŒ (разделÑйте запÑтыми). ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа вÑем.'; $lang['usewordblock'] = 'Блокировать Ñпам по ключевым Ñловам'; -$lang['relnofollow'] = 'rel="nofollow" Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок'; -$lang['indexdelay'] = 'Задержка перед индекÑированием'; +$lang['relnofollow'] = 'ИÑпользовать rel="nofollow" Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок'; +$lang['indexdelay'] = 'Задержка перед индекÑированием (Ñек.)'; $lang['mailguard'] = 'Кодировать адреÑа Ñлектронной почты'; $lang['iexssprotect'] = 'ПроверÑть закачанные файлы на наличие потенциально опаÑного кода JavaScript или HTML'; $lang['usedraft'] = 'ÐвтоматичеÑки ÑохранÑть черновик во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸'; @@ -119,35 +123,36 @@ $lang['jpg_quality'] = 'КачеÑтво ÑÐ¶Ð°Ñ‚Ð¸Ñ JPG (0–100). $lang['fetchsize'] = 'МакÑимальный размер файла (в байтах), который fetch.php может Ñкачивать Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ иÑточника'; $lang['subscribers'] = 'Разрешить подпиÑку на изменениÑ'; $lang['subscribe_time'] = 'Интервал раÑÑылки подпиÑок и Ñводок (Ñек.). Должен быть меньше, чем значение, указанное в recent_days.'; -$lang['notify'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¸Ð·Ð²ÐµÑ‰ÐµÐ½Ð¸Ð¹'; -$lang['registernotify'] = 'ПоÑылать информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ'; +$lang['notify'] = 'Ð’Ñегда отправлÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð±Â Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÑÑ… на Ñтот Ñлектронный адреÑ'; +$lang['registernotify'] = 'Ð’Ñегода отправлÑть информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ'; $lang['mailfrom'] = 'Ðлектронный Ð°Ð´Ñ€ÐµÑ Ð²Ð¸ÐºÐ¸ (От:)'; -$lang['mailprefix'] = 'ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¸Ñпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма Ñтанет темой Ñообщений'; -$lang['sitemap'] = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑть) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.)'; -$lang['rss_type'] = 'Тип RSS'; -$lang['rss_linkto'] = 'СÑылки в RSS'; -$lang['rss_content'] = 'Что отображать в Ñтроках XML-ленты?'; +$lang['mailprefix'] = 'ПрефикÑ, иÑпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма, Ñтанет темой ÑообщениÑ. ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸ÐºÐ¸.'; +$lang['htmlmail'] = 'ОтправлÑть краÑивые, но крупные HTML-многочаÑтные пиÑьма. Ð”Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ проÑтых текÑтовых пиÑем - отключить'; +$lang['sitemap'] = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑть) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.). Укажите 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.'; +$lang['rss_type'] = 'Тип XML-ленты'; +$lang['rss_linkto'] = 'СÑылки в XML-ленте указывают на'; +$lang['rss_content'] = 'Что показывать в XML-ленте?'; $lang['rss_update'] = 'Интервал Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ XML-ленты (Ñек.)'; $lang['rss_show_summary'] = 'Показывать краткую выдержку в заголовках XML-ленты'; -$lang['rss_media'] = 'Какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть отображены в XML?'; -$lang['updatecheck'] = 'ПроверÑть наличие обновлений и предупреждений о безопаÑноÑти? Ð”Ð»Ñ Ñтого «ДокуВики» потребуетÑÑ ÑвÑзыватьÑÑ Ñ Ñайтом <a href="http://www.splitbrain.org/">splitbrain.org</a>.'; +$lang['rss_media'] = 'Какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть отображены в XML-ленте?'; +$lang['updatecheck'] = 'ПроверÑть наличие обновлений и предупреждений о безопаÑноÑти? Ð”Ð»Ñ Ñтого «Докувики» потребуетÑÑ ÑвÑзыватьÑÑ Ñ update.dokuwiki.org.'; $lang['userewrite'] = 'Удобочитаемые адреÑа (URL)'; -$lang['useslash'] = 'ИÑпользовать ÑлÑш'; +$lang['useslash'] = 'ИÑпользовать ÑлÑш в URL'; $lang['sepchar'] = 'Разделитель Ñлов в имени Ñтраницы'; $lang['canonical'] = 'Полные каноничеÑкие адреÑа (URL)'; $lang['fnencode'] = 'Метод ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñ‘Ð½ файлов, запиÑанных не ASCII-Ñимволами.'; -$lang['autoplural'] = 'ÐвтоматичеÑкое мн. чиÑло'; +$lang['autoplural'] = 'ПроверÑть можеÑтвенную форму имени Ñтраницы в ÑÑылках'; $lang['compression'] = 'Метод ÑÐ¶Ð°Ñ‚Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð½Ñ‹Ñ… файлов'; $lang['gzip_output'] = 'ИÑпользовать gzip-Ñжатие Ð´Ð»Ñ xhtml'; $lang['compress'] = 'Сжимать файлы CSS и javascript'; $lang['cssdatauri'] = 'Размер в байтах до которого изображениÑ, указанные в CSS-файлах, должны быть вÑтроены прÑмо в таблицу Ñтилей, Ð´Ð»Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ Ð¸Ð·Ð±Ñ‹Ñ‡Ñ‚Ð¾Ð½Ñ‹Ñ… HTTP-запроÑов. Ðтот метод не будет работать в IE верÑии 7 и ниже! УÑтановка от <code>400</code> до <code>600</code> байт ÑвлÑетÑÑ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ð¼ показателем. УÑтановите <code>0</code>, чтобы отключить.'; -$lang['send404'] = 'ПоÑылать «HTTP404/Page Not Found»'; +$lang['send404'] = 'ПоÑылать «HTTP 404/Страница не найдена» Ð´Ð»Ñ Ð½ÐµÑущеÑтвующих Ñтраниц'; $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__core'] = '%s (Ñдро «Докувики»)'; $lang['renderer__plugin'] = '%s (плагин)'; -$lang['dnslookups'] = 'DokuWiki ищет DNS имена пользователей редактирующих Ñтраницы. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ DNS Ñервера или он работает медленно, рекомендуем отключить Ñту опцию.'; +$lang['dnslookups'] = '«Докувики» ищет DNS-имена пользователей, редактирующих Ñтраницы. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ DNS-Ñервера или он работает медленно, рекомендуем отключить Ñту опцию.'; $lang['proxy____host'] = 'proxy-адреÑ'; $lang['proxy____port'] = 'proxy-порт'; $lang['proxy____user'] = 'proxy-Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; @@ -162,15 +167,15 @@ $lang['ftp____pass'] = 'ftp-пароль'; $lang['ftp____root'] = 'ftp-ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ'; $lang['license_o_'] = 'Ðе выбрано'; $lang['typography_o_0'] = 'нет'; -$lang['typography_o_1'] = 'Только двойные кавычки'; -$lang['typography_o_2'] = 'Ð’Ñе кавычки (может не вÑегда работать)'; +$lang['typography_o_1'] = 'только двойные кавычки'; +$lang['typography_o_2'] = 'вÑе кавычки (может не вÑегда работать)'; $lang['userewrite_o_0'] = '(нет)'; $lang['userewrite_o_1'] = '.htaccess'; -$lang['userewrite_o_2'] = 'ÑредÑтвами «ДокуВики»'; +$lang['userewrite_o_2'] = 'ÑредÑтвами «Докувики»'; $lang['deaccent_o_0'] = 'отключить'; $lang['deaccent_o_1'] = 'убирать только диакр. знаки'; $lang['deaccent_o_2'] = 'Ð¿Ð¾Ð»Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½ÑлитерациÑ'; -$lang['gdlib_o_0'] = 'LibGD недоÑтупна'; +$lang['gdlib_o_0'] = 'GD Lib недоÑтупна'; $lang['gdlib_o_1'] = 'верÑÐ¸Ñ 1.x'; $lang['gdlib_o_2'] = 'автоопределение'; $lang['rss_type_o_rss'] = 'RSS 0.91'; @@ -178,10 +183,10 @@ $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'] = 'ÐбÑтрактный'; -$lang['rss_content_o_diff'] = 'Объединённый diff'; +$lang['rss_content_o_abstract'] = 'абÑтрактный'; +$lang['rss_content_o_diff'] = 'объединённый diff'; $lang['rss_content_o_htmldiff'] = 'HTML-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° diff'; -$lang['rss_content_o_html'] = 'Полное Ñодержимое HTML-Ñтраницы'; +$lang['rss_content_o_html'] = 'полное Ñодержимое HTML-Ñтраницы'; $lang['rss_linkto_o_diff'] = 'Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей'; $lang['rss_linkto_o_page'] = 'текÑÑ‚ Ñтраницы'; $lang['rss_linkto_o_rev'] = 'иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº'; @@ -190,15 +195,16 @@ $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'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в шифрованном виде (Ñм. mailguard)'; -$lang['showuseras_o_email_link'] = 'ÐÐ´Ñ€ÐµÑ Ñлектропочты в виде ÑÑылки mailto:'; -$lang['useheading_o_0'] = 'Ðикогда'; -$lang['useheading_o_navigation'] = 'Только навигациÑ'; -$lang['useheading_o_content'] = 'Только Ñодержимое вики'; -$lang['useheading_o_1'] = 'Ð’Ñегда'; +$lang['showuseras_o_loginname'] = 'логин'; +$lang['showuseras_o_username'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ'; +$lang['showuseras_o_username_link'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº интервики-ÑÑылка'; +$lang['showuseras_o_email'] = 'Ð°Ð´Ñ€ÐµÑ Ñлектропочты в шифрованном виде (Ñм. mailguard)'; +$lang['showuseras_o_email_link'] = 'Ð°Ð´Ñ€ÐµÑ Ñлектропочты в виде ÑÑылки mailto:'; +$lang['useheading_o_0'] = 'никогда'; +$lang['useheading_o_navigation'] = 'только в навигации'; +$lang['useheading_o_content'] = 'только в Ñодержимом вики'; +$lang['useheading_o_1'] = 'вÑегда'; $lang['readdircache'] = 'МакÑимальное Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ кÑша readdir (Ñек.)'; diff --git a/lib/plugins/config/lang/sk/intro.txt b/lib/plugins/config/lang/sk/intro.txt index 5de62a3152fbaf5d3a0213f9f6b68f7ab657855a..a3d15bf93ce72a883abc14ca2f6a9befe3804272 100644 --- a/lib/plugins/config/lang/sk/intro.txt +++ b/lib/plugins/config/lang/sk/intro.txt @@ -4,4 +4,4 @@ Túto stránku môžete použÃvaÅ¥ na zmenu nastavenà VaÅ¡ej DokuWiki inÅ¡tal Nastavenia zobrazené na Äervenom pozadà sú neprÃstupné a nemôžu byÅ¥ týmto pluginom zmenené. Nastavenia s modrým pozadÃm obsahujú prednastavené hodnoty a nastavenia s bielym pozadÃm boli nastavené lokálne pre túto konkrétnu inÅ¡taláciu. Nastavenia s modrým a bielym pozadÃm môžu byÅ¥ zmenené. -Nezabudnite stlaÄiÅ¥ tlaÄidlo **UložiÅ¥** pred opustenÃm stránky, inak budú vaÅ¡e zmeny stratené. \ No newline at end of file +Nezabudnite stlaÄiÅ¥ tlaÄidlo **UložiÅ¥** pred opustenÃm stránky, inak budú vaÅ¡e zmeny stratené. diff --git a/lib/plugins/config/lang/sk/lang.php b/lib/plugins/config/lang/sk/lang.php index 46e4081a959875b87787b88d68d4bec4c78f0f12..f56353680e367bf33a5a5c8a907d1000c698787c 100644 --- a/lib/plugins/config/lang/sk/lang.php +++ b/lib/plugins/config/lang/sk/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Slovaklanguage file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Michal Mesko <michal.mesko@gmail.com> * @author exusik@gmail.com * @author Martin Michalek <michalek.dev@gmail.com> @@ -139,7 +140,7 @@ $lang['renderer__plugin'] = '%s (plugin)'; $lang['dnslookups'] = 'DokuWiki hľadá mená vzdialených IP adries použÃvateľov editujúcich stránky. Ak máte pomalý alebo nefunkÄný DNS server alebo nechcete túto možnosÅ¥, deaktivujte túto voľbu'; $lang['proxy____host'] = 'Proxy server - názov'; $lang['proxy____port'] = 'Proxy server - port'; -$lang['proxy____user'] = 'Proxy server - užÃvateľské meno'; +$lang['proxy____user'] = 'Proxy server - použÃvateľské meno'; $lang['proxy____pass'] = 'Proxy server - heslo'; $lang['proxy____ssl'] = 'Proxy server - použiÅ¥ SSL'; $lang['proxy____except'] = 'Regulárny výraz popisujúci URL odkazy, pre ktoré by proxy nemala byÅ¥ použitá.'; diff --git a/lib/plugins/config/lang/sq/intro.txt b/lib/plugins/config/lang/sq/intro.txt index 687b497c9c5500da1efcc37c9ec431ebd5878af8..d2bab0fd562c925e985c7696de6cfbdb02b9087a 100644 --- a/lib/plugins/config/lang/sq/intro.txt +++ b/lib/plugins/config/lang/sq/intro.txt @@ -4,4 +4,4 @@ Përdoreni këtë faqe për të kontrolluar kuadrot e instalimit të DokuWiki-t 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 +Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin. diff --git a/lib/plugins/config/lang/sv/intro.txt b/lib/plugins/config/lang/sv/intro.txt index 8887d4a7bd6f57978732a97d0e6aac44597a4172..fd77634c2b0c936c958cb5c7019707c9dd34eed8 100644 --- a/lib/plugins/config/lang/sv/intro.txt +++ b/lib/plugins/config/lang/sv/intro.txt @@ -5,5 +5,3 @@ Använd den här sidan för att göra inställningar i din Dokuwiki. För hjälp Inställningar med en rosa bakgrund är skyddade och kan inte ändras med den här insticksmodulen. Inställningar med en blÃ¥ bakgrund är standardvärden, och inställningar som visas med en vit bakgrund har ändrats i den här installationen. BÃ¥de blÃ¥a och vita inställningar kan ändras. Kom i hÃ¥g att trycka pÃ¥ knappen **Spara** innan du lämnar den här sidan, annars kommer ändringarna att gÃ¥ förlorade. - - diff --git a/lib/plugins/config/lang/th/lang.php b/lib/plugins/config/lang/th/lang.php index 68ee8b8a27a6f38ecfd44c87dee5f8d69405c079..ce1d30d6278905e4272ea50cf4ce309d07803280 100644 --- a/lib/plugins/config/lang/th/lang.php +++ b/lib/plugins/config/lang/th/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Thai language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Komgrit Niyomrath <n.komgrit@gmail.com> * @author Kittithat Arnontavilas mrtomyum@gmail.com * @author Arthit Suriyawongkul <arthit@gmail.com> @@ -23,48 +24,48 @@ $lang['_links'] = 'à¸à¸²à¸£à¸•ั้งค่าลิงà¸à¹Œ' $lang['_media'] = 'à¸à¸²à¸£à¸•ั้งค่าภาพ-เสียง'; $lang['_advanced'] = 'à¸à¸²à¸£à¸•ั้งค่าขั้นสูง'; $lang['_network'] = 'à¸à¸²à¸£à¸•ั้งค่าเครืà¸à¸‚่าย'; +$lang['start'] = 'ชื่à¸à¸«à¸™à¹‰à¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•้น'; $lang['lang'] = 'ภาษา'; +$lang['savedir'] = 'ไดเรคทà¸à¸£à¸µà¸—ี่บันทึà¸à¸‚้à¸à¸¡à¸¹à¸¥'; $lang['basedir'] = 'ไดเรคทà¸à¸£à¸µà¸žà¸·à¹‰à¸™à¸à¸²à¸™'; $lang['baseurl'] = 'URL พื้นà¸à¸²à¸™'; -$lang['savedir'] = 'ไดเรคทà¸à¸£à¸µà¸—ี่บันทึà¸à¸‚้à¸à¸¡à¸¹à¸¥'; -$lang['start'] = 'ชื่à¸à¸«à¸™à¹‰à¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•้น'; $lang['recent'] = 'à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸¥à¹ˆà¸²à¸ªà¸¸à¸”'; -$lang['htmlok'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้ใช้ HTML'; -$lang['phpok'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้ใช้ PHP'; +$lang['recent_days'] = 'จำนวนวันที่เà¸à¹‡à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขล่าสุด'; $lang['signature'] = 'ลายเซนต์'; -$lang['usewordblock'] = 'คำที่จะถืà¸à¸§à¹ˆà¸²à¹€à¸›à¹‡à¸™à¸ªà¹à¸›à¸¡'; -$lang['relnofollow'] = 'ใช้ rel="nofollow" สำหรับลิงà¸à¹Œà¸ ายนà¸à¸'; +$lang['hidepages'] = 'ซ่à¸à¸™à¸«à¸™à¹‰à¸²à¸—ี่เข้าà¸à¸±à¸™à¹„ด้ (regular expressions)'; $lang['autopasswd'] = 'สร้างรหัสผ่านให้à¸à¸±à¸•โนมัติ'; $lang['passcrypt'] = 'à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹€à¸‚้ารหัส สำหรับเà¸à¹‡à¸šà¸šà¸±à¸™à¸—ึà¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™'; $lang['defaultgroup'] = 'à¸à¸¥à¸¸à¹ˆà¸¡à¸¡à¸²à¸•รà¸à¸²à¸™'; $lang['profileconfirm'] = 'ใส่รหัสผ่านเพื่à¸à¸¢à¸·à¸™à¸¢à¸±à¸™à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚้à¸à¸¡à¸¹à¸¥'; +$lang['rememberme'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้จดจำà¸à¸²à¸£ login à¹à¸šà¸šà¸–าวร'; $lang['disableactions_check'] = 'ตรวจสà¸à¸š'; $lang['auth_security_timeout'] = 'ระยะเวลาที่จะตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•่à¸à¹à¸šà¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸”้วยสิทธิ์ผู้ใช้ (วินาที)'; -$lang['userewrite'] = 'à¹à¸ªà¸”งที่à¸à¸¢à¸¹à¹ˆà¹€à¸§à¹‡à¸š (URL) à¹à¸šà¸šà¸à¹ˆà¸²à¸™à¹€à¸‚้าใจง่าย'; -$lang['cachetime'] = 'ระยะเวลาสำหรับà¸à¸²à¸£à¹€à¸à¹‡à¸šà¹à¸„ช (วินาที)'; +$lang['usewordblock'] = 'คำที่จะถืà¸à¸§à¹ˆà¸²à¹€à¸›à¹‡à¸™à¸ªà¹à¸›à¸¡'; +$lang['relnofollow'] = 'ใช้ rel="nofollow" สำหรับลิงà¸à¹Œà¸ ายนà¸à¸'; +$lang['htmlok'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้ใช้ HTML'; +$lang['phpok'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้ใช้ PHP'; $lang['locktime'] = 'ระยะเวลานานสุด ที่จะล็à¸à¸„ไม่ให้à¹à¸à¹‰à¹„ขไฟล์ (วินาที)'; +$lang['cachetime'] = 'ระยะเวลาสำหรับà¸à¸²à¸£à¹€à¸à¹‡à¸šà¹à¸„ช (วินาที)'; +$lang['target____wiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายใน ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____interwiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œ interwiki ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____extern'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายนà¸à¸ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____media'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸¡à¸µà¹€à¸”ีย ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['target____windows'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸§à¸´à¸™à¹‚ดวส์ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['gdlib'] = 'เลขรุ่นขà¸à¸‡ GD Library'; $lang['fetchsize'] = 'ขนาดไฟล์ใหà¸à¹ˆà¸ªà¸¸à¸” (bytes) fetch.php ที่จะดาวน์โหลดจาà¸à¸ ายนà¸à¸'; $lang['notify'] = 'ส่งà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ืà¸à¸™à¹„ปยังที่à¸à¸¢à¸¹à¹ˆà¸à¸µà¹€à¸¡à¸¥à¸™à¸µà¹‰'; -$lang['gzip_output'] = 'ใช้ gzip Content-Encoding สำหรับ xhtml'; -$lang['gdlib'] = 'เลขรุ่นขà¸à¸‡ GD Library'; -$lang['compress'] = 'บีบย่ภCSS à¹à¸¥à¸° javascript (เพื่à¸à¹ƒà¸«à¹‰à¹à¸ªà¸”งหน้าเว็บเร็วขึ้น)'; -$lang['hidepages'] = 'ซ่à¸à¸™à¸«à¸™à¹‰à¸²à¸—ี่เข้าà¸à¸±à¸™à¹„ด้ (regular expressions)'; -$lang['send404'] = 'ให้à¹à¸ªà¸”ง "HTTP 404/Page Not Found" เมื่à¸à¹„ม่พบข้à¸à¸¡à¸¹à¸¥à¸«à¸™à¹‰à¸²à¸™à¸±à¹‰à¸™'; $lang['sitemap'] = 'สร้าง à¸à¸¹à¹€à¸à¸´à¹‰à¸¥ ไซต์à¹à¸¡à¸ž (จำนวนวัน)'; -$lang['renderer__core'] = '%s (à¹à¸à¸™à¸«à¸¥à¸±à¸à¸‚à¸à¸‡ dokuwiki)'; -$lang['renderer__plugin'] = '%s (โปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡ - plugin)'; -$lang['rememberme'] = 'à¸à¸™à¸¸à¸à¸²à¸•ให้จดจำà¸à¸²à¸£ login à¹à¸šà¸šà¸–าวร'; $lang['rss_type'] = 'ชนิดขà¸à¸‡ XML feed'; $lang['rss_linkto'] = 'ลิงà¸à¹Œà¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยงไปยัง XML feed'; $lang['rss_content'] = 'ต้à¸à¸‡à¸à¸²à¸£à¹ƒà¸«à¹‰à¸¡à¸µà¸à¸°à¹„รà¹à¸ªà¸”งà¸à¸¢à¸¹à¹ˆà¹ƒà¸™ XML feed บ้าง?'; $lang['rss_update'] = 'ความถี่ในà¸à¸²à¸£à¸à¸±à¸žà¹€à¸”ท XML feed (เป็นวินาที)'; -$lang['recent_days'] = 'จำนวนวันที่เà¸à¹‡à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขล่าสุด'; $lang['rss_show_summary'] = 'ไตเติ้ลขà¸à¸‡à¸šà¸—สรุปย่à¸à¸‚à¸à¸‡ XML feed'; -$lang['target____wiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายใน ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____interwiki'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œ interwiki ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____extern'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ ายนà¸à¸ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____media'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸¡à¸µà¹€à¸”ีย ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; -$lang['target____windows'] = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚à¸à¸‡à¸§à¸´à¸™à¹‚ดวส์ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”'; +$lang['userewrite'] = 'à¹à¸ªà¸”งที่à¸à¸¢à¸¹à¹ˆà¹€à¸§à¹‡à¸š (URL) à¹à¸šà¸šà¸à¹ˆà¸²à¸™à¹€à¸‚้าใจง่าย'; +$lang['gzip_output'] = 'ใช้ gzip Content-Encoding สำหรับ xhtml'; +$lang['compress'] = 'บีบย่ภCSS à¹à¸¥à¸° javascript (เพื่à¸à¹ƒà¸«à¹‰à¹à¸ªà¸”งหน้าเว็บเร็วขึ้น)'; +$lang['send404'] = 'ให้à¹à¸ªà¸”ง "HTTP 404/Page Not Found" เมื่à¸à¹„ม่พบข้à¸à¸¡à¸¹à¸¥à¸«à¸™à¹‰à¸²à¸™à¸±à¹‰à¸™'; +$lang['renderer__core'] = '%s (à¹à¸à¸™à¸«à¸¥à¸±à¸à¸‚à¸à¸‡ dokuwiki)'; +$lang['renderer__plugin'] = '%s (โปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡ - plugin)'; $lang['proxy____host'] = 'ชื่ภserver ขà¸à¸‡ proxy'; $lang['proxy____port'] = 'port ขà¸à¸‡ proxy'; $lang['proxy____user'] = 'user name ขà¸à¸‡ proxy'; diff --git a/lib/plugins/config/lang/tr/intro.txt b/lib/plugins/config/lang/tr/intro.txt index 4a965422224afd8031113f95d4026a2af6667e21..2602fb3eda9fb007fc094dfd532b36216fb430f3 100644 --- a/lib/plugins/config/lang/tr/intro.txt +++ b/lib/plugins/config/lang/tr/intro.txt @@ -4,4 +4,4 @@ Bu sayfayı DokuWiki kurulumunun ayarlarını deÄŸiÅŸtirmek için kullanabilirsi Açık kırmızı renkle gösterilenler bu eklenti ile deÄŸiÅŸtirilemez. Mavi ile gösterilenler varsayılan deÄŸerlerdir. Beyaz altyazı ile gösterilenler is bu kuruluma özel deÄŸiÅŸtirilmiÅŸ ayarlardır. Mavi ve beyaz ayarlar deÄŸiÅŸtirilebilir. -DeÄŸiÅŸiklik yapmanız durumunda **Kaydet** tuÅŸuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir. \ No newline at end of file +DeÄŸiÅŸiklik yapmanız durumunda **Kaydet** tuÅŸuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir. diff --git a/lib/plugins/config/lang/tr/lang.php b/lib/plugins/config/lang/tr/lang.php index cb610f4ff67d97f4f8fa9250dfe77f6b5b1fda6f..344f22de1bd55932d6a300ab325c3b2d42b531ce 100644 --- a/lib/plugins/config/lang/tr/lang.php +++ b/lib/plugins/config/lang/tr/lang.php @@ -1,12 +1,14 @@ <?php + /** - * Turkish language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Aydın CoÅŸkuner <aydinweb@gmail.com> * @author Cihan Kahveci <kahvecicihan@gmail.com> * @author Yavuz Selim <yavuzselim@gmail.com> * @author Caleb Maclennan <caleb@alerque.com> * @author farukerdemoncel@gmail.com + * @author Mete Cuma <mcumax@gmail.com> */ $lang['menu'] = 'Site Ayarları'; $lang['error'] = 'Ayarlar yanlış bir deÄŸer girildiÄŸi için güncellenemedi. Lütfen deÄŸiÅŸikliklerinizi gözden geçirin ve tekrar gönderin. diff --git a/lib/plugins/config/lang/uk/lang.php b/lib/plugins/config/lang/uk/lang.php index dea9203e845246f960f51bdb1cc659a25ed95044..02c3273679022ff6eb252e78c2642a70ecdb740f 100644 --- a/lib/plugins/config/lang/uk/lang.php +++ b/lib/plugins/config/lang/uk/lang.php @@ -1,8 +1,8 @@ <?php + /** - * ukrainian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Oleksiy Voronin <ovoronin@gmail.com> * @author serg_stetsuk@ukr.net * @author okunia@gmail.com @@ -10,6 +10,7 @@ * @author Uko uko@uar.net * @author Ulrikhe Lukoie <lukoie@gmail>.com * @author Kate Arzamastseva pshns@ukr.net + * @author Maksim <nikropol@yandex.ru> */ $lang['menu'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ñ–ÐºÑ–'; $lang['error'] = 'Параметри не збережено через помилкові значеннÑ. Будь лаÑка, переглÑньте ваші зміни та Ñпробуйте ще раз diff --git a/lib/plugins/config/lang/zh-tw/intro.txt b/lib/plugins/config/lang/zh-tw/intro.txt index 228c12e0abbceafaac8c7d55448d6f916d203e2e..e131ec342d20e405da5b0dfa08da48fe9874cee1 100644 --- a/lib/plugins/config/lang/zh-tw/intro.txt +++ b/lib/plugins/config/lang/zh-tw/intro.txt @@ -4,4 +4,4 @@ æ·¡ç´…è‰²èƒŒæ™¯çš„é …ç›®æ˜¯å—到ä¿è·çš„,ä¸èƒ½é€šéŽé€™ç®¡ç†å™¨æ›´æ”¹ã€‚è—è‰²èƒŒæ™¯çš„é …ç›®æ˜¯ç³»çµ±çš„é è¨å€¼ï¼Œç™½è‰²èƒŒæ™¯çš„é …ç›®æ˜¯æ‚¨æ›´æ”¹éŽçš„。è—色和白色的è¨å®šé …目都å¯ä»¥æ›´æ”¹ã€‚ -離開本é 之å‰ï¼Œä¸è¦å¿˜è¨˜é»žæ“Šæœ€ä¸‹é¢çš„ **儲å˜** 按鈕,å¦å‰‡æ‚¨çš„ä¿®æ”¹ä¸æœƒç”Ÿæ•ˆã€‚ \ No newline at end of file +離開本é 之å‰ï¼Œä¸è¦å¿˜è¨˜é»žæ“Šæœ€ä¸‹é¢çš„ **儲å˜** 按鈕,å¦å‰‡æ‚¨çš„ä¿®æ”¹ä¸æœƒç”Ÿæ•ˆã€‚ diff --git a/lib/plugins/config/lang/zh-tw/lang.php b/lib/plugins/config/lang/zh-tw/lang.php index cc2c28c31084c1437f0c6ea6e5d26f071a120cee..e5b051bfbcd186940295d6accf7328d60d490978 100644 --- a/lib/plugins/config/lang/zh-tw/lang.php +++ b/lib/plugins/config/lang/zh-tw/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Chinese Traditional language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Li-Jiun Huang <ljhuang.tw@gmail.com> * @author http://www.chinese-tools.com/tools/converter-simptrad.html * @author Wayne San <waynesan@zerozone.tw> @@ -11,6 +12,7 @@ * @author Shuo-Ting Jian <shoting@gmail.com> * @author syaoranhinata@gmail.com * @author Ichirou Uchiki <syaoranhinata@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['menu'] = '系統è¨å®š'; $lang['error'] = 'å› ç‚ºå«æœ‰ä¸åˆè¦æ ¼çš„è¨å®šå€¼ï¼Œæ•…未能更新è¨å®šã€‚è«‹æª¢æŸ¥æ‚¨çš„æ›´æ”¹ä¸¦é‡æ–°é€å‡ºã€‚ @@ -137,7 +139,7 @@ $lang['gzip_output'] = 'å° xhtml 使用 gzip 內容編碼'; $lang['compress'] = '壓縮 CSS 與 JavaScript 的輸出'; $lang['cssdatauri'] = 'å‡å¦‚ CSS 䏿‰€å¼•ç”¨çš„åœ–ç‰‡å°æ–¼è©²æ•¸å—大å°(bytes),圖片將被直接嵌入 CSS ä¸ï¼Œä»¥æ¸›å°‘ HTTP Request 的發é€ã€‚ IE 7 åŠä»¥ä¸‹çš„ç‰ˆæœ¬ä¸¦ä¸æ”¯æ´æ¤åŠŸèƒ½ã€‚æŽ¨è–¦æŠŠæ¤æ•¸å€¼è¨å®šæˆ <code>400</code> 至 <code>600</code> bytes 之間。若輸入 <code>0</code> 則åœç”¨æ¤åŠŸèƒ½ã€‚'; $lang['send404'] = 'å˜å–ä¸å˜åœ¨çš„é 颿™‚é€å‡º "HTTP 404/Page Not Found"'; -$lang['broken_iua'] = 'ignore_user_abort 功能失效了?這有å¯èƒ½å°Žè‡´æœç´¢ç´¢å¼•ä¸å¯ç”¨ã€‚IIS+PHP/CGI å·²æå£žã€‚è«‹åƒé–± <a href=\"http://bugs.splitbrain.org/?do=details&task_id=852\">Bug 852</a> ç²å–更多訊æ¯ã€‚'; +$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['renderer_xhtml'] = 'ä¸»è¦ wiki 輸出 (xhtml) 的渲染器'; $lang['renderer__core'] = '%s (dokuwiki æ ¸å¿ƒ)'; diff --git a/lib/plugins/config/lang/zh/intro.txt b/lib/plugins/config/lang/zh/intro.txt index a7db4eda0f4ea03d359b32c92a1adef4ddb60bc5..30cb650042c8bceb046eb0bd019cfdcc49a64e49 100644 --- a/lib/plugins/config/lang/zh/intro.txt +++ b/lib/plugins/config/lang/zh/intro.txt @@ -5,5 +5,3 @@ æ·¡çº¢è‰²èƒŒæ™¯çš„é¡¹ç›®è¢«ä¿æŠ¤ï¼Œä¸èƒ½é€šè¿‡è¿™ä¸ªç®¡ç†å™¨æ›´æ”¹ã€‚ è“色背景的项目是系统的默认值,白色背景的项目是您作出更改的项目。è“色和白色的设置项目都å¯ä»¥æ›´æ”¹ã€‚ 离开本页之å‰ä¸è¦å¿˜è®°ç‚¹å‡»æœ€åŽçš„ **ä¿å˜** 按钮,å¦åˆ™æ‚¨åšçš„修改ä¸ä¼šç”Ÿæ•ˆã€‚ - - diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php index 364ad3fe64101ffae766f7e8a1a46db9e6c98a16..4ae3a01fd249864a57830e760983d74a8800ff93 100644 --- a/lib/plugins/config/lang/zh/lang.php +++ b/lib/plugins/config/lang/zh/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Chinese(Simplified) language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author ZDYX <zhangduyixiong@gmail.com> * @author http://www.chinese-tools.com/tools/converter-tradsimp.html * @author George Sheraton guxd@163.com @@ -15,6 +15,7 @@ * @author caii, patent agent in China <zhoucaiqi@gmail.com> * @author lainme993@gmail.com * @author Shuo-Ting Jian <shoting@gmail.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['menu'] = 'é…置设置'; $lang['error'] = 'ç”±äºŽéžæ³•傿•°ï¼Œè®¾ç½®æ²¡æœ‰æ›´æ–°ã€‚请检查您åšçš„æ”¹åЍ并釿–°æäº¤ã€‚ @@ -90,7 +91,9 @@ $lang['disableactions'] = 'åœç”¨ DokuWiki 功能'; $lang['disableactions_check'] = '检查'; $lang['disableactions_subscription'] = '订阅/退订'; $lang['disableactions_wikicode'] = 'æŸ¥çœ‹æºæ–‡ä»¶/å¯¼å‡ºæºæ–‡ä»¶'; +$lang['disableactions_profile_delete'] = 'åˆ é™¤è‡ªå·±çš„è´¦æˆ·'; $lang['disableactions_other'] = '其他功能(用英文逗å·åˆ†éš”)'; +$lang['disableactions_rss'] = 'XML åŒæ¥ (RSS)'; $lang['auth_security_timeout'] = '认è¯å®‰å…¨è¶…时(秒)'; $lang['securecookie'] = 'è¦è®©æµè§ˆå™¨é¡»ä»¥HTTPSæ–¹å¼ä¼ é€åœ¨HTTPS会è¯ä¸è®¾ç½®çš„cookieså—?请åªåœ¨ç™»å½•过程为SSLåŠ å¯†è€Œæµè§ˆç»´åŸºä¸ºæ˜Žæ–‡çš„æƒ…况下打开æ¤é€‰é¡¹ã€‚'; $lang['remote'] = '激活远程 API 系统。这å…许其他程åºé€šè¿‡ XML-RPC 或其他机制æ¥è®¿é—®ç»´åŸºã€‚'; @@ -196,6 +199,7 @@ $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_username_link'] = '使用用户全å作为维基内的用户链接'; $lang['showuseras_o_email'] = '用户的电åé‚®ç®±ï¼ˆæŒ‰é‚®ç®±ä¿æŠ¤è®¾ç½®åŠ æ‰°ï¼‰'; $lang['showuseras_o_email_link'] = '以mailtoï¼šå½¢å¼æ˜¾ç¤ºç”¨æˆ·çš„电å邮箱'; $lang['useheading_o_0'] = '从ä¸'; diff --git a/lib/plugins/config/plugin.info.txt b/lib/plugins/config/plugin.info.txt index 9472346b9384b3d8344afe2e975507a870c98440..ddd72657d52ff675db1965e69aabeccdf12cff2e 100644 --- a/lib/plugins/config/plugin.info.txt +++ b/lib/plugins/config/plugin.info.txt @@ -1,7 +1,7 @@ base config author Christopher Smith email chris@jalakai.co.uk -date 2014-03-18 +date 2015-07-18 name Configuration Manager desc Manage Dokuwiki's Configuration Settings url http://dokuwiki.org/plugin:config diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 316cc2c593e5db1519547e5214828e96ef8ae3c9..0942a6d23cd1cad4059888d8f51f173e70e31cce 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -37,7 +37,7 @@ if (!class_exists('configuration')) { * * @param string $datafile path to config metadata file */ - public function configuration($datafile) { + public function __construct($datafile) { global $conf, $config_cascade; if (!file_exists($datafile)) { @@ -101,7 +101,12 @@ if (!class_exists('configuration')) { } $this->setting[$key] = new $class($key,$param); - $this->setting[$key]->initialize($default[$key],$local[$key],$protected[$key]); + + $d = array_key_exists($key, $default) ? $default[$key] : null; + $l = array_key_exists($key, $local) ? $local[$key] : null; + $p = array_key_exists($key, $protected) ? $protected[$key] : null; + + $this->setting[$key]->initialize($d,$l,$p); } $this->_loaded = true; @@ -434,7 +439,7 @@ if (!class_exists('setting')) { * @param string $key * @param array|null $params array with metadata of setting */ - public function setting($key, $params=null) { + public function __construct($key, $params=null) { $this->_key = $key; if (is_array($params)) { @@ -887,29 +892,6 @@ if (!class_exists('setting_email')) { } } -/** - * @deprecated 2013-02-16 - */ -if (!class_exists('setting_richemail')) { - /** - * Class setting_richemail - */ - class setting_richemail extends setting_email { - /** - * update changed setting with user provided value $input - * - if changed value fails error check, save it - * - * @param mixed $input the new value - * @return boolean true if changed, false otherwise (also on error) - */ - function update($input) { - $this->_placeholders = true; - return parent::update($input); - } - } -} - - if (!class_exists('setting_numeric')) { /** * Class setting_numeric @@ -1209,6 +1191,7 @@ if (!class_exists('setting_multicheckbox')) { var $_choices = array(); var $_combine = array(); + var $_other = 'always'; /** * update changed setting with user provided value $input @@ -1242,7 +1225,7 @@ if (!class_exists('setting_multicheckbox')) { * Build html for label and input of setting * * @param DokuWiki_Plugin $plugin object of config plugin - * @param bool $echo true: show inputted value, when error occurred, otherwise the stored setting + * @param bool $echo true: show input value, when error occurred, otherwise the stored setting * @return string[] with content array(string $label_html, string $input_html) */ function html(&$plugin, $echo=false) { @@ -1292,16 +1275,21 @@ if (!class_exists('setting_multicheckbox')) { } // handle any remaining values - $other = join(',',$value); - - $class = ((count($default) == count($value)) && (count($value) == count(array_intersect($value,$default)))) ? - " selectiondefault" : ""; - - $input .= '<div class="other'.$class.'">'."\n"; - $input .= '<label for="config___'.$key.'_other">'.$plugin->getLang($key.'_other')."</label>\n"; - $input .= '<input id="config___'.$key.'_other" name="config['.$key.'][other]" type="text" class="edit" value="'.htmlspecialchars($other).'" '.$disable." />\n"; - $input .= "</div>\n"; - + if ($this->_other != 'never'){ + $other = join(',',$value); + // test equivalent to ($this->_other == 'always' || ($other && $this->_other == 'exists') + // use != 'exists' rather than == 'always' to ensure invalid values default to 'always' + if ($this->_other != 'exists' || $other) { + + $class = ((count($default) == count($value)) && (count($value) == count(array_intersect($value,$default)))) ? + " selectiondefault" : ""; + + $input .= '<div class="other'.$class.'">'."\n"; + $input .= '<label for="config___'.$key.'_other">'.$plugin->getLang($key.'_other')."</label>\n"; + $input .= '<input id="config___'.$key.'_other" name="config['.$key.'][other]" type="text" class="edit" value="'.htmlspecialchars($other).'" '.$disable." />\n"; + $input .= "</div>\n"; + } + } $label = '<label>'.$this->prompt($plugin).'</label>'; return array($label,$input); } diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index aaa32cd70b9b15ca2210817d1548a93cc59af00e..5323e71f61a770d62c1ca8952fef30bdfa635d64 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -70,6 +70,12 @@ * '_pregflags' - string, default 'ui', valid preg pattern modifiers used when testing regex input values, for more * information see http://uk1.php.net/manual/en/reference.pcre.pattern.modifiers.php * '_multiple' - bool, allow multiple comma separated email values; optional for 'email', ignored by others + * '_other' - how to handle other values (not listed in _choices). accepted values: 'always','exists','never' + * default value 'always'. 'exists' only shows 'other' input field when the setting contains value(s) + * not listed in choices (e.g. due to manual editing or update changing _choices). This is safer than + * 'never' as it will not discard unknown/other values. + * optional for 'multicheckbox', ignored by others + * * * @author Chris Smith <chris@jalakai.co.uk> */ @@ -131,7 +137,10 @@ $meta['_authentication'] = array('fieldset'); $meta['useacl'] = array('onoff','_caution' => 'danger'); $meta['autopasswd'] = array('onoff'); $meta['authtype'] = array('authtype','_caution' => 'danger'); -$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5','mediawiki','bcrypt','djangomd5','djangosha1','sha512')); +$meta['passcrypt'] = array('multichoice','_choices' => array( + 'smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5', + 'mediawiki','bcrypt','djangomd5','djangosha1','djangopbkdf2_sha1','djangopbkdf2_sha256','sha512' +)); $meta['defaultgroup']= array('string'); $meta['superuser'] = array('string','_caution' => 'danger'); $meta['manager'] = array('string'); diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index fd3a90e284e5d6f8afb2935b0d11ba99f36c088c..2445577d1288ae91e933c571b5b56edb7a2c6e10 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -15,12 +15,12 @@ if (!class_exists('setting_sepchar')) { * @param string $key * @param array|null $param array with metadata of setting */ - function setting_sepchar($key,$param=null) { + function __construct($key,$param=null) { $str = '_-.'; for ($i=0;$i<strlen($str);$i++) $this->_choices[] = $str{$i}; // call foundation class constructor - $this->setting($key,$param); + parent::__construct($key,$param); } } } diff --git a/lib/plugins/extension/_test/extension.test.php b/lib/plugins/extension/_test/extension.test.php index 453b95e79355807ee34fd63fd6e3abeec9b0badf..d4f13201d3a63a6c68316ad798850893d5355975 100644 --- a/lib/plugins/extension/_test/extension.test.php +++ b/lib/plugins/extension/_test/extension.test.php @@ -14,7 +14,9 @@ class mock_helper_plugin_extension_extension extends helper_plugin_extension_ext /** * @group plugin_extension + * @group admin_plugins * @group plugins + * @group bundled_plugins */ class helper_plugin_extension_extension_test extends DokuWikiTest { diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php index 6c0946b09acf185d206e8294bea7d6be8da72993..2f44f55ba77310ec245dd87d02623e6130747456 100644 --- a/lib/plugins/extension/helper/extension.php +++ b/lib/plugins/extension/helper/extension.php @@ -105,10 +105,10 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { */ public function isBundled() { if (!empty($this->remoteInfo['bundled'])) return $this->remoteInfo['bundled']; - return in_array($this->base, + return in_array($this->id, array( 'authad', 'authldap', 'authmysql', 'authpgsql', 'authplain', 'acl', 'info', 'extension', - 'revert', 'popularity', 'config', 'safefnrecode', 'testing', 'template:dokuwiki' + 'revert', 'popularity', 'config', 'safefnrecode', 'styling', 'testing', 'template:dokuwiki' ) ); } @@ -578,6 +578,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { try { $installed = $this->installArchive("$tmp/upload.archive", true, $basename); $this->updateManagerData('', $installed); + $this->removeDeletedfiles($installed); // purge cache $this->purgeCache(); }catch (Exception $e){ @@ -598,6 +599,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { $path = $this->download($url); $installed = $this->installArchive($path, true); $this->updateManagerData($url, $installed); + $this->removeDeletedfiles($installed); // purge cache $this->purgeCache(); @@ -623,6 +625,7 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { if (!isset($installed[$this->getID()])) { throw new Exception('Error, the requested extension hasn\'t been installed or updated'); } + $this->removeDeletedfiles($installed); $this->setExtension($this->getID()); $this->purgeCache(); return $installed; @@ -918,7 +921,9 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { if($this->dircopy($item['tmp'], $target)) { // return info $id = $item['base']; - if($item['type'] == 'template') $id = 'template:'.$id; + if($item['type'] == 'template') { + $id = 'template:'.$id; + } $installed_extensions[$id] = array( 'base' => $item['base'], 'type' => $item['type'], @@ -1035,33 +1040,24 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { $ext = $this->guess_archive($file); if(in_array($ext, array('tar', 'bz', 'gz'))) { - switch($ext) { - case 'bz': - $compress_type = Tar::COMPRESS_BZIP; - break; - case 'gz': - $compress_type = Tar::COMPRESS_GZIP; - break; - default: - $compress_type = Tar::COMPRESS_NONE; - } - $tar = new Tar(); try { - $tar->open($file, $compress_type); + $tar = new \splitbrain\PHPArchive\Tar(); + $tar->open($file); $tar->extract($target); - } catch (Exception $e) { + } catch (\splitbrain\PHPArchive\ArchiveIOException $e) { throw new Exception($this->getLang('error_decompress').' '.$e->getMessage()); } return true; } elseif($ext == 'zip') { - $zip = new ZipLib(); - $ok = $zip->Extract($file, $target); - - if($ok == -1){ - throw new Exception($this->getLang('error_decompress').' Error extracting the zip archive'); + try { + $zip = new \splitbrain\PHPArchive\Zip(); + $zip->open($file); + $zip->extract($target); + } catch (\splitbrain\PHPArchive\ArchiveIOException $e) { + throw new Exception($this->getLang('error_decompress').' '.$e->getMessage()); } return true; @@ -1126,6 +1122,40 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin { return true; } + + /** + * Delete outdated files from updated plugins + * + * @param array $installed + */ + private function removeDeletedfiles($installed) { + foreach($installed as $id => $extension) { + // only on update + if($extension['action'] == 'install') continue; + + // get definition file + if($extension['type'] == 'template') { + $extensiondir = DOKU_TPLLIB; + }else{ + $extensiondir = DOKU_PLUGIN; + } + $extensiondir = $extensiondir . $extension['base'] .'/'; + $definitionfile = $extensiondir . 'deleted.files'; + if(!file_exists($definitionfile)) continue; + + // delete the old files + $list = file($definitionfile); + + foreach($list as $line) { + $line = trim(preg_replace('/#.*$/', '', $line)); + if(!$line) continue; + $file = $extensiondir . $line; + if(!file_exists($file)) continue; + + io_rmdir($file, true); + } + } + } } // vim:ts=4:sw=4:et: diff --git a/lib/plugins/extension/helper/gui.php b/lib/plugins/extension/helper/gui.php index 3a0f0c58985ccc1681f38d1f1ed216e21894342c..4ec6fec8561edfdde8cae09c1a295fbf8ac13b2f 100644 --- a/lib/plugins/extension/helper/gui.php +++ b/lib/plugins/extension/helper/gui.php @@ -144,11 +144,11 @@ class helper_plugin_extension_gui extends DokuWiki_Plugin { foreach($this->tabs as $tab) { $url = $this->tabURL($tab); if($this->currentTab() == $tab) { - $class = 'class="active"'; + $class = ' active'; } else { $class = ''; } - echo '<li '.$class.'><a href="'.$url.'">'.$this->getLang('tab_'.$tab).'</a></li>'; + echo '<li class="'.$tab.$class.'"><a href="'.$url.'">'.$this->getLang('tab_'.$tab).'</a></li>'; } echo '</ul>'; } diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 8bcd00ec613a2ca14a7dd5aba15531fc1efc1724..6ca72f7cef90438a2720589fa417a09c4e1df790 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -151,6 +151,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if($extension->isInstalled()) { $class.=' installed'; $class.= ($extension->isEnabled()) ? ' enabled':' disabled'; + if($extension->updateAvailable()) $class .= ' updatable'; } if(!$extension->canModify()) $class.= ' notselect'; if($extension->isProtected()) $class.= ' protected'; @@ -265,7 +266,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return = '<div class="linkbar">'; $return .= $this->make_homepagelink($extension); if ($extension->getBugtrackerURL()) { - $return .= ' <a href="'.hsc($extension->getBugtrackerURL()).'" title="'.hsc($extension->getBugtrackerURL()).'" class ="interwiki iw_dokubug">'.$this->getLang('bugs_features').'</a> '; + $return .= ' <a href="'.hsc($extension->getBugtrackerURL()).'" title="'.hsc($extension->getBugtrackerURL()).'" class ="bugs">'.$this->getLang('bugs_features').'</a> '; } if ($extension->getTags()){ $first = true; @@ -534,7 +535,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $classes = 'button '.$action; $name = 'fn['.$action.']['.hsc($extension->getID()).']'; - return '<input class="'.$classes.'" name="'.$name.'" type="submit" value="'.$this->getLang('btn_'.$action).'" '.$title.' />'; + return '<button class="'.$classes.'" name="'.$name.'" type="submit" '.$title.'>'.$this->getLang('btn_'.$action).'</button> '; } /** diff --git a/lib/images/interwiki/dokubug.gif b/lib/plugins/extension/images/bug.gif similarity index 100% rename from lib/images/interwiki/dokubug.gif rename to lib/plugins/extension/images/bug.gif diff --git a/lib/plugins/extension/lang/bg/intro_install.txt b/lib/plugins/extension/lang/bg/intro_install.txt new file mode 100644 index 0000000000000000000000000000000000000000..34b92484caa8aa5ce76b46c1254963a159cadb7c --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_install.txt @@ -0,0 +1 @@ +От тук можете да инÑталирате ръчно приÑтавки и шаблони като качите архив или поÑочите URL за ÑвалÑне на архива. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_plugins.txt b/lib/plugins/extension/lang/bg/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..927f617dbed895537dc05272eaa99fd8aa2530e9 --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_plugins.txt @@ -0,0 +1 @@ +Това Ñа инÑталираните приÑтавки. От тук можете да ги включвате и изключвате както и да ги деинÑталирате. Тук ще виждате и наличните актуализации, като преди вÑÑка такава прочетете документациÑта на Ñъответната приÑтавка. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_search.txt b/lib/plugins/extension/lang/bg/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..cec4cd243414363b42fab90926a32108c5e6343d --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_search.txt @@ -0,0 +1 @@ +От тук имате доÑтъп до вÑички налични приÑтавки и шаблони за DokuWiki, които Ñа дело на трети лица. Имайте предвид, че кодът им е потенциален **риÑк за ÑигурноÑтта на Ñървъра**! Повече по темата можете да прочетете в [[doku>security#plugin_security|plugin security]] first. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/intro_templates.txt b/lib/plugins/extension/lang/bg/intro_templates.txt new file mode 100644 index 0000000000000000000000000000000000000000..8824b4d8eabc84bb9baa2a1ba37254aec69db3f7 --- /dev/null +++ b/lib/plugins/extension/lang/bg/intro_templates.txt @@ -0,0 +1 @@ +Това Ñа инÑталираните шаблони. Можете да определите кой шаблон да Ñе ползва от [[?do=admin&page=config|ÐаÑтройки]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/bg/lang.php b/lib/plugins/extension/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..dda69a4b9ded484d56812c046215e9c05560b712 --- /dev/null +++ b/lib/plugins/extension/lang/bg/lang.php @@ -0,0 +1,84 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['menu'] = 'ДиÑпечер на приÑтавки'; +$lang['tab_plugins'] = 'ИнÑталирани приÑтавки'; +$lang['tab_templates'] = 'ИнÑталирани шаблони'; +$lang['tab_search'] = 'ТърÑене и инÑталиране'; +$lang['tab_install'] = 'Ръчно инÑталиране'; +$lang['notimplemented'] = 'ФункционалноÑтта вÑе още не реализирана'; +$lang['notinstalled'] = 'ПриÑтавката не е инÑталирана'; +$lang['alreadyenabled'] = 'ПриÑтавката е включена'; +$lang['alreadydisabled'] = 'ПриÑтавката е изключена'; +$lang['pluginlistsaveerror'] = 'Възникна грешка при запиÑването на ÑпиÑъка Ñ Ð¿Ñ€Ð¸Ñтавки'; +$lang['unknownauthor'] = 'ÐеизвеÑтен автор'; +$lang['unknownversion'] = 'ÐеизвеÑтна верÑиÑ'; +$lang['btn_info'] = 'Повече информациÑ'; +$lang['btn_update'] = 'Ðктуализиране'; +$lang['btn_uninstall'] = 'ДеинÑталиране'; +$lang['btn_enable'] = 'Включване'; +$lang['btn_disable'] = 'Изключване'; +$lang['btn_install'] = 'ИнÑталиране'; +$lang['btn_reinstall'] = 'ПреинÑталиране'; +$lang['js']['reallydel'] = 'ÐаиÑтина ли желаете приÑтавката да бъде деинÑталирана?'; +$lang['js']['display_viewoptions'] = 'Филтриране:'; +$lang['js']['display_enabled'] = 'включени'; +$lang['js']['display_disabled'] = 'изключени'; +$lang['js']['display_updatable'] = 'Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸ актуализации'; +$lang['search_for'] = 'ТърÑене за приÑтавки:'; +$lang['search'] = 'ТърÑене'; +$lang['extensionby'] = '<strong>%s</strong> от %s'; +$lang['popularity'] = 'ПопулÑрноÑÑ‚: %s%%'; +$lang['homepage_link'] = 'Документи'; +$lang['tags'] = 'Етикети:'; +$lang['author_hint'] = 'ТърÑене за други приÑтавки от този автор'; +$lang['installed'] = 'ИнÑталирано:'; +$lang['downloadurl'] = 'СвалÑне от URL:'; +$lang['repository'] = 'Хранилище:'; +$lang['unknown'] = '<em>неизвеÑтно</em>'; +$lang['installed_version'] = 'ИнÑталирана верÑиÑ:'; +$lang['install_date'] = 'ПоÑл. актуализиране:'; +$lang['available_version'] = 'Ðалична верÑиÑ:'; +$lang['compatible'] = 'СъвмеÑтимоÑÑ‚ Ñ:'; +$lang['depends'] = 'ИзиÑква:'; +$lang['similar'] = 'ÐаподобÑва:'; +$lang['conflicts'] = 'Ð’ кофликт Ñ:'; +$lang['donate'] = 'ХареÑва ли ви?'; +$lang['donate_action'] = 'Купете на автора кафе!'; +$lang['repo_retry'] = 'Повторен опит'; +$lang['provides'] = 'ОÑигурÑва:'; +$lang['status'] = 'СъÑтоÑние:'; +$lang['status_installed'] = 'инÑталирана'; +$lang['status_not_installed'] = 'неинÑталирана'; +$lang['status_protected'] = 'защитена'; +$lang['status_enabled'] = 'включена'; +$lang['status_disabled'] = 'изключена'; +$lang['status_plugin'] = 'приÑтавка'; +$lang['status_template'] = 'шаблон'; +$lang['msg_enabled'] = 'ПриÑтавката "%s" е включена'; +$lang['msg_disabled'] = 'ПриÑтавката "%s" е изключена'; +$lang['msg_delete_success'] = 'ПриÑтавката "%s" е деинÑталирана'; +$lang['msg_delete_failed'] = 'ДеинÑталирането на приÑтавката "%s" Ñе провали '; +$lang['msg_template_install_success'] = 'Шаблонът "%s" е инÑталиран уÑпешно'; +$lang['msg_template_update_success'] = 'Шаблонът "%s" е актуализиран уÑпешно'; +$lang['msg_plugin_install_success'] = 'ПриÑтавката "%s" е инÑталирана уÑпешно'; +$lang['msg_plugin_update_success'] = 'ПриÑтавката "%s" е актуализирана уÑпешно'; +$lang['msg_upload_failed'] = 'Качването на файлът Ñе провали'; +$lang['missing_dependency'] = '<strong>ИзиÑкван компонент липÑва или е изключен:</strong> %s'; +$lang['security_issue'] = '<strong>Проблем ÑÑŠÑ ÑигурноÑтта:</strong> %s'; +$lang['security_warning'] = '<strong>Предупреждние за ÑигурноÑтта:</strong> %s'; +$lang['update_available'] = '<strong>ÐктуализациÑ:</strong> Ðалична е нова верÑÐ¸Ñ - %s'; +$lang['wrong_folder'] = '<strong>Ðекоректно инÑталирана приÑтавка:</strong> Преименувайте директориÑта "%s" на "%s".'; +$lang['error_badurl'] = 'URL адреÑите трÑбва да започват Ñ http или https'; +$lang['error_dircreate'] = 'Създаването на временна поапка за получаване на файла не е възможно'; +$lang['error_download'] = 'ÐевъзможноÑÑ‚ за ÑвалÑне на файл: %s'; +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° разширението не е доÑтъпна за пиÑане'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° шаблона не е доÑтъпна за пиÑане'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° приÑтавката не е доÑтъпна за пиÑане'; +$lang['install_url'] = 'ИнÑталиране от URL:'; +$lang['install_upload'] = 'Качване:'; +$lang['repo_error'] = 'ÐÑма връзка Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ на добавката. Проверете възможна ли е комуникациÑта www.dokuwiki.org и прокÑи наÑтройките.'; diff --git a/lib/plugins/extension/lang/cs/lang.php b/lib/plugins/extension/lang/cs/lang.php index dc38afd52ad018e11729ac67e78d9f76e3156e1f..1fef75a457359b1963108e0cdac6ccaaeb130c54 100644 --- a/lib/plugins/extension/lang/cs/lang.php +++ b/lib/plugins/extension/lang/cs/lang.php @@ -5,8 +5,9 @@ * * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ -$lang['menu'] = 'Manager rozÅ¡ÃÅ™enÃ'; +$lang['menu'] = 'Správce rozÅ¡ÃÅ™enÃ'; $lang['tab_plugins'] = 'Instalované moduly'; $lang['tab_templates'] = 'Instalované Å¡ablony'; $lang['tab_search'] = 'Vyhledej a instaluj'; @@ -26,6 +27,10 @@ $lang['btn_disable'] = 'Zakázat'; $lang['btn_install'] = 'Instalovat'; $lang['btn_reinstall'] = 'PÅ™einstalovat'; $lang['js']['reallydel'] = 'Opravdu odinstalovat toto rozÅ¡ÃÅ™enÃ?'; +$lang['js']['display_viewoptions'] = 'Zobrazit možnosti:'; +$lang['js']['display_enabled'] = 'povolit'; +$lang['js']['display_disabled'] = 'zakázat'; +$lang['js']['display_updatable'] = 'aktualizovatelné'; $lang['search_for'] = 'Hledat rozÅ¡ÃÅ™enÃ:'; $lang['search'] = 'Hledat'; $lang['extensionby'] = '<strong>%s</strong> od %s'; @@ -62,7 +67,7 @@ $lang['status_template'] = 'Å¡ablona'; $lang['status_bundled'] = 'svázaný'; $lang['msg_enabled'] = 'Zásuvný modul %s povolen'; $lang['msg_disabled'] = 'Zásuvný modul %s zakázán'; -$lang['msg_delete_success'] = 'RozÅ¡ÃÅ™enà odinstalováno'; +$lang['msg_delete_success'] = 'RozÅ¡ÃÅ™enà %s odinstalováno'; $lang['msg_delete_failed'] = 'Odinstalovánà rozÅ¡ÃÅ™enà %s selhalo'; $lang['msg_template_install_success'] = 'Å ablona %s úspěšnÄ› nainstalována'; $lang['msg_template_update_success'] = 'Å ablona %s úspěšnÄ› aktualizována'; diff --git a/lib/plugins/extension/lang/cy/intro_install.txt b/lib/plugins/extension/lang/cy/intro_install.txt new file mode 100644 index 0000000000000000000000000000000000000000..2bc933ec7c8dbb71d58b1b962de4de465a5ec0c4 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_install.txt @@ -0,0 +1 @@ +Gallwch chi arsefydlu ategion a thempledau gan law yma, naill ai gan eu lanlwytho neu gan gyflwyno URL lawrlwytho uniongyrchol. diff --git a/lib/plugins/extension/lang/cy/intro_plugins.txt b/lib/plugins/extension/lang/cy/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd49a7a6b6c65d37bbc47debb37ddd81d98bc019 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_plugins.txt @@ -0,0 +1 @@ +Dyma'r ategion sydd wedi\'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi eu galluogi neu eu hanalluogi nhw neu hyd yn oed eu dad-arsefydlu yn llwyr yma. Caiff diweddariadau'r ategion eu dangos yma hefyd, sicrhewch eich bod chi'n darllen dogfennaeth yr ategyn cyn diweddaru. diff --git a/lib/plugins/extension/lang/cy/intro_search.txt b/lib/plugins/extension/lang/cy/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..8aef9603948fa60637b4f8b2d4621f7fa099d4c0 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_search.txt @@ -0,0 +1 @@ +Mae'r tab hwn yn rhoi mynediad i bob ategyn a thempled 3ydd parti ar gael ar gyfer DokuWiki. Sylwch fod arsefydlu cod 3ydd parti yn achosi **risg diogelwch**. Efallai hoffech chi ddarllen mwy ar [[doku>security#plugin_security|ddiogelwch ategion]] yn gyntaf. \ No newline at end of file diff --git a/lib/plugins/extension/lang/cy/intro_templates.txt b/lib/plugins/extension/lang/cy/intro_templates.txt new file mode 100644 index 0000000000000000000000000000000000000000..49471451fa0f988b3d0657ac325254571d7badb5 --- /dev/null +++ b/lib/plugins/extension/lang/cy/intro_templates.txt @@ -0,0 +1 @@ +Dyma'r templedau sydd wedi'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi ddewis y templed i'w ddefnyddio yn y [[?do=admin&page=config|Rheolwr Ffurfwedd]]. diff --git a/lib/plugins/extension/lang/cy/lang.php b/lib/plugins/extension/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..2a2a8c8fac6d1e430d6904f6fcbbcecc4bbffcba --- /dev/null +++ b/lib/plugins/extension/lang/cy/lang.php @@ -0,0 +1,111 @@ +<?php +/** + * Welsh language file for extension plugin + * + * @author Michael Hamann <michael@content-space.de> + * @author Christopher Smith <chris@jalakai.co.uk> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['menu'] = 'Rheolwr Estyniadau'; + +$lang['tab_plugins'] = 'Ategion a Arsefydlwyd'; +$lang['tab_templates'] = 'Templedau a Arsefydlwyd'; +$lang['tab_search'] = 'Chwilio ac Arsefydlu'; +$lang['tab_install'] = 'Arsefydlu gan Law'; + +$lang['notimplemented'] = '\'Dyw\'r nodwedd hon heb ei rhoi ar waith eto'; +$lang['notinstalled'] = '\'Dyw\'r estyniad hwn heb ei arsefydlu'; +$lang['alreadyenabled'] = 'Cafodd yr estyniad hwn ei alluogi'; +$lang['alreadydisabled'] = 'Cafodd yr estyniad hwn ei analluogi'; +$lang['pluginlistsaveerror'] = 'Roedd gwall wrth gadw\'r rhestr ategion'; +$lang['unknownauthor'] = 'Awdur anhysbys'; +$lang['unknownversion'] = 'Fersiwn anhysbys'; + +$lang['btn_info'] = 'Dangos wybodaeth bellach'; +$lang['btn_update'] = 'Diweddaru'; +$lang['btn_uninstall'] = 'Dad-arsefydlu'; +$lang['btn_enable'] = 'Galluogi'; +$lang['btn_disable'] = 'Analluogi'; +$lang['btn_install'] = 'Arsyfydlu'; +$lang['btn_reinstall'] = 'Ail-arsefydlu'; + +$lang['js']['reallydel'] = 'Ydych chi wir am ddad-arsefydlu\'r estyniad hwn?'; + +$lang['search_for'] = 'Chwilio Estyniadau:'; +$lang['search'] = 'Chwilio'; + +$lang['extensionby'] = '<strong>%s</strong> gan %s'; +$lang['screenshot'] = 'Sgrinlun %s'; +$lang['popularity'] = 'Poblogrwydd: %s%%'; +$lang['homepage_link'] = 'Dogfennau'; +$lang['bugs_features'] = 'Bygiau'; +$lang['tags'] = 'Tagiau:'; +$lang['author_hint'] = 'Chwilio estyniadau gan awdur'; +$lang['installed'] = 'Arsefydlwyd:'; +$lang['downloadurl'] = 'URL Lawlwytho:'; +$lang['repository'] = 'Ystorfa:'; +$lang['unknown'] = '<em>anhysbys</em>'; +$lang['installed_version'] = 'Fersiwn a arsefydlwyd:'; +$lang['install_date'] = 'Eich diweddariad diwethaf:'; +$lang['available_version'] = 'Fersiwn ar gael:'; +$lang['compatible'] = 'Yn gydnaws â:'; +$lang['depends'] = 'Yn dibynnu ar:'; +$lang['similar'] = 'Yn debyg i:'; +$lang['conflicts'] = 'Y gwrthdaro â:'; +$lang['donate'] = 'Fel hwn?'; +$lang['donate_action'] = 'Prynwch goffi i\'r awdur!'; +$lang['repo_retry'] = 'Ailgeisio'; +$lang['provides'] = 'Darparu:'; +$lang['status'] = 'Statws:'; +$lang['status_installed'] = 'arsefydlwyd'; +$lang['status_not_installed'] = 'heb ei arsefydlu'; +$lang['status_protected'] = 'amddiffynwyd'; +$lang['status_enabled'] = 'galluogwyd'; +$lang['status_disabled'] = 'analluogwyd'; +$lang['status_unmodifiable'] = 'methu addasu'; +$lang['status_plugin'] = 'ategyn'; +$lang['status_template'] = 'templed'; +$lang['status_bundled'] = 'bwndlwyd'; + +$lang['msg_enabled'] = 'Galluogwyd ategyn %s'; +$lang['msg_disabled'] = 'Analluogwyd ategyn %s'; +$lang['msg_delete_success'] = 'Dad-arsefydlwyd estyniad %s'; +$lang['msg_delete_failed'] = 'Methodd dad-arsefydlu estyniad %s'; +$lang['msg_template_install_success'] = 'Arsefydlwyd templed %s yn llwyddiannus'; +$lang['msg_template_update_success'] = 'Diweddarwyd templed %s yn llwyddiannus'; +$lang['msg_plugin_install_success'] = 'Arsefydlwyd ategyn %s yn llwyddiannus'; +$lang['msg_plugin_update_success'] = 'Diweddarwyd ategyn %s yn llwyddiannus'; +$lang['msg_upload_failed'] = 'Methodd lanlwytho\'r ffeil'; + +$lang['missing_dependency'] = '<strong>Missing or disabled dependency:</strong> %s'; +$lang['security_issue'] = '<strong>Mater Diogelwch:</strong> %s'; +$lang['security_warning'] = '<strong>Rhybudd Diogelwch:</strong> %s'; +$lang['update_available'] = '<strong>Diweddariad:</strong> Mae fersiwn newydd %s ar gael.'; +$lang['wrong_folder'] = '<strong>Ategyn wedi\'i arsefydlu\'n anghywir:</strong> Ailenwch ffolder yr ategyn o "%s" i "%s".'; +$lang['url_change'] = '<strong>Newid i\'r URL:</strong> Newidiodd yr URL lawlwytho ers y diweddariad diwethaf. Gwiriwch i weld os yw\'r URL newydd yn ddilys cyn diweddaru\'r estyniad.<br />Newydd: %s<br />Hen: %s'; + +$lang['error_badurl'] = 'Dylai URL ddechrau gyda http neu https'; +$lang['error_dircreate'] = 'Methu â chreu ffolder dros dro er mwyn derbyn y lawrlwythiad'; +$lang['error_download'] = 'Methu lawrlwytho\'r ffeil: %s'; +$lang['error_decompress'] = 'Methu datgywasgu\'r ffeil a lawrlwythwyd. Gall hwn fod o ganlyniad i lawrlwythiad gwael, felly ceisiwch eto; neu gall fod fformat y cywasgiad fod yn anhysbys, felly bydd yn rhaid i chi lawlwytho ac arsefydlu gan law.'; +$lang['error_findfolder'] = 'Methu ag adnabod ffolder yr estyniad, bydd angen lawrlwytho ac arsefydlu gan law'; +$lang['error_copy'] = 'Roedd gwall copïo ffeil wrth geisio arsefydlu ffeiliau i\'r ffolder <em>%s</em>: gall fod y ddisgen yn llawn neu gall hawliau mynediad i ffeiliau fod yn anghywir. Gall hwn fod wedi achosi ategyn sydd wedi arsefydlu\'n rhannol ac sydd wedi ansefydlogi\'ch arsefydliad wici'; + +$lang['noperms'] = '\'Sdim modd ysgrifennu i\'r ffolder estyniadau'; +$lang['notplperms'] = '\'Sdim modd ysgrifennu i\'r ffolder templedau'; + +$lang['nopluginperms'] = '\'Sdim modd ysgrifennu i\'r ffolder ategion'; +$lang['git'] = 'Cafodd yr estyniad hwn ei arsefydlu gan git, mae\'n bosib na fyddwch chi am ei ddiweddaru yma.'; +$lang['auth'] = '\'Dyw\'r ategyn dilysu hwn heb ei alluogi yn y ffurfwedd, ystyriwch ei analluogi.'; + +$lang['install_url'] = 'Arsefydlu o URL:'; +$lang['install_upload'] = 'Lanlwytho Estyniad:'; + +$lang['repo_error'] = 'Doedd dim modd cysylltu â\'r ystorfa ategion. Sicrhewch fod hawl gan eich gweinydd i gysylltu â www.dokuwiki.org a gwiriwch eich gosodiadau procsi.'; +$lang['nossl'] = 'Mae\'n debyg \'dyw eich PHP ddim yn cynnal SSL. Na fydd lawrlwytho yn gweithio ar gyfer nifer o estyniadau DokuWiki.'; + +$lang['js']['display_viewoptions'] = 'Opsiynau Golwg:'; +$lang['js']['display_enabled'] = 'galluogwyd'; +$lang['js']['display_disabled'] = 'analluogwyd'; +$lang['js']['display_updatable'] = 'gallu diweddaru'; diff --git a/lib/plugins/extension/lang/de/lang.php b/lib/plugins/extension/lang/de/lang.php index ce5495e243efb2efbb84bd4517497026225aaf44..a47c9360f65d1e02d7b238d403048cb3c0b0bcfe 100644 --- a/lib/plugins/extension/lang/de/lang.php +++ b/lib/plugins/extension/lang/de/lang.php @@ -8,6 +8,8 @@ * @author Simon <st103267@stud.uni-stuttgart.de> * @author Hoisl <hoisl@gmx.at> * @author Dominik Mahr <drache.mahr@gmx.de> + * @author Noel Tilliot <noeltilliot@byom.de> + * @author Philip Knack <p.knack@stollfuss.de> */ $lang['menu'] = 'Erweiterungen verwalten'; $lang['tab_plugins'] = 'Installierte Plugins'; @@ -29,6 +31,10 @@ $lang['btn_disable'] = 'Deaktivieren'; $lang['btn_install'] = 'Installieren'; $lang['btn_reinstall'] = 'Neu installieren'; $lang['js']['reallydel'] = 'Wollen Sie diese Erweiterung wirklich löschen?'; +$lang['js']['display_viewoptions'] = 'Optionen anzeigen'; +$lang['js']['display_enabled'] = 'aktiviert'; +$lang['js']['display_disabled'] = 'deaktiviert'; +$lang['js']['display_updatable'] = 'aktualisierbar'; $lang['search_for'] = 'Erweiterung suchen:'; $lang['search'] = 'Suchen'; $lang['extensionby'] = '<strong>%s</strong> von %s'; @@ -65,7 +71,8 @@ $lang['status_template'] = 'Template'; $lang['status_bundled'] = 'gebündelt'; $lang['msg_enabled'] = 'Plugin %s ist aktiviert'; $lang['msg_disabled'] = 'Erweiterung %s ist deaktiviert'; -$lang['msg_delete_success'] = 'Erweiterung wurde entfernt'; +$lang['msg_delete_success'] = 'Erweiterung %s wurde entfernt'; +$lang['msg_delete_failed'] = 'Deinstallation der Erweiterung %s fehlgeschlagen'; $lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert'; $lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich '; $lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert'; @@ -87,6 +94,8 @@ $lang['noperms'] = 'Das Erweiterungs-Verzeichnis ist schreibgesch $lang['notplperms'] = 'Das Template-Verzeichnis ist schreibgeschützt'; $lang['nopluginperms'] = 'Das Plugin-Verzeichnis ist schreibgeschützt'; $lang['git'] = 'Diese Erweiterung wurde über git installiert und sollte daher nicht hier aktualisiert werden.'; +$lang['auth'] = 'Dieses Auth Plugin ist in der Konfiguration nicht aktiviert, Sie sollten es deaktivieren.'; $lang['install_url'] = 'Von Webadresse (URL) installieren'; $lang['install_upload'] = 'Erweiterung hochladen:'; $lang['repo_error'] = 'Es konnte keine Verbindung zum Plugin-Verzeichnis hergestellt werden. Stellen sie sicher das der Server Verbindung mit www.dokuwiki.org aufnehmen darf und überprüfen sie ihre Proxy Einstellungen.'; +$lang['nossl'] = 'Ihr PHP scheint SSL nicht zu unterstützen. Das Herunterladen vieler DokuWiki Erweiterungen wird scheitern.'; diff --git a/lib/plugins/extension/lang/en/lang.php b/lib/plugins/extension/lang/en/lang.php index f545b6da345c0ac83b32de59c11ad0cddceb35ca..79f64362938b31c1b379496626822923022f5fe6 100644 --- a/lib/plugins/extension/lang/en/lang.php +++ b/lib/plugins/extension/lang/en/lang.php @@ -101,4 +101,9 @@ $lang['install_url'] = 'Install from URL:'; $lang['install_upload'] = 'Upload Extension:'; $lang['repo_error'] = 'The plugin repository could not be contacted. Make sure your server is allowed to contact www.dokuwiki.org and check your proxy settings.'; -$lang['nossl'] = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.'; \ No newline at end of file +$lang['nossl'] = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.'; + +$lang['js']['display_viewoptions'] = 'View Options:'; +$lang['js']['display_enabled'] = 'enabled'; +$lang['js']['display_disabled'] = 'disabled'; +$lang['js']['display_updatable'] = 'updatable'; diff --git a/lib/plugins/extension/lang/eo/lang.php b/lib/plugins/extension/lang/eo/lang.php index 6ce840be8bdce2b9f748b84b3ebc916b1f899772..e0488cb46446ea43d4c9a8e8f8cdcac6ff036d3b 100644 --- a/lib/plugins/extension/lang/eo/lang.php +++ b/lib/plugins/extension/lang/eo/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Robert Bogenschneider <bogi@uea.org> */ $lang['menu'] = 'Aldonaĵa administrado'; @@ -61,7 +61,7 @@ $lang['status_template'] = 'Åablono'; $lang['status_bundled'] = 'kunliverita'; $lang['msg_enabled'] = 'Kromaĵo %s ebligita'; $lang['msg_disabled'] = 'Kromaĵo %s malebligita'; -$lang['msg_delete_success'] = 'Aldonaĵo malinstaliÄis'; +$lang['msg_delete_success'] = 'Aldonaĵo %s malinstaliÄis'; $lang['msg_template_install_success'] = 'Åœablono %s sukcese instaliÄis'; $lang['msg_template_update_success'] = 'Åœablono %s sukcese aktualiÄis'; $lang['msg_plugin_install_success'] = 'Kromaĵo %s sukcese instaliÄis'; diff --git a/lib/plugins/extension/lang/es/intro_plugins.txt b/lib/plugins/extension/lang/es/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..4805021f9833fc6dba3e2d1a2b9ec7464ab7f729 --- /dev/null +++ b/lib/plugins/extension/lang/es/intro_plugins.txt @@ -0,0 +1 @@ +Estos son los plugins actualmente instalados en su DokuWiki. Puede activar, desactivar o incluso desinstalar completamente desde aquÃ. Actualizaciones de los Plugin se muestran también aquÃ, asegúrese de leer la documentación del plugin antes de actualizar. \ No newline at end of file diff --git a/lib/plugins/extension/lang/es/intro_search.txt b/lib/plugins/extension/lang/es/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..f59bb33df7ef0d3d87ac0301d85aac23bbbdb38e --- /dev/null +++ b/lib/plugins/extension/lang/es/intro_search.txt @@ -0,0 +1 @@ +Esta pestaña te da acceso a todos los plugins de 3as partes disponibles y plantillas para DokuWiki. Tenga en cuenta que la instalación de código de terceras partes puede plantear un **riesgo de seguridad**, es posible que desee leer primero sobre [[doku>security#plugin_security|plugin security]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/es/lang.php b/lib/plugins/extension/lang/es/lang.php index a835cb630444d69ec7c024861ebdd7a8cd7da4ba..28cdf86ca9ca0be426a2a93aedb7649b89e6f0ef 100644 --- a/lib/plugins/extension/lang/es/lang.php +++ b/lib/plugins/extension/lang/es/lang.php @@ -7,6 +7,8 @@ * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> * @author Ãlvaro Iradier <airadier@gmail.com> + * @author Mauricio Segura <maose38@yahoo.es> + * @author Domingo Redal <docxml@gmail.com> */ $lang['menu'] = 'Administrador de Extensiones '; $lang['tab_plugins'] = 'Plugins instalados'; @@ -28,6 +30,10 @@ $lang['btn_disable'] = 'Desactivar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Reinstalar'; $lang['js']['reallydel'] = '¿Realmente quiere desinstalar esta extensión?'; +$lang['js']['display_viewoptions'] = 'Ver opciones:'; +$lang['js']['display_enabled'] = 'habilitado'; +$lang['js']['display_disabled'] = 'deshabilitado'; +$lang['js']['display_updatable'] = 'actualizable'; $lang['search_for'] = 'Extensión de búsqueda :'; $lang['search'] = 'Buscar'; $lang['extensionby'] = '<strong>%s</strong> por %s'; @@ -64,7 +70,7 @@ $lang['status_template'] = 'plantilla'; $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Plugin %s activado'; $lang['msg_disabled'] = 'Plugin %s desactivado'; -$lang['msg_delete_success'] = 'Extensión desinstalada'; +$lang['msg_delete_success'] = 'Extensión %s desinstalada'; $lang['msg_delete_failed'] = 'La desinstalación de la extensión %s ha fallado'; $lang['msg_template_install_success'] = 'Plantilla %s instalada con éxito'; $lang['msg_template_update_success'] = 'Plantilla %s actualizada con éxito'; @@ -81,9 +87,14 @@ $lang['error_badurl'] = 'URLs deberÃan empezar con http o https'; $lang['error_dircreate'] = 'No es posible de crear un directorio temporero para poder recibir el download'; $lang['error_download'] = 'No es posible descargar el documento: %s'; $lang['error_decompress'] = 'No se pudo descomprimir el fichero descargado. Puede ser a causa de una descarga incorrecta, en cuyo caso puedes intentarlo de nuevo; o puede que el formato de compresión sea desconocido, en cuyo caso necesitarás descargar e instalar manualmente.'; +$lang['error_findfolder'] = 'No se ha podido identificar el directorio de la extensión, es necesario descargar e instalar manualmente'; +$lang['error_copy'] = 'Hubo un error durante la copia de archivos al intentar instalar los archivos del directorio <em>%s</em>: el disco puede estar lleno o los permisos de acceso a los archivos pueden ser incorrectos. Esto puede haber dado lugar a un plugin instalado parcialmente y dejar su instalación wiki inestable'; $lang['noperms'] = 'El directorio de extensiones no tiene permiso de escritura.'; $lang['notplperms'] = 'El directorio de plantillas no tiene permiso de escritura.'; +$lang['nopluginperms'] = 'No se puede escribir en el directorio de plugins'; $lang['git'] = 'Esta extensión fue instalada a través de git, quizás usted no quiera actualizarla aquà mismo.'; +$lang['auth'] = 'Este plugin de autenticación no está habilitada en la configuración, considere la posibilidad de desactivarlo.'; $lang['install_url'] = 'Instalar desde URL:'; $lang['install_upload'] = 'Subir Extensión:'; $lang['repo_error'] = 'El repositorio de plugins no puede ser contactado. Asegúrese que su servidor pueda contactar www.dokuwiki.org y verificar la configuración de su proxy.'; +$lang['nossl'] = 'Tu PHP parece no tener soporte SSL. Las descargas no funcionaran para muchas extensiones de DokuWiki.'; diff --git a/lib/plugins/extension/lang/fa/intro_install.txt b/lib/plugins/extension/lang/fa/intro_install.txt new file mode 100644 index 0000000000000000000000000000000000000000..93c2b9734db7d4615e5940e478e4af98e44e86f7 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_install.txt @@ -0,0 +1 @@ +در اینجا می‌توانید Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ùˆ قالب‌ها را به صورت دستی از طریق آپلودشان یا با ارائهٔ لینک مستقیم دانلود نصب کنید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_plugins.txt b/lib/plugins/extension/lang/fa/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d7d331b358f3da10080979e96ee8c6f11b52260 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_plugins.txt @@ -0,0 +1 @@ +این‌ها Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒÛŒ است Ú©Ù‡ اکنون روی داکو ویکی شما نصب می‌باشند. از اینجا می‌توانید آن‌ها را ØºÛŒØ±ÙØ¹Ø§Ù„ØŒ ÙØ¹Ø§Ù„ یا به طور کامل ØØ°Ù نمایید. به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ نیز در اینجا نمایش داده می‌شود. پیش از به‌روزرسانی مطمئن شوید Ú©Ù‡ مستندات Ø§ÙØ²ÙˆÙ†Ù‡ را مطالعه نموده‌اید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_search.txt b/lib/plugins/extension/lang/fa/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..07fde76c1c6a2fa28e1ffe0cc9e50c47df229900 --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_search.txt @@ -0,0 +1 @@ +این شاخه به تمام Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ùˆ قالب‌های نسل سوم داکو ویکی دسترسی می‌دهد. Ù„Ø·ÙØ§ دقت کنید Ú©Ù‡ نصب کد نسل سوم یک **ریسک امنیتی** است برای همین بهتر است Ú©Ù‡ ابتدا [[doku>security#plugin_security|امنیت Ø§ÙØ²ÙˆÙ†Ù‡]] را مطالعه نمایید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/intro_templates.txt b/lib/plugins/extension/lang/fa/intro_templates.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a127c0ce4126b7803bf50c8758df414f3c7e96d --- /dev/null +++ b/lib/plugins/extension/lang/fa/intro_templates.txt @@ -0,0 +1 @@ +این‌ها قالب‌هاییست Ú©Ù‡ اکنون در داکو ویکی شما نصب می‌باشد. شما می‌توانید قالبی Ú©Ù‡ می‌خواهید Ø§Ø³ØªÙØ§Ø¯Ù‡ شود را در [[?do=admin&page=config|تنظیمات پیکربندی]] انتخاب نمایید. \ No newline at end of file diff --git a/lib/plugins/extension/lang/fa/lang.php b/lib/plugins/extension/lang/fa/lang.php index 95c3e9652cf199ca2a5022f1e570dab83e930bbe..aa0613f91df87f0a24f7491f66cba7cd144759bc 100644 --- a/lib/plugins/extension/lang/fa/lang.php +++ b/lib/plugins/extension/lang/fa/lang.php @@ -4,37 +4,93 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'مدیریت Ø§ÙØ²ÙˆÙ†Ù‡ ها'; $lang['tab_plugins'] = 'پلاگین های نصب شده'; $lang['tab_templates'] = 'قالب های نصب شده'; $lang['tab_search'] = 'جستجو Ùˆ نصب'; $lang['tab_install'] = 'نصب دستی'; +$lang['notimplemented'] = 'این قابلیت هنوز پیاده‌سازی نشده'; $lang['notinstalled'] = 'این Ø§ÙØ²ÙˆÙ†Ù‡ نصب نشده است'; $lang['alreadyenabled'] = 'این Ø§ÙØ²ÙˆÙ†Ù‡ ÙØ¹Ø§Ù„ شده است'; $lang['alreadydisabled'] = 'این Ø§ÙØ²ÙˆÙ†Ù‡ ØºÛŒØ±ÙØ¹Ø§Ù„ شده است'; +$lang['pluginlistsaveerror'] = 'یک خطا هنگام ذخیره‌سازی این Ø§ÙØ²ÙˆÙ†Ù‡ رخ داده'; +$lang['unknownauthor'] = 'نویسنده نامشخص'; $lang['unknownversion'] = 'نسخه ناشناخته'; $lang['btn_info'] = 'نمایش اطلاعات بیشتر'; $lang['btn_update'] = 'به روز رسانی'; +$lang['btn_uninstall'] = 'ØØ°Ù'; $lang['btn_enable'] = 'ÙØ¹Ø§Ù„'; $lang['btn_disable'] = 'ØºÛŒØ±ÙØ¹Ø§Ù„'; $lang['btn_install'] = 'نصب'; $lang['btn_reinstall'] = 'نصب مجدد'; +$lang['js']['reallydel'] = 'واقعا می‌خواهید این Ø§ÙØ²ÙˆÙ†Ù‡ را ØØ°Ù کنید؟'; +$lang['js']['display_viewoptions'] = 'نمایش گزینه‌ها:'; +$lang['js']['display_enabled'] = 'ÙØ¹Ø§Ù„'; +$lang['js']['display_disabled'] = 'ØºÛŒØ±ÙØ¹Ø§Ù„'; +$lang['js']['display_updatable'] = 'قابل به‌روزرسانی'; $lang['search_for'] = 'جستجوی Ø§ÙØ²ÙˆÙ†Ù‡:'; $lang['search'] = 'جستجو'; +$lang['extensionby'] = '<strong>%s</strong> به وسیلهٔ %s'; +$lang['screenshot'] = 'اسکرینشات %s'; +$lang['popularity'] = 'Ù…ØØ¨ÙˆØ¨ÛŒØª: %s%%'; +$lang['homepage_link'] = 'مستندات'; +$lang['bugs_features'] = 'اشکالات'; $lang['tags'] = 'برچسب ها:'; +$lang['author_hint'] = 'جستجوی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ این نویسنده'; +$lang['installed'] = 'نصب شده:'; +$lang['downloadurl'] = 'لینک دانلود:'; +$lang['repository'] = 'مخزن:'; +$lang['unknown'] = '<em>ناشناخته</em>'; $lang['installed_version'] = 'نسخه نصب شده:'; +$lang['install_date'] = 'آخرین به‌روزرسانی شما:'; $lang['available_version'] = 'نسخه در دسترس:'; +$lang['compatible'] = 'سازگار با:'; +$lang['depends'] = 'وابسته به:'; +$lang['similar'] = 'شبیه به:'; +$lang['conflicts'] = 'تداخل دارد با:'; +$lang['donate'] = 'به این علاقه‌مندید؟'; +$lang['donate_action'] = 'برای نویسنده یک Ùنجان قهوه بخرید!'; $lang['repo_retry'] = 'دوباره'; +$lang['provides'] = 'شامل می‌شود:'; $lang['status'] = 'وضعیت'; $lang['status_installed'] = 'نصب شده'; $lang['status_not_installed'] = 'نصب نشده'; +$lang['status_protected'] = 'Ù…ØØ§Ùظت شده'; $lang['status_enabled'] = 'ÙØ¹Ø§Ù„'; $lang['status_disabled'] = 'ØºÛŒØ±ÙØ¹Ø§Ù„'; +$lang['status_unmodifiable'] = 'غیرقابل تغییر'; $lang['status_plugin'] = 'پلاگین'; $lang['status_template'] = 'قالب'; +$lang['status_bundled'] = 'باندل شده'; +$lang['msg_enabled'] = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s ÙØ¹Ø§Ù„ شده'; +$lang['msg_disabled'] = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s ØºÛŒØ±ÙØ¹Ø§Ù„ شده'; +$lang['msg_delete_success'] = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s ØØ°Ù شده'; +$lang['msg_delete_failed'] = 'ØØ°Ù Ø§ÙØ²ÙˆÙ†Ù‡ %s ناموÙÙ‚ بود'; +$lang['msg_template_install_success'] = 'قالب %s با موÙقیت نصب شد'; +$lang['msg_template_update_success'] = 'قالب %s با موÙقیت به‌روزرسانی شد'; +$lang['msg_plugin_install_success'] = 'Ø§ÙØ²ÙˆÙ†Ù‡Ù” %s با موÙقیت نصب شد'; +$lang['msg_plugin_update_success'] = 'Ø§ÙØ²ÙˆÙ†Ù‡Ù” %s با موÙقیت نصب شد'; +$lang['msg_upload_failed'] = 'بارگذاری ÙØ§ÛŒÙ„ ناموÙÙ‚ بود'; +$lang['missing_dependency'] = '<strong>نیازمندی وجود ندارد یا ØºÛŒØ±ÙØ¹Ø§Ù„ است:</strong> %s'; +$lang['security_issue'] = '<strong>اشکال امنیتی:</strong> %s'; +$lang['security_warning'] = '<strong>اخطار امنیتی:</strong> %s'; +$lang['update_available'] = '<strong>به‌روزرسانی</strong> نسخهٔ جدید %s موجود است.'; +$lang['wrong_folder'] = '<strong>Ø§ÙØ²ÙˆÙ†Ù‡ اشتباه نصب شده:</strong> نام پوشهٔ Ø§ÙØ²ÙˆÙ†Ù‡ را از "%s" به "%s" تغییر دهید.'; +$lang['url_change'] = '<strong>لینک تغییر کرد:</strong> لینک دانلود از آخرین دانلود تغییر کرد. پیش از به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡ØŒ Ú†Ú© کنید Ú©Ù‡ لینک جدید درست باشد.<br />جدید: %s<br />قدیمی: %s'; +$lang['error_badurl'] = 'لینک‌ها باید با http یا https شروع شوند'; +$lang['error_dircreate'] = 'امکان ایجاد پوشهٔ موقت برای Ø¯Ø±ÛŒØ§ÙØª دانلود وجود ندارد'; +$lang['error_download'] = 'امکان دانلود ÙØ§ÛŒÙ„ وجود ندارد: %s'; +$lang['error_decompress'] = 'امکان خارج کردن ÙØ§ÛŒÙ„ دانلود شده از ØØ§Ù„ت ÙØ´Ø±Ø¯Ù‡ وجود ندارد. این می‌توانید در اثر دانلود ناقص باشد Ú©Ù‡ در اینصورت باید دوباره تلاش کنید؛ یا اینکه ÙØ±Ù…ت ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ نامعلوم است Ú©Ù‡ در اینصورت باید به صورت دستی دانلود Ùˆ نصب نمایید.'; +$lang['error_findfolder'] = 'امکان تشخیص پوشهٔ Ø§ÙØ²ÙˆÙ†Ù‡ وجود ندارد. باید به صورت دستی دانلود Ùˆ نصب کنید.'; +$lang['error_copy'] = 'هنگام تلاش برای نصب ÙØ§ÛŒÙ„‌ها برای پوشهٔ <em>%s</em> خطای Ú©Ù¾ÛŒ ÙØ§ÛŒÙ„ وجود دارد: رسانه ذخیره‌سازی می‌تواند پر باشد یا پرمیشن‌های ÙØ§ÛŒÙ„ نادرست است. این می‌تواند باعث نصب بخشی از Ø§ÙØ²ÙˆÙ†Ù‡ شده باشد Ùˆ ویکی را ناپایدار نماید.'; $lang['noperms'] = 'پوشه Ø§ÙØ²ÙˆÙ†Ù‡ ها قابل نوشتن نیست'; $lang['notplperms'] = 'پوشه قالب ها قابل نوشتن نیست'; $lang['nopluginperms'] = 'پوشه پلاگین ها قابل نوشتن نیست'; +$lang['git'] = 'این Ø§ÙØ²ÙˆÙ†Ù‡ از طریق گیت نصب شده، شما نباید آن را از اینجا به‌روزرسانی کنید.'; +$lang['auth'] = 'این Ø§ÙØ²ÙˆÙ†Ù‡Ù” auth در بخش تنظیمات ÙØ¹Ø§Ù„ نشده، ØºÛŒØ±ÙØ¹Ø§Ù„Ø´ کنید.'; $lang['install_url'] = 'نصب از آدرس:'; $lang['install_upload'] = 'بارگذاری Ø§ÙØ²ÙˆÙ†Ù‡:'; +$lang['repo_error'] = 'امکان ارتباط با مخزن Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ وجود ندارد. مطمئن شوید Ú©Ù‡ سرور شما اجازهٔ ارتباط با www.dokuwiki.org را دارد Ùˆ تنظیمات پراکسی را Ú†Ú© کنید.'; +$lang['nossl'] = 'به نظر می‌آید Ú©Ù‡ PHP شما از SSL پشتیبانی نمی‌کند. دانلود کردن برای بسیاری از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ داکو ویکی کار نمی‌کند.'; diff --git a/lib/plugins/extension/lang/fr/lang.php b/lib/plugins/extension/lang/fr/lang.php index 44d4038470c14b453d2c57f26f87b72a23fef487..e3dff49120cc86511b7b7b327a87b4400870ddf0 100644 --- a/lib/plugins/extension/lang/fr/lang.php +++ b/lib/plugins/extension/lang/fr/lang.php @@ -5,6 +5,8 @@ * * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author Yves Grandvalet <Yves.Grandvalet@laposte.net> + * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> */ $lang['menu'] = 'Gestionnaire d\'extensions'; $lang['tab_plugins'] = 'Greffons installés'; @@ -26,18 +28,22 @@ $lang['btn_disable'] = 'Désactiver'; $lang['btn_install'] = 'Installer'; $lang['btn_reinstall'] = 'Réinstaller'; $lang['js']['reallydel'] = 'Vraiment désinstaller cette extension'; +$lang['js']['display_viewoptions'] = 'Voir les options:'; +$lang['js']['display_enabled'] = 'activé'; +$lang['js']['display_disabled'] = 'désactivé'; +$lang['js']['display_updatable'] = 'Mise à jour possible'; $lang['search_for'] = 'Rechercher l\'extension :'; $lang['search'] = 'Chercher'; $lang['extensionby'] = '<strong>%s</strong> de %s'; $lang['screenshot'] = 'Aperçu de %s'; $lang['popularity'] = 'Popularité : %s%%'; $lang['homepage_link'] = 'Documents'; -$lang['bugs_features'] = 'Bugs'; +$lang['bugs_features'] = 'Bogues'; $lang['tags'] = 'Étiquettes :'; $lang['author_hint'] = 'Chercher les extensions de cet auteur'; $lang['installed'] = 'Installés :'; $lang['downloadurl'] = 'URL de téléchargement :'; -$lang['repository'] = 'Entrepôt : '; +$lang['repository'] = 'Dépôt : '; $lang['unknown'] = '<em>inconnu</em>'; $lang['installed_version'] = 'Version installée :'; $lang['install_date'] = 'Votre dernière mise à jour :'; @@ -63,24 +69,24 @@ $lang['status_bundled'] = 'fourni'; $lang['msg_enabled'] = 'Greffon %s activé'; $lang['msg_disabled'] = 'Greffon %s désactivé'; $lang['msg_delete_success'] = 'Extension %s désinstallée.'; -$lang['msg_delete_failed'] = 'Echec de la désinstallation de l\'extension %s'; -$lang['msg_template_install_success'] = 'Thème %s installée avec succès'; +$lang['msg_delete_failed'] = 'Échec de la désinstallation de l\'extension %s'; +$lang['msg_template_install_success'] = 'Thème %s installé avec succès'; $lang['msg_template_update_success'] = 'Thème %s mis à jour avec succès'; $lang['msg_plugin_install_success'] = 'Greffon %s installé avec succès'; $lang['msg_plugin_update_success'] = 'Greffon %s mis à jour avec succès'; $lang['msg_upload_failed'] = 'Téléversement échoué'; $lang['missing_dependency'] = '<strong>Dépendance absente ou désactivée :</strong> %s'; $lang['security_issue'] = '<strong>Problème de sécurité :</strong> %s'; -$lang['security_warning'] = '<strong>Avertissement deSécurité :</strong> %s'; -$lang['update_available'] = '<strong>Mise à jour :</strong> La version %s est disponible.'; -$lang['wrong_folder'] = '<strong>Greffon installé incorrectement :</strong> Renomer le dossier du greffon "%s" en "%s".'; +$lang['security_warning'] = '<strong>Avertissement de sécurité :</strong> %s'; +$lang['update_available'] = '<strong>Mise à jour :</strong> la version %s est disponible.'; +$lang['wrong_folder'] = '<strong>Greffon installé incorrectement :</strong> renommer le dossier du greffon "%s" en "%s".'; $lang['url_change'] = '<strong>URL modifié :</strong> L\'URL de téléchargement a changé depuis le dernier téléchargement. Vérifiez si l\'URL est valide avant de mettre à jour l\'extension.<br />Nouvel URL : %s<br />Ancien : %s'; $lang['error_badurl'] = 'Les URL doivent commencer par http ou https'; $lang['error_dircreate'] = 'Impossible de créer le dossier temporaire pour le téléchargement.'; $lang['error_download'] = 'Impossible de télécharger le fichier : %s'; $lang['error_decompress'] = 'Impossible de décompresser le fichier téléchargé. C\'est peut être le résultat d\'une erreur de téléchargement, auquel cas vous devriez réessayer. Le format de compression est peut-être inconnu. Dans ce cas il vous faudra procéder à une installation manuelle.'; -$lang['error_findfolder'] = 'Impossible d\'idnetifier le dossier de l\'extension. vous devez procéder à une installation manuelle.'; -$lang['error_copy'] = 'Une erreur de copie de fichier s\'est produite lors de l\'installation des fichiers dans le dossier <em>%s</em>. Il se peut que le disque soit plein, ou que les permissions d\'accès aux fichiers soient incorrectes. Il est possible que le greffon soit partiellement installé et que cela laisse votre installation de DoluWiki instable.'; +$lang['error_findfolder'] = 'Impossible d\'identifier le dossier de l\'extension. Vous devez procéder à une installation manuelle.'; +$lang['error_copy'] = 'Une erreur de copie de fichier s\'est produite lors de l\'installation des fichiers dans le dossier <em>%s</em>. Il se peut que le disque soit plein, ou que les permissions d\'accès aux fichiers soient incorrectes. Il est possible que le greffon soit partiellement installé et que cela laisse votre installation de DokuWiki instable.'; $lang['noperms'] = 'Impossible d\'écrire dans le dossier des extensions.'; $lang['notplperms'] = 'Impossible d\'écrire dans le dossier des thèmes.'; $lang['nopluginperms'] = 'Impossible d\'écrire dans le dossier des greffons.'; @@ -88,5 +94,5 @@ $lang['git'] = 'Cette extension a été installé via git, vou $lang['auth'] = 'Votre configuration n\'utilise pas ce greffon d\'authentification. Vous devriez songer à le désactiver.'; $lang['install_url'] = 'Installez depuis l\'URL :'; $lang['install_upload'] = 'Téléversez l\'extension :'; -$lang['repo_error'] = 'L\'entrepôt d\'extensions est injoignable. Veuillez vous assurer que le server web est autorisé à contacter www.dokuwiki.org et vérifier les réglages de proxy.'; +$lang['repo_error'] = 'Le dépôt d\'extensions est injoignable. Veuillez vous assurer que le server web est autorisé à contacter www.dokuwiki.org et vérifier les réglages de proxy.'; $lang['nossl'] = 'Votre version de PHP semble ne pas prendre en charge SSL. Le téléchargement de nombreuses extensions va échouer.'; diff --git a/lib/plugins/extension/lang/hr/intro_install.txt b/lib/plugins/extension/lang/hr/intro_install.txt index fc2d22f52f8ddefd5c09669cc1270c0701c1b6f1..f3274b0f78a4c8b7f3be5c014883615efc337330 100644 --- a/lib/plugins/extension/lang/hr/intro_install.txt +++ b/lib/plugins/extension/lang/hr/intro_install.txt @@ -1 +1 @@ -Ovdje možete ruÄno instalirati dodatak (plugin) i predložak (template) bilo uÄitavanjem ili specificiranjem URL-a za direktno uÄitavanje. \ No newline at end of file +Ovdje možete ruÄno postaviti dodatak (plugin) i predložak (template) bilo uÄitavanjem ili navoÄ‘enjem URL adrese za direktno uÄitavanje. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_plugins.txt b/lib/plugins/extension/lang/hr/intro_plugins.txt index fdc629d62f6518171087aca2d628dafb29301db2..0c458ee432bd7bed4afeb515f3c6cbdf2d831bd5 100644 --- a/lib/plugins/extension/lang/hr/intro_plugins.txt +++ b/lib/plugins/extension/lang/hr/intro_plugins.txt @@ -1 +1 @@ -Ovo su dodaci (plugin) trenutno instalirani na VaÅ¡em DokuWiku-u. Možete ih omogućiti, onemogućiti ili u potpunosti deinstalirati. Nadogradnje dodataka su takoÄ‘er prikazane, obavezno proÄitajte dokumentaciju dodatka prije nadogradnje. \ No newline at end of file +Ovo su dodaci (plugin) trenutno postavljeni na VaÅ¡em DokuWiku-u. Možete ih omogućiti, onemogućiti ili u potpunosti ukloniti. Nadogradnje dodataka su takoÄ‘er prikazane, obavezno proÄitajte dokumentaciju dodatka prije nadogradnje. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_search.txt b/lib/plugins/extension/lang/hr/intro_search.txt index 93bf4b000365f1b8cdd7f3b8eebf9bce4008d4b4..405690581cd829e5518d5c376145a07d0a5d3b48 100644 --- a/lib/plugins/extension/lang/hr/intro_search.txt +++ b/lib/plugins/extension/lang/hr/intro_search.txt @@ -1 +1 @@ -Ovaj tab vam pruža pristup dostupnim dodatcima i predloÅ¡cima za DokuWiki od treće strane. Molimo budite svjesni da instaliranje koda od treće strane može biti **sigurnosni rizik**, možda želite prvo proÄitati o [[doku>security#plugin_security|sigurnosti dodataka]]. \ No newline at end of file +Ovdje možete potražiti i druge dostupne dodatke i predloÅ¡ke za DokuWiki. Molimo budite svjesni da postavljanje koda razvijenog od treće strane može biti **sigurnosni rizik**, možda želite prvo proÄitati o [[doku>security#plugin_security|sigurnosti dodataka]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hr/intro_templates.txt b/lib/plugins/extension/lang/hr/intro_templates.txt index 968906cf971c72a814ee1822524c0d09ee637d95..76dafe6b7a18703c9c83003104028f84411b4987 100644 --- a/lib/plugins/extension/lang/hr/intro_templates.txt +++ b/lib/plugins/extension/lang/hr/intro_templates.txt @@ -1 +1 @@ -Ovo su predloÅ¡ci trenutno instalirani na VaÅ¡em DokuWiki-u. Možete odabrati koji se predložak koristi na [[?do=admin&page=config|Upravitelju postavki]]. \ No newline at end of file +Ovo su predloÅ¡ci trenutno postavljeni na VaÅ¡em DokuWiki-u. Koji se predložak koristi možete odabrati na [[?do=admin&page=config|Upravitelju postavki]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/hu/lang.php b/lib/plugins/extension/lang/hu/lang.php index a27b5a3079f12279ece6fc9e3711e362afc867ef..7d531e15b359fb795eadbed4396d0f00247fbd13 100644 --- a/lib/plugins/extension/lang/hu/lang.php +++ b/lib/plugins/extension/lang/hu/lang.php @@ -25,6 +25,10 @@ $lang['btn_disable'] = 'Letiltás'; $lang['btn_install'] = 'TelepÃtés'; $lang['btn_reinstall'] = 'ÚjratelepÃtés'; $lang['js']['reallydel'] = 'Biztosan törlöd ezt a bÅ‘vÃtményt?'; +$lang['js']['display_viewoptions'] = 'Nézet beállÃtásai:'; +$lang['js']['display_enabled'] = 'engedélyezve'; +$lang['js']['display_disabled'] = 'letiltva'; +$lang['js']['display_updatable'] = 'frissÃthetÅ‘'; $lang['search_for'] = 'BÅ‘vÃtmények keresése:'; $lang['search'] = 'Keresés'; $lang['extensionby'] = '<strong>%s</strong>, %s szerzÅ‘tÅ‘l'; @@ -61,7 +65,8 @@ $lang['status_template'] = 'sablon'; $lang['status_bundled'] = 'beépÃtett'; $lang['msg_enabled'] = 'A(z) %s modul engedélyezve'; $lang['msg_disabled'] = 'A(z) %s modul letiltva'; -$lang['msg_delete_success'] = 'A bÅ‘vÃtmény törölve'; +$lang['msg_delete_success'] = 'A bÅ‘vÃtmény %s törölve'; +$lang['msg_delete_failed'] = 'A(z) %s bÅ‘vÃtmény eltávolÃtása sikertelen'; $lang['msg_template_install_success'] = 'A(z) %s sablon sikeresen telepÃtve'; $lang['msg_template_update_success'] = 'A(z) %s sablon sikeresen frissÃtve'; $lang['msg_plugin_install_success'] = 'A(z) %s modul sikeresen telepÃtve'; @@ -83,6 +88,8 @@ $lang['noperms'] = 'A bÅ‘vÃtmény könyvtára nem Ãrható'; $lang['notplperms'] = 'A sablon könyvtára nem Ãrható'; $lang['nopluginperms'] = 'A modul könyvtára nem Ãrható'; $lang['git'] = 'Ezt a bÅ‘vÃtményt git-tel telepÃtették, lehet, hogy nem itt célszerű frissÃteni'; +$lang['auth'] = 'Ez az autentikációs modul nincs engedélyezve a beállÃtásokban, érdemes lehet letiltani.'; $lang['install_url'] = 'TelepÃtés errÅ‘l az URL-rÅ‘l:'; $lang['install_upload'] = 'BÅ‘vÃtmény feltöltése:'; $lang['repo_error'] = 'A modul repository-ja nem érhetÅ‘ el. Bizonyosodj meg róla, hogy a szervereden engedélyezett a www.dokuwiki.org cÃm elérése és ellenÅ‘rizd a proxy beállÃtásaidat!'; +$lang['nossl'] = 'Úgy tűnik, a PHP konfigurációd nem támogatja az SSL-t. Néhány DokuWiki bÅ‘vÃtmény letöltése sikertelen lehet.'; diff --git a/lib/plugins/extension/lang/it/intro_install.txt b/lib/plugins/extension/lang/it/intro_install.txt new file mode 100644 index 0000000000000000000000000000000000000000..5106500bae7a1385fed530a9a28269bdd5434b75 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_install.txt @@ -0,0 +1 @@ +Qui potete installare manualmente plugin e template, sia caricandoli in upload sia fornendo una URL per scaricarli direttamente. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/intro_plugins.txt b/lib/plugins/extension/lang/it/intro_plugins.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd7825fb2a695d2996caa421f126b4fd121710ed --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_plugins.txt @@ -0,0 +1 @@ +Questi sono i plugin attualmente installati nel vostro DokuWiki. Qui potete abilitarli o disabilitarli o addirittura disinstallarli completamente. Qui sono mostrati anche gli aggiornamenti dei plugin, assicurativi di leggere la relativa documentazione prima di aggiornarli. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/intro_search.txt b/lib/plugins/extension/lang/it/intro_search.txt new file mode 100644 index 0000000000000000000000000000000000000000..fb77d36837fbc6caabce43e3aa71a93107a0d757 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_search.txt @@ -0,0 +1 @@ +Questa sezione ti da accesso a tutti i plugin e temi di terze parti disponibili per DokuWiki. Sappi che l'installazione di codice di terze parti potrebbe rappresentare un **rischio di sicurezza**, quindi, forse, prima vorresti informarti a proposito della [[doku>security#plugin_security|sicurezza dei plugin]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/intro_templates.txt b/lib/plugins/extension/lang/it/intro_templates.txt new file mode 100644 index 0000000000000000000000000000000000000000..a38d86814694734e5029202d01e982f5d9c7e010 --- /dev/null +++ b/lib/plugins/extension/lang/it/intro_templates.txt @@ -0,0 +1 @@ +Questi sono i temi attualmente installati nel tuo DokuWiki. Puoi selezionare il tema da usare in [[?do=admin&page=config|Configurazione Wiki]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/it/lang.php b/lib/plugins/extension/lang/it/lang.php index 1aa658e0f9cba8ea6b3b81bf416355c7c25f16b3..d22cb9d52ba8aff7cf8105bb162827111c15db22 100644 --- a/lib/plugins/extension/lang/it/lang.php +++ b/lib/plugins/extension/lang/it/lang.php @@ -6,7 +6,18 @@ * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> * @author Torpedo <dgtorpedo@gmail.com> + * @author Maurizio <mcannavo@katamail.com> */ +$lang['menu'] = 'Manager delle Extension'; +$lang['tab_plugins'] = 'Plugin Installati'; +$lang['tab_templates'] = 'Template Installati'; +$lang['tab_search'] = 'Ricerca e Installazione'; +$lang['tab_install'] = 'Installazione Manuale'; +$lang['notimplemented'] = 'Questa funzionalità non è ancora stata implementata'; +$lang['notinstalled'] = 'Questa extension non è installata'; +$lang['alreadyenabled'] = 'Questa extension è già stata abilitata'; +$lang['alreadydisabled'] = 'Questa extension à già stata disabilitata'; +$lang['pluginlistsaveerror'] = 'Si è verificato un errore durante il salvataggio dell\'elenco dei plugin'; $lang['unknownauthor'] = 'Autore sconosciuto'; $lang['unknownversion'] = 'Revisione sconosciuta'; $lang['btn_info'] = 'Mostra maggiori informazioni'; @@ -17,7 +28,15 @@ $lang['btn_disable'] = 'Disabilita'; $lang['btn_install'] = 'Installa'; $lang['btn_reinstall'] = 'Reinstalla'; $lang['js']['reallydel'] = 'Sicuro di disinstallare questa estensione?'; +$lang['js']['display_viewoptions'] = 'Opzioni di Visualizzazione:'; +$lang['js']['display_enabled'] = 'abilitato'; +$lang['js']['display_disabled'] = 'disabilitato'; +$lang['js']['display_updatable'] = 'aggiornabile'; +$lang['search_for'] = 'Extension di Ricerca:'; $lang['search'] = 'Cerca'; +$lang['extensionby'] = '<strong>%s</strong> da %s'; +$lang['screenshot'] = 'Screenshot di %s'; +$lang['popularity'] = 'Popolarità : %s%%'; $lang['homepage_link'] = 'Documenti'; $lang['bugs_features'] = 'Bug'; $lang['tags'] = 'Tag:'; @@ -46,19 +65,34 @@ $lang['status_disabled'] = 'disabilitato'; $lang['status_unmodifiable'] = 'inmodificabile'; $lang['status_plugin'] = 'plugin'; $lang['status_template'] = 'modello'; +$lang['status_bundled'] = 'accoppiato'; $lang['msg_enabled'] = 'Plugin %s abilitato'; $lang['msg_disabled'] = 'Plugin %s disabilitato'; $lang['msg_delete_success'] = 'Estensione %s disinstallata'; +$lang['msg_delete_failed'] = 'Disinstallazione dell\'Extension %s fallita'; +$lang['msg_template_install_success'] = 'Il template %s è stato installato correttamente'; +$lang['msg_template_update_success'] = 'Il Template %s è stato aggiornato correttamente'; $lang['msg_plugin_install_success'] = 'Plugin %s installato con successo'; $lang['msg_plugin_update_success'] = 'Plugin %s aggiornato con successo'; $lang['msg_upload_failed'] = 'Caricamento del file fallito'; $lang['missing_dependency'] = '<strong>Dipendenza mancante o disabilitata: </strong> %s'; +$lang['security_issue'] = '<strong>Problema di sicurezza:</strong> %s'; +$lang['security_warning'] = '<strong>Avvertimento di sicurezza:</strong> %s'; $lang['update_available'] = '<strong>Aggiornamento:</strong> Nuova versione %s disponibile.'; $lang['wrong_folder'] = '<strong>Plugin non installato correttamente:</strong> rinomina la directory del plugin "%s" in "%s".'; +$lang['url_change'] = '<strong>URL cambiato:</strong> l\'URL per il download è cambiato dall\'ultima volta che è stato utilizzato. Controlla se il nuovo URL è valido prima di aggiornare l\'estensione.<br />Nuovo: %s<br />Vecchio: %s'; $lang['error_badurl'] = 'URLs deve iniziare con http o https'; $lang['error_dircreate'] = 'Impossibile creare una cartella temporanea per ricevere il download'; $lang['error_download'] = 'Impossibile scaricare il file: %s'; +$lang['error_decompress'] = 'Impossibile decomprimere il file scaricato. Ciò può dipendere da errori in fase di download, nel qual caso dovreste ripetere l\'operazione; oppure il formato di compressione è sconosciuto, e in questo caso dovrete scaricare e installare manualmente.'; +$lang['error_findfolder'] = 'Impossibile identificare la directory dell\'extension, dovrete scaricare e installare manualmente'; +$lang['error_copy'] = 'C\'è stato un errore di copia dei file mentre si tentava di copiare i file per la directory <em>%s</em>: il disco potrebbe essere pieno o i pemessi di accesso ai file potrebbero essere sbagliati. Questo potrebbe aver causato una parziale installazione dei plugin lasciando il tuo wiki instabile'; $lang['noperms'] = 'La directory Extension non è scrivibile'; $lang['notplperms'] = 'Il modello di cartella non è scrivibile'; $lang['nopluginperms'] = 'La cartella plugin non è scrivibile'; +$lang['git'] = 'Questa extension è stata installata da git, potreste non volerla aggiornare qui.'; +$lang['auth'] = 'Questo plugin di autenticazione non è abilitato nella configurazione, considera di disabilitarlo.'; $lang['install_url'] = 'Installa da URL:'; +$lang['install_upload'] = 'Caricamento Extension:'; +$lang['repo_error'] = 'Il repository dei plugin non può essere raggiunto. Assicuratevi che il vostro server sia abilitato a contattare l\'indirizzo www.dokuwiki.org e controllate le impostazioni del vostro proxy.'; +$lang['nossl'] = 'La tua installazione PHP sembra mancare del supporto SSL. I download per molte estensioni di DokuWiki non funzioneranno.'; diff --git a/lib/plugins/extension/lang/ja/lang.php b/lib/plugins/extension/lang/ja/lang.php index ce6ed2b976caa533c8c95104fa14b98bf216a16e..689a9877ef741a8f72b76266e65aec6e955d1a20 100644 --- a/lib/plugins/extension/lang/ja/lang.php +++ b/lib/plugins/extension/lang/ja/lang.php @@ -6,6 +6,7 @@ * @author Hideaki SAWADA <chuno@live.jp> * @author PzF_X <jp_minecraft@yahoo.co.jp> * @author Satoshi Sahara <sahara.satoshi@gmail.com> + * @author Ikuo Obataya <i.obataya@gmail.com> */ $lang['menu'] = '拡張機能管ç†'; $lang['tab_plugins'] = 'インストール済プラグイン'; @@ -27,6 +28,10 @@ $lang['btn_disable'] = '無効化'; $lang['btn_install'] = 'インストール'; $lang['btn_reinstall'] = 'å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«'; $lang['js']['reallydel'] = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã‚’本当ã«ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã‹ï¼Ÿ'; +$lang['js']['display_viewoptions'] = '表示オプション: '; +$lang['js']['display_enabled'] = '有効'; +$lang['js']['display_disabled'] = '無効'; +$lang['js']['display_updatable'] = 'æ›´æ–°å¯èƒ½'; $lang['search_for'] = 'æ‹¡å¼µæ©Ÿèƒ½ã®æ¤œç´¢ï¼š'; $lang['search'] = '検索'; $lang['extensionby'] = '<strong>%s</strong> 作者: %s'; diff --git a/lib/plugins/extension/lang/ko/lang.php b/lib/plugins/extension/lang/ko/lang.php index 5dc5d826947a4a35d8f3e6155d1326f3f8294ced..31b230b535229293c2f51a7fe4a2fdfe875c33e8 100644 --- a/lib/plugins/extension/lang/ko/lang.php +++ b/lib/plugins/extension/lang/ko/lang.php @@ -5,6 +5,7 @@ * * @author Young gon Cha <garmede@gmail.com> * @author Myeongjin <aranet100@gmail.com> + * @author hyeonsoft <hyeonsoft@live.co.kr> */ $lang['menu'] = '확장 기능 관리ìž'; $lang['tab_plugins'] = 'ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸'; @@ -26,6 +27,10 @@ $lang['btn_disable'] = '비활성화'; $lang['btn_install'] = '설치'; $lang['btn_reinstall'] = '다시 설치'; $lang['js']['reallydel'] = 'ì •ë§ ì´ í™•ìž¥ ê¸°ëŠ¥ì„ ì œê±°í•˜ê² ìŠµë‹ˆê¹Œ?'; +$lang['js']['display_viewoptions'] = '보기 옵션:'; +$lang['js']['display_enabled'] = '활성화ë¨'; +$lang['js']['display_disabled'] = '비활성화ë¨'; +$lang['js']['display_updatable'] = 'ì—…ë°ì´íŠ¸í• ìˆ˜ 있ìŒ'; $lang['search_for'] = '확장 기능 검색:'; $lang['search'] = '검색'; $lang['extensionby'] = '<strong>%s</strong> (ì €ìž %s)'; diff --git a/lib/plugins/extension/lang/lv/lang.php b/lib/plugins/extension/lang/lv/lang.php index e7e9bdfd9a1206a86a72129c74748f2d2fbe946a..b3e5ce0d24269c4650276c53f3cd96c5d04928b0 100644 --- a/lib/plugins/extension/lang/lv/lang.php +++ b/lib/plugins/extension/lang/lv/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Aivars MiÅ¡ka <allefm@gmail.com> */ -$lang['msg_delete_success'] = 'PapildinÄjums atinstalÄ“ts'; +$lang['msg_delete_success'] = 'PapildinÄjums %s atinstalÄ“ts'; diff --git a/lib/plugins/extension/lang/nl/lang.php b/lib/plugins/extension/lang/nl/lang.php index 194b4b3e199088870707ede15947296224e7d148..ead2d9e8f8a496572970d88de455e55d4d20bd97 100644 --- a/lib/plugins/extension/lang/nl/lang.php +++ b/lib/plugins/extension/lang/nl/lang.php @@ -7,6 +7,9 @@ * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Johan Vervloet <johan.vervloet@gmail.com> * @author Mijndert <mijndert@mijndertstuij.nl> + * @author Johan Wijnker <johan@wijnker.eu> + * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> */ $lang['menu'] = 'Uitbreidingen'; $lang['tab_plugins'] = 'Geïnstalleerde Plugins'; @@ -28,6 +31,10 @@ $lang['btn_disable'] = 'Schakel uit'; $lang['btn_install'] = 'Installeer'; $lang['btn_reinstall'] = 'Her-installeer'; $lang['js']['reallydel'] = 'Wilt u deze uitbreiding deinstalleren?'; +$lang['js']['display_viewoptions'] = 'Weergave opties:'; +$lang['js']['display_enabled'] = 'ingeschakeld'; +$lang['js']['display_disabled'] = 'uitgeschakeld'; +$lang['js']['display_updatable'] = 'update beschikbaar'; $lang['search_for'] = 'Zoek Uitbreiding:'; $lang['search'] = 'Zoek'; $lang['extensionby'] = '<strong>%s</strong> by %s'; @@ -87,6 +94,8 @@ $lang['noperms'] = 'Uitbreidings directory is niet schrijfbaar'; $lang['notplperms'] = 'Template directory is niet schrijfbaar'; $lang['nopluginperms'] = 'Plugin directory is niet schrijfbaar'; $lang['git'] = 'De uitbreiding werd geïnstalleerd via git, u wilt deze hier wellicht niet aanpassen.'; +$lang['auth'] = 'Deze auth plugin is niet geactiveerd in de configuratie, overweeg het om uit te schakelen.'; $lang['install_url'] = 'Installeer vanaf URL:'; $lang['install_upload'] = 'Upload Uitbreiding:'; $lang['repo_error'] = 'Er kon geen verbinding worden gemaakt met de centrale plugin opslag. Controleer of de server verbinding mag maken met www.dokuwiki.org en controleer de proxy instellingen.'; +$lang['nossl'] = 'Je PHP mist SSL ondersteuning. Downloaden werkt niet met veel DokuWiki extensies.'; diff --git a/lib/plugins/extension/lang/pl/lang.php b/lib/plugins/extension/lang/pl/lang.php index 4fdca79c9caca2c538744cc84e7cce18b1266250..ab9a818b6d5bc007651d3288eb1b61e1e12185b1 100644 --- a/lib/plugins/extension/lang/pl/lang.php +++ b/lib/plugins/extension/lang/pl/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Mati <mackosa@wp.pl> */ $lang['menu'] = 'Menedżer rozszerzeÅ„'; @@ -36,4 +36,4 @@ $lang['status_not_installed'] = 'nie zainstalowano'; $lang['status_enabled'] = 'uruchomione'; $lang['status_disabled'] = 'wyłączone'; $lang['status_plugin'] = 'dodatek'; -$lang['msg_delete_success'] = 'Rozszerzenie odinstalowane'; +$lang['msg_delete_success'] = 'Rozszerzenie %s odinstalowane'; diff --git a/lib/plugins/extension/lang/pt-br/lang.php b/lib/plugins/extension/lang/pt-br/lang.php index 0d897616abd4425aaa742da2b25214133519a9ac..73012f369187cc5150f565d3ed4130cea8a7df61 100644 --- a/lib/plugins/extension/lang/pt-br/lang.php +++ b/lib/plugins/extension/lang/pt-br/lang.php @@ -4,6 +4,8 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Felipe Castro <fefcas@gmail.com> + * @author Hudson FAS <hudsonfas@gmail.com> + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> */ $lang['menu'] = 'Gerenciador de extensões'; $lang['tab_plugins'] = 'Extensões instaladas'; @@ -25,6 +27,10 @@ $lang['btn_disable'] = 'Desabilitar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Re-instalar'; $lang['js']['reallydel'] = 'Quer mesmo desinstalar esta extensão?'; +$lang['js']['display_viewoptions'] = 'Opções de visualização:'; +$lang['js']['display_enabled'] = 'habilitado'; +$lang['js']['display_disabled'] = 'desabilitado'; +$lang['js']['display_updatable'] = 'atualizável'; $lang['search_for'] = 'Procurar extensão:'; $lang['search'] = 'Procurar'; $lang['extensionby'] = '<strong>%s</strong> de %s'; @@ -61,7 +67,8 @@ $lang['status_template'] = 'modelo'; $lang['status_bundled'] = 'agrupado'; $lang['msg_enabled'] = 'Extensão %s habilitada'; $lang['msg_disabled'] = 'Extensão %s desabilitada'; -$lang['msg_delete_success'] = 'Extensão desinstalada'; +$lang['msg_delete_success'] = 'Extensão %s desinstalada'; +$lang['msg_delete_failed'] = 'Falha na desinstalação da extensão %s'; $lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso'; $lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso'; $lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso'; @@ -73,3 +80,18 @@ $lang['security_warning'] = '<strong>Aviso sobre segurança:</strong> %s'; $lang['update_available'] = '<strong>Atualização:</strong> Nova versão %s está disponÃvel.'; $lang['wrong_folder'] = '<strong>Extensão instalada incorretamente:</strong> Renomeie o diretório de extensões "%s" para "%s".'; $lang['url_change'] = '<strong>URL mudou:</strong> A URL para baixar mudou desde a última baixada. Verifique se a nova URL é válida antes de atualizar a extensão.<br />Novo: %s<br />Velho: %s'; +$lang['error_badurl'] = 'O URL deve começar com http ou https'; +$lang['error_dircreate'] = 'ImpossÃvel criar pasta temporária para receber o download'; +$lang['error_download'] = 'Impossável baixar o arquivo: %s'; +$lang['error_decompress'] = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.'; +$lang['error_findfolder'] = 'ImpossÃl identificar a extensão do diretório, você deve baixar e instalar manualmente.'; +$lang['error_copy'] = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável'; +$lang['noperms'] = 'Diretório de extensão não é gravável'; +$lang['notplperms'] = 'Diretório de modelo (Template) não é gravável'; +$lang['nopluginperms'] = 'Diretório de plugin não é gravável'; +$lang['git'] = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.'; +$lang['auth'] = 'O plugin auth não está ativado na configuração, considere desativá-lo.'; +$lang['install_url'] = 'Instale a partir do URL:'; +$lang['install_upload'] = 'Publicar Extensão:'; +$lang['repo_error'] = 'O repositório de plugin não pode ser contactado. Certifique-se de que o servidor pode acessar www.dokuwiki.org e confira suas configurações de proxy.'; +$lang['nossl'] = 'Sua instalação PHP parece que não suporta SSL. Algumas extensões DokuWiki não serão baixadas.'; diff --git a/lib/plugins/extension/lang/pt/intro_templates.txt b/lib/plugins/extension/lang/pt/intro_templates.txt index ecdf99f17886d6fec5f466398bbf2179a7494263..02bc3364384a3512bbc23bdd99b5291a76de5617 100644 --- a/lib/plugins/extension/lang/pt/intro_templates.txt +++ b/lib/plugins/extension/lang/pt/intro_templates.txt @@ -1 +1 @@ -Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[Do = admin & page = configuração |? Configuration Manager]]. \ No newline at end of file +Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[?do=admin&page=config|Configuration Manager]]. diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php index c7b4f29c2b23aeda4a9c1344250bf21f973eb3e2..9713f91f3941a77df908ff8ceeb18c69fc6bdc8f 100644 --- a/lib/plugins/extension/lang/pt/lang.php +++ b/lib/plugins/extension/lang/pt/lang.php @@ -4,6 +4,9 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Gerenciador de Extensões'; $lang['tab_plugins'] = 'Plugins Instalados'; @@ -25,6 +28,10 @@ $lang['btn_disable'] = 'Desabilitar'; $lang['btn_install'] = 'Instalar'; $lang['btn_reinstall'] = 'Reinstalar'; $lang['js']['reallydel'] = 'Confirma a desinstalação desta extensão?'; +$lang['js']['display_viewoptions'] = 'Ver Opções:'; +$lang['js']['display_enabled'] = 'ativado'; +$lang['js']['display_disabled'] = 'desativado'; +$lang['js']['display_updatable'] = 'atualizável'; $lang['search_for'] = 'Pesquisar Extensão:'; $lang['search'] = 'Pesquisar'; $lang['extensionby'] = '<strong>%s</strong> by %s'; @@ -40,7 +47,7 @@ $lang['downloadurl'] = 'Baixar URL: '; $lang['repository'] = 'Repositório: '; -$lang['unknown'] = '<em> desconhecido </ em> +$lang['unknown'] = '<em> desconhecido </em> '; $lang['installed_version'] = 'Versão instalada:'; $lang['install_date'] = 'Sua última atualização:'; diff --git a/lib/plugins/extension/lang/ru/intro_install.txt b/lib/plugins/extension/lang/ru/intro_install.txt index 7b8ac661bb2d62c88a3969617b987b09c0eba1d2..0c555aee2c54ad081dc35752af33f3b30093a12a 100644 --- a/lib/plugins/extension/lang/ru/intro_install.txt +++ b/lib/plugins/extension/lang/ru/intro_install.txt @@ -1 +1 @@ -ЗдеÑÑŒ вы можете ÑамоÑтоÑтельно уÑтановить плагины и шаблоны, загрузив их или предоÑтавив прÑмой URL Ð´Ð»Ñ ÑкачиваниÑ. \ No newline at end of file +ЗдеÑÑŒ вы можете ÑамоÑтоÑтельно уÑтановить плагины и шаблоны, загрузив их или предоÑтавив прÑмой URL Ð´Ð»Ñ ÑкачиваниÑ. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_plugins.txt b/lib/plugins/extension/lang/ru/intro_plugins.txt index c5ea9e0ec285a39e365989b6395979bbed9e5605..547ca7184f5c70f15496d2660acbb247d08987cb 100644 --- a/lib/plugins/extension/lang/ru/intro_plugins.txt +++ b/lib/plugins/extension/lang/ru/intro_plugins.txt @@ -1 +1 @@ -Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file +Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить или выключить, или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_search.txt b/lib/plugins/extension/lang/ru/intro_search.txt index 3c16748baefecbbca719d184dcc36706cb415d10..609985bf4d5546a1d9bc26d3f1cadd25fc61df85 100644 --- a/lib/plugins/extension/lang/ru/intro_search.txt +++ b/lib/plugins/extension/lang/ru/intro_search.txt @@ -1 +1 @@ -Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте ввиду, что уÑтановка Ñтороннего кода может предÑтавлÑть **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file +Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте в виду, что уÑтановка Ñтороннего кода может предÑтавлÑть **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]]. \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/intro_templates.txt b/lib/plugins/extension/lang/ru/intro_templates.txt index 787b32fa31e7a5cb616c7f55b902dc090522802b..a71ad67378e875cdf83170a8e5b81b4c37b640f6 100644 --- a/lib/plugins/extension/lang/ru/intro_templates.txt +++ b/lib/plugins/extension/lang/ru/intro_templates.txt @@ -1 +1 @@ -Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ Ð² [[?do=admin&page=config|наÑтройках вики]] \ No newline at end of file +Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ в [[?do=admin&page=config|наÑтройках вики]] \ No newline at end of file diff --git a/lib/plugins/extension/lang/ru/lang.php b/lib/plugins/extension/lang/ru/lang.php index 381d84500c296a92f3edc3b4960b62a02eb9bf2d..6df783cc8d4ffea552a525dfa0620a5520fdac12 100644 --- a/lib/plugins/extension/lang/ru/lang.php +++ b/lib/plugins/extension/lang/ru/lang.php @@ -7,6 +7,8 @@ * @author Igor Degraf <igordegraf@gmail.com> * @author Type-kun <workwork-1@yandex.ru> * @author Vitaly Filatenko <kot@hacktest.net> + * @author Alex P <alexander@lanos.co.uk> + * @author Takumo <9206984@mail.ru> */ $lang['menu'] = 'Управление дополнениÑми'; $lang['tab_plugins'] = 'УÑтановленные плагины'; @@ -15,12 +17,12 @@ $lang['tab_search'] = 'ПоиÑк и уÑтановка'; $lang['tab_install'] = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка'; $lang['notimplemented'] = 'Ðта возможноÑть ещё не реализована'; $lang['notinstalled'] = 'Ðто дополнение не уÑтановлено'; -$lang['alreadyenabled'] = 'Ðто раÑширение уже включено'; -$lang['alreadydisabled'] = 'Ðто раÑширение уже выключено'; +$lang['alreadyenabled'] = 'Ðто дополнение уже включено'; +$lang['alreadydisabled'] = 'Ðто дополнение уже отключено'; $lang['pluginlistsaveerror'] = 'Ошибка при Ñохранении ÑпиÑка плагинов'; $lang['unknownauthor'] = 'Ðвтор неизвеÑтен'; $lang['unknownversion'] = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна'; -$lang['btn_info'] = 'Отобразить доп. информацию'; +$lang['btn_info'] = 'Подробнее'; $lang['btn_update'] = 'Обновить'; $lang['btn_uninstall'] = 'Удалить'; $lang['btn_enable'] = 'Включить'; @@ -28,44 +30,48 @@ $lang['btn_disable'] = 'Отключить'; $lang['btn_install'] = 'УÑтановить'; $lang['btn_reinstall'] = 'ПереуÑтановить'; $lang['js']['reallydel'] = 'ДейÑтвительно удалить Ñто дополнение?'; -$lang['search_for'] = 'ПоиÑк дополнениÑ:'; +$lang['js']['display_viewoptions'] = 'Показать как:'; +$lang['js']['display_enabled'] = 'включён'; +$lang['js']['display_disabled'] = 'отключён'; +$lang['js']['display_updatable'] = 'обновление'; +$lang['search_for'] = 'ПоиÑк дополнениÑ'; $lang['search'] = 'Ðайти'; -$lang['extensionby'] = '<strong>%s</strong> — %s'; +$lang['extensionby'] = '<strong>%s</strong> %s'; $lang['screenshot'] = 'Скриншот: %s'; $lang['popularity'] = 'ПопулÑрноÑть: %s%%'; $lang['homepage_link'] = 'ОпиÑание'; $lang['bugs_features'] = 'Баг-трекер'; $lang['tags'] = 'Метки:'; -$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°'; -$lang['installed'] = 'УÑтановлено:'; -$lang['downloadurl'] = 'Скачать:'; -$lang['repository'] = 'Репозиторий:'; +$lang['author_hint'] = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора'; +$lang['installed'] = 'УÑтановлен'; +$lang['downloadurl'] = 'URL ÑкачиваниÑ'; +$lang['repository'] = 'Репозиторий'; $lang['unknown'] = '<em>неизвеÑтно</em>'; -$lang['installed_version'] = 'УÑÑ‚. верÑиÑ:'; -$lang['install_date'] = 'ПоÑл. обновление:'; -$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ:'; -$lang['compatible'] = 'СовмеÑтим Ñ'; +$lang['installed_version'] = 'ВерÑиÑ'; +$lang['install_date'] = 'Обновлено'; +$lang['available_version'] = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ'; +$lang['compatible'] = 'СовмеÑтимоÑть'; $lang['depends'] = 'ЗавиÑит от'; $lang['similar'] = 'Похож на'; $lang['conflicts'] = 'Конфликтует Ñ'; $lang['donate'] = 'ÐравитÑÑ?'; $lang['donate_action'] = 'Купить автору кофе!'; $lang['repo_retry'] = 'Повторить'; -$lang['provides'] = 'ПредоÑтавлÑет:'; -$lang['status'] = 'СтатуÑ:'; -$lang['status_installed'] = 'уÑтановлено'; -$lang['status_not_installed'] = 'не уÑтановлено'; -$lang['status_protected'] = 'защищено'; +$lang['provides'] = 'ПредоÑтавлÑет'; +$lang['status'] = 'СтатуÑ'; +$lang['status_installed'] = 'уÑтановлен'; +$lang['status_not_installed'] = 'не уÑтановлен'; +$lang['status_protected'] = 'защищён'; $lang['status_enabled'] = 'включён'; -$lang['status_disabled'] = 'отключено'; -$lang['status_unmodifiable'] = 'неизменÑемо'; +$lang['status_disabled'] = 'отключён'; +$lang['status_unmodifiable'] = 'неизменÑем'; $lang['status_plugin'] = 'плагин'; $lang['status_template'] = 'шаблон'; $lang['status_bundled'] = 'в комплекте'; $lang['msg_enabled'] = 'Плагин %s включён'; $lang['msg_disabled'] = 'Плагин %s отключён'; $lang['msg_delete_success'] = 'Дополнение %s удалено'; -$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить раÑширение %s'; +$lang['msg_delete_failed'] = 'Ðе удалоÑÑŒ удалить дополнение %s'; $lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен'; $lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён'; $lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен'; @@ -74,19 +80,21 @@ $lang['msg_upload_failed'] = 'Ðе удалоÑÑŒ загрузить фай $lang['missing_dependency'] = '<strong>ОтÑутÑтвует или отключена завиÑимоÑть:</strong> %s'; $lang['security_issue'] = '<strong>Проблема безопаÑноÑти:</strong> %s'; $lang['security_warning'] = '<strong>Предупреждение безопаÑноÑти:</strong> %s'; -$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s.'; -$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте папку плагина из %s в %s.'; -$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑть раÑширение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; -$lang['error_badurl'] = 'СÑылки должны начинатьÑÑ Ñ http или https'; +$lang['update_available'] = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s'; +$lang['wrong_folder'] = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s'; +$lang['url_change'] = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ раза. Проверьте новую ÑÑылку прежде, чем обновлÑть дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s'; +$lang['error_badurl'] = 'СÑылка должна начинатьÑÑ Ñ http или https'; $lang['error_dircreate'] = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸'; $lang['error_download'] = 'Ðе удалоÑÑŒ загрузить файл: %s'; -$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ñ€Ð°ÑширениÑ, загрузку и уÑтановку надо произвеÑти вручную.'; -$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; -$lang['noperms'] = 'Папка Ð´Ð»Ñ Ñ€Ð°Ñширений недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['notplperms'] = 'Папка Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['nopluginperms'] = 'Папка плагинов недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; -$lang['git'] = 'Ðто раÑширение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; -$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа URL'; -$lang['install_upload'] = 'Скачать раÑширение'; -$lang['repo_error'] = 'Сайт Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð°Ð¼Ð¸ недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑть доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼.'; +$lang['error_decompress'] = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную'; +$lang['error_findfolder'] = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.'; +$lang['error_copy'] = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Ðто могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.'; +$lang['noperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['notplperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['nopluginperms'] = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи'; +$lang['git'] = 'Ðто дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.'; +$lang['auth'] = 'Ðтот auth-плагин не включён в конфигурации, подумайте об его отключении'; +$lang['install_url'] = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа'; +$lang['install_upload'] = 'Загрузить дополнение'; +$lang['repo_error'] = 'Сайт Ñ плагинами недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑть доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.'; +$lang['nossl'] = 'Ваша PHP-ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL-поддержки. Ðто нарушит Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… дополнений.'; diff --git a/lib/plugins/extension/lang/tr/lang.php b/lib/plugins/extension/lang/tr/lang.php index dfabfa715a63ee1b260a3f658bfb4a285ecf30e1..c90b7b1c5aec40cbe94e6f1836c25ca5fe5f4eaa 100644 --- a/lib/plugins/extension/lang/tr/lang.php +++ b/lib/plugins/extension/lang/tr/lang.php @@ -4,6 +4,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * * @author İlker R. Kapaç <irifat@gmail.com> + * @author Mete Cuma <mcumax@gmail.com> */ $lang['menu'] = 'GeniÅŸletme Yöneticisi'; $lang['tab_plugins'] = 'KurulmuÅŸ Eklentiler'; @@ -44,7 +45,7 @@ $lang['available_version'] = 'Müsait sürüm:'; $lang['compatible'] = 'Åžununla uyumlu:'; $lang['depends'] = 'Åžuna bağımlı'; $lang['similar'] = 'Åžununla benzer'; -$lang['conflicts'] = 'Åžununla çeliÅŸir'; +$lang['conflicts'] = 'Åžununla çeliÅŸir:'; $lang['donate'] = 'BeÄŸendiniz mi?'; $lang['donate_action'] = 'Yazara bir kahve ısmarlayın!'; $lang['repo_retry'] = 'Yeniden dene'; diff --git a/lib/plugins/extension/lang/zh-tw/lang.php b/lib/plugins/extension/lang/zh-tw/lang.php index 79657ffeb4b8da326b5714fc9a311c8d47ad8cb9..c5b1e6dc58df836d0ddaa74fb4147d2c11a3d64d 100644 --- a/lib/plugins/extension/lang/zh-tw/lang.php +++ b/lib/plugins/extension/lang/zh-tw/lang.php @@ -6,6 +6,7 @@ * @author Stan <talktostan@gmail.com> * @author June-Hao Hou <junehao@gmail.com> * @author lioujheyu <lioujheyu@gmail.com> + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> */ $lang['menu'] = '延伸功能管ç†'; $lang['tab_plugins'] = '已安è£å¤–掛'; @@ -27,6 +28,9 @@ $lang['btn_disable'] = 'åœç”¨'; $lang['btn_install'] = '安è£'; $lang['btn_reinstall'] = '釿–°å®‰è£'; $lang['js']['reallydel'] = '確定è¦ç§»é™¤æ¤å»¶ä¼¸åŠŸèƒ½ï¼Ÿ'; +$lang['js']['display_enabled'] = '啟用'; +$lang['js']['display_disabled'] = 'ç¦ç”¨'; +$lang['js']['display_updatable'] = '坿›´æ–°'; $lang['search_for'] = 'æœå°‹å»¶ä¼¸åŠŸèƒ½ï¼š'; $lang['search'] = 'æœå°‹'; $lang['homepage_link'] = '文件'; @@ -58,6 +62,7 @@ $lang['status_bundled'] = '已綑ç¶å…§é™„'; $lang['msg_enabled'] = '外掛 %s 已啟用'; $lang['msg_disabled'] = '外掛 %s å·²ç¦ç”¨'; $lang['msg_delete_success'] = 'é™„åŠ å…ƒä»¶å·²ç§»é™¤'; +$lang['msg_delete_failed'] = 'è§£é™¤å®‰è£ %s 失敗'; $lang['msg_template_install_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸå®‰è£'; $lang['msg_template_update_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸæ›´æ–°'; $lang['msg_plugin_install_success'] = '外掛 %s 以æˆåŠŸå®‰è£'; @@ -69,6 +74,7 @@ $lang['security_warning'] = '<strong>安全å•題è¦å‘Š:</strong> %s'; $lang['update_available'] = '<strong>æ›´æ–°:</strong> å·²å¯å–å¾— %s 的新版本'; $lang['wrong_folder'] = '<strong>外掛安è£ä¸æ£ç¢º:</strong> 將外掛資料夾從 "%s" æ›´å至 "%s"。'; $lang['url_change'] = '<strong>ç¶²å€å·²è®Šæ›´:</strong> 自從上次下載後下載網å€å·²è®Šæ›´ã€‚在更新延伸功能å‰è«‹å…ˆæª¢æŸ¥æ–°ç¶²å€æ˜¯å¦å¯ç”¨ã€‚<br />æ–°: %s<br />舊: %s'; +$lang['error_dircreate'] = '無法建立暫å˜ç›®éŒ„以接收下載檔案'; $lang['error_download'] = '無法下載檔案:%s'; $lang['error_decompress'] = '無法解壓縮檔案。這å¯èƒ½æ˜¯ä¸‹è¼‰å“質ä¸ä½³æ‰€è‡´ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ 應該å†è©¦ä¸€æ¬¡ï¼›ä¹Ÿæœ‰å¯èƒ½æ˜¯å› 為無法辨è˜çš„å£“ç¸®æ ¼å¼ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ 應該自行下載並手動安è£'; $lang['error_findfolder'] = '無法辨èªå»¶ä¼¸åŠŸèƒ½è³‡æ–™å¤¾ï¼Œä½ å¿…é ˆè‡ªè¡Œä¸‹è¼‰ä¸¦æ‰‹å‹•å®‰è£'; diff --git a/lib/plugins/extension/lang/zh/lang.php b/lib/plugins/extension/lang/zh/lang.php index 5ab3d77ba8909df7b7a1d3ffeb7a68bf3acc9ad5..62d54c160b89c820def66ce3847d093549cf3b44 100644 --- a/lib/plugins/extension/lang/zh/lang.php +++ b/lib/plugins/extension/lang/zh/lang.php @@ -7,6 +7,7 @@ * @author xiqingongzi <Xiqingongzi@Gmail.com> * @author qinghao <qingxianhao@gmail.com> * @author lainme <lainme993@gmail.com> + * @author Errol <errol@hotmail.com> */ $lang['menu'] = '扩展管ç†å™¨'; $lang['tab_plugins'] = '安装æ’ä»¶'; @@ -28,6 +29,10 @@ $lang['btn_disable'] = 'å…³é—'; $lang['btn_install'] = '安装'; $lang['btn_reinstall'] = '釿–°å®‰è£…'; $lang['js']['reallydel'] = '确定å¸è½½è¿™ä¸ªæ‰©å±•么?'; +$lang['js']['display_viewoptions'] = '查看选项:'; +$lang['js']['display_enabled'] = 'å¯ç”¨'; +$lang['js']['display_disabled'] = 'ç¦ç”¨'; +$lang['js']['display_updatable'] = '坿›´æ–°'; $lang['search_for'] = 'æœç´¢æ‰©å±•'; $lang['search'] = 'æœç´¢'; $lang['extensionby'] = '<strong>%s</strong> by %s'; diff --git a/lib/plugins/extension/plugin.info.txt b/lib/plugins/extension/plugin.info.txt index ee983062838443c151d08e76340cd2d530e2b7a3..7ee84dcc0630888434f3d1633e21e9e971418d44 100644 --- a/lib/plugins/extension/plugin.info.txt +++ b/lib/plugins/extension/plugin.info.txt @@ -1,7 +1,7 @@ base extension author Michael Hamann email michael@content-space.de -date 2014-06-15 +date 2015-07-26 name Extension Manager desc Allows managing and installing plugins and templates url https://www.dokuwiki.org/plugin:extension diff --git a/lib/plugins/extension/script.js b/lib/plugins/extension/script.js index fab88162d8c6c1f62e23bcb9e5745ffc326435ad..0c43de6ae97403f85f9cffb759ee84040751d734 100644 --- a/lib/plugins/extension/script.js +++ b/lib/plugins/extension/script.js @@ -5,7 +5,7 @@ jQuery(function(){ /** * Confirm uninstalling */ - $extmgr.find('input.uninstall').click(function(e){ + $extmgr.find('button.uninstall').click(function(e){ if(!window.confirm(LANG.plugins.extension.reallydel)){ e.preventDefault(); return false; @@ -46,7 +46,7 @@ jQuery(function(){ /** * Enable/Disable extension via AJAX */ - $extmgr.find('input.disable, input.enable').click(function (e) { + $extmgr.find('button.disable, button.enable').click(function (e) { e.preventDefault(); var $btn = jQuery(this); @@ -110,4 +110,24 @@ jQuery(function(){ ); }); -}); \ No newline at end of file + /** + Create section for enabling/disabling viewing options + */ + if ( $extmgr.find('.plugins, .templates').hasClass('active') ) { + var $extlist = jQuery('#extension__list'); + $extlist.addClass('hasDisplayOptions'); + var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' )); + + $displayOpts.append(LANG.plugins.extension.display_viewoptions); + + var displayOptionsHandler = function(){ + $extlist.toggleClass( this.name ); + }; + + jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){ + var $label = jQuery( '<label></label>' ).appendTo($displayOpts); + jQuery( '<input />', { type: 'checkbox', name: chkName }).change(displayOptionsHandler).appendTo($label).click(); + jQuery( '<span/>' ).append(' '+LANG.plugins.extension['display_'+chkName]).appendTo($label); + }); + } +}); diff --git a/lib/plugins/extension/style.less b/lib/plugins/extension/style.less index d206890995b7a62594b14f11dcd5af3d29401592..38e63205510c69499b78328389d789a6b0d4fa90 100644 --- a/lib/plugins/extension/style.less +++ b/lib/plugins/extension/style.less @@ -80,8 +80,8 @@ overflow: hidden; } - input.button { - margin: 0 .3em .3em 0; + button { + margin-bottom: .3em; } } @@ -171,6 +171,11 @@ padding-left: 18px; background: transparent url(images/tag.png) no-repeat 0 0; } + + a.bugs { + padding-left: 18px; + background: transparent url(images/bug.gif) no-repeat 0 0; + } } // more info button @@ -281,6 +286,21 @@ * Enabled/Disabled overrides */ #extension__list { + + &.hasDisplayOptions { + .enabled, + .disabled, + .updatable { + display: none; + } + + &.enabled .enabled, + &.disabled .disabled, + &.updatable .updatable { + display: block; + } + } + .enabled div.screenshot span { background: transparent url(images/enabled.png) no-repeat 2px 2px; } @@ -361,3 +381,8 @@ display: block; width: 60%; } + +#extension__viewoptions label { + margin-left: 1em; + vertical-align: baseline; +} diff --git a/lib/plugins/info/plugin.info.txt b/lib/plugins/info/plugin.info.txt index 7773a419de5dd3aa4d23471e015250f1a0726b5b..3f05391f71d497bf8226ed5801ffe5233a0f2855 100644 --- a/lib/plugins/info/plugin.info.txt +++ b/lib/plugins/info/plugin.info.txt @@ -1,7 +1,7 @@ base info author Andreas Gohr email andi@splitbrain.org -date 2014-03-05 +date 2014-10-01 name Info Plugin desc Displays information about various DokuWiki internals url http://dokuwiki.org/plugin:info diff --git a/lib/plugins/popularity/action.php b/lib/plugins/popularity/action.php index 9e2e78d11b55c84ee9992ea1adc8ee186a20c160..d5ec0f5c5d183efce736c9e8bcdbbd0206ebca23 100644 --- a/lib/plugins/popularity/action.php +++ b/lib/plugins/popularity/action.php @@ -15,7 +15,7 @@ class action_plugin_popularity extends Dokuwiki_Action_Plugin { */ var $helper; - function action_plugin_popularity(){ + function __construct(){ $this->helper = $this->loadHelper('popularity', false); } diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php index ab569b8b4bf7ad164ee05aabec710709060a1603..0cf174e0de7c20d8b197e4e240241b36bf0940e1 100644 --- a/lib/plugins/popularity/admin.php +++ b/lib/plugins/popularity/admin.php @@ -20,7 +20,7 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin { var $helper; var $sentStatus = null; - function admin_plugin_popularity(){ + function __construct(){ $this->helper = $this->loadHelper('popularity', false); } @@ -144,7 +144,7 @@ class admin_plugin_popularity extends DokuWiki_Admin_Plugin { .'<input type="hidden" name="do" value="admin" />' .'<input type="hidden" name="page" value="popularity" />'; } - $form .= '<input type="submit" class="button" value="'.$this->getLang('submit').'"/>' + $form .= '<button type="submit">'.$this->getLang('submit').'</button>' .'</fieldset>' .'</form>'; return $form; diff --git a/lib/plugins/popularity/helper.php b/lib/plugins/popularity/helper.php index 8673fb5aff830d5a3b21766660595c75665d0e60..27755b0ed3a02460da8ce033013653a77c344d58 100644 --- a/lib/plugins/popularity/helper.php +++ b/lib/plugins/popularity/helper.php @@ -30,7 +30,7 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { var $popularityLastSubmitFile; - function helper_plugin_popularity(){ + function __construct(){ global $conf; $this->autosubmitFile = $conf['cachedir'].'/autosubmit.txt'; $this->autosubmitErrorFile = $conf['cachedir'].'/autosubmitError.txt'; @@ -253,9 +253,26 @@ class helper_plugin_popularity extends Dokuwiki_Plugin { $data['php_exectime'] = $phptime; $data['php_extension'] = get_loaded_extensions(); + // plugin usage data + $this->_add_plugin_usage_data($data); + return $data; } + protected function _add_plugin_usage_data(&$data){ + $pluginsData = array(); + trigger_event('PLUGIN_POPULARITY_DATA_SETUP', $pluginsData); + foreach($pluginsData as $plugin => $d){ + if ( is_array($d) ) { + foreach($d as $key => $value){ + $data['plugin_' . $plugin . '_' . $key] = $value; + } + } else { + $data['plugin_' . $plugin] = $d; + } + } + } + /** * Callback to search and count the content of directories in DokuWiki * diff --git a/lib/plugins/popularity/lang/ca/lang.php b/lib/plugins/popularity/lang/ca/lang.php index b3084611837c42f2ec63a221c6654c0db9c07248..9eb1655d266fbca95494dd9fc505827eed73a997 100644 --- a/lib/plugins/popularity/lang/ca/lang.php +++ b/lib/plugins/popularity/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@cent.uji.es> * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/popularity/lang/cy/intro.txt b/lib/plugins/popularity/lang/cy/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..187dfe0b77e78186a6b5d97460a59c9c762804d8 --- /dev/null +++ b/lib/plugins/popularity/lang/cy/intro.txt @@ -0,0 +1,11 @@ +====== Adborth Poblogrwydd ====== + +Mae'r [[doku>popularity|teclyn]] hwn yn casglu data anhysbys am eich wici ac yn eich galluogi chi i'w anfon yn ôl i ddatblygwyr DokuWiki. Mae hwn yn eu helpu nhw i ddeall sut mae DokuWiki yn cael ei ddefnyddio gan ei ddefnyddwyr ac mae\'n sicrhau bod penderfyniadau datblygu yn y dyfodol yn cael eu cefnogi gan ystadegau defnydd go iawn. + +Cewch eich annog i ailadrodd y cam hwn o dro i dro er mwyn hysbysu datblygwyr wrth i'ch wici dyfu. Caiff eich setiau data eilfydd eu hadnabod gan ID anhysbys. + +Mae'r data sy'n cael ei gasglu yn cynnwys pethau fel fersiwn eich DokuWiki, nifer a maint eich tudalennau a'ch ffeiliau chi, ategion sydd wedi'u harsefydlu a gwybodaeth parthed eich arsefydliad PHP. + +Caiff y data crai i'w anfon ei ddangos isod. Pwyswch fotwm "Anfon Data" i drosglwyddo'r wybodaeth. + + diff --git a/lib/plugins/popularity/lang/cy/lang.php b/lib/plugins/popularity/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7bee7bdf2a0d262a07a17487cb7d37f8c4463626 --- /dev/null +++ b/lib/plugins/popularity/lang/cy/lang.php @@ -0,0 +1,9 @@ +<?php + +$lang['name'] = 'Adborth Poblogrwydd (gall gymryd ychydig o amser i lwytho)'; +$lang['submit'] = 'Anfon Data'; +$lang['autosubmit'] = 'Anfon data yn awtomatig unwaith y mis'; +$lang['submissionFailed'] = 'Doedd dim modd anfon y data oherwydd y gwall canlynol:'; +$lang['submitDirectly'] = 'Gallwch chi anfon y data gan law gan gyflwyno\'r ffurflen ganlynol.'; +$lang['autosubmitError'] = 'Methodd yr awtogyflwyniad diwethaf oherwydd y gwall canlynol: '; +$lang['lastSent'] = 'Anfonwyd y data'; diff --git a/lib/plugins/popularity/lang/cy/submitted.txt b/lib/plugins/popularity/lang/cy/submitted.txt new file mode 100644 index 0000000000000000000000000000000000000000..eb6fd815a7f6a1759d1ab0abd65494a0043f85d4 --- /dev/null +++ b/lib/plugins/popularity/lang/cy/submitted.txt @@ -0,0 +1,3 @@ +====== Adborth Poblogrwydd ====== + +Cafodd y data ei anfon yn llwyddiannus. diff --git a/lib/plugins/popularity/lang/ja/intro.txt b/lib/plugins/popularity/lang/ja/intro.txt index 09886f418b973af7c1035cd2816f56286cd46b08..db9a342845d40b72f3fdebf343b0c3da387ffcd8 100644 --- a/lib/plugins/popularity/lang/ja/intro.txt +++ b/lib/plugins/popularity/lang/ja/intro.txt @@ -1,6 +1,6 @@ ====== 利用状æ³èª¿æŸ» ====== -ã“ã®ãƒ„ールã¯ã€ã”利用ä¸ã®wikiã®æƒ…å ±ã‚’åŽé›†ã—ã€ãれをDokuWikiã®é–‹ç™ºè€…ã¸åŒ¿åã§é€ä¿¡ã™ã‚‹ã‚‚ã®ã§ã™ã€‚開発者ã¯ã“ã®ãƒ„ールã«ã‚ˆã‚Šã€DokuWikiãŒå®Ÿéš›ã«ã©ã®æ§˜ã«åˆ©ç”¨ã•れã¦ã„ã‚‹ã‹ã‚’ç†è§£ã—ã€ãã—ã¦å®Ÿéš›ã®åˆ©ç”¨çжæ³ã«åŸºã¥ã„ã¦ä»Šå¾Œã®é–‹ç™ºæ–¹é‡ã®æ±ºå®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +ã“ã®[[doku>ja:popularity|ツール]]ã¯ã€ã”利用ä¸ã®wikiã®æƒ…å ±ã‚’åŽé›†ã—ã€ãれをDokuWikiã®é–‹ç™ºè€…ã¸åŒ¿åã§é€ä¿¡ã™ã‚‹ã‚‚ã®ã§ã™ã€‚開発者ã¯ã“ã®ãƒ„ールã«ã‚ˆã‚Šã€DokuWikiãŒå®Ÿéš›ã«ã©ã®æ§˜ã«åˆ©ç”¨ã•れã¦ã„ã‚‹ã‹ã‚’ç†è§£ã—ã€ãã—ã¦å®Ÿéš›ã®åˆ©ç”¨çжæ³ã«åŸºã¥ã„ã¦ä»Šå¾Œã®é–‹ç™ºæ–¹é‡ã®æ±ºå®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ãŠä½¿ã„ã®wikiã®è¦æ¨¡ãŒå¤§ãããªã£ã¦ããŸã¨ãã¯ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—を定期的ã«ç¹°ã‚Šè¿”ã™ã“ã¨ã‚’推奨ã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€é€ä¿¡ã•れãŸãƒ‡ãƒ¼ã‚¿ã¯åŒ¿åã®IDã§è˜åˆ¥ã•れã¾ã™ã€‚ diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt index bc9bb9dd0ec9c0faac8659c21468cbd9f2420fef..edc0f87332a3a83cf17b80f56699c6dd2a0a3a33 100644 --- a/lib/plugins/popularity/lang/ko/intro.txt +++ b/lib/plugins/popularity/lang/ko/intro.txt @@ -1,6 +1,6 @@ ====== ì¸ê¸°ë„ 조사 ====== -ì„¤ì¹˜ëœ ìœ„í‚¤ì˜ ìµëª… ì •ë³´ë¥¼ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 보냅니다. ì´ [[doku>ko:popularity|ë„구]]는 ë„ì¿ ìœ„í‚¤ê°€ ì‹¤ì œ 사용ìžì—게 어떻게 사용ë˜ëŠ”ì§€ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 ì•Œë ¤ì¤Œìœ¼ë¡œì¨ ì´ í›„ 개발 시 ì°¸ê³ ê°€ ë©ë‹ˆë‹¤. +ì„¤ì¹˜ëœ ìœ„í‚¤ì˜ ìµëª… ì •ë³´ë¥¼ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 보냅니다. ì´ [[doku>ko:popularity|ë„구]]는 ë„ì¿ ìœ„í‚¤ê°€ ì‹¤ì œ 사용ìžì—게 어떻게 사용ë˜ëŠ”ì§€ ë„ì¿ ìœ„í‚¤ 개발ìžì—게 ì•Œë ¤ì¤Œìœ¼ë¡œì¨ ì´ í›„ 개발 시 참조가 ë©ë‹ˆë‹¤. ì„¤ì¹˜ëœ ìœ„í‚¤ê°€ 커ì§ì— ë”°ë¼ì„œ ì´ ê³¼ì •ì„ ë°˜ë³µí• í•„ìš”ê°€ 있습니다. ë°˜ë³µëœ ë°ì´í„°ëŠ” ìµëª… ID로 구별ë˜ì–´ì§‘니다. diff --git a/lib/plugins/popularity/lang/lt/lang.php b/lib/plugins/popularity/lang/lt/lang.php index 88df29c50b7408b5867df74c1d56a6ad521e2159..dca350475379b025f11d63c9b3bc4cc523a7c248 100644 --- a/lib/plugins/popularity/lang/lt/lang.php +++ b/lib/plugins/popularity/lang/lt/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Lithuanian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> */ diff --git a/lib/plugins/popularity/plugin.info.txt b/lib/plugins/popularity/plugin.info.txt index eadfffaa09d5f04e82c73ec7841c31c901abe87c..8ffc136a167220bcf73b6809e88d755298af9835 100644 --- a/lib/plugins/popularity/plugin.info.txt +++ b/lib/plugins/popularity/plugin.info.txt @@ -1,7 +1,7 @@ base popularity author Andreas Gohr email andi@splitbrain.org -date 2013-10-14 +date 2015-07-15 name Popularity Feedback Plugin desc Send anonymous data about your wiki to the DokuWiki developers url http://www.dokuwiki.org/plugin:popularity diff --git a/lib/plugins/remote.php b/lib/plugins/remote.php index a51f701fbf87e7158cbe3246c5d74934dbeb9767..c2253dbd5dad4e146563ee0e96f62adc740f2ae3 100644 --- a/lib/plugins/remote.php +++ b/lib/plugins/remote.php @@ -1,19 +1,102 @@ <?php +/** + * Class DokuWiki_Remote_Plugin + */ abstract class DokuWiki_Remote_Plugin extends DokuWiki_Plugin { private $api; + /** + * Constructor + */ public function __construct() { $this->api = new RemoteAPI(); } /** - * @abstract - * @return array Information to all provided methods. {@see RemoteAPI}. + * Get all available methods with remote access. + * + * By default it exports all public methods of a remote plugin. Methods beginning + * with an underscore are skipped. + * + * @return array Information about all provided methods. {@see RemoteAPI}. + */ + public function _getMethods() { + $result = array(); + + $reflection = new \ReflectionClass($this); + foreach($reflection->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { + // skip parent methods, only methods further down are exported + $declaredin = $method->getDeclaringClass()->name; + if($declaredin == 'DokuWiki_Plugin' || $declaredin == 'DokuWiki_Remote_Plugin') continue; + $method_name = $method->name; + if(substr($method_name, 0, 1) == '_') continue; + + // strip asterisks + $doc = $method->getDocComment(); + $doc = preg_replace( + array('/^[ \t]*\/\*+[ \t]*/m', '/[ \t]*\*+[ \t]*/m', '/\*+\/\s*$/m','/\s*\/\s*$/m'), + array('', '', '', ''), + $doc + ); + + // prepare data + $data = array(); + $data['name'] = $method_name; + $data['public'] = 0; + $data['doc'] = $doc; + $data['args'] = array(); + + // get parameter type from doc block type hint + foreach($method->getParameters() as $parameter) { + $name = $parameter->name; + $type = 'string'; // we default to string + if(preg_match('/^@param[ \t]+([\w|\[\]]+)[ \t]\$'.$name.'/m', $doc, $m)){ + $type = $this->cleanTypeHint($m[1]); + } + $data['args'][] = $type; + } + + // get return type from doc block type hint + if(preg_match('/^@return[ \t]+([\w|\[\]]+)/m', $doc, $m)){ + $data['return'] = $this->cleanTypeHint($m[1]); + } else { + $data['return'] = 'string'; + } + + // add to result + $result[$method_name] = $data; + } + + return $result; + } + + /** + * Matches the given type hint against the valid options for the remote API + * + * @param string $hint + * @return string */ - public abstract function _getMethods(); + protected function cleanTypeHint($hint) { + $types = explode('|', $hint); + foreach($types as $t) { + if(substr($t, -2) == '[]') { + return 'array'; + } + if($t == 'boolean') { + return 'bool'; + } + if(in_array($t, array('array', 'string', 'int', 'double', 'bool', 'null', 'date', 'file'))) { + return $t; + } + } + return 'string'; + } + /** + * @return RemoteAPI + */ protected function getApi() { return $this->api; } diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index 88d8cd93d5a6b76e6ace6fa1c647410499581e08..1a03005857b815854247979b4d02e510ecf3851a 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -16,7 +16,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { /** * Constructor */ - function admin_plugin_revert(){ + function __construct(){ $this->setupLocale(); } @@ -64,9 +64,9 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { global $lang, $INPUT; echo '<form action="" method="post"><div class="no">'; echo '<label>'.$this->getLang('filter').': </label>'; - echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" />'; - echo ' <input type="submit" class="button" value="'.$lang['btn_search'].'" />'; - echo ' <span>'.$this->getLang('note1').'</span>'; + echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" /> '; + echo '<button type="submit">'.$lang['btn_search'].'</button> '; + echo '<span>'.$this->getLang('note1').'</span>'; echo '</div></form><br /><br />'; } @@ -173,7 +173,7 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { echo '</ul>'; echo '<p>'; - echo '<input type="submit" class="button" value="'.$this->getLang('revert').'" /> '; + echo '<button type="submit">'.$this->getLang('revert').'</button> '; printf($this->getLang('note2'),hsc($filter)); echo '</p>'; diff --git a/lib/plugins/revert/lang/ca/lang.php b/lib/plugins/revert/lang/ca/lang.php index 4f4d518ea134d45f03c04f88ec2ab9e6e484195e..e2755f8d3b879523b5b347abb0ba3a4473c3c36e 100644 --- a/lib/plugins/revert/lang/ca/lang.php +++ b/lib/plugins/revert/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/revert/lang/cs/lang.php b/lib/plugins/revert/lang/cs/lang.php index 619a9d929af2a2f6ce057af30baefe9a25649ef1..494750d5ef5f6113ab694cd69bdffa309ea12789 100644 --- a/lib/plugins/revert/lang/cs/lang.php +++ b/lib/plugins/revert/lang/cs/lang.php @@ -19,6 +19,7 @@ * @author Radovan Buroň <radovan@buron.cz> * @author Viktor Zavadil <vzavadil@newps.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + * @author Turkislav <turkislav@blabla.com> */ $lang['menu'] = 'Obnova zaspamovaných stránek'; $lang['filter'] = 'Hledat zaspamované stránky'; diff --git a/lib/plugins/revert/lang/cy/intro.txt b/lib/plugins/revert/lang/cy/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e09bab09f452b13d00ea234316e32e581138b8f --- /dev/null +++ b/lib/plugins/revert/lang/cy/intro.txt @@ -0,0 +1,3 @@ +====== Rheolwr Troi'n Ôl ====== + +Mae'r dudalen hon yn eich helpu chi i droi'n ôl yn awtomatig yn dilyn ymosodiad sbam. Er mwyn darganfod rhestr o dudalennau sbamllyd, rhowch linyn chwilio (ee. URL sbamllyd), yna cadarnhewch fod y tudalennau a ddarganfuwyd wir yn sbamllyd a throwch y golygiadau'n ôl. diff --git a/lib/plugins/revert/lang/cy/lang.php b/lib/plugins/revert/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ce4f005c15130629a0fefc02bcc7eb2730aee2f4 --- /dev/null +++ b/lib/plugins/revert/lang/cy/lang.php @@ -0,0 +1,22 @@ +<?php +/** + * welsh language file + */ + +// for admin plugins, the menu prompt to be displayed in the admin menu +// if set here, the plugin doesn't need to override the getMenuText() method +$lang['menu'] = 'Rheolwr Troi\'n Ôl'; + +// custom language strings for the plugin + +$lang['filter'] = 'Chwilio tudalennau sbamllyd'; +$lang['revert'] = 'Troi tudalennau a ddewiswyd yn ôl'; +$lang['reverted'] = 'Trowyd %s yn ôl i adolygiad %s'; +$lang['removed'] = '%s wedi\'i dynnu'; +$lang['revstart'] = 'Mae\'r broses troi\'n ôl wedi dechrau. Gall hwn gymryd amser hir. Os yw\'r + sgript yn bwrw\'r terfyn amser cyn gorffen, bydd angen troi\n ôl mewn dognau llai.'; +$lang['revstop'] = 'Gwnaeth y broses troi\'n ôl gwblhau\'n llwyddiannus.'; +$lang['note1'] = 'Sylw: mae\'r chwiliad yn sensitif i nodau uwch/is'; +$lang['note2'] = 'Sylw: caiff y dudalen ei throi\'n ôl i\'r fersiwn diwethaf sy ddim yn cynnwys y term sbamllyd <i>%s</i>.'; + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php index df4b271b1302e1f22d9cd46775fdef94b80e44ba..263537203c6ce63e6e7bc6a387095658e11fbdbf 100644 --- a/lib/plugins/revert/lang/ko/lang.php +++ b/lib/plugins/revert/lang/ko/lang.php @@ -9,13 +9,16 @@ * @author Seung-Chul Yoo <dryoo@live.com> * @author erial2@gmail.com * @author Myeongjin <aranet100@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = 'ë˜ëŒë¦¬ê¸° 관리ìž'; $lang['filter'] = '스팸 문서 검색'; $lang['revert'] = 'ì„ íƒí•œ 문서 ë˜ëŒë¦¬ê¸°'; $lang['reverted'] = '%s íŒì„ %s íŒìœ¼ë¡œ ë˜ëŒë¦¼'; $lang['removed'] = '%s ì œê±°ë¨'; -$lang['revstart'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì„ ì‹œìž‘í•©ë‹ˆë‹¤. 오랜 ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. 완료ë˜ê¸° ì „ì— ìŠ¤í¬ë¦½íЏ 시간 초과가 ë°œìƒí•œë‹¤ë©´ ë” ìž‘ì€ ìž‘ì—…ìœ¼ë¡œ 나누어서 ë˜ëŒë¦¬ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; +$lang['revstart'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì„ ì‹œìž‘í•©ë‹ˆë‹¤. 오랜 ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. 완료ë˜ê¸° ì „ì— + 스í¬ë¦½íЏ 시간 초과가 ë°œìƒí•œë‹¤ë©´ ë” ìž‘ì€ ìž‘ì—…ìœ¼ë¡œ 나누어서 + ë˜ëŒë¦¬ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; $lang['revstop'] = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì´ ì„±ê³µì 으로 ë났습니다.'; $lang['note1'] = 'ì°¸ê³ : 대소문ìžë¥¼ 구별해 찾습니다'; $lang['note2'] = 'ì°¸ê³ : 문서는 <i>%s</i> 스팸 단어를 í¬í•¨í•˜ì§€ ì•Šì€ ìµœì‹ íŒìœ¼ë¡œ ë˜ëŒë¦½ë‹ˆë‹¤.'; diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php index 76da8ca9cfe65d77dd7a482feafa94bdc45a7e79..d5307c7ca0972cdcd5f36710a3e6a40acb364ada 100644 --- a/lib/plugins/revert/lang/no/lang.php +++ b/lib/plugins/revert/lang/no/lang.php @@ -20,6 +20,7 @@ * @author Boris <boris@newton-media.no> * @author Christopher Schive <chschive@frisurf.no> * @author Patrick <spill.p@hotmail.com> + * @author Danny Buckhof <daniel.raknes@hotmail.no> */ $lang['menu'] = 'Tilbakestillingsbehandler'; $lang['filter'] = 'Søk etter søppelmeldinger'; diff --git a/lib/plugins/revert/plugin.info.txt b/lib/plugins/revert/plugin.info.txt index 8d107dc3224f0c42be7288b01fcd6e1edb920812..bba939d3713ec60311ba83cf41c2dda2bb111712 100644 --- a/lib/plugins/revert/plugin.info.txt +++ b/lib/plugins/revert/plugin.info.txt @@ -1,7 +1,7 @@ base revert author Andreas Gohr email andi@splitbrain.org -date 2013-11-21 +date 2015-07-15 name Revert Manager desc Allows you to mass revert recent edits to remove Spam or vandalism url http://dokuwiki.org/plugin:revert diff --git a/lib/plugins/styling/.travis.yml b/lib/plugins/styling/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..75ee0b152cfdd19356b7add7f6e8231a215f7677 --- /dev/null +++ b/lib/plugins/styling/.travis.yml @@ -0,0 +1,13 @@ +# Config file for travis-ci.org + +language: php +php: + - "5.5" + - "5.4" + - "5.3" +env: + - DOKUWIKI=master + - DOKUWIKI=stable +before_install: wget https://raw.github.com/splitbrain/dokuwiki-travis/master/travis.sh +install: sh travis.sh +script: cd _test && phpunit --stderr --group plugin_styling diff --git a/lib/plugins/styling/README b/lib/plugins/styling/README new file mode 100644 index 0000000000000000000000000000000000000000..a1a5e890cfa237335a96f0d07c03801592db17ef --- /dev/null +++ b/lib/plugins/styling/README @@ -0,0 +1,27 @@ +styling Plugin for DokuWiki + +Allows to edit style.ini replacements + +All documentation for this plugin can be found at +https://www.dokuwiki.org/plugin:styling + +If you install this plugin manually, make sure it is installed in +lib/plugins/styling/ - if the folder is called different it +will not work! + +Please refer to http://www.dokuwiki.org/plugins for additional info +on how to install plugins in DokuWiki. + +---- +Copyright (C) Andreas Gohr <andi@splitbrain.org> + +This program 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; version 2 of the License + +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. + +See the COPYING file in your DokuWiki folder for details diff --git a/lib/plugins/styling/_test/general.test.php b/lib/plugins/styling/_test/general.test.php new file mode 100644 index 0000000000000000000000000000000000000000..1337f6f759e77f1d88b6a21165c2b3c60cb50030 --- /dev/null +++ b/lib/plugins/styling/_test/general.test.php @@ -0,0 +1,33 @@ +<?php +/** + * General tests for the styling plugin + * + * @group plugin_styling + * @group plugins + */ +class general_plugin_styling_test extends DokuWikiTest { + + /** + * Simple test to make sure the plugin.info.txt is in correct format + */ + public function test_plugininfo() { + $file = __DIR__.'/../plugin.info.txt'; + $this->assertFileExists($file); + + $info = confToHash($file); + + $this->assertArrayHasKey('base', $info); + $this->assertArrayHasKey('author', $info); + $this->assertArrayHasKey('email', $info); + $this->assertArrayHasKey('date', $info); + $this->assertArrayHasKey('name', $info); + $this->assertArrayHasKey('desc', $info); + $this->assertArrayHasKey('url', $info); + + $this->assertEquals('styling', $info['base']); + $this->assertRegExp('/^https?:\/\//', $info['url']); + $this->assertTrue(mail_isvalid($info['email'])); + $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); + $this->assertTrue(false !== strtotime($info['date'])); + } +} diff --git a/lib/plugins/styling/action.php b/lib/plugins/styling/action.php new file mode 100644 index 0000000000000000000000000000000000000000..896e14bef8ed60d137ea28591760688bfe30d236 --- /dev/null +++ b/lib/plugins/styling/action.php @@ -0,0 +1,60 @@ +<?php +/** + * DokuWiki Plugin styling (Action Component) + * + * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +/** + * Class action_plugin_styling + * + * This handles all the save actions and loading the interface + * + * All this usually would be done within an admin plugin, but we want to have this available outside + * the admin interface using our floating dialog. + */ +class action_plugin_styling extends DokuWiki_Action_Plugin { + + /** + * Registers a callback functions + * + * @param Doku_Event_Handler $controller DokuWiki's event controller object + * @return void + */ + public function register(Doku_Event_Handler $controller) { + $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_header'); + } + + /** + * Adds the preview parameter to the stylesheet loading in non-js mode + * + * @param Doku_Event $event event object by reference + * @param mixed $param [the parameters passed as fifth argument to register_hook() when this + * handler was registered] + * @return void + */ + public function handle_header(Doku_Event &$event, $param) { + global $ACT; + global $INPUT; + if($ACT != 'admin' || $INPUT->str('page') != 'styling') return; + if(!auth_isadmin()) return; + + // set preview + $len = count($event->data['link']); + for($i = 0; $i < $len; $i++) { + if( + $event->data['link'][$i]['rel'] == 'stylesheet' && + strpos($event->data['link'][$i]['href'], 'lib/exe/css.php') !== false + ) { + $event->data['link'][$i]['href'] .= '&preview=1&tseed='.time(); + } + } + } + +} + +// vim:ts=4:sw=4:et: diff --git a/lib/plugins/styling/admin.php b/lib/plugins/styling/admin.php new file mode 100644 index 0000000000000000000000000000000000000000..c747c3130e1c1d4cc609f3c5d855db1eda451d7b --- /dev/null +++ b/lib/plugins/styling/admin.php @@ -0,0 +1,211 @@ +<?php +/** + * DokuWiki Plugin styling (Admin Component) + * + * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +class admin_plugin_styling extends DokuWiki_Admin_Plugin { + + public $ispopup = false; + + /** + * @return int sort number in admin menu + */ + public function getMenuSort() { + return 1000; + } + + /** + * @return bool true if only access for superuser, false is for superusers and moderators + */ + public function forAdminOnly() { + return true; + } + + /** + * handle the different actions (also called from ajax) + */ + public function handle() { + global $INPUT; + $run = $INPUT->extract('run')->str('run'); + if(!$run) return; + $run = "run_$run"; + $this->$run(); + } + + /** + * Render HTML output, e.g. helpful text and a form + */ + public function html() { + $class = 'nopopup'; + if($this->ispopup) $class = 'ispopup page'; + + echo '<div id="plugin__styling" class="'.$class.'">'; + ptln('<h1>'.$this->getLang('menu').'</h1>'); + $this->form(); + echo '</div>'; + } + + /** + * Create the actual editing form + */ + public function form() { + global $conf; + global $ID; + define('SIMPLE_TEST', 1); // hack, ideally certain functions should be moved out of css.php + require_once(DOKU_INC.'lib/exe/css.php'); + $styleini = css_styleini($conf['template'], true); + $replacements = $styleini['replacements']; + + if($this->ispopup) { + $target = DOKU_BASE.'lib/plugins/styling/popup.php'; + } else { + $target = wl($ID, array('do' => 'admin', 'page' => 'styling')); + } + + if(empty($replacements)) { + echo '<p class="error">'.$this->getLang('error').'</p>'; + } else { + echo $this->locale_xhtml('intro'); + + echo '<form class="styling" method="post" action="'.$target.'">'; + + echo '<table><tbody>'; + foreach($replacements as $key => $value) { + $name = tpl_getLang($key); + if(empty($name)) $name = $this->getLang($key); + if(empty($name)) $name = $key; + + echo '<tr>'; + echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>'; + echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' dir="ltr" /></td>'; + echo '</tr>'; + } + echo '</tbody></table>'; + + echo '<p>'; + echo '<button type="submit" name="run[preview]" class="btn_preview primary">'.$this->getLang('btn_preview').'</button> '; + echo '<button type="submit" name="run[reset]">'.$this->getLang('btn_reset').'</button>'; #FIXME only if preview.ini exists + echo '</p>'; + + echo '<p>'; + echo '<button type="submit" name="run[save]" class="primary">'.$this->getLang('btn_save').'</button>'; + echo '</p>'; + + echo '<p>'; + echo '<button type="submit" name="run[revert]">'.$this->getLang('btn_revert').'</button>'; #FIXME only if local.ini exists + echo '</p>'; + + echo '</form>'; + + echo tpl_locale_xhtml('style'); + + } + } + + /** + * set the color class attribute + */ + protected function colorClass($key) { + static $colors = array( + 'text', + 'background', + 'text_alt', + 'background_alt', + 'text_neu', + 'background_neu', + 'border', + 'highlight', + 'background_site', + 'link', + 'existing', + 'missing', + ); + + if(preg_match('/colou?r/', $key) || in_array(trim($key,'_'), $colors)) { + return 'class="color"'; + } else { + return ''; + } + } + + /** + * saves the preview.ini (alos called from ajax directly) + */ + public function run_preview() { + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, $this->makeini()); + } + + /** + * deletes the preview.ini + */ + protected function run_reset() { + global $conf; + $ini = $conf['cachedir'].'/preview.ini'; + io_saveFile($ini, ''); + } + + /** + * deletes the local style.ini replacements + */ + protected function run_revert() { + $this->replaceini(''); + $this->run_reset(); + } + + /** + * save the local style.ini replacements + */ + protected function run_save() { + $this->replaceini($this->makeini()); + $this->run_reset(); + } + + /** + * create the replacement part of a style.ini from submitted data + * + * @return string + */ + protected function makeini() { + global $INPUT; + + $ini = "[replacements]\n"; + $ini .= ";These overwrites have been generated from the Template styling Admin interface\n"; + $ini .= ";Any values in this section will be overwritten by that tool again\n"; + foreach($INPUT->arr('tpl') as $key => $val) { + $ini .= $key.' = "'.addslashes($val).'"'."\n"; + } + + return $ini; + } + + /** + * replaces the replacement parts in the local ini + * + * @param string $new the new ini contents + */ + protected function replaceini($new) { + global $conf; + $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini"; + if(file_exists($ini)) { + $old = io_readFile($ini); + $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old); + $old = trim($old); + } else { + $old = ''; + } + + io_makeFileDir($ini); + io_saveFile($ini, "$old\n\n$new"); + } + +} + +// vim:ts=4:sw=4:et: diff --git a/lib/plugins/styling/iris.js b/lib/plugins/styling/iris.js new file mode 100644 index 0000000000000000000000000000000000000000..4eda5022e3577ec57b448dc0e97e8ab2be6186d4 --- /dev/null +++ b/lib/plugins/styling/iris.js @@ -0,0 +1,1488 @@ +/*! Iris Color Picker - v1.0.7 - 2014-11-28 +* https://github.com/Automattic/Iris +* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */ +(function( $, undef ){ + var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion; + + _html = '<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>'; + _css = '.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}'; + + // Even IE9 dosen't support gradients. Elaborate sigh. + UA = navigator.userAgent.toLowerCase(); + isIE = navigator.appName === 'Microsoft Internet Explorer'; + IEVersion = isIE ? parseFloat( UA.match( /msie ([0-9]{1,}[\.0-9]{0,})/ )[1] ) : 0; + nonGradientIE = ( isIE && IEVersion < 10 ); + gradientType = false; + + // we don't bother with an unprefixed version, as it has a different syntax + vendorPrefixes = [ '-moz-', '-webkit-', '-o-', '-ms-' ]; + + // Bail for IE <= 7 + if ( nonGradientIE && IEVersion <= 7 ) { + $.fn.iris = $.noop; + $.support.iris = false; + return; + } + + $.support.iris = true; + + function testGradientType() { + var el, base, + bgImageString = 'backgroundImage'; + + if ( nonGradientIE ) { + gradientType = 'filter'; + } + else { + el = $( '<div id="iris-gradtest" />' ); + base = 'linear-gradient(top,#fff,#000)'; + $.each( vendorPrefixes, function( i, val ){ + el.css( bgImageString, val + base ); + if ( el.css( bgImageString ).match( 'gradient' ) ) { + gradientType = i; + return false; + } + }); + // check for legacy webkit gradient syntax + if ( gradientType === false ) { + el.css( 'background', '-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))' ); + if ( el.css( bgImageString ).match( 'gradient' ) ) { + gradientType = 'webkit'; + } + } + el.remove(); + } + + } + + /** + * Only for CSS3 gradients. oldIE will use a separate function. + * + * Accepts as many color stops as necessary from 2nd arg on, or 2nd + * arg can be an array of color stops + * + * @param {string} origin Gradient origin - top or left, defaults to left. + * @return {string} Appropriate CSS3 gradient string for use in + */ + function createGradient( origin, stops ) { + origin = ( origin === 'top' ) ? 'top' : 'left'; + stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 ); + if ( gradientType === 'webkit' ) { + return legacyWebkitGradient( origin, stops ); + } else { + return vendorPrefixes[ gradientType ] + 'linear-gradient(' + origin + ', ' + stops.join(', ') + ')'; + } + } + + /** + * Stupid gradients for a stupid browser. + */ + function stupidIEGradient( origin, stops ) { + var type, self, lastIndex, filter, startPosProp, endPosProp, dimensionProp, template, html; + + origin = ( origin === 'top' ) ? 'top' : 'left'; + stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 ); + // 8 hex: AARRGGBB + // GradientType: 0 vertical, 1 horizontal + type = ( origin === 'top' ) ? 0 : 1; + self = $( this ); + lastIndex = stops.length - 1; + filter = 'filter'; + startPosProp = ( type === 1 ) ? 'left' : 'top'; + endPosProp = ( type === 1 ) ? 'right' : 'bottom'; + dimensionProp = ( type === 1 ) ? 'height' : 'width'; + template = '<div class="iris-ie-gradient-shim" style="position:absolute;' + dimensionProp + ':100%;' + startPosProp + ':%start%;' + endPosProp + ':%end%;' + filter + ':%filter%;" data-color:"%color%"></div>'; + html = ''; + // need a positioning context + if ( self.css('position') === 'static' ) { + self.css( {position: 'relative' } ); + } + + stops = fillColorStops( stops ); + $.each(stops, function( i, startColor ) { + var endColor, endStop, filterVal; + + // we want two at a time. if we're on the last pair, bail. + if ( i === lastIndex ) { + return false; + } + + endColor = stops[ i + 1 ]; + //if our pairs are at the same color stop, moving along. + if ( startColor.stop === endColor.stop ) { + return; + } + + endStop = 100 - parseFloat( endColor.stop ) + '%'; + startColor.octoHex = new Color( startColor.color ).toIEOctoHex(); + endColor.octoHex = new Color( endColor.color ).toIEOctoHex(); + + filterVal = 'progid:DXImageTransform.Microsoft.Gradient(GradientType=' + type + ', StartColorStr=\'' + startColor.octoHex + '\', EndColorStr=\'' + endColor.octoHex + '\')'; + html += template.replace( '%start%', startColor.stop ).replace( '%end%', endStop ).replace( '%filter%', filterVal ); + }); + self.find( '.iris-ie-gradient-shim' ).remove(); + $( html ).prependTo( self ); + } + + function legacyWebkitGradient( origin, colorList ) { + var stops = []; + origin = ( origin === 'top' ) ? '0% 0%,0% 100%,' : '0% 100%,100% 100%,'; + colorList = fillColorStops( colorList ); + $.each( colorList, function( i, val ){ + stops.push( 'color-stop(' + ( parseFloat( val.stop ) / 100 ) + ', ' + val.color + ')' ); + }); + return '-webkit-gradient(linear,' + origin + stops.join(',') + ')'; + } + + function fillColorStops( colorList ) { + var colors = [], + percs = [], + newColorList = [], + lastIndex = colorList.length - 1; + + $.each( colorList, function( index, val ) { + var color = val, + perc = false, + match = val.match( /1?[0-9]{1,2}%$/ ); + + if ( match ) { + color = val.replace( /\s?1?[0-9]{1,2}%$/, '' ); + perc = match.shift(); + } + colors.push( color ); + percs.push( perc ); + }); + + // back fill first and last + if ( percs[0] === false ) { + percs[0] = '0%'; + } + + if ( percs[lastIndex] === false ) { + percs[lastIndex] = '100%'; + } + + percs = backFillColorStops( percs ); + + $.each( percs, function( i ){ + newColorList[i] = { color: colors[i], stop: percs[i] }; + }); + return newColorList; + } + + function backFillColorStops( stops ) { + var first = 0, + last = stops.length - 1, + i = 0, + foundFirst = false, + incr, + steps, + step, + firstVal; + + if ( stops.length <= 2 || $.inArray( false, stops ) < 0 ) { + return stops; + } + while ( i < stops.length - 1 ) { + if ( ! foundFirst && stops[i] === false ) { + first = i - 1; + foundFirst = true; + } else if ( foundFirst && stops[i] !== false ) { + last = i; + i = stops.length; + } + i++; + } + steps = last - first; + firstVal = parseInt( stops[first].replace('%'), 10 ); + incr = ( parseFloat( stops[last].replace('%') ) - firstVal ) / steps; + i = first + 1; + step = 1; + while ( i < last ) { + stops[i] = ( firstVal + ( step * incr ) ) + '%'; + step++; + i++; + } + return backFillColorStops( stops ); + } + + $.fn.gradient = function() { + var args = arguments; + return this.each( function() { + // this'll be oldishIE + if ( nonGradientIE ) { + stupidIEGradient.apply( this, args ); + } else { + // new hotness + $( this ).css( 'backgroundImage', createGradient.apply( this, args ) ); + } + }); + }; + + $.fn.raninbowGradient = function( origin, args ) { + var opts, template, i, steps; + + origin = origin || 'top'; + opts = $.extend( {}, { s: 100, l: 50 }, args ); + template = 'hsl(%h%,' + opts.s + '%,' + opts.l + '%)'; + i = 0; + steps = []; + while ( i <= 360 ) { + steps.push( template.replace('%h%', i) ); + i += 30; + } + return this.each(function() { + $(this).gradient( origin, steps ); + }); + }; + + // the colorpicker widget def. + Iris = { + options: { + color: false, + mode: 'hsl', + controls: { + horiz: 's', // horizontal defaults to saturation + vert: 'l', // vertical defaults to lightness + strip: 'h' // right strip defaults to hue + }, + hide: true, // hide the color picker by default + border: true, // draw a border around the collection of UI elements + target: false, // a DOM element / jQuery selector that the element will be appended within. Only used when called on an input. + width: 200, // the width of the collection of UI elements + palettes: false // show a palette of basic colors beneath the square. + }, + _color: '', + _palettes: [ '#000', '#fff', '#d33', '#d93', '#ee2', '#81d742', '#1e73be', '#8224e3' ], + _inited: false, + _defaultHSLControls: { + horiz: 's', + vert: 'l', + strip: 'h' + }, + _defaultHSVControls: { + horiz: 'h', + vert: 'v', + strip: 's' + }, + _scale: { + h: 360, + s: 100, + l: 100, + v: 100 + }, + _create: function() { + var self = this, + el = self.element, + color = self.options.color || el.val(); + + if ( gradientType === false ) { + testGradientType(); + } + + if ( el.is( 'input' ) ) { + if ( self.options.target ) { + self.picker = $( _html ).appendTo( self.options.target ); + } else { + self.picker = $( _html ).insertAfter( el ); + } + + self._addInputListeners( el ); + } else { + el.append( _html ); + self.picker = el.find( '.iris-picker' ); + } + + // Browsers / Versions + // Feature detection doesn't work for these, and $.browser is deprecated + if ( isIE ) { + if ( IEVersion === 9 ) { + self.picker.addClass( 'iris-ie-9' ); + } else if ( IEVersion <= 8 ) { + self.picker.addClass( 'iris-ie-lt9' ); + } + } else if ( UA.indexOf('compatible') < 0 && UA.indexOf('khtml') < 0 && UA.match( /mozilla/ ) ) { + self.picker.addClass( 'iris-mozilla' ); + } + + if ( self.options.palettes ) { + self._addPalettes(); + } + + self._color = new Color( color ).setHSpace( self.options.mode ); + self.options.color = self._color.toString(); + + // prep 'em for re-use + self.controls = { + square: self.picker.find( '.iris-square' ), + squareDrag: self.picker.find( '.iris-square-value' ), + horiz: self.picker.find( '.iris-square-horiz' ), + vert: self.picker.find( '.iris-square-vert' ), + strip: self.picker.find( '.iris-strip' ), + stripSlider: self.picker.find( '.iris-strip .iris-slider-offset' ) + }; + + // small sanity check - if we chose hsv, change default controls away from hsl + if ( self.options.mode === 'hsv' && self._has('l', self.options.controls) ) { + self.options.controls = self._defaultHSVControls; + } else if ( self.options.mode === 'hsl' && self._has('v', self.options.controls) ) { + self.options.controls = self._defaultHSLControls; + } + + // store it. HSL gets squirrely + self.hue = self._color.h(); + + if ( self.options.hide ) { + self.picker.hide(); + } + + if ( self.options.border ) { + self.picker.addClass( 'iris-border' ); + } + + self._initControls(); + self.active = 'external'; + self._dimensions(); + self._change(); + }, + _has: function(needle, haystack) { + var ret = false; + $.each(haystack, function(i,v){ + if ( needle === v ) { + ret = true; + // exit the loop + return false; + } + }); + return ret; + }, + _addPalettes: function () { + var container = $( '<div class="iris-palette-container" />' ), + palette = $( '<a class="iris-palette" tabindex="0" />' ), + colors = $.isArray( this.options.palettes ) ? this.options.palettes : this._palettes; + + // do we have an existing container? Empty and reuse it. + if ( this.picker.find( '.iris-palette-container' ).length ) { + container = this.picker.find( '.iris-palette-container' ).detach().html( '' ); + } + + $.each(colors, function(index, val) { + palette.clone().data( 'color', val ) + .css( 'backgroundColor', val ).appendTo( container ) + .height( 10 ).width( 10 ); + }); + + this.picker.append(container); + }, + _paint: function() { + var self = this; + self._paintDimension( 'top', 'strip' ); + self._paintDimension( 'top', 'vert' ); + self._paintDimension( 'left', 'horiz' ); + }, + _paintDimension: function( origin, control ) { + var self = this, + c = self._color, + mode = self.options.mode, + color = self._getHSpaceColor(), + target = self.controls[ control ], + controlOpts = self.options.controls, + stops; + + // don't paint the active control + if ( control === self.active || ( self.active === 'square' && control !== 'strip' ) ) { + return; + } + + switch ( controlOpts[ control ] ) { + case 'h': + if ( mode === 'hsv' ) { + color = c.clone(); + switch ( control ) { + case 'horiz': + color[controlOpts.vert](100); + break; + case 'vert': + color[controlOpts.horiz](100); + break; + case 'strip': + color.setHSpace('hsl'); + break; + } + stops = color.toHsl(); + } else { + if ( control === 'strip' ) { + stops = { s: color.s, l: color.l }; + } else { + stops = { s: 100, l: color.l }; + } + } + + target.raninbowGradient( origin, stops ); + break; + case 's': + if ( mode === 'hsv' ) { + if ( control === 'vert' ) { + stops = [ c.clone().a(0).s(0).toCSS('rgba'), c.clone().a(1).s(0).toCSS('rgba') ]; + } else if ( control === 'strip' ) { + stops = [ c.clone().s(100).toCSS('hsl'), c.clone().s(0).toCSS('hsl') ]; + } else if ( control === 'horiz' ) { + stops = [ '#fff', 'hsl(' + color.h + ',100%,50%)' ]; + } + } else { // implicit mode === 'hsl' + if ( control === 'vert' && self.options.controls.horiz === 'h' ) { + stops = ['hsla(0, 0%, ' + color.l + '%, 0)', 'hsla(0, 0%, ' + color.l + '%, 1)']; + } else { + stops = ['hsl('+ color.h +',0%,50%)', 'hsl(' + color.h + ',100%,50%)']; + } + } + + + target.gradient( origin, stops ); + break; + case 'l': + if ( control === 'strip' ) { + stops = ['hsl(' + color.h + ',100%,100%)', 'hsl(' + color.h + ', ' + color.s + '%,50%)', 'hsl('+ color.h +',100%,0%)']; + } else { + stops = ['#fff', 'rgba(255,255,255,0) 50%', 'rgba(0,0,0,0) 50%', 'rgba(0,0,0,1)']; + } + target.gradient( origin, stops ); + break; + case 'v': + if ( control === 'strip' ) { + stops = [ c.clone().v(100).toCSS(), c.clone().v(0).toCSS() ]; + } else { + stops = ['rgba(0,0,0,0)', '#000']; + } + target.gradient( origin, stops ); + break; + default: + break; + } + }, + + _getHSpaceColor: function() { + return ( this.options.mode === 'hsv' ) ? this._color.toHsv() : this._color.toHsl(); + }, + + _dimensions: function( reset ) { + // whatever size + var self = this, + opts = self.options, + controls = self.controls, + square = controls.square, + strip = self.picker.find( '.iris-strip' ), + squareWidth = '77.5%', + stripWidth = '12%', + totalPadding = 20, + innerWidth = opts.border ? opts.width - totalPadding : opts.width, + controlsHeight, + paletteCount = $.isArray( opts.palettes ) ? opts.palettes.length : self._palettes.length, + paletteMargin, paletteWidth, paletteContainerWidth; + + if ( reset ) { + square.css( 'width', '' ); + strip.css( 'width', '' ); + self.picker.css( {width: '', height: ''} ); + } + + squareWidth = innerWidth * ( parseFloat( squareWidth ) / 100 ); + stripWidth = innerWidth * ( parseFloat( stripWidth ) / 100 ); + controlsHeight = opts.border ? squareWidth + totalPadding : squareWidth; + + square.width( squareWidth ).height( squareWidth ); + strip.height( squareWidth ).width( stripWidth ); + self.picker.css( { width: opts.width, height: controlsHeight } ); + + if ( ! opts.palettes ) { + return self.picker.css( 'paddingBottom', '' ); + } + + // single margin at 2% + paletteMargin = squareWidth * 2 / 100; + paletteContainerWidth = squareWidth - ( ( paletteCount - 1 ) * paletteMargin ); + paletteWidth = paletteContainerWidth / paletteCount; + self.picker.find('.iris-palette').each( function( i ) { + var margin = i === 0 ? 0 : paletteMargin; + $( this ).css({ + width: paletteWidth, + height: paletteWidth, + marginLeft: margin + }); + }); + self.picker.css( 'paddingBottom', paletteWidth + paletteMargin ); + strip.height( paletteWidth + paletteMargin + squareWidth ); + }, + + _addInputListeners: function( input ) { + var self = this, + debounceTimeout = 100, + callback = function( event ){ + var color = new Color( input.val() ), + val = input.val().replace( /^#/, '' ); + + input.removeClass( 'iris-error' ); + // we gave a bad color + if ( color.error ) { + // don't error on an empty input - we want those allowed + if ( val !== '' ) { + input.addClass( 'iris-error' ); + } + } else { + if ( color.toString() !== self._color.toString() ) { + // let's not do this on keyup for hex shortcodes + if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) { + self._setOption( 'color', color.toString() ); + } + } + } + }; + + input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) ); + + // If we initialized hidden, show on first focus. The rest is up to you. + if ( self.options.hide ) { + input.one( 'focus', function() { + self.show(); + }); + } + }, + + _initControls: function() { + var self = this, + controls = self.controls, + square = controls.square, + controlOpts = self.options.controls, + stripScale = self._scale[controlOpts.strip]; + + controls.stripSlider.slider({ + orientation: 'vertical', + max: stripScale, + slide: function( event, ui ) { + self.active = 'strip'; + // "reverse" for hue. + if ( controlOpts.strip === 'h' ) { + ui.value = stripScale - ui.value; + } + + self._color[controlOpts.strip]( ui.value ); + self._change.apply( self, arguments ); + } + }); + + controls.squareDrag.draggable({ + containment: controls.square.find( '.iris-square-inner' ), + zIndex: 1000, + cursor: 'move', + drag: function( event, ui ) { + self._squareDrag( event, ui ); + }, + start: function() { + square.addClass( 'iris-dragging' ); + $(this).addClass( 'ui-state-focus' ); + }, + stop: function() { + square.removeClass( 'iris-dragging' ); + $(this).removeClass( 'ui-state-focus' ); + } + }).on( 'mousedown mouseup', function( event ) { + var focusClass = 'ui-state-focus'; + event.preventDefault(); + if (event.type === 'mousedown' ) { + self.picker.find( '.' + focusClass ).removeClass( focusClass ).blur(); + $(this).addClass( focusClass ).focus(); + } else { + $(this).removeClass( focusClass ); + } + }).on( 'keydown', function( event ) { + var container = controls.square, + draggable = controls.squareDrag, + position = draggable.position(), + distance = self.options.width / 100; // Distance in pixels the draggable should be moved: 1 "stop" + + // make alt key go "10" + if ( event.altKey ) { + distance *= 10; + } + + // Reposition if one of the directional keys is pressed + switch ( event.keyCode ) { + case 37: position.left -= distance; break; // Left + case 38: position.top -= distance; break; // Up + case 39: position.left += distance; break; // Right + case 40: position.top += distance; break; // Down + default: return true; // Exit and bubble + } + + // Keep draggable within container + position.left = Math.max( 0, Math.min( position.left, container.width() ) ); + position.top = Math.max( 0, Math.min( position.top, container.height() ) ); + + draggable.css(position); + self._squareDrag( event, { position: position }); + event.preventDefault(); + }); + + // allow clicking on the square to move there and keep dragging + square.mousedown( function( event ) { + var squareOffset, pos; + // only left click + if ( event.which !== 1 ) { + return; + } + + // prevent bubbling from the handle: no infinite loops + if ( ! $( event.target ).is( 'div' ) ) { + return; + } + + squareOffset = self.controls.square.offset(); + pos = { + top: event.pageY - squareOffset.top, + left: event.pageX - squareOffset.left + }; + event.preventDefault(); + self._squareDrag( event, { position: pos } ); + event.target = self.controls.squareDrag.get(0); + self.controls.squareDrag.css( pos ).trigger( event ); + }); + + // palettes + if ( self.options.palettes ) { + self._paletteListeners(); + } + }, + + _paletteListeners: function() { + var self = this; + self.picker.find('.iris-palette-container').on('click.palette', '.iris-palette', function() { + self._color.fromCSS( $(this).data('color') ); + self.active = 'external'; + self._change(); + }).on( 'keydown.palette', '.iris-palette', function( event ) { + if ( ! ( event.keyCode === 13 || event.keyCode === 32 ) ) { + return true; + } + event.stopPropagation(); + $( this ).click(); + }); + }, + + _squareDrag: function( event, ui ) { + var self = this, + controlOpts = self.options.controls, + dimensions = self._squareDimensions(), + vertVal = Math.round( ( dimensions.h - ui.position.top ) / dimensions.h * self._scale[controlOpts.vert] ), + horizVal = self._scale[controlOpts.horiz] - Math.round( ( dimensions.w - ui.position.left ) / dimensions.w * self._scale[controlOpts.horiz] ); + + self._color[controlOpts.horiz]( horizVal )[controlOpts.vert]( vertVal ); + + self.active = 'square'; + self._change.apply( self, arguments ); + }, + + _setOption: function( key, value ) { + var self = this, + oldValue = self.options[key], + doDimensions = false, + hexLessColor, + newColor, + method; + + // ensure the new value is set. We can reset to oldValue if some check wasn't met. + self.options[key] = value; + + switch(key) { + case 'color': + // cast to string in case we have a number + value = '' + value; + hexLessColor = value.replace( /^#/, '' ); + newColor = new Color( value ).setHSpace( self.options.mode ); + if ( newColor.error ) { + self.options[key] = oldValue; + } else { + self._color = newColor; + self.options.color = self.options[key] = self._color.toString(); + self.active = 'external'; + self._change(); + } + break; + case 'palettes': + doDimensions = true; + + if ( value ) { + self._addPalettes(); + } else { + self.picker.find('.iris-palette-container').remove(); + } + + // do we need to add events? + if ( ! oldValue ) { + self._paletteListeners(); + } + break; + case 'width': + doDimensions = true; + break; + case 'border': + doDimensions = true; + method = value ? 'addClass' : 'removeClass'; + self.picker[method]('iris-border'); + break; + case 'mode': + case 'controls': + // if nothing's changed, let's bail, since this causes re-rendering the whole widget + if ( oldValue === value ) { + return; + } + + // we're using these poorly named variables because they're already scoped. + // method is the element that Iris was called on. oldValue will be the options + method = self.element; + oldValue = self.options; + oldValue.hide = ! self.picker.is( ':visible' ); + self.destroy(); + self.picker.remove(); + return $(self.element).iris(oldValue); + } + + // Do we need to recalc dimensions? + if ( doDimensions ) { + self._dimensions(true); + } + }, + + _squareDimensions: function( forceRefresh ) { + var square = this.controls.square, + dimensions, + control; + + if ( forceRefresh !== undef && square.data('dimensions') ) { + return square.data('dimensions'); + } + + control = this.controls.squareDrag; + dimensions = { + w: square.width(), + h: square.height() + }; + square.data( 'dimensions', dimensions ); + return dimensions; + }, + + _isNonHueControl: function( active, type ) { + if ( active === 'square' && this.options.controls.strip === 'h' ) { + return true; + } else if ( type === 'external' || ( type === 'h' && active === 'strip' ) ) { + return false; + } + + return true; + }, + + _change: function() { + var self = this, + controls = self.controls, + color = self._getHSpaceColor(), + actions = [ 'square', 'strip' ], + controlOpts = self.options.controls, + type = controlOpts[self.active] || 'external', + oldHue = self.hue; + + if ( self.active === 'strip' ) { + // take no action on any of the square sliders if we adjusted the strip + actions = []; + } else if ( self.active !== 'external' ) { + // for non-strip, non-external, strip should never change + actions.pop(); // conveniently the last item + } + + $.each( actions, function(index, item) { + var value, dimensions, cssObj; + if ( item !== self.active ) { + switch ( item ) { + case 'strip': + // reverse for hue + value = ( controlOpts.strip === 'h' ) ? self._scale[controlOpts.strip] - color[controlOpts.strip] : color[controlOpts.strip]; + controls.stripSlider.slider( 'value', value ); + break; + case 'square': + dimensions = self._squareDimensions(); + cssObj = { + left: color[controlOpts.horiz] / self._scale[controlOpts.horiz] * dimensions.w, + top: dimensions.h - ( color[controlOpts.vert] / self._scale[controlOpts.vert] * dimensions.h ) + }; + + self.controls.squareDrag.css( cssObj ); + break; + } + } + }); + + // Ensure that we don't change hue if we triggered a hue reset + if ( color.h !== oldHue && self._isNonHueControl( self.active, type ) ) { + self._color.h(oldHue); + } + + // store hue for repeating above check next time + self.hue = self._color.h(); + + self.options.color = self._color.toString(); + + // only run after the first time + if ( self._inited ) { + self._trigger( 'change', { type: self.active }, { color: self._color } ); + } + + if ( self.element.is( ':input' ) && ! self._color.error ) { + self.element.removeClass( 'iris-error' ); + if ( self.element.val() !== self._color.toString() ) { + self.element.val( self._color.toString() ); + } + } + + self._paint(); + self._inited = true; + self.active = false; + }, + // taken from underscore.js _.debounce method + _debounce: function( func, wait, immediate ) { + var timeout, result; + return function() { + var context = this, + args = arguments, + later, + callNow; + + later = function() { + timeout = null; + if ( ! immediate) { + result = func.apply( context, args ); + } + }; + + callNow = immediate && !timeout; + clearTimeout( timeout ); + timeout = setTimeout( later, wait ); + if ( callNow ) { + result = func.apply( context, args ); + } + return result; + }; + }, + show: function() { + this.picker.show(); + }, + hide: function() { + this.picker.hide(); + }, + toggle: function() { + this.picker.toggle(); + }, + color: function(newColor) { + if ( newColor === true ) { + return this._color.clone(); + } else if ( newColor === undef ) { + return this._color.toString(); + } + this.option('color', newColor); + } + }; + // initialize the widget + $.widget( 'a8c.iris', Iris ); + // add CSS + $( '<style id="iris-css">' + _css + '</style>' ).appendTo( 'head' ); + +}( jQuery )); +/*! Color.js - v0.9.11 - 2013-08-09 +* https://github.com/Automattic/Color.js +* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */ +(function(global, undef) { + + var Color = function( color, type ) { + if ( ! ( this instanceof Color ) ) + return new Color( color, type ); + + return this._init( color, type ); + }; + + Color.fn = Color.prototype = { + _color: 0, + _alpha: 1, + error: false, + // for preserving hue/sat in fromHsl().toHsl() flows + _hsl: { h: 0, s: 0, l: 0 }, + // for preserving hue/sat in fromHsv().toHsv() flows + _hsv: { h: 0, s: 0, v: 0 }, + // for setting hsl or hsv space - needed for .h() & .s() functions to function properly + _hSpace: 'hsl', + _init: function( color ) { + var func = 'noop'; + switch ( typeof color ) { + case 'object': + // alpha? + if ( color.a !== undef ) + this.a( color.a ); + func = ( color.r !== undef ) ? 'fromRgb' : + ( color.l !== undef ) ? 'fromHsl' : + ( color.v !== undef ) ? 'fromHsv' : func; + return this[func]( color ); + case 'string': + return this.fromCSS( color ); + case 'number': + return this.fromInt( parseInt( color, 10 ) ); + } + return this; + }, + + _error: function() { + this.error = true; + return this; + }, + + clone: function() { + var newColor = new Color( this.toInt() ), + copy = ['_alpha', '_hSpace', '_hsl', '_hsv', 'error']; + for ( var i = copy.length - 1; i >= 0; i-- ) { + newColor[ copy[i] ] = this[ copy[i] ]; + } + return newColor; + }, + + setHSpace: function( space ) { + this._hSpace = ( space === 'hsv' ) ? space : 'hsl'; + return this; + }, + + noop: function() { + return this; + }, + + fromCSS: function( color ) { + var list, + leadingRE = /^(rgb|hs(l|v))a?\(/; + this.error = false; + + // whitespace and semicolon trim + color = color.replace(/^\s+/, '').replace(/\s+$/, '').replace(/;$/, ''); + + if ( color.match(leadingRE) && color.match(/\)$/) ) { + list = color.replace(/(\s|%)/g, '').replace(leadingRE, '').replace(/,?\);?$/, '').split(','); + + if ( list.length < 3 ) + return this._error(); + + if ( list.length === 4 ) { + this.a( parseFloat( list.pop() ) ); + // error state has been set to true in .a() if we passed NaN + if ( this.error ) + return this; + } + + for (var i = list.length - 1; i >= 0; i--) { + list[i] = parseInt(list[i], 10); + if ( isNaN( list[i] ) ) + return this._error(); + } + + if ( color.match(/^rgb/) ) { + return this.fromRgb( { + r: list[0], + g: list[1], + b: list[2] + } ); + } else if ( color.match(/^hsv/) ) { + return this.fromHsv( { + h: list[0], + s: list[1], + v: list[2] + } ); + } else { + return this.fromHsl( { + h: list[0], + s: list[1], + l: list[2] + } ); + } + } else { + // must be hex amirite? + return this.fromHex( color ); + } + }, + + fromRgb: function( rgb, preserve ) { + if ( typeof rgb !== 'object' || rgb.r === undef || rgb.g === undef || rgb.b === undef ) + return this._error(); + + this.error = false; + return this.fromInt( parseInt( ( rgb.r << 16 ) + ( rgb.g << 8 ) + rgb.b, 10 ), preserve ); + }, + + fromHex: function( color ) { + color = color.replace(/^#/, '').replace(/^0x/, ''); + if ( color.length === 3 ) { + color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2]; + } + + // rough error checking - this is where things go squirrely the most + this.error = ! /^[0-9A-F]{6}$/i.test( color ); + return this.fromInt( parseInt( color, 16 ) ); + }, + + fromHsl: function( hsl ) { + var r, g, b, q, p, h, s, l; + + if ( typeof hsl !== 'object' || hsl.h === undef || hsl.s === undef || hsl.l === undef ) + return this._error(); + + this._hsl = hsl; // store it + this._hSpace = 'hsl'; // implicit + h = hsl.h / 360; s = hsl.s / 100; l = hsl.l / 100; + if ( s === 0 ) { + r = g = b = l; // achromatic + } + else { + q = l < 0.5 ? l * ( 1 + s ) : l + s - l * s; + p = 2 * l - q; + r = this.hue2rgb( p, q, h + 1/3 ); + g = this.hue2rgb( p, q, h ); + b = this.hue2rgb( p, q, h - 1/3 ); + } + return this.fromRgb( { + r: r * 255, + g: g * 255, + b: b * 255 + }, true ); // true preserves hue/sat + }, + + fromHsv: function( hsv ) { + var h, s, v, r, g, b, i, f, p, q, t; + if ( typeof hsv !== 'object' || hsv.h === undef || hsv.s === undef || hsv.v === undef ) + return this._error(); + + this._hsv = hsv; // store it + this._hSpace = 'hsv'; // implicit + + h = hsv.h / 360; s = hsv.s / 100; v = hsv.v / 100; + i = Math.floor( h * 6 ); + f = h * 6 - i; + p = v * ( 1 - s ); + q = v * ( 1 - f * s ); + t = v * ( 1 - ( 1 - f ) * s ); + + switch( i % 6 ) { + case 0: + r = v; g = t; b = p; + break; + case 1: + r = q; g = v; b = p; + break; + case 2: + r = p; g = v; b = t; + break; + case 3: + r = p; g = q; b = v; + break; + case 4: + r = t; g = p; b = v; + break; + case 5: + r = v; g = p; b = q; + break; + } + + return this.fromRgb( { + r: r * 255, + g: g * 255, + b: b * 255 + }, true ); // true preserves hue/sat + + }, + // everything comes down to fromInt + fromInt: function( color, preserve ) { + this._color = parseInt( color, 10 ); + + if ( isNaN( this._color ) ) + this._color = 0; + + // let's coerce things + if ( this._color > 16777215 ) + this._color = 16777215; + else if ( this._color < 0 ) + this._color = 0; + + // let's not do weird things + if ( preserve === undef ) { + this._hsv.h = this._hsv.s = this._hsl.h = this._hsl.s = 0; + } + // EVENT GOES HERE + return this; + }, + + hue2rgb: function( p, q, t ) { + if ( t < 0 ) { + t += 1; + } + if ( t > 1 ) { + t -= 1; + } + if ( t < 1/6 ) { + return p + ( q - p ) * 6 * t; + } + if ( t < 1/2 ) { + return q; + } + if ( t < 2/3 ) { + return p + ( q - p ) * ( 2/3 - t ) * 6; + } + return p; + }, + + toString: function() { + var hex = parseInt( this._color, 10 ).toString( 16 ); + if ( this.error ) + return ''; + // maybe left pad it + if ( hex.length < 6 ) { + for (var i = 6 - hex.length - 1; i >= 0; i--) { + hex = '0' + hex; + } + } + return '#' + hex; + }, + + toCSS: function( type, alpha ) { + type = type || 'hex'; + alpha = parseFloat( alpha || this._alpha ); + switch ( type ) { + case 'rgb': + case 'rgba': + var rgb = this.toRgb(); + if ( alpha < 1 ) { + return "rgba( " + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + alpha + " )"; + } + else { + return "rgb( " + rgb.r + ", " + rgb.g + ", " + rgb.b + " )"; + } + break; + case 'hsl': + case 'hsla': + var hsl = this.toHsl(); + if ( alpha < 1 ) { + return "hsla( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "%, " + alpha + " )"; + } + else { + return "hsl( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "% )"; + } + break; + default: + return this.toString(); + } + }, + + toRgb: function() { + return { + r: 255 & ( this._color >> 16 ), + g: 255 & ( this._color >> 8 ), + b: 255 & ( this._color ) + }; + }, + + toHsl: function() { + var rgb = this.toRgb(); + var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; + var max = Math.max( r, g, b ), min = Math.min( r, g, b ); + var h, s, l = ( max + min ) / 2; + + if ( max === min ) { + h = s = 0; // achromatic + } else { + var d = max - min; + s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min ); + switch ( max ) { + case r: h = ( g - b ) / d + ( g < b ? 6 : 0 ); + break; + case g: h = ( b - r ) / d + 2; + break; + case b: h = ( r - g ) / d + 4; + break; + } + h /= 6; + } + + // maintain hue & sat if we've been manipulating things in the HSL space. + h = Math.round( h * 360 ); + if ( h === 0 && this._hsl.h !== h ) { + h = this._hsl.h; + } + s = Math.round( s * 100 ); + if ( s === 0 && this._hsl.s ) { + s = this._hsl.s; + } + + return { + h: h, + s: s, + l: Math.round( l * 100 ) + }; + + }, + + toHsv: function() { + var rgb = this.toRgb(); + var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255; + var max = Math.max( r, g, b ), min = Math.min( r, g, b ); + var h, s, v = max; + var d = max - min; + s = max === 0 ? 0 : d / max; + + if ( max === min ) { + h = s = 0; // achromatic + } else { + switch( max ){ + case r: + h = ( g - b ) / d + ( g < b ? 6 : 0 ); + break; + case g: + h = ( b - r ) / d + 2; + break; + case b: + h = ( r - g ) / d + 4; + break; + } + h /= 6; + } + + // maintain hue & sat if we've been manipulating things in the HSV space. + h = Math.round( h * 360 ); + if ( h === 0 && this._hsv.h !== h ) { + h = this._hsv.h; + } + s = Math.round( s * 100 ); + if ( s === 0 && this._hsv.s ) { + s = this._hsv.s; + } + + return { + h: h, + s: s, + v: Math.round( v * 100 ) + }; + }, + + toInt: function() { + return this._color; + }, + + toIEOctoHex: function() { + // AARRBBGG + var hex = this.toString(); + var AA = parseInt( 255 * this._alpha, 10 ).toString(16); + if ( AA.length === 1 ) { + AA = '0' + AA; + } + return '#' + AA + hex.replace(/^#/, '' ); + }, + + toLuminosity: function() { + var rgb = this.toRgb(); + return 0.2126 * Math.pow( rgb.r / 255, 2.2 ) + 0.7152 * Math.pow( rgb.g / 255, 2.2 ) + 0.0722 * Math.pow( rgb.b / 255, 2.2); + }, + + getDistanceLuminosityFrom: function( color ) { + if ( ! ( color instanceof Color ) ) { + throw 'getDistanceLuminosityFrom requires a Color object'; + } + var lum1 = this.toLuminosity(); + var lum2 = color.toLuminosity(); + if ( lum1 > lum2 ) { + return ( lum1 + 0.05 ) / ( lum2 + 0.05 ); + } + else { + return ( lum2 + 0.05 ) / ( lum1 + 0.05 ); + } + }, + + getMaxContrastColor: function() { + var lum = this.toLuminosity(); + var hex = ( lum >= 0.5 ) ? '000000' : 'ffffff'; + return new Color( hex ); + }, + + getReadableContrastingColor: function( bgColor, minContrast ) { + if ( ! bgColor instanceof Color ) { + return this; + } + + // you shouldn't use less than 5, but you might want to. + var targetContrast = ( minContrast === undef ) ? 5 : minContrast; + // working things + var contrast = bgColor.getDistanceLuminosityFrom( this ); + var maxContrastColor = bgColor.getMaxContrastColor(); + var maxContrast = maxContrastColor.getDistanceLuminosityFrom( bgColor ); + + // if current max contrast is less than the target contrast, we had wishful thinking. + // still, go max + if ( maxContrast <= targetContrast ) { + return maxContrastColor; + } + // or, we might already have sufficient contrast + else if ( contrast >= targetContrast ) { + return this; + } + + var incr = ( 0 === maxContrastColor.toInt() ) ? -1 : 1; + while ( contrast < targetContrast ) { + this.l( incr, true ); // 2nd arg turns this into an incrementer + contrast = this.getDistanceLuminosityFrom( bgColor ); + // infininite loop prevention: you never know. + if ( this._color === 0 || this._color === 16777215 ) { + break; + } + } + + return this; + + }, + + a: function( val ) { + if ( val === undef ) + return this._alpha; + + var a = parseFloat( val ); + + if ( isNaN( a ) ) + return this._error(); + + this._alpha = a; + return this; + }, + + // TRANSFORMS + + darken: function( amount ) { + amount = amount || 5; + return this.l( - amount, true ); + }, + + lighten: function( amount ) { + amount = amount || 5; + return this.l( amount, true ); + }, + + saturate: function( amount ) { + amount = amount || 15; + return this.s( amount, true ); + }, + + desaturate: function( amount ) { + amount = amount || 15; + return this.s( - amount, true ); + }, + + toGrayscale: function() { + return this.setHSpace('hsl').s( 0 ); + }, + + getComplement: function() { + return this.h( 180, true ); + }, + + getSplitComplement: function( step ) { + step = step || 1; + var incr = 180 + ( step * 30 ); + return this.h( incr, true ); + }, + + getAnalog: function( step ) { + step = step || 1; + var incr = step * 30; + return this.h( incr, true ); + }, + + getTetrad: function( step ) { + step = step || 1; + var incr = step * 60; + return this.h( incr, true ); + }, + + getTriad: function( step ) { + step = step || 1; + var incr = step * 120; + return this.h( incr, true ); + }, + + _partial: function( key ) { + var prop = shortProps[key]; + return function( val, incr ) { + var color = this._spaceFunc('to', prop.space); + + // GETTER + if ( val === undef ) + return color[key]; + + // INCREMENT + if ( incr === true ) + val = color[key] + val; + + // MOD & RANGE + if ( prop.mod ) + val = val % prop.mod; + if ( prop.range ) + val = ( val < prop.range[0] ) ? prop.range[0] : ( val > prop.range[1] ) ? prop.range[1] : val; + + // NEW VALUE + color[key] = val; + + return this._spaceFunc('from', prop.space, color); + }; + }, + + _spaceFunc: function( dir, s, val ) { + var space = s || this._hSpace, + funcName = dir + space.charAt(0).toUpperCase() + space.substr(1); + return this[funcName](val); + } + }; + + var shortProps = { + h: { + mod: 360 + }, + s: { + range: [0,100] + }, + l: { + space: 'hsl', + range: [0,100] + }, + v: { + space: 'hsv', + range: [0,100] + }, + r: { + space: 'rgb', + range: [0,255] + }, + g: { + space: 'rgb', + range: [0,255] + }, + b: { + space: 'rgb', + range: [0,255] + } + }; + + for ( var key in shortProps ) { + if ( shortProps.hasOwnProperty( key ) ) + Color.fn[key] = Color.fn._partial(key); + } + + // play nicely with Node + browser + if ( typeof exports === 'object' ) + module.exports = Color; + else + global.Color = Color; + +}(this)); diff --git a/lib/plugins/styling/lang/bg/lang.php b/lib/plugins/styling/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7d17caffb62b3ac3ce47c0a908cf92b619746bf3 --- /dev/null +++ b/lib/plugins/styling/lang/bg/lang.php @@ -0,0 +1,21 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['menu'] = 'ÐаÑтройки на Ñтила на шаблона'; +$lang['error'] = 'За Ñъжаление шаблона не поддържа тази функционалноÑÑ‚.'; +$lang['btn_preview'] = 'Преглед на промените'; +$lang['btn_save'] = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° промените'; +$lang['btn_reset'] = 'Ðнулиране на промените'; +$lang['btn_revert'] = 'Връщане на Ñтила към Ñтандартните ÑтойноÑти'; +$lang['__text__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚'; +$lang['__background__'] = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ„Ð¾Ð½'; +$lang['__text_alt__'] = 'Ðлтернативен цвÑÑ‚ за текÑта'; +$lang['__background_alt__'] = 'Ðлтернативен цвÑÑ‚ за фона'; +$lang['__text_neu__'] = 'Ðеутрален цвÑÑ‚ за текÑта'; +$lang['__background_neu__'] = 'Ðеутрален цвÑÑ‚ за фона'; +$lang['__border__'] = 'ЦвÑÑ‚ на рамката'; +$lang['__highlight__'] = 'ЦвÑÑ‚ за отличаване (оÑновно на резултата от търÑениÑ)'; diff --git a/lib/plugins/styling/lang/cs/intro.txt b/lib/plugins/styling/lang/cs/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..00365a09103a148229990dd05439bf52a81e077b --- /dev/null +++ b/lib/plugins/styling/lang/cs/intro.txt @@ -0,0 +1,2 @@ +Tento nástroj umožňuje zmÄ›nu urÄitých nastavenà stylu právÄ› použÃvané Å¡ablony vzhledu. +VÅ¡echny zmÄ›ny jsou uloženy v lokálnÃm konfiguraÄnÃm souboru a tÃm chránÄ›ny pÅ™ed smazánÃm pÅ™i aktualizaci. \ No newline at end of file diff --git a/lib/plugins/styling/lang/cs/lang.php b/lib/plugins/styling/lang/cs/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8148b784f5ab5cc35d03242bab04a68298f4e0c4 --- /dev/null +++ b/lib/plugins/styling/lang/cs/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['menu'] = 'Nastavenà stylů vzhledu'; +$lang['js']['loader'] = 'Náhled se naÄÃtá...<br />pokud tento text nezmizÃ, pravdÄ›podobnÄ› jsou nastaveny nesprávné hodnoty'; +$lang['js']['popup'] = 'OtevÅ™it ve vlastnÃm oknÄ›'; +$lang['error'] = 'Omlouváme se, tento '; +$lang['btn_preview'] = 'Náhled zmÄ›n'; +$lang['btn_save'] = 'Uložit zmÄ›ny'; +$lang['btn_reset'] = 'ZruÅ¡it aktuálnà zmÄ›ny'; +$lang['btn_revert'] = 'Vrátit styly zpÄ›t na výchozà hodnoty vzhledu'; +$lang['__text__'] = 'Barva hlavnÃho textu'; +$lang['__background__'] = 'Barva hlavnÃho pozadÃ'; +$lang['__text_alt__'] = 'Barva alternativnÃho textu'; +$lang['__background_alt__'] = 'Barva alternativnÃho pozadÃ'; +$lang['__text_neu__'] = 'Barva neutrálnÃho textu'; +$lang['__background_neu__'] = 'Barva neutrálnÃho pozadÃ'; +$lang['__border__'] = 'Barva rámovánÃ'; +$lang['__highlight__'] = 'ZvýraznÄ›ná barva (hlavnÄ› pro výsledky vyhledávánÃ)'; diff --git a/lib/plugins/styling/lang/cy/intro.txt b/lib/plugins/styling/lang/cy/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..7c825967bf922384aa4b4d501c3ca572a907e8ad --- /dev/null +++ b/lib/plugins/styling/lang/cy/intro.txt @@ -0,0 +1,2 @@ +Mae'r teclyn hwn yn eich galluogi chi newid gosodiadau arddull penodol y templed rydych chi'n defnyddio'n bresennol. +Caiff pob newid ei storio mewn ffeil ffurfwedd leol sy'n uwchradd-ddiogel. \ No newline at end of file diff --git a/lib/plugins/styling/lang/cy/lang.php b/lib/plugins/styling/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..4d22a59f0814acfd195b350520e108f9be63f69c --- /dev/null +++ b/lib/plugins/styling/lang/cy/lang.php @@ -0,0 +1,36 @@ +<?php +/** + * Welsh language file for styling plugin + * + * @author Andreas Gohr <andi@splitbrain.org> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +// menu entry for admin plugins +$lang['menu'] = 'Gosodiadau Arddull Templed'; + +$lang['js']['loader'] = 'Rhagolwg yn llwytho...<br />os \'dyw hwn ddim yn diflannu, efallai bod eich gwerthoedd yn annilys'; +$lang['js']['popup'] = 'Agor fel ffurflen naid'; + +// custom language strings for the plugin +$lang['error'] = 'Sori, \'dyw\'r templed hwn ddim yn cynnal y swyddogaethedd hwn.'; + +$lang['btn_preview'] = 'Rhagolwg newidiadau'; +$lang['btn_save'] = 'Cadw newidiadau'; +$lang['btn_reset'] = 'Ailosod newidiadau cyfredol'; +$lang['btn_revert'] = 'Troi arddulliau\'n ôl i ddiofyn y templed'; + +// default guaranteed placeholders +$lang['__text__'] = 'Lliw\'r prif destun'; +$lang['__background__'] = 'Lliw\'r prif gefndir'; +$lang['__text_alt__'] = 'Lliw testun amgen'; +$lang['__background_alt__'] = 'Lliw cefndir amgen'; +$lang['__text_neu__'] = 'lliw testun niwtral'; +$lang['__background_neu__'] = 'Lliw cefndir niwtral'; +$lang['__border__'] = 'Lliw border'; +$lang['__highlight__'] = 'Lliw uwcholeuad (am ganlyniadau chwiliad yn bennaf)'; + + + + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/styling/lang/de/intro.txt b/lib/plugins/styling/lang/de/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..aa9577355efe7d602e898367b76227bd5979d774 --- /dev/null +++ b/lib/plugins/styling/lang/de/intro.txt @@ -0,0 +1,2 @@ +Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern. +Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher. \ No newline at end of file diff --git a/lib/plugins/styling/lang/de/lang.php b/lib/plugins/styling/lang/de/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..8a46f818e29fbe5810596ef014d07fe9adb51ae8 --- /dev/null +++ b/lib/plugins/styling/lang/de/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Anika Henke <anika@selfthinker.org> + */ +$lang['menu'] = 'Einstellungen fürs Template-Design'; +$lang['js']['loader'] = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten Ihre Werte fehlerhaft sein'; +$lang['js']['popup'] = 'Öffne als Popup'; +$lang['error'] = 'Dieses Template unterstützt diese Funktion nicht.'; +$lang['btn_preview'] = 'Vorschau der Änderungen anzeigen'; +$lang['btn_save'] = 'Änderungen speichern'; +$lang['btn_reset'] = 'Jetzige Änderungen rückgängig machen'; +$lang['btn_revert'] = 'Auf Templates Voreinstellungen zurückfallen'; +$lang['__text__'] = 'Haupttextfarbe'; +$lang['__background__'] = 'Haupthintergrundfarbe'; +$lang['__text_alt__'] = 'Alternative Textfarbe'; +$lang['__background_alt__'] = 'Alternative Hintergrundfarbe'; +$lang['__text_neu__'] = 'Neutrale Textfarbe'; +$lang['__background_neu__'] = 'Neutrale Hintergrundfarbe'; +$lang['__border__'] = 'Rahmenfarbe'; +$lang['__highlight__'] = 'Hervorhebungsfarbe (hauptsächlich für Suchergebnisse)'; diff --git a/lib/plugins/styling/lang/en/intro.txt b/lib/plugins/styling/lang/en/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..4ea55172fdaa3ee383b2fbf78e294210d35a4f45 --- /dev/null +++ b/lib/plugins/styling/lang/en/intro.txt @@ -0,0 +1,2 @@ +This tool allows you to change certain style settings of your currently selected template. +All changes are stored in a local configuration file and are upgrade safe. \ No newline at end of file diff --git a/lib/plugins/styling/lang/en/lang.php b/lib/plugins/styling/lang/en/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..e0011eb83577e91f96d6198572c76bfb1730743d --- /dev/null +++ b/lib/plugins/styling/lang/en/lang.php @@ -0,0 +1,35 @@ +<?php +/** + * English language file for styling plugin + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + +// menu entry for admin plugins +$lang['menu'] = 'Template Style Settings'; + +$lang['js']['loader'] = 'Preview is loading...<br />if this does not goes away, your values may be faulty'; +$lang['js']['popup'] = 'Open as a popup'; + +// custom language strings for the plugin +$lang['error'] = 'Sorry, this template does not support this functionality.'; + +$lang['btn_preview'] = 'Preview changes'; +$lang['btn_save'] = 'Save changes'; +$lang['btn_reset'] = 'Reset current changes'; +$lang['btn_revert'] = 'Revert styles back to template\'s default'; + +// default guaranteed placeholders +$lang['__text__'] = 'Main text color'; +$lang['__background__'] = 'Main background color'; +$lang['__text_alt__'] = 'Alternative text color'; +$lang['__background_alt__'] = 'Alternative background color'; +$lang['__text_neu__'] = 'Neutral text color'; +$lang['__background_neu__'] = 'Neutral background color'; +$lang['__border__'] = 'Border color'; +$lang['__highlight__'] = 'Highlight color (for search results mainly)'; + + + + +//Setup VIM: ex: et ts=4 : diff --git a/lib/plugins/styling/lang/es/intro.txt b/lib/plugins/styling/lang/es/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..8a556002e4d7ff8aba3dd562813f13d508fd93b4 --- /dev/null +++ b/lib/plugins/styling/lang/es/intro.txt @@ -0,0 +1,2 @@ +Esta herramienta le permite cambiar algunos ajustes de estilo de la plantilla seleccionada. +Todos los cambios se guardan en un archivo de configuración local y son una actualización segura. \ No newline at end of file diff --git a/lib/plugins/styling/lang/es/lang.php b/lib/plugins/styling/lang/es/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ad300dc12aea9bd19e50987d868b5c0fbf4869bd --- /dev/null +++ b/lib/plugins/styling/lang/es/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['menu'] = 'Ajustes de plantilla'; +$lang['js']['loader'] = 'La vista previa se está cargando ... <br /> si esto no se ve, sus valores pueden ser defectuosos'; +$lang['js']['popup'] = 'Abrir como una ventana emergente'; +$lang['error'] = 'Lo sentimos, esta plantilla no admite esta funcionalidad.'; +$lang['btn_preview'] = 'Vista previa de los cambios'; +$lang['btn_save'] = 'Guardar cambios'; +$lang['btn_reset'] = 'Reiniciar los cambios actuales'; +$lang['btn_revert'] = 'Revertir estilos volviendo a los valores por defecto de la plantilla'; +$lang['__text__'] = 'Color del texto principal'; +$lang['__background__'] = 'Color de fondo del texto principal'; +$lang['__text_alt__'] = 'Color del texto alternativo'; +$lang['__background_alt__'] = 'Color de fondo del texto alternativo'; +$lang['__text_neu__'] = 'Color del texto neutro'; +$lang['__background_neu__'] = 'Color de fondo del texto neutro'; +$lang['__border__'] = 'Color del borde'; +$lang['__highlight__'] = 'Color resaltado (para los resultados de búsqueda, principalmente)'; diff --git a/lib/plugins/styling/lang/fa/intro.txt b/lib/plugins/styling/lang/fa/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..428a25130f569aeb012ff941242e47cb41700779 --- /dev/null +++ b/lib/plugins/styling/lang/fa/intro.txt @@ -0,0 +1,2 @@ +این ابزار این امکان را ÙØ±Ø§Ù‡Ù… می‌سازد Ú©Ù‡ برخی تنظیمات مشخص از قالبی Ú©Ù‡ انتخاب کردید را تغییر دهید. +تمام تغییرات در ÙØ§ÛŒÙ„ داخلی تنظیمات ذخیره می‌شود Ùˆ به‌روزرسانی هم ایمن است. \ No newline at end of file diff --git a/lib/plugins/styling/lang/fa/lang.php b/lib/plugins/styling/lang/fa/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c8d1bd60efad5aebe67636ef7a3d522eaf4e1bf7 --- /dev/null +++ b/lib/plugins/styling/lang/fa/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['menu'] = 'تنظیمات ظاهری تمپلیت'; +$lang['js']['loader'] = 'پیش‌نمایش در ØØ§Ù„ باز شدن است... <br />اگر این پیش Ù†Ø±ÙØª یعنی مقادیرتان اشکال دارد'; +$lang['js']['popup'] = 'باز کردن به صورت popup'; +$lang['error'] = 'ببخشید، این قالب از این قابلیت پشتیبانی نمی‌کند'; +$lang['btn_preview'] = 'نمایش تغییرات'; +$lang['btn_save'] = 'ذخیره تغییرات'; +$lang['btn_reset'] = 'بازگردانی تغییر ÙØ¹Ù„ÛŒ'; +$lang['btn_revert'] = 'بازگردانی ظاهر به Ù¾ÛŒØ´ÙØ±Ø¶ قالب'; +$lang['__text__'] = 'رنگ اصلی متن'; +$lang['__background__'] = 'رنگ اصلی زمینه'; +$lang['__text_alt__'] = 'رنگ ثانویه متن'; +$lang['__background_alt__'] = 'رنگ ثانویه زمینه'; +$lang['__text_neu__'] = 'رنگ خنثی متن'; +$lang['__background_neu__'] = 'رنگ خنثی زمینه'; +$lang['__border__'] = 'رنگ ØØ§Ø´ÛŒÙ‡'; +$lang['__highlight__'] = 'رنگ برجسته‌سازی (برای نتیجه جستجو)'; diff --git a/lib/plugins/styling/lang/fr/intro.txt b/lib/plugins/styling/lang/fr/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..14a615c8d227bc5c2b71f95a0f377474f341e9e5 --- /dev/null +++ b/lib/plugins/styling/lang/fr/intro.txt @@ -0,0 +1,2 @@ +Cet outil vous permet de changer les paramètres de certains style de votre thème actuel. +Tous les changement sont enregistrés dans un fichier de configuration local qui sera inchangé en cas de mise à jour. \ No newline at end of file diff --git a/lib/plugins/styling/lang/fr/lang.php b/lib/plugins/styling/lang/fr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..92b8c3d741990641227a85171601608da9b7a683 --- /dev/null +++ b/lib/plugins/styling/lang/fr/lang.php @@ -0,0 +1,24 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Carbain Frédéric <fcarbain@yahoo.fr> + * @author Nicolas Friedli <nicolas@theologique.ch> + */ +$lang['menu'] = 'Paramètres de style du thème (template)'; +$lang['js']['loader'] = 'La prévisualisation est en chargement... <br />Si rien ne se passe, les données sont peut-être erronées'; +$lang['js']['popup'] = 'Ouvrir dans une nouvelle fenêtre'; +$lang['error'] = 'Désolé, ce thème ne supporte pas cette fonctionnalité.'; +$lang['btn_preview'] = 'Aperçu des changements'; +$lang['btn_save'] = 'sauvegarder les changements.'; +$lang['btn_reset'] = 'Remettre les changements courants à zéro'; +$lang['btn_revert'] = 'Remettre les styles du thème aux valeurs par défaut'; +$lang['__text__'] = 'Couleur de texte principale'; +$lang['__background__'] = 'Couleur de fond principale'; +$lang['__text_alt__'] = 'Couleur de texte alternative'; +$lang['__background_alt__'] = 'Couleur de fond alternative'; +$lang['__text_neu__'] = 'Couleur de texte neutre'; +$lang['__background_neu__'] = 'Couleur de fond neutre'; +$lang['__border__'] = 'Couleur des contours'; +$lang['__highlight__'] = 'Couleur de surbrillance (utilisée pincipalement pour les résultats de recherche)'; diff --git a/lib/plugins/styling/lang/hu/intro.txt b/lib/plugins/styling/lang/hu/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..42f451d9a5e927713080e2f0d6468a1e045e5220 --- /dev/null +++ b/lib/plugins/styling/lang/hu/intro.txt @@ -0,0 +1,2 @@ +Ezzel az eszközzel módosÃthatod az aktuális sablon kinézetének néhány elemét. +A változtatások egy helyi konfigurációs fájlban kerülnek tárolásra, Ãgy a frissÃtések során megmaradnak. \ No newline at end of file diff --git a/lib/plugins/styling/lang/hu/lang.php b/lib/plugins/styling/lang/hu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..c6ef5de93974d840212114f7901ea0fd33cfc9cd --- /dev/null +++ b/lib/plugins/styling/lang/hu/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['menu'] = 'Sablon kinézetének beállÃtásai'; +$lang['js']['loader'] = 'Az elÅ‘nézet töltÅ‘dik...<br />ha ez az üzenet nem tűnik el, a beállÃtott értékek hibásak lehetnek'; +$lang['js']['popup'] = 'Megnyitás felugró ablakban'; +$lang['error'] = 'Ez a sablon sajnos nem támogatja ezt a funkciót'; +$lang['btn_preview'] = 'Változtatások elÅ‘nézete'; +$lang['btn_save'] = 'Változtatások mentése'; +$lang['btn_reset'] = 'Jelenlegi változtatások visszaállÃtása'; +$lang['btn_revert'] = 'A sablon alapértelmezett kinézetének visszaállÃtása'; +$lang['__text__'] = 'FÅ‘ szövegszÃn'; +$lang['__background__'] = 'FÅ‘ háttérszÃn'; +$lang['__text_alt__'] = 'AlternatÃv szövegszÃn'; +$lang['__background_alt__'] = 'AlternatÃv háttérszÃn'; +$lang['__text_neu__'] = 'Semleges szövegszÃn'; +$lang['__background_neu__'] = 'Semleges háttérszÃn'; +$lang['__border__'] = 'Keret szÃne'; +$lang['__highlight__'] = 'Kijelölés szÃne (leginkább a keresési eredményeknél)'; diff --git a/lib/plugins/styling/lang/it/intro.txt b/lib/plugins/styling/lang/it/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..6c798e432e3aadbb583aae7858456a3eaa85beef --- /dev/null +++ b/lib/plugins/styling/lang/it/intro.txt @@ -0,0 +1,2 @@ +Questo strumento ti permette di cambiare certe configurazioni di stile del tema attualmente in uso. +Tutte le modifiche sono salvate in un file di configurazione locale e sono aggiornate in modo sicuro. \ No newline at end of file diff --git a/lib/plugins/styling/lang/it/lang.php b/lib/plugins/styling/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..aea011feba5c95ffb575f427914d62a1e899d2df --- /dev/null +++ b/lib/plugins/styling/lang/it/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['menu'] = 'Configurazioni di stile del tema'; +$lang['js']['loader'] = 'Anteprima in corso...<br />se questo non sparisce, potresti aver fornito dei valori sbagliati'; +$lang['js']['popup'] = 'Apri in un finestra a parte'; +$lang['error'] = 'Spiacente, questo template non supporta questa funzionalità .'; +$lang['btn_preview'] = 'Cambiamenti precedenti'; +$lang['btn_save'] = 'Salva i cambiamenti'; +$lang['btn_reset'] = 'Azzera le modifiche correnti'; +$lang['btn_revert'] = 'Ripristina gli stili ai valori originari del tema'; +$lang['__text__'] = 'Colore principale del testo'; +$lang['__background__'] = 'Colore principale dello sfondo'; +$lang['__text_alt__'] = 'Colore alternativo per il testo'; +$lang['__background_alt__'] = 'Colore alternativo dello sfondo'; +$lang['__text_neu__'] = 'Colore testo neutrale'; +$lang['__background_neu__'] = 'Colore sfondo neutrale'; +$lang['__border__'] = 'Colore del bordo'; +$lang['__highlight__'] = 'Colore di evidenziazione (principalmente per i risultati di ricerca)'; diff --git a/lib/plugins/styling/lang/ja/intro.txt b/lib/plugins/styling/lang/ja/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..1feb4e033fe68926131bc52150e0d3a33004e7d5 --- /dev/null +++ b/lib/plugins/styling/lang/ja/intro.txt @@ -0,0 +1,2 @@ +ã“ã®ç”»é¢ä¸Šã§ã€é¸æŠžä¸ã®ãƒ†ãƒ³ãƒ—レート固有ã®ã‚¹ã‚¿ã‚¤ãƒ«è¨å®šã‚’変更ã§ãã¾ã™ã€‚ +変更内容ã¯ã™ã¹ã¦ãƒãƒ¼ã‚«ãƒ«ã®è¨å®šãƒ•ァイル内ã«ä¿å˜ã•れã€ãƒ†ãƒ³ãƒ—レートを更新ã—ã¦ã‚‚åˆæœŸåŒ–ã•れã¾ã›ã‚“。 \ No newline at end of file diff --git a/lib/plugins/styling/lang/ja/lang.php b/lib/plugins/styling/lang/ja/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..da18829b2ca6775ae32abd19da1fa3d4e48e4966 --- /dev/null +++ b/lib/plugins/styling/lang/ja/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['menu'] = 'テンプレートã®ã‚¹ã‚¿ã‚¤ãƒ«è¨å®š'; +$lang['js']['loader'] = 'プレビューをèªè¾¼ã¿ä¸ã§ã™ãƒ»ãƒ»ãƒ»<br/>ã“ã®è¡¨ç¤ºãŒæ¶ˆãˆãªã„å ´åˆã€å¤‰æ›´ã—ãŸè¨å®šå€¤ã«å•題ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。'; +$lang['js']['popup'] = 'ãƒãƒƒãƒ—アップã¨ã—ã¦è¡¨ç¤º'; +$lang['error'] = 'ã“ã®ãƒ†ãƒ³ãƒ—レートã¯ã€ã“ã®æ©Ÿèƒ½ã«å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。'; +$lang['btn_preview'] = '変更内容ã®ãƒ—レビュー'; +$lang['btn_save'] = '変更内容ã®ä¿å˜'; +$lang['btn_reset'] = '変更内容ã®åˆæœŸåŒ–'; +$lang['btn_revert'] = 'テンプレートã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã«æˆ»ã™'; +$lang['__text__'] = 'メイン文å—色'; +$lang['__background__'] = 'メイン背景色'; +$lang['__text_alt__'] = '代替文å—色'; +$lang['__background_alt__'] = '代替背景色'; +$lang['__text_neu__'] = 'ç„¡å½©è‰²ã®æ–‡å—色'; +$lang['__background_neu__'] = '無彩色ã®èƒŒæ™¯è‰²'; +$lang['__border__'] = 'æž ç·šã®è‰²'; +$lang['__highlight__'] = 'å¼·èª¿è‰²ï¼ˆä¸»ã«æ¤œç´¢çµæžœç”¨ï¼‰'; diff --git a/lib/plugins/styling/lang/ko/intro.txt b/lib/plugins/styling/lang/ko/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..c460801b159db3d1ede04f922269111a328b6043 --- /dev/null +++ b/lib/plugins/styling/lang/ko/intro.txt @@ -0,0 +1,2 @@ +ì´ ë„구는 현재 ì„ íƒí•œ í…œí”Œë¦¿ì˜ íŠ¹ì • ìŠ¤íƒ€ì¼ ì„¤ì •ì„ ë°”ê¿€ 수 있습니다. +ëª¨ë“ ë°”ë€œì€ ë¡œì»¬ 환경 ì„¤ì • 파ì¼ì— ì €ìž¥ë˜ë©° ì•ˆì „í•˜ê²Œ ì—…ê·¸ë ˆì´ë“œë©ë‹ˆë‹¤. \ No newline at end of file diff --git a/lib/plugins/styling/lang/ko/lang.php b/lib/plugins/styling/lang/ko/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..96da76d4829062c1db3615673ce6eac9f3eca86b --- /dev/null +++ b/lib/plugins/styling/lang/ko/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['menu'] = '템플릿 ìŠ¤íƒ€ì¼ ì„¤ì •'; +$lang['js']['loader'] = '미리 보기를 불러오는 중...<br />만약 ì´ê²ƒì´ 사ë¼ì§€ì§€ 않는다면, ë‹¹ì‹ ì€ ì‹¤ë§í•˜ê² ì£ '; +$lang['js']['popup'] = 'íŒì—…으로 열기'; +$lang['error'] = '죄송하지만 ì´ í…œí”Œë¦¿ì€ ì´ ê¸°ëŠ¥ìœ¼ë¡œ ì§€ì›í•˜ì§€ 않습니다.'; +$lang['btn_preview'] = '바뀜 미리 보기'; +$lang['btn_save'] = '바뀜 ì €ìž¥'; +$lang['btn_reset'] = '현재 바뀜 ìž¬ì„¤ì •'; +$lang['btn_revert'] = 'í‹€ì˜ ê¸°ë³¸ê°’ìœ¼ë¡œ 스타ì¼ì„ ë˜ëŒë¦¬ê¸°'; +$lang['__text__'] = '주요 í…스트 색'; +$lang['__background__'] = '주요 ë°°ê²½ 색'; +$lang['__text_alt__'] = '대체 í…스트 색'; +$lang['__background_alt__'] = '대체 ë°°ê²½ 색'; +$lang['__text_neu__'] = '중립 í…스트 색'; +$lang['__background_neu__'] = '중립 ë°°ê²½ 색'; +$lang['__border__'] = 'ìœ¤ê³½ì„ ìƒ‰'; +$lang['__highlight__'] = '(주로 검색 결과를 위한) ê°•ì¡° 색'; diff --git a/lib/plugins/styling/lang/nl/intro.txt b/lib/plugins/styling/lang/nl/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..727593848b90a00c35935cc3041aac4b9564c440 --- /dev/null +++ b/lib/plugins/styling/lang/nl/intro.txt @@ -0,0 +1,2 @@ +Deze tool laat u een aantal stijlinstellingen van uw huidig geselecteerde template aanpassen. +Alle aanpassingen worden in een lokaal configuratiebestand bewaard en zijn upgrade veilig. diff --git a/lib/plugins/styling/lang/nl/lang.php b/lib/plugins/styling/lang/nl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..dd258051e3ecfaf8ac841683bce7fe5a81f02d79 --- /dev/null +++ b/lib/plugins/styling/lang/nl/lang.php @@ -0,0 +1,24 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Mark C. Prins <mprins@users.sf.net> + * @author hugo smet <hugo.smet@scarlet.be> + */ +$lang['menu'] = 'Template stijl-instellingen'; +$lang['js']['loader'] = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijk foutief.'; +$lang['js']['popup'] = 'Open als popup'; +$lang['error'] = 'Sorry, deze template ondersteunt deze functionaliteit niet.'; +$lang['btn_preview'] = 'Bekijk aanpassingen'; +$lang['btn_save'] = 'Sla aanpassingen op'; +$lang['btn_reset'] = 'Huidige aanpassingen verwerpen'; +$lang['btn_revert'] = 'Stijlen terugzetten naar de standaard waardes van de template'; +$lang['__text__'] = 'Hoofd tekstkleur'; +$lang['__background__'] = 'Hoofd achtergrondkleur'; +$lang['__text_alt__'] = 'Alternatieve tekstkleur'; +$lang['__background_alt__'] = 'Alternatieve achtergrondkleur'; +$lang['__text_neu__'] = 'Neutrale tekstkleur'; +$lang['__background_neu__'] = 'Neutrale achtergrondkleur'; +$lang['__border__'] = 'Kader kleur'; +$lang['__highlight__'] = 'Markeringskleur (hoofdzakelijk voor zoekresultaten)'; diff --git a/lib/plugins/styling/lang/pt-br/intro.txt b/lib/plugins/styling/lang/pt-br/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..3d0f47fd694417a7bc8cd4be108b5a3ba27f5298 --- /dev/null +++ b/lib/plugins/styling/lang/pt-br/intro.txt @@ -0,0 +1,2 @@ +Essa ferramente permite a alteração de certas configurações do estilo do seu modelo atual. +Todas as modificações são armazenadas em um arquivo de configuração local e estão protegidas contra atualizações. \ No newline at end of file diff --git a/lib/plugins/styling/lang/pt-br/lang.php b/lib/plugins/styling/lang/pt-br/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b7ac1fcd83bca0f41dd7c821c57084a55784c48c --- /dev/null +++ b/lib/plugins/styling/lang/pt-br/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['menu'] = 'Configurações de estilo do modelo'; +$lang['js']['loader'] = 'A visualização está carregando...<br />Caso essa mensagem não desapareça, pode ter algum problema com os seus valores.'; +$lang['js']['popup'] = 'Abrir como um popup'; +$lang['error'] = 'Desculpe, mas esse modelo não suporta essa funcionalidade.'; +$lang['btn_preview'] = 'Ver alterações'; +$lang['btn_save'] = 'Salvar alterações'; +$lang['btn_reset'] = 'Eliminar as alterações atuais'; +$lang['btn_revert'] = 'Reverter o estilo para os padrões do modelo'; +$lang['__text__'] = 'Cor principal do texto'; +$lang['__background__'] = 'Cor principal do fundo'; +$lang['__text_alt__'] = 'Cor alternativa do texto'; +$lang['__background_alt__'] = 'Cor alternativa do fundo'; +$lang['__text_neu__'] = 'Cor neutra do texto'; +$lang['__background_neu__'] = 'Cor neutra do fundo'; +$lang['__border__'] = 'Cor da borda'; +$lang['__highlight__'] = 'Cor do destaque (primariamente em resultados da pesquisa)'; diff --git a/lib/plugins/styling/lang/pt/lang.php b/lib/plugins/styling/lang/pt/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6929a40dc4487dff22efb6db95740a1f70dcd132 --- /dev/null +++ b/lib/plugins/styling/lang/pt/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Alfredo Silva <alfredo.silva@sky.com> + */ +$lang['js']['popup'] = 'Abrir como uma janela extra'; +$lang['error'] = 'Desculpe, este modelo não suporta esta funcionalidade.'; +$lang['btn_preview'] = 'Pré-visualizar alterações'; +$lang['btn_save'] = 'Guardar alterações'; +$lang['btn_reset'] = 'Reiniciar alterações atuais'; +$lang['__text__'] = 'Cor do texto principal'; diff --git a/lib/plugins/styling/lang/ru/intro.txt b/lib/plugins/styling/lang/ru/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..3a0141149fd83082249cc62705b7ecfcafbee11e --- /dev/null +++ b/lib/plugins/styling/lang/ru/intro.txt @@ -0,0 +1 @@ +Ðтот инÑтрумент позволÑет изменÑть Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð²Â Ñ„Ð°Ð¹Ð»Ðµ конфигурации и защищены от ÑброÑа при обновлении. diff --git a/lib/plugins/styling/lang/ru/lang.php b/lib/plugins/styling/lang/ru/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..beda17619eb52fc2c27a1faea19ffc2d58e88a38 --- /dev/null +++ b/lib/plugins/styling/lang/ru/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author RainbowSpike <1@2.ru> + */ +$lang['menu'] = 'ÐаÑтройки Ñтилей шаблона'; +$lang['js']['loader'] = 'ЗагружаетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотр...<br />ЕÑли здеÑÑŒ ÑлучилÑÑ Ñбой, ваши наÑтройки могут быть Ñброшены'; +$lang['js']['popup'] = 'Открыть во вÑплывающем окне'; +$lang['error'] = 'Ðтот шаблон не поддерживает такой функционал.'; +$lang['btn_preview'] = 'ПроÑмотреть изменениÑ'; +$lang['btn_save'] = 'Сохранить изменениÑ'; +$lang['btn_reset'] = 'СброÑить Ñделанные изменениÑ'; +$lang['btn_revert'] = 'Откатить Ñтили к иÑходным Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°'; +$lang['__text__'] = 'Цвет текÑта'; +$lang['__background__'] = 'Цвет фона'; +$lang['__text_alt__'] = 'Второй цвет текÑта'; +$lang['__background_alt__'] = 'Второй цвет фона'; +$lang['__text_neu__'] = 'Ðейтральный цвет текÑта'; +$lang['__background_neu__'] = 'Ðейтральный цвет фона'; +$lang['__border__'] = 'Цвет границ'; +$lang['__highlight__'] = 'Цвет подÑветки (в оÑновном Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² поиÑка)'; diff --git a/lib/plugins/styling/lang/sk/lang.php b/lib/plugins/styling/lang/sk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..f1017e5c11458184c360b4f0107b8f7bd864629a --- /dev/null +++ b/lib/plugins/styling/lang/sk/lang.php @@ -0,0 +1,18 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['btn_preview'] = 'Náhľad zmien'; +$lang['btn_save'] = 'Uloženie zmien'; +$lang['btn_reset'] = 'ZruÅ¡ prevedené zmeny'; +$lang['__text__'] = 'Primárna farba textu'; +$lang['__background__'] = 'Primárna farba pozadia'; +$lang['__text_alt__'] = 'AlternatÃvna farba textu'; +$lang['__background_alt__'] = 'AlternatÃvna farba pozadia'; +$lang['__text_neu__'] = 'Neutrálna farba textu'; +$lang['__background_neu__'] = 'Neutrálna farba pozadia'; +$lang['__border__'] = 'Farba okraja'; +$lang['__highlight__'] = 'Farba zvýraznenia (zvyÄajne výsledkov vyhľadávania)'; diff --git a/lib/plugins/styling/lang/zh-tw/lang.php b/lib/plugins/styling/lang/zh-tw/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ce4a9a960ce9b82725283636e3682fed8e0cdc57 --- /dev/null +++ b/lib/plugins/styling/lang/zh-tw/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Liou, Jhe-Yu <lioujheyu@gmail.com> + */ +$lang['menu'] = '模æ¿é¢¨æ ¼è¨å®š'; +$lang['error'] = '抱æ‰ï¼Œè©²æ¨¡æ¿ä¸æ”¯æŒé€™å€‹åŠŸèƒ½'; +$lang['btn_preview'] = 'é 覽'; +$lang['btn_save'] = '儲å˜'; +$lang['btn_reset'] = 'é‡è¨'; +$lang['btn_revert'] = 'å°‡é¢¨æ ¼å¾©åŽŸè‡³æ¨¡æ¿é è¨å€¼'; +$lang['__text__'] = 'ä¸»è¦æ–‡å—é¡è‰²'; +$lang['__background__'] = '主è¦èƒŒæ™¯é¡è‰²'; diff --git a/lib/plugins/styling/lang/zh/intro.txt b/lib/plugins/styling/lang/zh/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..709171247457133e6b80e462a2c7ec18a49aa4e0 --- /dev/null +++ b/lib/plugins/styling/lang/zh/intro.txt @@ -0,0 +1 @@ +这个工具å¯ä»¥è®©æ‚¨å¯¹å½“å‰é€‰ä¸çš„æ¨¡æ¿çš„æŸäº›æ ·å¼è®¾ç½®è¿›è¡Œæ”¹å˜ã€‚所有改动会ä¿å˜åœ¨ä¸€ä¸ªæœ¬åœ°é…置文件ä¸ï¼Œä¸ä¼šè¢«å‡çº§æ‰€å½±å“。 \ No newline at end of file diff --git a/lib/plugins/styling/lang/zh/lang.php b/lib/plugins/styling/lang/zh/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..805d070dfcdd5374f6b927948ea079fb290286d1 --- /dev/null +++ b/lib/plugins/styling/lang/zh/lang.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author lainme <lainme993@gmail.com> + */ +$lang['menu'] = 'æ¨¡æ¿æ ·å¼è®¾ç½®'; +$lang['js']['loader'] = 'æ£åœ¨è½½å…¥é¢„览...<br />如果本å¥ä¸€ç›´æ²¡æœ‰æ¶ˆå¤±ï¼Œæ‚¨çš„设置å¯èƒ½æœ‰é”™'; +$lang['js']['popup'] = 'ä½œä¸ºå¼¹å‡ºçª—å£æ‰“å¼€'; +$lang['error'] = '抱æ‰ï¼Œè¿™ä¸ªæ¨¡æ¿ä¸æ”¯æŒè¿™é¡¹åŠŸèƒ½ã€‚'; +$lang['btn_preview'] = '预览改动'; +$lang['btn_save'] = 'ä¿å˜æ”¹åЍ'; +$lang['btn_reset'] = 'é‡ç½®å½“剿”¹åЍ'; +$lang['btn_revert'] = 'å›žé€€æ ·å¼åˆ°æ¨¡æ¿çš„默认值'; +$lang['__text__'] = '主è¦çš„å—体颜色'; +$lang['__background__'] = '主è¦çš„背景颜色'; +$lang['__text_alt__'] = '备选å—体的颜色'; +$lang['__background_alt__'] = '备选背景的颜色'; +$lang['__text_neu__'] = '䏿€§å—体的颜色'; +$lang['__background_neu__'] = '䏿€§èƒŒæ™¯çš„颜色'; +$lang['__border__'] = '边框颜色'; +$lang['__highlight__'] = '高亮颜色 (主è¦ç”¨äºŽæœç´¢ç»“æžœ)'; diff --git a/lib/plugins/styling/plugin.info.txt b/lib/plugins/styling/plugin.info.txt new file mode 100644 index 0000000000000000000000000000000000000000..9f002e28258740811e89466cb90fa8ad923105a1 --- /dev/null +++ b/lib/plugins/styling/plugin.info.txt @@ -0,0 +1,7 @@ +base styling +author Andreas Gohr +email andi@splitbrain.org +date 2015-07-26 +name styling plugin +desc Allows to edit style.ini replacements +url https://www.dokuwiki.org/plugin:styling diff --git a/lib/plugins/styling/popup.php b/lib/plugins/styling/popup.php new file mode 100644 index 0000000000000000000000000000000000000000..964b19e296a1d2217591e5dd3f76d3d0003168f8 --- /dev/null +++ b/lib/plugins/styling/popup.php @@ -0,0 +1,30 @@ +<?php +if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../../'); +require_once(DOKU_INC . 'inc/init.php'); +//close session +session_write_close(); +header('Content-Type: text/html; charset=utf-8'); +header('X-UA-Compatible: IE=edge,chrome=1'); + +/** @var admin_plugin_styling $plugin */ +$plugin = plugin_load('admin', 'styling'); +if(!auth_isadmin()) die('only admins allowed'); +$plugin->ispopup = true; + +// handle posts +$plugin->handle(); + +// output plugin in a very minimal template: +?><!DOCTYPE html> +<html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>"> +<head> + <meta charset="utf-8" /> + <title><?php echo $plugin->getLang('menu') ?></title> + <?php tpl_metaheaders(false) ?> + <meta name="viewport" content="width=device-width,initial-scale=1" /> + <?php echo tpl_favicon(array('favicon')) ?> +</head> +<body class="dokuwiki"> + <?php $plugin->html() ?> +</body> +</html> diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js new file mode 100644 index 0000000000000000000000000000000000000000..074c8dc40296e87004a597fa58ecdc2a39370bd8 --- /dev/null +++ b/lib/plugins/styling/script.js @@ -0,0 +1,97 @@ +/* DOKUWIKI:include_once iris.js */ + +jQuery(function () { + + /** + * Function to reload the preview styles in the main window + * + * @param {Window} target the main window + */ + function applyPreview(target) { + // remove style + var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', ''); + + // append the loader screen + var $loader = target.jQuery('#plugin__styling_loader'); + if (!$loader.length) { + $loader = target.jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>'); + $loader.css({ + 'position': 'absolute', + 'width': '100%', + 'height': '100%', + 'top': 0, + 'left': 0, + 'z-index': 5000, + 'background-color': '#fff', + 'opacity': '0.7', + 'color': '#000', + 'font-size': '2.5em', + 'text-align': 'center', + 'line-height': 1.5, + 'padding-top': '2em' + }); + target.jQuery('body').append($loader); + } + + // load preview in main window (timeout works around chrome updating CSS weirdness) + setTimeout(function () { + var now = new Date().getTime(); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + }, 500); + } + + var doreload = 1; + var $styling_plugin = jQuery('#plugin__styling'); + + // if we are not on the plugin page (either main or popup) + if (!$styling_plugin.length) { + // handle the preview cookie + if(DokuCookie.getValue('styling_plugin') == 1) { + applyPreview(window); + } + return; // nothing more to do here + } + + /* ---- from here on we're in the popup or admin page ---- */ + + // add the color picker + $styling_plugin.find('.color').iris({}); + + // add button on main page + if (!$styling_plugin.hasClass('ispopup')) { + var $form = $styling_plugin.find('form.styling').first(); + var $btn = jQuery('<button>' + LANG.plugins.styling.popup + '</button>'); + $form.prepend($btn); + + $btn.click(function (e) { + var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; + window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures); + e.preventDefault(); + e.stopPropagation(); + }).wrap('<p></p>'); + return; // we exit here if this is not the popup + } + + /* ---- from here on we're in the popup only ---- */ + + // reload the main page on close + window.onunload = function(e) { + if(doreload) { + window.opener.DokuCookie.setValue('styling_plugin', 0); + window.opener.document.location.reload(); + } + return null; + }; + + // don't reload on our own buttons + jQuery(':button').click(function(e){ + doreload = false; + }); + + // on first load apply preview + applyPreview(window.opener); + + // enable the preview cookie + window.opener.DokuCookie.setValue('styling_plugin', 1); +}); diff --git a/lib/plugins/styling/style.less b/lib/plugins/styling/style.less new file mode 100644 index 0000000000000000000000000000000000000000..be0e16a5b97baf2706b9bf78e63de895bb2257e1 --- /dev/null +++ b/lib/plugins/styling/style.less @@ -0,0 +1,13 @@ +#plugin__styling { + button.primary { + font-weight: bold; + } + + [dir=rtl] & table input { + text-align: right; + } +} + +#plugin__styling_loader { + display: none; +} diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index 9cb9b0c4033f9e0de17360707567f5b2e7ec7c79..f90a172b3b7abedae44c903c8a5d9d93578f51b9 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -36,7 +36,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Constructor */ - public function admin_plugin_usermanager(){ + public function __construct(){ /** @var DokuWiki_Auth_Plugin $auth */ global $auth; @@ -241,18 +241,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <tbody>"); ptln(" <tr><td colspan=\"5\" class=\"centeralign\">"); ptln(" <span class=\"medialeft\">"); - ptln(" <input type=\"submit\" name=\"fn[delete]\" ".$delete_disable." class=\"button\" value=\"".$this->lang['delete_selected']."\" id=\"usrmgr__del\" />"); + ptln(" <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>"); ptln(" </span>"); ptln(" <span class=\"mediaright\">"); - ptln(" <input type=\"submit\" name=\"fn[start]\" ".$page_buttons['start']." class=\"button\" value=\"".$this->lang['start']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev']." class=\"button\" value=\"".$this->lang['prev']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[next]\" ".$page_buttons['next']." class=\"button\" value=\"".$this->lang['next']."\" />"); - ptln(" <input type=\"submit\" name=\"fn[last]\" ".$page_buttons['last']." class=\"button\" value=\"".$this->lang['last']."\" />"); + ptln(" <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>"); + ptln(" <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>"); ptln(" </span>"); if (!empty($this->_filter)) { - ptln(" <input type=\"submit\" name=\"fn[search][clear]\" class=\"button\" value=\"".$this->lang['clear']."\" />"); + ptln(" <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>"); } - ptln(" <input type=\"submit\" name=\"fn[export]\" class=\"button\" value=\"".$export_label."\" />"); + ptln(" <button type=\"submit\" name=\"fn[export]\">".$export_label."</button>"); ptln(" <input type=\"hidden\" name=\"do\" value=\"admin\" />"); ptln(" <input type=\"hidden\" name=\"page\" value=\"usermanager\" />"); @@ -329,12 +329,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" </thead>",$indent); ptln(" <tbody>",$indent); - $this->_htmlInputField($cmd."_userid", "userid", $this->lang["user_id"], $user, $this->_auth->canDo("modLogin"), $indent+6); - $this->_htmlInputField($cmd."_userpass", "userpass", $this->lang["user_pass"], "", $this->_auth->canDo("modPass"), $indent+6); - $this->_htmlInputField($cmd."_userpass2", "userpass2", $lang["passchk"], "", $this->_auth->canDo("modPass"), $indent+6); - $this->_htmlInputField($cmd."_username", "username", $this->lang["user_name"], $name, $this->_auth->canDo("modName"), $indent+6); - $this->_htmlInputField($cmd."_usermail", "usermail", $this->lang["user_mail"], $mail, $this->_auth->canDo("modMail"), $indent+6); - $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"),$indent+6); + $this->_htmlInputField($cmd."_userid", "userid", $this->lang["user_id"], $user, $this->_auth->canDo("modLogin"), true, $indent+6); + $this->_htmlInputField($cmd."_userpass", "userpass", $this->lang["user_pass"], "", $this->_auth->canDo("modPass"), false, $indent+6); + $this->_htmlInputField($cmd."_userpass2", "userpass2", $lang["passchk"], "", $this->_auth->canDo("modPass"), false, $indent+6); + $this->_htmlInputField($cmd."_username", "username", $this->lang["user_name"], $name, $this->_auth->canDo("modName"), true, $indent+6); + $this->_htmlInputField($cmd."_usermail", "usermail", $this->lang["user_mail"], $mail, $this->_auth->canDo("modMail"), true, $indent+6); + $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"), false, $indent+6); if ($this->_auth->canDo("modPass")) { if ($cmd == 'add') { @@ -360,7 +360,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlFilterSettings($indent+10); - ptln(" <input type=\"submit\" name=\"fn[".$cmd."]\" class=\"button\" value=\"".$this->lang[$cmd]."\" />",$indent); + ptln(" <button type=\"submit\" name=\"fn[".$cmd."]\">".$this->lang[$cmd]."</button>",$indent); ptln(" </td>",$indent); ptln(" </tr>",$indent); ptln(" </tbody>",$indent); @@ -369,7 +369,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($notes) { ptln(" <ul class=\"notes\">"); foreach ($notes as $note) { - ptln(" <li><span class=\"li\">".$note."</span></li>",$indent); + ptln(" <li><span class=\"li\">".$note."</li>",$indent); } ptln(" </ul>"); } @@ -385,9 +385,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * @param string $label * @param string $value * @param bool $cando whether auth backend is capable to do this action + * @param bool $required is this field required? * @param int $indent */ - protected function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { + protected function _htmlInputField($id, $name, $label, $value, $cando, $required, $indent=0) { $class = $cando ? '' : ' class="disabled"'; echo str_pad('',$indent); @@ -407,7 +408,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { echo "<td><label for=\"$id\" >$label: </label></td>"; echo "<td>"; if($cando){ - echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp />"; + $req = ''; + if($required) $req = 'required="required"'; + echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp $req />"; }else{ echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />"; echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit disabled\" disabled=\"disabled\" />"; @@ -456,7 +459,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(' <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent); formSecurityToken(); ptln(' <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent); - ptln(' <input type="submit" name="fn[import]" value="'.$this->lang['import'].'" />',$indent); + ptln(' <button type="submit" name="fn[import]">'.$this->lang['import'].'</button>',$indent); ptln(' <input type="hidden" name="do" value="admin" />',$indent); ptln(' <input type="hidden" name="page" value="usermanager" />',$indent); @@ -518,16 +521,20 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $pass = auth_pwgen($user); } else { msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_missing_pass'], -1); return false; } } else { if (!$this->_verifyPassword($pass,$passconfirm)) { + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_pass_not_identical'], -1); return false; } } } else { if (!empty($pass)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modPass_disabled'], -1); return false; } } @@ -535,10 +542,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_auth->canDo('modName')){ if (empty($name)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_name_missing'], -1); return false; } } else { if (!empty($name)){ + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modName_disabled'], -1); return false; } } @@ -546,10 +556,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_auth->canDo('modMail')){ if (empty($mail)){ msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_mail_missing'], -1); return false; } } else { if (!empty($mail)){ + msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_modMail_disabled'], -1); return false; } } @@ -563,6 +576,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } else { msg($this->lang['add_fail'], -1); + msg($this->lang['addUser_error_create_event_failed'], -1); } return $ok; diff --git a/lib/plugins/usermanager/lang/bg/lang.php b/lib/plugins/usermanager/lang/bg/lang.php index aadf7651284797489889ab3ebdfa64f0753fd697..f98cc8c4044fb4f0ceab31686e5a96df46608bb0 100644 --- a/lib/plugins/usermanager/lang/bg/lang.php +++ b/lib/plugins/usermanager/lang/bg/lang.php @@ -28,6 +28,10 @@ $lang['search'] = 'ТърÑене'; $lang['search_prompt'] = 'ТърÑи'; $lang['clear'] = 'ОбновÑване на търÑенето'; $lang['filter'] = 'Филтър'; +$lang['export_all'] = 'Ð˜Ð·Ð½Ð¾Ñ Ð½Ð° вÑички потребители (CSV)'; +$lang['import'] = 'Импорт на нови потребители'; +$lang['line'] = 'Ред â„–'; +$lang['error'] = 'Съобщение за грешка'; $lang['summary'] = 'Показване на потребители %1$d-%2$d от %3$d намерени. Общо %4$d потребителÑ.'; $lang['nonefound'] = 'Ðе Ñа намерени потребители. Общо %d потребителÑ.'; $lang['delete_ok'] = '%d изтрити потребителÑ'; @@ -48,3 +52,8 @@ $lang['add_ok'] = 'ДобавÑнето на потребител $lang['add_fail'] = 'ДобавÑнето на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñе провали'; $lang['notify_ok'] = 'Изпратено е оÑведомителен имейл'; $lang['notify_fail'] = 'Изпращането на оÑведомителен имейл не е възможно'; +$lang['import_error_badname'] = 'Грешно потребителÑко име'; +$lang['import_error_badmail'] = 'Грешен имейл адреÑ'; +$lang['import_error_upload'] = 'ВнаÑÑнето Ñе провали. CSV файлът не може да бъде качен или е празен.'; +$lang['import_error_readfail'] = 'ВнаÑÑнето Ñе провали. КачениÑÑ‚ файл не може да бъде прочетен.'; +$lang['import_error_create'] = 'ПотребителÑÑ‚ не може да бъде Ñъдаден'; diff --git a/lib/plugins/usermanager/lang/ca/lang.php b/lib/plugins/usermanager/lang/ca/lang.php index 6debd73ca119387bbfdb4869fb81e06d4fa309c0..4b07326aba08ff307325cdcc23c6f1cedd8965ed 100644 --- a/lib/plugins/usermanager/lang/ca/lang.php +++ b/lib/plugins/usermanager/lang/ca/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Catalan language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Carles Bellver <carles.bellver@gmail.com> * @author carles.bellver@gmail.com * @author carles.bellver@cent.uji.es diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php index 6130fccd88e7aee6e333f463a3a28a34aaddfe62..3cd42efcb55b85419dda3f5681760b59879a511c 100644 --- a/lib/plugins/usermanager/lang/cs/lang.php +++ b/lib/plugins/usermanager/lang/cs/lang.php @@ -76,3 +76,11 @@ $lang['import_error_readfail'] = 'Import selhal. Nelze ÄÃst nahraný soubor.'; $lang['import_error_create'] = 'Nelze vytvoÅ™it uživatele'; $lang['import_notify_fail'] = 'Importovanému uživateli %s s e-mailem %s nemohlo být zasláno upozornÄ›nÃ.'; $lang['import_downloadfailures'] = 'Stáhnout chyby pro nápravu jako CVS'; +$lang['addUser_error_missing_pass'] = 'BuÄ prosÃm nastavte heslo nebo aktivujte upozorňovánà uživatel aby fungovalo vytvářenà hesel.'; +$lang['addUser_error_pass_not_identical'] = 'Zadaná hesla nebyla shodná.'; +$lang['addUser_error_modPass_disabled'] = 'ZmÄ›na hesel je momentálnÄ› zákázána.'; +$lang['addUser_error_name_missing'] = 'Zadejte prosÃm jméno nového uživatele.'; +$lang['addUser_error_modName_disabled'] = 'ZmÄ›na jmen je momentálnÄ› zákázána.'; +$lang['addUser_error_mail_missing'] = 'Zadejte prosÃm emailovou adresu nového uživatele.'; +$lang['addUser_error_modMail_disabled'] = 'ZmÄ›na emailové adresy je momentálnÄ› zákázána.'; +$lang['addUser_error_create_event_failed'] = 'Zásuvný modul zabránil pÅ™idánà nového uživatele. Pro vÃce informacà si prohlédnÄ›te dalšà možné zprávy.'; diff --git a/lib/plugins/usermanager/lang/cy/add.txt b/lib/plugins/usermanager/lang/cy/add.txt new file mode 100644 index 0000000000000000000000000000000000000000..c804e531d91831df5e3315b92442ec31bbc8b8a6 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/add.txt @@ -0,0 +1 @@ +===== Ychwanegu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/delete.txt b/lib/plugins/usermanager/lang/cy/delete.txt new file mode 100644 index 0000000000000000000000000000000000000000..a81f3a9896ccbcd072f74aed26e0192c10e37236 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/delete.txt @@ -0,0 +1 @@ +===== Dileu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/edit.txt b/lib/plugins/usermanager/lang/cy/edit.txt new file mode 100644 index 0000000000000000000000000000000000000000..3fcb6d1d2272756455e6e9bda710954267f7a35d --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/edit.txt @@ -0,0 +1 @@ +===== Golygu defnyddiwr ===== diff --git a/lib/plugins/usermanager/lang/cy/import.txt b/lib/plugins/usermanager/lang/cy/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..211e8cf24f7e7dcc9b5fb5a71dc7a64aad03c9de --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/import.txt @@ -0,0 +1,9 @@ +===== Swmp Mewnforio Defnyddwyr ===== + +Mae hwn angen ffeil CSV o ddefnyddwyr gydag o leiaf pedair colofn. +Mae'n rhaid i'r colofnau gynnwys, mewn trefn: id-defnyddiwr, enw llawn, cyfeiriad ebost a grwpiau. +Dylai'r meysydd CSV gael eu gwahanu gan goma (,) a llinynnau eu hamffinio gan ddyfynodau (%%""%%). Gall ôl-slaes (\) ei ddefnyddio ar gyfer glanhau (escaping). +Am enghraifft o ffeil addas, ceisiwch y swyddogaeth "Allforio Defnyddwyr" uchod. +Caiff id-defnyddiwr dyblygiedig eu hanwybyddu. + +Generadwyd cyfrinair a'i ebostio i bob defnyddiwr sydd wedi'i fewnforio'n llwyddiannus. diff --git a/lib/plugins/usermanager/lang/cy/intro.txt b/lib/plugins/usermanager/lang/cy/intro.txt new file mode 100644 index 0000000000000000000000000000000000000000..a381a30764bd6b79fe4b87bd3f70cbaa4ec70688 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/intro.txt @@ -0,0 +1 @@ +====== Rheolwr Defnyddwyr ====== diff --git a/lib/plugins/usermanager/lang/cy/lang.php b/lib/plugins/usermanager/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..5120d39e24d043db945d1ec9d99748ac42d1eb26 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/lang.php @@ -0,0 +1,87 @@ +<?php +/** + * Welsh language file + * + * @author Chris Smith <chris@jalakai.co.uk> + * @author Alan Davies <ben.brynsadler@gmail.com> + */ + +$lang['menu'] = 'Rheolwr Defnyddwyr'; + +// custom language strings for the plugin +$lang['noauth'] = '(dilysiad defnddwyr ddim ar gael)'; +$lang['nosupport'] = '(rheolaeth defnyddwyr heb ei chynnal)'; + +$lang['badauth'] = 'mecanwaith dilysu annilys'; // should never be displayed! + +$lang['user_id'] = 'Defnyddiwr'; +$lang['user_pass'] = 'Cyfrinair'; +$lang['user_name'] = 'Enw Cywir'; +$lang['user_mail'] = 'Ebost'; +$lang['user_groups'] = 'Grwpiau'; + +$lang['field'] = 'Maes'; +$lang['value'] = 'Gwerth'; +$lang['add'] = 'Ychwanegu'; +$lang['delete'] = 'Dileu'; +$lang['delete_selected'] = 'Dileu\'r Dewisiadau'; +$lang['edit'] = 'Golygu'; +$lang['edit_prompt'] = 'Golygu\'r defnyddiwr hwn'; +$lang['modify'] = 'Cadw Newidiadau'; +$lang['search'] = 'Chwilio'; +$lang['search_prompt'] = 'Perfformio chwiliad'; +$lang['clear'] = 'Ailosod Hidlydd Chwilio'; +$lang['filter'] = 'Hidlo'; +$lang['export_all'] = 'Allforio Pob Defnyddiwr (CSV)'; +$lang['export_filtered'] = 'Allforio Rhestr Defnyddwyr wedi\'u Hidlo (CSV)'; +$lang['import'] = 'Mewnforio Defnyddwyr Newydd'; +$lang['line'] = 'Llinell rhif'; +$lang['error'] = 'Gwallneges'; + +$lang['summary'] = 'Yn dangos %1$d-%2$d defnyddiwr allan o %3$d wedi\'u darganfod. %4$d defnyddiwr yn gyfan gwbl.'; +$lang['nonefound'] = 'Dim defnyddwyr wedi\'u darganfod. %d defnyddiwr yn gyfan gwbl.'; +$lang['delete_ok'] = 'Dilëwyd %d defnyddiwr'; +$lang['delete_fail'] = 'Dileu %d wedi methu.'; +$lang['update_ok'] = 'Diweddarwyd y defnyddiwr yn llwyddiannus'; +$lang['update_fail'] = 'Methodd diweddariad y defnyddiwr'; +$lang['update_exists'] = 'Methodd newid y defnyddair, mae\'r defnyddair hwnnw (%s) yn bodoli eisoes (caiff pob newid arall ei gyflwyno).'; + +$lang['start'] = 'dechrau'; +$lang['prev'] = 'blaenorol'; +$lang['next'] = 'nesaf'; +$lang['last'] = 'diwethaf'; + +// added after 2006-03-09 release +$lang['edit_usermissing'] = 'Methu darganfod y defnyddiwr hwn. Efallai bod y defnyddair hwn wedi\'i ddileu neu wedi\'i newid mewn man arall.'; +$lang['user_notify'] = 'Hysbysu defnyddiwr'; +$lang['note_notify'] = 'Bydd ebyst hysbysu eu hanfon dim ond os ydy defnyddiwr yn derbyn cyfrinair newydd.'; +$lang['note_group'] = 'Bydd defnyddwyr newydd yn cael eu hychwanegu i\'r grŵp diofyn (%s) os na chaiff grŵp ei enwi.'; +$lang['note_pass'] = 'Caiff y cyfrinair ei generadu\'n awtomatig os caiff y maes ei adael yn wag a bod hysbysu\'r defnyddiwr wedi\'i alluogi.'; +$lang['add_ok'] = 'Ychwanegwyd y defnyddiwr yn llwyddiannus'; +$lang['add_fail'] = 'Methodd ychwanegu defnyddiwr'; +$lang['notify_ok'] = 'Anfonwyd yr ebost hysbysu'; +$lang['notify_fail'] = 'Doedd dim modd anfon yr ebost hysbysu'; + +// import & errors +$lang['import_userlistcsv'] = 'Ffeil rhestr defnyddwyr (CSV): '; +$lang['import_header'] = 'Mewnforiad Diweddaraf - Methiannau'; +$lang['import_success_count'] = 'Mewnforio Defnyddwyr: darganfuwyd %d defnyddiwr, mewnforiwyd %d yn llwyddiannus.'; +$lang['import_failure_count'] = 'Mewnforio Defnyddwyr: methodd %d. Rhestrwyd y methiannau isod.'; +$lang['import_error_fields'] = "Meysydd annigonol, darganfuwyd %d, angen 4."; +$lang['import_error_baduserid'] = "Id-defnyddiwr ar goll"; +$lang['import_error_badname'] = 'Enw gwael'; +$lang['import_error_badmail'] = 'Cyfeiriad ebost gwael'; +$lang['import_error_upload'] = 'Methodd y Mewnforiad. Doedd dim modd lanlwytho\'r ffeil neu roedd yn wag.'; +$lang['import_error_readfail'] = 'Methodd y Mewnforiad. Methu â darllen y ffeil a lanlwythwyd.'; +$lang['import_error_create'] = 'Methu â chreu\'r defnyddiwr'; +$lang['import_notify_fail'] = 'Doedd dim modd anfon neges hysbysu i\'r defyddiwr a fewnforiwyd, %s gydag ebost %s.'; +$lang['import_downloadfailures'] = 'Lawlwytho Methiannau fel CSV er mwyn cywiro'; + +$lang['addUser_error_missing_pass'] = 'Gosodwch gyfrinair neu trowch hysbysu defnyddwyr ymlaen i alluogi generadu cyfrineiriau.'; +$lang['addUser_error_pass_not_identical'] = '\'Dyw\'r cyfrineiriau hyn ddim yn cydweddu.'; +$lang['addUser_error_modPass_disabled'] = 'Mae newid cyfrineiriau wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_name_missing'] = 'Rhowch enw ar gyfer y defnyddiwr newydd.'; +$lang['addUser_error_modName_disabled'] = 'Mae newid enwau wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_mail_missing'] = 'Rhowch gyfeiriad ebost ar gyfer y defnyddiwr newydd.'; +$lang['addUser_error_modMail_disabled'] = 'Mae newid cyfeiriadau ebost wedi\'i analluogi\'n bresennol.'; +$lang['addUser_error_create_event_failed'] = 'Mae ategyn wedi atal ychwanegu\'r defnyddiwr newydd. Adolygwch negeseuon ychwanegol bosib am wybodaeth bellach.'; diff --git a/lib/plugins/usermanager/lang/cy/list.txt b/lib/plugins/usermanager/lang/cy/list.txt new file mode 100644 index 0000000000000000000000000000000000000000..653177491f70178b928ebafd27c0d6f40572dcc4 --- /dev/null +++ b/lib/plugins/usermanager/lang/cy/list.txt @@ -0,0 +1 @@ +===== Rhestr Defnyddwyr ===== diff --git a/lib/plugins/usermanager/lang/de/lang.php b/lib/plugins/usermanager/lang/de/lang.php index 4b297b0dc257e02a0646ff3ee65ee57fd542a434..a388eb53152f801f0b9eaf2fa31653c79f0d40c0 100644 --- a/lib/plugins/usermanager/lang/de/lang.php +++ b/lib/plugins/usermanager/lang/de/lang.php @@ -22,6 +22,8 @@ * @author christian studer <cstuder@existenz.ch> * @author Ben Fey <benedikt.fey@beck-heun.de> * @author Jonas Gröger <jonas.groeger@gmail.com> + * @author Uwe Benzelrath <uwebenzelrath@gmail.com> + * @author ms <msocial@posteo.de> */ $lang['menu'] = 'Benutzerverwaltung'; $lang['noauth'] = '(Authentifizierungssystem nicht verfügbar)'; @@ -82,3 +84,10 @@ $lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei $lang['import_error_create'] = 'User konnte nicht angelegt werden'; $lang['import_notify_fail'] = 'Notifikation konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.'; $lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen'; +$lang['addUser_error_pass_not_identical'] = 'Die eingegebenen Passwörter stimmen nicht überein.'; +$lang['addUser_error_modPass_disabled'] = 'Das bearbeiten von Passwörtern ist momentan deaktiviert'; +$lang['addUser_error_name_missing'] = 'Bitte geben sie den Namen des neuen Benutzer ein.'; +$lang['addUser_error_modName_disabled'] = 'Das bearbeiten von Namen ist momentan deaktiviert.'; +$lang['addUser_error_mail_missing'] = 'Bitte geben sie die E-Mail-Adresse des neuen Benutzer ein.'; +$lang['addUser_error_modMail_disabled'] = 'Das bearbeiten von E-Mailadressen ist momentan deaktiviert.'; +$lang['addUser_error_create_event_failed'] = 'Ein Plug-in hat das hinzufügen des neuen Benutzers verhindert. Für weitere Informationen, sehen Sie sich mögliche andere Meldungen an.'; diff --git a/lib/plugins/usermanager/lang/en/import.txt b/lib/plugins/usermanager/lang/en/import.txt index 360a0689b6748db5251a69a026966e72f7bddd14..3a1cf999ef026b79967762b77912c9ff29991a8d 100644 --- a/lib/plugins/usermanager/lang/en/import.txt +++ b/lib/plugins/usermanager/lang/en/import.txt @@ -2,8 +2,8 @@ Requires a CSV file of users with at least four columns. The columns must contain, in order: user-id, full name, email address and groups. -The CSV fields should be separated by commas (,) and strings delimited by quotation marks (%%""%%). Backslash (\) can be used for escaping. -For an example of a suitable file, try the "Export Users" function above. +The CSV fields should be separated by commas (,) and strings delimited by quotation marks (%%""%%). Backslash (\) can be used for escaping. +For an example of a suitable file, try the "Export Users" function above. Duplicate user-ids will be ignored. A password will be generated and emailed to each successfully imported user. diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php index b55ecc998e9d9643121da1c73ae2fd397b9fe351..5f47673f3855ad2150ed0bf2fe4667cb2a30b557 100644 --- a/lib/plugins/usermanager/lang/en/lang.php +++ b/lib/plugins/usermanager/lang/en/lang.php @@ -76,3 +76,11 @@ $lang['import_error_create'] = 'Unable to create the user'; $lang['import_notify_fail'] = 'Notification message could not be sent for imported user, %s with email %s.'; $lang['import_downloadfailures'] = 'Download Failures as CSV for correction'; +$lang['addUser_error_missing_pass'] = 'Please either set a password or activate user notification to enable password generation.'; +$lang['addUser_error_pass_not_identical'] = 'The entered passwords were not identical.'; +$lang['addUser_error_modPass_disabled'] = 'Modifing passwords is currently disabled'; +$lang['addUser_error_name_missing'] = 'Please enter a name for the new user.'; +$lang['addUser_error_modName_disabled'] = 'Modifing names is currently disabled.'; +$lang['addUser_error_mail_missing'] = 'Please enter an Email-Adress for the new user.'; +$lang['addUser_error_modMail_disabled'] = 'Modifing Email-Adresses is currently disabled.'; +$lang['addUser_error_create_event_failed'] = 'A plugin prevented the new user being added. Review possible other messages for more information.'; diff --git a/lib/plugins/usermanager/lang/es/import.txt b/lib/plugins/usermanager/lang/es/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..2482096d5505ec455feea073208ff29cafa7196b --- /dev/null +++ b/lib/plugins/usermanager/lang/es/import.txt @@ -0,0 +1,9 @@ +===== Importación y carga de usuarios ===== + +Se requiere un archivo CSV de usuarios con al menos cuatro columnas. +Las columnas deben contener, en este orden: Identificador de usuario, nombre completo, dirección de correo electrónico y grupos. +Los campos CSV deben estar separados por comas (,) y las cadenas delimitadas por comillas dobles (%%""%%). Barra inversa (\\) se puede utilizar para escapar caracteres. +Para un ejemplo de un archivo adecuado, probar la función "Exportar usuarios" de arriba. +Valores de identificador de usuario duplicados serán ignorados. + +Una contraseña será generada y enviada por correo electrónico a cada usuario importado correctamente. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/es/lang.php b/lib/plugins/usermanager/lang/es/lang.php index a557eacdd0ad8d2ff610058e1879185c8ab0c08c..57752de068e4318aea9a9cf213bdf385533aa3ee 100644 --- a/lib/plugins/usermanager/lang/es/lang.php +++ b/lib/plugins/usermanager/lang/es/lang.php @@ -27,6 +27,8 @@ * @author Antonio Bueno <atnbueno@gmail.com> * @author Antonio Castilla <antoniocastilla@trazoide.com> * @author Jonathan Hernández <me@jhalicea.com> + * @author Domingo Redal <docxml@gmail.com> + * @author solohazlo <solohhazlo@gmail.com> */ $lang['menu'] = 'Administración de usuarios'; $lang['noauth'] = '(la autenticación de usuarios no está disponible)'; @@ -75,9 +77,18 @@ $lang['add_fail'] = 'Falló la creación del usuario'; $lang['notify_ok'] = 'Se envió la notificación por correo electrónico'; $lang['notify_fail'] = 'No se pudo enviar la notificación por correo electrónico'; $lang['import_userlistcsv'] = 'Lista de usuarios (CSV): '; +$lang['import_header'] = 'Importaciones Más Recientes - Fallos'; +$lang['import_success_count'] = 'Importación de usuarios: %d usuarios encontrados, %d importados correctamente.'; +$lang['import_failure_count'] = 'Importación de usuarios: %d fallaron. Los fallos se enumeran a continuación.'; +$lang['import_error_fields'] = 'Campos insuficientes, encontrados %d, se requieren 4.'; +$lang['import_error_baduserid'] = 'Identificador de usuario no encontrado'; +$lang['import_error_badname'] = 'Nombre erróneo'; $lang['import_error_badmail'] = 'Dirección de correo electrónico incorrecta'; $lang['import_error_upload'] = 'Error al importar. El archivo csv no se pudo cargar o está vacÃo.'; $lang['import_error_readfail'] = 'Error al importar. No se puede leer el archivo subido.'; $lang['import_error_create'] = 'No se puede crear el usuario'; $lang['import_notify_fail'] = 'Mensaje de notificación no se ha podido enviar por el usuario importado,%s con el email %s.'; $lang['import_downloadfailures'] = 'Descarga errores en archivo CSV para la corrección'; +$lang['addUser_error_pass_not_identical'] = 'Las contraseñas no coinciden'; +$lang['addUser_error_modPass_disabled'] = 'Está desactivado por ahora modificar contraseñas.'; +$lang['addUser_error_name_missing'] = 'Por favor teclea el nombre del nuevo usuario.'; diff --git a/lib/plugins/usermanager/lang/fa/import.txt b/lib/plugins/usermanager/lang/fa/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..562a28aa5cb71460bf9facd94712d84a4d27658e --- /dev/null +++ b/lib/plugins/usermanager/lang/fa/import.txt @@ -0,0 +1,6 @@ + ===== اضاÙÙ‡ کردن کاربر ===== + +برای اینکار یک ÙØ§ÛŒÙ„ CSV با ØØ¯Ø§Ù‚Ù„ چهار ستون لازم است. ستون‌ها به ترتیب باید شامل id کاربر، نام کامل کاربر، آدرس ایمیل Ùˆ گروه‌های کاربری او باشند. +خانه‌های جدول CSV باید به وسیلهٔ کاما (,) Ùˆ رشته‌ها با علامت نقل قول (%%""%%) از هم جدا شوند. علامت واکج‌خط (\) می‌تواند برای ØºÛŒØ±ÙØ¹Ø§Ù„ کردن معنای کاراکترها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود. برای دیدن یک نمونه از ÙØ§ÛŒÙ„ مناسب، از گزینهٔ "خروجی کاربران" در بالا Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. id های تکراری در جدول در نظر Ú¯Ø±ÙØªÙ‡ نمی‌شوند. + +به ازای هر کاربری Ú©Ù‡ با موÙقیت اضاÙÙ‡ شود یک رمز تولید Ùˆ ایمیل می‌شود. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/fa/lang.php b/lib/plugins/usermanager/lang/fa/lang.php index bb2505a2774e949afb7fe3f13e9521adce285e9e..cfa14f23b3b02e567933d29c39a3c5a9135178ad 100644 --- a/lib/plugins/usermanager/lang/fa/lang.php +++ b/lib/plugins/usermanager/lang/fa/lang.php @@ -12,6 +12,7 @@ * @author AmirH Hassaneini <mytechmix@gmail.com> * @author Hamid <zarrabi@sharif.edu> * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com> + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> */ $lang['menu'] = 'مدیریت کاربر'; $lang['noauth'] = '(معتبرسازی کاربر ممکن نیست)'; @@ -34,7 +35,10 @@ $lang['search'] = 'جستجو'; $lang['search_prompt'] = 'انجام جستجو'; $lang['clear'] = 'بازنویسی Ùیلترهای جستجو'; $lang['filter'] = 'Ùیلتر'; +$lang['export_all'] = 'خروجی Ú¯Ø±ÙØªÙ† از تمام کاربران (CSV):'; +$lang['export_filtered'] = 'خروجی لیست Ùیلتر شده کاربران (CSV):'; $lang['import'] = 'ورود کاربران جدید'; +$lang['line'] = 'شماره خط.'; $lang['error'] = 'متن خطا'; $lang['summary'] = 'نمایش کاربر %1$d-%2$d از %3$d. در Ú©Ù„ %4$d کاربر.'; $lang['nonefound'] = 'هیچ کاربری ÛŒØ§ÙØª نشد. در Ú©Ù„ %d کاربر.'; @@ -56,3 +60,24 @@ $lang['add_ok'] = 'کاربر با موÙقیت Ø§ÙØ²ÙˆØ¯Ù‡ شد $lang['add_fail'] = 'Ø§ÙØ²ÙˆØ¯Ù† کاربر با مشکل مواجه شد'; $lang['notify_ok'] = 'ایمیل آگاهی‌دهنده ارسال شد'; $lang['notify_fail'] = 'ارسال ایمیل آگاهی‌دهنده با مشکل مواجه شد'; +$lang['import_userlistcsv'] = 'ÙØ§ÛŒÙ„ لیست کاربران (CSV):'; +$lang['import_header'] = 'آخرین ایمپورت - خطا'; +$lang['import_success_count'] = 'ایمپورت کاربران: %d کاربر پیدا شد، %d با موÙقیت وارد شد.'; +$lang['import_failure_count'] = 'ایمپورت کاربران: %d ناموÙÙ‚. موارد ناموÙÙ‚ در پایین Ùهرست شده.'; +$lang['import_error_fields'] = 'Ùیلدهای ناکاÙÛŒ. %d تا پیدا شد ولی Û´ تا لازم است.'; +$lang['import_error_baduserid'] = 'id کاربر وارد نشده'; +$lang['import_error_badname'] = 'نام نامناسب'; +$lang['import_error_badmail'] = 'ایمیل نامناسب'; +$lang['import_error_upload'] = 'ایمپورت ناموÙÙ‚. امکان ایمپورت ÙØ§ÛŒÙ„ csv وجود ندارد یا خالی است.'; +$lang['import_error_readfail'] = 'ایمپورت ناموÙÙ‚. امکان خواندن ÙØ§ÛŒÙ„ آپلود شده وجود ندارد.'; +$lang['import_error_create'] = 'امکان ساخت کاربر وجود ندارد.'; +$lang['import_notify_fail'] = 'امکان ارسال پیغام آگاهی‌رسان برای کاربر ایمپورت شده وجود ندارد، %s با ایمیل %s.'; +$lang['import_downloadfailures'] = 'دانلود خطاها به صورت CSV برای اصلاØ'; +$lang['addUser_error_missing_pass'] = 'Ù„Ø·ÙØ§ یک پسورد وارد کنید یا آگاهی‌رسان کاربر را ÙØ¹Ø§Ù„ کنید تا امکان تولید پسورد ایجاد شود'; +$lang['addUser_error_pass_not_identical'] = 'پسورد وارد شده معتبر نیست.'; +$lang['addUser_error_modPass_disabled'] = 'پسوردهای ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ ØºÛŒØ±ÙØ¹Ø§Ù„ است.'; +$lang['addUser_error_name_missing'] = 'Ù„Ø·ÙØ§ یک نام برای کاربر جدید وارد کنید.'; +$lang['addUser_error_modName_disabled'] = 'نام‌های ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ غیر ÙØ¹Ø§Ù„ است.'; +$lang['addUser_error_mail_missing'] = 'Ù„Ø·ÙØ§ یک نشانی ایمیل برای کاربر جدید وارد نمایید.'; +$lang['addUser_error_modMail_disabled'] = 'ایمیل‌های ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ غیر ÙØ¹Ø§Ù„ است.'; +$lang['addUser_error_create_event_failed'] = 'Ø§ÙØ²ÙˆÙ†Ù‡ از اضاÙÙ‡ شدن کاربر جدید جلوگیری کرد. برای اطلاعات بیشتر پیغام‌های Ø§ØØªÙ…الی دیگر را مطالعه کنید.'; diff --git a/lib/plugins/usermanager/lang/fr/lang.php b/lib/plugins/usermanager/lang/fr/lang.php index dd0e64fc4d6433f177fe0e0f2e7d06d70bbc3bc8..eef81c6c5bf0fd98f68d864c2d5e53054a875311 100644 --- a/lib/plugins/usermanager/lang/fr/lang.php +++ b/lib/plugins/usermanager/lang/fr/lang.php @@ -15,15 +15,15 @@ * @author Florian Gaub <floriang@floriang.net> * @author Samuel Dorsaz samuel.dorsaz@novelion.net * @author Johan Guilbaud <guilbaud.johan@gmail.com> - * @author schplurtz@laposte.net * @author skimpax@gmail.com * @author Yannick Aure <yannick.aure@gmail.com> * @author Olivier DUVAL <zorky00@gmail.com> * @author Anael Mobilia <contrib@anael.eu> * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Antoine Turmel <geekshadow@gmail.com> - * @author schplurtz <Schplurtz@laposte.net> * @author Jérôme Brandt <jeromebrandt@gmail.com> + * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> + * @author Olivier Humbert <trebmuh@tuxfamily.org> */ $lang['menu'] = 'Gestion des utilisateurs'; $lang['noauth'] = '(authentification de l\'utilisateur non disponible)'; @@ -84,3 +84,11 @@ $lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fi $lang['import_error_create'] = 'Impossible de créer l\'utilisateur'; $lang['import_notify_fail'] = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.'; $lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction'; +$lang['addUser_error_missing_pass'] = 'Veuillez saisir un mot de passe ou activer la notification à l\'utilisateur pour permettre la génération d\'un mot de passe.'; +$lang['addUser_error_pass_not_identical'] = 'Les mots de passe saisis diffèrent.'; +$lang['addUser_error_modPass_disabled'] = 'La modification des mots de passe est actuellement désactivée.'; +$lang['addUser_error_name_missing'] = 'Veuillez saisir un nom pour le nouvel utilisateur.'; +$lang['addUser_error_modName_disabled'] = 'La modification des noms est actuellement désactivée.'; +$lang['addUser_error_mail_missing'] = 'Veuillez saisir une adressse de courriel pour le nouvel utilisateur.'; +$lang['addUser_error_modMail_disabled'] = 'La modification des adresses de courriel est actuellement désactivée.'; +$lang['addUser_error_create_event_failed'] = 'Un greffon a empêché l\'ajout du nouvel utilisateur. Examinez les autres messages potentiels pour obtenir de plus amples informations.'; diff --git a/lib/plugins/usermanager/lang/it/import.txt b/lib/plugins/usermanager/lang/it/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..ed7b0001183d9f8a2c1e7111aec9ae779a5e4e3f --- /dev/null +++ b/lib/plugins/usermanager/lang/it/import.txt @@ -0,0 +1,9 @@ +===== Importazione Bulk di utente ===== + +Richiesto un file CSV di utenti con almeno quattro colonne. +Le colonne devono contenere, in ordine: ID utente, nome completo, indirizzo e-mail e gruppi. +I campi CSV devono essere separati da una virgola (,) e le stringhe delimitate con apici (%%""%%). Il backslash (\) può essere usato come carattere di escape, cioè per indicare che il carattere successivo deve essere trattato in maniera speciale. +Per un esempio di file tipo, prova la funzione "Esporta Utenti" che trovi qui sopra. +Verranno ignorati gli ID utenti duplicati. + +Verrà generata una password ed inviata via e-mail ad ogni utente correttamente importato. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/it/lang.php b/lib/plugins/usermanager/lang/it/lang.php index ffded3481af1d33a162dad226b60d63bc32e7ec4..fe52d5e91a877b78ac552805670303dbf123d80b 100644 --- a/lib/plugins/usermanager/lang/it/lang.php +++ b/lib/plugins/usermanager/lang/it/lang.php @@ -18,6 +18,7 @@ * @author Claudio Lanconelli <lancos@libero.it> * @author Francesco <francesco.cavalli@hotmail.com> * @author Fabio <fabioslurp@yahoo.it> + * @author Torpedo <dgtorpedo@gmail.com> */ $lang['menu'] = 'Gestione Utenti'; $lang['noauth'] = '(autenticazione non disponibile)'; @@ -65,6 +66,8 @@ $lang['add_ok'] = 'Utente aggiunto correttamente'; $lang['add_fail'] = 'Aggiunta utente fallita'; $lang['notify_ok'] = 'Email di notifica inviata'; $lang['notify_fail'] = 'L\'email di notifica non può essere inviata'; +$lang['import_userlistcsv'] = 'File lista utente (CSV):'; +$lang['import_header'] = 'Importazioni più recenti - Non riuscite'; $lang['import_success_count'] = 'Importazione utenti: %d utenti trovati, %d utenti importati con successo.'; $lang['import_failure_count'] = 'Importazione utenti: %d falliti. Errori riportati qui sotto.'; $lang['import_error_fields'] = 'Campi insufficienti, trovati %d, richiesti 4.'; @@ -74,3 +77,13 @@ $lang['import_error_badmail'] = 'Indirizzo email errato'; $lang['import_error_upload'] = 'Importazione fallita. Il file CSV non può essere caricato, o è vuoto.'; $lang['import_error_readfail'] = 'Importazione in errore. Impossibile leggere i file caricati.'; $lang['import_error_create'] = 'Impossibile creare l\'utente'; +$lang['import_notify_fail'] = 'Non è stato possibile inviare un messaggio di notifica per l\'utente importato %s con e-mail %s.'; +$lang['import_downloadfailures'] = 'Scarica operazioni non riuscite come CSV per correzione'; +$lang['addUser_error_missing_pass'] = 'Imposta una password oppure attiva la notifica utente per abilitare la generazione password.'; +$lang['addUser_error_pass_not_identical'] = 'Le password inserite non sono identiche.'; +$lang['addUser_error_modPass_disabled'] = 'La modifica delle password è al momento disabilitata.'; +$lang['addUser_error_name_missing'] = 'Inserire un nome per il nuovo utente.'; +$lang['addUser_error_modName_disabled'] = 'La modifica dei nomi è al momento disabilitata.'; +$lang['addUser_error_mail_missing'] = 'Inserire un indirizzo e-mail per il nuovo utente.'; +$lang['addUser_error_modMail_disabled'] = 'La modifica degli indirizzi e-mail è al momento disabilitata.'; +$lang['addUser_error_create_event_failed'] = 'Un plugin ha impedito che il nuovo utente venisse aggiunto. Rivedere gli altri messaggi per maggiori informazioni.'; diff --git a/lib/plugins/usermanager/lang/ja/import.txt b/lib/plugins/usermanager/lang/ja/import.txt index 6af87c263e750dd28e0636b92b714d44a295407d..4987df0e3b8a3ded7f492da1db19c72ad9c89de4 100644 --- a/lib/plugins/usermanager/lang/ja/import.txt +++ b/lib/plugins/usermanager/lang/ja/import.txt @@ -1,7 +1,7 @@ ===== 一括ユーザーインãƒãƒ¼ãƒˆ ===== å°‘ãªãã¨ã‚‚4列ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼CSVファイルãŒå¿…è¦ã§ã™ã€‚ -列ã®é †åºï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼IDã€æ°åã€é›»åメールアドレスã€ã‚°ãƒ«ãƒ¼ãƒ—。 +列ã®é †åºï¼š ユーザーIDã€ãƒ•ルãƒãƒ¼ãƒ ã€é›»åメールアドレスã€ã‚°ãƒ«ãƒ¼ãƒ—。 CSVフィールドã¯ã‚«ãƒ³ãƒžï¼ˆ,ï¼‰åŒºåˆ‡ã‚Šã€æ–‡å—列ã¯å¼•用符(%%""%%)区切りã§ã™ã€‚ エスケープã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ï¼ˆ\)を使用ã§ãã¾ã™ã€‚ é©åˆ‡ãªãƒ•ァイル例ã¯ã€ä¸Šè¨˜ã®"エクスãƒãƒ¼ãƒˆãƒ¦ãƒ¼ã‚¶ãƒ¼"機能ã§è©¦ã—ã¦ä¸‹ã•ã„。 diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 23109f2a29a42db53abe76e43ef351b9c02eb0f2..ad55a3e8ae97e4b4060e340c2467f0533325633b 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -19,7 +19,7 @@ $lang['nosupport'] = '(ユーザー管ç†ã¯ã‚µãƒãƒ¼ãƒˆã•れ㦠$lang['badauth'] = 'èªè¨¼ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ãŒç„¡åйã§ã™'; $lang['user_id'] = 'ユーザー'; $lang['user_pass'] = 'パスワード'; -$lang['user_name'] = 'æ°å'; +$lang['user_name'] = 'フルãƒãƒ¼ãƒ '; $lang['user_mail'] = 'メールアドレス'; $lang['user_groups'] = 'グループ'; $lang['field'] = 'é …ç›®'; @@ -65,10 +65,18 @@ $lang['import_success_count'] = 'ユーザーインãƒãƒ¼ãƒˆï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ% $lang['import_failure_count'] = 'ユーザーインãƒãƒ¼ãƒˆï¼š%dä»¶ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚å¤±æ•—ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚'; $lang['import_error_fields'] = '列ã®ä¸è¶³ï¼ˆï¼”列必è¦ï¼‰ãŒ%dä»¶ã‚りã¾ã—ãŸã€‚'; $lang['import_error_baduserid'] = 'æ¬ è½ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ID'; -$lang['import_error_badname'] = '䏿£ãªæ°å'; +$lang['import_error_badname'] = '䏿£ãªãƒ•ルãƒãƒ¼ãƒ '; $lang['import_error_badmail'] = '䏿£ãªé›»åメールアドレス'; $lang['import_error_upload'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚CSVファイルをアップãƒãƒ¼ãƒ‰ã§ããªã‹ã£ãŸã‹ã€ãƒ•ァイルãŒç©ºã§ã™ã€‚'; $lang['import_error_readfail'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚アップãƒãƒ¼ãƒ‰ã•れãŸãƒ•ァイルãŒèªè¾¼ã§ãã¾ã›ã‚“。'; $lang['import_error_create'] = 'ユーザーãŒä½œæˆã§ãã¾ã›ã‚“。'; $lang['import_notify_fail'] = '通知メッセージãŒã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%s)・電åメールアドレス(%s)ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; $lang['import_downloadfailures'] = 'ä¿®æ£ç”¨ã«å¤±æ•—ã‚’ CSVファイルã¨ã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚'; +$lang['addUser_error_missing_pass'] = 'パスワードをè¨å®šã™ã‚‹ã‹ãƒ‘スワードã®è‡ªå‹•生æˆã§ãるよã†ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã‚’有効ã«ã—ã¦ä¸‹ã•ã„。'; +$lang['addUser_error_pass_not_identical'] = '入力ã•れãŸãƒ‘スワードã¯åŒä¸€ã§ã¯ã‚りã¾ã›ã‚“。'; +$lang['addUser_error_modPass_disabled'] = 'パスワードã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_name_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ルãƒãƒ¼ãƒ を入力ã—ã¦ãã ã•ã„。'; +$lang['addUser_error_modName_disabled'] = 'フルãƒãƒ¼ãƒ ã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_mail_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。'; +$lang['addUser_error_modMail_disabled'] = 'メールアドレスã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; +$lang['addUser_error_create_event_failed'] = 'ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒæ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿½åŠ ã‚’æŠ‘æ¢ã—ã¾ã—ãŸã€‚詳細ã«ã¤ã„ã¦ã¯ã€ä»–ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ç¢ºèªã§ãã¾ã™ã€‚'; diff --git a/lib/plugins/usermanager/lang/ko/import.txt b/lib/plugins/usermanager/lang/ko/import.txt index 6d077dfb841b1c8006341a0b60d673115f038cd8..b5801e6628a73fa787d90bc2016f79a30807a148 100644 --- a/lib/plugins/usermanager/lang/ko/import.txt +++ b/lib/plugins/usermanager/lang/ko/import.txt @@ -1,9 +1,9 @@ ===== 대량 ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸° ===== ì ì–´ë„ ì—´ 네 개가 있는 사용ìžì˜ CSV 파ì¼ì´ 필요합니다. -ì—´ì€ ë‹¤ìŒê³¼ ê°™ì´ í¬í•¨í•´ì•¼ 합니다: ì‚¬ìš©ìž id, 실명, ì´ë©”ì¼ ì£¼ì†Œì™€ 그룹. +ì—´ì€ ë‹¤ìŒê³¼ ê°™ì´ í¬í•¨í•´ì•¼ 합니다: ì‚¬ìš©ìž ID, 실명, ì´ë©”ì¼ ì£¼ì†Œì™€ 그룹. CSV 필드는 ì¸ìš© 부호(%%""%%)로 쉼표(,)와 êµ¬ë¶„ëœ ë¬¸ìžì—´ë¡œ 구분해야 합니다. 백슬래시(\)는 íƒˆì¶œì— ì‚¬ìš©í• ìˆ˜ 있습니다. ì ì ˆí•œ 파ì¼ì˜ 예를 들어, ìœ„ì˜ "ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸°"를 시ë„하세요. -ì¤‘ë³µëœ ì‚¬ìš©ìž id는 무시ë©ë‹ˆë‹¤. +ì¤‘ë³µëœ ì‚¬ìš©ìž ID는 무시ë©ë‹ˆë‹¤. 비밀번호는 ìƒì„±ë˜ê³ ê° ì„±ê³µì 으로 ê°€ì ¸ì˜¨ 사용ìžì—게 ì´ë©”ì¼ë¡œ 보내집니다. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index bc76470e84911dd059a22bf5ee0dbfe1254b042a..5f92d643f1116989ace9722241eaebc688fd7207 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -11,6 +11,7 @@ * @author Myeongjin <aranet100@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Garam <rowain8@gmail.com> + * @author Erial <erial2@gmail.com> */ $lang['menu'] = 'ì‚¬ìš©ìž ê´€ë¦¬ìž'; $lang['noauth'] = '(ì‚¬ìš©ìž ì¸ì¦ì„ ì‚¬ìš©í• ìˆ˜ 없습니다)'; @@ -43,17 +44,17 @@ $lang['nonefound'] = 'ì°¾ì€ ì‚¬ìš©ìžê°€ 없습니다. ì „ì²´ 사 $lang['delete_ok'] = 'ì‚¬ìš©ìž %dëª…ì´ ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤'; $lang['delete_fail'] = 'ì‚¬ìš©ìž %dëª…ì„ ì‚ì œí•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.'; $lang['update_ok'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 성공ì 으로 바꾸었습니다'; -$lang['update_fail'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤'; +$lang['update_fail'] = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ ì—…ë°ì´íŠ¸í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤'; $lang['update_exists'] = 'ì‚¬ìš©ìž ì´ë¦„ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì‚¬ìš©ìž ì´ë¦„(%s)ì´ ì´ë¯¸ 존재합니다. (다른 í•ëª©ì˜ ë°”ë€œì€ ì ìš©ë©ë‹ˆë‹¤)'; $lang['start'] = '시작'; $lang['prev'] = 'ì´ì „'; $lang['next'] = '다ìŒ'; $lang['last'] = '마지막'; -$lang['edit_usermissing'] = 'ì„ íƒëœ 사용ìžë¥¼ ì°¾ì„ ìˆ˜ 없습니다. ì‚¬ìš©ìž ì´ë¦„ì´ ì‚ì œë˜ê±°ë‚˜ ë°”ë€Œì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; +$lang['edit_usermissing'] = 'ì„ íƒëœ 사용ìžë¥¼ ì°¾ì„ ìˆ˜ 없습니다, ì‚¬ìš©ìž ì´ë¦„ì´ ì‚ì œë˜ê±°ë‚˜ ë°”ë€Œì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.'; $lang['user_notify'] = '사용ìžì—게 알림'; $lang['note_notify'] = '사용ìžì—게 새로운 비밀번호를 준 경우ì—ë§Œ 알림 ì´ë©”ì¼ì´ 보내집니다.'; $lang['note_group'] = '새로운 사용ìžëŠ” ì–´ë–¤ ê·¸ë£¹ë„ ì„¤ì •í•˜ì§€ ì•Šì€ ê²½ìš°ì— ê¸°ë³¸ 그룹(%s)ì— ì¶”ê°€ë©ë‹ˆë‹¤.'; -$lang['note_pass'] = 'ì‚¬ìš©ìž ì•Œë¦¼ì´ ì§€ì •ë˜ì–´ ìžˆì„ ë•Œ í•„ë“œì— ì•„ë¬´ ê°’ë„ ìž…ë ¥í•˜ì§€ 않으면 비밀번호가 ìžë™ìœ¼ë¡œ 만들어집니다.'; +$lang['note_pass'] = 'ì‚¬ìš©ìž ì•Œë¦¼ì´ ì§€ì •ë˜ì–´ ìžˆì„ ë•Œ í•„ë“œì— ì•„ë¬´ ê°’ë„ ìž…ë ¥í•˜ì§€ 않으면 비밀번호가 ìžë™ìœ¼ë¡œ ìƒì„±ë©ë‹ˆë‹¤.'; $lang['add_ok'] = '사용ìžë¥¼ 성공ì 으로 추가했습니다'; $lang['add_fail'] = 'ì‚¬ìš©ìž ì¶”ê°€ë¥¼ 실패했습니다'; $lang['notify_ok'] = '알림 ì´ë©”ì¼ì„ 성공ì 으로 보냈습니다'; @@ -63,11 +64,19 @@ $lang['import_header'] = '가장 최근 ê°€ì ¸ì˜¤ê¸° - 실패'; $lang['import_success_count'] = 'ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°: ì‚¬ìš©ìž %dëª…ì„ ì°¾ì•˜ê³ , %dëª…ì„ ì„±ê³µì 으로 ê°€ì ¸ì™”ìŠµë‹ˆë‹¤.'; $lang['import_failure_count'] = 'ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°: %dëª…ì„ ê°€ì ¸ì˜¤ì§€ 못했습니다. 실패는 ì•„ëž˜ì— ë‚˜íƒ€ë‚˜ 있습니다.'; $lang['import_error_fields'] = '충분하지 ì•Šì€ í•„ë“œë¡œ, %d개를 ì°¾ì•˜ê³ , 4개가 필요합니다.'; -$lang['import_error_baduserid'] = 'ì‚¬ìš©ìž id ì—†ìŒ'; +$lang['import_error_baduserid'] = 'ì‚¬ìš©ìž ID ì—†ìŒ'; $lang['import_error_badname'] = 'ìž˜ëª»ëœ ì´ë¦„'; $lang['import_error_badmail'] = 'ìž˜ëª»ëœ ì´ë©”ì¼ ì£¼ì†Œ'; -$lang['import_error_upload'] = 'ê°€ì ¸ì˜¤ê¸°ë¥¼ 실패했습니다. csv 파ì¼ì„ 올릴 수 없거나 비어 있습니다.'; +$lang['import_error_upload'] = 'ê°€ì ¸ì˜¤ê¸°ë¥¼ 실패했습니다. CSV 파ì¼ì„ 올릴 수 없거나 비어 있습니다.'; $lang['import_error_readfail'] = 'ê°€ì ¸ì˜¤ê¸°ë¥¼ 실패했습니다. 올린 파ì¼ì„ ì½ì„ 수 없습니다.'; $lang['import_error_create'] = '사용ìžë¥¼ 만들 수 없습니다'; $lang['import_notify_fail'] = '알림 메시지를 ê°€ì ¸ì˜¨ %s (ì´ë©”ì¼: %s) 사용ìžì—게 보낼 수 없습니다.'; $lang['import_downloadfailures'] = 'êµì •ì„ ìœ„í•œ CSV로 다운로드 실패'; +$lang['addUser_error_missing_pass'] = '비밀번호를 ì„¤ì •í•˜ê±°ë‚˜ 비밀번호 ìƒì„±ì„ í™œì„±í™”í•˜ë ¤ë©´ ì‚¬ìš©ìž ì•Œë¦¼ì„ í™œì„±í™”í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤.'; +$lang['addUser_error_pass_not_identical'] = 'ìž…ë ¥ëœ ë¹„ë°€ë²ˆí˜¸ê°€ ì¼ì¹˜í•˜ì§€ 않습니다.'; +$lang['addUser_error_modPass_disabled'] = '비밀번호를 ìˆ˜ì •í•˜ëŠ” ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.'; +$lang['addUser_error_name_missing'] = '새 사용ìžì˜ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”.'; +$lang['addUser_error_modName_disabled'] = 'ì´ë¦„ì„ ìˆ˜ì •í•˜ëŠ” ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.'; +$lang['addUser_error_mail_missing'] = '새 사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•˜ì„¸ìš”.'; +$lang['addUser_error_modMail_disabled'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìˆ˜ì •í•˜ëŠ” ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.'; +$lang['addUser_error_create_event_failed'] = '플러그ì¸ì´ 새 사용ìžê°€ 추가ë˜ëŠ” ê²ƒì„ ë§‰ì•˜ìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ì— ëŒ€í•´ì„œëŠ” 가능한 다른 메시지를 ê²€í† í•˜ì„¸ìš”.'; diff --git a/lib/plugins/usermanager/lang/lt/lang.php b/lib/plugins/usermanager/lang/lt/lang.php index db3cf2d32648c347b6fc28284d51d10669517ebd..3c002930395400845bdc390a5846b33e28e59e28 100644 --- a/lib/plugins/usermanager/lang/lt/lang.php +++ b/lib/plugins/usermanager/lang/lt/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Lithuanian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author grawity <grawity@gmail.com> * @author audrius.klevas@gmail.com * @author Arunas Vaitekunas <aras@fan.lt> diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index 3f9902e141e6478ae4b1740db5fc18b3699e08d3..ea85d0f7b73e2b28cc45c2eccb5723b75a7ecba2 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -16,6 +16,7 @@ * @author Ricardo Guijt <ricardoguijt@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> * @author Rene <wllywlnt@yahoo.com> + * @author Wesley de Weerd <wesleytiel@gmail.com> */ $lang['menu'] = 'Gebruikersbeheer'; $lang['noauth'] = '(gebruikersauthenticatie niet beschikbaar)'; @@ -76,3 +77,11 @@ $lang['import_error_readfail'] = 'Importeren mislukt. Lezen van het geüploade b $lang['import_error_create'] = 'Aanmaken van de gebruiker was niet mogelijk.'; $lang['import_notify_fail'] = 'Notificatiebericht kon niet naar de geïmporteerde gebruiker worden verstuurd, %s met e-mail %s.'; $lang['import_downloadfailures'] = 'Download de gevonden fouten als CSV voor correctie'; +$lang['addUser_error_missing_pass'] = 'Vul een wachtwoord in of activeer de gebruikers notificatie om een wachtwoord te genereren.'; +$lang['addUser_error_pass_not_identical'] = 'De ingevulde wachtwoorden komen niet overeen'; +$lang['addUser_error_modPass_disabled'] = 'Het aanpassen van wachtwoorden is momenteel uitgeschakeld'; +$lang['addUser_error_name_missing'] = 'Vul een naam in voor de nieuwe gebruiker'; +$lang['addUser_error_modName_disabled'] = 'Het aanpassen van namen is momenteel uitgeschakeld'; +$lang['addUser_error_mail_missing'] = 'Vul een email adres in voor de nieuwe gebruiker'; +$lang['addUser_error_modMail_disabled'] = 'Het aanpassen van uw email adres is momenteel uitgeschakeld'; +$lang['addUser_error_create_event_failed'] = 'Een plugin heeft voorkomen dat de nieuwe gebruiker wordt toegevoegd . Bekijk mogelijke andere berichten voor meer informatie.'; diff --git a/lib/plugins/usermanager/lang/pt-br/import.txt b/lib/plugins/usermanager/lang/pt-br/import.txt new file mode 100644 index 0000000000000000000000000000000000000000..d692bb3642a5696992abf04ec66bcea53c21a713 --- /dev/null +++ b/lib/plugins/usermanager/lang/pt-br/import.txt @@ -0,0 +1,9 @@ +===== Importação de Usuários em Massa ===== + +Requer um arquivo CSV de usuários com pelo menos quatro colunas. +As colunas devem conter, nesta ordem: id-usuário, nome completo, endereço de e-mail e grupos. +Os campos CSV devem ser separados por vÃrgulas ( , ) e nomes delimitados por aspas (). Barra invertida (\ ) pode ser usado para escapar nomes. +Para um exemplo de um arquivo adequado , tente a função Exportar usuários acima. +Usuário ids duplicados serão ignorados. + +A senha será gerada e enviada para cada usuário importado com sucesso. \ No newline at end of file diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index 356d139ebed6ee251a6510b2ede3870fee050c22..4254247117d2a79e9ddadf9df153ba1b5362c93e 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -21,6 +21,8 @@ * @author Leone Lisboa Magevski <leone1983@gmail.com> * @author Dário Estevão <darioems@gmail.com> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> + * @author Guilherme Cardoso <guicardoso@gmail.com> + * @author Viliam Dias <viliamjr@gmail.com> */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponÃvel)'; @@ -81,3 +83,11 @@ $lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o ar $lang['import_error_create'] = 'Habilitar para criar o usuário.'; $lang['import_notify_fail'] = 'Mensagem de notificação não pode ser enviada para o usuário importado, %s com email %s.'; $lang['import_downloadfailures'] = 'Falhas no Download como CSV para correção'; +$lang['addUser_error_missing_pass'] = 'Por favor coloque uma senha ou ative as notificações do usuário para habilitar a geração de senhas.'; +$lang['addUser_error_pass_not_identical'] = 'As senhas fornecidas não são idênticas.'; +$lang['addUser_error_modPass_disabled'] = 'A alteração de senhas está atualmente desabilitada.'; +$lang['addUser_error_name_missing'] = 'Por favor entre com um nome para o novo usuário.'; +$lang['addUser_error_modName_disabled'] = 'Alteração de nomes está desabilitada no momento.'; +$lang['addUser_error_mail_missing'] = 'Por favor entre com um endereço de e-mail para o novo usuário.'; +$lang['addUser_error_modMail_disabled'] = 'Alteração de endereço de e-mail está desabilitada no momento.'; +$lang['addUser_error_create_event_failed'] = 'Uma extensão impediu que um novo usuário seja adicionado. Reveja outras mensagens para mais informações.'; diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php index 43ea69e53e5cea7b1cab2c55b49480e0ee835faf..86885e415e3d0a69f994874dc3acd0996d4ebb55 100644 --- a/lib/plugins/usermanager/lang/pt/lang.php +++ b/lib/plugins/usermanager/lang/pt/lang.php @@ -9,6 +9,9 @@ * @author André Neves <drakferion@gmail.com> * @author José Campos zecarlosdecampos@gmail.com * @author Guido Salatino <guidorafael23@gmail.com> + * @author Romulo Pereira <romuloccomp@gmail.com> + * @author Paulo Carmino <contato@paulocarmino.com> + * @author Alfredo Silva <alfredo.silva@sky.com> */ $lang['menu'] = 'Gestor de Perfis'; $lang['noauth'] = '(autenticação indisponÃvel)'; diff --git a/lib/plugins/usermanager/lang/ru/lang.php b/lib/plugins/usermanager/lang/ru/lang.php index de650d6815079c26469dc03082586e0b294ca4a2..ca39b879597cbe7b3112421fb11b13e24712416f 100644 --- a/lib/plugins/usermanager/lang/ru/lang.php +++ b/lib/plugins/usermanager/lang/ru/lang.php @@ -22,6 +22,7 @@ * @author Aleksandr Selivanov <alexgearbox@yandex.ru> * @author Igor Degraf <igordegraf@gmail.com> * @author Vitaly Filatenko <kot@hacktest.net> + * @author dimsharav <dimsharav@gmail.com> */ $lang['menu'] = 'Управление пользователÑми'; $lang['noauth'] = '(Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ недоÑтупна)'; @@ -45,8 +46,8 @@ $lang['search_prompt'] = 'ИÑкать'; $lang['clear'] = 'Ð¡Ð±Ñ€Ð¾Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° поиÑка'; $lang['filter'] = 'Фильтр'; $lang['export_all'] = 'ÐкÑпорт вÑех пользователей (CSV)'; -$lang['export_filtered'] = 'ÐкÑпорт пользователей Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸ÐµÐ¹ ÑпиÑка (CSV)'; -$lang['import'] = 'Импорт новых пользователей'; +$lang['export_filtered'] = 'ÐкÑпорт отфильтрованного ÑпиÑка пользователей (CSV)'; +$lang['import'] = 'импортировать новых пользователей'; $lang['line'] = 'Строка â„–'; $lang['error'] = 'Ошибка'; $lang['summary'] = 'Показаны пользователи %1$d–%2$d из %3$d найденных. Ð’Ñего пользователей: %4$d.'; @@ -60,11 +61,11 @@ $lang['start'] = 'в начало'; $lang['prev'] = 'назад'; $lang['next'] = 'вперёд'; $lang['last'] = 'в конец'; -$lang['edit_usermissing'] = 'Выбранный пользователь не найден. Возможно, указанный логин был удалён или изменён извне.'; -$lang['user_notify'] = 'Сообщить пользователю'; -$lang['note_notify'] = 'ПиÑьма Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ выÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в Ñлучае Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ паролÑ.'; -$lang['note_group'] = 'ЕÑли группа не указана, новые пользователи будут добавлены в группу по умолчанию (%s).'; -$lang['note_pass'] = 'Пароль будет Ñгенерирован автоматичеÑки, еÑли поле оÑтавлено пуÑтым и включено уведомление пользователÑ.'; +$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'] = 'ПиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ отправлено'; @@ -72,7 +73,7 @@ $lang['notify_fail'] = 'Ðе удалоÑÑŒ отправить Ð¿Ð¸Ñ $lang['import_userlistcsv'] = 'Файл Ñо ÑпиÑком пользователей (CSV):'; $lang['import_header'] = 'ПоÑледний импорт — ÑпиÑок ошибок'; $lang['import_success_count'] = 'Импорт пользователей: %d пользователей найдено, %d импортировано уÑпешно.'; -$lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. СпиÑок ошибок прочтите ниже.'; +$lang['import_failure_count'] = 'Импорт пользователей: %d не удалоÑÑŒ. Ошибки перечиÑлены ниже.'; $lang['import_error_fields'] = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а нужно: 4.'; $lang['import_error_baduserid'] = 'ОтÑутÑтвует идентификатор пользователÑ'; $lang['import_error_badname'] = 'Ð˜Ð¼Ñ Ð½Ðµ годитÑÑ'; @@ -82,3 +83,10 @@ $lang['import_error_readfail'] = 'Импорт не удалÑÑ. Ðевозмо $lang['import_error_create'] = 'Ðевозможно Ñоздать пользователÑ'; $lang['import_notify_fail'] = 'Оповещение не может быть отправлено импортированному пользователю %s по Ñлектронной почте %s.'; $lang['import_downloadfailures'] = 'Скачать ошибки в формате CSV Ð´Ð»Ñ Ð¸ÑправлениÑ'; +$lang['addUser_error_missing_pass'] = 'Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти генерации паролÑ, пожалуйÑта, уÑтановите пароль или активируйте оповещениÑ.'; +$lang['addUser_error_pass_not_identical'] = 'Введённые ппароли не Ñовпадают.'; +$lang['addUser_error_modPass_disabled'] = 'Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð² наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; +$lang['addUser_error_name_missing'] = 'Укажите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пользователÑ.'; +$lang['addUser_error_modName_disabled'] = 'Изменение имени в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; +$lang['addUser_error_mail_missing'] = 'Укажите Ð°Ð´Ñ€ÐµÑ Ñл. почты нового пользователÑ.'; +$lang['addUser_error_modMail_disabled'] = 'Изменение e-mail в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.'; diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index 535f77972a9b93a8dfe785e33e0bb065b82bc462..a3ae713953e344484b60395829305dbe04179788 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -40,7 +40,7 @@ $lang['delete_ok'] = '%d užÃvateľov zmazaných'; $lang['delete_fail'] = '%d chýb vymazania.'; $lang['update_ok'] = 'UžÃvateľ úspeÅ¡ne zmenený'; $lang['update_fail'] = 'Chyba zmeny užÃvateľa'; -$lang['update_exists'] = 'Chyba zmeny užÃvateľa, užÃvateľské meno (%s) už existuje (iné zmeny budú zaznamenané).'; +$lang['update_exists'] = 'Chyba zmeny mena použÃvateľa, použÃvateľské meno (%s) už existuje (iné zmeny budú zaznamenané).'; $lang['start'] = 'prvé'; $lang['prev'] = 'predoÅ¡lé'; $lang['next'] = 'ÄalÅ¡ie'; diff --git a/lib/plugins/usermanager/lang/zh/lang.php b/lib/plugins/usermanager/lang/zh/lang.php index b833c6ce4650ab37846eb69b86afc9468aab8fb0..69d0c818907aa7bab2cdc3abbd8737ebac556b92 100644 --- a/lib/plugins/usermanager/lang/zh/lang.php +++ b/lib/plugins/usermanager/lang/zh/lang.php @@ -18,6 +18,7 @@ * @author Rachel <rzhang0802@gmail.com> * @author Yangyu Huang <yangyu.huang@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> + * @author Garfield <garfield_550@outlook.com> */ $lang['menu'] = '用户管ç†å™¨'; $lang['noauth'] = '(用户认è¯ä¸å¯ç”¨ï¼‰'; @@ -78,3 +79,11 @@ $lang['import_error_readfail'] = 'å¯¼å…¥å¤±è´¥ã€‚æ— æ³•è¯»å–ä¸Šä¼ çš„æ–‡ä»¶ã€‚' $lang['import_error_create'] = 'ä¸èƒ½åˆ›å»ºæ–°ç”¨æˆ·'; $lang['import_notify_fail'] = 'é€šçŸ¥æ¶ˆæ¯æ— 法å‘é€åˆ°å¯¼å…¥çš„用户 %s,电åé‚®ä»¶åœ°å€æ˜¯ %s。'; $lang['import_downloadfailures'] = '下载CSV的错误信æ¯ä»¥ä¿®æ£ã€‚'; +$lang['addUser_error_missing_pass'] = 'è¯·è®¾ç½®ä¸€ä¸ªå¯†ç æˆ–者激活用户通知æ¥å¯ç”¨å¯†ç 生æˆã€‚'; +$lang['addUser_error_pass_not_identical'] = '输入的密ç ä¸ç›¸åŒã€‚'; +$lang['addUser_error_modPass_disabled'] = '修改密ç å·²ç¦ç”¨'; +$lang['addUser_error_name_missing'] = '请为新用户输入一个åå—。'; +$lang['addUser_error_modName_disabled'] = '修改åå—å·²ç¦ç”¨'; +$lang['addUser_error_mail_missing'] = '请为新用户输入一个电å邮件地å€ã€‚'; +$lang['addUser_error_modMail_disabled'] = '修改邮件地å€å·²ç¦ç”¨'; +$lang['addUser_error_create_event_failed'] = '一个æ’件阻æ¢äº†æ·»åŠ æ–°ç”¨æˆ·ã€‚è¯·æŸ¥çœ‹å…¶å®ƒå¯èƒ½çš„æ¶ˆæ¯æ¥èŽ·å–æ›´å¤šä¿¡æ¯ã€‚'; diff --git a/lib/plugins/usermanager/plugin.info.txt b/lib/plugins/usermanager/plugin.info.txt index ae4f9b9ccab4ead43febf119ee0a153d1c65a830..607eca75f0de2350469fb0153a84318559371be8 100644 --- a/lib/plugins/usermanager/plugin.info.txt +++ b/lib/plugins/usermanager/plugin.info.txt @@ -1,7 +1,7 @@ base usermanager author Chris Smith email chris@jalakai.co.uk -date 2014-03-05 +date 2015-07-15 name User Manager desc Manage DokuWiki user accounts url http://dokuwiki.org/plugin:usermanager diff --git a/lib/plugins/usermanager/style.css b/lib/plugins/usermanager/style.css index d119b195a0475eb0cadb7143436f4cd9ec7f71d8..9028fed5eb58d0e66cd866864c50943d83c27442 100644 --- a/lib/plugins/usermanager/style.css +++ b/lib/plugins/usermanager/style.css @@ -17,7 +17,7 @@ padding-left: 0; padding-right: 1.4em; } -#user__manager input.button[disabled] { +#user__manager button[disabled] { color: #ccc!important; border-color: #ccc!important; } diff --git a/lib/scripts/behaviour.js b/lib/scripts/behaviour.js index fb61f6e48b4de063787f30c10ab9affbe18a5759..b05949a90533f97f6f094add3690dbeaeed60d76 100644 --- a/lib/scripts/behaviour.js +++ b/lib/scripts/behaviour.js @@ -1,37 +1,41 @@ /** * Hides elements with a slide animation * - * @param fn optional callback to run after hiding + * @param {function} fn optional callback to run after hiding + * @param {bool} noaria supress aria-expanded state setting * @author Adrian Lang <mail@adrianlang.de> */ -jQuery.fn.dw_hide = function(fn) { - this.attr('aria-expanded', 'false'); +jQuery.fn.dw_hide = function(fn, noaria) { + if(!noaria) this.attr('aria-expanded', 'false'); return this.slideUp('fast', fn); }; /** * Unhides elements with a slide animation * - * @param fn optional callback to run after hiding + * @param {function} fn optional callback to run after hiding + * @param {bool} noaria supress aria-expanded state setting * @author Adrian Lang <mail@adrianlang.de> */ -jQuery.fn.dw_show = function(fn) { - this.attr('aria-expanded', 'true'); +jQuery.fn.dw_show = function(fn, noaria) { + if(!noaria) this.attr('aria-expanded', 'true'); return this.slideDown('fast', fn); }; /** * Toggles visibility of an element using a slide element * - * @param bool the current state of the element (optional) + * @param {bool} state the current state of the element (optional) + * @param {function} fn callback after the state has been toggled + * @param {bool} noaria supress aria-expanded state setting */ -jQuery.fn.dw_toggle = function(bool, fn) { +jQuery.fn.dw_toggle = function(state, fn, noaria) { return this.each(function() { var $this = jQuery(this); - if (typeof bool === 'undefined') { - bool = $this.is(':hidden'); + if (typeof state === 'undefined') { + state = $this.is(':hidden'); } - $this[bool ? "dw_show" : "dw_hide" ](fn); + $this[state ? "dw_show" : "dw_hide" ](fn, noaria); }); }; @@ -107,7 +111,7 @@ var dw_behaviour = { quickSelect: function(){ jQuery('select.quickselect') .change(function(e){ e.target.form.submit(); }) - .closest('form').find('input[type=submit]').not('.show').hide(); + .closest('form').find(':button').not('.show').hide(); }, /** @@ -171,10 +175,10 @@ var dw_behaviour = { if($checked.length < 2){ $all.attr('disabled',false); - jQuery('#page__revisions input[type=submit]').attr('disabled',true); + jQuery('#page__revisions button').attr('disabled',true); }else{ $all.attr('disabled',true); - jQuery('#page__revisions input[type=submit]').attr('disabled',false); + jQuery('#page__revisions button').attr('disabled',false); for(var i=0; i<$checked.length; i++){ $checked[i].disabled = false; if(i>1){ diff --git a/lib/scripts/compatibility.js b/lib/scripts/compatibility.js index fc020cce80845d7207009b4437d60098ee06b1e5..154aeadf7266fe31697c43b759c15c2c53a2a48b 100644 --- a/lib/scripts/compatibility.js +++ b/lib/scripts/compatibility.js @@ -40,398 +40,3 @@ function DEPRECATED_WRAP(func, context) { return func.apply(context || this, arguments); }; } - -/** - * Handy shortcut to document.getElementById - * - * This function was taken from the prototype library - * - * @link http://prototype.conio.net/ - */ -function $() { - DEPRECATED('Please use the jQuery() function instead.'); - - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} - - - - -var index = { - throbber_delay: dw_index.throbber_delay, - toggle: DEPRECATED_WRAP(dw_index.toggle, dw_index), - treeattach: DEPRECATED_WRAP(dw_index.treeattach, dw_index) -}; - -var ajax_quicksearch = { - init: function() { - DEPRECATED('Use jQuery().dw_qsearch() instead'); - jQuery('#qsearch__in').dw_qsearch({ - output: '#qsearch__out' - }); - }, - clear_results: function() { - DEPRECATED('ajax_quicksearch.clear_results is removed'); - }, - onCompletion: function() { - DEPRECATED('ajax_quicksearch.onCompletion is removed'); - } -}; -var dw_qsearch = { - init: function(input, output) { - DEPRECATED('Use jQuery().dw_qsearch() instead'); - jQuery(input).dw_qsearch({ - output: output - }); - }, - clear_results: function() { - DEPRECATED('dw_qsearch.clear_results is removed'); - }, - onCompletion: function() { - DEPRECATED('dw_qsearch.onCompletion is removed'); - } -}; - -var linkwiz = { - init: DEPRECATED_WRAP(dw_linkwiz.init, dw_linkwiz), - onEntry: DEPRECATED_WRAP(dw_linkwiz.onEntry, dw_linkwiz), - getResult: DEPRECATED_WRAP(dw_linkwiz.getResult, dw_linkwiz), - select: DEPRECATED_WRAP(dw_linkwiz.select, dw_linkwiz), - deselect: DEPRECATED_WRAP(dw_linkwiz.deselect, dw_linkwiz), - onResultClick: DEPRECATED_WRAP(dw_linkwiz.onResultClick, dw_linkwiz), - resultClick: DEPRECATED_WRAP(dw_linkwiz.resultClick, dw_linkwiz), - insertLink: DEPRECATED_WRAP(dw_linkwiz.insertLink, dw_linkwiz), - autocomplete: DEPRECATED_WRAP(dw_linkwiz.autocomplete, dw_linkwiz), - autocomplete_exec: DEPRECATED_WRAP(dw_linkwiz.autocomplete_exec, dw_linkwiz), - show: DEPRECATED_WRAP(dw_linkwiz.show, dw_linkwiz), - hide: DEPRECATED_WRAP(dw_linkwiz.hide, dw_linkwiz), - toggle: DEPRECATED_WRAP(dw_linkwiz.toggle, dw_linkwiz) -}; - -var locktimer = { - init: DEPRECATED_WRAP(dw_locktimer.init, dw_locktimer), - reset: DEPRECATED_WRAP(dw_locktimer.reset, dw_locktimer), - warning: DEPRECATED_WRAP(dw_locktimer.warning, dw_locktimer), - clear: DEPRECATED_WRAP(dw_locktimer.clear, dw_locktimer), - refresh: DEPRECATED_WRAP(dw_locktimer.refresh, dw_locktimer), - refreshed: DEPRECATED_WRAP(dw_locktimer.refreshed, dw_locktimer) -}; - -var media_manager = { - // treeattach, selectorattach, confirmattach are munched together into - // dw_mediamanager.init - attachoptions: DEPRECATED_WRAP(dw_mediamanager.attachoptions, dw_mediamanager), - togglekeepopen: function (event, cb) { - DEPRECATED('Use dw_mediamanager.toggleOption instead'); - return dw_mediamanager.toggleOption.call(cb, 'keepopen'); - }, - togglehide: function (event, cb) { - DEPRECATED('Use dw_mediamanager.toggleOption instead'); - return dw_mediamanager.toggleOption.call(cb, 'hide'); - }, - updatehide: DEPRECATED_WRAP(dw_mediamanager.updatehide, dw_mediamanager), - select: function (event, link) { - DEPRECATED('Use dw_mediamanager.select instead'); - return dw_mediamanager.select.call(link, event); - }, - initpopup: DEPRECATED_WRAP(dw_mediamanager.initpopup, dw_mediamanager), - insert: DEPRECATED_WRAP(dw_mediamanager.insert, dw_mediamanager), - list: function (event, link) { - DEPRECATED('Use dw_mediamanager.list instead'); - return dw_mediamanager.list.call(link, event); - }, - // toggle is handled by dw_tree - suggest: DEPRECATED_WRAP(dw_mediamanager.suggest, dw_mediamanager), - initFlashUpload: DEPRECATED_WRAP(dw_mediamanager.initFlashUpload, dw_mediamanager), - closePopup: function () { - DEPRECATED(); - dw_mediamanager.$popup.dialog('close'); - }, - setalign: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'align', event); - }, - setlink: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'link', event); - }, - setsize: function (event, cb) { - DEPRECATED('Use dw_mediamanager.setOpt instead'); - return dw_mediamanager.setOpt.call(this, 'size', event); - }, - outSet: function (id) { - DEPRECATED(); - return jQuery(id).removeClass('selected'); - }, - inSet: function (id) { - DEPRECATED(); - return jQuery(id).addClass('selected'); - } -}; - -initSizeCtl = DEPRECATED_WRAP(dw_editor.initSizeCtl); -sizeCtl = DEPRECATED_WRAP(dw_editor.sizeCtl); -toggleWrap = DEPRECATED_WRAP(dw_editor.toggleWrap); -setWrap = DEPRECATED_WRAP(dw_editor.setWrap); - -function findPosX(object){ - DEPRECATED('Use jQuery.offset() instead'); - return jQuery(object).offset().left; -} - -function findPosY(object){ - DEPRECATED('Use jQuery.offset() instead'); - return jQuery(object).offset().top; -} - -function getElementsByClass(searchClass,node,tag){ - DEPRECATED('Use jQuery() instead'); - if(node == null) node = document; - if(typeof tag === 'undefined') tag = ''; - return jQuery(node).find(tag+'.'+searchClass).toArray(); -} - -function prependChild(parent,element) { - DEPRECATED('Use jQuery.prepend() instead'); - jQuery(parent).prepend(element); -} - -function addEvent(element, type, handler) { - DEPRECATED('Use jQuery.bind() instead. Note that jQuery’s behaviour' + - ' when a handler returns false differs from addEvent’s'); - jQuery(element).bind(type,{},function (e) { - // returning false in an addEvent event handler did not prevent - // bubbling but just canceled handlers on this node and prevented - // default behavior, so wrap the handler call and mimic that behavior. - // - // Refer to jQuery.event.handle(). - var ret = handler.apply(this, Array.prototype.slice.call(arguments, 0)); - if (typeof ret !== 'undefined') { - if ( ret !== false ) { - return ret; - } - // What jQuery does. - e.result = ret; - e.preventDefault(); - // Not what jQuery does. This would be: event.stopPropagation(); - // Hack it so that immediate propagation (other event handlers on - // this element) appears stopped without stopping the actual - // propagation (bubbling) - e.isImmediatePropagationStopped = function () { return true; }; - } - }); -} - -function removeEvent(element, type, handler) { - DEPRECATED('Use jQuery.unbind() instead.'); - jQuery(element).unbind(type,handler); -} - -function addInitEvent(func) { - DEPRECATED('Use jQuery(<function>) instead'); - jQuery(func); -} - - -function jsEscape(text){ - DEPRECATED('Insert text through jQuery.text() instead of escaping on your own'); - var re=new RegExp("\\\\","g"); - text=text.replace(re,"\\\\"); - re=new RegExp("'","g"); - text=text.replace(re,"\\'"); - re=new RegExp('"',"g"); - text=text.replace(re,'"'); - re=new RegExp("\\\\\\\\n","g"); - text=text.replace(re,"\\n"); - return text; -} - -/** - * Simple function to check if a global var is defined - * - * @author Kae Verens - * @link http://verens.com/archives/2005/07/25/isset-for-javascript/#comment-2835 - */ -function isset(varname){ - DEPRECATED("Use `typeof var !== 'undefined'` instead"); - return(typeof(window[varname])!='undefined'); -} - -/** - * Checks if property is undefined - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isUndefined (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'undefined'` instead"); - return (typeof prop == 'undefined'); -} - -/** - * Checks if property is function - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isFunction (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'function'` instead"); - return (typeof prop == 'function'); -} -/** - * Checks if property is string - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isString (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'string'` instead"); - return (typeof prop == 'string'); -} - -/** - * Checks if property is number - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isNumber (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'number'` instead"); - return (typeof prop == 'number'); -} - -/** - * Checks if property is the calculable number - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isNumeric (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'number' && !isNaN(var) && isFinite(var)` instead"); - return isNumber(prop)&&!isNaN(prop)&&isFinite(prop); -} - -/** - * Checks if property is array - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isArray (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `var instanceof Array` instead"); - return (prop instanceof Array); -} - -/** - * Checks if property is regexp - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isRegExp (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `var instanceof RegExp` instead"); - return (prop instanceof RegExp); -} - -/** - * Checks if property is a boolean value - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isBoolean (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'boolean'` instead"); - return ('boolean' == typeof prop); -} - -/** - * Checks if property is a scalar value (value that could be used as the hash key) - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isScalar (prop /* :Object */) /* :Boolean */ { - DEPRECATED("Use `typeof var === 'string' || (typeof var === 'number' &&" + - " !isNaN(var) && isFinite(var))` instead"); - return isNumeric(prop)||isString(prop); -} - -/** - * Checks if property is empty - * - * @param {Object} prop value to check - * @return {Boolean} true if matched - * @scope public - * @author Ilya Lebedev <ilya@lebedev.net> - */ -function isEmpty (prop /* :Object */) /* :Boolean */ { - DEPRECATED(); - var i; - if (isBoolean(prop)) { - return false; - } else if (isRegExp(prop) && new RegExp("").toString() == prop.toString()) { - return true; - } else if (isString(prop) || isNumber(prop)) { - return !prop; - } else if (Boolean(prop) && false != prop) { - for (i in prop) { - if(prop.hasOwnProperty(i)) { - return false; - } - } - } - return true; -} - -/** - * Get the computed style of a node. - * - * @link https://acidmartin.wordpress.com/2008/08/26/style-get-any-css-property-value-of-an-object/ - * @link http://svn.dojotoolkit.org/src/dojo/trunk/_base/html.js - */ -function gcs(node){ - DEPRECATED('Use jQuery(node).style() instead'); - if(node.currentStyle){ - return node.currentStyle; - }else{ - return node.ownerDocument.defaultView.getComputedStyle(node, null); - } -} - -/** - * Until 2011-05-25 "Rincewind", a code intended to fix some Safari issue - * always declared the global _timer. plugin:sortablejs relies on _timer - * being declared. - */ -var _timer; diff --git a/lib/scripts/drag.js b/lib/scripts/drag.js deleted file mode 100644 index dd252d95d5a13690c7871168e367b5697a914400..0000000000000000000000000000000000000000 --- a/lib/scripts/drag.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Makes a DOM object draggable - * - * 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. - * - * @deprecated - * @link http://nofunc.org/Drag_Drop/ - */ -var drag = { - obj: null, - handle: null, - oX: 0, // object X position - oY: 0, // object Y position - eX: 0, // event X delta - eY: 0, // event Y delta - - /** - * Attaches the needed handlers to the given object - * - * This can be called for multiple objects, the right one is later - * determined from the event itself. The handle is optional - * - * @param DOMObject obj The object that should be draggable - * @param DOMObject handle A handle on which the obj can be dragged - */ - attach: function (obj,handle) { - DEPRECATED('Use jQuery.draggable() instead.'); - if(handle){ - handle.dragobject = obj; - }else{ - handle = obj; - } - var _this = this; - addEvent($(handle),'mousedown',function (e) {return _this.start(e); }); - }, - - /** - * Starts the dragging operation - */ - start: function (e){ - this.handle = e.target; - if(this.handle.dragobject){ - this.obj = this.handle.dragobject; - }else{ - this.obj = this.handle; - } - - this.handle.className += ' ondrag'; - this.obj.className += ' ondrag'; - - this.oX = parseInt(this.obj.style.left); - this.oY = parseInt(this.obj.style.top); - this.eX = e.pageX; - this.eY = e.pageY; - - 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]); - - return false; - }, - - /** - * Ends the dragging operation - */ - stop: function(){ - 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(this.obj) { - this.obj.style.top = (e.pageY+this.oY-this.eY+'px'); - this.obj.style.left = (e.pageX+this.oX-this.eX+'px'); - } - } -}; diff --git a/lib/scripts/editor.js b/lib/scripts/editor.js index f4143f0bc20a9edd9cb53bddb23af6bf81ac4397..fac084489246a7dc73987e5c360f5d82701fc79c 100644 --- a/lib/scripts/editor.js +++ b/lib/scripts/editor.js @@ -146,7 +146,7 @@ var dw_editor = { if((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) { // Ctrl-Enter (With Chrome workaround) // Submit current edit - jQuery('input#edbtn__save').click(); + jQuery('#edbtn__save').click(); e.preventDefault(); // prevent enter key return false; }else if(e.keyCode == 13){ // Enter diff --git a/lib/scripts/fileuploaderextended.js b/lib/scripts/fileuploaderextended.js index f5786c387dbcb9a5c55f8f7b428c32cbf5e7737a..d6a82397d7e5a6c2e705123775f95e1d689130f3 100644 --- a/lib/scripts/fileuploaderextended.js +++ b/lib/scripts/fileuploaderextended.js @@ -82,7 +82,7 @@ qq.FileUploaderExtended = function(o){ '<div class="qq-upload-button">' + LANG.media_select + '</div>' + '<ul class="qq-upload-list"></ul>' + '<div class="qq-action-container">' + - ' <input class="qq-upload-action button" type="submit" value="' + LANG.media_upload_btn + '" id="mediamanager__upload_button">' + + ' <button class="qq-upload-action" type="submit" id="mediamanager__upload_button">' + LANG.media_upload_btn + '</button>' + ' <label class="qq-overwrite-check"><input type="checkbox" value="1" name="ow" class="dw__ow"> <span>' + LANG.media_overwrt + '</span></label>' + '</div>' + '</div>', @@ -189,7 +189,7 @@ qq.extend(qq.FileUploaderExtended.prototype, { var button = '<form method="post" action="' + action + '" id="mediamanager__done_form"><div>'; button += '<input type="hidden" value="' + result.ns + '" name="ns">'; button += '<input type="hidden" value="1" name="recent">'; - button += '<input class="button" type="submit" value="' + LANG.media_done_btn + '"></div></form>'; + button += '<button type="submit">' + LANG.media_done_btn + '</button></div></form>'; jQuery('#mediamanager__uploader').append(button); } } diff --git a/lib/scripts/hotkeys.js b/lib/scripts/hotkeys.js index bff28530d240d70bba0c34d1b8974d4344e4bcd8..76a277aea2ad6b09e7d2850def2b16678b58d90d 100644 --- a/lib/scripts/hotkeys.js +++ b/lib/scripts/hotkeys.js @@ -26,7 +26,7 @@ function Hotkeys() { * Initialization * * This function looks up all the accesskeys used in the current page - * (at anchor elements and input elements [type="submit"]) and registers + * (at anchor elements and button elements [type="submit"]) and registers * appropriate shortcuts. * * Secondly, initialization registers listeners on document to catch all @@ -59,10 +59,10 @@ function Hotkeys() { }); /** - * Lookup all input [type="submit"] with accesskey and register event - + * Lookup all button [type="submit"] with accesskey and register event - * perform "click" on a button. */ - var inputs = document.getElementsByTagName("input"); + var inputs = document.getElementsByTagName("button"); t.each(inputs, function(i) { if (i.type == "submit" && i.accessKey != "") { t.addShortcut(t.modifier + '+' + i.accessKey, function() { diff --git a/lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif b/lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif deleted file mode 100644 index d441f75ebfbdf26a265dfccd670120d25c0a341c..0000000000000000000000000000000000000000 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif and /dev/null differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png index f5c2d583d93997fbd38481147839de401555b1d5..03b1d721659c41bb2e6ba452c214ce17b7c79611 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png index e36540bbf980dbc5369cef72757e55fdebc9177d..882c78c4f389908c4211b7b54eab4a5dabcc8031 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png index 8225e3e18446872ddaffb9f1540e88e9487407e8..e17b8809cab832ba9cb4518a4bcbd598747e3c77 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png index 3e56dbdca70d7f64ba34ff09e09546614800000b..de3b7cc4d70392be37c496b40c853bf78b39a983 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png index d5265f4dd28a8827ddda4727345df0d8e30577c2..74ff8a2f52a8e40dadde8c4337c4b9d5cabef808 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png index 1d509f45a5f10257d185c44e5e0cf02f80810bdf..08cf4c38aa14cb03b4d307749bd8538a4629e821 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png index 38349845c5df7d8d112db784544837c3fa168747..e7b6f8322735075b05c7d436a23d55c7368b7892 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png index a374f750106646d810861a41412ca62376cc59d7..fea66d4dd97d03924cb5296c80bd5459dcbb5c57 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png index a13f9b4dd243bb8ef4a9475f1f293bd779a7d98a..e556b9a90b19e71d08950599014c86d344e54a87 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png index 945c3d704b777a5a83f0e18109f504baf9e89994..54f652fec05082143f8e400e322590fe0d5120aa 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png index 60ec1c692f45cd72b780dd01ab7df49d61e62e2c..1a2b52e8991536267f7e10ebb27048b1e1d1768f 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png index 48de3ed6b0801b233683d4108b0802a2eb565ddd..88c31424bb54f423de5ed12c52bd3ccf4c27080a 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png index b987966e0bb6d52c49d61159946d0466cabe1997..8da7fb0823e83fe8606c02f64905fa144c447d86 100644 Binary files a/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png and b/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png differ diff --git a/lib/scripts/jquery/jquery-ui-theme/smoothness.css b/lib/scripts/jquery/jquery-ui-theme/smoothness.css index 93a79cad2dce85399e74ecb7a99935935c93682e..2fa859a43b6573f783aa1e742212fe23c23920e8 100644 --- a/lib/scripts/jquery/jquery-ui-theme/smoothness.css +++ b/lib/scripts/jquery/jquery-ui-theme/smoothness.css @@ -1,8 +1,8 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ /* Layout helpers ----------------------------------*/ @@ -48,7 +48,7 @@ left: 0; position: absolute; opacity: 0; - filter:Alpha(Opacity=0); + filter:Alpha(Opacity=0); /* support: IE8 */ } .ui-front { @@ -274,7 +274,7 @@ button.ui-button::-moz-focus-inner { } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { - width: 49%; + width: 45%; } .ui-datepicker table { width: 100%; @@ -514,9 +514,9 @@ button.ui-button::-moz-focus-inner { height: 100%; } .ui-progressbar .ui-progressbar-overlay { - background: url("images/animated-overlay.gif"); + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); height: 100%; - filter: alpha(opacity=25); + filter: alpha(opacity=25); /* support: IE8 */ opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { @@ -672,7 +672,7 @@ button.ui-button::-moz-focus-inner { background-position: 0 0; } -/* For IE8 - See #6727 */ +/* support: IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; @@ -954,18 +954,18 @@ body .ui-tooltip { .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; - filter:Alpha(Opacity=70); + filter:Alpha(Opacity=70); /* support: IE8 */ font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; - filter:Alpha(Opacity=35); + filter:Alpha(Opacity=35); /* support: IE8 */ background-image: none; } .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ } /* Icons @@ -1213,13 +1213,13 @@ body .ui-tooltip { .ui-widget-overlay { background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3; - filter: Alpha(Opacity=30); + filter: Alpha(Opacity=30); /* support: IE8 */ } .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3; - filter: Alpha(Opacity=30); + filter: Alpha(Opacity=30); /* support: IE8 */ border-radius: 8px; } diff --git a/lib/scripts/jquery/jquery-ui.js b/lib/scripts/jquery/jquery-ui.js index 670e39a8f96e55cac280d4d91318daafd5a73a9e..31ee9cd8116b6b65683351c782446eb7ee48cf15 100644 --- a/lib/scripts/jquery/jquery-ui.js +++ b/lib/scripts/jquery/jquery-ui.js @@ -1,7 +1,7 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ (function( factory ) { if ( typeof define === "function" && define.amd ) { @@ -15,10 +15,10 @@ } }(function( $ ) { /*! - * jQuery UI Core 1.11.0 + * jQuery UI Core 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -30,7 +30,7 @@ $.ui = $.ui || {}; $.extend( $.ui, { - version: "1.11.0", + version: "1.11.4", keyCode: { BACKSPACE: 8, @@ -54,15 +54,16 @@ $.extend( $.ui, { // plugins $.fn.extend({ - scrollParent: function() { + scrollParent: function( includeHidden ) { var position = this.css( "position" ), excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, scrollParent = this.parents().filter( function() { var parent = $( this ); if ( excludeStaticParent && parent.css( "position" ) === "static" ) { return false; } - return (/(auto|scroll)/).test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); }).eq( 0 ); return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; @@ -99,10 +100,10 @@ function focusable( element, isTabIndexNotNaN ) { if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { return false; } - img = $( "img[usemap=#" + mapName + "]" )[0]; + img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; return !!img && visible( img ); } - return ( /input|select|textarea|button|object/.test( nodeName ) ? + return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? !element.disabled : "a" === nodeName ? element.href || isTabIndexNotNaN : @@ -308,10 +309,10 @@ $.ui.plugin = { /*! - * jQuery UI Widget 1.11.0 + * jQuery UI Widget 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -324,11 +325,18 @@ var widget_uuid = 0, $.cleanData = (function( orig ) { return function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { try { - $( elem ).triggerHandler( "remove" ); + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + // http://bugs.jquery.com/ticket/8235 - } catch( e ) {} + } catch ( e ) {} } orig( elems ); }; @@ -482,11 +490,6 @@ $.widget.bridge = function( name, object ) { args = widget_slice.call( arguments, 1 ), returnValue = this; - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.widget.extend.apply( null, [ options ].concat(args) ) : - options; - if ( isMethodCall ) { this.each(function() { var methodValue, @@ -511,6 +514,12 @@ $.widget.bridge = function( name, object ) { } }); } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + this.each(function() { var instance = $.data( this, fullName ); if ( instance ) { @@ -546,10 +555,6 @@ $.Widget.prototype = { this.element = $( element ); this.uuid = widget_uuid++; this.eventNamespace = "." + this.widgetName + this.uuid; - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); this.bindings = $(); this.hoverable = $(); @@ -572,6 +577,11 @@ $.Widget.prototype = { this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); } + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + this._create(); this._trigger( "create", null, this._getCreateEventData() ); this._init(); @@ -734,8 +744,14 @@ $.Widget.prototype = { }, _off: function( element, eventName ) { - eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); }, _delay: function( handler, delay ) { @@ -841,10 +857,10 @@ var widget = $.widget; /*! - * jQuery UI Mouse 1.11.0 + * jQuery UI Mouse 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -858,7 +874,7 @@ $( document ).mouseup( function() { }); var mouse = $.widget("ui.mouse", { - version: "1.11.0", + version: "1.11.4", options: { cancel: "input,textarea,button,select,option", distance: 1, @@ -899,6 +915,8 @@ var mouse = $.widget("ui.mouse", { return; } + this._mouseMoved = false; + // we may have missed mouseup (out of window) (this._mouseStarted && this._mouseUp(event)); @@ -952,13 +970,23 @@ var mouse = $.widget("ui.mouse", { }, _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { - return this._mouseUp(event); + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { + return this._mouseUp(event); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + return this._mouseUp( event ); + } + } - // Iframe mouseup check - mouseup occurred in another document - } else if ( !event.which ) { - return this._mouseUp( event ); + if ( event.which || event.button ) { + this._mouseMoved = true; } if (this._mouseStarted) { @@ -1015,10 +1043,10 @@ var mouse = $.widget("ui.mouse", { /*! - * jQuery UI Position 1.11.0 + * jQuery UI Position 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -1129,8 +1157,11 @@ $.position = { offset: withinElement.offset() || { left: 0, top: 0 }, scrollLeft: withinElement.scrollLeft(), scrollTop: withinElement.scrollTop(), - width: isWindow ? withinElement.width() : withinElement.outerWidth(), - height: isWindow ? withinElement.height() : withinElement.outerHeight() + + // support: jQuery 1.6.x + // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows + width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), + height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() }; } }; @@ -1451,12 +1482,12 @@ $.ui.position = { newOverBottom; if ( overTop < 0 ) { newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; - if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) { + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { position.top += myOffset + atOffset + offset; } } else if ( overBottom > 0 ) { newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; - if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) { + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { position.top += myOffset + atOffset + offset; } } @@ -1519,10 +1550,10 @@ var position = $.ui.position; /*! - * jQuery UI Accordion 1.11.0 + * jQuery UI Accordion 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -1531,7 +1562,7 @@ var position = $.ui.position; var accordion = $.widget( "ui.accordion", { - version: "1.11.0", + version: "1.11.4", options: { active: 0, animate: {}, @@ -1765,13 +1796,22 @@ var accordion = $.widget( "ui.accordion", { }, _processPanels: function() { + var prevHeaders = this.headers, + prevPanels = this.panels; + this.headers = this.element.find( this.options.header ) .addClass( "ui-accordion-header ui-state-default ui-corner-all" ); - this.headers.next() + this.panels = this.headers.next() .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) .filter( ":not(.ui-accordion-content-active)" ) .hide(); + + // Avoid memory leaks (#10056) + if ( prevPanels ) { + this._off( prevHeaders.not( this.headers ) ); + this._off( prevPanels.not( this.panels ) ); + } }, _refresh: function() { @@ -1980,7 +2020,10 @@ var accordion = $.widget( "ui.accordion", { toHide.attr({ "aria-hidden": "true" }); - toHide.prev().attr( "aria-selected", "false" ); + toHide.prev().attr({ + "aria-selected": "false", + "aria-expanded": "false" + }); // if we're switching panels, remove the old header from the tab order // if we're opening from collapsed state, remove the previous header from the tab order // if we're collapsing, then keep the collapsing header in the tab order @@ -1991,7 +2034,7 @@ var accordion = $.widget( "ui.accordion", { }); } else if ( toShow.length ) { this.headers.filter(function() { - return $( this ).attr( "tabIndex" ) === 0; + return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; }) .attr( "tabIndex", -1 ); } @@ -2001,8 +2044,8 @@ var accordion = $.widget( "ui.accordion", { .prev() .attr({ "aria-selected": "true", - tabIndex: 0, - "aria-expanded": "true" + "aria-expanded": "true", + tabIndex: 0 }); }, @@ -2010,6 +2053,7 @@ var accordion = $.widget( "ui.accordion", { var total, easing, duration, that = this, adjust = 0, + boxSizing = toShow.css( "box-sizing" ), down = toShow.length && ( !toHide.length || ( toShow.index() < toHide.index() ) ), animate = this.options.animate || {}, @@ -2052,7 +2096,9 @@ var accordion = $.widget( "ui.accordion", { step: function( now, fx ) { fx.now = Math.round( now ); if ( fx.prop !== "height" ) { - adjust += fx.now; + if ( boxSizing === "content-box" ) { + adjust += fx.now; + } } else if ( that.options.heightStyle !== "content" ) { fx.now = Math.round( total - toHide.outerHeight() - adjust ); adjust = 0; @@ -2080,10 +2126,10 @@ var accordion = $.widget( "ui.accordion", { /*! - * jQuery UI Menu 1.11.0 + * jQuery UI Menu 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -2092,7 +2138,7 @@ var accordion = $.widget( "ui.accordion", { var menu = $.widget( "ui.menu", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<ul>", delay: 300, options: { @@ -2167,6 +2213,12 @@ var menu = $.widget( "ui.menu", { } }, "mouseenter .ui-menu-item": function( event ) { + // Ignore mouse events while typeahead is active, see #10458. + // Prevents focusing the wrong item when typeahead causes a scroll while the mouse + // is over an item in the menu + if ( this.previousFilter ) { + return; + } var target = $( event.currentTarget ); // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border @@ -2246,13 +2298,9 @@ var menu = $.widget( "ui.menu", { }, _keydown: function( event ) { - var match, prev, character, skip, regex, + var match, prev, character, skip, preventDefault = true; - function escape( value ) { - return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); - } - switch ( event.keyCode ) { case $.ui.keyCode.PAGE_UP: this.previousPage( event ); @@ -2301,10 +2349,7 @@ var menu = $.widget( "ui.menu", { character = prev + character; } - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.find( this.options.items ).filter(function() { - return regex.test( $( this ).text() ); - }); + match = this._filterMenuItems( character ); match = skip && match.index( this.active.next() ) !== -1 ? this.active.nextAll( ".ui-menu-item" ) : match; @@ -2313,22 +2358,15 @@ var menu = $.widget( "ui.menu", { // to move down the menu to the first item that starts with that character if ( !match.length ) { character = String.fromCharCode( event.keyCode ); - regex = new RegExp( "^" + escape( character ), "i" ); - match = this.activeMenu.find( this.options.items ).filter(function() { - return regex.test( $( this ).text() ); - }); + match = this._filterMenuItems( character ); } if ( match.length ) { this.focus( event, match ); - if ( match.length > 1 ) { - this.previousFilter = character; - this.filterTimer = this._delay(function() { - delete this.previousFilter; - }, 1000 ); - } else { + this.previousFilter = character; + this.filterTimer = this._delay(function() { delete this.previousFilter; - } + }, 1000 ); } else { delete this.previousFilter; } @@ -2700,15 +2738,29 @@ var menu = $.widget( "ui.menu", { this.collapseAll( event, true ); } this._trigger( "select", event, ui ); + }, + + _filterMenuItems: function(character) { + var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ), + regex = new RegExp( "^" + escapedCharacter, "i" ); + + return this.activeMenu + .find( this.options.items ) + + // Only match on items, not dividers or other content (#10571) + .filter( ".ui-menu-item" ) + .filter(function() { + return regex.test( $.trim( $( this ).text() ) ); + }); } }); /*! - * jQuery UI Autocomplete 1.11.0 + * jQuery UI Autocomplete 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -2717,7 +2769,7 @@ var menu = $.widget( "ui.menu", { $.widget( "ui.autocomplete", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<input>", options: { appendTo: null, @@ -2820,7 +2872,9 @@ $.widget( "ui.autocomplete", { break; case keyCode.ESCAPE: if ( this.menu.element.is( ":visible" ) ) { - this._value( this.term ); + if ( !this.isMultiLine ) { + this._value( this.term ); + } this.close( event ); // Different browsers have different default behavior for escape // Single press can mean undo or clear @@ -2956,7 +3010,7 @@ $.widget( "ui.autocomplete", { // Announce the value in the liveRegion label = ui.item.attr( "aria-label" ) || item.value; - if ( label && jQuery.trim( label ).length ) { + if ( label && $.trim( label ).length ) { this.liveRegion.children().hide(); $( "<div>" ).text( label ).appendTo( this.liveRegion ); } @@ -3315,10 +3369,10 @@ var autocomplete = $.ui.autocomplete; /*! - * jQuery UI Button 1.11.0 + * jQuery UI Button 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -3354,7 +3408,7 @@ var lastActive, }; $.widget( "ui.button", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<button>", options: { disabled: null, @@ -3650,7 +3704,7 @@ $.widget( "ui.button", { }); $.widget( "ui.buttonset", { - version: "1.11.0", + version: "1.11.4", options: { items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" }, @@ -3712,10 +3766,10 @@ var button = $.ui.button; /*! - * jQuery UI Datepicker 1.11.0 + * jQuery UI Datepicker 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -3723,7 +3777,7 @@ var button = $.ui.button; */ -$.extend($.ui, { datepicker: { version: "1.11.0" } }); +$.extend($.ui, { datepicker: { version: "1.11.4" } }); var datepicker_instActive; @@ -4089,6 +4143,10 @@ $.extend(Datepicker.prototype, { } else if (nodeName === "div" || nodeName === "span") { $target.removeClass(this.markerClassName).empty(); } + + if ( datepicker_instActive === inst ) { + datepicker_instActive = null; + } }, /* Enable the date picker to a jQuery selection. @@ -4499,12 +4557,16 @@ $.extend(Datepicker.prototype, { datepicker_instActive = inst; // for delegate hover events inst.dpDiv.empty().append(this._generateHTML(inst)); this._attachHandlers(inst); - inst.dpDiv.find("." + this._dayOverClass + " a"); var origyearshtml, numMonths = this._getNumberOfMonths(inst), cols = numMonths[1], - width = 17; + width = 17, + activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); + + if ( activeCell.length > 0 ) { + datepicker_handleMouseover.apply( activeCell.get( 0 ) ); + } inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); if (cols > 1) { @@ -4838,7 +4900,8 @@ $.extend(Datepicker.prototype, { var isDoubled = lookAhead(match), size = (match === "@" ? 14 : (match === "!" ? 20 : (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), - digits = new RegExp("^\\d{1," + size + "}"), + minSize = (match === "y" ? size : 1), + digits = new RegExp("^\\d{" + minSize + "," + size + "}"), num = value.substring(iValue).match(digits); if (!num) { throw "Missing number at position " + iValue; @@ -5699,18 +5762,20 @@ function datepicker_bindHover(dpDiv) { $(this).removeClass("ui-datepicker-next-hover"); } }) - .delegate(selector, "mouseover", function(){ - if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? dpDiv.parent()[0] : datepicker_instActive.input[0])) { - $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - $(this).addClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).addClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).addClass("ui-datepicker-next-hover"); - } - } - }); + .delegate( selector, "mouseover", datepicker_handleMouseover ); +} + +function datepicker_handleMouseover() { + if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { + $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); + $(this).addClass("ui-state-hover"); + if (this.className.indexOf("ui-datepicker-prev") !== -1) { + $(this).addClass("ui-datepicker-prev-hover"); + } + if (this.className.indexOf("ui-datepicker-next") !== -1) { + $(this).addClass("ui-datepicker-next-hover"); + } + } } /* jQuery extend now ignores nulls! */ @@ -5766,16 +5831,16 @@ $.fn.datepicker = function(options){ $.datepicker = new Datepicker(); // singleton instance $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.11.0"; +$.datepicker.version = "1.11.4"; var datepicker = $.datepicker; /*! - * jQuery UI Draggable 1.11.0 + * jQuery UI Draggable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -5784,7 +5849,7 @@ var datepicker = $.datepicker; $.widget("ui.draggable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "drag", options: { addClasses: true, @@ -5819,8 +5884,8 @@ $.widget("ui.draggable", $.ui.mouse, { }, _create: function() { - if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) { - this.element[0].style.position = "relative"; + if ( this.options.helper === "original" ) { + this._setPositionRelative(); } if (this.options.addClasses){ this.element.addClass("ui-draggable"); @@ -5836,6 +5901,7 @@ $.widget("ui.draggable", $.ui.mouse, { _setOption: function( key, value ) { this._super( key, value ); if ( key === "handle" ) { + this._removeHandleClassName(); this._setHandleClassName(); } }, @@ -5851,20 +5917,9 @@ $.widget("ui.draggable", $.ui.mouse, { }, _mouseCapture: function(event) { + var o = this.options; - var document = this.document[ 0 ], - o = this.options; - - // support: IE9 - // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> - try { - // Support: IE9+ - // If the <body> is blurred, IE will switch windows, see #9520 - if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { - // Blur any element that currently has focus, see #4261 - $( document.activeElement ).blur(); - } - } catch ( error ) {} + this._blurActiveElement( event ); // among others, prevent a drag on a resizable-handle if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { @@ -5877,20 +5932,54 @@ $.widget("ui.draggable", $.ui.mouse, { return false; } - $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { - $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>") - .css({ - width: this.offsetWidth + "px", height: this.offsetHeight + "px", - position: "absolute", opacity: "0.001", zIndex: 1000 - }) - .css($(this).offset()) - .appendTo("body"); - }); + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); return true; }, + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map(function() { + var iframe = $( this ); + + return $( "<div>" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + }); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var document = this.document[ 0 ]; + + // Only need to blur if the event occurred on the draggable itself, see #10527 + if ( !this.handleElement.is( event.target ) ) { + return; + } + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe> + try { + + // Support: IE9, IE10 + // If the <body> is blurred, IE will switch windows, see #9520 + if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) { + + // Blur any element that currently has focus, see #4261 + $( document.activeElement ).blur(); + } + } catch ( error ) {} + }, + _mouseStart: function(event) { var o = this.options; @@ -5918,28 +6007,15 @@ $.widget("ui.draggable", $.ui.mouse, { //Store the helper's css position this.cssPosition = this.helper.css( "position" ); - this.scrollParent = this.helper.scrollParent(); + this.scrollParent = this.helper.scrollParent( true ); this.offsetParent = this.helper.offsetParent(); - this.offsetParentCssPosition = this.offsetParent.css( "position" ); + this.hasFixedAncestor = this.helper.parents().filter(function() { + return $( this ).css( "position" ) === "fixed"; + }).length > 0; //The element's absolute position on the page minus margins - this.offset = this.positionAbs = this.element.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - //Reset scroll cache - this.offset.scroll = false; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); + this.positionAbs = this.element.offset(); + this._refreshOffsets( event ); //Generate the original position this.originalPosition = this.position = this._generatePosition( event, false ); @@ -5966,6 +6042,10 @@ $.widget("ui.draggable", $.ui.mouse, { $.ui.ddmanager.prepareOffsets(this, event); } + // Reset helper's right/bottom css if they're set and set explicit width/height instead + // as this prevents resizing of elements with right/bottom set (see #7772) + this._normalizeRightBottom(); + this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) @@ -5976,9 +6056,24 @@ $.widget("ui.draggable", $.ui.mouse, { return true; }, + _refreshOffsets: function( event ) { + this.offset = { + top: this.positionAbs.top - this.margins.top, + left: this.positionAbs.left - this.margins.left, + scroll: false, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() + }; + + this.offset.click = { + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }; + }, + _mouseDrag: function(event, noPropagation) { // reset any necessary cached properties (see #5009) - if ( this.offsetParentCssPosition === "fixed" ) { + if ( this.hasFixedAncestor ) { this.offset.parent = this._getParentOffset(); } @@ -6036,19 +6131,19 @@ $.widget("ui.draggable", $.ui.mouse, { return false; }, - _mouseUp: function(event) { - //Remove frame helpers - $("div.ui-draggable-iframeFix").each(function() { - this.parentNode.removeChild(this); - }); + _mouseUp: function( event ) { + this._unblockFrames(); //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) if ( $.ui.ddmanager ) { $.ui.ddmanager.dragStop(this, event); } - // The interaction is over; whether or not the click resulted in a drag, focus the element - this.element.focus(); + // Only need to focus if the event occurred on the draggable itself, see #10527 + if ( this.handleElement.is( event.target ) ) { + // The interaction is over; whether or not the click resulted in a drag, focus the element + this.element.focus(); + } return $.ui.mouse.prototype._mouseUp.call(this, event); }, @@ -6072,25 +6167,36 @@ $.widget("ui.draggable", $.ui.mouse, { }, _setHandleClassName: function() { - this._removeHandleClassName(); - $( this.options.handle || this.element ).addClass( "ui-draggable-handle" ); + this.handleElement = this.options.handle ? + this.element.find( this.options.handle ) : this.element; + this.handleElement.addClass( "ui-draggable-handle" ); }, _removeHandleClassName: function() { - this.element.find( ".ui-draggable-handle" ) - .addBack() - .removeClass( "ui-draggable-handle" ); + this.handleElement.removeClass( "ui-draggable-handle" ); }, _createHelper: function(event) { var o = this.options, - helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[ 0 ], [ event ])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element); + helperIsFunction = $.isFunction( o.helper ), + helper = helperIsFunction ? + $( o.helper.apply( this.element[ 0 ], [ event ] ) ) : + ( o.helper === "clone" ? + this.element.clone().removeAttr( "id" ) : + this.element ); if (!helper.parents("body").length) { helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); } + // http://bugs.jqueryui.com/ticket/9446 + // a helper function can return the original element + // which wouldn't have been set to relative in _create + if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) { + this._setPositionRelative(); + } + if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { helper.css("position", "absolute"); } @@ -6099,6 +6205,12 @@ $.widget("ui.draggable", $.ui.mouse, { }, + _setPositionRelative: function() { + if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) { + this.element[ 0 ].style.position = "relative"; + } + }, + _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); @@ -6144,8 +6256,8 @@ $.widget("ui.draggable", $.ui.mouse, { } return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) }; }, @@ -6167,10 +6279,10 @@ $.widget("ui.draggable", $.ui.mouse, { _cacheMargins: function() { this.margins = { - left: (parseInt(this.element.css("marginLeft"),10) || 0), - top: (parseInt(this.element.css("marginTop"),10) || 0), - right: (parseInt(this.element.css("marginRight"),10) || 0), - bottom: (parseInt(this.element.css("marginBottom"),10) || 0) + left: (parseInt(this.element.css("marginLeft"), 10) || 0), + top: (parseInt(this.element.css("marginTop"), 10) || 0), + right: (parseInt(this.element.css("marginRight"), 10) || 0), + bottom: (parseInt(this.element.css("marginBottom"), 10) || 0) }; }, @@ -6183,11 +6295,11 @@ $.widget("ui.draggable", $.ui.mouse, { _setContainment: function() { - var over, c, ce, + var isUserScrollable, c, ce, o = this.options, document = this.document[ 0 ]; - this.relative_container = null; + this.relativeContainer = null; if ( !o.containment ) { this.containment = null; @@ -6230,15 +6342,25 @@ $.widget("ui.draggable", $.ui.mouse, { return; } - over = c.css( "overflow" ) !== "hidden"; + isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) ); this.containment = [ ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), - ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right, - ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top - this.margins.bottom + ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - + ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - + this.helperProportions.width - + this.margins.left - + this.margins.right, + ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - + ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - + this.helperProportions.height - + this.margins.top - + this.margins.bottom ]; - this.relative_container = c; + this.relativeContainer = c; }, _convertPositionTo: function(d, pos) { @@ -6291,8 +6413,8 @@ $.widget("ui.draggable", $.ui.mouse, { // If we are not dragging yet, we won't check for options if ( constrainPosition ) { if ( this.containment ) { - if ( this.relative_container ){ - co = this.relative_container.offset(); + if ( this.relativeContainer ){ + co = this.relativeContainer.offset(); containment = [ this.containment[ 0 ] + co.left, this.containment[ 1 ] + co.top, @@ -6366,16 +6488,29 @@ $.widget("ui.draggable", $.ui.mouse, { } }, + _normalizeRightBottom: function() { + if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) { + this.helper.width( this.helper.width() ); + this.helper.css( "right", "auto" ); + } + if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) { + this.helper.height( this.helper.height() ); + this.helper.css( "bottom", "auto" ); + } + }, + // From now on bulk stuff - mainly helpers - _trigger: function(type, event, ui) { + _trigger: function( type, event, ui ) { ui = ui || this._uiHash(); $.ui.plugin.call( this, type, [ event, ui, this ], true ); - //The absolute position has to be recalculated after plugins - if (type === "drag") { - this.positionAbs = this._convertPositionTo("absolute"); + + // Absolute position and offset (see #6884 ) have to be recalculated after plugins + if ( /^(drag|start|stop)/.test( type ) ) { + this.positionAbs = this._convertPositionTo( "absolute" ); + ui.offset = this.positionAbs; } - return $.Widget.prototype._trigger.call(this, type, event, ui); + return $.Widget.prototype._trigger.call( this, type, event, ui ); }, plugins: {}, @@ -6391,160 +6526,201 @@ $.widget("ui.draggable", $.ui.mouse, { }); -$.ui.plugin.add("draggable", "connectToSortable", { - start: function( event, ui, inst ) { +$.ui.plugin.add( "draggable", "connectToSortable", { + start: function( event, ui, draggable ) { + var uiSortable = $.extend( {}, ui, { + item: draggable.element + }); - var o = inst.options, - uiSortable = $.extend({}, ui, { item: inst.element }); - inst.sortables = []; - $(o.connectToSortable).each(function() { + draggable.sortables = []; + $( draggable.options.connectToSortable ).each(function() { var sortable = $( this ).sortable( "instance" ); - if (sortable && !sortable.options.disabled) { - inst.sortables.push({ - instance: sortable, - shouldRevert: sortable.options.revert - }); - sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). + + if ( sortable && !sortable.options.disabled ) { + draggable.sortables.push( sortable ); + + // refreshPositions is called at drag start to refresh the containerCache + // which is used in drag. This ensures it's initialized and synchronized + // with any changes that might have happened on the page since initialization. + sortable.refreshPositions(); sortable._trigger("activate", event, uiSortable); } }); - }, - stop: function( event, ui, inst ) { - - //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper + stop: function( event, ui, draggable ) { var uiSortable = $.extend( {}, ui, { - item: inst.element + item: draggable.element }); - $.each(inst.sortables, function() { - if (this.instance.isOver) { + draggable.cancelHelperRemoval = false; - this.instance.isOver = 0; + $.each( draggable.sortables, function() { + var sortable = this; - inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance - this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) - - //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid" - if (this.shouldRevert) { - this.instance.options.revert = this.shouldRevert; - } + if ( sortable.isOver ) { + sortable.isOver = 0; - //Trigger the stop of the sortable - this.instance._mouseStop(event); + // Allow this sortable to handle removing the helper + draggable.cancelHelperRemoval = true; + sortable.cancelHelperRemoval = false; - this.instance.options.helper = this.instance.options._helper; + // Use _storedCSS To restore properties in the sortable, + // as this also handles revert (#9675) since the draggable + // may have modified them in unexpected ways (#8809) + sortable._storedCSS = { + position: sortable.placeholder.css( "position" ), + top: sortable.placeholder.css( "top" ), + left: sortable.placeholder.css( "left" ) + }; - //If the helper has been the original item, restore properties in the sortable - if (inst.options.helper === "original") { - this.instance.currentItem.css({ top: "auto", left: "auto" }); - } + sortable._mouseStop(event); + // Once drag has ended, the sortable should return to using + // its original helper, not the shared helper from draggable + sortable.options.helper = sortable.options._helper; } else { - this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance - this.instance._trigger("deactivate", event, uiSortable); - } + // Prevent this Sortable from removing the helper. + // However, don't set the draggable to remove the helper + // either as another connected Sortable may yet handle the removal. + sortable.cancelHelperRemoval = true; + sortable._trigger( "deactivate", event, uiSortable ); + } }); - }, - drag: function( event, ui, inst ) { - - var that = this; - - $.each(inst.sortables, function() { - + drag: function( event, ui, draggable ) { + $.each( draggable.sortables, function() { var innermostIntersecting = false, - thisSortable = this; + sortable = this; - //Copy over some variables to allow calling the sortable's native _intersectsWith - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; + // Copy over variables that sortable's _intersectsWith uses + sortable.positionAbs = draggable.positionAbs; + sortable.helperProportions = draggable.helperProportions; + sortable.offset.click = draggable.offset.click; - if (this.instance._intersectsWith(this.instance.containerCache)) { + if ( sortable._intersectsWith( sortable.containerCache ) ) { innermostIntersecting = true; - $.each(inst.sortables, function() { - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; - if (this !== thisSortable && - this.instance._intersectsWith(this.instance.containerCache) && - $.contains(thisSortable.instance.element[0], this.instance.element[0]) - ) { + + $.each( draggable.sortables, function() { + // Copy over variables that sortable's _intersectsWith uses + this.positionAbs = draggable.positionAbs; + this.helperProportions = draggable.helperProportions; + this.offset.click = draggable.offset.click; + + if ( this !== sortable && + this._intersectsWith( this.containerCache ) && + $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { innermostIntersecting = false; } + return innermostIntersecting; }); } - if (innermostIntersecting) { - //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once - if (!this.instance.isOver) { + if ( innermostIntersecting ) { + // If it intersects, we use a little isOver variable and set it once, + // so that the move-in stuff gets fired only once. + if ( !sortable.isOver ) { + sortable.isOver = 1; - this.instance.isOver = 1; - //Now we fake the start of dragging for the sortable instance, - //by cloning the list group item, appending it to the sortable and using it as inst.currentItem - //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) - this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); - this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it - this.instance.options.helper = function() { return ui.helper[0]; }; + // Store draggable's parent in case we need to reappend to it later. + draggable._parent = ui.helper.parent(); - event.target = this.instance.currentItem[0]; - this.instance._mouseCapture(event, true); - this.instance._mouseStart(event, true, true); + sortable.currentItem = ui.helper + .appendTo( sortable.element ) + .data( "ui-sortable-item", true ); - //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes - this.instance.offset.click.top = inst.offset.click.top; - this.instance.offset.click.left = inst.offset.click.left; - this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; - this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; + // Store helper option to later restore it + sortable.options._helper = sortable.options.helper; - inst._trigger("toSortable", event); - inst.dropped = this.instance.element; //draggable revert needs that - //hack so receive/update callbacks work (mostly) - inst.currentItem = inst.element; - this.instance.fromOutside = inst; + sortable.options.helper = function() { + return ui.helper[ 0 ]; + }; - } + // Fire the start events of the sortable with our passed browser event, + // and our own helper (so it doesn't create a new one) + event.target = sortable.currentItem[ 0 ]; + sortable._mouseCapture( event, true ); + sortable._mouseStart( event, true, true ); + + // Because the browser event is way off the new appended portlet, + // modify necessary variables to reflect the changes + sortable.offset.click.top = draggable.offset.click.top; + sortable.offset.click.left = draggable.offset.click.left; + sortable.offset.parent.left -= draggable.offset.parent.left - + sortable.offset.parent.left; + sortable.offset.parent.top -= draggable.offset.parent.top - + sortable.offset.parent.top; + + draggable._trigger( "toSortable", event ); + + // Inform draggable that the helper is in a valid drop zone, + // used solely in the revert option to handle "valid/invalid". + draggable.dropped = sortable.element; + + // Need to refreshPositions of all sortables in the case that + // adding to one sortable changes the location of the other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); - //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable - if (this.instance.currentItem) { - this.instance._mouseDrag(event); + // hack so receive/update callbacks work (mostly) + draggable.currentItem = draggable.element; + sortable.fromOutside = draggable; } + if ( sortable.currentItem ) { + sortable._mouseDrag( event ); + // Copy the sortable's position because the draggable's can potentially reflect + // a relative position, while sortable is always absolute, which the dragged + // element has now become. (#8809) + ui.position = sortable.position; + } } else { + // If it doesn't intersect with the sortable, and it intersected before, + // we fake the drag stop of the sortable, but make sure it doesn't remove + // the helper by using cancelHelperRemoval. + if ( sortable.isOver ) { - //If it doesn't intersect with the sortable, and it intersected before, - //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval - if (this.instance.isOver) { - - this.instance.isOver = 0; - this.instance.cancelHelperRemoval = true; + sortable.isOver = 0; + sortable.cancelHelperRemoval = true; - //Prevent reverting on this forced stop - this.instance.options.revert = false; + // Calling sortable's mouseStop would trigger a revert, + // so revert must be temporarily false until after mouseStop is called. + sortable.options._revert = sortable.options.revert; + sortable.options.revert = false; - // The out event needs to be triggered independently - this.instance._trigger("out", event, this.instance._uiHash(this.instance)); + sortable._trigger( "out", event, sortable._uiHash( sortable ) ); + sortable._mouseStop( event, true ); - this.instance._mouseStop(event, true); - this.instance.options.helper = this.instance.options._helper; + // restore sortable behaviors that were modfied + // when the draggable entered the sortable area (#9481) + sortable.options.revert = sortable.options._revert; + sortable.options.helper = sortable.options._helper; - //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size - this.instance.currentItem.remove(); - if (this.instance.placeholder) { - this.instance.placeholder.remove(); + if ( sortable.placeholder ) { + sortable.placeholder.remove(); } - inst._trigger("fromSortable", event); - inst.dropped = false; //draggable revert needs that - } + // Restore and recalculate the draggable's offset considering the sortable + // may have modified them in unexpected ways. (#8809, #10669) + ui.helper.appendTo( draggable._parent ); + draggable._refreshOffsets( event ); + ui.position = draggable._generatePosition( event, true ); - } + draggable._trigger( "fromSortable", event ); - }); + // Inform draggable that the helper is no longer in a valid drop zone + draggable.dropped = false; + // Need to refreshPositions of all sortables just in case removing + // from one sortable changes the location of other sortables (#9675) + $.each( draggable.sortables, function() { + this.refreshPositions(); + }); + } + } + }); } }); @@ -6585,30 +6761,35 @@ $.ui.plugin.add("draggable", "opacity", { $.ui.plugin.add("draggable", "scroll", { start: function( event, ui, i ) { - if ( i.scrollParent[ 0 ] !== i.document[ 0 ] && i.scrollParent[ 0 ].tagName !== "HTML" ) { - i.overflowOffset = i.scrollParent.offset(); + if ( !i.scrollParentNotHidden ) { + i.scrollParentNotHidden = i.helper.scrollParent( false ); + } + + if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { + i.overflowOffset = i.scrollParentNotHidden.offset(); } }, drag: function( event, ui, i ) { var o = i.options, scrolled = false, + scrollParent = i.scrollParentNotHidden[ 0 ], document = i.document[ 0 ]; - if ( i.scrollParent[ 0 ] !== document && i.scrollParent[ 0 ].tagName !== "HTML" ) { - if (!o.axis || o.axis !== "x") { - if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; - } else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity) { - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; + if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { + if ( !o.axis || o.axis !== "x" ) { + if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; + } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { + scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; } } - if (!o.axis || o.axis !== "y") { - if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; - } else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity) { - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; + if ( !o.axis || o.axis !== "y" ) { + if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; + } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { + scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; } } @@ -6669,9 +6850,9 @@ $.ui.plugin.add("draggable", "snap", { for (i = inst.snapElements.length - 1; i >= 0; i--){ - l = inst.snapElements[i].left; + l = inst.snapElements[i].left - inst.margins.left; r = l + inst.snapElements[i].width; - t = inst.snapElements[i].top; + t = inst.snapElements[i].top - inst.margins.top; b = t + inst.snapElements[i].height; if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) { @@ -6688,16 +6869,16 @@ $.ui.plugin.add("draggable", "snap", { ls = Math.abs(l - x2) <= d; rs = Math.abs(r - x1) <= d; if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top; } if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top; } if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left; } if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left; } } @@ -6709,16 +6890,16 @@ $.ui.plugin.add("draggable", "snap", { ls = Math.abs(l - x1) <= d; rs = Math.abs(r - x2) <= d; if (ts) { - ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top; } if (bs) { - ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top; } if (ls) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left; } if (rs) { - ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; + ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left; } } @@ -6736,8 +6917,8 @@ $.ui.plugin.add("draggable", "stack", { start: function( event, ui, instance ) { var min, o = instance.options, - group = $.makeArray($(o.stack)).sort(function(a,b) { - return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); + group = $.makeArray($(o.stack)).sort(function(a, b) { + return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0); }); if (!group.length) { return; } @@ -6773,10 +6954,10 @@ var draggable = $.ui.draggable; /*! - * jQuery UI Resizable 1.11.0 + * jQuery UI Resizable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -6785,7 +6966,7 @@ var draggable = $.ui.draggable; $.widget("ui.resizable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "resize", options: { alsoResize: false, @@ -6817,7 +6998,7 @@ $.widget("ui.resizable", $.ui.mouse, { }, _isNumber: function( value ) { - return !isNaN( parseInt( value , 10 ) ); + return !isNaN( parseInt( value, 10 ) ); }, _hasScroll: function( el, a ) { @@ -6858,7 +7039,7 @@ $.widget("ui.resizable", $.ui.mouse, { }); // Wrap the element if it cannot hold child nodes - if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { + if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) { this.element.wrap( $("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ @@ -6876,14 +7057,28 @@ $.widget("ui.resizable", $.ui.mouse, { this.elementIsWrapper = true; - this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); - this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); + this.element.css({ + marginLeft: this.originalElement.css("marginLeft"), + marginTop: this.originalElement.css("marginTop"), + marginRight: this.originalElement.css("marginRight"), + marginBottom: this.originalElement.css("marginBottom") + }); + this.originalElement.css({ + marginLeft: 0, + marginTop: 0, + marginRight: 0, + marginBottom: 0 + }); // support: Safari // Prevent Safari textarea resize this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); - this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); + this._proportionallyResizeElements.push( this.originalElement.css({ + position: "static", + zoom: 1, + display: "block" + }) ); // support: IE9 // avoid IE jump (hard set the margin) @@ -6892,8 +7087,21 @@ $.widget("ui.resizable", $.ui.mouse, { this._proportionallyResize(); } - this.handles = o.handles || (!$(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); - if(this.handles.constructor === String) { + this.handles = o.handles || + ( !$(".ui-resizable-handle", this.element).length ? + "e,s,se" : { + n: ".ui-resizable-n", + e: ".ui-resizable-e", + s: ".ui-resizable-s", + w: ".ui-resizable-w", + se: ".ui-resizable-se", + sw: ".ui-resizable-sw", + ne: ".ui-resizable-ne", + nw: ".ui-resizable-nw" + } ); + + this._handles = $(); + if ( this.handles.constructor === String ) { if ( this.handles === "all") { this.handles = "n,e,s,w,se,sw,ne,nw"; @@ -6902,10 +7110,10 @@ $.widget("ui.resizable", $.ui.mouse, { n = this.handles.split(","); this.handles = {}; - for(i = 0; i < n.length; i++) { + for (i = 0; i < n.length; i++) { handle = $.trim(n[i]); - hname = "ui-resizable-"+handle; + hname = "ui-resizable-" + handle; axis = $("<div class='ui-resizable-handle " + hname + "'></div>"); axis.css({ zIndex: o.zIndex }); @@ -6915,7 +7123,7 @@ $.widget("ui.resizable", $.ui.mouse, { axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); } - this.handles[handle] = ".ui-resizable-"+handle; + this.handles[handle] = ".ui-resizable-" + handle; this.element.append(axis); } @@ -6927,13 +7135,16 @@ $.widget("ui.resizable", $.ui.mouse, { target = target || this.element; - for(i in this.handles) { + for (i in this.handles) { - if(this.handles[i].constructor === String) { + if (this.handles[i].constructor === String) { this.handles[i] = this.element.children( this.handles[ i ] ).first().show(); + } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) { + this.handles[ i ] = $( this.handles[ i ] ); + this._on( this.handles[ i ], { "mousedown": that._mouseDown }); } - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { + if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) { axis = $(this.handles[i], this.element); @@ -6947,21 +7158,17 @@ $.widget("ui.resizable", $.ui.mouse, { target.css(padPos, padWrapper); this._proportionallyResize(); - } - // TODO: What's that good for? There's not anything to be executed left - if(!$(this.handles[i]).length) { - continue; - } + this._handles = this._handles.add( this.handles[ i ] ); } }; // TODO: make renderAxis a prototype function this._renderAxis(this.element); - this._handles = $(".ui-resizable-handle", this.element) - .disableSelection(); + this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) ); + this._handles.disableSelection(); this._handles.mouseover(function() { if (!that.resizing) { @@ -6983,7 +7190,7 @@ $.widget("ui.resizable", $.ui.mouse, { $(this).removeClass("ui-resizable-autohide"); that._handles.show(); }) - .mouseleave(function(){ + .mouseleave(function() { if (o.disabled) { return; } @@ -6995,7 +7202,6 @@ $.widget("ui.resizable", $.ui.mouse, { } this._mouseInit(); - }, _destroy: function() { @@ -7004,8 +7210,13 @@ $.widget("ui.resizable", $.ui.mouse, { var wrapper, _destroy = function(exp) { - $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") - .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); + $(exp) + .removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") + .removeData("resizable") + .removeData("ui-resizable") + .unbind(".resizable") + .find(".ui-resizable-handle") + .remove(); }; // TODO: Unwrap at same DOM position @@ -7062,13 +7273,34 @@ $.widget("ui.resizable", $.ui.mouse, { this.offset = this.helper.offset(); this.position = { left: curleft, top: curtop }; - this.size = this._helper ? { width: this.helper.width(), height: this.helper.height() } : { width: el.width(), height: el.height() }; - this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + + this.size = this._helper ? { + width: this.helper.width(), + height: this.helper.height() + } : { + width: el.width(), + height: el.height() + }; + + this.originalSize = this._helper ? { + width: el.outerWidth(), + height: el.outerHeight() + } : { + width: el.width(), + height: el.height() + }; + + this.sizeDiff = { + width: el.outerWidth() - el.width(), + height: el.outerHeight() - el.height() + }; + this.originalPosition = { left: curleft, top: curtop }; - this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; this.originalMousePosition = { left: event.pageX, top: event.pageY }; - this.aspectRatio = (typeof o.aspectRatio === "number") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); + this.aspectRatio = (typeof o.aspectRatio === "number") ? + o.aspectRatio : + ((this.originalSize.width / this.originalSize.height) || 1); cursor = $(".ui-resizable-" + this.axis).css("cursor"); $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); @@ -7080,28 +7312,20 @@ $.widget("ui.resizable", $.ui.mouse, { _mouseDrag: function(event) { - var data, - el = this.helper, props = {}, + var data, props, smp = this.originalMousePosition, a = this.axis, - dx = (event.pageX-smp.left)||0, - dy = (event.pageY-smp.top)||0, + dx = (event.pageX - smp.left) || 0, + dy = (event.pageY - smp.top) || 0, trigger = this._change[a]; - this.prevPosition = { - top: this.position.top, - left: this.position.left - }; - this.prevSize = { - width: this.size.width, - height: this.size.height - }; + this._updatePrevProperties(); if (!trigger) { return false; } - data = trigger.apply(this, [event, dx, dy]); + data = trigger.apply(this, [ event, dx, dy ]); this._updateVirtualBoundaries(event.shiftKey); if (this._aspectRatio || event.shiftKey) { @@ -7114,26 +7338,16 @@ $.widget("ui.resizable", $.ui.mouse, { this._propagate("resize", event); - if ( this.position.top !== this.prevPosition.top ) { - props.top = this.position.top + "px"; - } - if ( this.position.left !== this.prevPosition.left ) { - props.left = this.position.left + "px"; - } - if ( this.size.width !== this.prevSize.width ) { - props.width = this.size.width + "px"; - } - if ( this.size.height !== this.prevSize.height ) { - props.height = this.size.height + "px"; - } - el.css( props ); + props = this._applyChanges(); if ( !this._helper && this._proportionallyResizeElements.length ) { this._proportionallyResize(); } if ( !$.isEmptyObject( props ) ) { + this._updatePrevProperties(); this._trigger( "resize", event, this.ui() ); + this._applyChanges(); } return false; @@ -7145,16 +7359,21 @@ $.widget("ui.resizable", $.ui.mouse, { var pr, ista, soffseth, soffsetw, s, left, top, o = this.options, that = this; - if(this._helper) { + if (this._helper) { pr = this._proportionallyResizeElements; ista = pr.length && (/textarea/i).test(pr[0].nodeName); - soffseth = ista && this._hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height; + soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height; soffsetw = ista ? 0 : that.sizeDiff.width; - s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }; - left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null; - top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; + s = { + width: (that.helper.width() - soffsetw), + height: (that.helper.height() - soffseth) + }; + left = (parseInt(that.element.css("left"), 10) + + (that.position.left - that.originalPosition.left)) || null; + top = (parseInt(that.element.css("top"), 10) + + (that.position.top - that.originalPosition.top)) || null; if (!o.animate) { this.element.css($.extend(s, { top: top, left: left })); @@ -7182,6 +7401,38 @@ $.widget("ui.resizable", $.ui.mouse, { }, + _updatePrevProperties: function() { + this.prevPosition = { + top: this.position.top, + left: this.position.left + }; + this.prevSize = { + width: this.size.width, + height: this.size.height + }; + }, + + _applyChanges: function() { + var props = {}; + + if ( this.position.top !== this.prevPosition.top ) { + props.top = this.position.top + "px"; + } + if ( this.position.left !== this.prevPosition.left ) { + props.left = this.position.left + "px"; + } + if ( this.size.width !== this.prevSize.width ) { + props.width = this.size.width + "px"; + } + if ( this.size.height !== this.prevSize.height ) { + props.height = this.size.height + "px"; + } + + this.helper.css( props ); + + return props; + }, + _updateVirtualBoundaries: function(forceAspectRatio) { var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, o = this.options; @@ -7193,22 +7444,22 @@ $.widget("ui.resizable", $.ui.mouse, { maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity }; - if(this._aspectRatio || forceAspectRatio) { + if (this._aspectRatio || forceAspectRatio) { pMinWidth = b.minHeight * this.aspectRatio; pMinHeight = b.minWidth / this.aspectRatio; pMaxWidth = b.maxHeight * this.aspectRatio; pMaxHeight = b.maxWidth / this.aspectRatio; - if(pMinWidth > b.minWidth) { + if (pMinWidth > b.minWidth) { b.minWidth = pMinWidth; } - if(pMinHeight > b.minHeight) { + if (pMinHeight > b.minHeight) { b.minHeight = pMinHeight; } - if(pMaxWidth < b.maxWidth) { + if (pMaxWidth < b.maxWidth) { b.maxWidth = pMaxWidth; } - if(pMaxHeight < b.maxHeight) { + if (pMaxHeight < b.maxHeight) { b.maxHeight = pMaxHeight; } } @@ -7259,8 +7510,10 @@ $.widget("ui.resizable", $.ui.mouse, { var o = this._vBoundaries, a = this.axis, - ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), - isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), + ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), + ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), + isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width), + isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height), dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height, cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); @@ -7300,32 +7553,56 @@ $.widget("ui.resizable", $.ui.mouse, { return data; }, + _getPaddingPlusBorderDimensions: function( element ) { + var i = 0, + widths = [], + borders = [ + element.css( "borderTopWidth" ), + element.css( "borderRightWidth" ), + element.css( "borderBottomWidth" ), + element.css( "borderLeftWidth" ) + ], + paddings = [ + element.css( "paddingTop" ), + element.css( "paddingRight" ), + element.css( "paddingBottom" ), + element.css( "paddingLeft" ) + ]; + + for ( ; i < 4; i++ ) { + widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 ); + widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 ); + } + + return { + height: widths[ 0 ] + widths[ 2 ], + width: widths[ 1 ] + widths[ 3 ] + }; + }, + _proportionallyResize: function() { if (!this._proportionallyResizeElements.length) { return; } - var i, j, borders, paddings, prel, + var prel, + i = 0, element = this.helper || this.element; - for ( i=0; i < this._proportionallyResizeElements.length; i++) { + for ( ; i < this._proportionallyResizeElements.length; i++) { prel = this._proportionallyResizeElements[i]; - if (!this.borderDif) { - this.borderDif = []; - borders = [prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")]; - paddings = [prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")]; - - for ( j = 0; j < borders.length; j++ ) { - this.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 ); - } + // TODO: Seems like a bug to cache this.outerDimensions + // considering that we are in a loop. + if (!this.outerDimensions) { + this.outerDimensions = this._getPaddingPlusBorderDimensions( prel ); } prel.css({ - height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, - width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 + height: (element.height() - this.outerDimensions.height) || 0, + width: (element.width() - this.outerDimensions.width) || 0 }); } @@ -7337,7 +7614,7 @@ $.widget("ui.resizable", $.ui.mouse, { var el = this.element, o = this.options; this.elementOffset = el.offset(); - if(this._helper) { + if (this._helper) { this.helper = this.helper || $("<div style='overflow:hidden;'></div>"); @@ -7345,8 +7622,8 @@ $.widget("ui.resizable", $.ui.mouse, { width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", - left: this.elementOffset.left +"px", - top: this.elementOffset.top +"px", + left: this.elementOffset.left + "px", + top: this.elementOffset.top + "px", zIndex: ++o.zIndex //TODO: Don't modify option }); @@ -7376,21 +7653,25 @@ $.widget("ui.resizable", $.ui.mouse, { return { height: this.originalSize.height + dy }; }, se: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + return $.extend(this._change.s.apply(this, arguments), + this._change.e.apply(this, [ event, dx, dy ])); }, sw: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + return $.extend(this._change.s.apply(this, arguments), + this._change.w.apply(this, [ event, dx, dy ])); }, ne: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + return $.extend(this._change.n.apply(this, arguments), + this._change.e.apply(this, [ event, dx, dy ])); }, nw: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + return $.extend(this._change.n.apply(this, arguments), + this._change.w.apply(this, [ event, dx, dy ])); } }, _propagate: function(n, event) { - $.ui.plugin.call(this, n, [event, this.ui()]); + $.ui.plugin.call(this, n, [ event, this.ui() ]); (n !== "resize" && this._trigger(n, event, this.ui())); }, @@ -7404,9 +7685,7 @@ $.widget("ui.resizable", $.ui.mouse, { position: this.position, size: this.size, originalSize: this.originalSize, - originalPosition: this.originalPosition, - prevSize: this.prevSize, - prevPosition: this.prevPosition + originalPosition: this.originalPosition }; } @@ -7423,11 +7702,13 @@ $.ui.plugin.add("resizable", "animate", { o = that.options, pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && that._hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height, + soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width, style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, - left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null, - top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; + left = (parseInt(that.element.css("left"), 10) + + (that.position.left - that.originalPosition.left)) || null, + top = (parseInt(that.element.css("top"), 10) + + (that.position.top - that.originalPosition.top)) || null; that.element.animate( $.extend(style, top && left ? { top: top, left: left } : {}), { @@ -7520,7 +7801,7 @@ $.ui.plugin.add( "resizable", "containment", { } }, - resize: function( event, ui ) { + resize: function( event ) { var woset, hoset, isParent, isOffsetRelative, that = $( this ).resizable( "instance" ), o = that.options, @@ -7539,7 +7820,11 @@ $.ui.plugin.add( "resizable", "containment", { } if ( cp.left < ( that._helper ? co.left : 0 ) ) { - that.size.width = that.size.width + ( that._helper ? ( that.position.left - co.left ) : ( that.position.left - cop.left ) ); + that.size.width = that.size.width + + ( that._helper ? + ( that.position.left - co.left ) : + ( that.position.left - cop.left ) ); + if ( pRatio ) { that.size.height = that.size.width / that.aspectRatio; continueResize = false; @@ -7548,7 +7833,11 @@ $.ui.plugin.add( "resizable", "containment", { } if ( cp.top < ( that._helper ? co.top : 0 ) ) { - that.size.height = that.size.height + ( that._helper ? ( that.position.top - co.top ) : that.position.top ); + that.size.height = that.size.height + + ( that._helper ? + ( that.position.top - co.top ) : + that.position.top ); + if ( pRatio ) { that.size.width = that.size.height * that.aspectRatio; continueResize = false; @@ -7556,19 +7845,27 @@ $.ui.plugin.add( "resizable", "containment", { that.position.top = that._helper ? co.top : 0; } - that.offset.left = that.parentData.left + that.position.left; - that.offset.top = that.parentData.top + that.position.top; - - woset = Math.abs( ( that._helper ? that.offset.left - cop.left : ( that.offset.left - co.left ) ) + that.sizeDiff.width ); - hoset = Math.abs( ( that._helper ? that.offset.top - cop.top : ( that.offset.top - co.top ) ) + that.sizeDiff.height ); - isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 ); isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) ); if ( isParent && isOffsetRelative ) { - woset -= Math.abs( that.parentData.left ); + that.offset.left = that.parentData.left + that.position.left; + that.offset.top = that.parentData.top + that.position.top; + } else { + that.offset.left = that.element.offset().left; + that.offset.top = that.element.offset().top; } + woset = Math.abs( that.sizeDiff.width + + (that._helper ? + that.offset.left - cop.left : + (that.offset.left - co.left)) ); + + hoset = Math.abs( that.sizeDiff.height + + (that._helper ? + that.offset.top - cop.top : + (that.offset.top - co.top)) ); + if ( woset + that.size.width >= that.parentData.width ) { that.size.width = that.parentData.width - woset; if ( pRatio ) { @@ -7585,15 +7882,15 @@ $.ui.plugin.add( "resizable", "containment", { } } - if ( !continueResize ){ - that.position.left = ui.prevPosition.left; - that.position.top = ui.prevPosition.top; - that.size.width = ui.prevSize.width; - that.size.height = ui.prevSize.height; + if ( !continueResize ) { + that.position.left = that.prevPosition.left; + that.position.top = that.prevPosition.top; + that.size.width = that.prevSize.width; + that.size.height = that.prevSize.height; } }, - stop: function(){ + stop: function() { var that = $( this ).resizable( "instance" ), o = that.options, co = that.containerOffset, @@ -7624,61 +7921,49 @@ $.ui.plugin.add( "resizable", "containment", { $.ui.plugin.add("resizable", "alsoResize", { - start: function () { + start: function() { var that = $(this).resizable( "instance" ), - o = that.options, - _store = function (exp) { - $(exp).each(function() { - var el = $(this); - el.data("ui-resizable-alsoresize", { - width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), - left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) - }); - }); - }; + o = that.options; - if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) { - if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } - else { $.each(o.alsoResize, function (exp) { _store(exp); }); } - }else{ - _store(o.alsoResize); - } + $(o.alsoResize).each(function() { + var el = $(this); + el.data("ui-resizable-alsoresize", { + width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), + left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) + }); + }); }, - resize: function (event, ui) { + resize: function(event, ui) { var that = $(this).resizable( "instance" ), o = that.options, os = that.originalSize, op = that.originalPosition, delta = { - height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0, - top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0 - }, - - _alsoResize = function (exp, c) { - $(exp).each(function() { - var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, - css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; + height: (that.size.height - os.height) || 0, + width: (that.size.width - os.width) || 0, + top: (that.position.top - op.top) || 0, + left: (that.position.left - op.left) || 0 + }; - $.each(css, function (i, prop) { - var sum = (start[prop]||0) + (delta[prop]||0); - if (sum && sum >= 0) { - style[prop] = sum || null; - } - }); + $(o.alsoResize).each(function() { + var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, + css = el.parents(ui.originalElement[0]).length ? + [ "width", "height" ] : + [ "width", "height", "top", "left" ]; - el.css(style); + $.each(css, function(i, prop) { + var sum = (start[prop] || 0) + (delta[prop] || 0); + if (sum && sum >= 0) { + style[prop] = sum || null; + } }); - }; - if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) { - $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); - }else{ - _alsoResize(o.alsoResize); - } + el.css(style); + }); }, - stop: function () { + stop: function() { $(this).removeData("resizable-alsoresize"); } }); @@ -7691,7 +7976,16 @@ $.ui.plugin.add("resizable", "ghost", { that.ghost = that.originalElement.clone(); that.ghost - .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) + .css({ + opacity: 0.25, + display: "block", + position: "relative", + height: cs.height, + width: cs.width, + margin: 0, + left: 0, + top: 0 + }) .addClass("ui-resizable-ghost") .addClass(typeof o.ghost === "string" ? o.ghost : ""); @@ -7699,10 +7993,14 @@ $.ui.plugin.add("resizable", "ghost", { }, - resize: function(){ + resize: function() { var that = $(this).resizable( "instance" ); if (that.ghost) { - that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width }); + that.ghost.css({ + position: "relative", + height: that.size.height, + width: that.size.width + }); } }, @@ -7718,15 +8016,16 @@ $.ui.plugin.add("resizable", "ghost", { $.ui.plugin.add("resizable", "grid", { resize: function() { - var that = $(this).resizable( "instance" ), + var outerDimensions, + that = $(this).resizable( "instance" ), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, - grid = typeof o.grid === "number" ? [o.grid, o.grid] : o.grid, - gridX = (grid[0]||1), - gridY = (grid[1]||1), + grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid, + gridX = (grid[0] || 1), + gridY = (grid[1] || 1), ox = Math.round((cs.width - os.width) / gridX) * gridX, oy = Math.round((cs.height - os.height) / gridY) * gridY, newWidth = os.width + ox, @@ -7739,16 +8038,16 @@ $.ui.plugin.add("resizable", "grid", { o.grid = grid; if (isMinWidth) { - newWidth = newWidth + gridX; + newWidth += gridX; } if (isMinHeight) { - newHeight = newHeight + gridY; + newHeight += gridY; } if (isMaxWidth) { - newWidth = newWidth - gridX; + newWidth -= gridX; } if (isMaxHeight) { - newHeight = newHeight - gridY; + newHeight -= gridY; } if (/^(se|s|e)$/.test(a)) { @@ -7763,19 +8062,25 @@ $.ui.plugin.add("resizable", "grid", { that.size.height = newHeight; that.position.left = op.left - ox; } else { + if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) { + outerDimensions = that._getPaddingPlusBorderDimensions( this ); + } + if ( newHeight - gridY > 0 ) { that.size.height = newHeight; that.position.top = op.top - oy; } else { - that.size.height = gridY; - that.position.top = op.top + os.height - gridY; + newHeight = gridY - outerDimensions.height; + that.size.height = newHeight; + that.position.top = op.top + os.height - newHeight; } if ( newWidth - gridX > 0 ) { that.size.width = newWidth; that.position.left = op.left - ox; } else { - that.size.width = gridX; - that.position.left = op.left + os.width - gridX; + newWidth = gridX - outerDimensions.width; + that.size.width = newWidth; + that.position.left = op.left + os.width - newWidth; } } } @@ -7786,10 +8091,10 @@ var resizable = $.ui.resizable; /*! - * jQuery UI Dialog 1.11.0 + * jQuery UI Dialog 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -7798,7 +8103,7 @@ var resizable = $.ui.resizable; var dialog = $.widget( "ui.dialog", { - version: "1.11.0", + version: "1.11.4", options: { appendTo: "body", autoOpen: true, @@ -7918,6 +8223,7 @@ var dialog = $.widget( "ui.dialog", { var next, originalPosition = this.originalPosition; + this._untrackInstance(); this._destroyOverlay(); this.element @@ -7996,10 +8302,10 @@ var dialog = $.widget( "ui.dialog", { _moveToTop: function( event, silent ) { var moved = false, - zIndicies = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { + zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map(function() { return +$( this ).css( "z-index" ); }).get(), - zIndexMax = Math.max.apply( null, zIndicies ); + zIndexMax = Math.max.apply( null, zIndices ); if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) { this.uiDialog.css( "z-index", zIndexMax + 1 ); @@ -8028,11 +8334,24 @@ var dialog = $.widget( "ui.dialog", { this._position(); this._createOverlay(); this._moveToTop( null, true ); + + // Ensure the overlay is moved to the top with the dialog, but only when + // opening. The overlay shouldn't move after the dialog is open so that + // modeless dialogs opened after the modal dialog stack properly. + if ( this.overlay ) { + this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 ); + } + this._show( this.uiDialog, this.options.show, function() { that._focusTabbable(); that._trigger( "focus" ); }); + // Track the dialog immediately upon openening in case a focus event + // somehow occurs outside of the dialog before an element inside the + // dialog is focused (#10152) + this._makeFocusTarget(); + this._trigger( "open" ); }, @@ -8344,14 +8663,18 @@ var dialog = $.widget( "ui.dialog", { _trackFocus: function() { this._on( this.widget(), { - "focusin": function( event ) { - this._untrackInstance(); - this._trackingInstances().unshift( this ); + focusin: function( event ) { + this._makeFocusTarget(); this._focusedElement = $( event.target ); } }); }, + _makeFocusTarget: function() { + this._untrackInstance(); + this._trackingInstances().unshift( this ); + }, + _untrackInstance: function() { var instances = this._trackingInstances(), exists = $.inArray( this, instances ); @@ -8625,10 +8948,10 @@ var dialog = $.widget( "ui.dialog", { /*! - * jQuery UI Droppable 1.11.0 + * jQuery UI Droppable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -8637,7 +8960,7 @@ var dialog = $.widget( "ui.dialog", { $.widget( "ui.droppable", { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "drop", options: { accept: "*", @@ -8801,7 +9124,7 @@ $.widget( "ui.droppable", { !inst.options.disabled && inst.options.scope === draggable.options.scope && inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) && - $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance ) + $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event ) ) { childrenIntersection = true; return false; } }); if ( childrenIntersection ) { @@ -8839,15 +9162,14 @@ $.ui.intersect = (function() { return ( x >= reference ) && ( x < ( reference + size ) ); } - return function( draggable, droppable, toleranceMode ) { + return function( draggable, droppable, toleranceMode, event ) { if ( !droppable.offset ) { return false; } - var draggableLeft, draggableTop, - x1 = ( draggable.positionAbs || draggable.position.absolute ).left, - y1 = ( draggable.positionAbs || draggable.position.absolute ).top, + var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left, + y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top, x2 = x1 + draggable.helperProportions.width, y2 = y1 + draggable.helperProportions.height, l = droppable.offset.left, @@ -8864,9 +9186,7 @@ $.ui.intersect = (function() { t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half case "pointer": - draggableLeft = ( ( draggable.positionAbs || draggable.position.absolute ).left + ( draggable.clickOffset || draggable.offset.click ).left ); - draggableTop = ( ( draggable.positionAbs || draggable.position.absolute ).top + ( draggable.clickOffset || draggable.offset.click ).top ); - return isOverAxis( draggableTop, t, droppable.proportions().height ) && isOverAxis( draggableLeft, l, droppable.proportions().width ); + return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width ); case "touch": return ( ( y1 >= t && y1 <= b ) || // Top edge touching @@ -8936,7 +9256,7 @@ $.ui.ddmanager = { if ( !this.options ) { return; } - if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance ) ) { + if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { dropped = this._drop.call( this, event ) || dropped; } @@ -8973,7 +9293,7 @@ $.ui.ddmanager = { } var parentInstance, scope, parent, - intersects = $.ui.intersect( draggable, this, this.options.tolerance ), + intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ), c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null ); if ( !c ) { return; @@ -9025,10 +9345,10 @@ var droppable = $.ui.droppable; /*! - * jQuery UI Effects 1.11.0 + * jQuery UI Effects 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -9036,7 +9356,11 @@ var droppable = $.ui.droppable; */ -var dataSpace = "ui-effects-"; +var dataSpace = "ui-effects-", + + // Create a local jQuery because jQuery Color relies on it and the + // global may not exist with AMD and a custom build (#10199) + jQuery = $; $.effects = { effect: {} @@ -9645,7 +9969,7 @@ color.hook = function( hook ) { } try { elem.style[ hook ] = value; - } catch( e ) { + } catch ( e ) { // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' } } @@ -9916,7 +10240,7 @@ $.fn.extend({ (function() { $.extend( $.effects, { - version: "1.11.0", + version: "1.11.4", // Saves a set of properties in a data storage save: function( element, set ) { @@ -10010,7 +10334,7 @@ $.extend( $.effects, { // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 try { active.id; - } catch( e ) { + } catch ( e ) { active = document.body; } @@ -10312,10 +10636,10 @@ var effect = $.effects; /*! - * jQuery UI Effects Blind 1.11.0 + * jQuery UI Effects Blind 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10389,10 +10713,10 @@ var effectBlind = $.effects.effect.blind = function( o, done ) { /*! - * jQuery UI Effects Bounce 1.11.0 + * jQuery UI Effects Bounce 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10499,10 +10823,10 @@ var effectBounce = $.effects.effect.bounce = function( o, done ) { /*! - * jQuery UI Effects Clip 1.11.0 + * jQuery UI Effects Clip 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10563,10 +10887,10 @@ var effectClip = $.effects.effect.clip = function( o, done ) { /*! - * jQuery UI Effects Drop 1.11.0 + * jQuery UI Effects Drop 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10593,7 +10917,7 @@ var effectDrop = $.effects.effect.drop = function( o, done ) { el.show(); $.effects.createWrapper( el ); - distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; + distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; if ( show ) { el @@ -10625,10 +10949,10 @@ var effectDrop = $.effects.effect.drop = function( o, done ) { /*! - * jQuery UI Effects Explode 1.11.0 + * jQuery UI Effects Explode 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10719,10 +11043,10 @@ var effectExplode = $.effects.effect.explode = function( o, done ) { /*! - * jQuery UI Effects Fade 1.11.0 + * jQuery UI Effects Fade 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10746,10 +11070,10 @@ var effectFade = $.effects.effect.fade = function( o, done ) { /*! - * jQuery UI Effects Fold 1.11.0 + * jQuery UI Effects Fold 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10819,10 +11143,10 @@ var effectFold = $.effects.effect.fold = function( o, done ) { /*! - * jQuery UI Effects Highlight 1.11.0 + * jQuery UI Effects Highlight 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -10866,10 +11190,10 @@ var effectHighlight = $.effects.effect.highlight = function( o, done ) { /*! - * jQuery UI Effects Size 1.11.0 + * jQuery UI Effects Size 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11086,10 +11410,10 @@ var effectSize = $.effects.effect.size = function( o, done ) { /*! - * jQuery UI Effects Scale 1.11.0 + * jQuery UI Effects Scale 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11161,10 +11485,10 @@ var effectScale = $.effects.effect.scale = function( o, done ) { /*! - * jQuery UI Effects Puff 1.11.0 + * jQuery UI Effects Puff 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11207,10 +11531,10 @@ var effectPuff = $.effects.effect.puff = function( o, done ) { /*! - * jQuery UI Effects Pulsate 1.11.0 + * jQuery UI Effects Pulsate 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11267,10 +11591,10 @@ var effectPulsate = $.effects.effect.pulsate = function( o, done ) { /*! - * jQuery UI Effects Shake 1.11.0 + * jQuery UI Effects Shake 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11338,10 +11662,10 @@ var effectShake = $.effects.effect.shake = function( o, done ) { /*! - * jQuery UI Effects Slide 1.11.0 + * jQuery UI Effects Slide 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11399,10 +11723,10 @@ var effectSlide = $.effects.effect.slide = function( o, done ) { /*! - * jQuery UI Effects Transfer 1.11.0 + * jQuery UI Effects Transfer 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11443,10 +11767,10 @@ var effectTransfer = $.effects.effect.transfer = function( o, done ) { /*! - * jQuery UI Progressbar 1.11.0 + * jQuery UI Progressbar 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11455,7 +11779,7 @@ var effectTransfer = $.effects.effect.transfer = function( o, done ) { var progressbar = $.widget( "ui.progressbar", { - version: "1.11.0", + version: "1.11.4", options: { max: 100, value: 0, @@ -11588,10 +11912,10 @@ var progressbar = $.widget( "ui.progressbar", { /*! - * jQuery UI Selectable 1.11.0 + * jQuery UI Selectable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11600,7 +11924,7 @@ var progressbar = $.widget( "ui.progressbar", { var selectable = $.widget("ui.selectable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", options: { appendTo: "body", autoRefresh: true, @@ -11860,10 +12184,10 @@ var selectable = $.widget("ui.selectable", $.ui.mouse, { /*! - * jQuery UI Selectmenu 1.11.0 + * jQuery UI Selectmenu 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -11872,7 +12196,7 @@ var selectable = $.widget("ui.selectable", $.ui.mouse, { var selectmenu = $.widget( "ui.selectmenu", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<select>", options: { appendTo: null, @@ -11912,8 +12236,7 @@ var selectmenu = $.widget( "ui.selectmenu", { }, _drawButton: function() { - var that = this, - tabindex = this.element.attr( "tabindex" ); + var that = this; // Associate existing label with the new button this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button ); @@ -11930,7 +12253,7 @@ var selectmenu = $.widget( "ui.selectmenu", { // Create button this.button = $( "<span>", { "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", - tabindex: tabindex || this.options.disabled ? -1 : 0, + tabindex: this.options.disabled ? -1 : 0, id: this.ids.button, role: "combobox", "aria-expanded": "false", @@ -11951,7 +12274,7 @@ var selectmenu = $.widget( "ui.selectmenu", { .appendTo( this.button ); this._setText( this.buttonText, this.element.find( "option:selected" ).text() ); - this._setOption( "width", this.options.width ); + this._resizeButton(); this._on( this.button, this._buttonEvents ); this.button.one( "focusin", function() { @@ -11989,6 +12312,12 @@ var selectmenu = $.widget( "ui.selectmenu", { role: "listbox", select: function( event, ui ) { event.preventDefault(); + + // support: IE8 + // If the item was selected via a click, the text selection + // will be destroyed in IE + that._setSelection(); + that._select( ui.item.data( "ui-selectmenu-item" ), event ); }, focus: function( event, ui ) { @@ -12031,7 +12360,9 @@ var selectmenu = $.widget( "ui.selectmenu", { refresh: function() { this._refreshMenu(); this._setText( this.buttonText, this._getSelectedItem().text() ); - this._setOption( "width", this.options.width ); + if ( !this.options.width ) { + this._resizeButton(); + } }, _refreshMenu: function() { @@ -12097,6 +12428,7 @@ var selectmenu = $.widget( "ui.selectmenu", { this.isOpen = false; this._toggleAttr(); + this.range = null; this._off( this.document ); this._trigger( "close", event ); @@ -12185,6 +12517,29 @@ var selectmenu = $.widget( "ui.selectmenu", { this[ this.isOpen ? "close" : "open" ]( event ); }, + _setSelection: function() { + var selection; + + if ( !this.range ) { + return; + } + + if ( window.getSelection ) { + selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange( this.range ); + + // support: IE8 + } else { + this.range.select(); + } + + // support: IE + // Setting the text selection kills the button focus in IE, but + // restoring the focus doesn't kill the selection. + this.button.focus(); + }, + _documentClick: { mousedown: function( event ) { if ( !this.isOpen ) { @@ -12198,7 +12553,28 @@ var selectmenu = $.widget( "ui.selectmenu", { }, _buttonEvents: { - click: "_toggle", + + // Prevent text selection from being reset when interacting with the selectmenu (#10144) + mousedown: function() { + var selection; + + if ( window.getSelection ) { + selection = window.getSelection(); + if ( selection.rangeCount ) { + this.range = selection.getRangeAt( 0 ); + } + + // support: IE8 + } else { + this.range = document.selection.createRange(); + } + }, + + click: function( event ) { + this._setSelection(); + this._toggle( event ); + }, + keydown: function( event ) { var preventDefault = true; switch ( event.keyCode ) { @@ -12320,10 +12696,7 @@ var selectmenu = $.widget( "ui.selectmenu", { } if ( key === "width" ) { - if ( !value ) { - value = this.element.outerWidth(); - } - this.button.outerWidth( value ); + this._resizeButton(); } }, @@ -12356,6 +12729,17 @@ var selectmenu = $.widget( "ui.selectmenu", { this.menu.attr( "aria-hidden", !this.isOpen ); }, + _resizeButton: function() { + var width = this.options.width; + + if ( !width ) { + width = this.element.show().outerWidth(); + this.element.hide(); + } + + this.button.outerWidth( width ); + }, + _resizeMenu: function() { this.menu.outerWidth( Math.max( this.button.outerWidth(), @@ -12379,7 +12763,7 @@ var selectmenu = $.widget( "ui.selectmenu", { data.push({ element: option, index: index, - value: option.attr( "value" ), + value: option.val(), label: option.text(), optgroup: optgroup.attr( "label" ) || "", disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" ) @@ -12399,10 +12783,10 @@ var selectmenu = $.widget( "ui.selectmenu", { /*! - * jQuery UI Slider 1.11.0 + * jQuery UI Slider 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -12411,7 +12795,7 @@ var selectmenu = $.widget( "ui.selectmenu", { var slider = $.widget( "ui.slider", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "slide", options: { @@ -12443,6 +12827,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { this._handleIndex = null; this._detectOrientation(); this._mouseInit(); + this._calculateNewMax(); this.element .addClass( "ui-slider" + @@ -12839,6 +13224,9 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { .removeClass( "ui-slider-horizontal ui-slider-vertical" ) .addClass( "ui-slider-" + this.orientation ); this._refreshValue(); + + // Reset positioning from previous orientation + this.handles.css( value === "horizontal" ? "bottom" : "left", "" ); break; case "value": this._animateOff = true; @@ -12854,9 +13242,11 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { } this._animateOff = false; break; + case "step": case "min": case "max": this._animateOff = true; + this._calculateNewMax(); this._refreshValue(); this._animateOff = false; break; @@ -12894,7 +13284,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { // .slice() creates a copy of the array // this copy gets trimmed by min and max and then returned vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { + for ( i = 0; i < vals.length; i += 1) { vals[ i ] = this._trimAlignValue( vals[ i ] ); } @@ -12925,12 +13315,35 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { return parseFloat( alignValue.toFixed(5) ); }, + _calculateNewMax: function() { + var max = this.options.max, + min = this._valueMin(), + step = this.options.step, + aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step; + max = aboveMin + min; + this.max = parseFloat( max.toFixed( this._precision() ) ); + }, + + _precision: function() { + var precision = this._precisionOf( this.options.step ); + if ( this.options.min !== null ) { + precision = Math.max( precision, this._precisionOf( this.options.min ) ); + } + return precision; + }, + + _precisionOf: function( num ) { + var str = num.toString(), + decimal = str.indexOf( "." ); + return decimal === -1 ? 0 : str.length - decimal - 1; + }, + _valueMin: function() { return this.options.min; }, _valueMax: function() { - return this.options.max; + return this.max; }, _refreshValue: function() { @@ -13072,10 +13485,10 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { /*! - * jQuery UI Sortable 1.11.0 + * jQuery UI Sortable 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -13084,7 +13497,7 @@ var slider = $.widget( "ui.slider", $.ui.mouse, { var sortable = $.widget("ui.sortable", $.ui.mouse, { - version: "1.11.0", + version: "1.11.4", widgetEventPrefix: "sort", ready: false, options: { @@ -13135,17 +13548,12 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { }, _create: function() { - - var o = this.options; this.containerCache = {}; this.element.addClass("ui-sortable"); //Get the items this.refresh(); - //Let's determine if the items are being displayed horizontally - this.floating = this.items.length ? o.axis === "x" || this._isFloating(this.items[0].item) : false; - //Let's determine the parent's offset this.offset = this.element.offset(); @@ -13334,7 +13742,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } //Prepare scrolling - if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { + if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { this.overflowOffset = this.scrollParent.offset(); } @@ -13386,7 +13794,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { //Do scrolling if(this.options.scroll) { - if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { + if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") { if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; @@ -13402,16 +13810,16 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } else { - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) { + scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed); + } else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) { + scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed); } - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) { + scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed); + } else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) { + scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed); } } @@ -13510,10 +13918,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { animation = {}; if ( !axis || axis === "x" ) { - animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft); + animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft); } if ( !axis || axis === "y" ) { - animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop); + animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop); } this.reverting = true; $(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() { @@ -13706,7 +14114,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { if(connectWith && connected) { for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i]); + cur = $(connectWith[i], this.document[0]); for ( j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { @@ -13756,7 +14164,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down for (i = connectWith.length - 1; i >= 0; i--){ - cur = $(connectWith[i]); + cur = $(connectWith[i], this.document[0]); for (j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { @@ -13789,6 +14197,11 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { refreshPositions: function(fast) { + // Determine whether items are being displayed horizontally + this.floating = this.items.length ? + this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) : + false; + //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change if(this.offsetParent && this.helper) { this.offset.parent = this._getParentOffset(); @@ -13846,12 +14259,13 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") .removeClass("ui-sortable-helper"); - if ( nodeName === "tr" ) { - that.currentItem.children().each(function() { - $( "<td> </td>", that.document[0] ) - .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) - .appendTo( element ); - }); + if ( nodeName === "tbody" ) { + that._createTrPlaceholder( + that.currentItem.find( "tr" ).eq( 0 ), + $( "<tr>", that.document[ 0 ] ).appendTo( element ) + ); + } else if ( nodeName === "tr" ) { + that._createTrPlaceholder( that.currentItem, element ); } else if ( nodeName === "img" ) { element.attr( "src", that.currentItem.attr( "src" ) ); } @@ -13888,6 +14302,16 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { }, + _createTrPlaceholder: function( sourceTr, targetTr ) { + var that = this; + + sourceTr.children().each(function() { + $( "<td> </td>", that.document[ 0 ] ) + .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) + .appendTo( targetTr ); + }); + }, + _contactContainers: function(event) { var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis, innermostContainer = null, @@ -13969,6 +14393,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } if(this.currentContainer === this.containers[innermostIndex]) { + if ( !this.currentContainer.containerCache.over ) { + this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() ); + this.currentContainer.containerCache.over = 1; + } return; } @@ -14044,14 +14472,14 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { + if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } // This needs to be actually done for all browsers, since pageX/pageY includes this information // with an ugly IE fix - if( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { + if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } @@ -14101,8 +14529,8 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { this.containment = [ 0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, - $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, - ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, + (o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } @@ -14127,7 +14555,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { pos = this.position; } var mod = d === "absolute" ? 1 : -1, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, + scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { @@ -14153,13 +14581,13 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { o = this.options, pageX = event.pageX, pageY = event.pageY, - scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); // This is another very weird special case that only happens for relative elements: // 1. If the css position is relative // 2. and the scroll parent is the document or similar to the offset parent // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition === "relative" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) { + if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset(); } @@ -14307,18 +14735,6 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (i=0; i < delayedTriggers.length; i++) { - delayedTriggers[i].call(this, event); - } //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return false; - } if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); @@ -14327,10 +14743,12 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.helper[0] !== this.currentItem[0]) { - this.helper.remove(); + if ( !this.cancelHelperRemoval ) { + if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { + this.helper.remove(); + } + this.helper = null; } - this.helper = null; if(!noPropagation) { for (i=0; i < delayedTriggers.length; i++) { @@ -14340,7 +14758,7 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { } this.fromOutside = false; - return true; + return !this.cancelHelperRemoval; }, @@ -14367,10 +14785,10 @@ var sortable = $.widget("ui.sortable", $.ui.mouse, { /*! - * jQuery UI Spinner 1.11.0 + * jQuery UI Spinner 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -14390,7 +14808,7 @@ function spinner_modifier( fn ) { } var spinner = $.widget( "ui.spinner", { - version: "1.11.0", + version: "1.11.4", defaultElement: "<input>", widgetEventPrefix: "spin", options: { @@ -14866,10 +15284,10 @@ var spinner = $.widget( "ui.spinner", { /*! - * jQuery UI Tabs 1.11.0 + * jQuery UI Tabs 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -14878,7 +15296,7 @@ var spinner = $.widget( "ui.spinner", { var tabs = $.widget( "ui.tabs", { - version: "1.11.0", + version: "1.11.4", delay: 300, options: { active: null, @@ -14928,24 +15346,7 @@ var tabs = $.widget( "ui.tabs", { this.element .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) - .toggleClass( "ui-tabs-collapsible", options.collapsible ) - // Prevent users from focusing disabled tabs via click - .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) { - if ( $( this ).is( ".ui-state-disabled" ) ) { - event.preventDefault(); - } - }) - // support: IE <9 - // Preventing the default action in mousedown doesn't prevent IE - // from focusing the element, so if the anchor gets focused, blur. - // We don't have to worry about focusing the previously focused - // element since clicking on a non-focusable element should focus - // the body anyway. - .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { - if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { - this.blur(); - } - }); + .toggleClass( "ui-tabs-collapsible", options.collapsible ); this._processTabs(); options.active = this._initialActive(); @@ -15071,8 +15472,9 @@ var tabs = $.widget( "ui.tabs", { clearTimeout( this.activating ); selectedIndex = this._focusNextTab( selectedIndex, goingForward ); - // Navigating with control key will prevent automatic activation - if ( !event.ctrlKey ) { + // Navigating with control/command key will prevent automatic activation + if ( !event.ctrlKey && !event.metaKey ) { + // Update aria-selected immediately so that AT think the tab is already selected. // Otherwise AT may confuse the user by stating that they need to activate the tab, // but the tab will already be activated by the time the announcement finishes. @@ -15242,11 +15644,33 @@ var tabs = $.widget( "ui.tabs", { }, _processTabs: function() { - var that = this; + var that = this, + prevTabs = this.tabs, + prevAnchors = this.anchors, + prevPanels = this.panels; this.tablist = this._getList() .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) - .attr( "role", "tablist" ); + .attr( "role", "tablist" ) + + // Prevent users from focusing disabled tabs via click + .delegate( "> li", "mousedown" + this.eventNamespace, function( event ) { + if ( $( this ).is( ".ui-state-disabled" ) ) { + event.preventDefault(); + } + }) + + // support: IE <9 + // Preventing the default action in mousedown doesn't prevent IE + // from focusing the element, so if the anchor gets focused, blur. + // We don't have to worry about focusing the previously focused + // element since clicking on a non-focusable element should focus + // the body anyway. + .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { + if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { + this.blur(); + } + }); this.tabs = this.tablist.find( "> li:has(a[href])" ) .addClass( "ui-state-default ui-corner-top" ) @@ -15307,6 +15731,13 @@ var tabs = $.widget( "ui.tabs", { this.panels .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .attr( "role", "tabpanel" ); + + // Avoid memory leaks (#10056) + if ( prevTabs ) { + this._off( prevTabs.not( this.tabs ) ); + this._off( prevAnchors.not( this.anchors ) ); + this._off( prevPanels.not( this.panels ) ); + } }, // allow overriding how to find the list for rare usage scenarios (#7715) @@ -15564,6 +15995,8 @@ var tabs = $.widget( "ui.tabs", { .removeAttr( "tabIndex" ) .removeUniqueId(); + this.tablist.unbind( this.eventNamespace ); + this.tabs.add( this.panels ).each(function() { if ( $.data( this, "ui-tabs-destroy" ) ) { $( this ).remove(); @@ -15655,6 +16088,18 @@ var tabs = $.widget( "ui.tabs", { eventData = { tab: tab, panel: panel + }, + complete = function( jqXHR, status ) { + if ( status === "abort" ) { + that.panels.stop( false, true ); + } + + tab.removeClass( "ui-tabs-loading" ); + panel.removeAttr( "aria-busy" ); + + if ( jqXHR === that.xhr ) { + delete that.xhr; + } }; // not remote @@ -15672,28 +16117,21 @@ var tabs = $.widget( "ui.tabs", { panel.attr( "aria-busy", "true" ); this.xhr - .success(function( response ) { + .done(function( response, status, jqXHR ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { panel.html( response ); that._trigger( "load", event, eventData ); + + complete( jqXHR, status ); }, 1 ); }) - .complete(function( jqXHR, status ) { + .fail(function( jqXHR, status ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { - if ( status === "abort" ) { - that.panels.stop( false, true ); - } - - tab.removeClass( "ui-tabs-loading" ); - panel.removeAttr( "aria-busy" ); - - if ( jqXHR === that.xhr ) { - delete that.xhr; - } + complete( jqXHR, status ); }, 1 ); }); } @@ -15718,10 +16156,10 @@ var tabs = $.widget( "ui.tabs", { /*! - * jQuery UI Tooltip 1.11.0 + * jQuery UI Tooltip 1.11.4 * http://jqueryui.com * - * Copyright 2014 jQuery Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * @@ -15730,7 +16168,7 @@ var tabs = $.widget( "ui.tabs", { var tooltip = $.widget( "ui.tooltip", { - version: "1.11.0", + version: "1.11.4", options: { content: function() { // support: IE<9, Opera in jQuery <1.7 @@ -15790,6 +16228,7 @@ var tooltip = $.widget( "ui.tooltip", { // IDs of generated tooltips, needed for destroy this.tooltips = {}; + // IDs of parent tooltips where we removed the title attribute this.parents = {}; @@ -15821,8 +16260,8 @@ var tooltip = $.widget( "ui.tooltip", { this._super( key, value ); if ( key === "content" ) { - $.each( this.tooltips, function( id, element ) { - that._updateContent( element ); + $.each( this.tooltips, function( id, tooltipData ) { + that._updateContent( tooltipData.element ); }); } }, @@ -15831,9 +16270,9 @@ var tooltip = $.widget( "ui.tooltip", { var that = this; // close open tooltips - $.each( this.tooltips, function( id, element ) { + $.each( this.tooltips, function( id, tooltipData ) { var event = $.Event( "blur" ); - event.target = event.currentTarget = element[0]; + event.target = event.currentTarget = tooltipData.element[ 0 ]; that.close( event, true ); }); @@ -15897,6 +16336,7 @@ var tooltip = $.widget( "ui.tooltip", { }); } + this._registerCloseHandlers( event, target ); this._updateContent( target, event ); }, @@ -15911,13 +16351,16 @@ var tooltip = $.widget( "ui.tooltip", { } content = contentOption.call( target[0], function( response ) { - // ignore async response if tooltip was closed already - if ( !target.data( "ui-tooltip-open" ) ) { - return; - } + // IE may instantly serve a cached response for ajax requests // delay this call to _open so the other call to _open runs first that._delay(function() { + + // Ignore async response if tooltip was closed already + if ( !target.data( "ui-tooltip-open" ) ) { + return; + } + // jQuery creates a special event for focusin when it doesn't // exist natively. To improve performance, the native event // object is reused and the type is changed. Therefore, we can't @@ -15935,7 +16378,7 @@ var tooltip = $.widget( "ui.tooltip", { }, _open: function( event, target, content ) { - var tooltip, events, delayedShow, a11yContent, + var tooltipData, tooltip, delayedShow, a11yContent, positionOption = $.extend( {}, this.options.position ); if ( !content ) { @@ -15944,9 +16387,9 @@ var tooltip = $.widget( "ui.tooltip", { // Content can be updated multiple times. If the tooltip already // exists, then just update the content and bail. - tooltip = this._find( target ); - if ( tooltip.length ) { - tooltip.find( ".ui-tooltip-content" ).html( content ); + tooltipData = this._find( target ); + if ( tooltipData ) { + tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content ); return; } @@ -15965,7 +16408,8 @@ var tooltip = $.widget( "ui.tooltip", { } } - tooltip = this._tooltip( target ); + tooltipData = this._tooltip( target ); + tooltip = tooltipData.tooltip; this._addDescribedBy( target, tooltip.attr( "id" ) ); tooltip.find( ".ui-tooltip-content" ).html( content ); @@ -16016,8 +16460,10 @@ var tooltip = $.widget( "ui.tooltip", { } this._trigger( "open", event, { tooltip: tooltip } ); + }, - events = { + _registerCloseHandlers: function( event, target ) { + var events = { keyup: function( event ) { if ( event.keyCode === $.ui.keyCode.ESCAPE ) { var fakeEvent = $.Event(event); @@ -16031,7 +16477,7 @@ var tooltip = $.widget( "ui.tooltip", { // tooltips will handle this in destroy. if ( target[ 0 ] !== this.element[ 0 ] ) { events.remove = function() { - this._removeTooltip( tooltip ); + this._removeTooltip( this._find( target ).tooltip ); }; } @@ -16045,13 +16491,27 @@ var tooltip = $.widget( "ui.tooltip", { }, close: function( event ) { - var that = this, + var tooltip, + that = this, target = $( event ? event.currentTarget : this.element ), - tooltip = this._find( target ); + tooltipData = this._find( target ); + + // The tooltip may already be closed + if ( !tooltipData ) { + + // We set ui-tooltip-open immediately upon open (in open()), but only set the + // additional data once there's actually content to show (in _open()). So even if the + // tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in + // the period between open() and _open(). + target.removeData( "ui-tooltip-open" ); + return; + } + + tooltip = tooltipData.tooltip; // disabling closes the tooltip, so we need to track when we're closing // to avoid an infinite loop in case the tooltip becomes disabled on close - if ( this.closing ) { + if ( tooltipData.closing ) { return; } @@ -16066,6 +16526,7 @@ var tooltip = $.widget( "ui.tooltip", { this._removeDescribedBy( target ); + tooltipData.hiding = true; tooltip.stop( true ); this._hide( tooltip, this.options.hide, function() { that._removeTooltip( $( this ) ); @@ -16087,9 +16548,11 @@ var tooltip = $.widget( "ui.tooltip", { }); } - this.closing = true; + tooltipData.closing = true; this._trigger( "close", event, { tooltip: tooltip } ); - this.closing = false; + if ( !tooltipData.hiding ) { + tooltipData.closing = false; + } }, _tooltip: function( element ) { @@ -16104,13 +16567,16 @@ var tooltip = $.widget( "ui.tooltip", { .appendTo( tooltip ); tooltip.appendTo( this.document[0].body ); - this.tooltips[ id ] = element; - return tooltip; + + return this.tooltips[ id ] = { + element: element, + tooltip: tooltip + }; }, _find: function( target ) { var id = target.data( "ui-tooltip-id" ); - return id ? $( "#" + id ) : $(); + return id ? this.tooltips[ id ] : null; }, _removeTooltip: function( tooltip ) { @@ -16122,10 +16588,11 @@ var tooltip = $.widget( "ui.tooltip", { var that = this; // close open tooltips - $.each( this.tooltips, function( id, element ) { + $.each( this.tooltips, function( id, tooltipData ) { // Delegate to close method to handle common cleanup - var event = $.Event( "blur" ); - event.target = event.currentTarget = element[0]; + var event = $.Event( "blur" ), + element = tooltipData.element; + event.target = event.currentTarget = element[ 0 ]; that.close( event, true ); // Remove immediately; destroying an open tooltip doesn't use the diff --git a/lib/scripts/jquery/jquery-ui.min.js b/lib/scripts/jquery/jquery-ui.min.js index b2fdf864ae214f18bd1bf566df3738843f04d654..5824d1292db4b99708fff6c950bf64861f083aa2 100644 --- a/lib/scripts/jquery/jquery-ui.min.js +++ b/lib/scripts/jquery/jquery-ui.min.js @@ -1,13 +1,13 @@ -/*! jQuery UI - v1.11.0 - 2014-06-26 +/*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap=#"+a+"]")[0],!!o&&i(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",function(){e.datepicker._isDisabledDatepicker(g.inline?t.parent()[0]:g.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))})}function o(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function r(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.0",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(){var t=this.css("position"),i="absolute"===t,s=this.parents().filter(function(){var t=e(this);return i&&"static"===t.css("position")?!1:/(auto|scroll)/.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==t&&s.length?s:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var h=0,l=Array.prototype.slice;e.cleanData=function(t){return function(i){for(var s,n=0;null!=(s=i[n]);n++)try{e(s).triggerHandler("remove")}catch(a){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=l.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=l.call(arguments,1),r=this;return n=!a&&o.length?e.widget.extend.apply(null,[n].concat(o)):n,a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))}),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var u=!1;e(document).mouseup(function(){u=!1}),e.widget("ui.mouse",{version:"1.11.0",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!u){this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),u=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):t.which?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),u=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),N=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=N[0],M.top+=N[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+N[0],p[1]+N[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,e.top+p+f+m>u&&(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,e.top+p+f+m>d&&(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.0",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.length&&(!t.length||e.index()<t.index()),l=this.options.animate||{},u=h&&l.down||l,d=function(){o._toggleComplete(i)};return"number"==typeof u&&(a=u),"string"==typeof u&&(n=u),n=n||u.easing||l.easing,a=a||u.duration||l.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:d,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?r+=i.now:"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,d):e.animate(this.showProps,a,n,d)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.0",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1 -}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function i(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,h=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:h=!1,n=this.previousFilter||"",a=String.fromCharCode(t.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.find(this.options.items).filter(function(){return r.test(e(this).text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(t.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.find(this.options.items).filter(function(){return r.test(e(this).text())})),s.length?(this.focus(t,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)}}),e.widget("ui.autocomplete",{version:"1.11.0",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&jQuery.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var d,c="ui-button ui-widget ui-state-default ui-corner-all",p="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",f=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},m=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.0",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,f),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(c).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===d&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];m(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),d=this,t.document.one("mouseup",function(){d=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(c+" ui-state-active "+p).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?m(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(p),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.0",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.0"}});var g;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return o(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var r,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),o(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,r,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),o(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target);return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s)) -}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,r,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(o(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,g=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t),t.dpDiv.find("."+this._dayOverClass+" a");var i,s=this._getNumberOfMonths(t),n=s[1],a=17;t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n=RegExp("^\\d{1,"+s+"}"),a=i.substring(h).match(n);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,N,C,A,I,P,z,H,F,E,j,O,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",N=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)C=(x+u)%7,N+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[C]+"'>"+p[C]+"</span></th>";for(M+=N+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),I=(this._getFirstDayOfMonth(et,Z)-u+7)%7,P=Math.ceil((I+A)/7),z=Q?this.maxRows>P?this.maxRows:P:P,this.maxRows=z,H=this._daylightSavingAdjust(new Date(et,Z,1-I)),F=0;z>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(H)+"</td>":"",x=0;7>x;x++)j=g?g.apply(e.input?e.input[0]:null,[H]):[!0,""],O=H.getMonth()!==Z,W=O&&!y||!j[0]||X&&X>H||$&&H>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(O?" ui-datepicker-other-month":"")+(H.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===H.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(O&&!v?"":" "+j[1]+(H.getTime()===G.getTime()?" "+this._currentClass:"")+(H.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(O&&!v||!j[2]?"":" title='"+j[2].replace(/'/g,"'")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+H.getMonth()+"' data-year='"+H.getFullYear()+"'")+">"+(O&&!v?" ":W?"<span class='ui-state-default'>"+H.getDate()+"</span>":"<a class='ui-state-default"+(H.getTime()===R.getTime()?" ui-state-highlight":"")+(H.getTime()===G.getTime()?" ui-state-active":"")+(O?" ui-priority-secondary":"")+"' href='#'>"+H.getDate()+"</a>")+"</td>",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.0",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.document[0],s=this.options;try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(n){}return this.helper||s.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(s.iframeFix===!0?"iframe":s.iframeFix).each(function(){e("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this._removeHandleClassName(),e(this.options.handle||this.element).addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.element.find(".ui-draggable-handle").addBack().removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relative_container=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i} -},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),"drag"===t&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=s.options,a=e.extend({},i,{item:s.element});s.sortables=[],e(n.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",t,a))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});e.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,n))})},drag:function(t,i,s){var n=this;e.each(s.sortables,function(){var a=!1,o=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(a=!0,e.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(o.instance.element[0],this.instance.element[0])&&(a=!1),a})),a?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",t),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",t),s.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParent[0]!==i.document[0]&&"HTML"!==i.scrollParent[0].tagName&&(i.overflowOffset=i.scrollParent.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.document[0];s.scrollParent[0]!==o&&"HTML"!==s.scrollParent[0].tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+s.scrollParent[0].offsetHeight-t.pageY<n.scrollSensitivity?s.scrollParent[0].scrollTop=a=s.scrollParent[0].scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(s.scrollParent[0].scrollTop=a=s.scrollParent[0].scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+s.scrollParent[0].offsetWidth-t.pageX<n.scrollSensitivity?s.scrollParent[0].scrollLeft=a=s.scrollParent[0].scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(s.scrollParent[0].scrollLeft=a=s.scrollParent[0].scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(o).scrollTop()<n.scrollSensitivity?a=e(o).scrollTop(e(o).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(o).scrollTop())<n.scrollSensitivity&&(a=e(o).scrollTop(e(o).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(o).scrollLeft()<n.scrollSensitivity?a=e(o).scrollLeft(e(o).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(o).scrollLeft())<n.scrollSensitivity&&(a=e(o).scrollLeft(e(o).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left,l=h+s.snapElements[c].width,u=s.snapElements[c].top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top-s.margins.top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top-s.margins.top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left-s.margins.left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left-s.margins.left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top-s.margins.top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top-s.margins.top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left-s.margins.left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left-s.margins.left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=this.element.children(this.handles[i]).first().show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.originalPosition={left:i,top:s},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s=this.helper,n={},a=this.originalMousePosition,o=this.axis,r=t.pageX-a.left||0,h=t.pageY-a.top||0,l=this._change[o];return this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height},l?(i=l.apply(this,[t,r,h]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),this.position.top!==this.prevPosition.top&&(n.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(n.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(n.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(n)||this._trigger("resize",t,this.ui()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var e,t,i,s,n,a=this.helper||this.element;for(e=0;this._proportionallyResizeElements.length>e;e++){if(n=this._proportionallyResizeElements[e],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],t=0;i.length>t;t++)this.borderDif[t]=(parseInt(i[t],10)||0)+(parseInt(s[t],10)||0);n.css({height:a.height()-this.borderDif[0]-this.borderDif[2]||0,width:a.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition,prevSize:this.prevSize,prevPosition:this.prevPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t,i){var s,n,a,o,r=e(this).resizable("instance"),h=r.options,l=r.containerOffset,u=r.position,d=r._aspectRatio||t.shiftKey,c={top:0,left:0},p=r.containerElement,f=!0;p[0]!==document&&/static/.test(p.css("position"))&&(c=l),u.left<(r._helper?l.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-l.left:r.position.left-c.left),d&&(r.size.height=r.size.width/r.aspectRatio,f=!1),r.position.left=h.helper?l.left:0),u.top<(r._helper?l.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-l.top:r.position.top),d&&(r.size.width=r.size.height*r.aspectRatio,f=!1),r.position.top=r._helper?l.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top,s=Math.abs((r._helper?r.offset.left-c.left:r.offset.left-l.left)+r.sizeDiff.width),n=Math.abs((r._helper?r.offset.top-c.top:r.offset.top-l.top)+r.sizeDiff.height),a=r.containerElement.get(0)===r.element.parent().get(0),o=/relative|absolute/.test(r.containerElement.css("position")),a&&o&&(s-=Math.abs(r.parentData.left)),s+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-s,d&&(r.size.height=r.size.width/r.aspectRatio,f=!1)),n+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-n,d&&(r.size.width=r.size.height*r.aspectRatio,f=!1)),f||(r.position.left=i.prevPosition.left,r.position.top=i.prevPosition.top,r.size.width=i.prevSize.width,r.size.height=i.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size,n=t.originalSize,a=t.originalPosition,o=t.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,u=Math.round((s.width-n.width)/h)*h,d=Math.round((s.height-n.height)/l)*l,c=n.width+u,p=n.height+d,f=i.maxWidth&&c>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>c,v=i.minHeight&&i.minHeight>p;i.grid=r,g&&(c+=h),v&&(p+=l),f&&(c-=h),m&&(p-=l),/^(se|s|e)$/.test(o)?(t.size.width=c,t.size.height=p):/^(ne)$/.test(o)?(t.size.width=c,t.size.height=p,t.position.top=a.top-d):/^(sw)$/.test(o)?(t.size.width=c,t.size.height=p,t.position.left=a.left-u):(p-l>0?(t.size.height=p,t.position.top=a.top-d):(t.size.height=l,t.position.top=a.top+n.height-l),c-h>0?(t.size.width=c,t.position.left=a.left-u):(t.size.width=h,t.position.left=a.left+n.width-h))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.0",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0;if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable() -}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._untrackInstance(),this._trackingInstances().unshift(this),this._focusedElement=e(t.target)}})},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.0",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=e(this).droppable("instance");return t.options.greedy&&!t.options.disabled&&t.options.scope===s.options.scope&&t.accept.call(t.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(t,{offset:t.element.offset()}),t.options.tolerance)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s){if(!i.offset)return!1;var n,a,o=(t.positionAbs||t.position.absolute).left,r=(t.positionAbs||t.position.absolute).top,h=o+t.helperProportions.width,l=r+t.helperProportions.height,u=i.offset.left,d=i.offset.top,c=u+i.proportions().width,p=d+i.proportions().height;switch(s){case"fit":return o>=u&&c>=h&&r>=d&&p>=l;case"intersect":return o+t.helperProportions.width/2>u&&c>h-t.helperProportions.width/2&&r+t.helperProportions.height/2>d&&p>l-t.helperProportions.height/2;case"pointer":return n=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,a=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,e(a,d,i.proportions().height)&&e(n,u,i.proportions().width);case"touch":return(r>=d&&p>=r||l>=d&&p>=l||d>r&&l>p)&&(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var v="ui-effects-";e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(jQuery.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.0",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(v+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(v+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; -f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.0",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.0",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this,i=this.element.attr("tabindex");this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:i||this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._setOption("width",this.options.width),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this._setOption("width",this.options.width)},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html(" ")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{click:"_toggle",keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&(t||(t=this.element.outerWidth()),this.button.outerWidth(t))},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.attr("value"),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||this._isFloating(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); -return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-e(document).scrollTop()<o.scrollSensitivity?r=e(document).scrollTop(e(document).scrollTop()-o.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<o.scrollSensitivity&&(r=e(document).scrollTop(e(document).scrollTop()+o.scrollSpeed)),t.pageX-e(document).scrollLeft()<o.scrollSensitivity?r=e(document).scrollLeft(e(document).scrollLeft()-o.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<o.scrollSensitivity&&(r=e(document).scrollLeft(e(document).scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?t.currentItem.children().each(function(){e("<td> </td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!1}if(t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.0",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:r(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:r(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:r(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:r(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(r(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.0",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0] -}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){o.html(e),s._trigger("load",i,r)},1)}).complete(function(e,t){setTimeout(function(){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.0",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){e.data("ui-tooltip-open")&&n._delay(function(){t&&(t.type=a),this._open(t,e,i)})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){l.of=e,a.is(":hidden")||a.position(l)}var a,o,r,h,l=e.extend({},this.options.position);if(s){if(a=this._find(i),a.length)return a.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(h=s.clone(),h.removeAttr("id").find("[id]").removeAttr("id")):h=s,e("<div>").html(h).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):a.position(e.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},e.fx.interval)),this._trigger("open",t,{tooltip:a}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}},i[0]!==this.element[0]&&(o.remove=function(){this._removeTooltip(a)}),t&&"mouseover"!==t.type||(o.mouseleave="close"),t&&"focusin"!==t.type||(o.focusout="close"),this._on(!0,i,o)}},close:function(t){var i=this,s=e(t?t.currentTarget:this.element),n=this._find(s);this.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.stop(!0),this._hide(n,this.options.hide,function(){i._removeTooltip(e(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,s){e(s.element).attr("title",s.title),delete i.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:n}),this.closing=!1)},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]=t,i},_find:function(t){var i=t.data("ui-tooltip-id");return i?e("#"+i):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s[0],t.close(n,!0),e("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title")||s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file +(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function h(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=u.call(arguments,1),r=this;return a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),C=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=C[0],M.top+=C[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+C[0],p[1]+C[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()<t.index()),u=this.options.animate||{},d=l&&u.down||u,c=function(){o._toggleComplete(i)};return"number"==typeof d&&(a=d),"string"==typeof d&&(n=d),n=n||d.easing||u.easing,a=a||d.duration||u.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:c,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void 0):t.animate(this.hideProps,a,n,c):e.animate(this.showProps,a,n,c)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget); +i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete;var c,p="ui-button ui-widget ui-state-default ui-corner-all",f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},g=function(t){var i=t.name,s=t.form,n=e([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?e(s).find("[name='"+i+"'][type=radio]"):e("[name='"+i+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),n};e.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,i=this.options,s="checkbox"===this.type||"radio"===this.type,n=s?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===c&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||e(this).removeClass(n)}).bind("click"+this.eventNamespace,function(e){i.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),s&&this.element.bind("change"+this.eventNamespace,function(){t.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return i.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var s=t.element[0];g(s).not(s).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return i.disabled?!1:(e(this).addClass("ui-state-active"),c=this,t.document.one("mouseup",function(){c=null}),void 0)}).bind("mouseup"+this.eventNamespace,function(){return i.disabled?!1:(e(this).removeClass("ui-state-active"),void 0)}).bind("keydown"+this.eventNamespace,function(t){return i.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),void 0)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),t&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")),void 0):(this._resetButton(),void 0)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?g(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),void 0;var t=this.buttonElement.removeClass(f),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,a=[];s.primary||s.secondary?(this.options.text&&a.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(a.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):a.push("ui-button-text-only"),t.addClass(a.join(" "))}}),e.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction"),i=this.element.find(this.options.items),s=i.filter(":ui-button");i.not(":ui-button").button(),s.button("refresh"),this.buttons=i.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),e.ui.button,e.extend(e.ui,{datepicker:{version:"1.11.4"}});var v;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return r(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e("<span class='"+this._appendClass+"'>"+o+"</span>"),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("<button type='button'></button>").addClass(this._triggerClass).html(a?e("<img/>").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var o,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),r(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),v===n&&(v=null))},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,o,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),r(l.settings,n),null!==o&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,o)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target); +return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,o,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(r(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),o=!1,e(t).parents().each(function(){return o|="fixed"===e(this).css("position"),!o}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,o),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":o?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,v=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),n=s[1],a=17,r=t.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n="y"===e?s:1,a=RegExp("^\\d{"+n+","+s+"}"),o=i.substring(h).match(a);if(!o)throw"Missing number at position "+h;return h+=o[0].length,parseInt(o[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,M,C,N,A,P,I,H,z,F,E,O,j,W,L=new Date,R=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(e,"isRTL"),B=this._get(e,"showButtonPanel"),J=this._get(e,"hideIfNoPrevNext"),q=this._get(e,"navigationAsDateFormat"),K=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),Q=1!==K[0]||1!==K[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-V,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":J?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(e,"nextText"),n=q?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":J?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?G:R,o=q?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;K[0]>w;w++){for(k="",this.maxRows=4,T=0;K[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",Q){if(M+="<div class='ui-datepicker-group",K[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");break;case K[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,X,$,w>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",C=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)N=(x+u)%7,C+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[N]+"'>"+p[N]+"</span></th>";for(M+=C+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),H=Q?this.maxRows>I?this.maxRows:I:I,this.maxRows=H,z=this._daylightSavingAdjust(new Date(et,Z,1-P)),F=0;H>F;F++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(z)+"</td>":"",x=0;7>x;x++)O=g?g.apply(e.input?e.input[0]:null,[z]):[!0,""],j=z.getMonth()!==Z,W=j&&!y||!O[0]||X&&X>z||$&&z>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(j?" ui-datepicker-other-month":"")+(z.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===z.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(W?" "+this._unselectableClass+" ui-state-disabled":"")+(j&&!v?"":" "+O[1]+(z.getTime()===G.getTime()?" "+this._currentClass:"")+(z.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(j&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"'")+"'")+(W?"":" data-handler='selectDay' data-event='click' data-month='"+z.getMonth()+"' data-year='"+z.getFullYear()+"'")+">"+(j&&!v?" ":W?"<span class='ui-state-default'>"+z.getDate()+"</span>":"<a class='ui-state-default"+(z.getTime()===R.getTime()?" ui-state-highlight":"")+(z.getTime()===G.getTime()?" ui-state-active":"")+(j?" ui-priority-secondary":"")+"' href='#'>"+z.getDate()+"</a>")+"</td>",z.setDate(z.getDate()+1),z=this._daylightSavingAdjust(z);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(Q?"</div>"+(K[0]>0&&T===K[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),k+=M}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(a||!g)_+="<span class='ui-datepicker-month'>"+o[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||n.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+r[u]+"</option>");_+="</select>"}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.4",e.datepicker,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) +},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n})),n?(a.isOver||(a.isOver=1,s._parent=i.helper.parent(),a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY<n.scrollSensitivity?o.scrollTop=a=o.scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(o.scrollTop=a=o.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+o.offsetWidth-t.pageX<n.scrollSensitivity?o.scrollLeft=a=o.scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(o.scrollLeft=a=o.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(r).scrollTop()<n.scrollSensitivity?a=e(r).scrollTop(e(r).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(r).scrollTop())<n.scrollSensitivity&&(a=e(r).scrollTop(e(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(r).scrollLeft()<n.scrollSensitivity?a=e(r).scrollLeft(e(r).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(r).scrollLeft())<n.scrollSensitivity&&(a=e(r).scrollLeft(e(r).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=e(this.handles[i]),this._on(this.handles[i],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options;e(i.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0};e(n.alsoResize).each(function(){var t=e(this),s=e(this).data("ui-resizable-alsoresize"),n={},a=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(a,function(e,t){var i=(s[t]||0)+(r[t]||0);i&&i>=0&&(n[t]=i||null)}),t.css(n)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=l-t.width,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,s=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(n){}this._hide(this.uiDialog,this.options.hide,function(){s._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),a=Math.max.apply(null,n);return a>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",a+1),s=!0),s&&!i&&this._trigger("focus",t),s},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),void 0; +if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),void 0):(e.each(i,function(i,s){var n,a;s=e.isFunction(s)?{click:s,text:i}:s,s=e.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(t.element[0],arguments)},a={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,e("<button></button>",s).button(a).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,t(n))},drag:function(e,s){i._trigger("drag",e,t(s))},stop:function(n,a){var o=a.offset.left-i.document.scrollLeft(),r=a.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" "+"top"+(r>=0?"+":"")+r,of:i.window},e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,t(a))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,s=this.options,n=s.resizable,a=this.uiDialog.css("position"),o="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:o,start:function(s,n){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,t(n))},resize:function(e,s){i._trigger("resize",e,t(s))},stop:function(n,a){var o=i.uiDialog.offset(),r=o.left-i.document.scrollLeft(),h=o.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,t(a))}}).css("position",a)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),i=e.inArray(this,t);-1!==i&&t.splice(i,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};e.each(t,function(e,t){i._setOption(e,t),e in i.sizeRelatedOptions&&(s=!0),e in i.resizableRelatedOptions&&(n[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,t){var i,s,n=this.uiDialog;"dialogClass"===e&&n.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=n.is(":data(ui-draggable)"),i&&!t&&n.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(s=n.is(":data(ui-resizable)"),s&&!t&&n.resizable("destroy"),s&&"string"==typeof t&&n.resizable("option","handles",t),s||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),e=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),t=Math.max(0,s.minHeight-e),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-e):"none","auto"===s.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),e.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable;var y="ui-effects-",b=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(b),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(b.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.4",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(y+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(y+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()}; +f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})},e.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return void 0===e?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),void 0)},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this;this.label=e("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),e("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=e("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(e,i){e.preventDefault(),t._setSelection(),t._select(i.item.data("ui-selectmenu-item"),e)},focus:function(e,i){var s=i.item.data("ui-selectmenu-item");null!=t.focusIndex&&s.index!==t.focusIndex&&(t._trigger("focus",e,{item:s}),t.isOpen||t._select(s,e)),t.focusIndex=s.index,t.button.attr("aria-activedescendant",t.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var e,t=this.element.find("option");t.length&&(this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(t,i){var s=this,n="";e.each(i,function(i,a){a.optgroup!==n&&(e("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(a.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:a.optgroup}).appendTo(t),n=a.optgroup),s._renderItemData(t,a)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,i){var s=e("<li>");return i.disabled&&s.addClass("ui-state-disabled"),this._setText(s,i.label),s.appendTo(t)},_setText:function(e,t){t?e.text(t):e.html(" ")},_move:function(e,t){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),s="first"===e||"last"===e?i["first"===e?"prevAll":"nextAll"](n).eq(-1):i[e+"All"](n).eq(0),s.length&&this.menuInstance.focus(t,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?(e=window.getSelection(),e.removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection(),e.rangeCount&&(this.range=e.getRangeAt(0))):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var i=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),i=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),i=!1}i&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex);t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this._setText(this.buttonText,e.label),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==i&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){"icons"===e&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button),this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"disabled"===e&&(this.menuInstance.option("disabled",t),this.button.toggleClass("ui-state-disabled",t).attr("aria-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===e&&this._resizeButton()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;e||(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var i=[];t.each(function(t,s){var n=e(s),a=n.parent("optgroup");i.push({element:n,index:t,value:n.val(),label:n.text(),optgroup:a.attr("label")||"",disabled:a.prop("disabled")||n.prop("disabled")})}),this.items=i},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),e.widget("ui.slider",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),t=n.length;i>t;t++)o.push(a);this.handles=n.add(e(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,a,o,r,h,l,u=this,d=this.options;return d.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(n>i||n===i&&(t===u._lastChangedValue||u.values(t)===d.min))&&(n=i,a=e(this),o=t)}),r=this._start(t,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-a.width()/2,top:t.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,n,a;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(n=this.values(),n[t]=i,a=this._trigger("slide",e,{handle:this.handles[t],value:i,values:n}),s=this.values(t?0:1),a!==!1&&this.values(t,i))):i!==this.value()&&(a=this._trigger("slide",e,{handle:this.handles[t],value:i}),a!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(t,i){var s,n,a;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),void 0;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(t,i){var s,n=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(n=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!i),this._super(t,i),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),i=this.options.step,s=Math.floor(+(e-t).toFixed(this._precision())/i)*i;e=s+t,this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var t,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:r.animate}))),t=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(t){var i,s,n,a,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(t.target).addClass("ui-state-active"),i=this._start(t,o),i===!1))return}switch(a=this.options.step,s=n=this.options.values&&this.options.values.length?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+a);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-a)}this._slide(t,o,n)},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this)); +return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-this.document.scrollTop()<o.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<o.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),t.pageX-this.document.scrollLeft()<o.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s],this.document[0]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i],this.document[0]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===s?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("<tr>",t.document[0]).appendTo(n)):"tr"===s?t._createTrPlaceholder(t.currentItem,n):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var s=this;t.children().each(function(){e("<td> </td>",s.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var n=i.attr(s);void 0!==n&&n.length&&(t[s]=n)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(this.widget().toggleClass("ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable"))},_setOptions:h(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null===e?!1:e===this._adjustValue(e)},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:h(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:h(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:h(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:h(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(h(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),e.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var i,s;t=t.cloneNode(!1),i=t.href.replace(e,""),s=location.href.replace(e,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return t.hash.length>1&&i===s}}(),_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var t=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===t&&(s&&this.tabs.each(function(i,n){return e(n).attr("aria-controls")===s?(t=i,!1):void 0}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===t||-1===t)&&(t=this.tabs.length?0:!1)),t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),-1===t&&(t=i?!1:0)),!i&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var i=e(this.document[0].activeElement).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:s++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,s--;break;case e.ui.keyCode.END:s=this.anchors.length-1;break;case e.ui.keyCode.HOME:s=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}t.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),t.ctrlKey||t.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,i){function s(){return t>n&&(t=0),0>t&&(t=n),t}for(var n=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){return"active"===e?(this._activate(t),void 0):"disabled"===e?(this._setupDisabled(t),void 0):(this._super(e,t),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",t),t||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t),void 0)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,i=this.tabs,s=this.anchors,n=this.panels; +this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,s){var n,a,o,r=e(s).uniqueId().attr("id"),h=e(s).closest("li"),l=h.attr("aria-controls");t._isLocal(s)?(n=s.hash,o=n.substring(1),a=t.element.find(t._sanitizeSelector(n))):(o=h.attr("aria-controls")||e({}).uniqueId()[0].id,n="#"+o,a=t.element.find(n),a.length||(a=t._createPanel(o),a.insertAfter(t.panels[i-1]||t.tablist)),a.attr("aria-live","polite")),a.length&&(t.panels=t.panels.add(a)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":o,"aria-labelledby":r}),a.attr("aria-labelledby",r)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,n=e(t.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?e():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:r?e():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?e():a,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,u))},_toggle:function(t,i){function s(){a.running=!1,a._trigger("activate",t,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var i=this.options.disabled;i!==!1&&(void 0===t?i=!1:(t=this._getIndex(t),i=e.isArray(i)?e.map(i,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,i){return i!==t?i:null})),this._setupDisabled(i))},disable:function(t){var i=this.options.disabled;if(i!==!0){if(void 0===t)i=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,i))return;i=e.isArray(i)?e.merge([t],i).sort():[t]}this._setupDisabled(i)}},load:function(t,i){t=this._getIndex(t);var s=this,n=this.tabs.eq(t),a=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),r={tab:n,panel:o},h=function(e,t){"abort"===t&&s.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===s.xhr&&delete s.xhr};this._isLocal(a[0])||(this.xhr=e.ajax(this._ajaxSettings(a,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(e,t,n){setTimeout(function(){o.html(e),s._trigger("load",i,r),h(n,t)},1)}).fail(function(e,t){setTimeout(function(){h(e,t)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,a){return n._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:a},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),e.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),n=e.inArray(i,s);-1!==n&&s.splice(n,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t.element)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur");n.target=n.currentTarget=s.element[0],t.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(t,s),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,n=this,a=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){n._delay(function(){e.data("ui-tooltip-open")&&(t&&(t.type=a),this._open(t,e,i))})}),i&&this._open(t,e,i),void 0)},_open:function(t,i,s){function n(e){l.of=e,o.is(":hidden")||o.position(l)}var a,o,r,h,l=e.extend({},this.options.position);if(s){if(a=this._find(i))return a.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),a=this._tooltip(i),o=a.tooltip,this._addDescribedBy(i,o.attr("id")),o.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),s.clone?(h=s.clone(),h.removeAttr("id").find("[id]").removeAttr("id")):h=s,e("<div>").html(h).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:n}),n(t)):o.position(e.extend({of:i},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){o.is(":visible")&&(n(l.of),clearInterval(r))},e.fx.interval)),this._trigger("open",t,{tooltip:o})}},_registerCloseHandlers:function(t,i){var s={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var s=e.Event(t);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),t&&"mouseover"!==t.type||(s.mouseleave="close"),t&&"focusin"!==t.type||(s.focusout="close"),this._on(!0,i,s)},close:function(t){var i,s=this,n=e(t?t.currentTarget:this.element),a=this._find(n);return a?(i=a.tooltip,a.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),a.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(e(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),a.closing=!0,this._trigger("close",t,{tooltip:i}),a.hiding||(a.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(t){var i=e("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),s=i.uniqueId().attr("id");return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[s]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var n=e.Event("blur"),a=s.element;n.target=n.currentTarget=a[0],t.close(n,!0),e("#"+i).remove(),a.data("ui-tooltip-title")&&(a.attr("title")||a.attr("title",a.data("ui-tooltip-title")),a.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}); \ No newline at end of file diff --git a/lib/scripts/jquery/jquery.js b/lib/scripts/jquery/jquery.js index d4b67f7e6c1a94df167f31657769717a71581066..6feb11086f45e266dd2334213479f0dc2276fb02 100644 --- a/lib/scripts/jquery/jquery.js +++ b/lib/scripts/jquery/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.11.1 + * jQuery JavaScript Library v1.11.3 * http://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * http://jquery.org/license * - * Date: 2014-05-01T17:42Z + * Date: 2015-04-28T16:19Z */ (function( global, factory ) { @@ -64,7 +64,7 @@ var support = {}; var - version = "1.11.1", + version = "1.11.3", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -269,7 +269,8 @@ jQuery.extend({ // parseFloat NaNs numeric-cast false positives (null|true|false|"") // ...but misinterprets leading-number strings, particularly hex literals ("0x...") // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; }, isEmptyObject: function( obj ) { @@ -568,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli }); function isArraylike( obj ) { - var length = obj.length, + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { @@ -584,14 +590,14 @@ function isArraylike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v1.10.19 + * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * - * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2014-04-18 + * Date: 2014-12-16 */ (function( window ) { @@ -618,7 +624,7 @@ var i, contains, // Instance-specific data - expando = "sizzle" + -(new Date()), + expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, @@ -633,7 +639,6 @@ var i, }, // General-purpose constants - strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, // Instance methods @@ -643,12 +648,13 @@ var i, push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { var i = 0, - len = this.length; + len = list.length; for ( ; i < len; i++ ) { - if ( this[i] === elem ) { + if ( list[i] === elem ) { return i; } } @@ -688,6 +694,7 @@ var i, ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), @@ -739,6 +746,14 @@ var i, String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); }; // Optimize for push.apply( _, NodeList ) @@ -781,19 +796,18 @@ function Sizzle( selector, context, results, seed ) { context = context || document; results = results || []; + nodeType = context.nodeType; - if ( !selector || typeof selector !== "string" ) { - return results; - } + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; + return results; } - if ( documentIsHTML && !seed ) { + if ( !seed && documentIsHTML ) { - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // Speed-up: Sizzle("#ID") if ( (m = match[1]) ) { if ( nodeType === 9 ) { @@ -825,7 +839,7 @@ function Sizzle( selector, context, results, seed ) { return results; // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + } else if ( (m = match[3]) && support.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } @@ -835,7 +849,7 @@ function Sizzle( selector, context, results, seed ) { if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { nid = old = expando; newContext = context; - newSelector = nodeType === 9 && selector; + newSelector = nodeType !== 1 && selector; // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root @@ -1022,7 +1036,7 @@ function createPositionalPseudo( fn ) { * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; + return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience @@ -1046,9 +1060,8 @@ isXML = Sizzle.isXML = function( elem ) { * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; // If no document and documentElement is available, return if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { @@ -1058,9 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Set our document document = doc; docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); + parent = doc.defaultView; // Support: IE>8 // If iframe document is assigned to "document" variable and if iframe has been reloaded, @@ -1069,21 +1080,22 @@ setDocument = Sizzle.setDocument = function( node ) { if ( parent && parent !== parent.top ) { // IE11 does not have attachEvent, so all must suffer if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); + parent.addEventListener( "unload", unloadHandler, false ); } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); + parent.attachEvent( "onunload", unloadHandler ); } } + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) support.attributes = assert(function( div ) { div.className = "i"; return !div.getAttribute("className"); @@ -1098,17 +1110,8 @@ setDocument = Sizzle.setDocument = function( node ) { return !div.getElementsByTagName("*").length; }); - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "<div class='a'></div><div class='a i'></div>"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name @@ -1122,7 +1125,7 @@ setDocument = Sizzle.setDocument = function( node ) { // ID find and filter if ( support.getById ) { Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var m = context.getElementById( id ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 @@ -1143,7 +1146,7 @@ setDocument = Sizzle.setDocument = function( node ) { Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; @@ -1152,14 +1155,20 @@ setDocument = Sizzle.setDocument = function( node ) { // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); } } : + function( tag, context ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments @@ -1177,7 +1186,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + if ( documentIsHTML ) { return context.getElementsByClassName( className ); } }; @@ -1206,13 +1215,15 @@ setDocument = Sizzle.setDocument = function( node ) { // setting a boolean content attribute, // since its presence should be enough // http://bugs.jquery.com/ticket/12359 - div.innerHTML = "<select msallowclip=''><option selected=''></option></select>"; + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { + if ( div.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } @@ -1222,12 +1233,24 @@ setDocument = Sizzle.setDocument = function( node ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !div.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } }); assert(function( div ) { @@ -1344,7 +1367,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Maintain original order return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } @@ -1371,7 +1394,7 @@ setDocument = Sizzle.setDocument = function( node ) { aup ? -1 : bup ? 1 : sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check @@ -1434,7 +1457,7 @@ Sizzle.matchesSelector = function( elem, expr ) { elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch(e) {} + } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; @@ -1653,7 +1676,7 @@ Expr = Sizzle.selectors = { return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); }); }, @@ -1675,7 +1698,7 @@ Expr = Sizzle.selectors = { operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; @@ -1795,7 +1818,7 @@ Expr = Sizzle.selectors = { matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); + idx = indexOf( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : @@ -1834,6 +1857,8 @@ Expr = Sizzle.selectors = { function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; return !results.pop(); }; }), @@ -1845,6 +1870,7 @@ Expr = Sizzle.selectors = { }), "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; @@ -2266,7 +2292,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } @@ -2301,13 +2327,16 @@ function matcherFromTokens( tokens ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; + return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; } ]; for ( ; i < len; i++ ) { @@ -2557,7 +2586,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; -// Support: Chrome<14 +// Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; @@ -6115,7 +6144,14 @@ var getStyles, curCSS, if ( window.getComputedStyle ) { getStyles = function( elem ) { - return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); }; curCSS = function( elem, name, computed ) { @@ -6363,6 +6399,8 @@ function addGetHookIf( conditionFn, hookFn ) { reliableMarginRightVal = !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); + + div.removeChild( contents ); } // Support: IE8 @@ -9070,7 +9108,8 @@ jQuery.extend({ } // We can fire global events as of now if asked to - fireGlobals = s.global; + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { @@ -9329,13 +9368,6 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; }); -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -}); - jQuery._evalUrl = function( url ) { return jQuery.ajax({ @@ -9561,8 +9593,9 @@ var xhrId = 0, // Support: IE<10 // Open requests must be manually aborted on unload (#5280) -if ( window.ActiveXObject ) { - jQuery( window ).on( "unload", function() { +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( undefined, true ); } @@ -9996,6 +10029,16 @@ jQuery.fn.load = function( url, params, callback ) { +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; diff --git a/lib/scripts/jquery/jquery.min.js b/lib/scripts/jquery/jquery.min.js index ab28a24729b320bffd3d2f60302af949db39ab85..0f60b7bd0d9c395e1748cc962810d2dee9bb9fc2 100644 --- a/lib/scripts/jquery/jquery.min.js +++ b/lib/scripts/jquery/jquery.min.js @@ -1,4 +1,5 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px") -},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; + +return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){ +return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m}); diff --git a/lib/scripts/jquery/update.sh b/lib/scripts/jquery/update.sh index 741fcff1cf4d6789f7077f48d838f72f822275e1..ed9dcab7b3c1f24576f16a4b914937d87bc11556 100755 --- a/lib/scripts/jquery/update.sh +++ b/lib/scripts/jquery/update.sh @@ -9,13 +9,17 @@ # @link http://code.jquery.com/ # Adjust version for jQuery-UI here - there's no good latest link -JQUI_VERSION='1.11.0' +JQUI_VERSION='1.11.4' JQUI_HOST="https://code.jquery.com/ui/$JQUI_VERSION" JQUI_GIT="https://raw.githubusercontent.com/jquery/jquery-ui/$JQUI_VERSION/ui" +# Adjust version for jQueryhere - latest updates slowly +JQ_VERSION='1.11.3' + + # load jQuery -wget -nv http://code.jquery.com/jquery-latest.min.js -O jquery.min.js -wget -nv http://code.jquery.com/jquery-latest.js -O jquery.js +wget -nv http://code.jquery.com/jquery-${JQ_VERSION}.min.js -O jquery.min.js +wget -nv http://code.jquery.com/jquery-${JQ_VERSION}.js -O jquery.js # load jQuery-UI wget -nv "$JQUI_HOST/jquery-ui.min.js" -O jquery-ui.min.js diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index e8191dbcb234754fefde79a3026b61b884c9bb0b..bc850226fbdfa2a67132a7f84ab777bd86ef60ea 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -244,9 +244,10 @@ var dw_linkwiz = { so += dw_linkwiz.val.open.length; link = dw_linkwiz.val.open+link; } + link += '|'; + so += 1; if(stxt) { - link += '|'+stxt; - so += 1; + link += stxt; } if(dw_linkwiz.val.close) { link += dw_linkwiz.val.close; @@ -299,6 +300,11 @@ var dw_linkwiz = { dw_linkwiz.$wiz.show(); dw_linkwiz.$entry.focus(); dw_linkwiz.autocomplete(); + + // Move the cursor to the end of the input + var temp = dw_linkwiz.$entry.val(); + dw_linkwiz.$entry.val(''); + dw_linkwiz.$entry.val(temp); }, /** diff --git a/lib/scripts/locktimer.js b/lib/scripts/locktimer.js index 96f963c083f82d72ffe38398559bf53da995f1f7..f83b6334ec57ecd5ba0ab2102ccfb5371abd4904 100644 --- a/lib/scripts/locktimer.js +++ b/lib/scripts/locktimer.js @@ -12,24 +12,13 @@ var dw_locktimer = { /** * Initialize the lock timer * - * @param int timeout Length of timeout in seconds - * @param string msg Deprecated; The expiry message - * @param bool draft Whether to save drafts - * @param string edid Optional; ID of an edit object which has to be present + * @param {int} timeout Length of timeout in seconds + * @param {bool} draft Whether to save drafts + * @param {string} edid Optional; ID of an edit object which has to be present */ - init: function(timeout,msg,draft,edid){ + init: function(timeout,draft,edid){ var $edit; - switch (arguments.length) { - case 4: - DEPRECATED('Setting the locktimer expiry message is deprecated'); - dw_locktimer.msg = msg; - break; - case 3: - edid = draft; - case 2: - draft = msg; - } edid = edid || 'wiki__text'; $edit = jQuery('#' + edid); @@ -42,7 +31,7 @@ var dw_locktimer = { dw_locktimer.draft = draft; dw_locktimer.lasttime = new Date(); - dw_locktimer.pageid = jQuery('#dw__editform input[name=id]').val(); + dw_locktimer.pageid = jQuery('#dw__editform').find('input[name=id]').val(); if(!dw_locktimer.pageid) { return; } @@ -94,7 +83,7 @@ var dw_locktimer = { } // POST everything necessary for draft saving - if(dw_locktimer.draft && jQuery('#dw__editform textarea[name=wikitext]').length > 0){ + if(dw_locktimer.draft && jQuery('#dw__editform').find('textarea[name=wikitext]').length > 0){ params += jQuery('#dw__editform').find('input[name=prefix], ' + 'textarea[name=wikitext], ' + 'input[name=suffix], ' + diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 8ca21ecabccfd26e2c88f6d3a4fe4e2aad123dac..dc0191d4927971ea43d8682213477e0bfd2aea9b 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -119,7 +119,7 @@ var dw_mediamanager = { $both = $listType.add($sortBy); // Remove the submit button - $options.find('input[type=submit]').parent().hide(); + $options.find('button[type=submit]').parent().hide(); // Prepare HTML for jQuery UI buttonset $both.find('label').each(function () { @@ -214,14 +214,12 @@ var dw_mediamanager = { * @author Pierre Spring <pierre.spring@caillou.ch> */ insert: function (id) { - var opts, alignleft, alignright, edid, s; + var opts, cb, edid, s; // set syntax options dw_mediamanager.$popup.dialog('close'); opts = ''; - alignleft = ''; - alignright = ''; if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) { @@ -254,16 +252,14 @@ var dw_mediamanager = { } } } - if (dw_mediamanager.align !== '1') { - alignleft = dw_mediamanager.align === '2' ? '' : ' '; - alignright = dw_mediamanager.align === '4' ? '' : ' '; - } } } edid = String.prototype.match.call(document.location, /&edid=([^&]+)/); - opener.insertTags(edid ? edid[1] : 'wiki__text', - '{{'+alignleft+id+opts+alignright+'|','}}',''); + edid = edid ? edid[1] : 'wiki__text'; + cb = String.prototype.match.call(document.location, /&onselect=([^&]+)/); + cb = cb ? cb[1].replace(/[^\w]+/, '') : 'dw_mediamanager_item_select'; + opener[cb](edid, id, opts, dw_mediamanager.align); if(!dw_mediamanager.keepopen) { window.close(); } @@ -271,6 +267,8 @@ var dw_mediamanager = { return false; }, + + /** * Prefills the wikiname. * @@ -435,7 +433,7 @@ var dw_mediamanager = { dw_mediamanager.$resizables().resizable('destroy'); if (update_list) { - dw_mediamanager.list.call(jQuery('#mediamanager__page form.options input[type="submit"]')[0]); + dw_mediamanager.list.call(jQuery('#mediamanager__page form.options button[type="submit"]')[0]); } $content.html(data); @@ -921,4 +919,25 @@ var dw_mediamanager = { } }; +/** + * Default implementation for the media manager's select action + * + * Can be overriden with the onselect URL parameter. Is called on the opener context + * + * @param {string} edid + * @param {string} mediaid + * @param {string} opts + * @param {string} align [none, left, center, right] + */ +function dw_mediamanager_item_select(edid, mediaid, opts, align) { + var alignleft = ''; + var alignright = ''; + if (align !== '1') { + alignleft = align === '2' ? '' : ' '; + alignright = align === '4' ? '' : ' '; + } + + insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); +} + jQuery(dw_mediamanager.init); diff --git a/lib/scripts/page.js b/lib/scripts/page.js index 7b4958d8254f2706def95b368be7bb9fbc4074a7..a179ae2a8e45434f79a7eceea0cd87f87e937789 100644 --- a/lib/scripts/page.js +++ b/lib/scripts/page.js @@ -109,8 +109,14 @@ dw_page = { * as well. A state indicator is inserted into the handle and can be styled * by CSS. * - * @param selector handle What should be clicked to toggle - * @param selector content This element will be toggled + * To properly reserve space for the expanded element, the sliding animation is + * done on the children of the content. To make that look good and to make sure aria + * attributes are assigned correctly, it's recommended to make sure that the content + * element contains a single child element only. + * + * @param {selector} handle What should be clicked to toggle + * @param {selector} content This element will be toggled + * @param {int} state initial state (-1 = open, 1 = closed) */ makeToggle: function(handle, content, state){ var $handle, $content, $clicky, $child, setClicky; @@ -160,8 +166,9 @@ dw_page = { // Start animation and assure that $toc is hidden/visible $child.dw_toggle(hidden, function () { $content.toggle(hidden); + $content.attr('aria-expanded', hidden); $content.css('min-height',''); // remove min-height again - }); + }, true); }; // the state indicator diff --git a/lib/scripts/qsearch.js b/lib/scripts/qsearch.js index 95c632e45de1e0ed1f2a12f7dd47fdb933e33931..56cf8df2580ea6608ba7b7d8897aee9481be8891 100644 --- a/lib/scripts/qsearch.js +++ b/lib/scripts/qsearch.js @@ -45,6 +45,7 @@ jQuery.fn.dw_qsearch = function (overrides) { dw_qsearch.clear_results(); return; } + dw_qsearch.$inObj.parents('form').addClass('searching'); dw_qsearch.curRequest = jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', { @@ -81,6 +82,7 @@ jQuery.fn.dw_qsearch = function (overrides) { * Empty and hide the output div */ clear_results: function () { + dw_qsearch.$inObj.parents('form').removeClass('searching'); dw_qsearch.$outObj.hide(); dw_qsearch.$outObj.text(''); }, @@ -95,6 +97,7 @@ jQuery.fn.dw_qsearch = function (overrides) { */ onCompletion: function (data) { var max, $links, too_big; + dw_qsearch.$inObj.parents('form').removeClass('searching'); dw_qsearch.curRequest = null; diff --git a/lib/scripts/tw-sack.js b/lib/scripts/tw-sack.js deleted file mode 100644 index b0e570151b60bfd8412a5f8a395986b8648b38c0..0000000000000000000000000000000000000000 --- a/lib/scripts/tw-sack.js +++ /dev/null @@ -1,140 +0,0 @@ -/* Simple AJAX Code-Kit (SACK) */ -/* ©2005 Gregory Wild-Smith */ -/* www.twilightuniverse.com */ -/* Software licenced under a modified X11 licence, see documentation or authors website for more details */ -/* @deprecated */ - -function sack(file){ - this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n"; - this.requestFile = file; - this.method = "POST"; - this.URLString = ""; - this.encodeURIString = true; - this.execute = false; - this.asynchronous = true; - - this.onLoading = function() { }; - this.onLoaded = function() { }; - this.onInteractive = function() { }; - this.onCompletion = function() { }; - this.afterCompletion = function() { }; - - this.createAJAX = function() { - try { - this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e) { - try { - this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (err) { - this.xmlhttp = null; - } - } - if(!this.xmlhttp && typeof XMLHttpRequest != "undefined"){ - this.xmlhttp = new XMLHttpRequest(); - } - if (!this.xmlhttp){ - this.failed = true; - } - }; - - this.setVar = function(name, value){ - if (this.URLString.length < 3){ - this.URLString = name + "=" + value; - } else { - this.URLString += "&" + name + "=" + value; - } - }; - - this.encVar = function(name, value){ - var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value); - return varString; - }; - - this.encodeURLString = function(string){ - varArray = string.split('&'); - for (i = 0; i < varArray.length; i++){ - urlVars = varArray[i].split('='); - if (urlVars[0].indexOf('amp;') != -1){ - urlVars[0] = urlVars[0].substring(4); - } - varArray[i] = this.encVar(urlVars[0],urlVars[1]); - } - return varArray.join('&'); - }; - - this.runResponse = function(){ - eval(this.response); - }; - - this.runAJAX = function(urlstring){ - DEPRECATED('Please use jQuery.post() or any other of jQuery\'s AJAX methods.'); - - this.responseStatus = new Array(2); - if(this.failed && this.AjaxFailedAlert){ - alert(this.AjaxFailedAlert); - } else { - if (urlstring){ - if (this.URLString.length){ - this.URLString = this.URLString + "&" + urlstring; - } else { - this.URLString = urlstring; - } - } - if (this.encodeURIString){ - var timeval = new Date().getTime(); - this.URLString = this.encodeURLString(this.URLString); - this.setVar("rndval", timeval); - } - if (this.element) { this.elementObj = document.getElementById(this.element); } - if (this.xmlhttp) { - var self = this; - if (this.method == "GET") { - var totalurlstring = this.requestFile + "?" + this.URLString; - this.xmlhttp.open(this.method, totalurlstring, this.asynchronous); - } else { - this.xmlhttp.open(this.method, this.requestFile, this.asynchronous); - } - if (this.method == "POST"){ - try { - this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); - } catch (e) {} - } - - this.xmlhttp.onreadystatechange = function() { - switch (self.xmlhttp.readyState){ - case 1: - self.onLoading(); - break; - case 2: - self.onLoaded(); - break; - case 3: - self.onInteractive(); - break; - case 4: - self.response = self.xmlhttp.responseText; - self.responseXML = self.xmlhttp.responseXML; - self.responseStatus[0] = self.xmlhttp.status; - self.responseStatus[1] = self.xmlhttp.statusText; - self.onCompletion(); - if(self.execute){ self.runResponse(); } - if (self.elementObj) { - var elemNodeName = self.elementObj.nodeName; - elemNodeName.toLowerCase(); - if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){ - self.elementObj.value = self.response; - } else { - self.elementObj.innerHTML = self.response; - } - } - self.afterCompletion(); - self.URLString = ""; - break; - } - }; - this.xmlhttp.send(this.URLString); - } - } - }; -this.createAJAX(); -} diff --git a/lib/tpl/dokuwiki/css/_admin.css b/lib/tpl/dokuwiki/css/_admin.css index a9518d0edad78816caabd780e9bff409796ef1ec..bdde006e0cbcea996cd9b2865d89a324c36c003d 100644 --- a/lib/tpl/dokuwiki/css/_admin.css +++ b/lib/tpl/dokuwiki/css/_admin.css @@ -39,6 +39,9 @@ .dokuwiki ul.admin_tasks li.admin_config { background-image: url(../../images/admin/config.png); } +.dokuwiki ul.admin_tasks li.admin_styling { + background-image: url(../../images/admin/styling.png); +} .dokuwiki ul.admin_tasks li.admin_revert { background-image: url(../../images/admin/revert.png); } diff --git a/lib/tpl/dokuwiki/css/_edit.css b/lib/tpl/dokuwiki/css/_edit.css index f40aaa89199e383750a30872e97a8884e397743e..d6dcb93ab1152381ceb54f98e6ea19a198f82071 100644 --- a/lib/tpl/dokuwiki/css/_edit.css +++ b/lib/tpl/dokuwiki/css/_edit.css @@ -88,7 +88,7 @@ div.picker button.toolbutton { margin-right: 0; margin-left: 1em; } -.dokuwiki .editBar .editButtons input { +.dokuwiki .editBar .editButtons button { } /* summary input and minor changes checkbox */ @@ -130,7 +130,7 @@ div.picker button.toolbutton { [dir=rtl] .dokuwiki .secedit { float: left; } -.dokuwiki .secedit input.button { +.dokuwiki .secedit button { font-size: 75%; } diff --git a/lib/tpl/dokuwiki/css/_forms.css b/lib/tpl/dokuwiki/css/_forms.css index 522f9ed4d0596cca570b4e14036bd9f8ff16f677..bf70fa24b92392ecf7dac6f9c9e923a5c5d44d22 100644 --- a/lib/tpl/dokuwiki/css/_forms.css +++ b/lib/tpl/dokuwiki/css/_forms.css @@ -62,8 +62,7 @@ } -.dokuwiki input.button, -.dokuwiki button.button { +.dokuwiki button { vertical-align: middle; } /** diff --git a/lib/tpl/dokuwiki/css/_links.css b/lib/tpl/dokuwiki/css/_links.css index 7e5fb02cd5920872e7c797ee903ca057258b9f37..695f4b825e2b3762a89cf4eba58d84ffecc3ba26 100644 --- a/lib/tpl/dokuwiki/css/_links.css +++ b/lib/tpl/dokuwiki/css/_links.css @@ -66,5 +66,4 @@ [dir=rtl] .dokuwiki a.mediafile { background-position: right center; padding: 0 18px 0 0; - display: inline-block; /* needed for IE7 */ } diff --git a/lib/tpl/dokuwiki/css/_media_fullscreen.css b/lib/tpl/dokuwiki/css/_media_fullscreen.css index 31b71897bf138ba29d4fe28448c767cfd3fc8c41..92a9d07301e7b4f8f02b3f481dc73f7c516bcb82 100644 --- a/lib/tpl/dokuwiki/css/_media_fullscreen.css +++ b/lib/tpl/dokuwiki/css/_media_fullscreen.css @@ -394,7 +394,7 @@ width: 50%; } -#mediamanager__page form.meta input.button { +#mediamanager__page form.meta button { width: auto; } @@ -407,19 +407,19 @@ /* file revisions form */ -#mediamanager__page #page__revisions ul { +#mediamanager__page form.changes ul { margin-left: 10px; padding: 0; list-style-type: none; } -#mediamanager__page #page__revisions ul li div.li div { +#mediamanager__page form.changes ul li div.li div { font-size: 90%; color: @ini_text_neu; padding-left: 18px; } -#mediamanager__page #page__revisions ul li div.li input { +#mediamanager__page form.changes ul li div.li input { position: relative; top: 1px; } diff --git a/lib/tpl/dokuwiki/css/_media_popup.css b/lib/tpl/dokuwiki/css/_media_popup.css index 20d669c1484f87acab965f1ca659e726da9b67d2..af536489c6e4fcb11e55a9beaaf714471a732172 100644 --- a/lib/tpl/dokuwiki/css/_media_popup.css +++ b/lib/tpl/dokuwiki/css/_media_popup.css @@ -204,7 +204,7 @@ html.popup { } #dw__mediasearch input.edit { } -#dw__mediasearch input.button { +#dw__mediasearch button { } diff --git a/lib/tpl/dokuwiki/css/_modal.css b/lib/tpl/dokuwiki/css/_modal.css index a46dff30e0370555b919bcd3e696c15feeb51264..37f64830ff10c8c870076661004e402abc38844f 100644 --- a/lib/tpl/dokuwiki/css/_modal.css +++ b/lib/tpl/dokuwiki/css/_modal.css @@ -88,7 +88,7 @@ cursor: default; } -#media__popup_content .button { +#media__popup_content button { margin-right: 1px; cursor: pointer; } diff --git a/lib/tpl/dokuwiki/css/_tabs.css b/lib/tpl/dokuwiki/css/_tabs.css index 860545a27c62bde34fe2d67c1793cbfdce30338d..c4576c5ab4fd214173b8b707cdeff62c653d1805 100644 --- a/lib/tpl/dokuwiki/css/_tabs.css +++ b/lib/tpl/dokuwiki/css/_tabs.css @@ -67,6 +67,7 @@ .dokuwiki ul.tabs li a:hover, .dokuwiki ul.tabs li a:active, .dokuwiki ul.tabs li a:focus, +.dokuwiki ul.tabs li.active a, .dokuwiki ul.tabs li strong { background-color: @ini_background_alt; color: @ini_text; @@ -76,6 +77,8 @@ .dokuwiki .tabs > ul li .curid a, .dokuwiki .tabs > ul li .active a, +.dokuwiki .tabs > ul li .active a, +.dokuwiki ul.tabs li.active a, .dokuwiki ul.tabs li strong { z-index: 2; border-bottom-color: @ini_background_alt; diff --git a/lib/tpl/dokuwiki/css/basic.less b/lib/tpl/dokuwiki/css/basic.less index ac9f6803a2cbd3d1e5ffc899fc9cb8983a5c8a17..d10cac670d9e6f9766c102eb471655990f57a898 100644 --- a/lib/tpl/dokuwiki/css/basic.less +++ b/lib/tpl/dokuwiki/css/basic.less @@ -228,7 +228,6 @@ video, audio { max-width: 100%; } -#IE7 img, #IE8 img, button img { max-width: none; @@ -414,11 +413,6 @@ button, padding: .1em .5em; cursor: pointer; } -#IE7 input.button, -#IE7 button { - line-height: 1.4; - overflow: visible; -} input[type=submit]:hover, input[type=submit]:active, diff --git a/lib/tpl/dokuwiki/css/content.less b/lib/tpl/dokuwiki/css/content.less index a2e343a33b200fa57d987393129a95c74994836a..23db33cfbdaf19b238a2048e28b8d33fbb75fc0b 100644 --- a/lib/tpl/dokuwiki/css/content.less +++ b/lib/tpl/dokuwiki/css/content.less @@ -140,7 +140,6 @@ dd { margin: 0; clear: left; - min-height: 1px; /* for IE7 */ } pre { @@ -391,4 +390,4 @@ margin-left: 0; margin-right: 9.5em; } -} \ No newline at end of file +} diff --git a/lib/tpl/dokuwiki/css/design.less b/lib/tpl/dokuwiki/css/design.less index 548ba72285a182bdb8a894d6d404a256f07c7943..e314bb5b3a828f59d7a6c89937b560c217947543 100644 --- a/lib/tpl/dokuwiki/css/design.less +++ b/lib/tpl/dokuwiki/css/design.less @@ -117,10 +117,6 @@ padding-right: 20px; } -[dir=rtl] #IE7 #dokuwiki__usertools a.action { - display: inline-block; -} - #dokuwiki__header .mobileTools { display: none; /* hide mobile tools dropdown to only show in mobile view */ } @@ -207,12 +203,12 @@ form.search { position: relative; margin-bottom: 0.5em; - input.edit { + input { width: 18em; padding: .35em 22px .35em .1em; } - input.button { + button { background: transparent url(images/search.png) no-repeat 0 0; border-width: 0; width: 19px; @@ -225,11 +221,11 @@ form.search { } [dir=rtl] form.search { - input.edit { + input { padding: .35em .1em .35em 22px; } - input.button { + button { background-position: 5px 0; margin-left: 0; margin-right: -20px; @@ -237,11 +233,6 @@ form.search { } } -#IE7 form.search { - min-height: 1px; - z-index: 21; -} - /*____________ breadcrumbs ____________*/ .dokuwiki div.breadcrumbs { @@ -273,7 +264,6 @@ form.search { } } -#IE7 .dokuwiki div.breadcrumbs div, #IE8 .dokuwiki div.breadcrumbs div { border-bottom: 1px solid @ini_border; } diff --git a/lib/tpl/dokuwiki/css/mixins.less b/lib/tpl/dokuwiki/css/mixins.less index 4b15bb60040c0ef9f39dda6fab367c6198408f43..a88767e9706909d254d3b1083713aeb48304b59e 100644 --- a/lib/tpl/dokuwiki/css/mixins.less +++ b/lib/tpl/dokuwiki/css/mixins.less @@ -7,17 +7,4 @@ background: -o-linear-gradient( @declaration); background: -ms-linear-gradient( @declaration); background: linear-gradient( @declaration); -} - -/** - * provides inline list styling. - */ -.inline-list(){ - list-style-type: none; - - & li { - margin: 0; - padding: 0; - display: inline; - } -} +} \ No newline at end of file diff --git a/lib/tpl/dokuwiki/css/mobile.less b/lib/tpl/dokuwiki/css/mobile.less index e5e13e2215f1c01fede95acfae40f2d717d8bc52..a52c723ca993530f9bd89ac8a1c5d45506fc3cb0 100644 --- a/lib/tpl/dokuwiki/css/mobile.less +++ b/lib/tpl/dokuwiki/css/mobile.less @@ -237,7 +237,7 @@ body { margin: 0 0 .2em .2em; } -#dokuwiki__sitetools form.search input.edit { +#dokuwiki__sitetools form.search input { width: 100% !important; } .dokuwiki form.search div.ajax_qsearch { @@ -261,7 +261,7 @@ body { } /* force same height on search input and tools select */ -#dokuwiki__sitetools form.search input.edit, +#dokuwiki__sitetools form.search input, #dokuwiki__header .mobileTools select { height: 2.1em; line-height: 2.1em; diff --git a/lib/tpl/dokuwiki/css/pagetools.less b/lib/tpl/dokuwiki/css/pagetools.less index 77d2670a647ef3debeeb54bde6cb138c5f1303e1..f441a13638d7db0383c7e0bf44994fcd25941f13 100644 --- a/lib/tpl/dokuwiki/css/pagetools.less +++ b/lib/tpl/dokuwiki/css/pagetools.less @@ -133,25 +133,6 @@ padding: 5px 5px 5px 40px; } -/* IE7 fixes, doesn't work without images */ - -#IE7 #dokuwiki__pagetools ul li a { - background-image: url(images/pagetools-sprite.png?v=2); -} - -#IE7 #dokuwiki__pagetools:hover ul li a span, -#IE7 #dokuwiki__pagetools ul li a:focus span, -#IE7 #dokuwiki__pagetools ul li a:active span { - clip: auto; - display: inline; - position: static; -} - -#IE7 #dokuwiki__pagetools ul li a span { - clip: rect(0 0 0 0); - position: absolute; -} - #dokuwiki__pagetools ul li a:hover, #dokuwiki__pagetools ul li a:active, #dokuwiki__pagetools ul li a:focus { diff --git a/lib/tpl/dokuwiki/css/structure.less b/lib/tpl/dokuwiki/css/structure.less index f7dea3948ddd70004409397039d5849471a8dc84..3ea2f83eb63a27941bfb25307cf354b82ca7f1ea 100644 --- a/lib/tpl/dokuwiki/css/structure.less +++ b/lib/tpl/dokuwiki/css/structure.less @@ -87,18 +87,3 @@ body { #dokuwiki__footer { clear: both; } - -.dokuwiki .navlist { - display: inline; - padding: 0; - .inline-list; -} - -.bchead { - display: inline; - font-size: inherit; -} - -.curid { - font-weight: bold; -} diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index b27567987b19031176eade97598d66ce7cb9692e..4d798e3af2e37ee782fe31bf303e8a7be2cd4625 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -27,7 +27,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>"> <?php include('tpl_header.php') ?> @@ -57,6 +57,20 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <div class="img_detail"> <?php tpl_img_meta(); ?> + <dl> + <?php + echo '<dt>'.$lang['reference'].':</dt>'; + $media_usage = ft_mediause($IMG,true); + if(count($media_usage) > 0){ + foreach($media_usage as $path){ + echo '<dd>'.html_wikilink($path).'</dd>'; + } + }else{ + echo '<dd>'.$lang['nothingfound'].'</dd>'; + } + ?> + </dl> + <p><?php echo $lang['media_acl_warning']; ?></p> </div> <?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?> <?php endif; ?> @@ -106,6 +120,6 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <?php include('tpl_footer.php') ?> </div></div><!-- /site --> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> diff --git a/lib/tpl/dokuwiki/images/pagetools-build.php b/lib/tpl/dokuwiki/images/pagetools-build.php index 3cf35b2eae2808ea776ec6d2371255bfe6c6fe8d..eaceeb25736c37f910315beec640a42fd63991dc 100644 --- a/lib/tpl/dokuwiki/images/pagetools-build.php +++ b/lib/tpl/dokuwiki/images/pagetools-build.php @@ -15,6 +15,8 @@ $GAMMA = 0.8; $OPTIPNG = '/usr/bin/optipng'; +if('cli' != php_sapi_name()) die('please run from commandline'); + // load input images $input = glob('pagetools/*.png'); sort($input); diff --git a/lib/tpl/dokuwiki/lang/bg/lang.php b/lib/tpl/dokuwiki/lang/bg/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..7717607c06770d511bf35a8de11abad0a1b2a6a6 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/bg/lang.php @@ -0,0 +1,13 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Kiril <neohidra@gmail.com> + */ +$lang['__background_site__'] = 'ЦвÑÑ‚ за фона, под Ñъдъжанието'; +$lang['__link__'] = 'Стандартен цвÑÑ‚ за препратка'; +$lang['__existing__'] = 'ЦвÑÑ‚ за препратка към ÑъщеÑтвуващи Ñтаници'; +$lang['__missing__'] = 'ЦвÑÑ‚ за препратка към неÑъщеÑтвуващи Ñтаници'; +$lang['__site_width__'] = 'Ширина на Ñ†ÐµÐ»Ð¸Ñ Ñайт (може да бъде вÑÑка мерна единица:%, px, em, ...)'; +$lang['__sidebar_width__'] = 'Ширина на Ñтраничната лента (може да бъде вÑÑка мерна единица:%, px, em, ...)'; diff --git a/lib/tpl/dokuwiki/lang/cs/lang.php b/lib/tpl/dokuwiki/lang/cs/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..6599c73cb8442d0c98b69bef5e6855a11851de3a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cs/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> + */ +$lang['__background_site__'] = 'Barva hlavnÃho pozadà (pod kontextovým boxem)'; +$lang['__link__'] = 'Hlavnà barva odkazů'; +$lang['__existing__'] = 'Barva odkazů na existujÃcà stránky'; +$lang['__missing__'] = 'Barva odkazů na neexistujÃcà stránky'; +$lang['__site_width__'] = 'Å ÃÅ™ka plné stránky (jakákoliv jednotka délky: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Å ÃÅ™ka postrannÃho panelu, pokud je použit (jakákoliv jednotka délky: %, px, em, ...)'; +$lang['__tablet_width__'] = 'PÅ™epnout stránku do módu pro tablet pro velikost obrazovky menšà než'; +$lang['__phone_width__'] = 'PÅ™epnout stránku do módu pro telefon pro velikost obrazovky menšà než'; diff --git a/lib/tpl/dokuwiki/lang/cs/style.txt b/lib/tpl/dokuwiki/lang/cs/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..e2ebe22b371ce84f91eeb39532e376e25a18dd7b --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cs/style.txt @@ -0,0 +1,2 @@ +Pokud chcete upravit logo, jednoduÅ¡e použijte Media Manager pro nahránà obrázku "logo.png" do koÅ™enového jmenného prostoru "wiki" a ten bude poté použit jako logo. Můžete nahrát také ikonu "favicon.ico". +Pokud použÃváte neveÅ™ejnou wiki, doporuÄujeme udÄ›lit plná práva pro Ätenà prostoru "wiki" (nebo root) v nastavenà ACL, jinak nebude vlastnà logo zobrazeno nepÅ™ihlášeným uživatelům. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/cy/lang.php b/lib/tpl/dokuwiki/lang/cy/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..860ce8f156bc535d42f332bf0b8afd9e961f2930 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cy/lang.php @@ -0,0 +1,12 @@ +<?php + +// style.ini values + +$lang['__background_site__'] = 'Lliw am y cefndir (tu ôl y blwch cynnwys)'; +$lang['__link__'] = 'Lliw dolenni cyffredinol'; +$lang['__existing__'] = 'Lliw dolenni i dudalennau sy\'n bodoli'; +$lang['__missing__'] = 'Lliw dolenni i dudalennau sy ddim yn bodoli'; +$lang['__site_width__'] = 'Lled y safle cyfan (unrhyw uned: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Lled y bar ochr, os oes un (unrhyw uned: %, px, em, ...)'; +$lang['__tablet_width__'] = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd tabled'; +$lang['__phone_width__'] = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd ffôn'; diff --git a/lib/tpl/dokuwiki/lang/cy/style.txt b/lib/tpl/dokuwiki/lang/cy/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..ce87798a0e48c920f0c354e2b2536b8fd6d0be17 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/cy/style.txt @@ -0,0 +1,4 @@ +Os ydych chi am newid y logo, defnyddiwch y Rheolwr Cyfrwng i lanlwytho ''logo.png'' i ''wici'' neu wraidd y namespace +a chaiff ei ddefnyddio'n awtomatig. Gallwch chi hefyd lanlwytho ''favicon.ico'' yna. Os ydych chi'n defnyddio +wici caeedig, awgrymwyd eich bod chi'n gwneud y ''wici'' (new wraidd) y namespace yn ddarllenadwy i bawb yn y +gosodiadau ACL neu na chaiff eich logo chi ei weld gan ddefnyddwyr sydd heb fewngofnodi. diff --git a/lib/tpl/dokuwiki/lang/de/lang.php b/lib/tpl/dokuwiki/lang/de/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..a17c945d97018c2aaf6daa2b9f761829ad17652a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/de/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Anika Henke <anika@selfthinker.org> + */ +$lang['__background_site__'] = 'Farbe für den Seitenhintergrund (hinter dem Inhaltsbereich)'; +$lang['__link__'] = 'Allgemeine Linkfarbe'; +$lang['__existing__'] = 'Farbe für Links zu existierenden Seiten'; +$lang['__missing__'] = 'Farbe für Links zu nicht-existierenden Seiten'; +$lang['__site_width__'] = 'Breite der ganzen Seite (kann eine beliebige Längeneinheit sein: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Breite der Seitenleiste, falls vorhanden (kann eine beliebige Längeneinheit sein: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Tabletmodus'; +$lang['__phone_width__'] = 'Unter dieser Fensterbreite wechselt die Seite in den Handymodus'; diff --git a/lib/tpl/dokuwiki/lang/de/style.txt b/lib/tpl/dokuwiki/lang/de/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..1fd2f332bc2a16948f72a36e65ae5273b77a7773 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/de/style.txt @@ -0,0 +1 @@ +Wenn Sie das Logo anpassen wollen, benutzen Sie einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder Wurzel-Namensraum hochzuladen. Es wird dann automatisch als Logo verwendet. Sie können dort auch ein 'favicon.ico'' hochladen. Falls Sie ein geschlossenes Wiki haben, ist es empfehlenswert, den ''wiki''- (oder Wurzel-)Namensraum für alle Nutzer in den ACL-Einstellungen zu öffnen. Ansonsten wird das Logo nur für eingeloggte Nutzer angezeigt. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/en/lang.php b/lib/tpl/dokuwiki/lang/en/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b7b3e7fa114604a0bb9c32749884e4a25ba0d0ed --- /dev/null +++ b/lib/tpl/dokuwiki/lang/en/lang.php @@ -0,0 +1,12 @@ +<?php + +// style.ini values + +$lang['__background_site__'] = 'Color for the very background (behind the content box)'; +$lang['__link__'] = 'The general link color'; +$lang['__existing__'] = 'The color for links to existing pages'; +$lang['__missing__'] = 'The color for links to non-existing pages'; +$lang['__site_width__'] = 'The width of the full site (can be any length unit: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'The width of the sidebar, if any (can be any length unit: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Below screensizes of this width, the site switches to tablet mode'; +$lang['__phone_width__'] = 'Below screensizes of this width, the site switches to phone mode'; diff --git a/lib/tpl/dokuwiki/lang/en/style.txt b/lib/tpl/dokuwiki/lang/en/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..7bf3e1a829247329bdb816a2aef093474ac19aac --- /dev/null +++ b/lib/tpl/dokuwiki/lang/en/style.txt @@ -0,0 +1,4 @@ +If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' into the ''wiki'' or the root namespace and it +will be automatically used. You can also upload a ''favicon.ico'' there. If you use a closed +wiki it is recommended to make the ''wiki'' (or root) namespace world readable in the ACL settings or +your logo is not shown to not logged in users. diff --git a/lib/tpl/dokuwiki/lang/es/lang.php b/lib/tpl/dokuwiki/lang/es/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..b63d0dc7d0ac8172fac467f1fae81511d2187805 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/es/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Domingo Redal <docxml@gmail.com> + */ +$lang['__background_site__'] = 'Color para el fondo (detrás de la caja de contenido)'; +$lang['__link__'] = 'El color de los enlaces en general'; +$lang['__existing__'] = 'El color de los enlaces a páginas existentes'; +$lang['__missing__'] = 'El color de los enlaces a páginas no existentes'; +$lang['__site_width__'] = 'El ancho de la página completa (puede ser cualquier unidad de longitud: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'El ancho de la barra lateral (puede ser cualquier unidad de longitud: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo tableta'; +$lang['__phone_width__'] = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo teléfono'; diff --git a/lib/tpl/dokuwiki/lang/es/style.txt b/lib/tpl/dokuwiki/lang/es/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..60ce308ffce220a5ccbbc7bbabf1f23d4cc00d00 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/es/style.txt @@ -0,0 +1 @@ +Si desea ajustar el logotipo, sólo tiene que utilizar el Administrador de Medios para cargar un ''logo.png'' dentro de "wiki'' o en el espacio de nombres de la raÃz y se utilizará automáticamente. También puede cargar un ''favicon.ico'' allÃ. Si utiliza un wiki cerrado se recomienda hacer el ''wiki'' (o raÃz) espacio de nombres legible por todo el mundo en la configuración de ACL o su logotipo no se mostrará para que los usuarios no registrados. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/fa/lang.php b/lib/tpl/dokuwiki/lang/fa/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..cb2e95ee4adab7653442bb5721ad885d56eff24a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fa/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir> + */ +$lang['__background_site__'] = 'رنگ پس‌زمینه (پشت جعبهٔ متن)'; +$lang['__link__'] = 'رنگ لینک معمول'; +$lang['__existing__'] = 'رنگ برای لینک به ØµÙØØ§Øª موجود'; +$lang['__missing__'] = 'رنگ برای لینک به ØµÙØØ§Øª ناموجود'; +$lang['__site_width__'] = 'عرض Ú©Ù„ سایت (از ÙˆØ§ØØ¯Ù‡Ø§ÛŒ طول شامل % یا px یا em Ùˆ ... می‌شود Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد)'; +$lang['__sidebar_width__'] = 'عرض نوار کناری درصورت وجود (از ÙˆØ§ØØ¯Ù‡Ø§ÛŒ طول شامل % یا px یا em Ùˆ ... می‌شود Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد)'; +$lang['__tablet_width__'] = 'در پایین اندازه‌های ØµÙØÙ‡ با این عرض وقتی Ú©Ù‡ در تبلت باز می‌شود'; +$lang['__phone_width__'] = 'در پایین اندازه‌های ØµÙØÙ‡ با این عرض وقتی Ú©Ù‡ در تلÙÙ† موبایل باز می‌شود'; diff --git a/lib/tpl/dokuwiki/lang/fa/style.txt b/lib/tpl/dokuwiki/lang/fa/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9009fd0866f5709cfdda231f03fc854f4f6f850 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fa/style.txt @@ -0,0 +1 @@ +اگر می‌خواهید یک لوگو تنظیم کنید، به Ø±Ø§ØØªÛŒ مدیریت رسانه‌ها را باز کنید Ùˆ یک تصویر با نام ''logo.png'' در ÙØ¶Ø§ÛŒ نام اصلی یا ''wiki'' آپلود کنید. سپس لوگو به صورت اتوماتیک مورد Ø§Ø³ØªÙØ§Ø¯Ù‡ قرار می‌گیرد. همچنین می‌توانید یک ''favicon.ico'' در آن‌جا آپلود کنید. اگر از ویکی بسته Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید پیشنهاد می‌شود Ú©Ù‡ ÙØ¶Ø§ÛŒ نام ویکی (یا اصلی) در تنظیمات خواندنی به همه باشد یا درغیر اینصورت لوگو به کاربرانی Ú©Ù‡ وارد نشده باشند نمایش داده نمی‌شود. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/fr/lang.php b/lib/tpl/dokuwiki/lang/fr/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ae74ca83e7da619ff10d2cd68f5135e0f2e399f3 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fr/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Nicolas Friedli <nicolas@theologique.ch> + */ +$lang['__background_site__'] = 'Couleur du fond (derrière la boîte de contenu)'; +$lang['__link__'] = 'Couleur générale des liens'; +$lang['__existing__'] = 'Couleur des liens pour les pages existantes'; +$lang['__missing__'] = 'Couleur des liens pour les pages inexistantes'; +$lang['__site_width__'] = 'Largeur du site complet (dans une unité de longueur valide: %, px, em,...)'; +$lang['__sidebar_width__'] = 'Largeur de la barre latérale, si existante (dans une unité de longueur valide: %, px, em,...)'; +$lang['__tablet_width__'] = 'En dessous de cette largeur, le site passe en mode tablette.'; +$lang['__phone_width__'] = 'En dessous de cette largeur, le site passe en mode smartphone.'; diff --git a/lib/tpl/dokuwiki/lang/fr/style.txt b/lib/tpl/dokuwiki/lang/fr/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..876f116c9ac0177e81ccf8949342c8254e1933d3 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/fr/style.txt @@ -0,0 +1 @@ +Si vous souhaitez modifier le logo, utilisez simplement le gestionnaire de médias et envoyez un fichier nommé "logo.png" dans l'espace de nom "wiki" ou à la racine. Il sera automatiquement utilisé. Il en est de même pour le "favicon.ico". Si vous utilisez un wiki fermé, il est recommandé de régler les ACL de la racine ou de l'espace de nom "wiki" pour rendre ces images visibles aux utilisateurs non connectés. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/hu/lang.php b/lib/tpl/dokuwiki/lang/hu/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..083736623406440c8fc51cecd59d4d5bc75137bd --- /dev/null +++ b/lib/tpl/dokuwiki/lang/hu/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Marton Sebok <sebokmarton@gmail.com> + */ +$lang['__background_site__'] = 'Lap szÃne (a tartalom mögött)'; +$lang['__link__'] = 'Hivatkozás általános szÃne'; +$lang['__existing__'] = 'Hivatkozása szÃne létezÅ‘ lapoknál'; +$lang['__missing__'] = 'Hivatkozása szÃne nem létezÅ‘ lapoknál'; +$lang['__site_width__'] = 'Az oldal teljes szélessége (tetszÅ‘leges mértékegységgel: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Az oldalsáv szélessége (tetszÅ‘leges mértékegységgel: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Váltás tablet-módra ezen szélesség alatt'; +$lang['__phone_width__'] = 'Váltás mobiltelefon-módra ezen szélesség alatt'; diff --git a/lib/tpl/dokuwiki/lang/hu/style.txt b/lib/tpl/dokuwiki/lang/hu/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..1cdf517b32738ec60f5ddab3082c75f4ed4bb292 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/hu/style.txt @@ -0,0 +1 @@ +A logó megváltoztatásához tölts fel egy képet "logo.png" néven a "wiki" névtérbe vagy a kiindulási névtérbe. UgyanÃgy feltöltheted ide az oldalhoz tartozó ikont is, "favicon.ico" néven. Ha zárt wikit használsz, javasoljuk, hogy állÃtsd be a "wiki" (vagy a kiindulási) névteret mindenki számára olvashatónak, különben a logót csak a bejelentkezett felhasználók fogják látni. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/it/lang.php b/lib/tpl/dokuwiki/lang/it/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..954f0f753bfdaf565851f58b4e17ce4ee6f1848b --- /dev/null +++ b/lib/tpl/dokuwiki/lang/it/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Torpedo <dgtorpedo@gmail.com> + */ +$lang['__background_site__'] = 'Colore per lo sfondo di livello più basso (dietro il riquadro del contenuto)'; +$lang['__link__'] = 'Colore generale per i link'; +$lang['__existing__'] = 'Colore per i collegamenti alle pagine esistenti'; +$lang['__missing__'] = 'Colore per i collegamenti alle pagine non esistenti'; +$lang['__site_width__'] = 'Larghezza dell\'intero sito (può essere una qualunque unità di lunghezza: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Larghezza della barra laterale, se presente (può essere una qualunque unità di lunghezza: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità tablet'; +$lang['__phone_width__'] = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità telefono'; diff --git a/lib/tpl/dokuwiki/lang/it/style.txt b/lib/tpl/dokuwiki/lang/it/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..1179f086a2148b0d4cd696dfb2026bd914aa29f2 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/it/style.txt @@ -0,0 +1 @@ +Se vuoi modificare il logo, semplicemente usa Media Manager per caricare un ''logo.png'' in ''wiki'' o nella directory root e questo verrà automaticamente usato. Qui puoi anche caricare una ''favicon.ico''. Se utilizzi un wiki chiuso si raccomanda di rendere la directory ''wiki'' (o root) leggibile a tutti, nelle impostazioni ACL, altrimenti il tuo logo non sarà visibile agli utenti che non hanno effettuato l'accesso. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/ja/lang.php b/lib/tpl/dokuwiki/lang/ja/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..1800e2aaa235535365cefe701d9d23d922de4d79 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ja/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hideaki SAWADA <chuno@live.jp> + */ +$lang['__background_site__'] = 'サイト全体ã®èƒŒæ™¯è‰²ï¼ˆcontent box ã®èƒŒå¾Œï¼‰'; +$lang['__link__'] = '通常ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__existing__'] = 'æ—¢å˜ãƒšãƒ¼ã‚¸ã¸ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__missing__'] = 'å˜åœ¨ã—ãªã„ページã¸ã®ãƒªãƒ³ã‚¯è‰²'; +$lang['__site_width__'] = 'サイトã®å…¨ä½“幅(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)'; +$lang['__sidebar_width__'] = 'サイドãƒãƒ¼ãŒã‚ã‚‹å ´åˆã€ã‚µã‚¤ãƒ‰ãƒãƒ¼ã®å¹…(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)'; +$lang['__tablet_width__'] = 'タブレットモードã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…'; +$lang['__phone_width__'] = 'æºå¸¯é›»è©±ãƒ¢ãƒ¼ãƒ‰ã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…'; diff --git a/lib/tpl/dokuwiki/lang/ja/style.txt b/lib/tpl/dokuwiki/lang/ja/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab032e7ec48010c57b0606c4c611749fe719a8d8 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ja/style.txt @@ -0,0 +1,5 @@ +ãƒã‚´ã‚’変更ã—ãŸã„å ´åˆã€ãƒ¡ãƒ‡ã‚£ã‚¢ç®¡ç†ã‚’利用ã—ã¦ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“ã«ã€Œlogo.pngã€ã‚’アップãƒãƒ¼ãƒ‰ã—ã¦ä¸‹ã•ã„。 +自動的ã«ãã®ç”»åƒã‚’使用ã—ã¾ã™ã€‚ +åŒã˜å ´æ‰€ã«ã€Œfavicon.icoã€ã‚’アップãƒãƒ¼ãƒ‰ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ +アクセス制é™ã®ã‚ã‚‹ wiki を使用ã—ã¦ã„ã‚‹å ´åˆã€ã‚¢ã‚¯ã‚»ã‚¹ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ç®¡ç†ã§ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“を全員èªå–å¯ã«è¨å®šã—ã¦ä¸‹ã•ã„。 +ãã†ã§ãªã„ã¨ãƒã‚°ã‚¤ãƒ³ã—ã¦ã„ãªã„ユーザーã«ãƒã‚´ãŒè¡¨ç¤ºã•れã¾ã›ã‚“。 \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/ko/lang.php b/lib/tpl/dokuwiki/lang/ko/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..efcb44a7fa62f3d868fbc7eb8b006ff747826c1e --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ko/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Myeongjin <aranet100@gmail.com> + */ +$lang['__background_site__'] = '(ë‚´ìš© ìƒìž ë’¤ì˜) 매우 ë°°ê²½ 색'; +$lang['__link__'] = 'ì¼ë°˜ ë§í¬ 색'; +$lang['__existing__'] = '문서가 존재하는 ë§í¬ì˜ 색'; +$lang['__missing__'] = '문서가 존재하지 않는 ë§í¬ì˜ 색'; +$lang['__site_width__'] = 'ì „ì²´ 사ì´íŠ¸ì˜ ë„ˆë¹„ (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë 수 있ìŒ: %, px, em, ...)'; +$lang['__sidebar_width__'] = '사ì´ë“œë°”ê°€ 있다면, ê·¸ê²ƒì˜ ë„ˆë¹„ (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë 수 있ìŒ: %, px, em, ...)'; +$lang['__tablet_width__'] = '사ì´íŠ¸ë¥¼ 태블릿 모드로 ì „í™˜í• í™”ë©´ 너비'; +$lang['__phone_width__'] = '사ì´íŠ¸ë¥¼ í° ëª¨ë“œë¡œ ì „í™˜í• í™”ë©´ 너비'; diff --git a/lib/tpl/dokuwiki/lang/ko/style.txt b/lib/tpl/dokuwiki/lang/ko/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..306f40edbebbd7507fa04e88ca0d7496e1980093 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ko/style.txt @@ -0,0 +1,4 @@ +ë¡œê³ ë¥¼ ì¡°ì •í•˜ë ¤ë©´, 간단히 미디어 관리ìžë¥¼ 사용하여 ''wiki''나 루트 ì´ë¦„공간 ì•ˆì— ''logo.png''를 올리면 +ìžë™ìœ¼ë¡œ 사용ë©ë‹ˆë‹¤. ë˜í•œ ì—¬ê¸°ì— ''favicon.ico''를 올릴 수 있습니다. 만약 닫힌 위키를 사용한다면 +ACL ì„¤ì •ì—서 ''wiki'' (ë˜ëŠ” 루트) ì´ë¦„ê³µê°„ì„ ì „ì—으로 ì½ì„ 수 있ë„ë¡ ì„¤ì •í•˜ê±°ë‚˜ ë¡œê³ ë¥¼ 사용ìžê°€ +로그ì¸í•˜ì§€ 않으면 보여주지 않ë„ë¡ ì„¤ì •í•˜ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/nl/lang.php b/lib/tpl/dokuwiki/lang/nl/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..cb84fd82a4dc983aba1e85f3d3d42ccfe0bd2ebc --- /dev/null +++ b/lib/tpl/dokuwiki/lang/nl/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author hugo smet <hugo.smet@scarlet.be> + */ +$lang['__background_site__'] = 'Kleur voor de onderste ondergrond (achter de inhoud kader)'; +$lang['__link__'] = 'Kleur voor algemene link'; +$lang['__existing__'] = 'Kleur voor link naar bestaande pagina\'s.'; +$lang['__missing__'] = 'Kleur voor link naar onbestaande pagina\'s'; +$lang['__site_width__'] = 'Breedte van de max site (in gelijk welke eenheid: %, px, em,...)'; +$lang['__sidebar_width__'] = 'Breedte van de zijbalk, indien aanwezig (in gelijk welke eenheid: %, px, em,...)'; +$lang['__tablet_width__'] = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar tablet modus.'; +$lang['__phone_width__'] = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar telefoon modus.'; diff --git a/lib/tpl/dokuwiki/lang/nl/style.txt b/lib/tpl/dokuwiki/lang/nl/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..55de5c7c0a58aface61dca3b63bd261d8744b25a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/nl/style.txt @@ -0,0 +1 @@ +Wil je het logo aanpassen, gebruik dan de Media Manager om een "logo.png" in "wiki" of root naamruimte te uploaden. Dit logo zal dan automatisch gebruikt worden. Je kunt zo ook een "favicon.ico" uploaden. Indien je een gesloten wiki gebruikt is het aan te raden om de "wiki" (of root) naamruimte leesbaar te maken voor iedereen via de ACL instellingen, want anders wordt je logo niet getoond aan niet-ingelogde gebruikers. diff --git a/lib/tpl/dokuwiki/lang/pt-br/lang.php b/lib/tpl/dokuwiki/lang/pt-br/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..0392652747dcd4577cd07d5d14d77de21c35687c --- /dev/null +++ b/lib/tpl/dokuwiki/lang/pt-br/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> + */ +$lang['__background_site__'] = 'Cor para o fundo da tela (atrás da caixa de conteúdo)'; +$lang['__link__'] = 'Cor dos links gerais'; +$lang['__existing__'] = 'Cor dos links para páginas existentes'; +$lang['__missing__'] = 'Cor dos links para páginas não existentes'; +$lang['__site_width__'] = 'Largura do site inteiro (pode ser qualquer unidade: %, px, em, ...)'; +$lang['__sidebar_width__'] = 'Largura da barra lateral, caso exista (pode ser qualquer unidade: %, px, em, ...)'; +$lang['__tablet_width__'] = 'Em larguras abaixo dessa medida, o site mudará para o modo tablet'; +$lang['__phone_width__'] = 'Em larguras abaixo dessa medida, o site mudará para o modo telefone'; diff --git a/lib/tpl/dokuwiki/lang/pt-br/style.txt b/lib/tpl/dokuwiki/lang/pt-br/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..52475d8cf9569442f198333d96efbbb49621d2b2 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/pt-br/style.txt @@ -0,0 +1 @@ +Caso queira ajustar a logo, use o Gerenciador de MÃdias para enviar um "logo.png" para o espaço de nomes "wiki" ou para a raiz e ele será automaticamente usado. Você também pode enviar um "favicon.ico". Caso o seu wiki seja fechado, é recomendável que o espaço de nomes "wiki" (ou a raiz) tenha permissão de leitura nas configurações de ACL, caso contrário a sua logo não será exibida para usuários não autenticados. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/ru/lang.php b/lib/tpl/dokuwiki/lang/ru/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..66066b13c43745b7a062ffe63fddcf77adf8054a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ru/lang.php @@ -0,0 +1,16 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author RainbowSpike <1@2.ru> + * @author Aleksandr Selivanov <alexgearbox@yandex.ru> + */ +$lang['__background_site__'] = 'Цвет Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ³Ð¾ фона (за окном Ñодержимого)'; +$lang['__link__'] = 'ОÑновной цвет ÑÑылок'; +$lang['__existing__'] = 'Цвет ÑÑылок на ÑущеÑтвующие Ñтраницы'; +$lang['__missing__'] = 'Цвет ÑÑылок на неÑущеÑтвующие Ñтраницы'; +$lang['__site_width__'] = 'Ширина вÑего Ñайта (любые CSS-единицы)'; +$lang['__sidebar_width__'] = 'Ширина боковой панели, еÑли еÑть (любые CSS-единицы)'; +$lang['__tablet_width__'] = 'Переключать Ñайт в планшетный вид ниже ширины'; +$lang['__phone_width__'] = 'Переключать Ñайт в мобильный вид ниже ширины'; diff --git a/lib/tpl/dokuwiki/lang/ru/style.txt b/lib/tpl/dokuwiki/lang/ru/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..43bdcd162afbb47c03b2f1c6d3e53b8eda27b170 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/ru/style.txt @@ -0,0 +1 @@ +ЕÑли вы хотите изменить логотип, проÑто иÑпользуйте «Управление медиафайлами» Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файла ''logo.png'' в корневое проÑтранÑтво имён или ''wiki'', и тогда он будет иÑпользоватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Туда же вы можете загрузить ''favicon.ico''. ЕÑли ÑƒÂ Ð²Ð°Ñ Â«Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ» вики, рекомендуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ права на «чтение» в ÑпиÑках ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑтранÑтва имён ''wiki'' (или корневое), иначе логотип не будет показыватьÑÑ Ð½ÐµÐ·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²ÑˆÐ¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм. \ No newline at end of file diff --git a/lib/tpl/dokuwiki/lang/sk/lang.php b/lib/tpl/dokuwiki/lang/sk/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..ca611f838dd8aba9dee14b189c84699519a8e93a --- /dev/null +++ b/lib/tpl/dokuwiki/lang/sk/lang.php @@ -0,0 +1,11 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Martin Michalek <michalek.dev@gmail.com> + */ +$lang['__background_site__'] = 'Farba základného pozadia (za oknom s obsahom)'; +$lang['__link__'] = 'VÅ¡eobecná farba odkazu'; +$lang['__existing__'] = 'Farba odkazov na existujúce stránky'; +$lang['__missing__'] = 'Farba odkazov na neexistujúce stránky'; diff --git a/lib/tpl/dokuwiki/lang/zh/lang.php b/lib/tpl/dokuwiki/lang/zh/lang.php new file mode 100644 index 0000000000000000000000000000000000000000..768114757d53c4212b1c25bc255be517b03f568b --- /dev/null +++ b/lib/tpl/dokuwiki/lang/zh/lang.php @@ -0,0 +1,15 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author lainme <lainme993@gmail.com> + */ +$lang['__background_site__'] = '特别背景的颜色 (内容框åŽé¢)'; +$lang['__link__'] = '一般链接的颜色'; +$lang['__existing__'] = '指å‘å˜åœ¨çš„页é¢çš„链接颜色'; +$lang['__missing__'] = '指å‘ä¸å˜åœ¨çš„页é¢çš„链接颜色'; +$lang['__site_width__'] = '全站的宽度 (å¯ä»¥æ˜¯ä»»ä½•长度å•ä½ï¼š%,px,em,...)'; +$lang['__sidebar_width__'] = 'ä¾§è¾¹æ 的宽度 (如有,å¯ä»¥æ˜¯ä»»ä½•长度å•ä½ï¼š%,px,em,...)'; +$lang['__tablet_width__'] = '当å±å¹•尺寸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°å¹³æ¿æ¨¡å¼'; +$lang['__phone_width__'] = '当å±å¹•尺寸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°æ‰‹æœºæ¨¡å¼'; diff --git a/lib/tpl/dokuwiki/lang/zh/style.txt b/lib/tpl/dokuwiki/lang/zh/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..3f69212010b79c8ba8f365244c40a2bda47d0ba7 --- /dev/null +++ b/lib/tpl/dokuwiki/lang/zh/style.txt @@ -0,0 +1 @@ +如果您想调整logo,åªéœ€ä½¿ç”¨åª’体管ç†å™¨å°†â€œlogo.pngâ€ä¸Šä¼ 到“wikiâ€æˆ–è€…æ ¹å‘½å空间下。您也å¯ä»¥åŒæ ·ä¸Šä¼ 一个“favicon.icoâ€ã€‚如果您采用的是å°é—维基,建议在ACL设置ä¸å°†â€œwiki†(æˆ–è€…æ ¹) 命å空间设置为全局å¯è¯»ï¼Œå¦åˆ™æœªç™»å½•ç”¨æˆ·æ— æ³•çœ‹åˆ°æ‚¨çš„logo。 \ No newline at end of file diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 165230e8a9fdca188e25b7a67e4d67e838776e90..9fea1b133f27e9be830462334a861d572a6ff576 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -26,7 +26,7 @@ $showSidebar = $hasSidebar && ($ACT=='show'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>"> @@ -38,12 +38,12 @@ $showSidebar = $hasSidebar && ($ACT=='show'); <!-- ********** ASIDE ********** --> <div id="dokuwiki__aside"><div class="pad aside include group"> <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3> - <div class="content"> + <div class="content"><div class="group"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar'], true, true) ?> <?php tpl_includeFile('sidebarfooter.html') ?> - </div> + </div></div> </div></div><!-- /aside --> <?php endif; ?> @@ -106,6 +106,6 @@ $showSidebar = $hasSidebar && ($ACT=='show'); <div class="no"><?php tpl_indexerWebBug() /* provide DokuWiki housekeeping, required in all templates */ ?></div> <div id="screen__mode" class="no"></div><?php /* helper to detect CSS media query in script.js */ ?> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> diff --git a/lib/tpl/dokuwiki/mediamanager.php b/lib/tpl/dokuwiki/mediamanager.php index dadf2b10f87d802de1c19a6a4277bf9d1379084f..b3127176611f0288f0cfb7a01c50d80544eb7c39 100644 --- a/lib/tpl/dokuwiki/mediamanager.php +++ b/lib/tpl/dokuwiki/mediamanager.php @@ -25,7 +25,7 @@ header('X-UA-Compatible: IE=edge,chrome=1'); </head> <body> - <!--[if lte IE 7 ]><div id="IE7"><![endif]--><!--[if IE 8 ]><div id="IE8"><![endif]--> + <!--[if lte IE 8 ]><div id="IE8"><![endif]--> <div id="media__manager" class="dokuwiki"> <?php html_msgarea() ?> <div id="mediamgr__aside"><div class="pad"> @@ -41,6 +41,6 @@ header('X-UA-Compatible: IE=edge,chrome=1'); <?php tpl_mediaContent() ?> </div></div> </div> - <!--[if ( lte IE 7 | IE 8 ) ]></div><![endif]--> + <!--[if lte IE 8 ]></div><![endif]--> </body> </html> diff --git a/lib/tpl/dokuwiki/template.info.txt b/lib/tpl/dokuwiki/template.info.txt index 804d595ae39f357b3fe071bc6837790d662b6007..73ad93927aad48e03392c66ace112f7780dfd525 100644 --- a/lib/tpl/dokuwiki/template.info.txt +++ b/lib/tpl/dokuwiki/template.info.txt @@ -1,7 +1,7 @@ base dokuwiki author Anika Henke email anika@selfthinker.org -date 2014-06-04 +date 2015-07-26 name DokuWiki Template desc DokuWiki's default template since 2012 url http://www.dokuwiki.org/template:dokuwiki diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index ee51cbd01ce818806cec4fe4e45e37fb9f77ce48..5b092c5644819d164223f08289379f4e7f7779e0 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -46,10 +46,12 @@ if (!defined('DOKU_INC')) die(); tpl_userinfo(); /* 'Logged in as ...' */ echo '</li>'; } - tpl_action('admin', true, 'li'); - tpl_action('profile', true, 'li'); - tpl_action('register', true, 'li'); - tpl_action('login', true, 'li'); + tpl_toolsevent('usertools', array( + tpl_action('admin', true, 'li', true), + tpl_action('profile', true, 'li', true), + tpl_action('register', true, 'li', true), + tpl_action('login', true, 'li', true) + )); ?> </ul> </div> @@ -64,9 +66,11 @@ if (!defined('DOKU_INC')) die(); </div> <ul> <?php - tpl_action('recent', true, 'li'); - tpl_action('media', true, 'li'); - tpl_action('index', true, 'li'); + tpl_toolsevent('sitetools', array( + tpl_action('recent', true, 'li', true), + tpl_action('media', true, 'li', true), + tpl_action('index', true, 'li', true) + )); ?> </ul> </div> diff --git a/vendor/README b/vendor/README new file mode 100644 index 0000000000000000000000000000000000000000..e4027f419560c19f98684c6b2a52ed8a1289f905 --- /dev/null +++ b/vendor/README @@ -0,0 +1,6 @@ +====== composer managed libraries ====== + +All file within here are manged through composer and should not be +edited directly. Instead provide upstream patches. + +Learn more about Composer at http://getcomposer.org diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000000000000000000000000000000000000..88c7fd93b4f81107eb73d97d9ab635e3e3db33d4 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer' . '/autoload_real.php'; + +return ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php new file mode 100644 index 0000000000000000000000000000000000000000..5e1469e8307d9c644831f694ed8eccdd4afccc28 --- /dev/null +++ b/vendor/composer/ClassLoader.php @@ -0,0 +1,413 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0 class loader + * + * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + + private $classMapAuthoritative = false; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-0 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 + if ('\\' == $class[0]) { + $class = substr($class, 1); + } + + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative) { + return false; + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if ($file === null && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if ($file === null) { + // Remember that this class does not exist. + return $this->classMap[$class] = false; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { + if (0 === strpos($class, $prefix)) { + foreach ($this->prefixDirsPsr4[$prefix] as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000000000000000000000000000000000000..63b550c324fd93a756ab232540213b8ad94777d3 --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( + 'GeSHi' => $vendorDir . '/easybook/geshi/geshi.php', +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000000000000000000000000000000000000..b7fc0125dbca56fd7565ad62097672a59473e64e --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( +); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php new file mode 100644 index 0000000000000000000000000000000000000000..e4d7132708607447bfb335873639567047650451 --- /dev/null +++ b/vendor/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname($vendorDir); + +return array( + 'splitbrain\\PHPArchive\\' => array($vendorDir . '/splitbrain/php-archive/src'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 0000000000000000000000000000000000000000..fee79daed35482810260f06b10635f3ab8cc0ed5 --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,50 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader')); + + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + + $loader->register(true); + + return $loader; + } +} + +function composerRequirea19a915ee98347a0c787119619d2ff9b($file) +{ + require $file; +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 0000000000000000000000000000000000000000..0510ac9940a729e4ca07622286973da7fc35a9af --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,99 @@ +[ + { + "name": "easybook/geshi", + "version": "v1.0.8.15", + "version_normalized": "1.0.8.15", + "source": { + "type": "git", + "url": "https://github.com/easybook/geshi.git", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easybook/geshi/zipball/54387de80bc7ee50397ffae39234626a48d2d45f", + "reference": "54387de80bc7ee50397ffae39234626a48d2d45f", + "shasum": "" + }, + "require": { + "php": ">4.3.0" + }, + "time": "2015-06-18 14:56:28", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + }, + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + } + ], + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": [ + "highlight", + "highlighter", + "syntax" + ] + }, + { + "name": "splitbrain/php-archive", + "version": "1.0.7", + "version_normalized": "1.0.7.0", + "source": { + "type": "git", + "url": "https://github.com/splitbrain/php-archive.git", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/c075304b44c4aadff0718af445e86bf730f331ff", + "reference": "c075304b44c4aadff0718af445e86bf730f331ff", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "time": "2015-08-12 13:24:34", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": [ + "archive", + "extract", + "tar", + "unpack", + "unzip", + "zip" + ] + } +] diff --git a/vendor/easybook/geshi/README.md b/vendor/easybook/geshi/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0a12d08bbb43574eef288e0442b59b7a77c3d4e8 --- /dev/null +++ b/vendor/easybook/geshi/README.md @@ -0,0 +1,10 @@ +# GeSHi - Generic Syntax Highlighter # + +This repository has been created just to be able to install GeSHi as a Composer +package. Technically it's a port of the GeSHi project code found on SourceForge: +http://sourceforge.net/projects/geshi/ + +Differences from the official SourceForge repository: + + * 11/may/2014: added `sass.php` file to highlight Sass stylesheets. + * 28/sep/2012: added `twig.php` file to highlight Twig templates. diff --git a/vendor/easybook/geshi/composer.json b/vendor/easybook/geshi/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..33494664cb5c8d23eb2c04d34587694999aa8606 --- /dev/null +++ b/vendor/easybook/geshi/composer.json @@ -0,0 +1,24 @@ +{ + "name": "easybook/geshi", + "type": "library", + "description": "GeSHi - Generic Syntax Highlighter. This is an unmodified port of GeSHi project code found on SourceForge.", + "homepage": "http://qbnz.com/highlighter", + "keywords": ["highlighter", "highlight", "syntax"], + "license": "GPL-2.0", + "authors": [ + { + "name": "Benny Baumann", + "email": "BenBE@geshi.org" + }, + { + "name": "Nigel McNie", + "email": "nigel@geshi.org" + } + ], + "require": { + "php": ">4.3.0" + }, + "autoload": { + "classmap": ["./"] + } +} \ No newline at end of file diff --git a/inc/geshi.php b/vendor/easybook/geshi/geshi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi.php rename to vendor/easybook/geshi/geshi.php index c6ff9ef7773b95a40c2d6171a38abeb2f165af54..bd265af97925a12d8e132cf4d631b45577415324 --- a/inc/geshi.php +++ b/vendor/easybook/geshi/geshi.php @@ -41,7 +41,7 @@ // /** The version of this GeSHi file */ -define('GESHI_VERSION', '1.0.8.11'); +define('GESHI_VERSION', '1.0.8.12'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { diff --git a/inc/geshi/4cs.php b/vendor/easybook/geshi/geshi/4cs.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/4cs.php rename to vendor/easybook/geshi/geshi/4cs.php index 5209c51e8026ea3b0ef107a1f50e92e19cbd9228..e5a00645c1e4934c05c6cb004f84df11e6c34f91 --- a/inc/geshi/4cs.php +++ b/vendor/easybook/geshi/geshi/4cs.php @@ -135,5 +135,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> \ No newline at end of file diff --git a/inc/geshi/6502acme.php b/vendor/easybook/geshi/geshi/6502acme.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502acme.php rename to vendor/easybook/geshi/geshi/6502acme.php diff --git a/inc/geshi/6502kickass.php b/vendor/easybook/geshi/geshi/6502kickass.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502kickass.php rename to vendor/easybook/geshi/geshi/6502kickass.php diff --git a/inc/geshi/6502tasm.php b/vendor/easybook/geshi/geshi/6502tasm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/6502tasm.php rename to vendor/easybook/geshi/geshi/6502tasm.php diff --git a/inc/geshi/68000devpac.php b/vendor/easybook/geshi/geshi/68000devpac.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/68000devpac.php rename to vendor/easybook/geshi/geshi/68000devpac.php diff --git a/inc/geshi/abap.php b/vendor/easybook/geshi/geshi/abap.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/abap.php rename to vendor/easybook/geshi/geshi/abap.php diff --git a/inc/geshi/actionscript.php b/vendor/easybook/geshi/geshi/actionscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/actionscript.php rename to vendor/easybook/geshi/geshi/actionscript.php diff --git a/inc/geshi/actionscript3.php b/vendor/easybook/geshi/geshi/actionscript3.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/actionscript3.php rename to vendor/easybook/geshi/geshi/actionscript3.php diff --git a/inc/geshi/ada.php b/vendor/easybook/geshi/geshi/ada.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ada.php rename to vendor/easybook/geshi/geshi/ada.php diff --git a/vendor/easybook/geshi/geshi/aimms.php b/vendor/easybook/geshi/geshi/aimms.php new file mode 100644 index 0000000000000000000000000000000000000000..f46bdd0bcd7a3ab71a538bcf49570fa6aed0dde1 --- /dev/null +++ b/vendor/easybook/geshi/geshi/aimms.php @@ -0,0 +1,316 @@ +<?php +/************************************************************************************* + * aimms.php + * -------- + * Author: Guido Diepen (guido.diepen@aimms.com) + * Copyright: (c) 2011 Guido Diepen (http://www.aimms.com) + * Release Version: 1.0.8.12 + * Date Started: 2011/05/05 + * + * AIMMS language file for GeSHi. + * + * CHANGES + * ------- + * 2004/07/14 (1.0.0) + * - First Release + * + * TODO (updated 2004/07/14) + * ------------------------- + * * Make sure the last few function I may have missed + * (like eval()) are included for highlighting + * * Split to several files - php4, php5 etc + * + ************************************************************************************* + * + * 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' => 'AIMMS3', + 'COMMENT_SINGLE' => array(1 => '!'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'", "\\"), + 'HARDCHAR' => "\\", + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'if', 'then', 'else', 'endif', 'elseif', 'for', 'do', 'while' , 'endfor' , 'endwhile', 'break', 'switch', 'endswitch', + 'display', 'return', 'in', 'apply' + + ), + 2 => array( + 'main model' , 'declaration section', 'procedure', 'endprocedure', 'endmodel', 'endsection' , 'set', 'parameter', + 'string parameter', 'element parameter', 'quantity' + ), + 3 => array( + 'identifier', 'index', 'index domain', 'body' + ), + 4 => array( + 'ActiveCard','Card','ConvertUnit','DistributionCumulative','DistributionDensity','DistributionDeviation', + 'DistributionInverseCumulative','DistributionInverseDensity','DistributionKurtosis','DistributionMean', + 'DistributionSkewness','DistributionVariance','Element','EvaluateUnit','First','FormatString','Last', + 'Ord','Unit','Val','Aggregate','AttributeToString','CaseCompareIdentifier','CaseCreateDifferenceFile', + 'CloseDataSource','CreateTimeTable','ConstraintVariables','ConvertReferenceDate','CloneElement', + 'FindNthString','FindReplaceNthString','FindReplaceStrings','FindString','StringOccurrences', + 'CurrentToMoment','CurrentToString','CurrentToTimeSlot','DaylightsavingEndDate','DaylightsavingStartDate', + 'DeclaredSubset','DomainIndex','IndexRange','IsRunningAsViewer','ListingFileCopy','ListingFileDelete', + 'DirectoryGetFiles','DirectoryGetSubdirectories','DirectSQL','Disaggregate','ElementCast','ElementRange', + 'EnvironmentGetString','EnvironmentSetString','errh::Adapt','errh::Attribute','errh::Category', + 'errh::Code','errh::Column','errh::CreationTime','errh::Filename','errh::InsideCategory', + 'errh::IsMarkedAsHandled','errh::Line','errh::MarkAsHandled','errh::Message','errh::Multiplicity', + 'errh::Node','errh::NumberOfLocations','errh::Severity','ExcelAddNewSheet','ExcelAssignParameter', + 'ExcelAssignSet','ExcelAssignTable','ExcelAssignValue','ExcelClearRange','ExcelCloseWorkbook', + 'ExcelColumnName','ExcelColumnNumber','ExcelCopyRange','ExcelCreateWorkbook','ExcelDeleteSheet', + 'ExcelPrint','ExcelRetrieveParameter','ExcelRetrieveSet','ExcelRetrieveTable','ExcelRetrieveValue', + 'ExcelRunMacro','ExcelSaveWorkbook','ExcelSetActiveSheet','ExcelSetUpdateLinksBehavior', + 'ExcelSetVisibility','FindUsedElements','GenerateCUT','GMP::Coefficient::Get', + 'GMP::Coefficient::GetQuadratic','GMP::Coefficient::Set','GMP::Coefficient::SetQuadratic', + 'GMP::Column::Add','GMP::Column::Delete','GMP::Column::Freeze','GMP::Column::GetLowerbound', + 'GMP::Column::GetScale','GMP::Column::GetStatus','GMP::Column::GetType','GMP::Column::GetUpperbound', + 'GMP::Column::SetAsObjective','GMP::Column::SetLowerbound','GMP::Column::SetType', + 'GMP::Column::SetUpperbound','GMP::Column::Unfreeze','GMP::Instance::AddIntegerEliminationRows', + 'GMP::Instance::CalculateSubGradient','GMP::Instance::Copy','GMP::Instance::CreateDual', + 'GMP::Instance::CreateMasterMip','GMP::Instance::CreatePresolved', + 'GMP::SolverSession::CreateProgressCategory','GMP::Instance::CreateProgressCategory', + 'GMP::Instance::CreateSolverSession','GMP::Stochastic::CreateBendersRootproblem', + 'GMP::Instance::Delete','GMP::Instance::DeleteIntegerEliminationRows', + 'GMP::Instance::DeleteSolverSession','GMP::Instance::FindApproximatelyFeasibleSolution', + 'GMP::Instance::FixColumns','GMP::Instance::Generate','GMP::Instance::GenerateRobustCounterpart', + 'GMP::Instance::GenerateStochasticProgram','GMP::SolverSession::GetCallbackInterruptStatus', + 'GMP::SolverSession::WaitForCompletion','GMP::SolverSession::WaitForSingleCompletion', + 'GMP::SolverSession::ExecutionStatus','GMP::Instance::GetDirection','GMP::Instance::GetLinearObjective', + 'GMP::Instance::GetMathematicalProgrammingType','GMP::Instance::GetMemoryUsed', + 'GMP::Instance::GetNumberOfColumns','GMP::Instance::GetNumberOfIndicatorRows', + 'GMP::Instance::GetNumberOfIntegerColumns','GMP::Instance::GetNumberOfNonlinearColumns', + 'GMP::Instance::GetNumberOfNonlinearNonzeros','GMP::Instance::GetNumberOfNonlinearRows', + 'GMP::Instance::GetNumberOfNonzeros','GMP::Instance::GetNumberOfRows', + 'GMP::Instance::GetNumberOfSOS1Rows','GMP::Instance::GetNumberOfSOS2Rows', + 'GMP::Instance::GetObjective','GMP::Instance::GetOptionValue','GMP::Instance::GetSolver', + 'GMP::Instance::GetSymbolicMathematicalProgram','GMP::Instance::MemoryStatistics', + 'GMP::Instance::Rename','GMP::Instance::SetCallbackAddCut','GMP::Instance::SetCallbackBranch', + 'GMP::Instance::SetCallbackHeuristic','GMP::Instance::SetCallbackIncumbent', + 'GMP::Instance::SetCallbackIterations','GMP::Instance::SetCallbackNewIncumbent', + 'GMP::Instance::SetCallbackStatusChange','GMP::Instance::SetCutoff','GMP::Instance::SetDirection', + 'GMP::Instance::SetMathematicalProgrammingType','GMP::Instance::SetSolver','GMP::Instance::Solve', + 'GMP::Stochastic::GetObjectiveBound','GMP::Stochastic::GetRelativeWeight', + 'GMP::Stochastic::GetRepresentativeScenario','GMP::Stochastic::UpdateBendersSubproblem', + 'GMP::Linearization::Add','GMP::Linearization::AddSingle','GMP::Linearization::Delete', + 'GMP::Linearization::GetDeviation','GMP::Linearization::GetDeviationBound', + 'GMP::Linearization::GetLagrangeMultiplier','GMP::Linearization::GetType', + 'GMP::Linearization::GetWeight','GMP::Linearization::RemoveDeviation', + 'GMP::Linearization::SetDeviationBound','GMP::Linearization::SetType', + 'GMP::Linearization::SetWeight','GMP::ProgressWindow::DeleteCategory', + 'GMP::ProgressWindow::DisplayLine','GMP::ProgressWindow::DisplayProgramStatus', + 'GMP::ProgressWindow::DisplaySolver','GMP::ProgressWindow::DisplaySolverStatus', + 'GMP::ProgressWindow::FreezeLine','GMP::ProgressWindow::UnfreezeLine', + 'GMP::QuadraticCoefficient::Get','GMP::QuadraticCoefficient::Set','GMP::Row::Activate', + 'GMP::Stochastic::AddBendersFeasibilityCut','GMP::Stochastic::AddBendersOptimalityCut', + 'GMP::Stochastic::BendersFindFeasibilityReference','GMP::Stochastic::MergeSolution', + 'GMP::Row::Add','GMP::Row::Deactivate','GMP::Row::Delete','GMP::Row::DeleteIndicatorCondition', + 'GMP::Row::Generate','GMP::Row::GetConvex','GMP::Row::GetIndicatorColumn', + 'GMP::Row::GetIndicatorCondition','GMP::Row::GetLeftHandSide','GMP::Row::GetRelaxationOnly', + 'GMP::Row::GetRightHandSide','GMP::Row::GetScale','GMP::Row::GetStatus','GMP::Row::GetType', + 'GMP::Row::SetConvex','GMP::Row::SetIndicatorCondition','GMP::Row::SetLeftHandSide', + 'GMP::Row::SetRelaxationOnly','GMP::Row::SetRightHandSide','GMP::Row::SetType', + 'GMP::Solution::Check','GMP::Solution::Copy','GMP::Solution::Count','GMP::Solution::Delete', + 'GMP::Solution::DeleteAll','GMP::Solution::GetColumnValue','GMP::Solution::GetCPUSecondsUsed', + 'GMP::Solution::GetDistance','GMP::Solution::GetFirstOrderDerivative', + 'GMP::Solution::GetIterationsUsed','GMP::Solution::GetNodesUsed','GMP::Solution::GetLinearObjective', + 'GMP::Solution::GetMemoryUsed','GMP::Solution::GetObjective','GMP::Solution::GetPenalizedObjective', + 'GMP::Solution::GetProgramStatus','GMP::Solution::GetRowValue','GMP::Solution::GetSolutionsSet', + 'GMP::Solution::GetSolverStatus','GMP::Solution::IsDualDegenerated','GMP::Solution::IsInteger', + 'GMP::Solution::IsPrimalDegenerated','GMP::Solution::SetMIPStartFlag','GMP::Solution::Move', + 'GMP::Solution::RandomlyGenerate','GMP::Solution::RetrieveFromModel', + 'GMP::Solution::RetrieveFromSolverSession','GMP::Solution::SendToModel', + 'GMP::Solution::SendToModelSelection','GMP::Solution::SendToSolverSession', + 'GMP::Solution::SetIterationCount','GMP::Solution::SetProgramStatus','GMP::Solution::SetSolverStatus', + 'GMP::Solution::UpdatePenaltyWeights','GMP::Solution::ConstructMean', + 'GMP::SolverSession::AsynchronousExecute','GMP::SolverSession::Execute', + 'GMP::SolverSession::Interrupt','GMP::SolverSession::AddLinearization', + 'GMP::SolverSession::GenerateBranchLowerBound','GMP::SolverSession::GenerateBranchUpperBound', + 'GMP::SolverSession::GenerateBranchRow','GMP::SolverSession::GenerateCut', + 'GMP::SolverSession::GenerateBinaryEliminationRow','GMP::SolverSession::GetCPUSecondsUsed', + 'GMP::SolverSession::GetHost','GMP::SolverSession::GetInstance', + 'GMP::SolverSession::GetIterationsUsed','GMP::SolverSession::GetNodesLeft', + 'GMP::SolverSession::GetNodesUsed','GMP::SolverSession::GetNodeNumber', + 'GMP::SolverSession::GetNodeObjective','GMP::SolverSession::GetNumberOfBranchNodes', + 'GMP::SolverSession::GetLinearObjective','GMP::SolverSession::GetMemoryUsed', + 'GMP::SolverSession::GetObjective','GMP::SolverSession::GetOptionValue', + 'GMP::SolverSession::GetProgramStatus','GMP::SolverSession::GetSolver', + 'GMP::SolverSession::GetSolverStatus','GMP::SolverSession::RejectIncumbent', + 'GMP::Event::Create','GMP::Event::Delete','GMP::Event::Reset','GMP::Event::Set', + 'GMP::SolverSession::SetObjective','GMP::SolverSession::SetOptionValue', + 'GMP::Instance::SetCPUSecondsLimit','GMP::Instance::SetIterationLimit', + 'GMP::Instance::SetMemoryLimit','GMP::Instance::SetOptionValue','GMP::Tuning::SolveSingleMPS', + 'GMP::Tuning::TuneMultipleMPS','GMP::Tuning::TuneSingleGMP', + 'GMP::Solver::GetAsynchronousSessionsLimit','GMP::Robust::EvaluateAdjustableVariables', + 'GenerateXML','GetDatasourceProperty','ReadGeneratedXML','ReadXML','ReferencedIdentifiers', + 'WriteXML','IdentifierAttributes','IdentifierDimension','IsRuntimeIdentifier','IdentifierMemory', + 'IdentifierMemoryStatistics','IdentifierText','IdentifierType','IdentifierUnit','ScalarValue', + 'SectionIdentifiers','SubRange','MemoryInUse','CommitTransaction','RollbackTransaction', + 'MemoryStatistics','me::AllowedAttribute','me::ChangeType','me::ChangeTypeAllowed','me::Children', + 'me::ChildTypeAllowed','me::Compile','me::Create','me::CreateLibrary','me::Delete','me::ExportNode', + 'me::GetAttribute','me::ImportLibrary','me::ImportNode','me::IsRunnable','me::Move','me::Parent', + 'me::Rename','me::SetAttribute','MomentToString','MomentToTimeSlot','OptionGetValue', + 'OptionGetKeywords','OptionGetString','OptionSetString','OptionSetValue','PeriodToString', + 'ProfilerContinue','ProfilerPause','ProfilerRestart','RestoreInactiveElements', + 'RetrieveCurrentVariableValues','SetAddRecursive','SetElementAdd','SetElementRename', + 'SQLColumnData','SQLCreateConnectionString','SQLDriverName','SQLNumberOfColumns', + 'SQLNumberOfDrivers','SQLNumberOfTables','SQLNumberOfViews','SQLTableName','SQLViewName', + 'StartTransaction','StringToElement','StringToMoment','StringToTimeSlot','TestDatabaseColumn', + 'TestDatabaseTable','TestDataSource','TestDate','TimeslotCharacteristic','TimeslotToMoment', + 'TimeslotToString','TimeZoneOffset','VariableConstraints','PageOpen','PageOpenSingle','PageClose', + 'PageGetActive','PageSetFocus','PageGetFocus','PageSetCursor','PageRefreshAll','PageGetChild', + 'PageGetParent','PageGetNext','PageGetPrevious','PageGetNextInTreeWalk','PageGetUsedIdentifiers', + 'PageGetTitle','PageGetAll','PageCopyTableToClipboard','PageCopyTableToExcel','PrintPage', + 'PrintPageCount','PrintStartReport','PrintEndReport','PivotTableReloadState','PivotTableSaveState', + 'PivotTableDeleteState','FileSelect','FileSelectNew','FileDelete','FileExists','FileCopy', + 'FileMove','FileView','FileEdit','FilePrint','FileTime','FileTouch','FileAppend','FileGetSize', + 'DirectorySelect','DirectoryCreate','DirectoryDelete','DirectoryExists','DirectoryCopy', + 'DirectoryMove','DirectoryGetCurrent','DialogProgress','DialogMessage','DialogError', + 'StatusMessage','DialogAsk','DialogGetString','DialogGetDate','DialogGetNumber','DialogGetElement', + 'DialogGetElementByText','DialogGetElementByData','DialogGetPassword','DialogGetColor','CaseNew', + 'CaseFind','CaseCreate','CaseLoadCurrent','CaseMerge','CaseLoadIntoCurrent','CaseSelect', + 'CaseSelectNew','CaseSetCurrent','CaseSave','CaseSaveAll','CaseSaveAs','CaseSelectMultiple', + 'CaseGetChangedStatus','CaseSetChangedStatus','CaseDelete','CaseGetType','CaseGetDatasetReference', + 'CaseWriteToSingleFile','CaseReadFromSingleFile','DatasetNew','DatasetFind','DatasetCreate', + 'DatasetLoadCurrent','DatasetMerge','DatasetLoadIntoCurrent','DatasetSelect','DatasetSelectNew', + 'DatasetSetCurrent','DatasetSave','DatasetSaveAll','DatasetSaveAs','DatasetGetChangedStatus', + 'DatasetSetChangedStatus','DatasetDelete','DatasetGetCategory','DataFileGetName', + 'DataFileGetAcronym','DataFileSetAcronym','DataFileGetComment','DataFileSetComment', + 'DataFileGetPath','DataFileGetTime','DataFileGetOwner','DataFileGetGroup','DataFileReadPermitted', + 'DataFileWritePermitted','DataFileExists','DataFileCopy','DataCategoryContents','CaseTypeContents', + 'CaseTypeCategories','Execute','OpenDocument','TestInternetConnection','GeoFindCoordinates', + 'ShowHelpTopic','Delay','ScheduleAt','ExitAimms','SessionArgument','SessionHasVisibleGUI', + 'ProjectDeveloperMode','DebuggerBreakpoint','ShowProgressWindow','ShowMessageWindow', + 'SolverGetControl','SolverReleaseControl','ProfilerStart','DataManagerImport','DataManagerExport', + 'DataManagerFileNew','DataManagerFileOpen','DataManagerFileGetCurrent','DataImport220', + 'SecurityGetUsers','SecurityGetGroups','UserColorAdd','UserColorDelete','UserColorGetRGB', + 'UserColorModify','LicenseNumber','LicenseType','LicenseStartDate','LicenseExpirationDate', + 'LicenseMaintenanceExpirationDate','VARLicenseExpirationDate','AimmsRevisionString', + 'VARLicenseCreate','HistogramCreate','HistogramDelete','HistogramSetDomain', + 'HistogramAddObservation','HistogramGetFrequencies','HistogramGetBounds', + 'HistogramGetObservationCount','HistogramGetAverage','HistogramGetDeviation', + 'HistogramGetSkewness','HistogramGetKurtosis','DateDifferenceDays','DateDifferenceYearFraction', + 'PriceFractional','PriceDecimal','RateEffective','RateNominal','DepreciationLinearLife', + 'DepreciationLinearRate','DepreciationNonLinearSumOfYear','DepreciationNonLinearLife', + 'DepreciationNonLinearFactor','DepreciationNonLinearRate','DepreciationSum', + 'InvestmentConstantPresentValue','InvestmentConstantFutureValue', + 'InvestmentConstantPeriodicPayment','InvestmentConstantInterestPayment', + 'InvestmentConstantPrincipalPayment','InvestmentConstantCumulativePrincipalPayment', + 'InvestmentConstantCumulativeInterestPayment','InvestmentConstantNumberPeriods', + 'InvestmentConstantRateAll','InvestmentConstantRate','InvestmentVariablePresentValue', + 'InvestmentVariablePresentValueInperiodic','InvestmentSingleFutureValue', + 'InvestmentVariableInternalRateReturnAll','InvestmentVariableInternalRateReturn', + 'InvestmentVariableInternalRateReturnInperiodicAll','InvestmentVariableInternalRateReturnInperiodic', + 'InvestmentVariableInternalRateReturnModified','SecurityDiscountedPrice', + 'SecurityDiscountedRedemption','SecurityDiscountedYield','SecurityDiscountedRate', + 'TreasuryBillPrice','TreasuryBillYield','TreasuryBillBondEquivalent','SecurityMaturityPrice', + 'SecurityMaturityCouponRate','SecurityMaturityYield','SecurityMaturityAccruedInterest', + 'SecurityCouponNumber','SecurityCouponPreviousDate','SecurityCouponNextDate','SecurityCouponDays', + 'SecurityCouponDaysPreSettlement','SecurityCouponDaysPostSettlement','SecurityPeriodicPrice', + 'SecurityPeriodicRedemption','SecurityPeriodicCouponRate','SecurityPeriodicYieldAll', + 'SecurityPeriodicYield','SecurityPeriodicAccruedInterest','SecurityPeriodicDuration', + 'SecurityPeriodicDurationModified','Abs','AtomicUnit','Ceil','Character','CharacterNumber','Cube', + 'Degrees','Div','Exp','FileRead','Floor','Log','Log10','Mapval','Max','Min','Mod','Power', + 'Radians','Round','Sign','Sqr','Sqrt','StringCapitalize','StringLength','StringToLower', + 'StringToUnit','StringToUpper','SubString','Trunc','Binomial','NegativeBinomial','Poisson', + 'Geometric','HyperGeometric','Uniform','Normal','LogNormal','Triangular','Exponential','Weibull', + 'Beta','Gamma','Logistic','Pareto','ExtremeValue','Precision','Factorial','Combination', + 'Permutation','Errorf','Cos','Sin','Tan','ArcCos','ArcSin','ArcTan','Cosh','Sinh','Tanh', + 'ArcCosh','ArcSinh','ArcTanh' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')', '[', ']', '{', '}', + '%', '&', '|', '/', + '<', '>', '>=' , '<=', ':=', + '=', '-', '+', '*', + '.', ',' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #404040;', + 4 => 'color: #990000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #808080; font-style: italic ', + 'HARD' => 'color: #808080; font-style: italic' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + ), + 'COMMENTS' => array( + 1 => 'color: #008000; font-style: italic;', + 'MULTI' => 'color: #008000; font-style: italic;' + ), + + 'METHODS' => array( + 1 => 'color: #004000;', + 2 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'ESCAPE_CHAR' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/algol68.php b/vendor/easybook/geshi/geshi/algol68.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/algol68.php rename to vendor/easybook/geshi/geshi/algol68.php diff --git a/inc/geshi/apache.php b/vendor/easybook/geshi/geshi/apache.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/apache.php rename to vendor/easybook/geshi/geshi/apache.php diff --git a/inc/geshi/applescript.php b/vendor/easybook/geshi/geshi/applescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/applescript.php rename to vendor/easybook/geshi/geshi/applescript.php diff --git a/inc/geshi/apt_sources.php b/vendor/easybook/geshi/geshi/apt_sources.php old mode 100644 new mode 100755 similarity index 86% rename from inc/geshi/apt_sources.php rename to vendor/easybook/geshi/geshi/apt_sources.php index 9f1ed045e15a54ebf8fc2a79b03c8b81d8b4322a..979d10ce9ccb8b66502d094ae464820564e09520 --- a/inc/geshi/apt_sources.php +++ b/vendor/easybook/geshi/geshi/apt_sources.php @@ -55,7 +55,7 @@ $language_data = array ( 'stable/updates', //Debian 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge', - 'etch', 'lenny', 'wheezy', 'sid', + 'etch', 'lenny', 'wheezy', 'jessie', 'sid', //Ubuntu 'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports', 'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports', @@ -69,7 +69,14 @@ $language_data = array ( 'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports', 'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports', 'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports', - 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports' + 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports', + 'natty', 'natty-updates', 'natty-security', 'natty-proposed', 'natty-backports', + 'oneiric', 'oneiric-updates', 'oneiric-security', 'oneiric-proposed', 'oneiric-backports', + 'precise', 'precise-updates', 'precise-security', 'precise-proposed', 'precise-backports', + 'quantal', 'quantal-updates', 'quantal-security', 'quantal-proposed', 'quantal-backports', + 'raring', 'raring-updates', 'raring-security', 'raring-proposed', 'raring-backports', + 'saucy', 'saucy-updates', 'saucy-security', 'saucy-proposed', 'saucy-backports', + 'trusty', 'trusty-updates', 'trusty-security', 'trusty-proposed', 'trusty-backports' ), 3 => array( 'main', 'restricted', 'preview', 'contrib', 'non-free', diff --git a/inc/geshi/arm.php b/vendor/easybook/geshi/geshi/arm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/arm.php rename to vendor/easybook/geshi/geshi/arm.php diff --git a/inc/geshi/asm.php b/vendor/easybook/geshi/geshi/asm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/asm.php rename to vendor/easybook/geshi/geshi/asm.php diff --git a/inc/geshi/asp.php b/vendor/easybook/geshi/geshi/asp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/asp.php rename to vendor/easybook/geshi/geshi/asp.php diff --git a/inc/geshi/asymptote.php b/vendor/easybook/geshi/geshi/asymptote.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/asymptote.php rename to vendor/easybook/geshi/geshi/asymptote.php index 8683588e5f22949b8057245a20cded70510fea81..295cb0a568ec18a17c605d00349388e404dd2269 --- a/inc/geshi/asymptote.php +++ b/vendor/easybook/geshi/geshi/asymptote.php @@ -190,5 +190,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/autoconf.php b/vendor/easybook/geshi/geshi/autoconf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autoconf.php rename to vendor/easybook/geshi/geshi/autoconf.php diff --git a/inc/geshi/autohotkey.php b/vendor/easybook/geshi/geshi/autohotkey.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autohotkey.php rename to vendor/easybook/geshi/geshi/autohotkey.php diff --git a/inc/geshi/autoit.php b/vendor/easybook/geshi/geshi/autoit.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/autoit.php rename to vendor/easybook/geshi/geshi/autoit.php diff --git a/inc/geshi/avisynth.php b/vendor/easybook/geshi/geshi/avisynth.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/avisynth.php rename to vendor/easybook/geshi/geshi/avisynth.php diff --git a/inc/geshi/awk.php b/vendor/easybook/geshi/geshi/awk.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/awk.php rename to vendor/easybook/geshi/geshi/awk.php index 1ec239b70c853e991cbfe30801a728f64b46dbd9..46fe49f8780f4b18c0b4b7357d660fad7edae714 --- a/inc/geshi/awk.php +++ b/vendor/easybook/geshi/geshi/awk.php @@ -154,5 +154,3 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array (), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/bascomavr.php b/vendor/easybook/geshi/geshi/bascomavr.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bascomavr.php rename to vendor/easybook/geshi/geshi/bascomavr.php diff --git a/inc/geshi/bash.php b/vendor/easybook/geshi/geshi/bash.php old mode 100644 new mode 100755 similarity index 88% rename from inc/geshi/bash.php rename to vendor/easybook/geshi/geshi/bash.php index c69f0054fc6e7991be83bba5b0ea788ab0bef780..eba70028b0bc025511a0d50c6f2d7027151857ab --- a/inc/geshi/bash.php +++ b/vendor/easybook/geshi/geshi/bash.php @@ -132,7 +132,16 @@ $language_data = array ( 'apt-src remove', 'apt-src update', 'apt-src upgrade', 'apt-src version', - 'basename', 'bash', 'bc', 'bison', 'bunzip2', 'bzcat', + 'aptitude autoclean', 'aptitude build-dep', 'aptitude changelog', + 'aptitude clean', 'aptitude download', 'aptitude forbid-version', + 'aptitude forget-new', 'aptitude full-upgrade', 'aptitude hold', + 'aptitude install', 'aptitude markauto', 'aptitude purge', + 'aptitude reinstall', 'aptitude remove', 'aptitude safe-upgrade', + 'aptitude search', 'aptitude show', 'aptitude unhold', + 'aptitude unmarkauto', 'aptitude update', 'aptitude versions', + 'aptitude why', 'aptitude why-not', + + 'basename', 'bash', 'batctl', 'bc', 'bison', 'bunzip2', 'bzcat', 'bzcmp', 'bzdiff', 'bzegrep', 'bzfgrep', 'bzgrep', 'bzip2', 'bzip2recover', 'bzless', 'bzmore', @@ -247,14 +256,14 @@ $language_data = array ( 'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe', 'git-write-tree', 'gitxgrep', - 'head', 'hexdump', 'hostname', + 'head', 'hexdump', 'hostname', 'htop', 'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install', 'ip', 'ip addr', 'ip addrlabel', 'ip link', 'ip maddr', 'ip mroute', 'ip neigh', 'ip route', 'ip rule', 'ip tunnel', 'ip xfrm', - 'join', + 'jar', 'java', 'javac', 'join', 'kbd_mode','kbdrate', 'kdialog', 'kfile', 'kill', 'killall', @@ -271,10 +280,11 @@ $language_data = array ( 'od', 'openvt', - 'passwd', 'patch', 'pcregrep', 'pcretest', 'perl', 'perror', - 'pgawk', 'pidof', 'ping', 'pr', 'procmail', 'prune', 'ps', 'pstree', - 'ps2ascii', 'ps2epsi', 'ps2frag', 'ps2pdf', 'ps2ps', 'psbook', - 'psmerge', 'psnup', 'psresize', 'psselect', 'pstops', + 'passwd', 'patch', 'pbzip2', 'pcregrep', 'pcretest', 'perl', + 'perror', 'pgawk', 'pidof', 'pigz', 'ping', 'pr', 'procmail', + 'prune', 'ps', 'pstree', 'ps2ascii', 'ps2epsi', 'ps2frag', + 'ps2pdf', 'ps2ps', 'psbook', 'psmerge', 'psnup', 'psresize', + 'psselect', 'pstops', 'rbash', 'rcs', 'rcs2log', 'read', 'readlink', 'red', 'resizecons', 'rev', 'rm', 'rmdir', 'rsh', 'run-parts', @@ -283,7 +293,7 @@ $language_data = array ( 'setkeycodes', 'setleds', 'setmetamode', 'setserial', 'setterm', 'sh', 'showkey', 'shred', 'size', 'size86', 'skill', 'sleep', 'slogin', 'snice', 'sort', 'sox', 'split', 'ssed', 'ssh', 'ssh-add', - 'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'stat', 'strace', + 'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'sshfs', 'stat', 'strace', 'strings', 'strip', 'stty', 'su', 'sudo', 'suidperl', 'sum', 'svn', 'svnadmin', 'svndumpfilter', 'svnlook', 'svnmerge', 'svnmucc', 'svnserve', 'svnshell', 'svnsync', 'svnversion', 'svnwrap', 'sync', @@ -291,16 +301,40 @@ $language_data = array ( 'svn add', 'svn ann', 'svn annotate', 'svn blame', 'svn cat', 'svn changelist', 'svn checkout', 'svn ci', 'svn cl', 'svn cleanup', 'svn co', 'svn commit', 'svn copy', 'svn cp', 'svn del', - 'svn delete', 'svn di', 'svn diff', 'svn export', 'svn h', - 'svn help', 'svn import', 'svn info', 'svn list', 'svn lock', - 'svn log', 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', - 'svn move', 'svn mv', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit', + 'svn delete', 'svn di', 'svn diff', 'svn export', 'svn help', + 'svn import', 'svn info', 'svn list', 'svn lock', 'svn log', + 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', 'svn move', + 'svn mv', 'svn patch', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit', 'svn pg', 'svn pget', 'svn pl', 'svn plist', 'svn praise', 'svn propdel', 'svn propedit', 'svn propget', 'svn proplist', - 'svn propset', 'svn ps', 'svn pset', 'svn remove', 'svn ren', + 'svn propset', 'svn ps', 'svn pset', 'svn relocate', 'svn remove', 'svn rename', 'svn resolve', 'svn resolved', 'svn revert', 'svn rm', 'svn st', 'svn stat', 'svn status', 'svn sw', 'svn switch', - 'svn unlock', 'svn up', 'svn update', + 'svn unlock', 'svn up', 'svn update', 'svn upgrade', + + 'svnadmin crashtest', 'svnadmin create', 'svnadmin deltify', + 'svnadmin dump', 'svnadmin help', 'svnadmin hotcopy', + 'svnadmin list-dblogs', 'svnadmin list-unused-dblogs', + 'svnadmin load', 'svnadmin lslocks', 'svnadmin lstxns', + 'svnadmin pack', 'svnadmin recover', 'svnadmin rmlocks', + 'svnadmin rmtxns', 'svnadmin setlog', 'svnadmin setrevprop', + 'svnadmin setuuid', 'svnadmin upgrade', 'svnadmin verify', + + 'svndumpfilter exclude', 'svndumpfilter help', + 'svndumpfilter include', + + 'svnlook author', 'svnlook cat', 'svnlook changed', 'svnlook date', + 'svnlook diff', 'svnlook dirs-changed', 'svnlook filesize', + 'svnlook help', 'svnlook history', 'svnlook info', 'svnlook lock', + 'svnlook log', 'svnlook pg', 'svnlook pget', 'svnlook pl', + 'svnlook plist', 'svnlook propget', 'svnlook proplist', + 'svnlook tree', 'svnlook uuid', 'svnlook youngest', + + 'svnrdump dump', 'svnrdump help', 'svnrdump load', + + 'svnsync copy-revprops', 'svnsync help', 'svnsync info', + 'svnsync init', 'svnsync initialize', 'svnsync sync', + 'svnsync synchronize', 'tac', 'tail', 'tar', 'tee', 'tempfile', 'touch', 'tr', 'tree', 'true', diff --git a/inc/geshi/basic4gl.php b/vendor/easybook/geshi/geshi/basic4gl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/basic4gl.php rename to vendor/easybook/geshi/geshi/basic4gl.php index 35c927406de0339c18d36742444c337883c3ff24..112fb6967ca61a24e83511825a497a6da14ec4e8 --- a/inc/geshi/basic4gl.php +++ b/vendor/easybook/geshi/geshi/basic4gl.php @@ -337,5 +337,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/vendor/easybook/geshi/geshi/batch.php b/vendor/easybook/geshi/geshi/batch.php new file mode 100644 index 0000000000000000000000000000000000000000..7d1ca635ba7d744bdaaa161bde4f3c7b195a118c --- /dev/null +++ b/vendor/easybook/geshi/geshi/batch.php @@ -0,0 +1,138 @@ +<?php +/************************************************************************************* + * batch.php + * ------------ + * Author: FraidZZ ( fraidzz [@] bk.ru ) + * Copyright: (c) 2015 FraidZZ ( http://vk.com/fraidzz , http://www.cyberforum.ru/members/340557.html ) + * Release Version: 1.0.8.11 + * Date Started: 2015/03/28 + * + * Windows batch file 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' => 'Windows Batch file', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 100 => '/(?:^|[&|])\\s*(?:rem|::)[^\\n]*/msi', + 101 => '/[\\/-]\\S*/si', + 102 => '/^\s*:[^:]\\S*/msi', + 103 => '/(?:([%!])[^"\'~ ][^"\' ]*\\1|%%?(?:~[dpnxsatz]*)?[^"\'])/si' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + 100 => '/(?:([%!])\\S+\\1|%%(?:~[dpnxsatz]*)?[^"\'])/si' + ), + 'KEYWORDS' => array( + 1 => array( + 'echo', 'set', 'for', 'if', 'exit', 'else', 'do', 'not', 'defined', 'exist' + ), + 2 => array( + "ASSOC", "ATTRIB", "BREAK", "BCDEDIT", "CACLS", "CD", + "CHCP", "CHDIR", "CHKDSK", "CHKNTFS", "CLS", "CMD", "COLOR", + "COMP", "COMPACT", "CONVERT", "COPY", "DATE", "DEL", "DIR", + "DISKCOMP", "DISKCOPY", "DISKPART", "DOSKEY", "DRIVERQUERY", "ECHO", "ENDLOCAL", + "ERASE", "EXIT", "FC", "FIND", "FINDSTR", "FOR", "FORMAT", + "FSUTIL", "FTYPE", "GPRESULT", "GRAFTABL", "HELP", "ICACLS", + "IF", "LABEL", "MD", "MKDIR", "MKLINK", "MODE", "MORE", + "MOVE", "OPENFILES", "PATH", "PAUSE", "POPD", "PRINT", "PROMPT", + "PUSHD", "RD", "RECOVER", "REN", "RENAME", "REPLACE", "RMDIR", + "ROBOCOPY", "SET", "SETLOCAL", "SC", "SCHTASKS", "SHIFT", "SHUTDOWN", + "SORT", "START", "SUBST", "SYSTEMINFO", "TASKLIST", "TASKKILL", "TIME", + "TITLE", "TREE", "TYPE", "VER", "VERIFY", "VOL", "XCOPY", + "WMIC", "CSCRIPT" + ), + 3 => array( + "enabledelayedexpansion", "enableextensions" + ) + ), + 'SYMBOLS' => array( + '(', ')', '+', '-', '~', '^', '@', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #800080; font-weight: bold;', + 2 => 'color: #0080FF; font-weight: bold;', + 3 => 'color: #0000FF; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #888888;', + 2 => 'color: #FF1010; font-weight: bold;', + 101 => 'color: #44aa44; font-weight: bold;', + 100 => 'color: #888888;', + 102 => 'color: #990000; font-weight: bold;', + 103 => 'color: #000099; font-weight: bold;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 100 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #44aa44; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #990000; font-weight: bold', + 1 => 'color: #800080; font-weight: bold;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array(), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "((?:goto|call)\\s*)(\\S+)", + GESHI_REPLACE => "\\2", + GESHI_BEFORE => "\\1", + GESHI_MODIFIERS => "si", + GESHI_AFTER => "" + ) , + 1 => "goto|call" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); diff --git a/inc/geshi/bf.php b/vendor/easybook/geshi/geshi/bf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bf.php rename to vendor/easybook/geshi/geshi/bf.php diff --git a/inc/geshi/bibtex.php b/vendor/easybook/geshi/geshi/bibtex.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bibtex.php rename to vendor/easybook/geshi/geshi/bibtex.php diff --git a/inc/geshi/blitzbasic.php b/vendor/easybook/geshi/geshi/blitzbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/blitzbasic.php rename to vendor/easybook/geshi/geshi/blitzbasic.php index 1d3c08d05e8d44d362173cd338ef31e533656927..c90f45bfa958ac5fc92fde27cd532098a013cc7b --- a/inc/geshi/blitzbasic.php +++ b/vendor/easybook/geshi/geshi/blitzbasic.php @@ -181,5 +181,3 @@ $language_data = array ( 1 => false ) ); - -?> diff --git a/inc/geshi/bnf.php b/vendor/easybook/geshi/geshi/bnf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/bnf.php rename to vendor/easybook/geshi/geshi/bnf.php diff --git a/inc/geshi/boo.php b/vendor/easybook/geshi/geshi/boo.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/boo.php rename to vendor/easybook/geshi/geshi/boo.php index b68d442f7bed6935a96f279089ee2c107f5b4b97..15944f42a0a3faa153856922d27596400fb92d83 --- a/inc/geshi/boo.php +++ b/vendor/easybook/geshi/geshi/boo.php @@ -213,5 +213,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/c.php b/vendor/easybook/geshi/geshi/c.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c.php rename to vendor/easybook/geshi/geshi/c.php diff --git a/inc/geshi/c_loadrunner.php b/vendor/easybook/geshi/geshi/c_loadrunner.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c_loadrunner.php rename to vendor/easybook/geshi/geshi/c_loadrunner.php diff --git a/inc/geshi/c_mac.php b/vendor/easybook/geshi/geshi/c_mac.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/c_mac.php rename to vendor/easybook/geshi/geshi/c_mac.php diff --git a/vendor/easybook/geshi/geshi/c_winapi.php b/vendor/easybook/geshi/geshi/c_winapi.php new file mode 100644 index 0000000000000000000000000000000000000000..1252e7b92bbaff2272325967133ff8f9ed9f613a --- /dev/null +++ b/vendor/easybook/geshi/geshi/c_winapi.php @@ -0,0 +1,870 @@ +<?php +/************************************************************************************* + * c_winapi.php + * ----- + * Author: Benny Baumann (BenBE@geshi.org) + * Contributors: + * - Jack Lloyd (lloyd@randombit.net) + * - Michael Mol (mikemol@gmail.com) + * Copyright: (c) 2012 Benny Baumann (http://qbnz.com/highlighter/) + * Release Version: 1.0.8.11 + * Date Started: 2012/08/12 + * + * C (WinAPI) language file for GeSHi. + * + * CHANGES + * ------- + * 2009/01/22 (1.0.8.3) + * - Made keywords case-sensitive. + * 2008/05/23 (1.0.7.22) + * - Added description of extra language features (SF#1970248) + * 2004/XX/XX (1.0.4) + * - Added a couple of new keywords (Jack Lloyd) + * 2004/11/27 (1.0.3) + * - Added support for multiple object splitters + * 2004/10/27 (1.0.2) + * - Added support for URLs + * 2004/08/05 (1.0.1) + * - Added support for symbols + * 2004/07/14 (1.0.0) + * - First Release + * + * TODO (updated 2009/02/08) + * ------------------------- + * - Get a list of inbuilt functions to add (and explore C more + * to complete this rather bare language file + * + ************************************************************************************* + * + * 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' => 'C (WinAPI)', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + ), + '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( + 'if', 'return', 'while', 'case', 'continue', 'default', + 'do', 'else', 'for', 'switch', 'goto' + ), + 2 => array( + 'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline' + ), + 3 => array( + // assert.h + 'assert', + + //complex.h + 'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan', + 'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj', + 'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh', + + //ctype.h + 'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl', + 'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace', + 'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper', + + //inttypes.h + 'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax', + 'wcstoumax', + + //locale.h + 'localeconv', 'setlocale', + + //math.h + 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp', + 'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow', + 'sin', 'sinh', 'sqrt', 'tan', 'tanh', + + //setjmp.h + 'longjmp', 'setjmp', + + //signal.h + 'raise', + + //stdarg.h + 'va_arg', 'va_copy', 'va_end', 'va_start', + + //stddef.h + 'offsetof', + + //stdio.h + 'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc', + 'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar', + 'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell', + 'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf', + 'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf', + 'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile', + 'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf', + 'vsprintf', 'vsscanf', + + //stdlib.h + 'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch', + 'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv', + 'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod', + 'strtol', 'strtoul', 'system', + + //string.h + 'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat', + 'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror', + 'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr', + 'strspn', 'strstr', 'strtok', 'strxfrm', + + //time.h + 'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime', + 'mktime', 'strftime', 'time', + + //wchar.h + 'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide', + 'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc', + 'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf', + 'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb', + 'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn', + 'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk', + 'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok', + 'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp', + 'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf', + + //wctype.h + 'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit', + 'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace', + 'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper', + 'wctrans', 'wctype' + ), + 4 => array( + 'auto', 'char', 'const', 'double', 'float', 'int', 'long', + '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', + 'size_t', 'off_t' + ), + // Public API + 5 => array( + 'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber', + 'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA', + 'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW', + 'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess', + 'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW', + 'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess', + 'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId', + 'GetEnvironmentStringsA', 'GetEnvironmentStringsW', + 'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess', + 'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass', + 'GetProcessAffinityMask', 'GetProcessPriorityBoost', + 'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion', + 'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW', + 'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes', + 'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess', + 'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA', + 'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass', + 'SetProcessAffinityMask', 'SetProcessPriorityBoost', + 'SetProcessShutdownParameters', 'SetProcessWorkingSetSize', + 'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority', + 'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread', + 'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess', + 'TerminateThread', 'WaitForInputIdle', 'WinExec', + + '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread', + '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW', + 'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW', + 'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA', + 'DeleteFileW', 'FindClose', 'FindCloseChangeNotification', + 'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW', + 'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW', + 'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW', + 'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW', + 'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA', + 'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW', + 'GetFileInformationByHandle', 'GetFileSize', 'GetFileType', + 'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives', + 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA', + 'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW', + 'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW', + 'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile', + 'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx', + 'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW', + 'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile', + 'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA', + 'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount', + 'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile', + 'WriteFileEx', + + 'DeviceIoControl', + + 'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress', + 'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW', + 'LoadModule', + + 'GetPrivateProfileIntA', 'GetPrivateProfileIntW', + 'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA', + 'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW', + 'GetPrivateProfileStringA', 'GetPrivateProfileStringW', + 'GetPrivateProfileStructA', 'GetPrivateProfileStructW', + 'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA', + 'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW', + 'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW', + 'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW', + 'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA', + 'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW', + 'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey', + 'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW', + 'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW', + 'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA', + 'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW', + 'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW', + 'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW', + 'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA', + 'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA', + 'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW', + 'WritePrivateProfileStringA', 'WritePrivateProfileStringW', + 'WritePrivateProfileStructA', 'WritePrivateProfileStructW', + 'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA', + 'WriteProfileStringW', + + 'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW', + 'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA', + 'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList', + 'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW', + 'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce', + 'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce', + 'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce', + 'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid', + 'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted', + 'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW', + 'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW', + 'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA', + 'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW', + 'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW', + 'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity', + 'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce', + 'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx', + 'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce', + 'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW', + 'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW', + 'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA', + 'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA', + 'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW', + 'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity', + 'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl', + 'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength', + 'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo', + 'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority', + 'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA', + 'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA', + 'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser', + 'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl', + 'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl', + 'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW', + 'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW', + 'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA', + 'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', + 'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD', + 'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA', + 'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW', + 'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA', + 'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck', + 'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf', + 'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA', + 'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA', + 'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx', + 'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl', + 'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner', + 'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken', + 'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A', + 'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW', + 'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW', + 'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW', + 'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA', + 'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW', + 'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW', + 'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W', + 'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA', + 'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus', + 'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW', + 'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA', + 'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW', + 'UnlockServiceDatabase', + + 'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW', + 'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree', + 'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose', + 'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex', + 'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum', + 'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers', + 'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers', + 'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers', + 'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers', + 'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend', + 'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum', + 'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports', + 'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum', + 'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo', + 'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd', + 'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo', + 'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo', + 'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum', + 'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel', + 'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo', + 'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx', + 'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum', + 'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum', + 'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel', + 'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel', + 'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups', + 'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo', + 'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel', + 'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo', + 'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W', + 'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA', + 'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W', + 'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum', + 'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W', + 'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W', + 'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW', + 'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA', + 'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW', + 'WNetGetResourceInformationA', 'WNetGetResourceInformationW', + 'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA', + 'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA', + 'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW', + + 'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname', + 'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname', + 'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr', + 'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select', + 'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept', + 'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr', + 'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber', + 'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect', + 'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent', + 'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW', + 'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents', + 'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError', + 'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA', + 'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA', + 'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA', + 'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf', + 'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd', + 'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs', + 'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom', + 'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo', + 'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA', + 'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA', + 'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents', + 'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols', + 'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider', + 'WSCUnInstallNameSpace', + + 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit', + 'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry', + 'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory', + 'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory', + + 'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation', + + 'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow', + 'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos', + 'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint', + 'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW', + 'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows', + 'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW', + 'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect', + 'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup', + 'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow', + 'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', + 'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA', + 'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild', + 'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed', + 'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint', + 'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow', + 'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout', + 'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW', + 'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows', + 'UpdateLayeredWindow', 'WindowFromPoint', + + 'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA', + 'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA', + 'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog', + 'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt', + 'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem', + 'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA', + 'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW', + 'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt', + 'SetDlgItemTextA', 'SetDlgItemTextW', + + 'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr', + 'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr', + 'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages', + 'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags', + 'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize', + 'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock', + 'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps', + 'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock', + 'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc', + 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect', + 'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock', + 'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire', + 'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink', + + 'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW', + 'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW', + 'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW', + 'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW', + 'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW', + 'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord', + 'SetClassWord', 'SetWindowWord' + ), + // Native API + 6 => array( + 'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer', + 'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout', + 'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer', + 'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite', + 'CsrSetPriorityClass', + + 'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources', + 'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U', + 'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll', + 'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions', + 'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread', + 'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum', + + 'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort', + 'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort', + 'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort', + 'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort', + 'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort', + 'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort', + 'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort', + 'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort', + 'NtWriteRequestData', 'ZwWriteRequestData', + + 'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm', + 'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType', + 'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm', + 'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList', + 'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken', + 'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm', + 'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm', + 'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken', + 'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread', + 'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken', + 'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck', + 'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm', + 'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm', + 'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject', + 'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken', + 'NtSetSecurityObject', 'ZwSetSecurityObject', + + 'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom', + 'NtQueryInformationAtom', 'ZwQueryInformationAtom', + + 'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread', + 'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread', + 'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread', + 'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread', + 'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess', + 'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread', + 'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread', + 'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread', + 'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread', + 'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread', + 'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess', + 'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert', + 'NtYieldExecution', 'ZwYieldExecution', + + 'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64', + 'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame', + 'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection', + 'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory', + 'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64', + 'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection', + 'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection', + 'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory', + 'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory', + 'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64', + 'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64', + 'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory', + 'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection', + 'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory', + 'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64', + + 'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject', + 'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject', + 'NtQueryInformationJobObject', 'ZwQueryInformationJobObject', + 'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject', + 'ZwTerminateJobObject', + + 'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile', + 'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile', + 'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile', + 'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile', + 'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile', + 'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile', + 'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile', + 'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion', + 'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile', + 'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile', + 'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter', + 'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile', + 'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion', + 'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile', + 'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile', + 'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64', + 'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile', + 'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile', + + 'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock', + 'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce', + 'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable', + 'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce', + 'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle', + 'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize', + 'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString', + 'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact', + 'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted', + 'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace', + 'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits', + 'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong', + 'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants', + 'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared', + 'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant', + 'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString', + 'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger', + 'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray', + 'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray', + 'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD', + 'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap', + 'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer', + 'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap', + 'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess', + 'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN', + 'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment', + 'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection', + 'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue', + 'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams', + 'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable', + 'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer', + 'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U', + 'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource', + 'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide', + 'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable', + 'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties', + 'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid', + 'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString', + 'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply', + 'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap', + 'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet', + 'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits', + 'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet', + 'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString', + 'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid', + 'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce', + 'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize', + 'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U', + 'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U', + 'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags', + 'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps', + 'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName', + 'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader', + 'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString', + 'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap', + 'RtlInitializeContext', 'RtlInitializeCriticalSection', + 'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable', + 'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact', + 'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString', + 'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString', + 'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3', + 'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd', + 'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate', + 'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract', + 'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid', + 'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime', + 'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable', + 'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory', + 'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject', + 'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams', + 'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits', + 'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString', + 'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser', + 'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey', + 'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey', + 'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString', + 'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap', + 'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable', + 'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl', + 'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation', + 'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation', + 'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet', + 'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap', + 'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom', + 'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock', + 'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations', + 'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime', + 'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits', + 'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount', + 'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor', + 'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl', + 'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames', + 'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject', + 'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap', + 'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact', + 'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor', + 'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime', + 'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980', + 'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize', + 'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString', + 'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize', + 'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN', + 'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap', + 'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString', + 'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString', + 'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN', + 'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar', + 'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap', + 'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap', + 'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize', + 'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap', + 'RtlZeroMemory', + + 'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount', + 'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter', + 'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer', + 'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime', + 'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution', + 'ZwSetTimerResolution', + + 'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair', + 'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore', + 'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair', + 'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore', + 'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent', + 'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore', + 'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant', + 'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore', + 'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent', + 'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair', + 'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair', + 'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair', + 'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject', + 'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject', + 'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair', + 'NtWaitLowEventPair', 'ZwWaitLowEventPair', + + 'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject', + 'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject', + 'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject', + 'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject', + 'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject', + 'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject', + 'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject', + 'ZwSetInformationObject', + + 'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException', + 'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort', + 'ZwSetDefaultHardErrorPort', + + 'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel', + 'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel', + 'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel', + 'ZwSetContextChannel', + + 'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey', + 'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey', + 'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry', + 'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2', + 'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey', + 'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey', + 'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey', + 'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey', + 'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey', + 'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey', + + 'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile', + 'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile', + + 'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile', + 'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort', + 'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile', + 'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile', + 'NtSystemDebugControl', 'ZwSystemDebugControl', + + 'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache', + 'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer', + 'NtSetLdtEntries', 'ZwSetLdtEntries', + + 'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl', + + 'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation', + 'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency', + 'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState', + 'ZwSetThreadExecutionState', + + 'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice', + 'NtUnloadDriver', 'ZwUnloadDriver', + + 'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage', + 'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue', + 'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale', + 'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue', + 'ZwSetSystemEnvironmentValue', + + 'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize', + 'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint', + 'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher', + 'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag', + 'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId', + 'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn', + 'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile', + 'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection', + 'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation', + 'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl', + 'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize', + 'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context', + 'SaveEm87Context' + ) + ), + 'SYMBOLS' => 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: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;', + 5 => 'color: #4000dd;', + 6 => 'color: #4000dd;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #339933;', + '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: #ff0000;' + ), + '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( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html', + 4 => '', + 5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com', + 6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/caddcl.php b/vendor/easybook/geshi/geshi/caddcl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/caddcl.php rename to vendor/easybook/geshi/geshi/caddcl.php index 8b8b2f248e930e6f60ddfd5d76e6eedd261882cd..0135a7aec99a5c2c5706e3a84569ad155dbbd422 --- a/inc/geshi/caddcl.php +++ b/vendor/easybook/geshi/geshi/caddcl.php @@ -122,5 +122,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cadlisp.php b/vendor/easybook/geshi/geshi/cadlisp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cadlisp.php rename to vendor/easybook/geshi/geshi/cadlisp.php index 3fa7ead0977d84a446f802715ed8fb3c2936d743..41d72ca278c5b8337afb54f005f803bb6772c026 --- a/inc/geshi/cadlisp.php +++ b/vendor/easybook/geshi/geshi/cadlisp.php @@ -182,5 +182,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cfdg.php b/vendor/easybook/geshi/geshi/cfdg.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cfdg.php rename to vendor/easybook/geshi/geshi/cfdg.php index e40963f060ab065e1cda89d6c5d7d45f3abe4ae0..eeb7c2f3d4ed5ae1dde11878a70f0bf7483fbf0f --- a/inc/geshi/cfdg.php +++ b/vendor/easybook/geshi/geshi/cfdg.php @@ -120,5 +120,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/cfm.php b/vendor/easybook/geshi/geshi/cfm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cfm.php rename to vendor/easybook/geshi/geshi/cfm.php diff --git a/inc/geshi/chaiscript.php b/vendor/easybook/geshi/geshi/chaiscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/chaiscript.php rename to vendor/easybook/geshi/geshi/chaiscript.php diff --git a/vendor/easybook/geshi/geshi/chapel.php b/vendor/easybook/geshi/geshi/chapel.php new file mode 100644 index 0000000000000000000000000000000000000000..d0e50e6149ee8de4fce484e687081f757875dd85 --- /dev/null +++ b/vendor/easybook/geshi/geshi/chapel.php @@ -0,0 +1,169 @@ +<?php +/************************************************************************************* + * chapel.php + * ----- + * Author: Richard Molitor (richard.molitor@student.kit.edu) + * Copyright: (c) 2013 Richard Molitor + * Release Version: 1.0.8.12 + * Date Started: 2013/06/22 + * + * Chapel language file for GeSHi. + * + * CHANGES + * ------- + * 2013/06/22 (1.0.8.12) + * - First Release + * + * TODO (updated 2013/06/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' => 'Chapel', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + ), + '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_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // statements + 1 => array( + 'atomic', 'begin', 'break', 'class', 'cobegin', 'coforall', + 'continue', 'do', 'else', 'export', 'extern', 'for', 'forall', 'if', + 'iter', 'inline', 'label', 'let', 'local', 'module', + 'otherwise', 'proc', 'record', 'return', 'select', 'serial', + 'then', 'use', 'var', 'when', 'where', 'while', 'yield' + ), + // literals + 2 => array( + 'nil', 'true', 'false' + ), + // built-in functions + 3 => array( + 'by', 'delete', 'dmapped', 'domain', 'enum', 'index', 'min', + 'minloc', 'max', 'maxloc', 'new', 'range', 'reduce', 'scan', + 'sparse', 'subdomain', 'sync', 'union', 'zip' + ), + // built-in types + 4 => array( + 'config', 'const', 'in', 'inout', 'opaque', 'on', 'out', 'param', + 'ref', 'single', 'type' + ), + // library types + 5 => array( + 'void', 'bool', 'int', 'uint', 'real', 'imag', 'complex', 'string', + 'locale' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '=', '<', '>', + '!', '^', '&', '|', + '?', ':', + ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + //2 => 'color: #339933;', + '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: #ff0000;' + ), + '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( + ), + '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 +); diff --git a/inc/geshi/cil.php b/vendor/easybook/geshi/geshi/cil.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/cil.php rename to vendor/easybook/geshi/geshi/cil.php index 9872e755fc4dbc15ae9dd5bddbb11e8d8531c443..a108f2498c6293728fd90b3b5b8b86f718e33bfc --- a/inc/geshi/cil.php +++ b/vendor/easybook/geshi/geshi/cil.php @@ -192,5 +192,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/clojure.php b/vendor/easybook/geshi/geshi/clojure.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/clojure.php rename to vendor/easybook/geshi/geshi/clojure.php diff --git a/inc/geshi/cmake.php b/vendor/easybook/geshi/geshi/cmake.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cmake.php rename to vendor/easybook/geshi/geshi/cmake.php diff --git a/vendor/easybook/geshi/geshi/cobol.php b/vendor/easybook/geshi/geshi/cobol.php new file mode 100755 index 0000000000000000000000000000000000000000..1280a4c7e9962c50c7d82deece311614c042272d --- /dev/null +++ b/vendor/easybook/geshi/geshi/cobol.php @@ -0,0 +1,457 @@ +<?php +/************************************************************************************* + * cobol.php + * ---------- + * Author: BenBE (BenBE@omorphia.org) + * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) + * Release Version: 1.0.8.12 + * Date Started: 2007/07/02 + * + * COBOL language file for GeSHi. + * + * Most of the compiler directives, reserved words and intrinsic functions are + * from the 2009 COBOL Draft Standard, Micro Focus, and GNU Cobol. The lists of + * these were found in the draft standard (Sections 8.9, 8.10, 8.11 and 8.12), + * Micro Focus' COBOL Language Reference and the GNU Cobol FAQ. + * + * CHANGES + * ------- + * 2013/11/17 (1.0.8.12) + * - Changed compiler directives to be handled like comments. + * - Fixed bug where keywords in identifiers were highlighted. + * 2013/08/19 (1.0.8.12) + * - Added more intrinsic functions, reserved words, and compiler directives + * from the (upcoming) standard. + * 2013/07/07 (1.0.8.12) + * - Added more reserved words, compiler directives and intrinsic functions. + * - Added modern comment syntax and corrected the other one. + * - Set OOLANG to true and added an object splitter. + * - Added extra symbols. + * - Fixed bug where scope terminators were only the statement in + * end-statement was highlighted. + * + * TODO (updated 2013/11/17) + * ------------------------- + * + ************************************************************************************* + * + * 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' => 'COBOL', + 'COMMENT_SINGLE' => array( + 1 => '*>', // COBOL 2002 inline comment + 2 => '>>' // COBOL compiler directive indicator + ), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => '/^......(\*.*?$)/m', // Fixed-form comment + 2 => '/\$SET.*/i' // MF compiler directive indicator + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '', + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_SCI_SHORT | + GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // Statements containing spaces. These are separate to other statements + // so that they are highlighted correctly. + 1 => array( + 'DELETE FILE', 'GO TO', 'NEXT SENTENCE', 'XML GENERATE', + 'XML PARSE' + ), + + 2 => array( // Other Reserved Words + '3-D', 'ABSENT', 'ABSTRACT', 'ACCESS', 'ACQUIRE', + 'ACTION', 'ACTIVE-CLASS', 'ACTIVE-X', 'ACTUAL', 'ADDRESS', + 'ADDRESS-ARRAY', 'ADDRESS-OFFSET', 'ADJUSTABLE-COLUMNS', + 'ADVANCING', 'AFP-5A', 'AFTER', 'ALIGNED', 'ALIGNMENT', 'ALL', + 'ALLOW', 'ALLOWING', 'ALPHABET', 'ALPHABETIC', + 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER', 'ALPHANUMERIC', + 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE', 'AND', 'ANY', + 'ANYCASE', + 'APPLY', 'ARE', 'AREA', 'AREAS', 'ARGUMENT-NUMBER', + 'ARGUMENT-VALUE', + 'ARITHMETIC', 'AS', 'ASCENDING', + 'ASSEMBLY-ATTRIBUTES', 'ASSIGN', 'AT', 'ATTRIBUTE', 'AUTHOR', + 'AUTO', 'AUTO-DECIMAL', 'AUTO-HYPHEN-SKIP', 'AUTO-MINIMIZE', + 'AUTO-RESIZE', 'AUTO-SKIP', 'AUTO-SPIN', 'AUTOMATIC', + 'AUTOTERMINATE', 'AWAY-FROM-ZERO', + 'AX-EVENT-LIST', 'B-AND', 'B-EXOR', 'B-LEFT', + 'B-NOT', 'B-OR', 'B-RIGHT', 'B-XOR', 'BACKGROUND-COLOR', + 'BACKGROUND-COLOUR', 'BACKGROUND-HIGH', 'BACKGROUND-LOW', + 'BACKGROUND-STANDARD', 'BACKWARD', 'BAR', 'BASED', 'BASIS', 'BEEP', + 'BEFORE', 'BEGINNING', 'BELL', 'BINARY', 'BINARY-CHAR', + 'BINARY-DOUBLE', 'BINARY-LONG', 'BINARY-SHORT', 'BIND', 'BIT', + 'BITMAP', 'BITMAP-END', 'BITMAP-HANDLE', 'BITMAP-NUMBER', + 'BITMAP-RAW-HEIGHT', 'BITMAP-RAW-WIDTH', 'BITMAP-SCALE', + 'BITMAP-START', 'BITMAP-TIMER', 'BITMAP-TRAILING', 'BITMAP-WIDTH', + 'BLANK', 'BLINK', 'BLINKING', 'BLOB', 'BLOB-FILE', 'BLOB-LOCATOR', + 'BLOCK', 'BOLD', 'BOOLEAN', 'BOTTOM', 'BOX', 'BOXED', 'BROWSING', + 'BUSY', 'BUTTONS', 'BY', 'C01', 'C02', 'C03', 'C04', + 'C05', + 'C06', 'C07', 'C08', 'C09', 'C10', 'C11', 'C12', 'CALENDAR-FONT', + 'CALLED', 'CANCEL-BUTTON', 'CAPACITY', 'CATCH', 'CBL', + 'CBL-CTR', 'CCOL', 'CD', 'CELL', 'CELL-COLOR', 'CELL-DATA', + 'CELL-FONT', 'CELL-PROTECTION', 'CELLS', 'CENTER', 'CENTERED', + 'CENTERED-HEADINGS', 'CENTURY-DATE', 'CENTURY-DAY', 'CF', 'CH', + 'CHAINING', 'CHANGED', 'CHAR-VARYING', + 'CHARACTER', + 'CHARACTERS', 'CHART', 'CHECK-BOX', 'CHECKING', 'CLASS', + 'CLASS-ATTRIBUTES', 'CLASS-CONTROL', 'CLASS-ID', 'CLASS-OBJECT', + 'CLASSIFICATION', + 'CLEAR-SELECTION', 'CLINE', 'CLINES', 'CLOB', 'CLOB-FILE', + 'CLOB-LOCATOR', 'CLOCK-UNITS', 'COBOL', 'CODE', 'CODE-SET', + 'COERCION', 'COL', 'COLLATING', 'COLORS', 'COLOUR', + 'COLOURS', 'COLS', 'COLUMN', 'COLUMN-COLOR', 'COLUMN-DIVIDERS', + 'COLUMN-FONT', 'COLUMN-HEADINGS', 'COLUMN-PROTECTION', 'COLUMNS', + 'COM-REG', 'COMBO-BOX', 'COMMA', 'COMMITMENT', 'COMMON', + 'COMMUNICATION', 'COMP', 'COMP-0', 'COMP-1', 'COMP-2', 'COMP-3', + 'COMP-4', 'COMP-5', 'COMP-6', 'COMP-X', 'COMPRESSION', + 'COMPUTATIONAL', 'COMPUTATIONAL-0', 'COMPUTATIONAL-1', + 'COMPUTATIONAL-2', 'COMPUTATIONAL-3', 'COMPUTATIONAL-4', + 'COMPUTATIONAL-5', 'COMPUTATIONAL-6', 'COMPUTATIONAL-X', + 'CONDITION-VALUE', 'CONFIGURATION', 'CONSOLE', 'CONSTANT', + 'CONSTRAIN', 'CONSTRAINTS', 'CONTAINS', 'CONTENT', + 'CONTROL', 'CONTROL-AREA', 'CONTROLS', 'CONTROLS-UNCROPPED', + 'CONVERSION', 'CONVERT', 'CONVERTING', 'COPY-SELECTION', + 'CORE-INDEX', 'CORR', 'CORRESPONDING', 'COUNT', + 'CREATING', 'CRT', 'CRT-UNDER', 'CSIZE', 'CSP', 'CURRENCY', + 'CURSOR', 'CURSOR-COL', 'CURSOR-COLOR', + 'CURSOR-FRAME-WIDTH', 'CURSOR-ROW', 'CURSOR-X', 'CURSOR-Y', + 'CUSTOM-ATTRIBUTE', 'CUSTOM-PRINT-TEMPLATE', 'CYCLE', 'CYL-INDEX', + 'CYL-OVERFLOW', 'DASHED', 'DATA', 'DATA-COLUMNS', + 'DATA-POINTER', 'DATA-TYPES', 'DATABASE-KEY', 'DATABASE-KEY-LONG', + 'DATE', 'DATE-COMPILED', 'DATE-ENTRY', 'DATE-RECORD', + 'DATE-WRITTEN', 'DAY', 'DAY-OF-WEEK', 'DBCLOB', 'DBCLOB-FILE', + 'DBCLOB-LOCATOR', 'DBCS', 'DE', 'DEBUG', 'DEBUG-CONTENTS', + 'DEBUG-ITEM', 'DEBUG-LINE', 'DEBUG-NAME', 'DEBUG-SUB-1', + 'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL', + 'DECIMAL-POINT', 'DECLARATIVES', 'DEFAULT', + 'DEFAULT-BUTTON', 'DEFAULT-FONT', 'DEFINITION', + 'DELEGATE-ID', 'DELIMITED', 'DELIMITER', 'DEPENDING', + 'DESCENDING', 'DESTINATION', 'DESTROY', 'DETAIL', 'DICTIONARY', + 'DISABLE', 'DISC', 'DISJOINING', 'DISK', 'DISP', + 'DISPLAY-1', 'DISPLAY-COLUMNS', 'DISPLAY-FORMAT', 'DISPLAY-ST', + 'DIVIDER-COLOR', 'DIVIDERS', 'DIVISION', 'DOT-DASH', + 'DOTTED', 'DOWN', 'DRAG-COLOR', 'DRAW', 'DROP', 'DROP-DOWN', + 'DROP-LIST', 'DUPLICATES', 'DYNAMIC', 'EBCDIC', 'EC', 'ECHO', 'EGCS', + 'EGI', 'EJECT', 'ELEMENTARY', 'ELSE', 'EMI', 'EMPTY-CHECK', + 'ENABLE', 'ENABLED', 'END', 'END-ACCEPT', 'END-ADD', 'END-CALL', + 'END-CHAIN', 'END-COLOR', 'END-COMPUTE', 'END-DELEGATE', + 'END-DELETE', 'END-DISPLAY', 'END-DIVIDE', 'END-EVALUATE', + 'END-IF', 'END-INVOKE', 'END-MODIFY', 'END-MOVE', 'END-MULTIPLY', + 'END-OF-PAGE', 'END-PERFORM', 'END-READ', 'END-RECEIVE', + 'END-RETURN', 'END-REWRITE', 'END-SEARCH', 'END-START', + 'END-STRING', 'END-SUBTRACT', 'END-SYNC', 'END-TRY', + 'END-UNSTRING', 'END-WAIT', 'END-WRITE', 'END-XML', 'ENDING', + 'ENGRAVED', 'ENSURE-VISIBLE', 'ENTRY-CONVENTION', + 'ENTRY-FIELD', + 'ENTRY-REASON', 'ENUM', 'ENUM-ID', 'ENVIRONMENT', + 'ENVIRONMENT-NAME', 'ENVIRONMENT-VALUE', 'EOL', 'EOP', + 'EOS', 'EQUAL', 'EQUALS', 'ERASE', 'ERROR', 'ESCAPE', + 'ESCAPE-BUTTON', 'ESI', 'EVENT', 'EVENT-LIST', + 'EVENT-POINTER', 'EVERY', 'EXCEEDS', 'EXCEPTION', + 'EXCEPTION-OBJECT', 'EXCEPTION-VALUE', 'EXCESS-3', + 'EXCLUDE-EVENT-LIST', 'EXCLUSIVE', + 'EXPAND', 'EXPANDS', 'EXTEND', 'EXTENDED', + 'EXTENDED-SEARCH', 'EXTENSION', 'EXTERNAL', 'EXTERNAL-FORM', + 'EXTERNALLY-DESCRIBED-KEY', 'FACTORY', 'FALSE', 'FD', + 'FH--FCD', 'FH--KEYDEF', 'FILE', 'FILE-CONTROL', 'FILE-ID', + 'FILE-LIMIT', 'FILE-LIMITS', 'FILE-NAME', 'FILE-POS', 'FILL-COLOR', + 'FILL-COLOR2', 'FILL-PERCENT', 'FILLER', 'FINAL', 'FINALLY', + 'FINISH-REASON', 'FIRST', 'FIXED', 'FIXED-FONT', 'FIXED-WIDTH', + 'FLAT', 'FLAT-BUTTONS', 'FLOAT-BINARY-7', 'FLOAT-BINARY-16', + 'FLOAT-BINARY-34', 'FLOAT-DECIMAL-16', 'FLOAT-DECIMAL-34', + 'FLOAT-EXTENDED', 'FLOAT-LONG', + 'FLOAT-SHORT', 'FLOATING', 'FONT', 'FOOTING', 'FOR', + 'FOREGROUND-COLOR', 'FOREGROUND-COLOUR', 'FOREVER', 'FORMAT', + 'FRAME', 'FRAMED', 'FROM', 'FULL', 'FULL-HEIGHT', + 'FUNCTION', 'FUNCTION-ID', 'FUNCTION-POINTER', 'GENERATE', + 'GET', 'GETTER', 'GIVING', 'GLOBAL', 'GO-BACK', 'GO-FORWARD', + 'GO-HOME', 'GO-SEARCH', 'GRAPHICAL', 'GREATER', 'GRID', + 'GRIP', 'GROUP', 'GROUP-USAGE', 'GROUP-VALUE', 'HANDLE', + 'HAS-CHILDREN', 'HEADING', 'HEADING-COLOR', 'HEADING-DIVIDER-COLOR', + 'HEADING-FONT', 'HEAVY', 'HEIGHT', 'HEIGHT-IN-CELLS', 'HELP-ID', + 'HIDDEN-DATA', 'HIGH', 'HIGH-COLOR', 'HIGH-VALUE', 'HIGH-VALUES', + 'HIGHLIGHT', 'HORIZONTAL', 'HOT-TRACK', 'HSCROLL', 'HSCROLL-POS', + 'I-O', 'I-O-CONTROL', 'ICON', 'ID', 'IDENTIFICATION', + 'IDENTIFIED', 'IFINITY', 'IGNORE', 'IGNORING', 'IMPLEMENTS', 'IN', + 'INDEPENDENT', 'INDEX', 'INDEXED', 'INDEXER', 'INDEXER-ID', 'INDIC', + 'INDICATE', 'INDICATOR', 'INDICATORS', 'INDIRECT', + 'INHERITING', 'INHERITS', + 'INITIAL', 'INITIALIZED', 'INPUT', + 'INPUT-OUTPUT', 'INQUIRE', 'INSERT', 'INSERT-ROWS', + 'INSERTION-INDEX', 'INSTALLATION', 'INSTANCE', + 'INTERFACE', 'INTERFACE-ID', 'INTERMEDIATE', + 'INTERNAL', 'INTO', 'INTRINSIC', + 'INVALID', 'INVOKED', 'IS', 'ITEM', 'ITEM-BOLD', + 'ITEM-ID', 'ITEM-TEXT', 'ITEM-TO-ADD', 'ITEM-TO-DELETE', + 'ITEM-TO-EMPTY', 'ITEM-VALUE', 'ITERATOR', 'ITERATOR-ID', 'J', + 'JOINED', 'JOINING', 'JUST', 'JUSTIFIED', 'KANJI', + 'KEPT', 'KEY', 'KEY-YY', 'KEYBOARD', 'LABEL', 'LABEL-OFFSET', + 'LARGE-FONT', 'LAST', 'LAST-ROW', 'LAYOUT-DATA', 'LAYOUT-MANAGER', + 'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_CURRENCY', 'LC_MESSAGES', + 'LC_MONETARY', 'LC_NUMERIC', 'LC_TIME', 'LEADING', 'LEADING-SHIFT', + 'LEAVE', 'LEFT', 'LEFT-JUSTIFY', 'LEFT-TEXT', 'LEFTLINE', + 'LENGTH-CHECK', 'LESS', 'LIMIT', 'LIMITS', 'LIN', 'LINAGE', + 'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINES', 'LINES-AT-ROOT', + 'LINK', 'LINKAGE', 'LIST', 'LIST-BOX', 'LM-RESIZE', 'LOCAL-STORAGE', + 'LOCALE', 'LOCK', 'LOCKING', 'LONG-DATE', 'LONG-VARBINARY', + 'LONG-VARCHAR', 'LOW', 'LOW-COLOR', 'LOW-VALUE', 'LOW-VALUES', + 'LOWER', 'LOWERED', 'LOWLIGHT', 'MANUAL', 'MASS-UPDATE', + 'MASTER-INDEX', 'MAX-HEIGHT', 'MAX-LINES', 'MAX-PROGRESS', + 'MAX-SIZE', 'MAX-TEXT', 'MAX-VAL', 'MAX-WIDTH', 'MDI-CHILD', + 'MDI-FRAME', 'MEDIUM-FONT', 'MEMORY', 'MENU', 'MESSAGE', + 'MESSAGES', 'METACLASS', 'METHOD', 'METHOD-ID', 'MIN-HEIGHT', + 'MIN-LINES', 'MIN-SIZE', 'MIN-VAL', 'MIN-WIDTH', 'MODAL', 'MODE', + 'MODELESS', 'MODIFIED', 'MODULES', 'MONITOR-POINTER', + 'MORE-LABELS', 'MULTILINE', + 'MUTEX-POINTER', 'NAME', 'NAMED', 'NATIONAL', + 'NATIONAL-EDITED', 'NATIVE', 'NAVIGATE-URL', 'NCHAR', + 'NEAREST-AWAY-FROM-ZERO', 'NEAREST-EVEN', 'NEAREST-TOWARD-ZERO', + 'NEGATIVE', 'NEGATIVE-INFINITY', + 'NESTED', 'NET-EVENT-LIST', 'NEW', 'NEWABLE', 'NEXT ', 'NEXT-ITEM', + 'NO', 'NO-AUTO-DEFAULT', 'NO-AUTOSEL', 'NO-BOX', 'NO-CELL-DRAG', + 'NO-CLOSE', 'NO-DIVIDERS', 'NO-ECHO', 'NO-F4', 'NO-FOCUS', + 'NO-GROUP-TAB', 'NO-KEY-LETTER', 'NO-SEARCH', 'NO-TAB', 'NO-UPDOWN', + 'NOMINAL', 'NONE', 'NORMAL', 'NOT', 'NOT-A-NUMBER', 'NOTIFY', + 'NOTIFY-CHANGE', 'NOTIFY-DBLCLICK', 'NOTIFY-SELCHANGE', + 'NSTD-REELS', 'NULL', 'NULLS', 'NUM-COL-HEADINGS', + 'NUM-ROW-HEADINGS', 'NUM-ROWS', 'NUMBER', 'NUMBERS', 'NUMERIC', + 'NUMERIC-EDITED', 'NUMERIC-FILL', 'O-FILL', 'OBJECT', + 'OBJECT-COMPUTER', 'OBJECT-ID', 'OBJECT-REFERENCE', + 'OBJECT-STORAGE', 'OCCURS', 'OF', 'OFF', 'OK-BUTTON', 'OMITTED', + 'ONLY', 'OOSTACKPTR', 'OPERATOR', 'OPERATOR-ID', + 'OPTIONAL', 'OPTIONS', 'OR', 'ORDER', 'ORGANIZATION', 'OTHER', + 'OTHERWISE', 'OUTPUT', 'OVERFLOW', 'OVERLAP-LEFT', 'OVERLAP-TOP', + 'OVERLAPPED', 'OVERLINE', 'OVERRIDE', 'PACKED-DECIMAL', + 'PADDING', 'PAGE', 'PAGE-COUNTER', 'PAGE-SETUP', 'PAGE-SIZE', + 'PAGED', 'PANEL-INDEX', 'PANEL-STYLE', 'PANEL-TEXT', 'PANEL-WIDTHS', + 'PARAGRAPH', 'PARAMS', 'PARENT', 'PARSE', 'PARTIAL', 'PASSWORD', + 'PERMANENT', 'PF', 'PH', 'PIC', 'PICTURE', 'PIXEL', + 'PIXELS', 'PLACEMENT', 'PLUS', 'POINTER', 'POP-UP', 'POSITION', + 'POSITION-SHIFT', 'POSITIONING', 'POSITIVE', 'POSITIVE-INFINITY', + 'PREFIXED', 'PREFIXING', 'PRESENT', + 'PREVIOUS', 'PRINT', 'PRINT-CONTROL', 'PRINT-NO-PROMPT', + 'PRINT-PREVIEW', 'PRINT-SWITCH', 'PRINTER', 'PRINTER-1', 'PRINTING', + 'PRIOR', 'PRIORITY', 'PRIVATE', 'PROCEDURE', 'PROCEDURE-POINTER', + 'PROCEDURES', 'PROCEED', 'PROCESS', 'PROCESSING', 'PROGRAM', + 'PROGRAM-ID', 'PROGRAM-POINTER', 'PROGRESS', 'PROHIBITED', + 'PROMPT', 'PROPERTIES', + 'PROPERTY', 'PROPERTY-ID', 'PROPERTY-VALUE', 'PROTECTED', + 'PROTOTYPE', 'PUBLIC', 'PURGE', 'PUSH-BUTTON', 'QUERY-INDEX', + 'QUEUE', 'QUOTE', 'QUOTES', 'RADIO-BUTTON', 'RAISED', + 'RAISING', 'RD', 'READ-ONLY', 'READING', + 'READY', 'RECORD', 'RECORD-DATA', 'RECORD-OVERFLOW', + 'RECORD-TO-ADD', 'RECORD-TO-DELETE', 'RECORDING', 'RECORDS', + 'RECURSIVE', 'REDEFINE', 'REDEFINES', 'REDEFINITION', 'REEL', + 'REFERENCE', 'REFERENCES', 'REFRESH', 'REGION-COLOR', 'RELATION', + 'RELATIVE', 'RELOAD', 'REMAINDER', 'REMARKS', 'REMOVAL', + 'RENAMES', 'REORG-CRITERIA', 'REPEATED', 'REPLACE', 'REPLACING', + 'REPORT', 'REPORTING', 'REPORTS', 'REPOSITORY', 'REQUIRED', + 'REPRESENTS-NOT-A-NUMBER', + 'REREAD', 'RERUN', 'RESERVE', 'RESET-GRID', 'RESET-LIST', + 'RESET-TABS', 'RESIZABLE', 'RESTRICTED', 'RESULT-SET-LOCATOR', + 'RETRY', 'RETURN-CODE', 'RETURNING', + 'REVERSE-VIDEO', 'REVERSED', 'REWIND', 'RF', 'RH', + 'RIGHT', 'RIGHT-ALIGN', 'RIGHT-JUSTIFY', 'RIMMED', + 'ROLLING', 'ROUNDED', 'ROUNDING', 'ROW-COLOR', 'ROW-COLOR-PATTERN', + 'ROW-DIVIDERS', 'ROW-FONT', 'ROW-HEADINGS', 'ROW-PROTECTION', + 'ROWID', 'RUN', 'S01', 'S02', 'S03', 'S04', 'S05', 'SAME', + 'SAVE-AS', 'SAVE-AS-NO-PROMPT', 'SCREEN', 'SCROLL', 'SCROLL-BAR', + 'SD', 'SEARCH-OPTIONS', 'SEARCH-TEXT', 'SECONDS', + 'SECTION', 'SECURE', 'SECURITY', 'SEEK', 'SEGMENT', 'SEGMENT-LIMIT', + 'SELECT-ALL', 'SELECTION-INDEX', 'SELECTION-TEXT', + 'SELECTIVE', 'SELF', 'SELF-ACT', 'SELFCLASS', 'SEMAPHORE-POINTER', + 'SEND', 'SENTENCE', 'SEPARATE', 'SEPARATION', 'SEQUENCE', + 'SEQUENTIAL', 'SETTER', 'SHADING', 'SHADOW', + 'SHARING', 'SHIFT-IN', 'SHIFT-OUT', 'SHORT-DATE', 'SHOW-LINES', + 'SHOW-NONE', 'SHOW-SEL-ALWAYS', 'SIGNED', 'SIGNED-INT', + 'SIGNED-LONG', 'SIGNED-SHORT', 'SIZE', 'SKIP1', + 'SKIP2', 'SKIP3', 'SMALL-FONT', 'SORT-CONTROL', + 'SORT-CORE-SIZE', 'SORT-FILE-SIZE', 'SORT-MERGE', 'SORT-MESSAGE', + 'SORT-MODE-SIZE', 'SORT-OPTION', 'SORT-ORDER', 'SORT-RETURN', + 'SORT-TAPE', 'SORT-TAPES', 'SOURCE', 'SOURCE-COMPUTER', 'SOURCES', + 'SPACE', 'SPACE-FILL', 'SPACES', 'SPECIAL-NAMES', 'SPINNER', 'SQL', + 'SQUARE', 'STANDARD', 'STANDARD-1', 'STANDARD-2', 'STANDARD-3', + 'STANDARD-BINARY', 'STANDARD-DECIMAL', + 'START-X', 'START-Y', 'STARTING', 'STATEMENT', 'STATIC', + 'STATIC-LIST', + 'STATUS', 'STATUS-BAR', 'STATUS-TEXT', 'STEP', + 'STOP-BROWSER', 'STRONG', 'STYLE', 'SUB-QUEUE-1', + 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBFILE', 'SUBWINDOW', + 'SUFFIXING', 'SUPER', 'SYMBOL', 'SYMBOLIC', + 'SYNCHRONIZED', 'SYSIN', 'SYSIPT', 'SYSLST', 'SYSOUT', + 'SYSPCH', 'SYSPUNCH', 'SYSTEM', 'SYSTEM-DEFAULT', 'SYSTEM-INFO', + 'TAB', 'TAB-CONTROL', 'TAB-TO-ADD', 'TAB-TO-DELETE', 'TABLE', + 'TALLY', 'TALLYING', 'TAPE', 'TAPES', 'TEMPORARY', 'TERMINAL', + 'TERMINAL-INFO', 'TERMINATION-VALUE', 'TEST', 'TEXT', + 'THAN', 'THEN', 'THREAD', 'THREAD-LOCAL', 'THREAD-LOCAL-STORAGE', + 'THREAD-POINTER', 'THROUGH', 'THRU', 'THUMB-POSITION', + 'TILED-HEADINGS', 'TIME', 'TIME-OF-DAY', 'TIME-OUT', 'TIME-RECORD', + 'TIMEOUT', 'TIMES', 'TIMESTAMP', 'TIMESTAMP-OFFSET', + 'TIMESTAMP-OFFSET-RECORD', 'TIMESTAMP-RECORD', 'TITLE', 'TITLE-BAR', + 'TITLE-POSITION', 'TO', 'TOOL-BAR', 'TOP', 'TOTALED', 'TOTALING', + 'TOWARD-GREATER', 'TOWARD-LESSER', + 'TRACE', 'TRACK-AREA', 'TRACK-LIMIT', 'TRACK-THUMB', 'TRACKS', + 'TRADITIONAL-FONT', 'TRAILING', 'TRAILING-SHIFT', 'TRAILING-SIGN', + 'TRANSACTION', 'TRANSPARENT', 'TRANSPARENT-COLOR', + 'TREE-VIEW', 'TRUE', 'TRUNCATION', 'TYPE', 'TYPEDEF', 'UCS-4', + 'UNDERLINE', 'UNDERLINED', 'UNEQUAL', 'UNFRAMED', 'UNIT', 'UNITS', + 'UNIVERSAL', 'UNSIGNED', 'UNSIGNED-INT', 'UNSIGNED-LONG', + 'UNSIGNED-SHORT', + 'UNSORTED', 'UP', 'UPDATE', 'UNTIL', 'UPON', 'UPPER', + 'UPSI-0', 'UPSI-1', 'UPSI-2', 'UPSI-3', 'UPSI-4', 'UPSI-5', + 'UPSI-6', 'UPSI-7', 'USAGE', 'USE-ALT', 'USE-RETURN', + 'USE-TAB', 'USER', 'USER-COLORS', 'USER-DEFAULT', 'USER-GRAY', + 'USER-WHITE', 'USING', 'UTF-16', 'UTF-8', 'VALID', + 'VAL-STATUS', 'VALIDATE-STATUS', + 'VALUE', 'VALUE-FORMAT', 'VALUES', 'VALUETYPE', 'VALUETYPE-ID', + 'VARBINARY', 'VARIABLE', 'VARIANT', 'VARYING', 'VERTICAL', + 'VERY-HEAVY', 'VIRTUAL-WIDTH', 'VISIBLE', 'VPADDING', 'VSCROLL', + 'VSCROLL-BAR', 'VSCROLL-POS', 'VTOP', 'WEB-BROWSER', 'WHEN', + 'WHERE', 'WIDTH', 'WIDTH-IN-CELLS', 'WINDOW', + 'WITH', 'WORDS', 'WORKING-STORAGE', 'WRAP', 'WRITE-ONLY', + 'WRITE-VERIFY', 'WRITING', ' XML', 'XML ', 'XML-CODE', 'XML-EVENT', + 'XML-NTEXT', 'XML-TEXT', 'YIELDING', 'YYYYDDD', 'YYYYMMDD', 'ZERO', + 'ZERO-FILL', 'ZEROES', 'ZEROS' + ), + 3 => array( // Statement Keywords containing no spaces. + 'ACCEPT', 'ADD', 'ALTER', 'ALLOCATE', 'ATTACH', 'CALL', 'CANCEL', + 'CHAIN', 'CREATE', + 'CLOSE', 'COLOR', 'COMPUTE', 'COMMIT', 'CONTINUE', + 'COPY', 'DECLARE', 'DELEGATE', 'DELETE', 'DETACH', 'DISPLAY', + 'DIVIDE', + 'ENTER', 'ENTRY', 'EVALUATE', 'EXAMINE', + 'EXEC', 'EXECUTE', 'EXHIBIT', 'EXIT', 'FREE', 'GOBACK', + 'IF', 'INITIALIZE', 'INITIATE', 'INSPECT', 'INVOKE', 'MERGE', + 'MODIFY', 'MOVE', 'MULTIPLY', 'NOTE', 'ON', 'OPEN', + 'PERFORM', 'RAISE', 'READ', 'RECEIVE', 'RELEASE', 'RETURN', + 'RESET', 'RESUME', + 'REWRITE', 'ROLLBACK', 'SEARCH', 'SELECT', 'SERVICE', 'SET', 'SORT', + 'START', 'STOP', 'STRING', 'SUBTRACT', 'SYNC', + 'SUPPRESS', 'TERMINATE', + 'TRANSFORM', 'TRY', 'UNLOCKFILE', 'UNLOCK', 'UNSTRING', 'USE', + 'VALIDATE', 'WAIT', 'WRITE' + ), + 4 => array( // Intrinsic functions + 'ABS', 'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'BOOLEAN-OF-INTEGER', + 'BYTE-LENGTH', 'CHAR', 'CHAR-NATIONAL', + 'COS', 'COMBINED-DATETIME', 'CONCATENATE', 'CURRENT-DATE', + 'DATE-OF-INTEGER', 'DATE-TO-YYYYMMDD', 'DAY-TO-YYYYDDD', + 'DAY-OF-INTEGER', 'DISPLAY-OF', 'E', 'EXCEPTION-FILE', + 'EXCEPTION-FILE-N', 'EXCEPTION-LOCATION', + 'EXCEPTION-LOCATION-N', 'EXCEPTION-STATEMENT', 'EXCEPTION-STATUS', + 'EXP', 'EXP10', 'FACTORIAL', 'FORMATTED-CURRENT-DATE', + 'FORMATTED-DATE', 'FORMATTED-DATETIME', 'FORMATTED-TIME', + 'FRACTION-PART', 'HIGHEST-ALGEBRAIC', 'INTEGER', + 'INTEGER-OF-BOOLEAN', 'INTEGER-OF-DATE', 'INTEGER-OF-DAY', + 'INTEGER-OF-FORMATTED-DATE', 'INTEGER-PART', 'LENGTH', + 'LOCALE-COMPARE', + 'LOCALE-DATE', 'LOCALE-TIME', 'LOCALE-TIME-FROM-SECONDS', + 'LOCALE-TIME-FROM-SECS', 'LOG', + 'LOG10', 'LOWER-CASE', 'LOWEST-ALGEBRAIC', + 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE', + 'MIN', 'MOD', 'NATIONAL-OF', 'NUMVAL', 'NUMVAL-C', 'NUMVAL-F', + 'ORD', 'ORD-MAX', 'ORD-MIN', + 'PI', 'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', + 'SECONDS-FROM-FORMATTED-TIME', 'SIGN', 'SIN', 'SQRT', + 'SECONDS-PAST-MIDNIGHT', 'STANDARD-DEVIATION', 'STANDARD-COMPARE', + 'STORED-CHAR-LENGTH', + 'SUBSTITUTE', 'SUBSTITUE-CASE', 'SUM', 'TAN', 'TEST-DATE-YYYYMMDD', + 'TEST-DAY-YYYYDDD', 'TEST-FORMATTED-TIME', 'TEST-NUMVAL', + 'TEST-NUMVAL-C', 'TEST-NUMVAL-F', + 'TRIM', 'UPPER-CASE', 'VARIANCE', 'YEAR-TO-YYYY', 'WHEN-COMPILED' + ), + ), + 'SYMBOLS' => array( + // Arithmetic and comparison operators must be surrounded by spaces. + ' + ', ' - ', ' * ', ' / ', ' ** ', ' ^ ', + '.', ',', + ' = ', ' < ', ' > ', ' >= ', ' <= ', ' <> ', + '(', ')', '[', ']' + ), + '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: #008000; font-weight: bold;', + 3 => 'color: #000000; font-weight: bold;', + 4 => 'color: #9d7700;', + ), + 'COMMENTS' => array( + 1 => 'color: #a0a0a0; font-style: italic;', + 2 => 'color: #000080; font-weight: bold;', + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #339933;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #993399;' + ), + 'METHODS' => array( + 1 => 'color: #800080;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + '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-\$_\|\#|^&])', + ), + ), +); diff --git a/inc/geshi/coffeescript.php b/vendor/easybook/geshi/geshi/coffeescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/coffeescript.php rename to vendor/easybook/geshi/geshi/coffeescript.php diff --git a/inc/geshi/cpp-qt.php b/vendor/easybook/geshi/geshi/cpp-qt.php old mode 100644 new mode 100755 similarity index 98% rename from inc/geshi/cpp-qt.php rename to vendor/easybook/geshi/geshi/cpp-qt.php index 36626c90d4cb50066851d584280ba0b9934bc7c2..44f2d215f712754969ca5d5f92fb8d053568093a --- a/inc/geshi/cpp-qt.php +++ b/vendor/easybook/geshi/geshi/cpp-qt.php @@ -48,7 +48,11 @@ $language_data = array ( //Multiline-continued single-line comments 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', //Multiline-continued preprocessor define - 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), @@ -489,6 +493,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #888888;', 2 => 'color: #006E28;', + 3 => 'color: #BF0303;', + 4 => 'color: #BF0303;', 'MULTI' => 'color: #888888; font-style: italic;' ), 'ESCAPE_CHAR' => array( @@ -534,7 +540,7 @@ $language_data = array ( 2 => '', 3 => '', 4 => '', - 5 => 'http://doc.trolltech.com/latest/{FNAMEL}.html' + 5 => 'http://doc.qt.io/qt-5/{FNAMEL}.html' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( diff --git a/vendor/easybook/geshi/geshi/cpp-winapi.php b/vendor/easybook/geshi/geshi/cpp-winapi.php new file mode 100644 index 0000000000000000000000000000000000000000..ddc70b688267d38efdd936570a4faed717ea0ffe --- /dev/null +++ b/vendor/easybook/geshi/geshi/cpp-winapi.php @@ -0,0 +1,836 @@ +<?php +/************************************************************************************* + * cpp-winapi.php + * ------- + * Author: Dennis Bayer (Dennis.Bayer@mnifh-giessen.de) + * Contributors: + * - M. Uli Kusterer (witness.of.teachtext@gmx.net) + * - Jack Lloyd (lloyd@randombit.net) + * - Benny Baumann (BenBE@geshi.org) + * Copyright: (c) 2004 Dennis Bayer, Nigel McNie, 2012 Benny Baumann (http://qbnz.com/highlighter) + * Release Version: 1.0.8.11 + * Date Started: 2004/09/27 + * + * C++ language file for GeSHi. + * + * CHANGES + * ------- + * 2008/05/23 (1.0.7.22) + * - Added description of extra language features (SF#1970248) + * 2004/XX/XX (1.0.2) + * - Added several new keywords (Jack Lloyd) + * 2004/11/27 (1.0.1) + * - Added StdCLib function and constant names, changed color scheme to + * a cleaner one. (M. Uli Kusterer) + * - Added support for multiple object splitters + * 2004/10/27 (1.0.0) + * - First Release + * + * TODO (updated 2004/11/27) + * ------------------------- + * + ************************************************************************************* + * + * 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' => 'C++ (WinAPI)', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' + ), + '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( + 'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return', + 'switch', 'throw', 'while' + ), + 2 => array( + 'NULL', 'false', 'true', 'enum', 'errno', 'EDOM', + 'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG', + 'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG', + 'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP', + 'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP', + 'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN', + 'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN', + 'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT', + 'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR', + 'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', + 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr', + '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', 'typename', 'typeid', 'class' + ), + 3 => array( + 'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', + 'printf', 'fprintf', 'snprintf', 'sprintf', 'assert', + 'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint', + 'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper', + 'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp', + 'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2', + 'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp', + 'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen', + 'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf', + 'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf', + 'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc', + 'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind', + 'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs', + 'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc', + 'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv', + 'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat', + 'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn', + 'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy', + 'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime', + 'asctime', 'ctime', 'gmtime', 'localtime', 'strftime' + ), + 4 => array( + 'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint', + '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', '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' + ), + // Public API + 5 => array( + 'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber', + 'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA', + 'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW', + 'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess', + 'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW', + 'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess', + 'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId', + 'GetEnvironmentStringsA', 'GetEnvironmentStringsW', + 'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess', + 'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass', + 'GetProcessAffinityMask', 'GetProcessPriorityBoost', + 'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion', + 'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW', + 'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes', + 'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess', + 'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA', + 'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass', + 'SetProcessAffinityMask', 'SetProcessPriorityBoost', + 'SetProcessShutdownParameters', 'SetProcessWorkingSetSize', + 'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority', + 'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread', + 'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess', + 'TerminateThread', 'WaitForInputIdle', 'WinExec', + + '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread', + '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW', + 'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW', + 'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA', + 'DeleteFileW', 'FindClose', 'FindCloseChangeNotification', + 'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW', + 'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW', + 'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW', + 'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW', + 'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA', + 'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW', + 'GetFileInformationByHandle', 'GetFileSize', 'GetFileType', + 'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives', + 'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA', + 'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW', + 'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW', + 'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile', + 'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx', + 'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW', + 'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile', + 'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA', + 'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount', + 'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile', + 'WriteFileEx', + + 'DeviceIoControl', + + 'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress', + 'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW', + 'LoadModule', + + 'GetPrivateProfileIntA', 'GetPrivateProfileIntW', + 'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA', + 'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW', + 'GetPrivateProfileStringA', 'GetPrivateProfileStringW', + 'GetPrivateProfileStructA', 'GetPrivateProfileStructW', + 'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA', + 'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW', + 'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW', + 'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW', + 'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA', + 'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW', + 'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey', + 'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW', + 'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW', + 'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA', + 'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW', + 'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW', + 'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW', + 'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA', + 'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA', + 'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW', + 'WritePrivateProfileStringA', 'WritePrivateProfileStringW', + 'WritePrivateProfileStructA', 'WritePrivateProfileStructW', + 'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA', + 'WriteProfileStringW', + + 'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW', + 'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA', + 'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList', + 'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW', + 'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce', + 'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce', + 'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce', + 'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid', + 'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted', + 'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW', + 'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW', + 'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA', + 'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW', + 'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW', + 'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity', + 'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce', + 'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx', + 'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce', + 'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW', + 'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW', + 'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA', + 'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA', + 'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW', + 'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity', + 'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl', + 'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength', + 'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo', + 'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority', + 'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA', + 'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA', + 'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser', + 'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl', + 'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl', + 'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW', + 'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW', + 'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA', + 'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW', + 'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD', + 'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA', + 'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW', + 'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA', + 'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck', + 'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf', + 'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA', + 'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA', + 'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx', + 'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl', + 'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner', + 'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken', + 'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A', + 'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW', + 'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW', + 'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW', + 'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA', + 'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW', + 'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW', + 'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W', + 'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA', + 'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus', + 'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW', + 'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA', + 'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW', + 'UnlockServiceDatabase', + + 'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW', + 'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree', + 'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose', + 'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex', + 'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum', + 'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers', + 'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers', + 'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers', + 'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers', + 'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend', + 'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum', + 'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports', + 'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum', + 'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo', + 'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd', + 'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo', + 'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo', + 'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum', + 'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel', + 'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo', + 'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx', + 'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum', + 'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum', + 'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel', + 'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel', + 'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups', + 'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo', + 'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel', + 'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo', + 'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W', + 'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA', + 'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W', + 'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum', + 'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W', + 'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W', + 'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW', + 'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA', + 'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW', + 'WNetGetResourceInformationA', 'WNetGetResourceInformationW', + 'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA', + 'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA', + 'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW', + + 'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname', + 'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname', + 'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr', + 'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select', + 'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept', + 'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr', + 'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber', + 'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect', + 'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent', + 'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW', + 'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents', + 'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError', + 'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA', + 'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA', + 'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA', + 'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf', + 'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd', + 'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs', + 'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom', + 'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo', + 'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA', + 'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA', + 'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents', + 'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols', + 'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider', + 'WSCUnInstallNameSpace', + + 'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit', + 'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry', + 'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory', + 'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory', + + 'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation', + + 'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow', + 'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos', + 'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint', + 'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW', + 'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows', + 'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW', + 'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect', + 'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup', + 'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow', + 'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW', + 'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA', + 'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild', + 'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed', + 'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint', + 'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow', + 'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout', + 'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW', + 'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows', + 'UpdateLayeredWindow', 'WindowFromPoint', + + 'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA', + 'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA', + 'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog', + 'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt', + 'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem', + 'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA', + 'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW', + 'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt', + 'SetDlgItemTextA', 'SetDlgItemTextW', + + 'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr', + 'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr', + 'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages', + 'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags', + 'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize', + 'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock', + 'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps', + 'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock', + 'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc', + 'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect', + 'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock', + 'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire', + 'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink', + + 'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW', + 'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW', + 'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW', + 'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW', + 'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW', + 'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord', + 'SetClassWord', 'SetWindowWord' + ), + // Native API + 6 => array( + 'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer', + 'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout', + 'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer', + 'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite', + 'CsrSetPriorityClass', + + 'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources', + 'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U', + 'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll', + 'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions', + 'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread', + 'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum', + + 'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort', + 'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort', + 'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort', + 'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort', + 'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort', + 'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort', + 'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort', + 'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort', + 'NtWriteRequestData', 'ZwWriteRequestData', + + 'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm', + 'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType', + 'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm', + 'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList', + 'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken', + 'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm', + 'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm', + 'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken', + 'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread', + 'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken', + 'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck', + 'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm', + 'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm', + 'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject', + 'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken', + 'NtSetSecurityObject', 'ZwSetSecurityObject', + + 'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom', + 'NtQueryInformationAtom', 'ZwQueryInformationAtom', + + 'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread', + 'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread', + 'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread', + 'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread', + 'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess', + 'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread', + 'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread', + 'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread', + 'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread', + 'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread', + 'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess', + 'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert', + 'NtYieldExecution', 'ZwYieldExecution', + + 'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64', + 'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame', + 'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection', + 'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory', + 'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64', + 'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection', + 'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection', + 'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory', + 'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory', + 'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64', + 'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64', + 'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory', + 'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection', + 'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory', + 'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64', + + 'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject', + 'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject', + 'NtQueryInformationJobObject', 'ZwQueryInformationJobObject', + 'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject', + 'ZwTerminateJobObject', + + 'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile', + 'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile', + 'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile', + 'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile', + 'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile', + 'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile', + 'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile', + 'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion', + 'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile', + 'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile', + 'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter', + 'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile', + 'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion', + 'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile', + 'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile', + 'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64', + 'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile', + 'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile', + + 'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock', + 'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce', + 'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable', + 'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce', + 'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle', + 'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize', + 'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString', + 'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact', + 'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted', + 'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace', + 'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits', + 'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong', + 'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants', + 'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared', + 'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant', + 'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString', + 'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger', + 'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray', + 'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray', + 'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD', + 'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap', + 'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer', + 'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap', + 'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess', + 'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN', + 'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment', + 'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection', + 'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue', + 'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams', + 'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable', + 'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer', + 'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U', + 'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource', + 'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide', + 'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable', + 'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties', + 'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid', + 'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString', + 'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply', + 'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap', + 'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet', + 'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits', + 'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet', + 'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString', + 'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid', + 'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce', + 'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize', + 'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U', + 'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U', + 'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags', + 'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps', + 'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName', + 'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader', + 'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString', + 'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap', + 'RtlInitializeContext', 'RtlInitializeCriticalSection', + 'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable', + 'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact', + 'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString', + 'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString', + 'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3', + 'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd', + 'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate', + 'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract', + 'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid', + 'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime', + 'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable', + 'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory', + 'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject', + 'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams', + 'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits', + 'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString', + 'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser', + 'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey', + 'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey', + 'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString', + 'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap', + 'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable', + 'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl', + 'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation', + 'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation', + 'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet', + 'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap', + 'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom', + 'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock', + 'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations', + 'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime', + 'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits', + 'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount', + 'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor', + 'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl', + 'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames', + 'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject', + 'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap', + 'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact', + 'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor', + 'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime', + 'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980', + 'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize', + 'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString', + 'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize', + 'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN', + 'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap', + 'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString', + 'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString', + 'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN', + 'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar', + 'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap', + 'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap', + 'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize', + 'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap', + 'RtlZeroMemory', + + 'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount', + 'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter', + 'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer', + 'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime', + 'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution', + 'ZwSetTimerResolution', + + 'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair', + 'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore', + 'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair', + 'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore', + 'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent', + 'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore', + 'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant', + 'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore', + 'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent', + 'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair', + 'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair', + 'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair', + 'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject', + 'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject', + 'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair', + 'NtWaitLowEventPair', 'ZwWaitLowEventPair', + + 'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject', + 'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject', + 'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject', + 'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject', + 'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject', + 'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject', + 'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject', + 'ZwSetInformationObject', + + 'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException', + 'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort', + 'ZwSetDefaultHardErrorPort', + + 'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel', + 'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel', + 'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel', + 'ZwSetContextChannel', + + 'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey', + 'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey', + 'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry', + 'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2', + 'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey', + 'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey', + 'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey', + 'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey', + 'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey', + 'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey', + + 'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile', + 'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile', + + 'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile', + 'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort', + 'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile', + 'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile', + 'NtSystemDebugControl', 'ZwSystemDebugControl', + + 'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache', + 'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer', + 'NtSetLdtEntries', 'ZwSetLdtEntries', + + 'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl', + + 'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation', + 'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency', + 'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState', + 'ZwSetThreadExecutionState', + + 'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice', + 'NtUnloadDriver', 'ZwUnloadDriver', + + 'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage', + 'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue', + 'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale', + 'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue', + 'ZwSetSystemEnvironmentValue', + + 'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize', + 'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint', + 'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher', + 'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag', + 'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId', + 'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn', + 'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile', + 'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection', + 'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation', + 'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl', + 'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize', + 'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context', + 'SaveEm87Context' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '{', '}', '[', ']'), + 1 => array('<', '>','='), + 2 => array('+', '-', '*', '/', '%'), + 3 => array('!', '^', '&', '|'), + 4 => 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: #0000ff;', + 2 => 'color: #0000ff;', + 3 => 'color: #0000dd;', + 4 => 'color: #0000ff;', + 5 => 'color: #4000dd;', + 6 => 'color: #4000dd;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 3 => 'color: #FF0000;', + 4 => 'color: #FF0000;', + 'MULTI' => 'color: #ff0000; 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: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #FF0000;' + ), + '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: #007788;', + 2 => 'color: #007788;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com', + 6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + '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/cpp.php b/vendor/easybook/geshi/geshi/cpp.php old mode 100644 new mode 100755 similarity index 96% rename from inc/geshi/cpp.php rename to vendor/easybook/geshi/geshi/cpp.php index 42ab311cc534202e3e2d56a98d7630cb320b68da..52e4be6ea1619334e1a7ada135b02eb5cfd8fa82 --- a/inc/geshi/cpp.php +++ b/vendor/easybook/geshi/geshi/cpp.php @@ -56,14 +56,18 @@ $language_data = array ( //Multiline-continued single-line comments 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', //Multiline-continued preprocessor define - 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //C++ 11 string literal extensions + 3 => '/(?:L|u8?|U)(?=")/', + //C++ 11 string literal extensions (raw) + 4 => '/R"([^()\s\\\\]*)\((?:(?!\)\\1").)*\)\\1"/ms' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', 'ESCAPE_REGEXP' => array( //Simple Single Char Escapes - 1 => "#\\\\[abfnrtv\\\'\"?\n]#i", + 1 => "#\\\\[abfnrtv\\\'\"?\n]#", //Hexadecimal Char Specs 2 => "#\\\\x[\da-fA-F]{2}#", //Hexadecimal Char Specs @@ -167,6 +171,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #666666;', 2 => 'color: #339900;', + 3 => 'color: #FF0000;', + 4 => 'color: #FF0000;', 'MULTI' => 'color: #ff0000; font-style: italic;' ), 'ESCAPE_CHAR' => array( diff --git a/inc/geshi/csharp.php b/vendor/easybook/geshi/geshi/csharp.php old mode 100644 new mode 100755 similarity index 96% rename from inc/geshi/csharp.php rename to vendor/easybook/geshi/geshi/csharp.php index 26024e91ab12ed89df7beaf35a3097c465f85db1..a73d01d6b435efa263b5607dfc8e19f4b9e73fa0 --- a/inc/geshi/csharp.php +++ b/vendor/easybook/geshi/geshi/csharp.php @@ -12,6 +12,8 @@ * * CHANGES * ------- + * 2015/04/14 + * - Added C# 5.0 and 6.0 missing keywords and #pragma directive * 2012/06/18 (1.0.8.11) * - Added missing keywords (Christian Stelzmann) * 2009/04/03 (1.0.8.6) @@ -62,7 +64,8 @@ $language_data = array ( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( - 'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue', + 'abstract', 'add', 'as', 'async', 'await', 'base', + 'break', 'by', 'case', 'catch', 'const', 'continue', 'default', 'do', 'else', 'event', 'explicit', 'extern', 'false', 'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if', 'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null', @@ -74,10 +77,10 @@ $language_data = array ( ), 2 => array( '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if', - '#line', '#region', '#undef', '#warning' + '#line', '#pragma', '#region', '#undef', '#warning' ), 3 => array( - 'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked' + 'checked', 'is', 'new', 'nameof', 'sizeof', 'typeof', 'unchecked' ), 4 => array( 'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double', @@ -253,4 +256,4 @@ $language_data = array ( ) ); -?> \ No newline at end of file +?> diff --git a/inc/geshi/css.php b/vendor/easybook/geshi/geshi/css.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/css.php rename to vendor/easybook/geshi/geshi/css.php diff --git a/inc/geshi/cuesheet.php b/vendor/easybook/geshi/geshi/cuesheet.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/cuesheet.php rename to vendor/easybook/geshi/geshi/cuesheet.php diff --git a/inc/geshi/d.php b/vendor/easybook/geshi/geshi/d.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/d.php rename to vendor/easybook/geshi/geshi/d.php diff --git a/vendor/easybook/geshi/geshi/dart.php b/vendor/easybook/geshi/geshi/dart.php new file mode 100644 index 0000000000000000000000000000000000000000..932e13e874a72411026dbb1bb8022a3f0b1180bd --- /dev/null +++ b/vendor/easybook/geshi/geshi/dart.php @@ -0,0 +1,159 @@ +<?php +/************************************************************************************* + * dart.php + * -------- + * Author: Edward Hart (edward.dan.hart@gmail.com) + * Copyright: (c) 2013 Edward Hart + * Release Version: 1.0.8.12 + * Date Started: 2013/10/25 + * + * Dart language file for GeSHi. + * + * CHANGES + * ------- + * 2013/10/25 + * - First Release + * + * TODO (updated 2013/10/25) + * ------------------------- + * - Highlight standard library types. + * + ************************************************************************************* + * + * 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' => 'Dart', + + 'COMMENT_SINGLE' => array('//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\nrfbtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + 4 => "#\\\\u\\{[\da-fA-F]*\\}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | + 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( + 'abstract', 'as', 'assert', 'break', 'case', 'catch', 'class', + 'const', 'continue', 'default', 'do', 'dynamic', 'else', 'export', + 'extends', 'external', 'factory', 'false', 'final', 'finally', + 'for', 'get', 'if', 'implements', 'import', 'in', 'is', 'library', + 'new', 'null', 'operator', 'part', 'return', 'set', 'static', + 'super', 'switch', 'this', 'throw', 'true', 'try', 'typedef', 'var', + 'while', 'with' + ), + 2 => array( + 'double', 'bool', 'int', 'num', 'void' + ), + ), + + 'SYMBOLS' => array( + 0 => array('(', ')', '{', '}', '[', ']'), + 1 => array('+', '-', '*', '/', '%', '~'), + 2 => array('&', '|', '^'), + 3 => array('=', '!', '<', '>'), + 4 => array('?', ':'), + 5 => array('..'), + 6 => array(';', ',') + ), + + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + ), + + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'font-weight: bold;', + 2 => 'color: #445588; font-weight: bold;' + ), + 'COMMENTS' => array( + 0 => 'color: #999988; font-style: italic;', + 'MULTI' => 'color: #999988; 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' => '' + ), + 'STRINGS' => array( + 0 => 'color: #d14;' + ), + 'NUMBERS' => array( + 0 => 'color: #009999;', + 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;' + ), + 'BRACKETS' => array(''), + 'METHODS' => array( + 1 => 'color: #006633;' + ), + 'SYMBOLS' => array( + 0 => 'font-weight: bold;', + 1 => 'font-weight: bold;', + 2 => 'font-weight: bold;', + 3 => 'font-weight: bold;', + 4 => 'font-weight: bold;', + 5 => 'font-weight: bold;', + 6 => 'font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => 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( + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/dcl.php b/vendor/easybook/geshi/geshi/dcl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcl.php rename to vendor/easybook/geshi/geshi/dcl.php diff --git a/inc/geshi/dcpu16.php b/vendor/easybook/geshi/geshi/dcpu16.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcpu16.php rename to vendor/easybook/geshi/geshi/dcpu16.php diff --git a/inc/geshi/dcs.php b/vendor/easybook/geshi/geshi/dcs.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dcs.php rename to vendor/easybook/geshi/geshi/dcs.php diff --git a/inc/geshi/delphi.php b/vendor/easybook/geshi/geshi/delphi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/delphi.php rename to vendor/easybook/geshi/geshi/delphi.php index d5596e0cd047f738cd7d508a9aeed79f8a70867d..34d0fd7bffbfae98662fc4069ed420fafc767863 --- a/inc/geshi/delphi.php +++ b/vendor/easybook/geshi/geshi/delphi.php @@ -297,5 +297,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/diff.php b/vendor/easybook/geshi/geshi/diff.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/diff.php rename to vendor/easybook/geshi/geshi/diff.php diff --git a/inc/geshi/div.php b/vendor/easybook/geshi/geshi/div.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/div.php rename to vendor/easybook/geshi/geshi/div.php index aa11795ac8313e743b2835b179a64e99891b1b23..fb8a72a16e26a259a180962b789accc1e8fadc18 --- a/inc/geshi/div.php +++ b/vendor/easybook/geshi/geshi/div.php @@ -122,5 +122,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/dos.php b/vendor/easybook/geshi/geshi/dos.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dos.php rename to vendor/easybook/geshi/geshi/dos.php diff --git a/inc/geshi/dot.php b/vendor/easybook/geshi/geshi/dot.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/dot.php rename to vendor/easybook/geshi/geshi/dot.php diff --git a/inc/geshi/e.php b/vendor/easybook/geshi/geshi/e.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/e.php rename to vendor/easybook/geshi/geshi/e.php diff --git a/inc/geshi/ecmascript.php b/vendor/easybook/geshi/geshi/ecmascript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ecmascript.php rename to vendor/easybook/geshi/geshi/ecmascript.php diff --git a/inc/geshi/eiffel.php b/vendor/easybook/geshi/geshi/eiffel.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/eiffel.php rename to vendor/easybook/geshi/geshi/eiffel.php index baa13c31900553906951eb3db9941d19c5bace27..807d23f944e7acab772ab701873eb4713d08882e --- a/inc/geshi/eiffel.php +++ b/vendor/easybook/geshi/geshi/eiffel.php @@ -391,5 +391,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/email.php b/vendor/easybook/geshi/geshi/email.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/email.php rename to vendor/easybook/geshi/geshi/email.php diff --git a/inc/geshi/epc.php b/vendor/easybook/geshi/geshi/epc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/epc.php rename to vendor/easybook/geshi/geshi/epc.php diff --git a/inc/geshi/erlang.php b/vendor/easybook/geshi/geshi/erlang.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/erlang.php rename to vendor/easybook/geshi/geshi/erlang.php diff --git a/inc/geshi/euphoria.php b/vendor/easybook/geshi/geshi/euphoria.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/euphoria.php rename to vendor/easybook/geshi/geshi/euphoria.php diff --git a/vendor/easybook/geshi/geshi/ezt.php b/vendor/easybook/geshi/geshi/ezt.php new file mode 100644 index 0000000000000000000000000000000000000000..74d8d520456c6bae99416ae4a597982281aa1f81 --- /dev/null +++ b/vendor/easybook/geshi/geshi/ezt.php @@ -0,0 +1,134 @@ +<?php +/************************************************************************************* + * ezt.php + * ----------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2012/09/01 + * + * Easytrieve language file for GeSHi. + * + * CHANGES + * ------- + * 2012/09/22 (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' => 'EZT', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'COMMENT_REGEXP' => array( + // First character of the line is an asterisk. Rest of the line is spaces/null + 0 => '/\*(\s|\D)?(\n)/', + // Asterisk followed by any character & then a non numeric character. + // This is to prevent expressions such as 25 * 4 from being marked as a comment + // Note: 25*4 - 100 will mark *4 - 100 as a comment. Pls. space out expressions + // In any case, 25*4 will result in an Easytrieve error + 1 => '/\*.([^0-9\n])+.*(\n)/' + ), + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'CONTROL','DEFINE','DISPLAY','DO','ELSE','END-DO','END-IF', + 'END-PROC','FILE','GET','GOTO','HEADING','IF','JOB','LINE', + 'PARM','PERFORM','POINT','PRINT','PROC','PUT','READ','RECORD', + 'REPORT','RETRIEVE','SEARCH','SELECT','SEQUENCE','SORT','STOP', + 'TITLE','WRITE' + ), + // Procedure Keywords (Names of specific procedures) + 2 => array ( + 'AFTER-BREAK','AFTER-LINE','BEFORE-BREAK','BEFORE-LINE', + 'ENDPAGE','REPORT-INPUT','TERMINATION', + ), + // Macro names, Parameters + 3 => array ( + 'COMPILE','CONCAT','DESC','GETDATE','MASK','PUNCH', + 'VALUE','SYNTAX','NEWPAGE','SKIP','COL','TALLY', + 'WITH' + ) + ), + 'SYMBOLS' => array( + '(',')','=','&',',','*','>','<','%' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + //4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;' + ), + 'COMMENTS' => array( + 0 => 'color: #0000FF; font-style: italic;', + 1 => 'color: #0000FF; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #66CC66;' + ), + 'NUMBERS' => array( + 0 => 'color: #736205;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #E01B6A;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // We are trying to highlight Macro names here which preceded by % + 0 => '(%)([a-zA-Z0-9])+(\s|\n)' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/f1.php b/vendor/easybook/geshi/geshi/f1.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/f1.php rename to vendor/easybook/geshi/geshi/f1.php diff --git a/inc/geshi/falcon.php b/vendor/easybook/geshi/geshi/falcon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/falcon.php rename to vendor/easybook/geshi/geshi/falcon.php diff --git a/inc/geshi/fo.php b/vendor/easybook/geshi/geshi/fo.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/fo.php rename to vendor/easybook/geshi/geshi/fo.php diff --git a/inc/geshi/fortran.php b/vendor/easybook/geshi/geshi/fortran.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/fortran.php rename to vendor/easybook/geshi/geshi/fortran.php index c21ccd19274e740c8fd2a20df69eb69523742ad7..a77b6e7faebcef7ee84361035c4b44eb6440efa0 --- a/inc/geshi/fortran.php +++ b/vendor/easybook/geshi/geshi/fortran.php @@ -156,5 +156,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK'=> array( ) ); - -?> diff --git a/inc/geshi/freebasic.php b/vendor/easybook/geshi/geshi/freebasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/freebasic.php rename to vendor/easybook/geshi/geshi/freebasic.php index b23f39bc7686f1bde75e5a20db4af4ffc83b50bd..c5426449664b9fa706647ca20e066c0deaebb980 --- a/inc/geshi/freebasic.php +++ b/vendor/easybook/geshi/geshi/freebasic.php @@ -137,5 +137,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/freeswitch.php b/vendor/easybook/geshi/geshi/freeswitch.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/freeswitch.php rename to vendor/easybook/geshi/geshi/freeswitch.php index c6fff2767e1d359437453d560a7fd589b5a74cae..5412e6d69fec2ebdafaf7f74f739fccf2bf37cec --- a/inc/geshi/freeswitch.php +++ b/vendor/easybook/geshi/geshi/freeswitch.php @@ -164,5 +164,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/fsharp.php b/vendor/easybook/geshi/geshi/fsharp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/fsharp.php rename to vendor/easybook/geshi/geshi/fsharp.php diff --git a/inc/geshi/gambas.php b/vendor/easybook/geshi/geshi/gambas.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gambas.php rename to vendor/easybook/geshi/geshi/gambas.php diff --git a/inc/geshi/gdb.php b/vendor/easybook/geshi/geshi/gdb.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gdb.php rename to vendor/easybook/geshi/geshi/gdb.php index 0a5e32c303e30ef3ba076d0849b22e397a3afcfa..9f63d25b0951c999dc318d6c801dcce53b22420d --- a/inc/geshi/gdb.php +++ b/vendor/easybook/geshi/geshi/gdb.php @@ -194,5 +194,3 @@ $language_data = array ( ); // kate: replace-tabs on; indent-width 4; - -?> diff --git a/inc/geshi/genero.php b/vendor/easybook/geshi/geshi/genero.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/genero.php rename to vendor/easybook/geshi/geshi/genero.php index e1b20b3e8007224b84e6ff69202fb1ef13337c4b..2ab24855f469f4e00725d29be7066d08ef923f72 --- a/inc/geshi/genero.php +++ b/vendor/easybook/geshi/geshi/genero.php @@ -459,5 +459,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/genie.php b/vendor/easybook/geshi/geshi/genie.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/genie.php rename to vendor/easybook/geshi/geshi/genie.php index db05ec062647a43c92f615d716d05fa070326da4..3bab1b7b773cb8e0aac6b1882d1ab233c14ef931 --- a/inc/geshi/genie.php +++ b/vendor/easybook/geshi/geshi/genie.php @@ -153,5 +153,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/gettext.php b/vendor/easybook/geshi/geshi/gettext.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gettext.php rename to vendor/easybook/geshi/geshi/gettext.php index 80b531c109bc2b3416b19efd68b9d4f3294a846d..eb928bf6cbae57d2213e9ea62fbfe510a3d414fc --- a/inc/geshi/gettext.php +++ b/vendor/easybook/geshi/geshi/gettext.php @@ -93,5 +93,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4, ); - -?> diff --git a/inc/geshi/glsl.php b/vendor/easybook/geshi/geshi/glsl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/glsl.php rename to vendor/easybook/geshi/geshi/glsl.php diff --git a/inc/geshi/gml.php b/vendor/easybook/geshi/geshi/gml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/gml.php rename to vendor/easybook/geshi/geshi/gml.php index 999251b223bf850940a96c002a4179e67a8ac00f..58387b38af3068f6195fdc7c1be252e438cce722 --- a/inc/geshi/gml.php +++ b/vendor/easybook/geshi/geshi/gml.php @@ -502,5 +502,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/gnuplot.php b/vendor/easybook/geshi/geshi/gnuplot.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gnuplot.php rename to vendor/easybook/geshi/geshi/gnuplot.php diff --git a/inc/geshi/go.php b/vendor/easybook/geshi/geshi/go.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/go.php rename to vendor/easybook/geshi/geshi/go.php diff --git a/inc/geshi/groovy.php b/vendor/easybook/geshi/geshi/groovy.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/groovy.php rename to vendor/easybook/geshi/geshi/groovy.php diff --git a/inc/geshi/gwbasic.php b/vendor/easybook/geshi/geshi/gwbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/gwbasic.php rename to vendor/easybook/geshi/geshi/gwbasic.php diff --git a/inc/geshi/haskell.php b/vendor/easybook/geshi/geshi/haskell.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/haskell.php rename to vendor/easybook/geshi/geshi/haskell.php diff --git a/inc/geshi/haxe.php b/vendor/easybook/geshi/geshi/haxe.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/haxe.php rename to vendor/easybook/geshi/geshi/haxe.php diff --git a/inc/geshi/hicest.php b/vendor/easybook/geshi/geshi/hicest.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/hicest.php rename to vendor/easybook/geshi/geshi/hicest.php diff --git a/inc/geshi/hq9plus.php b/vendor/easybook/geshi/geshi/hq9plus.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/hq9plus.php rename to vendor/easybook/geshi/geshi/hq9plus.php index 7ba1a73c1c25f788b98ebc9ec345f47139d000a7..5b62589cc47f9f204e9a8ff707bcd0b6d9744700 --- a/inc/geshi/hq9plus.php +++ b/vendor/easybook/geshi/geshi/hq9plus.php @@ -100,5 +100,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/html4strict.php b/vendor/easybook/geshi/geshi/html4strict.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/html4strict.php rename to vendor/easybook/geshi/geshi/html4strict.php diff --git a/inc/geshi/html5.php b/vendor/easybook/geshi/geshi/html5.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/html5.php rename to vendor/easybook/geshi/geshi/html5.php diff --git a/inc/geshi/icon.php b/vendor/easybook/geshi/geshi/icon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/icon.php rename to vendor/easybook/geshi/geshi/icon.php diff --git a/inc/geshi/idl.php b/vendor/easybook/geshi/geshi/idl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/idl.php rename to vendor/easybook/geshi/geshi/idl.php index 69bd14ff4fedb4694ba25e3e14ad908ec684f451..a2b6f57e1c5f68b775033adc7728e46f33a58a5f --- a/inc/geshi/idl.php +++ b/vendor/easybook/geshi/geshi/idl.php @@ -119,5 +119,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/ini.php b/vendor/easybook/geshi/geshi/ini.php old mode 100644 new mode 100755 similarity index 97% rename from inc/geshi/ini.php rename to vendor/easybook/geshi/geshi/ini.php index 8e6ca76dbd08bbb1bd13d8bfd880bb9dc49905fb..f0a8edeaa7020fd805517b682d35253b3fddf0a5 --- a/inc/geshi/ini.php +++ b/vendor/easybook/geshi/geshi/ini.php @@ -44,8 +44,9 @@ $language_data = array ( 'LANG_NAME' => 'INI', - 'COMMENT_SINGLE' => array(0 => ';'), + 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(0 => '/^\s*;.*?$/m'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', @@ -124,5 +125,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/inno.php b/vendor/easybook/geshi/geshi/inno.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/inno.php rename to vendor/easybook/geshi/geshi/inno.php index 1e2ee8befbdb890e7d348c6e1205da47294508bb..192054cf1b1d611e904621ad699cdf4851322357 --- a/inc/geshi/inno.php +++ b/vendor/easybook/geshi/geshi/inno.php @@ -208,5 +208,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/intercal.php b/vendor/easybook/geshi/geshi/intercal.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/intercal.php rename to vendor/easybook/geshi/geshi/intercal.php diff --git a/inc/geshi/io.php b/vendor/easybook/geshi/geshi/io.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/io.php rename to vendor/easybook/geshi/geshi/io.php index 51fad43a715ee17d058ea5fb1b441d45b0642777..d23984e8f518bee01990ada35aac8ce99d420878 --- a/inc/geshi/io.php +++ b/vendor/easybook/geshi/geshi/io.php @@ -134,5 +134,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/ispfpanel.php b/vendor/easybook/geshi/geshi/ispfpanel.php new file mode 100644 index 0000000000000000000000000000000000000000..c02897850112c2eb5d4c559e844beb16a8ce21f9 --- /dev/null +++ b/vendor/easybook/geshi/geshi/ispfpanel.php @@ -0,0 +1,165 @@ +<?php +/************************************************************************************* + * ispfpanel.php + * ------------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2012/09/18 + * + * ISPF Panel Definition (MVS) language file for GeSHi. + * + * CHANGES + * ------- + * 2011/09/22 (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' => 'ISPF Panel', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + // Panel Definition Statements + 1 => array( + ')CCSID',')PANEL',')ATTR',')ABC',')ABCINIT',')ABCPROC',')BODY',')MODEL', + ')AREA',')INIT',')REINIT',')PROC',')FIELD',')HELP',')LIST',')PNTS',')END' + ), + // File-Tailoring Skeletons + 2 => array ( + ')DEFAULT',')BLANK', ')CM', ')DO', ')DOT', ')ELSE', ')ENDSEL', + ')ENDDO', ')ENDDOT', ')IF', ')IM', ')ITERATE', ')LEAVE', ')NOP', ')SEL', + ')SET', ')TB', ')TBA' + ), + // Control Variables + 3 => array ( + '.ALARM','.ATTR','.ATTRCHAR','.AUTOSEL','.CSRPOS','.CSRROW','.CURSOR','.HELP', + '.HHELP','.KANA','.MSG','.NRET','.PFKEY','.RESP','.TRAIL','.ZVARS' + ), + // Keywords + 4 => array ( + 'WINDOW','ALARM','ATTN','BARRIER','HILITE','CAPS', + 'CKBOX','CLEAR','CMD','COLOR','COMBO','CSRGRP','CUADYN', + 'SKIP','INTENS','AREA','EXTEND', + 'DESC','ASIS','VGET','VPUT','JUST','BATSCRD','BATSCRW', + 'BDBCS','BDISPMAX','BIT','BKGRND','BREDIMAX','PAD','PADC', + 'PAS','CHINESES','CHINESET','DANISH','DATAMOD','DDLIST', + 'DEPTH','DUMP','ENGLISH','ERROR','EXIT','EXPAND','FIELD', + 'FORMAT','FRENCH','GE','GERMAN','IMAGE','IND','TYPE', + 'ITALIAN','JAPANESE','KOREAN','LCOL','LEN','LIND','LISTBOX', + 'MODE','NEST','NOJUMP','NOKANA','NUMERIC','OUTLINE','PARM', + 'PGM','PORTUGESE','RADIO','RCOL','REP','RIND','ROWS', + 'SCALE','SCROLL','SFIHDR','SGERMAN','SIND','SPANISH', + 'UPPERENG','WIDTH' + ), + // Parameters + 5 => array ( + 'ADDPOP','ALPHA','ALPHAB','DYNAMIC','SCRL', + 'CCSID','COMMAND','DSNAME','DSNAMEF','DSNAMEFM', + 'DSNAMEPQ','DSNAMEQ','EBCDIC','ENBLDUMP','ENUM',// 'EXTEND', + 'FI','FILEID','FRAME','GUI','GUISCRD','GUISCRW','HEX', + 'HIGH','IDATE','IN','INCLUDE','INPUT','ITIME','JDATE', + 'JSTD','KEYLIST','LANG','LEFT','LIST','LISTV','LISTVX', + 'LISTX','LMSG','LOGO','LOW','MIX','NAME','NAMEF','NB', + 'NEWAPPL','NEWPOOL','NOCHECK','NOLOGO','NON','NONBLANK', + 'NULLS','NUM','OFF','ON','OPT','OUT','OUTPUT','PANEL', + /* 'PGM',*/'PICT','PICTN','POSITION','TBDISPL','PROFILE', + 'QUERY','RANGE','REVERSE','RIGHT','SHARED','SMSG', + 'STDDATE','STDTIME','TERMSTAT','TERMTRAC','TEST', + 'TESTX','TEXT','TRACE','TRACEX','USCORE','USER', + 'USERMOD','WSCMD','WSCMDV' + ), + ), + 'SYMBOLS' => array( + '(',')','=','&',',','*','#','+','&','%','_','-','@','!' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'BKGROUND' => 'background-color: #000000; color: #00FFFF;', + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;', + 4 => 'color: #876C00;', + 5 => 'color: #00FF00;' + ), + 'COMMENTS' => array( + 0 => 'color: #002EB8; font-style: italic;', + //1 => 'color: #002EB8; font-style: italic;', + //2 => 'color: #002EB8; font-style: italic;', + 'MULTI' => 'color: #002EB8; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #700000;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF6633;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #6B1F6B;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // Variables Defined in the Panel + 0 => '&[a-zA-Z]{1,8}[0-9]{0,}', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/j.php b/vendor/easybook/geshi/geshi/j.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/j.php rename to vendor/easybook/geshi/geshi/j.php index 5565bb499de70b298b134fd695de6f2977dfcd7b..fe8cb11a63876eb8274f6ba48d40db93158d2da3 --- a/inc/geshi/j.php +++ b/vendor/easybook/geshi/geshi/j.php @@ -186,5 +186,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/java.php b/vendor/easybook/geshi/geshi/java.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/java.php rename to vendor/easybook/geshi/geshi/java.php index 652b8ddd382c1001e7a8f79a8d6b5fb00bcb1525..f384c4d841af8331fe5ae04c5ff6dedd3e373c8a --- a/inc/geshi/java.php +++ b/vendor/easybook/geshi/geshi/java.php @@ -979,5 +979,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/java5.php b/vendor/easybook/geshi/geshi/java5.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/java5.php rename to vendor/easybook/geshi/geshi/java5.php index af16bd1e63760d779e449959a0e2c8746a6746a0..5d74d988b4632275467f4b43a70acbf288660ac2 --- a/inc/geshi/java5.php +++ b/vendor/easybook/geshi/geshi/java5.php @@ -1033,5 +1033,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/javascript.php b/vendor/easybook/geshi/geshi/javascript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/javascript.php rename to vendor/easybook/geshi/geshi/javascript.php diff --git a/vendor/easybook/geshi/geshi/jcl.php b/vendor/easybook/geshi/geshi/jcl.php new file mode 100644 index 0000000000000000000000000000000000000000..7d9c548257d43cf1a947cf06044a97e9b2ef91e2 --- /dev/null +++ b/vendor/easybook/geshi/geshi/jcl.php @@ -0,0 +1,155 @@ +<?php +/************************************************************************************* + * jcl.php + * ----------- + * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com) + * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in) + * Release Version: 1.0.8.11 + * Date Started: 2011/09/16 + * + * JCL (MVS), DFSORT, IDCAMS language file for GeSHi. + * + * CHANGES + * ------- + * 2011/09/16 (1.0.0) + * - Internal Release (for own blog/testing) + * 2012/09/22 (1.0.1) + * - Released with support for DFSORT, ICETOOL, IDCAMS + * - Added support for Symbolic variables in JCL + * - Added support for TWS OPC variables + * + ************************************************************************************* + * + * 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' => 'JCL', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + // Comments identified using REGEX + // Comments start with //* but should not be followed by % (TWS) or + (some JES3 stmts) + 3 => "\/\/\*[^%](.*?)(\n)" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'COMMAND', 'CNTL', 'DD', 'ENDCNTL', 'EXEC', 'IF', 'THEN', 'ELSE', + 'ENDIF', 'JCLLIB', 'JOB', 'OUTPUT', 'PEND', + 'PROC', 'SET', 'XMIT' + ), + 2 => array ( + 'PGM','CLASS','NOTIFY','MSGCLASS','DSN','KEYLEN','LABEL','LIKE', + 'RECFM','LRECL','DCB','DSORG','BLKSIZE','SPACE','STORCLAS', + 'DUMMY','DYNAM','AVGREC','BURST','DISP','UNIT','VOLUME', + 'MSGLEVEL','REGION' + ), + // Keywords set 3: DFSORT, ICETOOL + 3 => array ( + 'ALTSEQ','DEBUG','END','INCLUDE','INREC','MERGE','MODS','OMIT', + 'OPTION','OUTFIL','OUTREC','RECORD','SORT','SUM', + 'COPY','COUNT','DEFAULTS','DISPLAY','MODE','OCCUR','RANGE', + 'SELECT','STATS','UNIQUE','VERIFY' + ), + // Keywords set 4: IDCAMS + 4 => array ( + 'ALTER','BLDINDEX','CNVTCAT','DEFINE','ALIAS','ALTERNATEINDEX', + 'CLUSTER','GENERATIONDATAGROUP','GDG','NONVSAM','PAGESPACE','PATH', + /* 'SPACE',*/'USERCATALOG','DELETE','EXAMINE','EXPORT','DISCONNECT', + 'EXPORTRA','IMPORT','CONNECT','IMPORTRA','LISTCAT','LISTCRA', + 'PRINT','REPRO','RESETCAT'//,'VERIFY' + ) + ), + 'SYMBOLS' => array( + '(',')','=',',','>','<' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #FF0000;', + 2 => 'color: #21A502;', + 3 => 'color: #FF00FF;', + 4 => 'color: #876C00;' + ), + 'COMMENTS' => array( + 0 => 'color: #0000FF;', + //1 => 'color: #0000FF;', + //2 => 'color: #0000FF;', + 3 => 'color: #0000FF;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF7400;' + ), + 'STRINGS' => array( + 0 => 'color: #66CC66;' + ), + 'NUMBERS' => array( + 0 => 'color: #336633;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF7400;' + ), + 'REGEXPS' => array( + 0 => 'color: #6B1F6B;', + 1 => 'color: #6B1F6B;', + 2 => 'color: #6B1F6B;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + // JCL book at IBM Bookshelf is http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/IEA2B680/CONTENTS?SHELF=&DT=20080604022956#3.1 + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // The following regular expressions solves three purposes + // - Identify Temp Variables in JCL (e.g. &&TEMP) + // - Symbolic variables in JCL (e.g. &SYSUID) + // - TWS OPC Variables (e.g. %OPC) + // Thanks to Simon for pointing me to this + 0 => '&&[a-zA-Z]{1,8}[0-9]{0,}', + 1 => '&[a-zA-Z]{1,8}[0-9]{0,}', + 2 => '&|\?|%[a-zA-Z]{1,8}[0-9]{0,}' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/jquery.php b/vendor/easybook/geshi/geshi/jquery.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/jquery.php rename to vendor/easybook/geshi/geshi/jquery.php diff --git a/inc/geshi/kixtart.php b/vendor/easybook/geshi/geshi/kixtart.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/kixtart.php rename to vendor/easybook/geshi/geshi/kixtart.php index 5b90919892e391a2c31504c322c784042133d3b7..42ffa42ecd5923a9148fc47d6aa1dbe5b6755787 --- a/inc/geshi/kixtart.php +++ b/vendor/easybook/geshi/geshi/kixtart.php @@ -325,5 +325,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/klonec.php b/vendor/easybook/geshi/geshi/klonec.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/klonec.php rename to vendor/easybook/geshi/geshi/klonec.php index 5f86e78dca32c0344848825c1bce1def2e0e155d..4831b13b7bc6599ad249a4d29cbc3d1182ba2181 --- a/inc/geshi/klonec.php +++ b/vendor/easybook/geshi/geshi/klonec.php @@ -278,5 +278,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/klonecpp.php b/vendor/easybook/geshi/geshi/klonecpp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/klonecpp.php rename to vendor/easybook/geshi/geshi/klonecpp.php index 6564c6b7b805d32de3d28325295b47ee4be140c1..d0368202ddecaeefc0aba2f79c3e871e924d3b93 --- a/inc/geshi/klonecpp.php +++ b/vendor/easybook/geshi/geshi/klonecpp.php @@ -306,5 +306,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/latex.php b/vendor/easybook/geshi/geshi/latex.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/latex.php rename to vendor/easybook/geshi/geshi/latex.php diff --git a/inc/geshi/lb.php b/vendor/easybook/geshi/geshi/lb.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lb.php rename to vendor/easybook/geshi/geshi/lb.php diff --git a/inc/geshi/ldif.php b/vendor/easybook/geshi/geshi/ldif.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ldif.php rename to vendor/easybook/geshi/geshi/ldif.php diff --git a/inc/geshi/lisp.php b/vendor/easybook/geshi/geshi/lisp.php old mode 100644 new mode 100755 similarity index 94% rename from inc/geshi/lisp.php rename to vendor/easybook/geshi/geshi/lisp.php index be823a4052006482e1db83da986a764c27fea0b2..a2301914e0968eea90f6967a7a3a291b9c1d6b7e --- a/inc/geshi/lisp.php +++ b/vendor/easybook/geshi/geshi/lisp.php @@ -3,14 +3,16 @@ * lisp.php * -------- * 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.11 + * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.12 * Date Started: 2004/08/30 * * Generic Lisp language file for GeSHi. * * CHANGES * ------- + * 2013/11/13 (1.0.8.12) + * - Fixed bug where a keyword was highlighted in identifiers (Edward Hart) * 2005/12/9 (1.0.2) * - Added support for :keywords and ::access (Denis Mashkevich) * 2004/11/27 (1.0.1) @@ -135,10 +137,11 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9-\$_\|\#|^&])', + ), 'OOLANG' => array( 'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*' ) ) ); - -?> \ No newline at end of file diff --git a/inc/geshi/llvm.php b/vendor/easybook/geshi/geshi/llvm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/llvm.php rename to vendor/easybook/geshi/geshi/llvm.php diff --git a/inc/geshi/locobasic.php b/vendor/easybook/geshi/geshi/locobasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/locobasic.php rename to vendor/easybook/geshi/geshi/locobasic.php diff --git a/inc/geshi/logtalk.php b/vendor/easybook/geshi/geshi/logtalk.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/logtalk.php rename to vendor/easybook/geshi/geshi/logtalk.php diff --git a/inc/geshi/lolcode.php b/vendor/easybook/geshi/geshi/lolcode.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lolcode.php rename to vendor/easybook/geshi/geshi/lolcode.php diff --git a/inc/geshi/lotusformulas.php b/vendor/easybook/geshi/geshi/lotusformulas.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lotusformulas.php rename to vendor/easybook/geshi/geshi/lotusformulas.php index 12257d74882079b37a0f14cbacd7a01d92b4a5ec..18d6f7822b563cce5fa63761af204a39ce75d12d --- a/inc/geshi/lotusformulas.php +++ b/vendor/easybook/geshi/geshi/lotusformulas.php @@ -314,5 +314,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 2 ); - -?> diff --git a/inc/geshi/lotusscript.php b/vendor/easybook/geshi/geshi/lotusscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lotusscript.php rename to vendor/easybook/geshi/geshi/lotusscript.php index b8b65f206e9d209908e7a043134d9c4ea32e9877..5d8b6d596af09801c3e91627fe5cfbf6924e3cc8 --- a/inc/geshi/lotusscript.php +++ b/vendor/easybook/geshi/geshi/lotusscript.php @@ -187,5 +187,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 2 ); - -?> diff --git a/inc/geshi/lscript.php b/vendor/easybook/geshi/geshi/lscript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/lscript.php rename to vendor/easybook/geshi/geshi/lscript.php diff --git a/inc/geshi/lsl2.php b/vendor/easybook/geshi/geshi/lsl2.php old mode 100644 new mode 100755 similarity index 67% rename from inc/geshi/lsl2.php rename to vendor/easybook/geshi/geshi/lsl2.php index f80cf4f29f4c74c9137368a71a21b7cc956969bd..dd0bcce8bf2e30397b52c7becd0900760411fb98 --- a/inc/geshi/lsl2.php +++ b/vendor/easybook/geshi/geshi/lsl2.php @@ -9,15 +9,14 @@ * * Linden Scripting Language (LSL2) language file for GeSHi. * - * Data derived and validated against the following: - * http://wiki.secondlife.com/wiki/LSL_Portal - * http://www.lslwiki.net/lslwiki/wakka.php?wakka=HomePage - * http://rpgstats.com/wiki/index.php?title=Main_Page - * * CHANGES * ------- - * 2009/02/05 (1.0.0) + * 2009-02-05 (1.0.0) * - First Release + * 2013-01-01 + * - Modified by Sei Lisa for compatibility with the geshi.py output module + * which is part of the LSL2 Derived Files Generator, available at: + * http://code.google.com/p/lsl-keywords * * TODO (updated 2009/02/05) * ------------------------- @@ -50,6 +49,7 @@ $language_data = array ( 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( +// Generated by LSL2 Derived Files Generator. Database version: 0.0.20130627001; output module version: 0.0.20130619000 1 => array( // flow control 'do', 'else', @@ -65,11 +65,17 @@ $language_data = array ( 'AGENT', 'AGENT_ALWAYS_RUN', 'AGENT_ATTACHMENTS', + 'AGENT_AUTOPILOT', 'AGENT_AWAY', 'AGENT_BUSY', + 'AGENT_BY_LEGACY_NAME', + 'AGENT_BY_USERNAME', 'AGENT_CROUCHING', 'AGENT_FLYING', 'AGENT_IN_AIR', + 'AGENT_LIST_PARCEL', + 'AGENT_LIST_PARCEL_OWNER', + 'AGENT_LIST_REGION', 'AGENT_MOUSELOOK', 'AGENT_ON_OBJECT', 'AGENT_SCRIPTED', @@ -78,6 +84,7 @@ $language_data = array ( 'AGENT_WALKING', 'ALL_SIDES', 'ANIM_ON', + 'ATTACH_AVATAR_CENTER', 'ATTACH_BACK', 'ATTACH_BELLY', 'ATTACH_CHEST', @@ -92,17 +99,18 @@ $language_data = array ( 'ATTACH_HUD_TOP_LEFT', 'ATTACH_HUD_TOP_RIGHT', 'ATTACH_LEAR', + 'ATTACH_LEFT_PEC', 'ATTACH_LEYE', 'ATTACH_LFOOT', 'ATTACH_LHAND', 'ATTACH_LHIP', 'ATTACH_LLARM', 'ATTACH_LLLEG', - 'ATTACH_LPEC', 'ATTACH_LSHOULDER', 'ATTACH_LUARM', 'ATTACH_LULEG', 'ATTACH_MOUTH', + 'ATTACH_NECK', 'ATTACH_NOSE', 'ATTACH_PELVIS', 'ATTACH_REAR', @@ -110,12 +118,15 @@ $language_data = array ( 'ATTACH_RFOOT', 'ATTACH_RHAND', 'ATTACH_RHIP', + 'ATTACH_RIGHT_PEC', 'ATTACH_RLARM', 'ATTACH_RLLEG', - 'ATTACH_RPEC', 'ATTACH_RSHOULDER', 'ATTACH_RUARM', 'ATTACH_RULEG', + 'AVOID_CHARACTERS', + 'AVOID_DYNAMIC_OBSTACLES', + 'AVOID_NONE', 'CAMERA_ACTIVE', 'CAMERA_BEHINDNESS_ANGLE', 'CAMERA_BEHINDNESS_LAG', @@ -134,18 +145,52 @@ $language_data = array ( 'CHANGED_COLOR', 'CHANGED_INVENTORY', 'CHANGED_LINK', + 'CHANGED_MEDIA', 'CHANGED_OWNER', 'CHANGED_REGION', + 'CHANGED_REGION_START', 'CHANGED_SCALE', 'CHANGED_SHAPE', 'CHANGED_TELEPORT', 'CHANGED_TEXTURE', + 'CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES', + 'CHARACTER_AVOIDANCE_MODE', + 'CHARACTER_CMD_JUMP', + 'CHARACTER_CMD_SMOOTH_STOP', + 'CHARACTER_CMD_STOP', + 'CHARACTER_DESIRED_SPEED', + 'CHARACTER_DESIRED_TURN_SPEED', + 'CHARACTER_LENGTH', + 'CHARACTER_MAX_ACCEL', + 'CHARACTER_MAX_DECEL', + 'CHARACTER_MAX_SPEED', + 'CHARACTER_MAX_TURN_RADIUS', + 'CHARACTER_ORIENTATION', + 'CHARACTER_RADIUS', + 'CHARACTER_STAY_WITHIN_PARCEL', + 'CHARACTER_TYPE', + 'CHARACTER_TYPE_A', + 'CHARACTER_TYPE_B', + 'CHARACTER_TYPE_C', + 'CHARACTER_TYPE_D', + 'CHARACTER_TYPE_NONE', + 'CLICK_ACTION_BUY', 'CLICK_ACTION_NONE', 'CLICK_ACTION_OPEN', 'CLICK_ACTION_OPEN_MEDIA', 'CLICK_ACTION_PAY', + 'CLICK_ACTION_PLAY', 'CLICK_ACTION_SIT', 'CLICK_ACTION_TOUCH', + 'CONTENT_TYPE_ATOM', + 'CONTENT_TYPE_FORM', + 'CONTENT_TYPE_HTML', + 'CONTENT_TYPE_JSON', + 'CONTENT_TYPE_LLSD', + 'CONTENT_TYPE_RSS', + 'CONTENT_TYPE_TEXT', + 'CONTENT_TYPE_XHTML', + 'CONTENT_TYPE_XML', 'CONTROL_BACK', 'CONTROL_DOWN', 'CONTROL_FWD', @@ -160,18 +205,38 @@ $language_data = array ( 'DATA_NAME', 'DATA_ONLINE', 'DATA_PAYINFO', - 'DATA_RATING', 'DATA_SIM_POS', 'DATA_SIM_RATING', 'DATA_SIM_STATUS', 'DEBUG_CHANNEL', 'DEG_TO_RAD', + 'DENSITY', 'EOF', + 'ERR_GENERIC', + 'ERR_MALFORMED_PARAMS', + 'ERR_PARCEL_PERMISSIONS', + 'ERR_RUNTIME_PERMISSIONS', + 'ERR_THROTTLED', + 'ESTATE_ACCESS_ALLOWED_AGENT_ADD', + 'ESTATE_ACCESS_ALLOWED_AGENT_REMOVE', + 'ESTATE_ACCESS_ALLOWED_GROUP_ADD', + 'ESTATE_ACCESS_ALLOWED_GROUP_REMOVE', + 'ESTATE_ACCESS_BANNED_AGENT_ADD', + 'ESTATE_ACCESS_BANNED_AGENT_REMOVE', 'FALSE', + 'FORCE_DIRECT_PATH', + 'FRICTION', + 'GCNP_RADIUS', + 'GCNP_STATIC', + 'GRAVITY_MULTIPLIER', + 'HORIZONTAL', 'HTTP_BODY_MAXLENGTH', 'HTTP_BODY_TRUNCATED', + 'HTTP_CUSTOM_HEADER', 'HTTP_METHOD', 'HTTP_MIMETYPE', + 'HTTP_PRAGMA_NO_CACHE', + 'HTTP_VERBOSE_THROTTLE', 'HTTP_VERIFY_CERT', 'INVENTORY_ALL', 'INVENTORY_ANIMATION', @@ -185,11 +250,36 @@ $language_data = array ( 'INVENTORY_SCRIPT', 'INVENTORY_SOUND', 'INVENTORY_TEXTURE', + 'JSON_APPEND', + 'JSON_ARRAY', + 'JSON_FALSE', + 'JSON_INVALID', + 'JSON_NULL', + 'JSON_NUMBER', + 'JSON_OBJECT', + 'JSON_STRING', + 'JSON_TRUE', + 'KFM_CMD_PAUSE', + 'KFM_CMD_PLAY', + 'KFM_CMD_SET_MODE', + 'KFM_CMD_STOP', + 'KFM_COMMAND', + 'KFM_DATA', + 'KFM_FORWARD', + 'KFM_LOOP', + 'KFM_MODE', + 'KFM_PING_PONG', + 'KFM_REVERSE', + 'KFM_ROTATION', + 'KFM_TRANSLATION', + 'LAND_LARGE_BRUSH', 'LAND_LEVEL', 'LAND_LOWER', + 'LAND_MEDIUM_BRUSH', 'LAND_NOISE', 'LAND_RAISE', 'LAND_REVERT', + 'LAND_SMALL_BRUSH', 'LAND_SMOOTH', 'LINK_ALL_CHILDREN', 'LINK_ALL_OTHERS', @@ -213,20 +303,54 @@ $language_data = array ( 'MASK_NEXT', 'MASK_OWNER', 'NULL_KEY', + 'OBJECT_ATTACHED_POINT', + 'OBJECT_CHARACTER_TIME', 'OBJECT_CREATOR', 'OBJECT_DESC', 'OBJECT_GROUP', 'OBJECT_NAME', 'OBJECT_OWNER', + 'OBJECT_PATHFINDING_TYPE', + 'OBJECT_PHANTOM', + 'OBJECT_PHYSICS', + 'OBJECT_PHYSICS_COST', 'OBJECT_POS', + 'OBJECT_PRIM_EQUIVALENCE', + 'OBJECT_RETURN_PARCEL', + 'OBJECT_RETURN_PARCEL_OWNER', + 'OBJECT_RETURN_REGION', + 'OBJECT_ROOT', 'OBJECT_ROT', + 'OBJECT_RUNNING_SCRIPT_COUNT', + 'OBJECT_SCRIPT_MEMORY', + 'OBJECT_SCRIPT_TIME', + 'OBJECT_SERVER_COST', + 'OBJECT_STREAMING_COST', + 'OBJECT_TEMP_ON_REZ', + 'OBJECT_TOTAL_SCRIPT_COUNT', 'OBJECT_UNKNOWN_DETAIL', 'OBJECT_VELOCITY', + 'OPT_AVATAR', + 'OPT_CHARACTER', + 'OPT_EXCLUSION_VOLUME', + 'OPT_LEGACY_LINKSET', + 'OPT_MATERIAL_VOLUME', + 'OPT_OTHER', + 'OPT_STATIC_OBSTACLE', + 'OPT_WALKABLE', + 'PARCEL_COUNT_GROUP', + 'PARCEL_COUNT_OTHER', + 'PARCEL_COUNT_OWNER', + 'PARCEL_COUNT_SELECTED', + 'PARCEL_COUNT_TEMP', + 'PARCEL_COUNT_TOTAL', 'PARCEL_DETAILS_AREA', 'PARCEL_DETAILS_DESC', 'PARCEL_DETAILS_GROUP', + 'PARCEL_DETAILS_ID', 'PARCEL_DETAILS_NAME', 'PARCEL_DETAILS_OWNER', + 'PARCEL_DETAILS_SEE_AVATARS', 'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY', 'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS', 'PARCEL_FLAG_ALLOW_CREATE_OBJECTS', @@ -246,6 +370,7 @@ $language_data = array ( 'PARCEL_MEDIA_COMMAND_AGENT', 'PARCEL_MEDIA_COMMAND_AUTO_ALIGN', 'PARCEL_MEDIA_COMMAND_DESC', + 'PARCEL_MEDIA_COMMAND_LOOP', 'PARCEL_MEDIA_COMMAND_LOOP_SET', 'PARCEL_MEDIA_COMMAND_PAUSE', 'PARCEL_MEDIA_COMMAND_PLAY', @@ -254,8 +379,10 @@ $language_data = array ( 'PARCEL_MEDIA_COMMAND_TEXTURE', 'PARCEL_MEDIA_COMMAND_TIME', 'PARCEL_MEDIA_COMMAND_TYPE', + 'PARCEL_MEDIA_COMMAND_UNLOAD', 'PARCEL_MEDIA_COMMAND_URL', 'PASSIVE', + 'PATROL_PAUSE_AT_WAYPOINTS', 'PAYMENT_INFO_ON_FILE', 'PAYMENT_INFO_USED', 'PAY_DEFAULT', @@ -264,7 +391,11 @@ $language_data = array ( 'PERMISSION_CHANGE_LINKS', 'PERMISSION_CONTROL_CAMERA', 'PERMISSION_DEBIT', + 'PERMISSION_OVERRIDE_ANIMATIONS', + 'PERMISSION_RETURN_OBJECTS', + 'PERMISSION_SILENT_ESTATE_MANAGEMENT', 'PERMISSION_TAKE_CONTROLS', + 'PERMISSION_TELEPORT', 'PERMISSION_TRACK_CAMERA', 'PERMISSION_TRIGGER_ANIMATION', 'PERM_ALL', @@ -273,6 +404,7 @@ $language_data = array ( 'PERM_MOVE', 'PERM_TRANSFER', 'PI', + 'PING_PONG', 'PI_BY_TWO', 'PRIM_BUMP_BARK', 'PRIM_BUMP_BLOBS', @@ -294,39 +426,93 @@ $language_data = array ( 'PRIM_BUMP_WEAVE', 'PRIM_BUMP_WOOD', 'PRIM_COLOR', + 'PRIM_DESC', + 'PRIM_FLEXIBLE', 'PRIM_FULLBRIGHT', + 'PRIM_GLOW', 'PRIM_HOLE_CIRCLE', 'PRIM_HOLE_DEFAULT', 'PRIM_HOLE_SQUARE', 'PRIM_HOLE_TRIANGLE', + 'PRIM_LINK_TARGET', 'PRIM_MATERIAL', 'PRIM_MATERIAL_FLESH', 'PRIM_MATERIAL_GLASS', - 'PRIM_MATERIAL_LIGHT', 'PRIM_MATERIAL_METAL', 'PRIM_MATERIAL_PLASTIC', 'PRIM_MATERIAL_RUBBER', 'PRIM_MATERIAL_STONE', 'PRIM_MATERIAL_WOOD', + 'PRIM_MEDIA_ALT_IMAGE_ENABLE', + 'PRIM_MEDIA_AUTO_LOOP', + 'PRIM_MEDIA_AUTO_PLAY', + 'PRIM_MEDIA_AUTO_SCALE', + 'PRIM_MEDIA_AUTO_ZOOM', + 'PRIM_MEDIA_CONTROLS', + 'PRIM_MEDIA_CONTROLS_MINI', + 'PRIM_MEDIA_CONTROLS_STANDARD', + 'PRIM_MEDIA_CURRENT_URL', + 'PRIM_MEDIA_FIRST_CLICK_INTERACT', + 'PRIM_MEDIA_HEIGHT_PIXELS', + 'PRIM_MEDIA_HOME_URL', + 'PRIM_MEDIA_MAX_HEIGHT_PIXELS', + 'PRIM_MEDIA_MAX_URL_LENGTH', + 'PRIM_MEDIA_MAX_WHITELIST_COUNT', + 'PRIM_MEDIA_MAX_WHITELIST_SIZE', + 'PRIM_MEDIA_MAX_WIDTH_PIXELS', + 'PRIM_MEDIA_PARAM_MAX', + 'PRIM_MEDIA_PERMS_CONTROL', + 'PRIM_MEDIA_PERMS_INTERACT', + 'PRIM_MEDIA_PERM_ANYONE', + 'PRIM_MEDIA_PERM_GROUP', + 'PRIM_MEDIA_PERM_NONE', + 'PRIM_MEDIA_PERM_OWNER', + 'PRIM_MEDIA_WHITELIST', + 'PRIM_MEDIA_WHITELIST_ENABLE', + 'PRIM_MEDIA_WIDTH_PIXELS', + 'PRIM_NAME', + 'PRIM_OMEGA', 'PRIM_PHANTOM', 'PRIM_PHYSICS', + 'PRIM_PHYSICS_SHAPE_CONVEX', + 'PRIM_PHYSICS_SHAPE_NONE', + 'PRIM_PHYSICS_SHAPE_PRIM', + 'PRIM_PHYSICS_SHAPE_TYPE', + 'PRIM_POINT_LIGHT', 'PRIM_POSITION', + 'PRIM_POS_LOCAL', 'PRIM_ROTATION', + 'PRIM_ROT_LOCAL', + 'PRIM_SCULPT_FLAG_INVERT', + 'PRIM_SCULPT_FLAG_MIRROR', + 'PRIM_SCULPT_TYPE_CYLINDER', + 'PRIM_SCULPT_TYPE_MASK', + 'PRIM_SCULPT_TYPE_PLANE', + 'PRIM_SCULPT_TYPE_SPHERE', + 'PRIM_SCULPT_TYPE_TORUS', 'PRIM_SHINY_HIGH', 'PRIM_SHINY_LOW', 'PRIM_SHINY_MEDIUM', 'PRIM_SHINY_NONE', 'PRIM_SIZE', + 'PRIM_SLICE', 'PRIM_TEMP_ON_REZ', + 'PRIM_TEXGEN', + 'PRIM_TEXGEN_DEFAULT', + 'PRIM_TEXGEN_PLANAR', + 'PRIM_TEXT', 'PRIM_TEXTURE', 'PRIM_TYPE', 'PRIM_TYPE_BOX', 'PRIM_TYPE_CYLINDER', 'PRIM_TYPE_PRISM', 'PRIM_TYPE_RING', + 'PRIM_TYPE_SCULPT', 'PRIM_TYPE_SPHERE', 'PRIM_TYPE_TORUS', 'PRIM_TYPE_TUBE', + 'PROFILE_NONE', + 'PROFILE_SCRIPT_MEMORY', 'PSYS_PART_BOUNCE_MASK', 'PSYS_PART_EMISSIVE_MASK', 'PSYS_PART_END_ALPHA', @@ -352,10 +538,8 @@ $language_data = array ( 'PSYS_SRC_BURST_RATE', 'PSYS_SRC_BURST_SPEED_MAX', 'PSYS_SRC_BURST_SPEED_MIN', - 'PSYS_SRC_INNERANGLE', 'PSYS_SRC_MAX_AGE', 'PSYS_SRC_OMEGA', - 'PSYS_SRC_OUTERANGLE', 'PSYS_SRC_PATTERN', 'PSYS_SRC_PATTERN_ANGLE', 'PSYS_SRC_PATTERN_ANGLE_CONE', @@ -364,13 +548,70 @@ $language_data = array ( 'PSYS_SRC_PATTERN_EXPLODE', 'PSYS_SRC_TARGET_KEY', 'PSYS_SRC_TEXTURE', + 'PUBLIC_CHANNEL', + 'PURSUIT_FUZZ_FACTOR', + 'PURSUIT_GOAL_TOLERANCE', + 'PURSUIT_INTERCEPT', + 'PURSUIT_OFFSET', + 'PU_EVADE_HIDDEN', + 'PU_EVADE_SPOTTED', + 'PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED', + 'PU_FAILURE_INVALID_GOAL', + 'PU_FAILURE_INVALID_START', + 'PU_FAILURE_NO_NAVMESH', + 'PU_FAILURE_NO_VALID_DESTINATION', + 'PU_FAILURE_OTHER', + 'PU_FAILURE_PARCEL_UNREACHABLE', + 'PU_FAILURE_TARGET_GONE', + 'PU_FAILURE_UNREACHABLE', + 'PU_GOAL_REACHED', + 'PU_SLOWDOWN_DISTANCE_REACHED', 'RAD_TO_DEG', + 'RCERR_CAST_TIME_EXCEEDED', + 'RCERR_SIM_PERF_LOW', + 'RCERR_UNKNOWN', + 'RC_DATA_FLAGS', + 'RC_DETECT_PHANTOM', + 'RC_GET_LINK_NUM', + 'RC_GET_NORMAL', + 'RC_GET_ROOT_KEY', + 'RC_MAX_HITS', + 'RC_REJECT_AGENTS', + 'RC_REJECT_LAND', + 'RC_REJECT_NONPHYSICAL', + 'RC_REJECT_PHYSICAL', + 'RC_REJECT_TYPES', + 'REGION_FLAG_ALLOW_DAMAGE', + 'REGION_FLAG_ALLOW_DIRECT_TELEPORT', + 'REGION_FLAG_BLOCK_FLY', + 'REGION_FLAG_BLOCK_TERRAFORM', + 'REGION_FLAG_DISABLE_COLLISIONS', + 'REGION_FLAG_DISABLE_PHYSICS', + 'REGION_FLAG_FIXED_SUN', + 'REGION_FLAG_RESTRICT_PUSHOBJECT', + 'REGION_FLAG_SANDBOX', 'REMOTE_DATA_CHANNEL', + 'REMOTE_DATA_REPLY', 'REMOTE_DATA_REQUEST', + 'REQUIRE_LINE_OF_SIGHT', + 'RESTITUTION', + 'REVERSE', + 'ROTATE', + 'SCALE', 'SCRIPTED', + 'SIM_STAT_PCT_CHARS_STEPPED', + 'SMOOTH', 'SQRT2', 'STATUS_BLOCK_GRAB', + 'STATUS_BLOCK_GRAB_OBJECT', + 'STATUS_BOUNDS_ERROR', + 'STATUS_CAST_SHADOWS', 'STATUS_DIE_AT_EDGE', + 'STATUS_INTERNAL_ERROR', + 'STATUS_MALFORMED_PARAMS', + 'STATUS_NOT_FOUND', + 'STATUS_NOT_SUPPORTED', + 'STATUS_OK', 'STATUS_PHANTOM', 'STATUS_PHYSICS', 'STATUS_RETURN_AT_EDGE', @@ -378,8 +619,34 @@ $language_data = array ( 'STATUS_ROTATE_Y', 'STATUS_ROTATE_Z', 'STATUS_SANDBOX', + 'STATUS_TYPE_MISMATCH', + 'STATUS_WHITELIST_FAILED', + 'STRING_TRIM', + 'STRING_TRIM_HEAD', + 'STRING_TRIM_TAIL', + 'TEXTURE_BLANK', + 'TEXTURE_DEFAULT', + 'TEXTURE_MEDIA', + 'TEXTURE_PLYWOOD', + 'TEXTURE_TRANSPARENT', + 'TOUCH_INVALID_FACE', + 'TOUCH_INVALID_TEXCOORD', + 'TOUCH_INVALID_VECTOR', + 'TRAVERSAL_TYPE', + 'TRAVERSAL_TYPE_FAST', + 'TRAVERSAL_TYPE_NONE', + 'TRAVERSAL_TYPE_SLOW', 'TRUE', 'TWO_PI', + 'TYPE_FLOAT', + 'TYPE_INTEGER', + 'TYPE_INVALID', + 'TYPE_KEY', + 'TYPE_ROTATION', + 'TYPE_STRING', + 'TYPE_VECTOR', + 'URL_REQUEST_DENIED', + 'URL_REQUEST_GRANTED', 'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY', 'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE', 'VEHICLE_ANGULAR_FRICTION_TIMESCALE', @@ -419,13 +686,15 @@ $language_data = array ( 'VEHICLE_TYPE_SLED', 'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY', 'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE', + 'VERTICAL', + 'WANDER_PAUSE_AT_WAYPOINTS', 'ZERO_ROTATION', 'ZERO_VECTOR', ), 3 => array( // handlers 'at_rot_target', 'at_target', - 'attached', + 'attach', 'changed', 'collision', 'collision_end', @@ -433,6 +702,7 @@ $language_data = array ( 'control', 'dataserver', 'email', + 'http_request', 'http_response', 'land_collision', 'land_collision_end', @@ -447,6 +717,7 @@ $language_data = array ( 'not_at_target', 'object_rez', 'on_rez', + 'path_update', 'remote_data', 'run_time_permissions', 'sensor', @@ -456,12 +727,14 @@ $language_data = array ( 'touch', 'touch_end', 'touch_start', + 'transaction_result', ), 4 => array( // data types 'float', 'integer', 'key', 'list', + 'quaternion', 'rotation', 'string', 'vector', @@ -480,6 +753,8 @@ $language_data = array ( 'llAsin', 'llAtan2', 'llAttachToAvatar', + 'llAttachToAvatarTemp', + 'llAvatarOnLinkSitTarget', 'llAvatarOnSitTarget', 'llAxes2Rot', 'llAxisAngle2Rot', @@ -487,16 +762,19 @@ $language_data = array ( 'llBase64ToString', 'llBreakAllLinks', 'llBreakLink', + 'llCastRay', 'llCeil', 'llClearCameraParams', + 'llClearLinkMedia', + 'llClearPrimMedia', 'llCloseRemoteDataChannel', - 'llCloud', 'llCollisionFilter', 'llCollisionSound', - 'llCollisionSprite', 'llCos', + 'llCreateCharacter', 'llCreateLink', 'llCSV2List', + 'llDeleteCharacter', 'llDeleteSubList', 'llDeleteSubString', 'llDetachFromAvatar', @@ -524,31 +802,42 @@ $language_data = array ( 'llEmail', 'llEscapeURL', 'llEuler2Rot', + 'llEvade', + 'llExecCharacterCmd', 'llFabs', + 'llFleeFrom', 'llFloor', 'llForceMouselook', 'llFrand', + 'llGenerateKey', 'llGetAccel', 'llGetAgentInfo', 'llGetAgentLanguage', + 'llGetAgentList', 'llGetAgentSize', 'llGetAlpha', 'llGetAndResetTime', 'llGetAnimation', 'llGetAnimationList', + 'llGetAnimationOverride', 'llGetAttached', 'llGetBoundingBox', 'llGetCameraPos', 'llGetCameraRot', 'llGetCenterOfMass', + 'llGetClosestNavPoint', 'llGetColor', 'llGetCreator', 'llGetDate', + 'llGetDisplayName', 'llGetEnergy', + 'llGetEnv', 'llGetForce', 'llGetFreeMemory', + 'llGetFreeURLs', 'llGetGeometricCenter', 'llGetGMTclock', + 'llGetHTTPHeader', 'llGetInventoryCreator', 'llGetInventoryKey', 'llGetInventoryName', @@ -558,13 +847,18 @@ $language_data = array ( 'llGetKey', 'llGetLandOwnerAt', 'llGetLinkKey', + 'llGetLinkMedia', 'llGetLinkName', 'llGetLinkNumber', + 'llGetLinkNumberOfSides', + 'llGetLinkPrimitiveParams', 'llGetListEntryType', 'llGetListLength', 'llGetLocalPos', 'llGetLocalRot', 'llGetMass', + 'llGetMassMKS', + 'llGetMemoryLimit', 'llGetNextEmail', 'llGetNotecardLine', 'llGetNumberOfNotecardLines', @@ -582,12 +876,15 @@ $language_data = array ( 'llGetParcelDetails', 'llGetParcelFlags', 'llGetParcelMaxPrims', + 'llGetParcelMusicURL', 'llGetParcelPrimCount', 'llGetParcelPrimOwners', 'llGetPermissions', 'llGetPermissionsKey', + 'llGetPhysicsMaterial', 'llGetPos', 'llGetPrimitiveParams', + 'llGetPrimMediaParams', 'llGetRegionAgentCount', 'llGetRegionCorner', 'llGetRegionFlags', @@ -600,8 +897,11 @@ $language_data = array ( 'llGetScale', 'llGetScriptName', 'llGetScriptState', + 'llGetSimStats', 'llGetSimulatorHostname', + 'llGetSPMaxMemory', 'llGetStartParameter', + 'llGetStaticPath', 'llGetStatus', 'llGetSubString', 'llGetSunDirection', @@ -614,6 +914,8 @@ $language_data = array ( 'llGetTimestamp', 'llGetTorque', 'llGetUnixTime', + 'llGetUsedMemory', + 'llGetUsername', 'llGetVel', 'llGetWallclock', 'llGiveInventory', @@ -625,13 +927,21 @@ $language_data = array ( 'llGroundRepel', 'llGroundSlope', 'llHTTPRequest', + 'llHTTPResponse', 'llInsertString', 'llInstantMessage', 'llIntegerToBase64', + 'llJson2List', + 'llJsonGetValue', + 'llJsonSetValue', + 'llJsonValueType', 'llKey2Name', + 'llLinkParticleSystem', + 'llLinkSitTarget', 'llList2CSV', 'llList2Float', 'llList2Integer', + 'llList2Json', 'llList2Key', 'llList2List', 'llList2ListStrided', @@ -654,6 +964,7 @@ $language_data = array ( 'llLoopSound', 'llLoopSoundMaster', 'llLoopSoundSlave', + 'llManageEstateAccess', 'llMapDestination', 'llMD5String', 'llMessageLinked', @@ -661,6 +972,7 @@ $language_data = array ( 'llModifyLand', 'llModPow', 'llMoveToTarget', + 'llNavigateTo', 'llOffsetTexture', 'llOpenRemoteDataChannel', 'llOverMyLand', @@ -672,29 +984,39 @@ $language_data = array ( 'llParticleSystem', 'llPassCollisions', 'llPassTouches', + 'llPatrolPoints', 'llPlaySound', 'llPlaySoundSlave', 'llPow', 'llPreloadSound', + 'llPursue', 'llPushObject', 'llRegionSay', + 'llRegionSayTo', 'llReleaseControls', + 'llReleaseURL', 'llRemoteDataReply', - 'llRemoteDataSetRegion', 'llRemoteLoadScriptPin', 'llRemoveFromLandBanList', 'llRemoveFromLandPassList', 'llRemoveInventory', 'llRemoveVehicleFlags', 'llRequestAgentData', + 'llRequestDisplayName', 'llRequestInventoryData', 'llRequestPermissions', + 'llRequestSecureURL', 'llRequestSimulatorData', + 'llRequestURL', + 'llRequestUsername', + 'llResetAnimationOverride', 'llResetLandBanList', 'llResetLandPassList', 'llResetOtherScript', 'llResetScript', 'llResetTime', + 'llReturnObjectsByID', + 'llReturnObjectsByOwner', 'llRezAtRoot', 'llRezObject', 'llRot2Angle', @@ -713,32 +1035,45 @@ $language_data = array ( 'llSay', 'llScaleTexture', 'llScriptDanger', + 'llScriptProfiler', 'llSendRemoteData', 'llSensor', 'llSensorRemove', 'llSensorRepeat', 'llSetAlpha', + 'llSetAngularVelocity', + 'llSetAnimationOverride', 'llSetBuoyancy', 'llSetCameraAtOffset', 'llSetCameraEyeOffset', 'llSetCameraParams', 'llSetClickAction', 'llSetColor', + 'llSetContentType', 'llSetDamage', 'llSetForce', 'llSetForceAndTorque', 'llSetHoverHeight', + 'llSetKeyframedMotion', 'llSetLinkAlpha', + 'llSetLinkCamera', 'llSetLinkColor', + 'llSetLinkMedia', 'llSetLinkPrimitiveParams', + 'llSetLinkPrimitiveParamsFast', 'llSetLinkTexture', + 'llSetLinkTextureAnim', 'llSetLocalRot', + 'llSetMemoryLimit', 'llSetObjectDesc', 'llSetObjectName', 'llSetParcelMusicURL', 'llSetPayPrice', + 'llSetPhysicsMaterial', 'llSetPos', 'llSetPrimitiveParams', + 'llSetPrimMediaParams', + 'llSetRegionPos', 'llSetRemoteScriptAccessPin', 'llSetRot', 'llSetScale', @@ -758,6 +1093,7 @@ $language_data = array ( 'llSetVehicleRotationParam', 'llSetVehicleType', 'llSetVehicleVectorParam', + 'llSetVelocity', 'llSHA1String', 'llShout', 'llSin', @@ -779,32 +1115,57 @@ $language_data = array ( 'llTarget', 'llTargetOmega', 'llTargetRemove', + 'llTeleportAgent', + 'llTeleportAgentGlobalCoords', 'llTeleportAgentHome', + 'llTextBox', 'llToLower', 'llToUpper', + 'llTransferLindenDollars', 'llTriggerSound', 'llTriggerSoundLimited', 'llUnescapeURL', 'llUnSit', + 'llUpdateCharacter', 'llVecDist', 'llVecMag', 'llVecNorm', 'llVolumeDetect', + 'llWanderWithin', 'llWater', 'llWhisper', 'llWind', - 'llXorBase64StringsCorrect', + 'llXorBase64', + 'print', ), 6 => array( // deprecated + 'ATTACH_LPEC', + 'ATTACH_RPEC', + 'DATA_RATING', + 'PERMISSION_CHANGE_JOINTS', + 'PERMISSION_CHANGE_PERMISSIONS', + 'PERMISSION_RELEASE_OWNERSHIP', + 'PERMISSION_REMAP_CONTROLS', + 'PRIM_CAST_SHADOWS', + 'PRIM_MATERIAL_LIGHT', + 'PSYS_SRC_INNERANGLE', + 'PSYS_SRC_OBJ_REL_MASK', + 'PSYS_SRC_OUTERANGLE', + 'VEHICLE_FLAG_NO_FLY_UP', + 'llCloud', 'llMakeExplosion', 'llMakeFire', 'llMakeFountain', 'llMakeSmoke', + 'llRemoteDataSetRegion', 'llSound', 'llSoundPreload', 'llXorBase64Strings', + 'llXorBase64StringsCorrect', ), 7 => array( // unimplemented + 'event', + 'llCollisionSprite', 'llPointAt', 'llRefreshPrimURL', 'llReleaseCamera', @@ -812,7 +1173,6 @@ $language_data = array ( 'llSetPrimURL', 'llStopPointAt', 'llTakeCamera', - 'llTextBox', ), 8 => array( // God mode 'llGodLikeRezObject', @@ -824,9 +1184,9 @@ $language_data = array ( '{', '}', '(', ')', '[', ']', '=', '+', '-', '*', '/', '+=', '-=', '*=', '/=', '++', '--', - '!', '%', '&', '|', '&&', '||', - '==', '!=', '<', '>', '<=', '>=', - '~', '<<', '>>', '^', ':', + '!', '%', '&', '|', '&&', '||', + '==', '!=', '<', '>', '<=', '>=', + '~', '<<', '>>', '^', ':', ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => true, @@ -878,12 +1238,12 @@ $language_data = array ( 'URLS' => array( 1 => '', 2 => '', - 3 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 4 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 5 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 6 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 7 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} - 8 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME} + 3 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 4 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 5 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 6 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 7 => 'http://wiki.secondlife.com/wiki/{FNAME}', + 8 => 'http://wiki.secondlife.com/wiki/{FNAME}', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array(), @@ -895,4 +1255,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); -?> \ No newline at end of file diff --git a/inc/geshi/lua.php b/vendor/easybook/geshi/geshi/lua.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/lua.php rename to vendor/easybook/geshi/geshi/lua.php index 8a09ba20e8fc9ce1aaf09fbafae1a16fdfb5a15c..985cb8c272dad7ed7bafa12b1e19f8cbdc8a8a46 --- a/inc/geshi/lua.php +++ b/vendor/easybook/geshi/geshi/lua.php @@ -173,5 +173,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/m68k.php b/vendor/easybook/geshi/geshi/m68k.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/m68k.php rename to vendor/easybook/geshi/geshi/m68k.php index 98321577b3c927df37a0889b2bfd0ac83114df5f..983c288ecb2c8ea462c6365b1e242e3ba5e3ffd0 --- a/inc/geshi/m68k.php +++ b/vendor/easybook/geshi/geshi/m68k.php @@ -139,5 +139,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 8 ); - -?> diff --git a/inc/geshi/magiksf.php b/vendor/easybook/geshi/geshi/magiksf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/magiksf.php rename to vendor/easybook/geshi/geshi/magiksf.php diff --git a/inc/geshi/make.php b/vendor/easybook/geshi/geshi/make.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/make.php rename to vendor/easybook/geshi/geshi/make.php diff --git a/inc/geshi/mapbasic.php b/vendor/easybook/geshi/geshi/mapbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mapbasic.php rename to vendor/easybook/geshi/geshi/mapbasic.php diff --git a/inc/geshi/matlab.php b/vendor/easybook/geshi/geshi/matlab.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/matlab.php rename to vendor/easybook/geshi/geshi/matlab.php diff --git a/inc/geshi/mirc.php b/vendor/easybook/geshi/geshi/mirc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mirc.php rename to vendor/easybook/geshi/geshi/mirc.php diff --git a/inc/geshi/mmix.php b/vendor/easybook/geshi/geshi/mmix.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mmix.php rename to vendor/easybook/geshi/geshi/mmix.php diff --git a/inc/geshi/modula2.php b/vendor/easybook/geshi/geshi/modula2.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/modula2.php rename to vendor/easybook/geshi/geshi/modula2.php diff --git a/inc/geshi/modula3.php b/vendor/easybook/geshi/geshi/modula3.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/modula3.php rename to vendor/easybook/geshi/geshi/modula3.php diff --git a/inc/geshi/mpasm.php b/vendor/easybook/geshi/geshi/mpasm.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/mpasm.php rename to vendor/easybook/geshi/geshi/mpasm.php index f724a9414d1ea4bbd07699de3fcd00c9f4fe9f13..a0e1ef8fffe6d7151991b07acdef5fd1742ddb9e --- a/inc/geshi/mpasm.php +++ b/vendor/easybook/geshi/geshi/mpasm.php @@ -160,5 +160,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/mxml.php b/vendor/easybook/geshi/geshi/mxml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/mxml.php rename to vendor/easybook/geshi/geshi/mxml.php index 0cc8287a2b1bc67e0baf69e1789a3c09190258aa..60dfe5f32c3159b8dda1445e95f62feabfa6250f --- a/inc/geshi/mxml.php +++ b/vendor/easybook/geshi/geshi/mxml.php @@ -141,5 +141,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/mysql.php b/vendor/easybook/geshi/geshi/mysql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/mysql.php rename to vendor/easybook/geshi/geshi/mysql.php diff --git a/inc/geshi/nagios.php b/vendor/easybook/geshi/geshi/nagios.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/nagios.php rename to vendor/easybook/geshi/geshi/nagios.php index 32cbaef9ecb3b7fe1130992fe3d2be55743820f5..47254311ce541c61cdc4173c604114087ed0b3a3 --- a/inc/geshi/nagios.php +++ b/vendor/easybook/geshi/geshi/nagios.php @@ -221,5 +221,3 @@ $language_data = array( ) ) ); - -?> diff --git a/inc/geshi/netrexx.php b/vendor/easybook/geshi/geshi/netrexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/netrexx.php rename to vendor/easybook/geshi/geshi/netrexx.php index 14a2d23fddcd4fdd13d0f2b35b5d92ed24084991..b038aa4d5198bc5e253ce91bdd31a83f29290255 --- a/inc/geshi/netrexx.php +++ b/vendor/easybook/geshi/geshi/netrexx.php @@ -159,5 +159,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/newlisp.php b/vendor/easybook/geshi/geshi/newlisp.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/newlisp.php rename to vendor/easybook/geshi/geshi/newlisp.php diff --git a/vendor/easybook/geshi/geshi/nginx.php b/vendor/easybook/geshi/geshi/nginx.php new file mode 100644 index 0000000000000000000000000000000000000000..0d4fe3b4f94b9aebbeb5d554c1bc0a11200bc8c0 --- /dev/null +++ b/vendor/easybook/geshi/geshi/nginx.php @@ -0,0 +1,868 @@ +<?php +/************************************************************************************* + * nginx.php + * ------ + * Author: Cliff Wells (cliff@nginx.org) + * Copyright: (c) Cliff Wells (http://wiki.nginx.org/CliffWells) + * Contributors: + * - Deoren Moor (http://www.whyaskwhy.org/blog/) + * - Thomas Joiner + * Release Version: 1.0.8.12 + * Date Started: 2010/08/24 + * + * nginx language file for GeSHi. + * + * Original release found at http://forum.nginx.org/read.php?2,123194,123210 + * + * CHANGES + * ------- + * 2012/08/29 + * - Clean up the duplicate keywords + * + * 2012/08/26 + * - Synchronized with directives listed on wiki/doc pages + * - Misc formatting tweaks and language fixes to pass langcheck + * + * 2010/08/24 + * - First Release + * + * TODO (updated 2012/08/26) + * ------------------------- + * - Verify PARSER_CONTROL items are correct + * - Verify REGEXPS + * - Verify ['STYLES']['REGEXPS'] entries + * + * + ************************************************************************************* + * + * 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' => 'nginx', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( // core module + // http://wiki.nginx.org/CoreModule + // http://nginx.org/en/docs/ngx_core_module.html + 'daemon', + 'debug_points', + 'env', + 'error_log', + 'events', + 'include', + 'lock_file', + 'master_process', + 'pcre_jit', + 'pid', + 'ssl_engine', + 'timer_resolution', + 'user', + 'worker_cpu_affinity', + 'worker_priority', + 'worker_processes', + 'worker_rlimit_core', + 'worker_rlimit_nofile', + 'worker_rlimit_sigpending', + 'working_directory', + // see EventsModule due to organization of wiki + //'accept_mutex', + //'accept_mutex_delay', + //'debug_connection', + //'multi_accept', + //'use', + //'worker_connections', + ), + 2 => array( // events module + // http://wiki.nginx.org/EventsModule + // http://nginx.org/en/docs/ngx_core_module.html + 'accept_mutex', + 'accept_mutex_delay', + 'debug_connection', + 'devpoll_changes', + 'devpoll_events', + 'kqueue_changes', + 'kqueue_events', + 'epoll_events', + 'multi_accept', + 'rtsig_signo', + 'rtsig_overflow_events', + 'rtsig_overflow_test', + 'rtsig_overflow_threshold', + 'use', + 'worker_connections', + ), + 3 => array( // http module + // http://wiki.nginx.org/HttpCoreModule + // http://nginx.org/en/docs/http/ngx_http_core_module.html + 'aio', + 'alias', + 'chunked_transfer_encoding', + 'client_body_buffer_size', + 'client_body_in_file_only', + 'client_body_in_single_buffer', + 'client_body_temp_path', + 'client_body_timeout', + 'client_header_buffer_size', + 'client_header_timeout', + 'client_max_body_size', + 'connection_pool_size', + 'default_type', + 'directio', + 'directio_alignment', + 'disable_symlinks', + 'error_page', + 'etag', + 'http', + 'if_modified_since', + 'ignore_invalid_headers', + 'internal', + 'keepalive_disable', + 'keepalive_requests', + 'keepalive_timeout', + 'large_client_header_buffers', + 'limit_except', + 'limit_rate', + 'limit_rate_after', + 'lingering_close', + 'lingering_time', + 'lingering_timeout', + 'listen', + 'location', + 'log_not_found', + 'log_subrequest', + 'max_ranges', + 'merge_slashes', + 'msie_padding', + 'msie_refresh', + 'open_file_cache', + 'open_file_cache_errors', + 'open_file_cache_min_uses', + 'open_file_cache_valid', + 'optimize_server_names', + 'port_in_redirect', + 'postpone_output', + 'read_ahead', + 'recursive_error_pages', + 'request_pool_size', + 'reset_timedout_connection', + 'resolver', + 'resolver_timeout', + 'root', + 'satisfy', + 'satisfy_any', + 'send_lowat', + 'send_timeout', + 'sendfile', + 'sendfile_max_chunk', + 'server', + 'server_name', + 'server_name_in_redirect', + 'server_names_hash_bucket_size', + 'server_names_hash_max_size', + 'server_tokens', + 'tcp_nodelay', + 'tcp_nopush', + 'try_files', + 'types', + 'types_hash_bucket_size', + 'types_hash_max_size', + 'underscores_in_headers', + 'variables_hash_bucket_size', + 'variables_hash_max_size', + ), + 4 => array( // upstream module + // http://wiki.nginx.org/HttpUpstreamModule + // http://nginx.org/en/docs/http/ngx_http_upstream_module.html + 'ip_hash', + 'keepalive', + 'least_conn', + // Use the documentation from the core module since every conf will have at least one of those. + //'server', + 'upstream', + ), + 5 => array( // access module + // http://wiki.nginx.org/HttpAccessModule + // http://nginx.org/en/docs/http/ngx_http_access_module.html + 'deny', + 'allow', + ), + 6 => array( // auth basic module + // http://wiki.nginx.org/HttpAuthBasicModule + // http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html + 'auth_basic', + 'auth_basic_user_file' + ), + 7 => array( // auto index module + // http://wiki.nginx.org/HttpAutoindexModule + // http://nginx.org/en/docs/http/ngx_http_autoindex_module.html + 'autoindex', + 'autoindex_exact_size', + 'autoindex_localtime', + ), + 8 => array( // browser module + // http://wiki.nginx.org/HttpBrowserModule + // http://nginx.org/en/docs/http/ngx_http_browser_module.html + 'ancient_browser', + 'ancient_browser_value', + 'modern_browser', + 'modern_browser_value', + ), + 9 => array( // charset module + // http://wiki.nginx.org/HttpCharsetModule + // http://nginx.org/en/docs/http/ngx_http_charset_module.html + 'charset', + 'charset_map', + 'charset_types', + 'override_charset', + 'source_charset', + ), + 10 => array( // empty gif module + // http://wiki.nginx.org/HttpEmptyGifModule + // http://nginx.org/en/docs/http/ngx_http_empty_gif_module.html + 'empty_gif', + ), + 11 => array( // fastcgi module + // http://wiki.nginx.org/HttpFastcgiModule + // http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html + 'fastcgi_bind', + 'fastcgi_buffer_size', + 'fastcgi_buffers', + 'fastcgi_busy_buffers_size', + 'fastcgi_cache', + 'fastcgi_cache_bypass', + 'fastcgi_cache_key', + 'fastcgi_cache_lock', + 'fastcgi_cache_lock_timeout', + 'fastcgi_cache_methods', + 'fastcgi_cache_min_uses', + 'fastcgi_cache_path', + 'fastcgi_cache_use_stale', + 'fastcgi_cache_valid', + 'fastcgi_connect_timeout', + 'fastcgi_hide_header', + 'fastcgi_ignore_client_abort', + 'fastcgi_ignore_headers', + 'fastcgi_index', + 'fastcgi_intercept_errors', + 'fastcgi_keep_conn', + 'fastcgi_max_temp_file_size', + 'fastcgi_next_upstream', + 'fastcgi_no_cache', + 'fastcgi_param', + 'fastcgi_pass', + 'fastcgi_pass_header', + 'fastcgi_pass_request_body', + 'fastcgi_pass_request_headers', + 'fastcgi_read_timeout', + 'fastcgi_redirect_errors', + 'fastcgi_send_timeout', + 'fastcgi_split_path_info', + 'fastcgi_store', + 'fastcgi_store_access', + 'fastcgi_temp_file_write_size', + 'fastcgi_temp_path', + ), + 12 => array( // geo module + // http://wiki.nginx.org/HttpGeoModule + // http://nginx.org/en/docs/http/ngx_http_geo_module.html + 'geo' + ), + 13 => array( // gzip module + // http://wiki.nginx.org/HttpGzipModule + // http://nginx.org/en/docs/http/ngx_http_gzip_module.html + 'gzip', + 'gzip_buffers', + 'gzip_comp_level', + 'gzip_disable', + 'gzip_min_length', + 'gzip_http_version', + 'gzip_proxied', + 'gzip_types', + 'gzip_vary', + ), + 14 => array( // headers module + // http://wiki.nginx.org/HttpHeadersModule + // http://nginx.org/en/docs/http/ngx_http_headers_module.html + 'add_header', + 'expires', + ), + 15 => array( // index module + // http://wiki.nginx.org/HttpIndexModule + // http://nginx.org/en/docs/http/ngx_http_index_module.html + 'index', + ), + 16 => array( // limit requests module + // http://wiki.nginx.org/HttpLimitReqModule + // http://nginx.org/en/docs/http/ngx_http_limit_req_module.html + 'limit_req', + 'limit_req_log_level', + 'limit_req_zone', + ), + 17 => array( // referer module + // http://wiki.nginx.org/HttpRefererModule + // http://nginx.org/en/docs/http/ngx_http_referer_module.html + 'referer_hash_bucket_size', + 'referer_hash_max_size', + 'valid_referers', + ), + 18 => array( // limit zone module + // deprecated in 1.1.8 + // http://wiki.nginx.org/HttpLimitZoneModule + 'limit_zone', + // Covered by documentation for ngx_http_limit_conn_module + //'limit_conn', + ), + 19 => array( // limit connection module + // http://wiki.nginx.org/HttpLimitConnModule + // http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html + 'limit_conn', + 'limit_conn_zone', + 'limit_conn_log_level', + ), + 20 => array( // log module + // http://wiki.nginx.org/HttpLogModule + // http://nginx.org/en/docs/http/ngx_http_log_module.html + 'access_log', + 'log_format', + // Appears to be deprecated + 'log_format_combined', + 'open_log_file_cache', + ), + 21 => array( // map module + // http://wiki.nginx.org/HttpMapModule + // http://nginx.org/en/docs/http/ngx_http_map_module.html + 'map', + 'map_hash_max_size', + 'map_hash_bucket_size', + ), + 22 => array( // memcached module + // http://wiki.nginx.org/HttpMemcachedModule + // http://nginx.org/en/docs/http/ngx_http_memcached_module.html + 'memcached_buffer_size', + 'memcached_connect_timeout', + 'memcached_next_upstream', + 'memcached_pass', + 'memcached_read_timeout', + 'memcached_send_timeout', + ), + 23 => array( // proxy module + // http://wiki.nginx.org/HttpProxyModule + // http://nginx.org/en/docs/http/ngx_http_proxy_module.html + 'proxy_bind', + 'proxy_buffer_size', + 'proxy_buffering', + 'proxy_buffers', + 'proxy_busy_buffers_size', + 'proxy_cache', + 'proxy_cache_bypass', + 'proxy_cache_key', + 'proxy_cache_lock', + 'proxy_cache_lock_timeout', + 'proxy_cache_methods', + 'proxy_cache_min_uses', + 'proxy_cache_path', + 'proxy_cache_use_stale', + 'proxy_cache_valid', + 'proxy_connect_timeout', + 'proxy_cookie_domain', + 'proxy_cookie_path', + 'proxy_headers_hash_bucket_size', + 'proxy_headers_hash_max_size', + 'proxy_hide_header', + 'proxy_http_version', + 'proxy_ignore_client_abort', + 'proxy_ignore_headers', + 'proxy_intercept_errors', + 'proxy_max_temp_file_size', + 'proxy_method', + 'proxy_next_upstream', + 'proxy_no_cache', + 'proxy_pass', + 'proxy_pass_header', + 'proxy_pass_request_body', + 'proxy_pass_request_headers', + 'proxy_redirect', + 'proxy_read_timeout', + 'proxy_redirect_errors', + 'proxy_send_lowat', + 'proxy_send_timeout', + 'proxy_set_body', + 'proxy_set_header', + 'proxy_ssl_session_reuse', + 'proxy_store', + 'proxy_store_access', + 'proxy_temp_file_write_size', + 'proxy_temp_path', + 'proxy_upstream_fail_timeout', + 'proxy_upstream_max_fails', + ), + 24 => array( // rewrite module + // http://wiki.nginx.org/HttpRewriteModule + // http://nginx.org/en/docs/http/ngx_http_rewrite_module.html + 'break', + 'if', + 'return', + 'rewrite', + 'rewrite_log', + 'set', + 'uninitialized_variable_warn', + ), + 25 => array( // ssi module + // http://wiki.nginx.org/HttpSsiModule + // http://nginx.org/en/docs/http/ngx_http_ssi_module.html + 'ssi', + 'ssi_silent_errors', + 'ssi_types', + 'ssi_value_length', + ), + 26 => array( // user id module + // http://wiki.nginx.org/HttpUseridModule + // http://nginx.org/en/docs/http/ngx_http_userid_module.html + 'userid', + 'userid_domain', + 'userid_expires', + 'userid_name', + 'userid_p3p', + 'userid_path', + 'userid_service', + ), + 27 => array( // addition module + // http://wiki.nginx.org/HttpAdditionModule + // http://nginx.org/en/docs/http/ngx_http_addition_module.html + 'add_before_body', + 'add_after_body', + 'addition_types', + ), + 28 => array( // embedded Perl module + // http://wiki.nginx.org/HttpPerlModule + // http://nginx.org/en/docs/http/ngx_http_perl_module.html + 'perl', + 'perl_modules', + 'perl_require', + 'perl_set', + ), + 29 => array( // flash video files module + // http://wiki.nginx.org/HttpFlvModule + // http://nginx.org/en/docs/http/ngx_http_flv_module.html + 'flv', + ), + 30 => array( // gzip precompression module + // http://wiki.nginx.org/HttpGzipStaticModule + // http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html + 'gzip_static', + // Removed to remove duplication with ngx_http_gzip_module + //'gzip_http_version', + //'gzip_proxied', + //'gzip_disable', + //'gzip_vary', + ), + 31 => array( // random index module + // http://wiki.nginx.org/HttpRandomIndexModule + // http://nginx.org/en/docs/http/ngx_http_random_index_module.html + 'random_index', + ), + 32 => array( // real ip module + // http://wiki.nginx.org/HttpRealipModule + // http://nginx.org/en/docs/http/ngx_http_realip_module.html + 'set_real_ip_from', + 'real_ip_header', + 'real_ip_recursive', + ), + 33 => array( // https module + // http://wiki.nginx.org/HttpSslModule + // http://nginx.org/en/docs/http/ngx_http_ssl_module.html + 'ssl', + 'ssl_certificate', + 'ssl_certificate_key', + 'ssl_ciphers', + 'ssl_client_certificate', + 'ssl_crl', + 'ssl_dhparam', + // Use the documentation for the core module since it links to the + // original properly + //'ssl_engine', + 'ssl_prefer_server_ciphers', + 'ssl_protocols', + 'ssl_session_cache', + 'ssl_session_timeout', + 'ssl_verify_client', + 'ssl_verify_depth', + ), + 34 => array( // status module + // http://wiki.nginx.org/HttpStubStatusModule + 'stub_status', + ), + 35 => array( // substitution module + // http://wiki.nginx.org/HttpSubModule + // http://nginx.org/en/docs/http/ngx_http_sub_module.html + 'sub_filter', + 'sub_filter_once', + 'sub_filter_types', + ), + 36 => array( // NginxHttpDavModule + // http://wiki.nginx.org/HttpDavModule + // http://nginx.org/en/docs/http/ngx_http_dav_module.html + 'dav_access', + 'dav_methods', + 'create_full_put_path', + 'min_delete_depth', + ), + 37 => array( // Google performance tools module + // http://wiki.nginx.org/GooglePerftoolsModule + 'google_perftools_profiles', + ), + 38 => array( // xslt module + // http://wiki.nginx.org/HttpXsltModule + // http://nginx.org/en/docs/http/ngx_http_xslt_module.html + 'xslt_entities', + 'xslt_param', + 'xslt_string_param', + 'xslt_stylesheet', + 'xslt_types', + ), + 39 => array( // uWSGI module + // http://wiki.nginx.org/HttpUwsgiModule + 'uwsgi_bind', + 'uwsgi_buffer_size', + 'uwsgi_buffering', + 'uwsgi_buffers', + 'uwsgi_busy_buffers_size', + 'uwsgi_cache', + 'uwsgi_cache_bypass', + 'uwsgi_cache_key', + 'uwsgi_cache_lock', + 'uwsgi_cache_lock_timeout', + 'uwsgi_cache_methods', + 'uwsgi_cache_min_uses', + 'uwsgi_cache_path', + 'uwsgi_cache_use_stale', + 'uwsgi_cache_valid', + 'uwsgi_connect_timeout', + 'uwsgi_hide_header', + 'uwsgi_ignore_client_abort', + 'uwsgi_ignore_headers', + 'uwsgi_intercept_errors', + 'uwsgi_max_temp_file_size', + 'uwsgi_modifier', + 'uwsgi_next_upstream', + 'uwsgi_no_cache', + 'uwsgi_param', + 'uwsgi_pass', + 'uwsgi_pass_header', + 'uwsgi_pass_request_body', + 'uwsgi_pass_request_headers', + 'uwsgi_read_timeout', + 'uwsgi_send_timeout', + 'uwsgi_store', + 'uwsgi_store_access', + 'uwsgi_string', + 'uwsgi_temp_file_write_size', + 'uwsgi_temp_path', + ), + 40 => array( // SCGI module + // http://wiki.nginx.org/HttpScgiModule + // Note: These directives were pulled from nginx 1.2.3 + // ngx_http_scgi_module.c source file. + 'scgi_bind', + 'scgi_buffering', + 'scgi_buffers', + 'scgi_buffer_size', + 'scgi_busy_buffers_size', + 'scgi_cache', + 'scgi_cache_bypass', + 'scgi_cache_key', + 'scgi_cache_lock', + 'scgi_cache_lock_timeout', + 'scgi_cache_methods', + 'scgi_cache_min_uses', + 'scgi_cache_path', + 'scgi_cache_use_stale', + 'scgi_cache_valid', + 'scgi_connect_timeout', + 'scgi_hide_header', + 'scgi_ignore_client_abort', + 'scgi_ignore_headers', + 'scgi_intercept_errors', + 'scgi_max_temp_file_size', + 'scgi_next_upstream', + 'scgi_no_cache', + 'scgi_param', + 'scgi_pass', + 'scgi_pass_header', + 'scgi_pass_request_body', + 'scgi_pass_request_headers', + 'scgi_read_timeout', + 'scgi_send_timeout', + 'scgi_store', + 'scgi_store_access', + 'scgi_temp_file_write_size', + 'scgi_temp_path', + ), + 41 => array( // split clients module + // http://wiki.nginx.org/HttpSplitClientsModule + // http://nginx.org/en/docs/http/ngx_http_split_clients_module.html + 'split_clients', + ), + 42 => array( // X-Accel module + // http://wiki.nginx.org/X-accel + 'X-Accel-Redirect', + 'X-Accel-Buffering', + 'X-Accel-Charset', + 'X-Accel-Expires', + 'X-Accel-Limit-Rate', + ), + 43 => array( // degradation module + // http://wiki.nginx.org/HttpDegradationModule + 'degradation', + 'degrade', + ), + 44 => array( // GeoIP module + // http://wiki.nginx.org/HttpGeoipModule + // http://nginx.org/en/docs/http/ngx_http_geoip_module.html + 'geoip_country', + 'geoip_city', + 'geoip_proxy', + 'geoip_proxy_recursive', + ), + 45 => array( // Image filter module + // http://wiki.nginx.org/HttpImageFilterModule + // http://nginx.org/en/docs/http/ngx_http_image_filter_module.html + 'image_filter', + 'image_filter_buffer', + 'image_filter_jpeg_quality', + 'image_filter_sharpen', + 'image_filter_transparency', + ), + 46 => array( // MP4 module + // http://wiki.nginx.org/HttpMp4Module + // http://nginx.org/en/docs/http/ngx_http_mp4_module.html + 'mp4', + 'mp4_buffer_size', + 'mp4_max_buffer_size', + ), + 47 => array( // Secure Link module + // http://wiki.nginx.org/HttpSecureLinkModule + // http://nginx.org/en/docs/http/ngx_http_secure_link_module.html + 'secure_link', + 'secure_link_md', + 'secure_link_secret', + ), + 48 => array( // Mail Core module + // http://wiki.nginx.org/MailCoreModule + 'auth', + 'imap_capabilities', + 'imap_client_buffer', + 'pop_auth', + 'pop_capabilities', + 'protocol', + 'smtp_auth', + 'smtp_capabilities', + 'so_keepalive', + 'timeout', + // Removed to prioritize documentation for core module + //'listen', + //'server', + //'server_name', + ), + 49 => array( // Mail Auth module + // http://wiki.nginx.org/MailAuthModule + 'auth_http', + 'auth_http_header', + 'auth_http_timeout', + ), + 50 => array( // Mail Proxy module + // http://wiki.nginx.org/MailProxyModule + 'proxy', + 'proxy_buffer', + 'proxy_pass_error_message', + 'proxy_timeout', + 'xclient', + ), + 51 => array( // Mail SSL module + // http://wiki.nginx.org/MailSslModule + // Removed to prioritize documentation for http + //'ssl', + //'ssl_certificate', + //'ssl_certificate_key', + //'ssl_ciphers', + //'ssl_prefer_server_ciphers', + //'ssl_protocols', + //'ssl_session_cache', + //'ssl_session_timeout', + 'starttls', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '=', '~', ';' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + 9 => true, + 10 => true, + 11 => true, + 12 => true, + 13 => true, + 14 => true, + 15 => true, + 16 => true, + 17 => true, + 18 => true, + 19 => true, + 20 => true, + 21 => true, + 22 => true, + 23 => true, + 24 => true, + 25 => true, + 26 => true, + 27 => true, + 28 => true, + 29 => true, + 30 => true, + 31 => true, + 32 => true, + 33 => true, + 34 => true, + 35 => true, + 36 => true, + 37 => true, + 38 => true, + 39 => true, + 40 => true, + 41 => true, + 42 => true, + 43 => true, + 44 => true, + 45 => true, + 46 => true, + 47 => true, + 48 => true, + 49 => true, + 50 => true, + 51 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;' + ), + '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( + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + 0 => 'color: #000066;', + 4 => 'color: #000000; font-weight: bold;', + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => 'http://wiki.nginx.org/CoreModule#{FNAME}', + 2 => 'http://wiki.nginx.org/NginxHttpEventsModule#{FNAME}', + 3 => 'http://wiki.nginx.org/NginxHttpCoreModule#{FNAME}', + 4 => 'http://wiki.nginx.org/NginxHttpUpstreamModule#{FNAME}', + 5 => 'http://wiki.nginx.org/NginxHttpAccessModule#{FNAME}', + 6 => 'http://wiki.nginx.org/NginxHttpAuthBasicModule#{FNAME}', + 7 => 'http://wiki.nginx.org/NginxHttpAutoIndexModule#{FNAME}', + 8 => 'http://wiki.nginx.org/NginxHttpBrowserModule#{FNAME}', + 9 => 'http://wiki.nginx.org/NginxHttpCharsetModule#{FNAME}', + 10 => 'http://wiki.nginx.org/NginxHttpEmptyGifModule#{FNAME}', + 11 => 'http://wiki.nginx.org/NginxHttpFcgiModule#{FNAME}', + 12 => 'http://wiki.nginx.org/NginxHttpGeoModule#{FNAME}', + 13 => 'http://wiki.nginx.org/NginxHttpGzipModule#{FNAME}', + 14 => 'http://wiki.nginx.org/NginxHttpHeadersModule#{FNAME}', + 15 => 'http://wiki.nginx.org/NginxHttpIndexModule#{FNAME}', + 16 => 'http://wiki.nginx.org/HttpLimitReqModule#{FNAME}', + 17 => 'http://wiki.nginx.org/NginxHttpRefererModule#{FNAME}', + 18 => 'http://wiki.nginx.org/NginxHttpLimitZoneModule#{FNAME}', + 19 => 'http://wiki.nginx.org/HttpLimitConnModule#{FNAME}', + 20 => 'http://wiki.nginx.org/NginxHttpLogModule#{FNAME}', + 21 => 'http://wiki.nginx.org/NginxHttpMapModule#{FNAME}', + 22 => 'http://wiki.nginx.org/NginxHttpMemcachedModule#{FNAME}', + 23 => 'http://wiki.nginx.org/NginxHttpProxyModule#{FNAME}', + 24 => 'http://wiki.nginx.org/NginxHttpRewriteModule#{FNAME}', + 25 => 'http://wiki.nginx.org/NginxHttpSsiModule#{FNAME}', + 26 => 'http://wiki.nginx.org/NginxHttpUserIdModule#{FNAME}', + 27 => 'http://wiki.nginx.org/NginxHttpAdditionModule#{FNAME}', + 28 => 'http://wiki.nginx.org/NginxHttpEmbeddedPerlModule#{FNAME}', + 29 => 'http://wiki.nginx.org/NginxHttpFlvStreamModule#{FNAME}', + 30 => 'http://wiki.nginx.org/NginxHttpGzipStaticModule#{FNAME}', + 31 => 'http://wiki.nginx.org/NginxHttpRandomIndexModule#{FNAME}', + 32 => 'http://wiki.nginx.org/NginxHttpRealIpModule#{FNAME}', + 33 => 'http://wiki.nginx.org/NginxHttpSslModule#{FNAME}', + 34 => 'http://wiki.nginx.org/NginxHttpStubStatusModule#{FNAME}', + 35 => 'http://wiki.nginx.org/NginxHttpSubModule#{FNAME}', + 36 => 'http://wiki.nginx.org/NginxHttpDavModule#{FNAME}', + 37 => 'http://wiki.nginx.org/NginxHttpGooglePerfToolsModule#{FNAME}', + 38 => 'http://wiki.nginx.org/NginxHttpXsltModule#{FNAME}', + 39 => 'http://wiki.nginx.org/NginxHttpUwsgiModule#{FNAME}', + 40 => 'http://wiki.nginx.org/HttpScgiModule', + 41 => 'http://wiki.nginx.org/HttpSplitClientsModule#{FNAME}', + 42 => 'http://wiki.nginx.org/X-accel#{FNAME}', + 43 => 'http://wiki.nginx.org/HttpDegradationModule#{FNAME}', + 44 => 'http://wiki.nginx.org/HttpGeoipModule#{FNAME}', + 45 => 'http://wiki.nginx.org/HttpImageFilterModule#{FNAME}', + 46 => 'http://wiki.nginx.org/HttpMp4Module#{FNAME}', + 47 => 'http://wiki.nginx.org/HttpSecureLinkModule#{FNAME}', + 48 => 'http://wiki.nginx.org/MailCoreModule#{FNAME}', + 49 => 'http://wiki.nginx.org/MailAuthModule#{FNAME}', + 50 => 'http://wiki.nginx.org/MailProxyModule#{FNAME}', + 51 => 'http://wiki.nginx.org/MailSslModule#{FNAME}', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*', + 4 => '<[a-zA-Z_][a-zA-Z0-9_]*>', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/nsis.php b/vendor/easybook/geshi/geshi/nsis.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/nsis.php rename to vendor/easybook/geshi/geshi/nsis.php index 35df9b4b8113daf38271420215b734daf7b2055e..29ba952b4aecdfa99772e11c9988d67004a4cbcd --- a/inc/geshi/nsis.php +++ b/vendor/easybook/geshi/geshi/nsis.php @@ -347,5 +347,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oberon2.php b/vendor/easybook/geshi/geshi/oberon2.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oberon2.php rename to vendor/easybook/geshi/geshi/oberon2.php diff --git a/inc/geshi/objc.php b/vendor/easybook/geshi/geshi/objc.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/objc.php rename to vendor/easybook/geshi/geshi/objc.php index 2f5162d76f69e000404631905b3d6bf08a74546a..52576c16a547ca01d19ff42e4446c0eb2683458b --- a/inc/geshi/objc.php +++ b/vendor/easybook/geshi/geshi/objc.php @@ -354,5 +354,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/objeck.php b/vendor/easybook/geshi/geshi/objeck.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/objeck.php rename to vendor/easybook/geshi/geshi/objeck.php diff --git a/inc/geshi/ocaml-brief.php b/vendor/easybook/geshi/geshi/ocaml-brief.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/ocaml-brief.php rename to vendor/easybook/geshi/geshi/ocaml-brief.php index b518adf8775016f46f92410fb5ad7f9284ac73bc..c5fee2feca83cb939a28e2ef595bd66a116fbe18 --- a/inc/geshi/ocaml-brief.php +++ b/vendor/easybook/geshi/geshi/ocaml-brief.php @@ -108,5 +108,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/ocaml.php b/vendor/easybook/geshi/geshi/ocaml.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ocaml.php rename to vendor/easybook/geshi/geshi/ocaml.php diff --git a/inc/geshi/octave.php b/vendor/easybook/geshi/geshi/octave.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/octave.php rename to vendor/easybook/geshi/geshi/octave.php index ccffcd97aa466070464f06b225428b52d1193ac4..7bab9b1389c865a557d38ac1ac61d5ecfeb1054b --- a/inc/geshi/octave.php +++ b/vendor/easybook/geshi/geshi/octave.php @@ -511,5 +511,3 @@ $language_data = array ( 'SCRIPT' => array(), ) ); - -?> diff --git a/inc/geshi/oobas.php b/vendor/easybook/geshi/geshi/oobas.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oobas.php rename to vendor/easybook/geshi/geshi/oobas.php index ff75af65f3b376be3c4b9b85e88c4d16816910bc..25c345bbb9601b7b5c952e261cc3d61d3b5e1873 --- a/inc/geshi/oobas.php +++ b/vendor/easybook/geshi/geshi/oobas.php @@ -131,5 +131,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oorexx.php b/vendor/easybook/geshi/geshi/oorexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oorexx.php rename to vendor/easybook/geshi/geshi/oorexx.php index 62c6cc46341c8333140956df66828037184fdb54..15cdd92e7cf14a8bc45a9a74a7e2d456d1967a13 --- a/inc/geshi/oorexx.php +++ b/vendor/easybook/geshi/geshi/oorexx.php @@ -167,5 +167,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/oracle11.php b/vendor/easybook/geshi/geshi/oracle11.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oracle11.php rename to vendor/easybook/geshi/geshi/oracle11.php index 16259e6953065675a0dd992371e644ff615e85b4..97b147f5d188192c2e4047ae395f0d173a1c5360 --- a/inc/geshi/oracle11.php +++ b/vendor/easybook/geshi/geshi/oracle11.php @@ -610,5 +610,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oracle8.php b/vendor/easybook/geshi/geshi/oracle8.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/oracle8.php rename to vendor/easybook/geshi/geshi/oracle8.php index 145bda407751b48350cffaaded565459f4fbd8b6..b49390806c646451ad094dd7c989d409f8dfc132 --- a/inc/geshi/oracle8.php +++ b/vendor/easybook/geshi/geshi/oracle8.php @@ -492,5 +492,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/oxygene.php b/vendor/easybook/geshi/geshi/oxygene.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oxygene.php rename to vendor/easybook/geshi/geshi/oxygene.php diff --git a/inc/geshi/oz.php b/vendor/easybook/geshi/geshi/oz.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/oz.php rename to vendor/easybook/geshi/geshi/oz.php diff --git a/inc/geshi/parasail.php b/vendor/easybook/geshi/geshi/parasail.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/parasail.php rename to vendor/easybook/geshi/geshi/parasail.php diff --git a/vendor/easybook/geshi/geshi/parigp.php b/vendor/easybook/geshi/geshi/parigp.php new file mode 100755 index 0000000000000000000000000000000000000000..1a5d4a73ec5c5467293da2beebec5783dddc918d --- /dev/null +++ b/vendor/easybook/geshi/geshi/parigp.php @@ -0,0 +1,293 @@ +<?php +/************************************************************************************* + * parigp.php + * -------- + * Author: Charles R Greathouse IV (charles@crg4.com) + * Copyright: 2011-2013 Charles R Greathouse IV (http://math.crg4.com/) + * Release Version: 1.0.8.12 + * Date Started: 2011/05/11 + * + * PARI/GP language file for GeSHi. + * + * CHANGES + * ------- + * 2011/07/09 (1.0.8.11) + * - First Release + * 2013/02/05 (1.0.8.12) + * - Added 2.6.0 commands, default, member functions, and error-handling + * + * TODO (updated 2011/07/09) + * ------------------------- + * + * + ************************************************************************************* + * + * 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' => 'PARI/GP', + 'COMMENT_SINGLE' => array(1 => '\\\\'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => array( + # Integers + 1 => GESHI_NUMBER_INT_BASIC, + # Reals + 2 => GESHI_NUMBER_FLT_SCI_ZERO + ), + 'KEYWORDS' => array( + 1 => array( + 'abs','acos','acosh','addhelp','addprimes','agm','alarm','algdep', + 'alias','allocatemem','apply','arg','asin','asinh','atan','atanh', + 'bernfrac','bernpol','bernreal','bernvec','besselh1','besselh2', + 'besseli','besselj','besseljh','besselk','besseln','bestappr', + 'bestapprPade','bezout','bezoutres','bigomega','binary','binomial', + 'bitand','bitneg','bitnegimply','bitor','bittest','bitxor', + 'bnfcertify','bnfcompress','bnfdecodemodule','bnfinit', + 'bnfisintnorm','bnfisnorm','bnfisprincipal','bnfissunit', + 'bnfisunit','bnfnarrow','bnfsignunit','bnfsunit','bnrclassno', + 'bnrclassnolist','bnrconductor','bnrconductorofchar','bnrdisc', + 'bnrdisclist','bnrinit','bnrisconductor','bnrisprincipal','bnrL1', + 'bnrrootnumber','bnrstark','break','breakpoint','Catalan','ceil', + 'centerlift','charpoly','chinese','cmp','Col','component','concat', + 'conj','conjvec','content','contfrac','contfracpnqn','core', + 'coredisc','cos','cosh','cotan','dbg_down','dbg_err','dbg_up', + 'dbg_x','default','denominator','deriv','derivnum','diffop', + 'digits','dilog','dirdiv','direuler','dirmul','dirzetak','divisors', + 'divrem','eint1','elladd','ellak','ellan','ellanalyticrank','ellap', + 'ellbil','ellcard','ellchangecurve','ellchangepoint', + 'ellconvertname','elldivpol','elleisnum','elleta','ellffinit', + 'ellfromj','ellgenerators','ellglobalred','ellgroup','ellheegner', + 'ellheight','ellheightmatrix','ellidentify','ellinit', + 'ellisoncurve','ellj','ellL1','elllocalred','elllog','elllseries', + 'ellminimalmodel','ellmodulareqn','ellmul','ellneg','ellorder', + 'ellordinate','ellpointtoz','ellrootno','ellsearch','ellsigma', + 'ellsub','elltaniyama','elltatepairing','elltors','ellweilpairing', + 'ellwp','ellzeta','ellztopoint','erfc','errname','error','eta','Euler', + 'eulerphi','eval','exp','extern','externstr','factor','factorback', + 'factorcantor','factorff','factorial','factorint','factormod', + 'factornf','factorpadic','ffgen','ffinit','fflog','ffnbirred', + 'fforder','ffprimroot','fibonacci','floor','for','forcomposite','fordiv','forell', + 'forprime','forqfvec','forstep','forsubgroup','forvec','frac','galoisexport', + 'galoisfixedfield','galoisgetpol','galoisidentify','galoisinit', + 'galoisisabelian','galoisisnormal','galoispermtopol', + 'galoissubcyclo','galoissubfields','galoissubgroups','gamma', + 'gammah','gcd','getenv','getheap','getrand','getstack','gettime', + 'global','hammingweight','hilbert','hyperu','I','idealadd', + 'idealaddtoone','idealappr','idealchinese','idealcoprime', + 'idealdiv','idealfactor','idealfactorback','idealfrobenius', + 'idealhnf','idealintersect','idealinv','ideallist','ideallistarch', + 'ideallog','idealmin','idealmul','idealnorm','idealnumden', + 'idealpow','idealprimedec','idealramgroups','idealred','idealstar', + 'idealtwoelt','idealval','if','iferr','iferrname','imag','incgam','incgamc','input', + 'install','intcirc','intformal','intfouriercos','intfourierexp', + 'intfouriersin','intfuncinit','intlaplaceinv','intmellininv', + 'intmellininvshort','intnum','intnuminit','intnuminitgen', + 'intnumromb','intnumstep','isfundamental','ispolygonal','ispower','ispowerful', + 'isprime','isprimepower','ispseudoprime','issquare','issquarefree','istotient', + 'kill','kronecker','lcm','length','lex','lift','lindep','List', + 'listcreate','listinsert','listkill','listpop','listput','listsort', + 'lngamma','local','log','Mat','matadjoint','matalgtobasis', + 'matbasistoalg','matcompanion','matconcat','matcontent','matdet','matdetint', + 'matdiagonal','mateigen','matfrobenius','mathess','mathilbert', + 'mathnf','mathnfmod','mathnfmodid','matid','matimage', + 'matimagecompl','matindexrank','matintersect','matinverseimage', + 'matisdiagonal','matker','matkerint','matmuldiagonal', + 'matmultodiagonal','matpascal','matrank','matrix','matrixqz', + 'matsize','matsnf','matsolve','matsolvemod','matsupplement', + 'mattranspose','max','min','minpoly','Mod','modreverse','moebius', + 'my','newtonpoly','next','nextprime','nfalgtobasis','nfbasis', + 'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv', + 'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul', + 'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr', + 'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor', + 'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj', + 'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl', + 'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots', + 'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','norm','norml2', + 'numbpart','numdiv','numerator','numtoperm','O','omega','padicappr', + 'padicfields','padicprec','partitions','permtonum','Pi','plot', + 'plotbox','plotclip','plotcolor','plotcopy','plotcursor','plotdraw', + 'ploth','plothraw','plothsizes','plotinit','plotkill','plotlines', + 'plotlinetype','plotmove','plotpoints','plotpointsize', + 'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline', + 'plotrmove','plotrpoint','plotscale','plotstring','Pol', + 'polchebyshev','polcoeff','polcompositum','polcyclo','polcyclofactors','poldegree', + 'poldisc','poldiscreduced','polgalois','polgraeffe','polhensellift', + 'polhermite','polinterpolate','poliscyclo','poliscycloprod', + 'polisirreducible','pollead','pollegendre','polrecip','polred', + 'polredabs','polredbest','polredord','polresultant','Polrev','polroots', + 'polrootsff','polrootsmod','polrootspadic','polsturm','polsubcyclo', + 'polsylvestermatrix','polsym','poltchebi','poltschirnhaus', + 'polylog','polzagier','precision','precprime','prime','primepi', + 'primes','print','print1','printf','printsep','printtex','prod','prodeuler', + 'prodinf','psdraw','psi','psploth','psplothraw','Qfb','qfbclassno', + 'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw', + 'qfbprimeform','qfbred','qfbsolve','qfgaussred','qfjacobi','qflll', + 'qflllgram','qfminim','qfperfection','qfrep','qfsign', + 'quadclassunit','quaddisc','quadgen','quadhilbert','quadpoly', + 'quadray','quadregulator','quadunit','quit','random','randomprime','read', + 'readvec','real','removeprimes','return','rnfalgtobasis','rnfbasis', + 'rnfbasistoalg','rnfcharpoly','rnfconductor','rnfdedekind','rnfdet', + 'rnfdisc','rnfeltabstorel','rnfeltdown','rnfeltreltoabs','rnfeltup', + 'rnfequation','rnfhnfbasis','rnfidealabstorel','rnfidealdown', + 'rnfidealhnf','rnfidealmul','rnfidealnormabs','rnfidealnormrel', + 'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit', + 'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer', + 'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs', + 'rnfpseudobasis','rnfsteinitz','round','select','Ser','serconvol', + 'serlaplace','serreverse','Set','setbinop','setintersect', + 'setisset','setminus','setrand','setsearch','setunion','shift', + 'shiftmul','sigma','sign','simplify','sin','sinh','sizebyte', + 'sizedigit','solve','sqr','sqrt','sqrtint','sqrtn','sqrtnint','stirling','Str', + 'Strchr','Strexpand','Strprintf','Strtex','subgrouplist','subst', + 'substpol','substvec','sum','sumalt','sumdedekind','sumdiv','sumdivmult','sumdigits', + 'sumformal','suminf','sumnum','sumnumalt','sumnuminit','sumpos','system','tan', + 'tanh','taylor','teichmuller','theta','thetanullk','thue', + 'thueinit','trace','trap','truncate','type','until','valuation', + 'variable','Vec','vecextract','vecmax','vecmin','Vecrev', + 'vecsearch','Vecsmall','vecsort','vector','vectorsmall','vectorv', + 'version','warning','weber','whatnow','while','write','write1', + 'writebin','writetex','zeta','zetak','zetakinit','zncoppersmith', + 'znlog','znorder','znprimroot','znstar' + ), + + 2 => array( + 'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol', + 'vecsmall','vec','list','str','genstr','gen','typ' + ), + + 3 => array( + 'TeXstyle','breakloop','colors','compatible','datadir','debug', + 'debugfiles','debugmem','echo','factor_add_primes','factor_proven', + 'format','graphcolormap','graphcolors','help','histfile','histsize', + 'lines','linewrap',/*'log',*/'logfile','new_galois_format','output', + 'parisize','path','prettyprinter','primelimit','prompt_cont', + 'prompt','psfile','readline','realprecision','recover','secure', + 'seriesprecision',/*'simplify',*/'sopath','strictmatch','timer' + ), + + 4 => array( + '"e_ARCH"','"e_BUG"','"e_FILE"','"e_IMPL"','"e_PACKAGE"','"e_DIM"', + '"e_FLAG"','"e_NOTFUNC"','"e_OP"','"e_TYPE"','"e_TYPE2"', + '"e_PRIORITY"','"e_VAR"','"e_DOMAIN"','"e_MAXPRIME"','"e_MEM"', + '"e_OVERFLOW"','"e_PREC"','"e_STACK"','"e_ALARM"','"e_USER"', + '"e_CONSTPOL"','"e_COPRIME"','"e_INV"','"e_IRREDPOL"','"e_MISC"', + '"e_MODULUS"','"e_NEGVAL"','"e_PRIME"','"e_ROOTS0"','"e_SQRTN"' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\'' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #e07022;', + 3 => 'color: #00d2d2;', + 4 => 'color: #00d2d2;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 'MULTI' => 'color: #008000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #111111; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #002222;' + ), + 'STRINGS' => array( + 0 => 'color: #800080;' + ), + 'NUMBERS' => array( + 0 => 'color: #666666;', + 1 => 'color: #666666;', + 2 => 'color: #666666;' + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array( + 0 => 'color: #e07022', # Should be the same as keyword group 2 + 1 => 'color: #555555', + 2 => 'color: #0000ff' # Should be the same as keyword group 1 + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + 0 => array( # types marked on variables + GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE|ERROR))"', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '"', + GESHI_AFTER => '"' + ), + 1 => array( # literal variables + GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( # member functions + GESHI_SEARCH => '(?<=[.])(a[1-6]|b[2-8]|c[4-6]|area|bid|bnf|clgp|cyc|diff|disc|[efjp]|fu|gen|index|mod|nf|no|omega|pol|reg|roots|sign|r[12]|t2|tate|tu|zk|zkst)\b', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 2 => array( + '[a-zA-Z][a-zA-Z0-9_]*:' => '' + ), + 3 => array( + 'default(' => '' + ), + 4 => array( + 'iferrname(' => '' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); diff --git a/inc/geshi/pascal.php b/vendor/easybook/geshi/geshi/pascal.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pascal.php rename to vendor/easybook/geshi/geshi/pascal.php diff --git a/inc/geshi/pcre.php b/vendor/easybook/geshi/geshi/pcre.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pcre.php rename to vendor/easybook/geshi/geshi/pcre.php diff --git a/inc/geshi/per.php b/vendor/easybook/geshi/geshi/per.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/per.php rename to vendor/easybook/geshi/geshi/per.php index c42ddb58a76e6b28054e978cb8ca4581fa995bc1..c3b5d15082c814b0dcdb2ec25b295b89985d38ef --- a/inc/geshi/per.php +++ b/vendor/easybook/geshi/geshi/per.php @@ -298,5 +298,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/perl.php b/vendor/easybook/geshi/geshi/perl.php old mode 100644 new mode 100755 similarity index 89% rename from inc/geshi/perl.php rename to vendor/easybook/geshi/geshi/perl.php index 309ebd86120fdccd1a3b1d6ec8199bc712e404e7..2c3dc92fe6423a144c7eb2cfbf47dd8e5a7e3e05 --- a/inc/geshi/perl.php +++ b/vendor/easybook/geshi/geshi/perl.php @@ -74,6 +74,12 @@ $language_data = array ( //Predefined variables 5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/', ), + 'NUMBERS' => array( + // Includes rules for decimal, octal (0777), hexidecimal (0xDEADBEEF), + // binary (0b101010) numbers, amended to work with underscores (since + // Perl allows you to use underscores in number literals) + 0 => '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\._]e[+\-])([1-9][\d_]*?|0)(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.%])(?<![\d\._]e[+\-])0b[01_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0[0-7_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])0x[0-9a-fA-F_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])|(?<![0-9a-z_\.])(?<![\d\._]e[+\-])[\d_]+?\.[\d_]+?(?![0-9a-z_]|\.(?:[eE][+\-]?)?[\d_])', + ), '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 @@ -106,7 +112,7 @@ $language_data = array ( 'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority', 'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent', 'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent', - 'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep', + 'getsockname', 'getsockopt', 'given', 'glob', 'gmtime', 'goto', 'grep', 'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', 'lc', 'lcfirst', 'length', 'link', 'listen', 'local', 'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget', @@ -115,17 +121,17 @@ $language_data = array ( 'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw', 'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe', 'recv', 'ref', 'rename', 'require', 'return', - 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek', + 'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'say', 'scalar', 'seek', 'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', 'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent', 'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget', 'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair', - 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', + 'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat', 'state', 'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread', 'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', 'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef', 'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values', - 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y' + 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'when', 'write', 'y' ) ), 'SYMBOLS' => array( diff --git a/inc/geshi/perl6.php b/vendor/easybook/geshi/geshi/perl6.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/perl6.php rename to vendor/easybook/geshi/geshi/perl6.php diff --git a/inc/geshi/pf.php b/vendor/easybook/geshi/geshi/pf.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pf.php rename to vendor/easybook/geshi/geshi/pf.php diff --git a/inc/geshi/php-brief.php b/vendor/easybook/geshi/geshi/php-brief.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/php-brief.php rename to vendor/easybook/geshi/geshi/php-brief.php diff --git a/inc/geshi/php.php b/vendor/easybook/geshi/geshi/php.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/php.php rename to vendor/easybook/geshi/geshi/php.php index 2827457b17db416b36ebf1f80a6e4da83e9de175..7b5c16e189763608f8cd379f589befa829172fac --- a/inc/geshi/php.php +++ b/vendor/easybook/geshi/geshi/php.php @@ -1113,5 +1113,3 @@ $language_data = array( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/pic16.php b/vendor/easybook/geshi/geshi/pic16.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pic16.php rename to vendor/easybook/geshi/geshi/pic16.php index 46d7ac94db2f3c8a697375a88daae7b47e7c2867..2e28f17b62ab80df8367f0f4772ce55535342ae5 --- a/inc/geshi/pic16.php +++ b/vendor/easybook/geshi/geshi/pic16.php @@ -137,5 +137,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/pike.php b/vendor/easybook/geshi/geshi/pike.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pike.php rename to vendor/easybook/geshi/geshi/pike.php index 743f711b15b42e0b220dbc997ba039b478c9863e..dcc53092d37bd4fa86a27859109039f24ffb1fb8 --- a/inc/geshi/pike.php +++ b/vendor/easybook/geshi/geshi/pike.php @@ -99,5 +99,3 @@ $language_data = array( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/pixelbender.php b/vendor/easybook/geshi/geshi/pixelbender.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pixelbender.php rename to vendor/easybook/geshi/geshi/pixelbender.php index 7b29ee6c3d82bd40d2ff433b166ae6e686ca15c0..6a2c8dea09670837d323910da286917ac7548672 --- a/inc/geshi/pixelbender.php +++ b/vendor/easybook/geshi/geshi/pixelbender.php @@ -172,5 +172,3 @@ $language_data = array( 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/pli.php b/vendor/easybook/geshi/geshi/pli.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pli.php rename to vendor/easybook/geshi/geshi/pli.php diff --git a/inc/geshi/plsql.php b/vendor/easybook/geshi/geshi/plsql.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/plsql.php rename to vendor/easybook/geshi/geshi/plsql.php index 09f90a225c6c1f147afd2fe7b999474f4b220c96..58f7c90f4b742b6f6328d48720b3094313b64f6b --- a/inc/geshi/plsql.php +++ b/vendor/easybook/geshi/geshi/plsql.php @@ -252,5 +252,3 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/postgresql.php b/vendor/easybook/geshi/geshi/postgresql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/postgresql.php rename to vendor/easybook/geshi/geshi/postgresql.php diff --git a/inc/geshi/povray.php b/vendor/easybook/geshi/geshi/povray.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/povray.php rename to vendor/easybook/geshi/geshi/povray.php diff --git a/inc/geshi/powerbuilder.php b/vendor/easybook/geshi/geshi/powerbuilder.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/powerbuilder.php rename to vendor/easybook/geshi/geshi/powerbuilder.php diff --git a/inc/geshi/powershell.php b/vendor/easybook/geshi/geshi/powershell.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/powershell.php rename to vendor/easybook/geshi/geshi/powershell.php diff --git a/inc/geshi/proftpd.php b/vendor/easybook/geshi/geshi/proftpd.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/proftpd.php rename to vendor/easybook/geshi/geshi/proftpd.php diff --git a/inc/geshi/progress.php b/vendor/easybook/geshi/geshi/progress.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/progress.php rename to vendor/easybook/geshi/geshi/progress.php diff --git a/inc/geshi/prolog.php b/vendor/easybook/geshi/geshi/prolog.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/prolog.php rename to vendor/easybook/geshi/geshi/prolog.php diff --git a/inc/geshi/properties.php b/vendor/easybook/geshi/geshi/properties.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/properties.php rename to vendor/easybook/geshi/geshi/properties.php diff --git a/inc/geshi/providex.php b/vendor/easybook/geshi/geshi/providex.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/providex.php rename to vendor/easybook/geshi/geshi/providex.php index 1e735bd0f47fcb8da88ddd438b2ba2597fb6e0b4..1a7b08bbee976ca693f5cb93629257aaab0e49d9 --- a/inc/geshi/providex.php +++ b/vendor/easybook/geshi/geshi/providex.php @@ -295,5 +295,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/purebasic.php b/vendor/easybook/geshi/geshi/purebasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/purebasic.php rename to vendor/easybook/geshi/geshi/purebasic.php diff --git a/inc/geshi/pycon.php b/vendor/easybook/geshi/geshi/pycon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/pycon.php rename to vendor/easybook/geshi/geshi/pycon.php diff --git a/inc/geshi/pys60.php b/vendor/easybook/geshi/geshi/pys60.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/pys60.php rename to vendor/easybook/geshi/geshi/pys60.php index 59c67fac73f62c5cdfff370d9ee863c7a084116f..865b59adbd0e5810a6225cc269671a6b34330f0b --- a/inc/geshi/pys60.php +++ b/vendor/easybook/geshi/geshi/pys60.php @@ -269,5 +269,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/python.php b/vendor/easybook/geshi/geshi/python.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/python.php rename to vendor/easybook/geshi/geshi/python.php diff --git a/inc/geshi/q.php b/vendor/easybook/geshi/geshi/q.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/q.php rename to vendor/easybook/geshi/geshi/q.php diff --git a/inc/geshi/qbasic.php b/vendor/easybook/geshi/geshi/qbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/qbasic.php rename to vendor/easybook/geshi/geshi/qbasic.php diff --git a/vendor/easybook/geshi/geshi/racket.php b/vendor/easybook/geshi/geshi/racket.php new file mode 100644 index 0000000000000000000000000000000000000000..c0d931b41f8c0c4ead844cb7b32474d9fdd577ce --- /dev/null +++ b/vendor/easybook/geshi/geshi/racket.php @@ -0,0 +1,964 @@ +<?php +/************************************************************************************* + * racket.php + * ---------- + * Author: Tim Brown (tim@timb.net) + * Copyright: (c) 2013 Tim Brown ((https://github.com/tim-brown/geshi-racket)) + * Release Version: 1.0.8.12 + * Date Started: 2013-03-01 + * + * Racket language file for GeSHi. + * + * This file was built automatically from the scripts in + * https://github.com/tim-brown/geshi-racket (you didn't think + * I typed those NUMBER regular expressions in myself, did you?). + * Use those scripts to regenerate the file. + * + * CHANGES + * ------- + * 1.0 (2013-03-31) + * - Initial Release1.1 (2013-03-31) + * - Added URLs, "symbol"-like identifiers moved to SYMBOLS* + * + * TODO (updated 2013-04-25) + * ------------------------- + * * better handling of empty and short arrays + * * care more about indentation and line lengths + * * most compound regexps are possibly over-bracketed: (or ...) + * * most compound regexps are possibly over-bracketed: (: ...) + * * URLs should be formed more smartly by discovering which module they came from. + * * '|...| identifiers + * * #<<HERE strings + * * #;(...) comments -- (note: requires balanced parenthesis regexp) + * + ************************************************************************************* + * + * 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' => 'Racket', + 'COMMENT_SINGLE' => array( + 1 => ';', + ), + 'COMMENT_MULTI' => array( + '#|' => '|#', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', + ), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'abort-current-continuation', 'abs', 'absolute-path?', 'acos', 'add1', + 'alarm-evt', 'always-evt', 'andmap', 'angle', 'append', + 'arithmetic-shift', 'arity-at-least-value', 'arity-at-least?', + 'asin', 'assf', 'assoc', 'assq', 'assv', 'atan', 'banner', + 'bitwise-and', 'bitwise-bit-field', 'bitwise-bit-set?', + 'bitwise-ior', 'bitwise-not', 'bitwise-xor', 'boolean?', + 'bound-identifier=?', 'box', 'box-cas!', 'box-immutable', 'box?', + 'break-enabled', 'break-thread', 'build-list', 'build-path', + 'build-path/convention-type', 'build-string', 'build-vector', + 'byte-pregexp', 'byte-pregexp?', 'byte-ready?', 'byte-regexp', + 'byte-regexp?', 'byte?', 'bytes', 'bytes>?', 'bytes<?', + 'bytes->immutable-bytes', 'bytes->list', 'bytes->path', + 'bytes->path-element', 'bytes->string/latin-1', + 'bytes->string/locale', 'bytes->string/utf-8', + 'bytes-append', 'bytes-close-converter', 'bytes-convert', + 'bytes-convert-end', 'bytes-converter?', 'bytes-copy', + 'bytes-copy!', 'bytes-fill!', 'bytes-length', + 'bytes-open-converter', 'bytes-ref', 'bytes-set!', + 'bytes-utf-8-index', 'bytes-utf-8-length', 'bytes-utf-8-ref', + 'bytes=?', 'bytes?', 'caaaar', 'caaadr', 'caaar', 'caadar', + 'caaddr', 'caadr', 'caar', 'cadaar', 'cadadr', 'cadar', 'caddar', + 'cadddr', 'caddr', 'cadr', 'call-in-nested-thread', + 'call-with-break-parameterization', + 'call-with-composable-continuation', + 'call-with-continuation-barrier', 'call-with-continuation-prompt', + 'call-with-current-continuation', 'call-with-escape-continuation', + 'call-with-exception-handler', + 'call-with-immediate-continuation-mark', + 'call-with-parameterization', 'call-with-semaphore', + 'call-with-semaphore/enable-break', 'call-with-values', 'call/cc', + 'call/ec', 'car', 'cdaaar', 'cdaadr', 'cdaar', 'cdadar', 'cdaddr', + 'cdadr', 'cdar', 'cddaar', 'cddadr', 'cddar', 'cdddar', 'cddddr', + 'cdddr', 'cddr', 'cdr', 'ceiling', 'channel-get', 'channel-put', + 'channel-put-evt', 'channel-put-evt?', 'channel-try-get', + 'channel?', 'chaperone-box', 'chaperone-continuation-mark-key', + 'chaperone-evt', 'chaperone-hash', 'chaperone-of?', + 'chaperone-procedure', 'chaperone-prompt-tag', 'chaperone-struct', + 'chaperone-struct-type', 'chaperone-vector', 'chaperone?', + 'char>=?', 'char>?', 'char<=?', 'char<?', + 'char->integer', 'char-alphabetic?', 'char-blank?', + 'char-ci>=?', 'char-ci>?', 'char-ci<=?', 'char-ci<?', + 'char-ci=?', 'char-downcase', 'char-foldcase', + 'char-general-category', 'char-graphic?', 'char-iso-control?', + 'char-lower-case?', 'char-numeric?', 'char-punctuation?', + 'char-ready?', 'char-symbolic?', 'char-title-case?', + 'char-titlecase', 'char-upcase', 'char-upper-case?', + 'char-utf-8-length', 'char-whitespace?', 'char=?', 'char?', + 'check-duplicate-identifier', + 'checked-procedure-check-and-extract', 'choice-evt', + 'cleanse-path', 'close-input-port', 'close-output-port', + 'collect-garbage', 'collection-file-path', 'collection-path', + 'compile', 'compile-allow-set!-undefined', + 'compile-context-preservation-enabled', + 'compile-enforce-module-constants', 'compile-syntax', + 'compiled-expression?', 'compiled-module-expression?', + 'complete-path?', 'complex?', 'compose', 'compose1', 'cons', + 'continuation-mark-key?', 'continuation-mark-set->context', + 'continuation-mark-set->list', + 'continuation-mark-set->list*', 'continuation-mark-set-first', + 'continuation-mark-set?', 'continuation-marks', + 'continuation-prompt-available?', 'continuation-prompt-tag?', + 'continuation?', 'copy-file', 'cos', + 'current-break-parameterization', 'current-code-inspector', + 'current-command-line-arguments', 'current-compile', + 'current-compiled-file-roots', 'current-continuation-marks', + 'current-custodian', 'current-directory', 'current-drive', + 'current-error-port', 'current-eval', + 'current-evt-pseudo-random-generator', 'current-gc-milliseconds', + 'current-get-interaction-input-port', + 'current-inexact-milliseconds', 'current-input-port', + 'current-inspector', 'current-library-collection-paths', + 'current-load', 'current-load-extension', + 'current-load-relative-directory', 'current-load/use-compiled', + 'current-locale', 'current-logger', 'current-memory-use', + 'current-milliseconds', 'current-module-declare-name', + 'current-module-declare-source', 'current-module-name-resolver', + 'current-namespace', 'current-output-port', + 'current-parameterization', 'current-preserved-thread-cell-values', + 'current-print', 'current-process-milliseconds', + 'current-prompt-read', 'current-pseudo-random-generator', + 'current-read-interaction', 'current-reader-guard', + 'current-readtable', 'current-seconds', 'current-security-guard', + 'current-subprocess-custodian-mode', 'current-thread', + 'current-thread-group', 'current-thread-initial-stack-size', + 'current-write-relative-directory', 'custodian-box-value', + 'custodian-box?', 'custodian-limit-memory', + 'custodian-managed-list', 'custodian-memory-accounting-available?', + 'custodian-require-memory', 'custodian-shutdown-all', 'custodian?', + 'custom-print-quotable-accessor', 'custom-print-quotable?', + 'custom-write-accessor', 'custom-write?', 'date*-nanosecond', + 'date*-time-zone-name', 'date*?', 'date-day', 'date-dst?', + 'date-hour', 'date-minute', 'date-month', 'date-second', + 'date-time-zone-offset', 'date-week-day', 'date-year', + 'date-year-day', 'date?', 'datum->syntax', + 'datum-intern-literal', 'default-continuation-prompt-tag', + 'delete-directory', 'delete-file', 'denominator', + 'directory-exists?', 'directory-list', 'display', 'displayln', + 'double-flonum?', 'dump-memory-stats', 'dynamic-require', + 'dynamic-require-for-syntax', 'dynamic-wind', 'eof', 'eof-object?', + 'ephemeron-value', 'ephemeron?', 'eprintf', 'eq-hash-code', 'eq?', + 'equal-hash-code', 'equal-secondary-hash-code', 'equal?', + 'equal?/recur', 'eqv-hash-code', 'eqv?', 'error', + 'error-display-handler', 'error-escape-handler', + 'error-print-context-length', 'error-print-source-location', + 'error-print-width', 'error-value->string-handler', 'eval', + 'eval-jit-enabled', 'eval-syntax', 'even?', 'evt?', + 'exact->inexact', 'exact-integer?', + 'exact-nonnegative-integer?', 'exact-positive-integer?', 'exact?', + 'executable-yield-handler', 'exit', 'exit-handler', + 'exn-continuation-marks', 'exn-message', 'exn:break-continuation', + 'exn:break:hang-up?', 'exn:break:terminate?', 'exn:break?', + 'exn:fail:contract:arity?', 'exn:fail:contract:continuation?', + 'exn:fail:contract:divide-by-zero?', + 'exn:fail:contract:non-fixnum-result?', + 'exn:fail:contract:variable-id', 'exn:fail:contract:variable?', + 'exn:fail:contract?', 'exn:fail:filesystem:errno-errno', + 'exn:fail:filesystem:errno?', 'exn:fail:filesystem:exists?', + 'exn:fail:filesystem:version?', 'exn:fail:filesystem?', + 'exn:fail:network:errno-errno', 'exn:fail:network:errno?', + 'exn:fail:network?', 'exn:fail:out-of-memory?', + 'exn:fail:read-srclocs', 'exn:fail:read:eof?', + 'exn:fail:read:non-char?', 'exn:fail:read?', + 'exn:fail:syntax-exprs', 'exn:fail:syntax:unbound?', + 'exn:fail:syntax?', 'exn:fail:unsupported?', 'exn:fail:user?', + 'exn:fail?', 'exn:srclocs-accessor', 'exn:srclocs?', 'exn?', 'exp', + 'expand', 'expand-once', 'expand-syntax', 'expand-syntax-once', + 'expand-syntax-to-top-form', 'expand-to-top-form', + 'expand-user-path', 'expt', 'file-exists?', + 'file-or-directory-identity', 'file-or-directory-modify-seconds', + 'file-or-directory-permissions', 'file-position', 'file-position*', + 'file-size', 'file-stream-buffer-mode', 'file-stream-port?', + 'filesystem-root-list', 'filter', 'find-executable-path', + 'find-library-collection-paths', 'find-system-path', 'findf', + 'fixnum?', 'floating-point-bytes->real', 'flonum?', 'floor', + 'flush-output', 'foldl', 'foldr', 'for-each', 'format', 'fprintf', + 'free-identifier=?', 'free-label-identifier=?', + 'free-template-identifier=?', 'free-transformer-identifier=?', + 'gcd', 'generate-temporaries', 'gensym', 'get-output-bytes', + 'get-output-string', 'getenv', 'global-port-print-handler', + 'guard-evt', 'handle-evt', 'handle-evt?', 'hash', 'hash->list', + 'hash-copy', 'hash-count', 'hash-eq?', 'hash-equal?', 'hash-eqv?', + 'hash-for-each', 'hash-has-key?', 'hash-iterate-first', + 'hash-iterate-key', 'hash-iterate-next', 'hash-iterate-value', + 'hash-keys', 'hash-map', 'hash-placeholder?', 'hash-ref', + 'hash-ref!', 'hash-remove', 'hash-remove!', 'hash-set', + 'hash-set!', 'hash-set*', 'hash-set*!', 'hash-update', + 'hash-update!', 'hash-values', 'hash-weak?', 'hash?', 'hasheq', + 'hasheqv', 'identifier-binding', 'identifier-label-binding', + 'identifier-prune-lexical-context', + 'identifier-prune-to-source-module', + 'identifier-remove-from-definition-context', + 'identifier-template-binding', 'identifier-transformer-binding', + 'identifier?', 'imag-part', 'immutable?', 'impersonate-box', + 'impersonate-continuation-mark-key', 'impersonate-hash', + 'impersonate-procedure', 'impersonate-prompt-tag', + 'impersonate-struct', 'impersonate-vector', 'impersonator-of?', + 'impersonator-prop:application-mark', + 'impersonator-property-accessor-procedure?', + 'impersonator-property?', 'impersonator?', 'in-cycle', + 'in-directory', 'in-hash', 'in-hash-keys', 'in-hash-pairs', + 'in-hash-values', 'in-parallel', 'in-sequences', + 'in-values*-sequence', 'in-values-sequence', 'inexact->exact', + 'inexact-real?', 'inexact?', 'input-port?', 'inspector?', + 'integer->char', 'integer->integer-bytes', + 'integer-bytes->integer', 'integer-length', 'integer-sqrt', + 'integer-sqrt/remainder', 'integer?', + 'internal-definition-context-seal', 'internal-definition-context?', + 'keyword<?', 'keyword->string', 'keyword-apply', 'keyword?', + 'kill-thread', 'lcm', 'length', 'liberal-define-context?', + 'link-exists?', 'list', 'list*', 'list->bytes', + 'list->string', 'list->vector', 'list-ref', 'list-tail', + 'list?', 'load', 'load-extension', 'load-on-demand-enabled', + 'load-relative', 'load-relative-extension', 'load/cd', + 'load/use-compiled', 'local-expand', 'local-expand/capture-lifts', + 'local-transformer-expand', + 'local-transformer-expand/capture-lifts', 'locale-string-encoding', + 'log', 'log-level?', 'log-max-level', 'log-message', + 'log-receiver?', 'logger-name', 'logger?', 'magnitude', + 'make-arity-at-least', 'make-base-empty-namespace', + 'make-base-namespace', 'make-bytes', 'make-channel', + 'make-continuation-mark-key', 'make-continuation-prompt-tag', + 'make-custodian', 'make-custodian-box', 'make-date', 'make-date*', + 'make-derived-parameter', 'make-directory', 'make-do-sequence', + 'make-empty-namespace', 'make-ephemeron', 'make-exn', + 'make-exn:break', 'make-exn:break:hang-up', + 'make-exn:break:terminate', 'make-exn:fail', + 'make-exn:fail:contract', 'make-exn:fail:contract:arity', + 'make-exn:fail:contract:continuation', + 'make-exn:fail:contract:divide-by-zero', + 'make-exn:fail:contract:non-fixnum-result', + 'make-exn:fail:contract:variable', 'make-exn:fail:filesystem', + 'make-exn:fail:filesystem:errno', + 'make-exn:fail:filesystem:exists', + 'make-exn:fail:filesystem:version', 'make-exn:fail:network', + 'make-exn:fail:network:errno', 'make-exn:fail:out-of-memory', + 'make-exn:fail:read', 'make-exn:fail:read:eof', + 'make-exn:fail:read:non-char', 'make-exn:fail:syntax', + 'make-exn:fail:syntax:unbound', 'make-exn:fail:unsupported', + 'make-exn:fail:user', 'make-file-or-directory-link', 'make-hash', + 'make-hash-placeholder', 'make-hasheq', 'make-hasheq-placeholder', + 'make-hasheqv', 'make-hasheqv-placeholder', 'make-immutable-hash', + 'make-immutable-hasheq', 'make-immutable-hasheqv', + 'make-impersonator-property', 'make-input-port', 'make-inspector', + 'make-keyword-procedure', 'make-known-char-range-list', + 'make-log-receiver', 'make-logger', 'make-output-port', + 'make-parameter', 'make-phantom-bytes', 'make-pipe', + 'make-placeholder', 'make-polar', 'make-prefab-struct', + 'make-pseudo-random-generator', 'make-reader-graph', + 'make-readtable', 'make-rectangular', 'make-rename-transformer', + 'make-resolved-module-path', 'make-security-guard', + 'make-semaphore', 'make-set!-transformer', 'make-shared-bytes', + 'make-sibling-inspector', 'make-special-comment', 'make-srcloc', + 'make-string', 'make-struct-field-accessor', + 'make-struct-field-mutator', 'make-struct-type', + 'make-struct-type-property', 'make-syntax-delta-introducer', + 'make-syntax-introducer', 'make-thread-cell', 'make-thread-group', + 'make-vector', 'make-weak-box', 'make-weak-hash', + 'make-weak-hasheq', 'make-weak-hasheqv', 'make-will-executor', + 'map', 'max', 'mcar', 'mcdr', 'mcons', 'member', 'memf', 'memq', + 'memv', 'min', 'module->exports', 'module->imports', + 'module->language-info', 'module->namespace', + 'module-compiled-exports', 'module-compiled-imports', + 'module-compiled-language-info', 'module-compiled-name', + 'module-compiled-submodules', 'module-declared?', + 'module-path-index-join', 'module-path-index-resolve', + 'module-path-index-split', 'module-path-index-submodule', + 'module-path-index?', 'module-path?', 'module-predefined?', + 'module-provide-protected?', 'modulo', 'mpair?', 'nack-guard-evt', + 'namespace-anchor->empty-namespace', + 'namespace-anchor->namespace', 'namespace-anchor?', + 'namespace-attach-module', 'namespace-attach-module-declaration', + 'namespace-base-phase', 'namespace-mapped-symbols', + 'namespace-module-identifier', 'namespace-module-registry', + 'namespace-require', 'namespace-require/constant', + 'namespace-require/copy', 'namespace-require/expansion-time', + 'namespace-set-variable-value!', 'namespace-symbol->identifier', + 'namespace-syntax-introduce', 'namespace-undefine-variable!', + 'namespace-unprotect-module', 'namespace-variable-value', + 'namespace?', 'negative?', 'never-evt', 'newline', + 'normal-case-path', 'not', 'null', 'null?', 'number->string', + 'number?', 'numerator', 'object-name', 'odd?', 'open-input-bytes', + 'open-input-string', 'open-output-bytes', 'open-output-string', + 'ormap', 'output-port?', 'pair?', 'parameter-procedure=?', + 'parameter?', 'parameterization?', 'path->bytes', + 'path->complete-path', 'path->directory-path', + 'path->string', 'path-add-suffix', 'path-convention-type', + 'path-element->bytes', 'path-element->string', + 'path-for-some-system?', 'path-list-string->path-list', + 'path-replace-suffix', 'path-string?', 'path?', 'peek-byte', + 'peek-byte-or-special', 'peek-bytes', 'peek-bytes!', + 'peek-bytes-avail!', 'peek-bytes-avail!*', + 'peek-bytes-avail!/enable-break', 'peek-char', + 'peek-char-or-special', 'peek-string', 'peek-string!', + 'phantom-bytes?', 'pipe-content-length', 'placeholder-get', + 'placeholder-set!', 'placeholder?', 'poll-guard-evt', + 'port-closed-evt', 'port-closed?', 'port-commit-peeked', + 'port-count-lines!', 'port-count-lines-enabled', + 'port-display-handler', 'port-file-identity', 'port-file-unlock', + 'port-next-location', 'port-print-handler', 'port-progress-evt', + 'port-provides-progress-evts?', 'port-read-handler', + 'port-try-file-lock?', 'port-write-handler', 'port-writes-atomic?', + 'port-writes-special?', 'port?', 'positive?', + 'prefab-key->struct-type', 'prefab-key?', 'prefab-struct-key', + 'pregexp', 'pregexp?', 'primitive-closure?', + 'primitive-result-arity', 'primitive?', 'print', + 'print-as-expression', 'print-boolean-long-form', 'print-box', + 'print-graph', 'print-hash-table', 'print-mpair-curly-braces', + 'print-pair-curly-braces', 'print-reader-abbreviations', + 'print-struct', 'print-syntax-width', 'print-unreadable', + 'print-vector-length', 'printf', 'procedure->method', + 'procedure-arity', 'procedure-arity-includes?', 'procedure-arity?', + 'procedure-closure-contents-eq?', 'procedure-extract-target', + 'procedure-keywords', 'procedure-reduce-arity', + 'procedure-reduce-keyword-arity', 'procedure-rename', + 'procedure-struct-type?', 'procedure?', 'progress-evt?', + 'prop:arity-string', 'prop:checked-procedure', + 'prop:custom-print-quotable', 'prop:custom-write', + 'prop:equal+hash', 'prop:evt', 'prop:exn:srclocs', + 'prop:impersonator-of', 'prop:input-port', + 'prop:liberal-define-context', 'prop:output-port', + 'prop:procedure', 'prop:rename-transformer', 'prop:sequence', + 'prop:set!-transformer', 'pseudo-random-generator->vector', + 'pseudo-random-generator-vector?', 'pseudo-random-generator?', + 'putenv', 'quotient', 'quotient/remainder', 'raise', + 'raise-argument-error', 'raise-arguments-error', + 'raise-arity-error', 'raise-mismatch-error', 'raise-range-error', + 'raise-result-error', 'raise-syntax-error', 'raise-type-error', + 'raise-user-error', 'random', 'random-seed', 'rational?', + 'rationalize', 'read', 'read-accept-bar-quote', 'read-accept-box', + 'read-accept-compiled', 'read-accept-dot', 'read-accept-graph', + 'read-accept-infix-dot', 'read-accept-lang', + 'read-accept-quasiquote', 'read-accept-reader', 'read-byte', + 'read-byte-or-special', 'read-bytes', 'read-bytes!', + 'read-bytes-avail!', 'read-bytes-avail!*', + 'read-bytes-avail!/enable-break', 'read-bytes-line', + 'read-case-sensitive', 'read-char', 'read-char-or-special', + 'read-curly-brace-as-paren', 'read-decimal-as-inexact', + 'read-eval-print-loop', 'read-language', 'read-line', + 'read-on-demand-source', 'read-square-bracket-as-paren', + 'read-string', 'read-string!', 'read-syntax', + 'read-syntax/recursive', 'read/recursive', 'readtable-mapping', + 'readtable?', 'real->decimal-string', 'real->double-flonum', + 'real->floating-point-bytes', 'real->single-flonum', + 'real-part', 'real?', 'regexp', 'regexp-match', + 'regexp-match-exact?', 'regexp-match-peek', + 'regexp-match-peek-immediate', 'regexp-match-peek-positions', + 'regexp-match-peek-positions-immediate', + 'regexp-match-peek-positions-immediate/end', + 'regexp-match-peek-positions/end', 'regexp-match-positions', + 'regexp-match-positions/end', 'regexp-match/end', 'regexp-match?', + 'regexp-max-lookbehind', 'regexp-quote', 'regexp-replace', + 'regexp-replace*', 'regexp-replace-quote', 'regexp-replaces', + 'regexp-split', 'regexp-try-match', 'regexp?', 'relative-path?', + 'remainder', 'remove', 'remove*', 'remq', 'remq*', 'remv', 'remv*', + 'rename-file-or-directory', 'rename-transformer-target', + 'rename-transformer?', 'reroot-path', 'resolve-path', + 'resolved-module-path-name', 'resolved-module-path?', 'reverse', + 'round', 'seconds->date', 'security-guard?', + 'semaphore-peek-evt', 'semaphore-peek-evt?', 'semaphore-post', + 'semaphore-try-wait?', 'semaphore-wait', + 'semaphore-wait/enable-break', 'semaphore?', 'sequence->stream', + 'sequence-generate', 'sequence-generate*', 'sequence?', + 'set!-transformer-procedure', 'set!-transformer?', 'set-box!', + 'set-mcar!', 'set-mcdr!', 'set-phantom-bytes!', + 'set-port-next-location!', 'shared-bytes', 'shell-execute', + 'simplify-path', 'sin', 'single-flonum?', 'sleep', + 'special-comment-value', 'special-comment?', 'split-path', 'sqrt', + 'srcloc-column', 'srcloc-line', 'srcloc-position', 'srcloc-source', + 'srcloc-span', 'srcloc?', 'stop-after', 'stop-before', 'string', + 'string>=?', 'string>?', 'string<=?', 'string<?', + 'string->bytes/latin-1', 'string->bytes/locale', + 'string->bytes/utf-8', 'string->immutable-string', + 'string->keyword', 'string->list', 'string->number', + 'string->path', 'string->path-element', 'string->symbol', + 'string->uninterned-symbol', 'string->unreadable-symbol', + 'string-append', 'string-ci>=?', 'string-ci>?', + 'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-copy', + 'string-copy!', 'string-downcase', 'string-fill!', + 'string-foldcase', 'string-length', 'string-locale>?', + 'string-locale<?', 'string-locale-ci>?', + 'string-locale-ci<?', 'string-locale-ci=?', + 'string-locale-downcase', 'string-locale-upcase', + 'string-locale=?', 'string-normalize-nfc', 'string-normalize-nfd', + 'string-normalize-nfkc', 'string-normalize-nfkd', 'string-ref', + 'string-set!', 'string-titlecase', 'string-upcase', + 'string-utf-8-length', 'string=?', 'string?', 'struct->vector', + 'struct-accessor-procedure?', 'struct-constructor-procedure?', + 'struct-info', 'struct-mutator-procedure?', + 'struct-predicate-procedure?', 'struct-type-info', + 'struct-type-make-constructor', 'struct-type-make-predicate', + 'struct-type-property-accessor-procedure?', + 'struct-type-property?', 'struct-type?', 'struct:arity-at-least', + 'struct:date', 'struct:date*', 'struct:exn', 'struct:exn:break', + 'struct:exn:break:hang-up', 'struct:exn:break:terminate', + 'struct:exn:fail', 'struct:exn:fail:contract', + 'struct:exn:fail:contract:arity', + 'struct:exn:fail:contract:continuation', + 'struct:exn:fail:contract:divide-by-zero', + 'struct:exn:fail:contract:non-fixnum-result', + 'struct:exn:fail:contract:variable', 'struct:exn:fail:filesystem', + 'struct:exn:fail:filesystem:errno', + 'struct:exn:fail:filesystem:exists', + 'struct:exn:fail:filesystem:version', 'struct:exn:fail:network', + 'struct:exn:fail:network:errno', 'struct:exn:fail:out-of-memory', + 'struct:exn:fail:read', 'struct:exn:fail:read:eof', + 'struct:exn:fail:read:non-char', 'struct:exn:fail:syntax', + 'struct:exn:fail:syntax:unbound', 'struct:exn:fail:unsupported', + 'struct:exn:fail:user', 'struct:srcloc', 'struct?', 'sub1', + 'subbytes', 'subprocess', 'subprocess-group-enabled', + 'subprocess-kill', 'subprocess-pid', 'subprocess-status', + 'subprocess-wait', 'subprocess?', 'substring', 'symbol->string', + 'symbol-interned?', 'symbol-unreadable?', 'symbol?', 'sync', + 'sync/enable-break', 'sync/timeout', 'sync/timeout/enable-break', + 'syntax->datum', 'syntax->list', 'syntax-arm', + 'syntax-column', 'syntax-disarm', 'syntax-e', 'syntax-line', + 'syntax-local-bind-syntaxes', 'syntax-local-certifier', + 'syntax-local-context', 'syntax-local-expand-expression', + 'syntax-local-get-shadower', 'syntax-local-introduce', + 'syntax-local-lift-context', 'syntax-local-lift-expression', + 'syntax-local-lift-module-end-declaration', + 'syntax-local-lift-provide', 'syntax-local-lift-require', + 'syntax-local-lift-values-expression', + 'syntax-local-make-definition-context', + 'syntax-local-make-delta-introducer', + 'syntax-local-module-defined-identifiers', + 'syntax-local-module-exports', + 'syntax-local-module-required-identifiers', 'syntax-local-name', + 'syntax-local-phase-level', 'syntax-local-submodules', + 'syntax-local-transforming-module-provides?', 'syntax-local-value', + 'syntax-local-value/immediate', 'syntax-original?', + 'syntax-position', 'syntax-property', + 'syntax-property-symbol-keys', 'syntax-protect', 'syntax-rearm', + 'syntax-recertify', 'syntax-shift-phase-level', 'syntax-source', + 'syntax-source-module', 'syntax-span', 'syntax-taint', + 'syntax-tainted?', 'syntax-track-origin', + 'syntax-transforming-module-expression?', 'syntax-transforming?', + 'syntax?', 'system-big-endian?', 'system-idle-evt', + 'system-language+country', 'system-library-subpath', + 'system-path-convention-type', 'system-type', 'tan', + 'terminal-port?', 'thread', 'thread-cell-ref', 'thread-cell-set!', + 'thread-cell-values?', 'thread-cell?', 'thread-dead-evt', + 'thread-dead?', 'thread-group?', 'thread-receive', + 'thread-receive-evt', 'thread-resume', 'thread-resume-evt', + 'thread-rewind-receive', 'thread-running?', 'thread-send', + 'thread-suspend', 'thread-suspend-evt', 'thread-try-receive', + 'thread-wait', 'thread/suspend-to-kill', 'thread?', 'time-apply', + 'truncate', 'unbox', 'uncaught-exception-handler', + 'use-collection-link-paths', 'use-compiled-file-paths', + 'use-user-specific-search-paths', 'values', + 'variable-reference->empty-namespace', + 'variable-reference->module-base-phase', + 'variable-reference->module-declaration-inspector', + 'variable-reference->module-path-index', + 'variable-reference->module-source', + 'variable-reference->namespace', 'variable-reference->phase', + 'variable-reference->resolved-module-path', + 'variable-reference-constant?', 'variable-reference?', 'vector', + 'vector->immutable-vector', 'vector->list', + 'vector->pseudo-random-generator', + 'vector->pseudo-random-generator!', 'vector->values', + 'vector-copy!', 'vector-fill!', 'vector-immutable', + 'vector-length', 'vector-ref', 'vector-set!', + 'vector-set-performance-stats!', 'vector?', 'version', 'void', + 'void?', 'weak-box-value', 'weak-box?', 'will-execute', + 'will-executor?', 'will-register', 'will-try-execute', 'wrap-evt', + 'write', 'write-byte', 'write-bytes', 'write-bytes-avail', + 'write-bytes-avail*', 'write-bytes-avail-evt', + 'write-bytes-avail/enable-break', 'write-char', 'write-special', + 'write-special-avail*', 'write-special-evt', 'write-string', + 'zero?', + ), + + 2 => array( + '#%app', '#%datum', '#%expression', '#%module-begin', '#%plain-app', + '#%plain-lambda', '#%plain-module-begin', '#%provide', '#%require', + '#%stratified-body', '#%top', '#%top-interaction', + '#%variable-reference', ':do-in', 'all-defined-out', + 'all-from-out', 'and', 'apply', 'arity-at-least', 'begin', + 'begin-for-syntax', 'begin0', 'call-with-input-file', + 'call-with-input-file*', 'call-with-output-file', + 'call-with-output-file*', 'case', 'case-lambda', 'combine-in', + 'combine-out', 'cond', 'date', 'date*', 'define', + 'define-for-syntax', 'define-logger', 'define-namespace-anchor', + 'define-sequence-syntax', 'define-struct', 'define-struct/derived', + 'define-syntax', 'define-syntax-rule', 'define-syntaxes', + 'define-values', 'define-values-for-syntax', 'do', 'else', + 'except-in', 'except-out', 'exn', 'exn:break', 'exn:break:hang-up', + 'exn:break:terminate', 'exn:fail', 'exn:fail:contract', + 'exn:fail:contract:arity', 'exn:fail:contract:continuation', + 'exn:fail:contract:divide-by-zero', + 'exn:fail:contract:non-fixnum-result', + 'exn:fail:contract:variable', 'exn:fail:filesystem', + 'exn:fail:filesystem:errno', 'exn:fail:filesystem:exists', + 'exn:fail:filesystem:version', 'exn:fail:network', + 'exn:fail:network:errno', 'exn:fail:out-of-memory', + 'exn:fail:read', 'exn:fail:read:eof', 'exn:fail:read:non-char', + 'exn:fail:syntax', 'exn:fail:syntax:unbound', + 'exn:fail:unsupported', 'exn:fail:user', 'file', 'for', 'for*', + 'for*/and', 'for*/first', 'for*/fold', 'for*/fold/derived', + 'for*/hash', 'for*/hasheq', 'for*/hasheqv', 'for*/last', + 'for*/list', 'for*/lists', 'for*/or', 'for*/product', 'for*/sum', + 'for*/vector', 'for-label', 'for-meta', 'for-syntax', + 'for-template', 'for/and', 'for/first', 'for/fold', + 'for/fold/derived', 'for/hash', 'for/hasheq', 'for/hasheqv', + 'for/last', 'for/list', 'for/lists', 'for/or', 'for/product', + 'for/sum', 'for/vector', 'gen:custom-write', 'gen:equal+hash', + 'if', 'in-bytes', 'in-bytes-lines', 'in-indexed', + 'in-input-port-bytes', 'in-input-port-chars', 'in-lines', + 'in-list', 'in-mlist', 'in-naturals', 'in-port', 'in-producer', + 'in-range', 'in-string', 'in-value', 'in-vector', 'lambda', 'let', + 'let*', 'let*-values', 'let-syntax', 'let-syntaxes', 'let-values', + 'let/cc', 'let/ec', 'letrec', 'letrec-syntax', 'letrec-syntaxes', + 'letrec-syntaxes+values', 'letrec-values', 'lib', 'local-require', + 'log-debug', 'log-error', 'log-fatal', 'log-info', 'log-warning', + 'module', 'module*', 'module+', 'only-in', 'only-meta-in', + 'open-input-file', 'open-input-output-file', 'open-output-file', + 'or', 'parameterize', 'parameterize*', 'parameterize-break', + 'planet', 'prefix-in', 'prefix-out', 'protect-out', 'provide', + 'quasiquote', 'quasisyntax', 'quasisyntax/loc', 'quote', + 'quote-syntax', 'quote-syntax/prune', 'regexp-match*', + 'regexp-match-peek-positions*', 'regexp-match-positions*', + 'relative-in', 'rename-in', 'rename-out', 'require', 'set!', + 'set!-values', 'sort', 'srcloc', 'struct', 'struct-copy', + 'struct-field-index', 'struct-out', 'submod', 'syntax', + 'syntax-case', 'syntax-case*', 'syntax-id-rules', 'syntax-rules', + 'syntax/loc', 'time', 'unless', 'unquote', 'unquote-splicing', + 'unsyntax', 'unsyntax-splicing', 'when', 'with-continuation-mark', + 'with-handlers', 'with-handlers*', 'with-input-from-file', + 'with-output-to-file', 'with-syntax', '?', + ), + + 3 => array( + '>/c', '</c', 'append*', 'append-map', 'argmax', 'argmin', + 'bad-number-of-results', 'base->-doms/c', 'base->-rngs/c', + 'base->?', 'blame-add-unknown-context', 'blame-context', + 'blame-contract', 'blame-fmt->-string', 'blame-negative', + 'blame-original?', 'blame-positive', 'blame-replace-negative', + 'blame-source', 'blame-swap', 'blame-swapped?', 'blame-value', + 'blame?', 'boolean=?', 'build-chaperone-contract-property', + 'build-compound-type-name', 'build-contract-property', + 'build-flat-contract-property', 'bytes-append*', 'bytes-join', + 'bytes-no-nuls?', 'call-with-input-bytes', + 'call-with-input-string', 'call-with-output-bytes', + 'call-with-output-string', 'chaperone-contract-property?', + 'chaperone-contract?', 'class->interface', 'class-info', + 'class?', 'coerce-chaperone-contract', + 'coerce-chaperone-contracts', 'coerce-contract', + 'coerce-contract/f', 'coerce-contracts', 'coerce-flat-contract', + 'coerce-flat-contracts', 'conjugate', 'cons?', 'const', + 'contract-first-order', 'contract-first-order-passes?', + 'contract-name', 'contract-proc', 'contract-projection', + 'contract-property?', 'contract-random-generate', + 'contract-stronger?', 'contract-struct-exercise', + 'contract-struct-generate', 'contract?', 'convert-stream', + 'copy-directory/files', 'copy-port', 'cosh', 'count', + 'current-blame-format', 'current-future', 'curry', 'curryr', + 'degrees->radians', 'delete-directory/files', + 'deserialize-info:set-v0', 'dict-iter-contract', + 'dict-key-contract', 'dict-value-contract', 'drop', 'drop-right', + 'dup-input-port', 'dup-output-port', 'dynamic-get-field', + 'dynamic-send', 'dynamic-set-field!', 'eighth', 'empty', + 'empty-sequence', 'empty-stream', 'empty?', 'env-stash', + 'eq-contract-val', 'eq-contract?', 'equal<%>', + 'equal-contract-val', 'equal-contract?', 'exact-ceiling', + 'exact-floor', 'exact-round', 'exact-truncate', + 'exn:fail:contract:blame-object', 'exn:fail:contract:blame?', + 'exn:fail:object?', 'exn:misc:match?', 'explode-path', + 'externalizable<%>', 'false', 'false/c', 'false?', + 'field-names', 'fifth', 'file-name-from-path', + 'filename-extension', 'filter-map', 'filter-not', + 'filter-read-input-port', 'find-files', 'first', 'flat-contract', + 'flat-contract-predicate', 'flat-contract-property?', + 'flat-contract?', 'flat-named-contract', 'flatten', 'fold-files', + 'force', 'fourth', 'fsemaphore-count', 'fsemaphore-post', + 'fsemaphore-try-wait?', 'fsemaphore-wait', 'fsemaphore?', 'future', + 'future?', 'futures-enabled?', 'generate-ctc-fail?', + 'generate-env', 'generate-member-key', 'generate/choose', + 'generate/direct', 'generic?', 'group-execute-bit', + 'group-read-bit', 'group-write-bit', 'has-contract?', 'identity', + 'impersonator-contract?', 'impersonator-prop:contracted', + 'implementation?', 'implementation?/c', 'in-dict', 'in-dict-keys', + 'in-dict-pairs', 'in-dict-values', 'infinite?', + 'input-port-append', 'instanceof/c', 'interface->method-names', + 'interface-extension?', 'interface?', 'is-a?', 'is-a?/c', 'last', + 'last-pair', 'list->set', 'list->seteq', 'list->seteqv', + 'make-chaperone-contract', 'make-contract', 'make-custom-hash', + 'make-directory*', 'make-exn:fail:contract:blame', + 'make-exn:fail:object', 'make-flat-contract', 'make-fsemaphore', + 'make-generate-ctc-fail', 'make-generic', + 'make-immutable-custom-hash', 'make-input-port/read-to-peek', + 'make-limited-input-port', 'make-list', 'make-lock-file-name', + 'make-mixin-contract', 'make-none/c', 'make-pipe-with-specials', + 'make-primitive-class', 'make-proj-contract', + 'make-tentative-pretty-print-output-port', 'make-weak-custom-hash', + 'match-equality-test', 'matches-arity-exactly?', + 'member-name-key-hash-code', 'member-name-key=?', + 'member-name-key?', 'merge-input', 'method-in-interface?', + 'mixin-contract', 'n->th', 'nan?', 'natural-number/c', 'negate', + 'new-?/c', 'new-?/c', 'ninth', 'normalize-path', 'object%', + 'object->vector', 'object-info', 'object-interface', + 'object-method-arity-includes?', 'object=?', 'object?', + 'open-output-nowhere', 'order-of-magnitude', 'other-execute-bit', + 'other-read-bit', 'other-write-bit', 'parse-command-line', + 'partition', 'path-element?', 'path-only', 'pathlist-closure', + 'pi', 'pi.f', 'place-break', 'place-channel', 'place-channel-get', + 'place-channel-put', 'place-channel-put/get', 'place-channel?', + 'place-dead-evt', 'place-enabled?', 'place-kill', + 'place-message-allowed?', 'place-sleep', 'place-wait', 'place?', + 'port->bytes', 'port->list', 'port->string', + 'predicate/c', 'preferences-lock-file-mode', 'pretty-display', + 'pretty-format', 'pretty-print', + 'pretty-print-.-symbol-without-bars', + 'pretty-print-abbreviate-read-macros', 'pretty-print-columns', + 'pretty-print-current-style-table', 'pretty-print-depth', + 'pretty-print-exact-as-decimal', 'pretty-print-extend-style-table', + 'pretty-print-handler', 'pretty-print-newline', + 'pretty-print-post-print-hook', 'pretty-print-pre-print-hook', + 'pretty-print-print-hook', 'pretty-print-print-line', + 'pretty-print-remap-stylable', 'pretty-print-show-inexactness', + 'pretty-print-size-hook', 'pretty-print-style-table?', + 'pretty-printing', 'pretty-write', 'printable<%>', + 'printable/c', 'process', 'process*', 'process*/ports', + 'process/ports', 'processor-count', 'promise-forced?', + 'promise-running?', 'promise?', 'prop:chaperone-contract', + 'prop:contract', 'prop:contracted', 'prop:dict', + 'prop:flat-contract', 'prop:opt-chaperone-contract', + 'prop:opt-chaperone-contract-get-test', + 'prop:opt-chaperone-contract?', 'prop:stream', 'proper-subset?', + 'put-preferences', 'radians->degrees', 'raise-blame-error', + 'raise-contract-error', 'range', 'reencode-input-port', + 'reencode-output-port', 'relocate-input-port', + 'relocate-output-port', 'rest', 'second', 'sequence->list', + 'sequence-add-between', 'sequence-andmap', 'sequence-append', + 'sequence-count', 'sequence-filter', 'sequence-fold', + 'sequence-for-each', 'sequence-length', 'sequence-map', + 'sequence-ormap', 'sequence-ref', 'sequence-tail', 'set', + 'set->list', 'set-add', 'set-count', 'set-empty?', 'set-eq?', + 'set-equal?', 'set-eqv?', 'set-first', 'set-for-each', + 'set-intersect', 'set-map', 'set-member?', 'set-remove', + 'set-rest', 'set-subtract', 'set-symmetric-difference', + 'set-union', 'set/c', 'set=?', 'set?', 'seteq', 'seteqv', + 'seventh', 'sgn', 'shuffle', 'simple-form-path', 'sinh', 'sixth', + 'skip-projection-wrapper?', 'some-system-path->string', + 'special-filter-input-port', 'split-at', 'split-at-right', 'sqr', + 'stream->list', 'stream-add-between', 'stream-andmap', + 'stream-append', 'stream-count', 'stream-empty?', 'stream-filter', + 'stream-first', 'stream-fold', 'stream-for-each', 'stream-length', + 'stream-map', 'stream-ormap', 'stream-ref', 'stream-rest', + 'stream-tail', 'stream?', 'string->some-system-path', + 'string-append*', 'string-no-nuls?', 'struct-type-property/c', + 'struct:exn:fail:contract:blame', 'struct:exn:fail:object', + 'subclass?', 'subclass?/c', 'subset?', 'symbol=?', 'system', + 'system*', 'system*/exit-code', 'system/exit-code', 'take', + 'take-right', 'tanh', 'tcp-abandon-port', 'tcp-accept', + 'tcp-accept-evt', 'tcp-accept-ready?', 'tcp-accept/enable-break', + 'tcp-addresses', 'tcp-close', 'tcp-connect', + 'tcp-connect/enable-break', 'tcp-listen', 'tcp-listener?', + 'tcp-port?', 'tentative-pretty-print-port-cancel', + 'tentative-pretty-print-port-transfer', 'tenth', + 'the-unsupplied-arg', 'third', 'touch', 'transplant-input-port', + 'transplant-output-port', 'true', 'udp-addresses', 'udp-bind!', + 'udp-bound?', 'udp-close', 'udp-connect!', 'udp-connected?', + 'udp-open-socket', 'udp-receive!', 'udp-receive!*', + 'udp-receive!-evt', 'udp-receive!/enable-break', + 'udp-receive-ready-evt', 'udp-send', 'udp-send*', 'udp-send-evt', + 'udp-send-ready-evt', 'udp-send-to', 'udp-send-to*', + 'udp-send-to-evt', 'udp-send-to/enable-break', + 'udp-send/enable-break', 'udp?', 'unit?', 'unsupplied-arg?', + 'user-execute-bit', 'user-read-bit', 'user-write-bit', + 'value-contract', 'vector-append', 'vector-argmax', + 'vector-argmin', 'vector-copy', 'vector-count', 'vector-drop', + 'vector-drop-right', 'vector-filter', 'vector-filter-not', + 'vector-map', 'vector-map!', 'vector-member', 'vector-memq', + 'vector-memv', 'vector-set*!', 'vector-split-at', + 'vector-split-at-right', 'vector-take', 'vector-take-right', + 'with-input-from-bytes', 'with-input-from-string', + 'with-output-to-bytes', 'with-output-to-string', 'would-be-future', + 'writable<%>', 'xor', + ), + 4 => array( + '>=/c', '<=/c', '->*m', '->d', '->dm', '->i', '->m', + '=/c', 'absent', 'abstract', 'add-between', 'and/c', 'any', + 'any/c', 'augment', 'augment*', 'augment-final', 'augment-final*', + 'augride', 'augride*', 'between/c', 'blame-add-context', + 'box-immutable/c', 'box/c', 'call-with-file-lock/timeout', + 'case->', 'case->m', 'class', 'class*', + 'class-field-accessor', 'class-field-mutator', 'class/c', + 'class/derived', 'command-line', 'compound-unit', + 'compound-unit/infer', 'cons/c', 'continuation-mark-key/c', + 'contract', 'contract-out', 'contract-struct', 'contracted', + 'current-contract-region', 'define-compound-unit', + 'define-compound-unit/infer', 'define-contract-struct', + 'define-local-member-name', 'define-match-expander', + 'define-member-name', 'define-opt/c', 'define-serializable-class', + 'define-serializable-class*', 'define-signature', + 'define-signature-form', 'define-struct/contract', 'define-unit', + 'define-unit-binding', 'define-unit-from-context', + 'define-unit/contract', 'define-unit/new-import-export', + 'define-unit/s', 'define-values-for-export', + 'define-values/invoke-unit', 'define-values/invoke-unit/infer', + 'define/augment', 'define/augment-final', 'define/augride', + 'define/contract', 'define/final-prop', 'define/match', + 'define/overment', 'define/override', 'define/override-final', + 'define/private', 'define/public', 'define/public-final', + 'define/pubment', 'define/subexpression-pos-prop', 'delay', + 'delay/idle', 'delay/name', 'delay/strict', 'delay/sync', + 'delay/thread', 'dict->list', 'dict-can-functional-set?', + 'dict-can-remove-keys?', 'dict-count', 'dict-for-each', + 'dict-has-key?', 'dict-iterate-first', 'dict-iterate-key', + 'dict-iterate-next', 'dict-iterate-value', 'dict-keys', 'dict-map', + 'dict-mutable?', 'dict-ref', 'dict-ref!', 'dict-remove', + 'dict-remove!', 'dict-set', 'dict-set!', 'dict-set*', 'dict-set*!', + 'dict-update', 'dict-update!', 'dict-values', 'dict?', + 'display-lines', 'display-lines-to-file', 'display-to-file', + 'dynamic-place', 'dynamic-place*', 'eof-evt', 'except', + 'exn:fail:contract:blame', 'exn:fail:object', 'export', 'extends', + 'field', 'field-bound?', 'file->bytes', 'file->bytes-lines', + 'file->lines', 'file->list', 'file->string', + 'file->value', 'find-relative-path', 'flat-murec-contract', + 'flat-rec-contract', 'for*/set', 'for*/seteq', 'for*/seteqv', + 'for/set', 'for/seteq', 'for/seteqv', 'gen:dict', 'gen:stream', + 'generic', 'get-field', 'get-preference', 'hash/c', 'implies', + 'import', 'in-set', 'in-stream', 'include', + 'include-at/relative-to', 'include-at/relative-to/reader', + 'include/reader', 'inherit', 'inherit-field', 'inherit/inner', + 'inherit/super', 'init', 'init-depend', 'init-field', 'init-rest', + 'inner', 'inspect', 'instantiate', 'integer-in', 'interface', + 'interface*', 'invoke-unit', 'invoke-unit/infer', 'lazy', 'link', + 'list/c', 'listof', 'local', 'make-handle-get-preference-locked', + 'make-object', 'make-temporary-file', 'match', 'match*', + 'match*/derived', 'match-define', 'match-define-values', + 'match-lambda', 'match-lambda*', 'match-lambda**', 'match-let', + 'match-let*', 'match-let*-values', 'match-let-values', + 'match-letrec', 'match/derived', 'match/values', 'member-name-key', + 'method-contract?', 'mixin', 'nand', 'new', 'non-empty-listof', + 'none/c', 'nor', 'not/c', 'object-contract', 'object/c', + 'one-of/c', 'only', 'open', 'opt/c', 'or/c', 'overment', + 'overment*', 'override', 'override*', 'override-final', + 'override-final*', 'parameter/c', 'parametric->/c', + 'peek-bytes!-evt', 'peek-bytes-avail!-evt', 'peek-bytes-evt', + 'peek-string!-evt', 'peek-string-evt', 'peeking-input-port', + 'place', 'place*', 'port->bytes-lines', 'port->lines', + 'prefix', 'private', 'private*', 'procedure-arity-includes/c', + 'promise/c', 'prompt-tag/c', 'prop:dict/contract', + 'provide-signature-elements', 'provide/contract', 'public', + 'public*', 'public-final', 'public-final*', 'pubment', 'pubment*', + 'read-bytes!-evt', 'read-bytes-avail!-evt', 'read-bytes-evt', + 'read-bytes-line-evt', 'read-line-evt', 'read-string!-evt', + 'read-string-evt', 'real-in', 'recursive-contract', + 'regexp-match-evt', 'remove-duplicates', 'rename', 'rename-inner', + 'rename-super', 'send', 'send*', 'send+', 'send-generic', + 'send/apply', 'send/keyword-apply', 'set-field!', 'shared', + 'stream', 'stream-cons', 'string-join', 'string-len/c', + 'string-normalize-spaces', 'string-replace', 'string-split', + 'string-trim', 'struct*', 'struct/c', 'struct/ctc', 'struct/dc', + 'super', 'super-instantiate', 'super-make-object', 'super-new', + 'symbols', 'syntax/c', 'tag', 'this', 'this%', 'thunk', 'thunk*', + 'unconstrained-domain->', 'unit', 'unit-from-context', 'unit/c', + 'unit/new-import-export', 'unit/s', 'vector-immutable/c', + 'vector-immutableof', 'vector/c', 'vectorof', 'with-contract', + 'with-method', 'write-to-file', '~.a', '~.s', '~.v', '~a', '~e', + '~r', '~s', '~v', + ), + ), + 'SYMBOLS' => array( + 0 => array( + '>', '>=', '<', '<=', '*', '+', '-', '->', '->*', '...', '/', + '=', '=>', '==', '_', '#fl', '#fx', '#s', '#', '#f', '#F', + '#false', '#t', '#T', '#true', '#lang', '#reader', '.', '\'', '#`', + '#,@', '#,', '#\'', '`', '@', ',', '#%', '#$', '#&', '#~', '#rx', + '#px', '#<<', '#;', '#hash', '#', + ), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'NUMBERS' => array( + 1 => '(((#x#e)|(#e#x)|(#x#i)|(#i#x)|(#x))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)'. + '(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))('. + '([sl]((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan'. + '\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9a-fA-F])+'. + '(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#'. + ')*)\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?'. + '))|((((inf\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9'. + '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('. + '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('. + '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'. + 'f]))))@((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9a-fA-F])+(#)'. + '*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)'. + '\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?)))'. + '|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|((((((-)|(\+)))?('. + '([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9])+)i))|((((('. + '-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)))?(((((([0-9'. + '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('. + '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('. + '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'. + 'f])))))|(((((-)|(\+)))?([0-9])+))))', + 2 => '(((#o#e)|(#e#o)|(#o#i)|(#i#o)|(#o))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|'. + '(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|'. + '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'. + ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])'. + '+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl'. + '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'. + 'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)'. + '))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'. + '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'. + ')?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7]'. + ')+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['. + '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('. + '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'. + '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'. + '))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?'. + '(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))'. + '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['. + '0f])))))|(((((-)|(\+)))?([0-9])+))))', + 3 => '(((#b#e)|(#e#b)|(#b#i)|(#i#b)|(#b))((((((((((((-)|(\+)))?(((('. + '(([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|'. + '(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|'. + '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'. + ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])'. + '+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl'. + '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'. + 'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)'. + '))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'. + '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'. + ')?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1]'. + ')+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['. + '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('. + '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'. + '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'. + '))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?'. + '(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))'. + '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['. + '0f])))))|(((((-)|(\+)))?([0-9])+))))', + 4 => '((((#d#e)|(#e#d)|(#d#i)|(#i#d)|(#e)|(#i)|(#d)))?((((((((((((-'. + ')|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*'. + ')(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|(['. + 'def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(na'. + 'n\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9])+(#)*)'. + '))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#'. + ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf'. + '\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?'. + '(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)'. + '\\/(([0-9])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)'. + '))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))'. + '?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#'. + ')*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|([def]))(('. + '((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f'. + ']))))))))|((((((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))((['. + '0-9])+\\/([0-9])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|'. + '(((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-'. + '9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((('. + '[sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((in'. + 'f\.)|(nan\.))[0f])))))|(((((-)|(\+)))?([0-9])+))))', + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: blue;', + 2 => 'color: rgb(34, 34, 139);', + 3 => 'color: blue;', + 4 => 'color: rgb(34, 34, 139);', + ), + 'COMMENTS' => array( + 1 => 'color: rgb(194, 116, 31);', + 'MULTI' => 'color: rgb(194, 116, 31);', + ), + 'ESCAPE_CHAR' => array( + 0 => '', + ), + 'BRACKETS' => array( + 0 => 'color: rgb(132, 60,36);', + ), + 'STRINGS' => array( + 0 => 'color: rgb(34, 139, 34);', + ), + 'NUMBERS' => array( + 0 => 'color: rgb(34, 139, 34);', + 1 => 'color: rgb(34, 139, 34);', + 2 => 'color: rgb(34, 139, 34);', + 3 => 'color: rgb(34, 139, 34);', + 4 => 'color: rgb(34, 139, 34);', + ), + 'METHODS' => array( + 0 => 'color: #202020;', + ), + 'SYMBOLS' => array( + 0 => 'color: rgb(132, 60,36);', + ), + 'REGEXPS' => array( + 1 => 'color: rgb(34, 139, 34);', + 2 => 'color: rgb(132, 60,36);', + 3 => 'color: rgb(34, 139, 34);', + ), + 'SCRIPT' => array( + ), + ), + 'URLS' => array( + 1 => 'http://docs.racket-lang.org/reference/', + 2 => 'http://docs.racket-lang.org/reference/', + 3 => 'http://docs.racket-lang.org/reference/', + 4 => 'http://docs.racket-lang.org/reference/', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 1 => '#\\\\(nul|null|backspace|tab|newline|linefeed|vtab|page|retur'. + 'n|space|rubout|([0-7]{1,3})|(u[[:xdigit:]]{1,4})|(U[[:xdigit:'. + ']]{1,6})|[a-z])', + 2 => '#:[^[:space:]()[\\]{}",\']+', + 3 => '\'((\\\\ )|([^[:space:]()[\\]{}",\']))+', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '[[:space:]()[\\]{}",\']', + ), + 'ENABLE_FLAGS' => array( + 'SYMBOLS' => GESHI_MAYBE, + 'BRACKETS' => GESHI_MAYBE, + 'REGEXPS' => GESHI_MAYBE, + 'ESCAPE_CHAR' => GESHI_MAYBE, + ) + ) +); diff --git a/inc/geshi/rails.php b/vendor/easybook/geshi/geshi/rails.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/rails.php rename to vendor/easybook/geshi/geshi/rails.php index 65ddee884e4bacffefb7c28dda00b700228e53f9..d41bd9a6f837adf302e3e670064c85e3134e97bb --- a/inc/geshi/rails.php +++ b/vendor/easybook/geshi/geshi/rails.php @@ -402,5 +402,3 @@ $language_data = array ( 0 => true, ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/rbs.php b/vendor/easybook/geshi/geshi/rbs.php new file mode 100644 index 0000000000000000000000000000000000000000..02c2fcfa8ff1718e516009d1a9fa925bcc5b6f56 --- /dev/null +++ b/vendor/easybook/geshi/geshi/rbs.php @@ -0,0 +1,224 @@ +<?php +/************************************************************************************* + * rbs.php + * ------ + * Author: Deng Wen Gang (deng@priity.com) + * Copyright: (c) 2013 Deng Wen Gang + * Release Version: 1.0.8.12 + * Date Started: 2013/01/15 + * + * RBScript language file for GeSHi. + * + * RBScript official website: http://docs.realsoftware.com/index.php/Rbscript + * + * CHANGES + * ------- + * 2013/01/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 ( + 'LANG_NAME' => 'RBScript', + 'COMMENT_SINGLE' => array( 1 => '//', 2 => "'" ), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 3 => '/REM\s.*$/im', + 4 => '/&b[01]+/', + 5 => '/&o[0-7]+/', + 6 => '/&h[a-f0-9]+/i', + 7 => '/&c[a-f0-9]+/i', + 8 => '/&u[a-f0-9]+/i', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'Int8', 'Int16', 'Int32', 'Int64', 'Uint8', 'Uint16', 'Uint32', 'Uint64', 'Byte', 'Integer', + 'Single', 'Double', 'Boolean', 'String', 'Color', 'Object', 'Variant' + ), + 2 => array( + 'Private', 'Public', 'Protected', + 'Sub', 'Function', 'Delegate', 'Exception', + ), + 3 => array( + 'IsA', + 'And', 'Or', 'Not', 'Xor', + 'If', 'Then', 'Else', 'ElseIf', + 'Select', 'Case', + 'For', 'Each', 'In', 'To', 'Step', 'Next', + 'Do', 'Loop', 'Until', + 'While', 'Wend', + 'Continue', 'Exit', 'Goto', 'End', + ), + 4 => array( + 'Const', 'Static', + 'Dim', 'As', 'Redim', + 'Me', 'Self', 'Super', 'Extends', 'Implements', + 'ByRef', 'ByVal', 'Assigns', 'ParamArray', + 'Mod', + 'Raise', + ), + 5 => array( + 'False', 'True', 'Nil' + ), + 6 => array( + 'Abs', + 'Acos', + 'Asc', + 'AscB', + 'Asin', + 'Atan', + 'Atan2', + 'CDbl', + 'Ceil', + 'Chr', + 'ChrB', + 'CMY', + 'Cos', + 'CountFields', + 'CStr', + 'Exp', + 'Floor', + 'Format', + 'Hex', + 'HSV', + 'InStr', + 'InStrB', + 'Left', + 'LeftB', + 'Len', + 'LenB', + 'Log', + 'Lowercase', + 'LTrim', + 'Max', + 'Microseconds', + 'Mid', + 'MidB', + 'Min', + 'NthField', + 'Oct', + 'Pow', + 'Replace', + 'ReplaceB', + 'ReplaceAll', + 'ReplaceAllB', + 'RGB', + 'Right', + 'RightB', + 'Rnd', + 'Round', + 'RTrim', + 'Sin', + 'Sqrt', + 'Str', + 'StrComp', + 'Tan', + 'Ticks', + 'Titlecase', + 'Trim', + 'UBound', + 'Uppercase', + 'Val', + ), + ), + '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: #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;', + 2 => 'color: #008000;', + 3 => 'color: #008000;', + + 4 => 'color: #800000;', + 5 => 'color: #800000;', + 6 => 'color: #800000;', + 7 => 'color: #800000;', + 8 => 'color: #800000;', + ), + 'BRACKETS' => array( + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + '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, + 'SYMBOLS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); diff --git a/inc/geshi/rebol.php b/vendor/easybook/geshi/geshi/rebol.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rebol.php rename to vendor/easybook/geshi/geshi/rebol.php diff --git a/inc/geshi/reg.php b/vendor/easybook/geshi/geshi/reg.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/reg.php rename to vendor/easybook/geshi/geshi/reg.php index 157b2bd24b3a7ad072c400101985cf2316426378..2034d5adbe03484c0f0f29cab4b682d8a9f53510 --- a/inc/geshi/reg.php +++ b/vendor/easybook/geshi/geshi/reg.php @@ -229,5 +229,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/rexx.php b/vendor/easybook/geshi/geshi/rexx.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/rexx.php rename to vendor/easybook/geshi/geshi/rexx.php index b3cb932297e92dec8387d599ef0c723eb3f3e674..1189ac5be20e831ec9786c282a24206de64bfbd1 --- a/inc/geshi/rexx.php +++ b/vendor/easybook/geshi/geshi/rexx.php @@ -158,5 +158,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/robots.php b/vendor/easybook/geshi/geshi/robots.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/robots.php rename to vendor/easybook/geshi/geshi/robots.php diff --git a/inc/geshi/rpmspec.php b/vendor/easybook/geshi/geshi/rpmspec.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rpmspec.php rename to vendor/easybook/geshi/geshi/rpmspec.php diff --git a/inc/geshi/rsplus.php b/vendor/easybook/geshi/geshi/rsplus.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/rsplus.php rename to vendor/easybook/geshi/geshi/rsplus.php diff --git a/inc/geshi/ruby.php b/vendor/easybook/geshi/geshi/ruby.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/ruby.php rename to vendor/easybook/geshi/geshi/ruby.php diff --git a/vendor/easybook/geshi/geshi/rust.php b/vendor/easybook/geshi/geshi/rust.php new file mode 100644 index 0000000000000000000000000000000000000000..07ba51a02a1f1fd01d0029ff4e62ad98085662ac --- /dev/null +++ b/vendor/easybook/geshi/geshi/rust.php @@ -0,0 +1,228 @@ +<?php +/************************************************************************************* + * rust.php + * -------- + * Author: Edward Hart (edward.dan.hart@gmail.com) + * Copyright: (c) 2013 Edward Hart + * Release Version: 1.0.8.12 + * Date Started: 2013/10/20 + * + * Rust language file for GeSHi. + * + * CHANGES + * ------- + * 2013/10/20 + * - First Release + * + * TODO (updated 2013/10/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' => 'Rust', + + 'COMMENT_SINGLE' => array('//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\nrt\'\"?\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_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + + 'KEYWORDS' => array( + // Keywords + 1 => array( + 'alt', 'as', 'assert', 'break', 'const', 'continue', 'copy', 'do', + 'else', 'enum', 'extern', 'fn', 'for', 'if', + 'impl', 'in', 'let', 'log', 'loop', 'match', 'mod', 'mut', 'of', + 'priv', 'pub', 'ref', 'return', 'self', 'static', 'struct', 'super', + 'to', 'trait', 'type', 'unsafe', 'use', 'with', 'while' + ), + // Boolean values + 2 => array( 'true', 'false' ), + // Structs and built-in types + 3 => array( + 'u8', 'i8', + 'u16', 'i16', + 'u32', 'i32', + 'u64', 'i64', + 'f32', 'f64', + 'int', 'uint', + 'float', + 'bool', + 'str', 'char', + 'Argument', 'AsyncWatcher', 'BorrowRecord', 'BufReader', + 'BufWriter', 'BufferedReader', 'BufferedStream', 'BufferedWriter', + 'ByRef', 'ByteIterator', 'CFile', 'CString', 'CStringIterator', + 'Cell', 'Chain', 'Chan', 'ChanOne', 'CharIterator', + 'CharOffsetIterator', 'CharRange', 'CharSplitIterator', + 'CharSplitNIterator', 'ChunkIter', 'Condition', 'ConnectRequest', + 'Coroutine', 'Counter', 'CrateMap', 'Cycle', 'DeflateWriter', + 'Display', 'ElementSwaps', 'Enumerate', 'Exp', 'Exp1', 'FileDesc', + 'FileReader', 'FileStat', 'FileStream', 'FileWriter', 'Filter', + 'FilterMap', 'FlatMap', 'FormatSpec', 'Formatter', 'FsRequest', + 'Fuse', 'GarbageCollector', 'GetAddrInfoRequest', 'Handle', + 'HashMap', 'HashMapIterator', 'HashMapMoveIterator', + 'HashMapMutIterator', 'HashSet', 'HashSetIterator', + 'HashSetMoveIterator', 'Hint', 'IdleWatcher', 'InflateReader', + 'Info', 'Inspect', 'Invert', 'IoError', 'Isaac64Rng', 'IsaacRng', + 'LineBufferedWriter', 'Listener', 'LocalHeap', 'LocalStorage', + 'Loop', 'Map', 'MatchesIndexIterator', 'MemReader', 'MemWriter', + 'MemoryMap', 'ModEntry', 'MoveIterator', 'MovePtrAdaptor', + 'MoveRevIterator', 'NoOpRunnable', 'NonCopyable', 'Normal', + 'OSRng', 'OptionIterator', 'Parser', 'Path', 'Peekable', + 'Permutations', 'Pipe', 'PipeStream', 'PluralArm', 'Port', + 'PortOne', 'Process', 'ProcessConfig', 'ProcessOptions', + 'ProcessOutput', 'RC', 'RSplitIterator', 'RandSample', 'Range', + 'RangeInclusive', 'RangeStep', 'RangeStepInclusive', 'Rc', 'RcMut', + 'ReaderRng', 'Repeat', 'ReprVisitor', 'RequestData', + 'ReseedWithDefault', 'ReseedingRng', 'Scan', 'SchedOpts', + 'SelectArm', 'SharedChan', 'SharedPort', 'SignalWatcher', + 'SipState', 'Skip', 'SkipWhile', 'SocketAddr', 'SplitIterator', + 'StackPool', 'StackSegment', 'StandardNormal', 'StdErrLogger', + 'StdIn', 'StdOut', 'StdReader', 'StdRng', 'StdWriter', + 'StrSplitIterator', 'StreamWatcher', 'TTY', 'Take', 'TakeWhile', + 'Task', 'TaskBuilder', 'TaskOpts', 'TcpAcceptor', 'TcpListener', + 'TcpStream', 'TcpWatcher', 'Timer', 'TimerWatcher', 'TrieMap', + 'TrieMapIterator', 'TrieSet', 'TrieSetIterator', 'Tube', + 'UdpSendRequest', 'UdpSocket', 'UdpStream', 'UdpWatcher', 'Unfold', + 'UnixAcceptor', 'UnixListener', 'UnixStream', 'Unwinder', + 'UvAddrInfo', 'UvError', 'UvEventLoop', 'UvFileStream', + 'UvIoFactory', 'UvPausibleIdleCallback', 'UvPipeStream', + 'UvProcess', 'UvRemoteCallback', 'UvSignal', 'UvTTY', + 'UvTcpAcceptor', 'UvTcpListener', 'UvTcpStream', 'UvTimer', + 'UvUdpSocket', 'UvUnboundPipe', 'UvUnixAcceptor', 'UvUnixListener', + 'VecIterator', 'VecMutIterator', 'Weighted', 'WeightedChoice', + 'WindowIter', 'WriteRequest', 'XorShiftRng', 'Zip', 'addrinfo', + 'uv_buf_t', 'uv_err_data', 'uv_process_options_t', 'uv_stat_t', + 'uv_stdio_container_t', 'uv_timespec_t' + ), + // Enums + 4 => array( + 'Alignment', 'Count', 'Either', 'ExponentFormat', 'FPCategory', + 'FileAccess', 'FileMode', 'Flag', 'IoErrorKind', 'IpAddr', + 'KeyValue', 'MapError', 'MapOption', 'MemoryMapKind', 'Method', + 'NullByteResolution', 'Option', 'Ordering', 'PathPrefix', 'Piece', + 'PluralKeyword', 'Position', 'Protocol', 'Result', 'SchedHome', + 'SchedMode', 'SeekStyle', 'SendStr', 'SignFormat', + 'SignificantDigits', 'Signum', 'SocketType', 'StdioContainer', + 'TaskResult', 'TaskType', 'UvSocketAddr', 'Void', 'uv_handle_type', + 'uv_membership', 'uv_req_type' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '&', '|', '^', '!', '<', '>', '~', '@', + ':', + ';', ',', + '=' + ), + + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #708;', + 2 => 'color: #219;', + 3 => 'color: #05a;', + 4 => 'color: #800;' + ), + 'COMMENTS' => array( + 0 => 'color: #a50; font-style: italic;', + 'MULTI' => 'color: #a50; 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' => '' + ), + 'STRINGS' => array( + 0 => 'color: #a11;' + ), + '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;' + ), + 'BRACKETS' => array(''), + 'METHODS' => array( + 1 => 'color: #164;' + ), + 'SYMBOLS' => array( + 0 => '' + ), + '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 +); diff --git a/inc/geshi/sas.php b/vendor/easybook/geshi/geshi/sas.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/sas.php rename to vendor/easybook/geshi/geshi/sas.php diff --git a/vendor/easybook/geshi/geshi/sass.php b/vendor/easybook/geshi/geshi/sass.php new file mode 100644 index 0000000000000000000000000000000000000000..286f4bfab88854cb27e0c98b38e03a6c704a4ea3 --- /dev/null +++ b/vendor/easybook/geshi/geshi/sass.php @@ -0,0 +1,248 @@ +<?php +/************************************************************************************* + * sass.php + * ------- + * Author: Javier Eguiluz (javier.eguiluz@gmail.com) + * Release Version: 1.0.8.12 + * Date Started: 2014/05/10 + * + * SASS language file for GeSHi. + * + * CHANGES + * ------- + * 2014/05/10 (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' => 'Sass', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // properties + 1 => array( + 'azimuth', 'background-attachment', 'background-color', + 'background-image', 'background-position', 'background-repeat', + 'background', 'border-bottom-color', 'border-radius', + 'border-top-left-radius', 'border-top-right-radius', + 'border-bottom-right-radius', 'border-bottom-left-radius', + 'border-bottom-style', 'border-bottom-width', 'border-left-color', + 'border-left-style', 'border-left-width', 'border-right', + 'border-right-color', 'border-right-style', 'border-right-width', + 'border-top-color', 'border-top-style', + 'border-top-width','border-bottom', 'border-collapse', + 'border-left', 'border-width', 'border-color', 'border-spacing', + 'border-style', 'border-top', 'border', 'box-shadow', 'caption-side', 'clear', + 'clip', 'color', 'content', 'counter-increment', 'counter-reset', + 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display', + 'elevation', 'empty-cells', 'float', 'font-family', 'font-size', + 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', + 'font-weight', 'font', 'line-height', 'letter-spacing', + 'list-style', 'list-style-image', 'list-style-position', + 'list-style-type', 'margin-bottom', 'margin-left', 'margin-right', + 'margin-top', 'margin', 'marker-offset', 'marks', 'max-height', + 'max-width', 'min-height', 'min-width', 'orphans', 'outline', + 'outline-color', 'outline-style', 'outline-width', 'overflow', + 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', + 'padding', 'page', 'page-break-after', 'page-break-before', + 'page-break-inside', 'pause-after', 'pause-before', 'pause', + 'pitch', 'pitch-range', 'play-during', 'position', 'quotes', + 'richness', 'right', 'size', 'speak-header', 'speak-numeral', + 'speak-punctuation', 'speak', 'speech-rate', 'stress', + 'table-layout', 'text-align', 'text-decoration', 'text-indent', + 'text-shadow', 'text-transform', 'top', 'unicode-bidi', + 'vertical-align', 'visibility', 'voice-family', 'volume', + 'white-space', 'widows', 'width', 'word-spacing', 'z-index', + 'bottom', 'left', 'height', + // media queries + 'screen', 'orientation', 'min-device-width', 'max-device-width', + ), + // reserved words for values + 2 => array( + // colors + 'aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', + 'maroon', 'navy', 'olive', 'orange', 'purple', 'red', 'silver', + 'teal', 'white', 'yellow', + // media queries + 'landscape', 'portrait', + // other + 'above', 'absolute', 'always', 'armenian', 'aural', 'auto', + 'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink', + 'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left', + 'center-right', 'center', 'circle', 'cjk-ideographic', + 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', + 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero', + 'decimal', 'default', 'digits', 'disc', 'dotted', 'double', + 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', + 'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast', + 'fixed', 'georgian', 'groove', 'hebrew', 'help', 'hidden', + 'hide', 'higher', 'high', 'hiragana-iroha', 'hiragana', 'icon', + 'inherit', 'inline-table', 'inline', 'inline-block', 'inset', 'inside', + 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana', 'landscape', + 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', + 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', + 'lower-roman', 'lowercase', 'ltr', 'lower', 'low', + 'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize', + 'narrower', 'ne-resize', 'no-close-quote', + 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', + 'nw-resize', 'oblique', 'once', 'open-quote', 'outset', + 'outside', 'overline', 'pointer', 'portrait', 'px', + 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', + 'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif', + 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', + 'separate', 'serif', 'show', 'silent', 'slow', 'slower', + 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', + 'spell-out', 'square', 'static', 'status-bar', 'super', + 'sw-resize', 'table-caption', 'table-cell', 'table-column', + 'table-column-group', 'table-footer-group', 'table-header-group', + 'table-row', 'table-row-group', 'text', 'text-bottom', + 'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed', + 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', + 'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait', + 'wider', 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', + 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow', 'yes' + ), + // directives + 3 => array( + '@at-root', '@charset', '@content', '@debug', '@each', '@else', '@elseif', + '@else if', '@extend', '@font-face', '@for', '@function', '@if', + '@import', '@include', '@media', '@mixin', '@namespace', '@page', + '@return', '@warn', '@while', + ), + // built-in Sass functions + 4 => array( + 'rgb', 'rgba', 'red', 'green', 'blue', 'mix', + 'hsl', 'hsla', 'hue', 'saturation', 'lightness', 'adjust-hue', + 'lighten', 'darken', 'saturate', 'desaturate', 'grayscale', + 'complement', 'invert', + 'alpha', 'rgba', 'opacify', 'transparentize', + 'adjust-color', 'scale-color', 'change-color', 'ie-hex-str', + 'unquote', 'quote', 'str-length', 'str-insert', 'str-index', + 'str-slice', 'to-upper-case', 'to-lower-case', + 'percentage', 'round', 'ceil', 'floor', 'abs', 'min', 'max', 'random', + 'length', 'nth', 'join', 'append', 'zip', 'index', 'list-separator', + 'map-get', 'map-merge', 'map-remove', 'map-keys', 'map-values', + 'map-has-key', 'keywords', + 'feature-exists', 'variable-exists', 'global-variable-exists', + 'function-exists', 'mixin-exists', 'inspect', 'type-of', 'unit', + 'unitless', 'comparable', 'call', + 'if', 'unique-id', + ), + // reserved words + 5 => array( + '!important', '!default', '!optional', 'true', 'false', 'with', + 'without', 'null', 'from', 'through', 'to', 'in', 'and', 'or', + 'only', 'not', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', ':', ';', + '>', '+', '*', ',', '^', '=', + '&', '~', '!', '%', '?', '...', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #993333;', + 3 => 'color: #990000;', + 4 => 'color: #000000; font-weight: bold;', + 5 => 'color: #009900;', + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #00AA00;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #00AA00;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #cc00cc;', + 1 => 'color: #6666ff;', + 2 => 'color: #3333ff;', + 3 => 'color: #933;', + 4 => 'color: #ff6633;', + 5 => 'color: #0066ff;', + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + // Variables + 0 => "[$][a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*", + // Hexadecimal colors + 1 => "\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})", + // CSS Pseudo classes + // note: & is needed for > (i.e. > ) + 2 => "(?<!\\\\):(?!\d)[a-zA-Z0-9\-]+\b(?:\s*(?=[\{\.#a-zA-Z,:+*&](.|\n)|<\|))", + // Measurements + 3 => "[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)", + // Interpolation + 4 => "(\#\{.*\})", + // Browser prefixed properties + 5 => "(\-(moz|ms|o|webkit)\-[a-z\-]*)", + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2, +); diff --git a/inc/geshi/scala.php b/vendor/easybook/geshi/geshi/scala.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/scala.php rename to vendor/easybook/geshi/geshi/scala.php diff --git a/inc/geshi/scheme.php b/vendor/easybook/geshi/geshi/scheme.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/scheme.php rename to vendor/easybook/geshi/geshi/scheme.php index a84b90809a9dbfe22df126f7fd49bb468026eef3..59870846b3e23b08a7210aa26353b7c12d3d6f65 --- a/inc/geshi/scheme.php +++ b/vendor/easybook/geshi/geshi/scheme.php @@ -166,5 +166,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/scilab.php b/vendor/easybook/geshi/geshi/scilab.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/scilab.php rename to vendor/easybook/geshi/geshi/scilab.php diff --git a/vendor/easybook/geshi/geshi/scl.php b/vendor/easybook/geshi/geshi/scl.php new file mode 100644 index 0000000000000000000000000000000000000000..6b0e494f2aca8698a7bed80528fb2e469c7ee1a8 --- /dev/null +++ b/vendor/easybook/geshi/geshi/scl.php @@ -0,0 +1,148 @@ +<?php +/************************************************************************************* + * <scl.php> + * --------------------------------- + * Author: Leonhard Hösch (leonhard.hoesch@siemens.com) + * Copyright: (c) 2008 by Leonhard Hösch (siemens.de) + * Release Version: 1.0.8.12 + * Date Started: 2012/09/25 + * + * SCL language file for GeSHi. + * + * A SCL langauge file. + * + * CHANGES + * ------- + * <date-of-release> (<GeSHi release>) + * - First Release + * + * TODO (updated <date-of-release>) + * ------------------------- + * <things-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' => 'SCL', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('(*' => '*)'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '$', + 'KEYWORDS' => array( + 1 => array( + 'AND','ANY','ARRAY','AT','BEGIN','BLOCK_DB','BLOCK_FB','BLOCK_FC','BLOCK_SDB', + 'BLOCK_SFB','BLOCK_SFC','BOOL','BY','BYTE','CASE','CHAR','CONST','CONTINUE','COUNTER', + 'DATA_BLOCK','DATE','DATE_AND_TIME','DINT','DIV','DO','DT','DWORD','ELSE','ELSIF', + 'EN','END_CASE','END_CONST','END_DATA_BLOCK','END_FOR','END_FUNCTION', + 'END_FUNCTION_BLOCK','END_IF','END_LABEL','END_TYPE','END_ORGANIZATION_BLOCK', + 'END_REPEAT','END_STRUCT','END_VAR','END_WHILE','ENO','EXIT','FALSE','FOR','FUNCTION', + 'FUNCTION_BLOCK','GOTO','IF','INT','LABEL','MOD','NIL','NOT','OF','OK','OR', + 'ORGANIZATION_BLOCK','POINTER','PROGRAM','REAL','REPEAT','RETURN','S5TIME','STRING', + 'STRUCT','THEN','TIME','TIMER','TIME_OF_DAY','TO','TOD','TRUE','TYPE','VAR', + 'VAR_TEMP','UNTIL','VAR_INPUT','VAR_IN_OUT','VAR_OUTPUT','VOID','WHILE','WORD','XOR' + ), + 2 =>array( + 'UBLKMOV','FILL','CREAT_DB','DEL_DB','TEST_DB','COMPRESS','REPL_VAL','CREA_DBL','READ_DBL', + 'WRIT_DBL','CREA_DB','RE_TRIGR','STP','WAIT','MP_ALM','CiR','PROTECT','SET_CLK','READ_CLK', + 'SNC_RTCB','SET_CLKS','RTM','SET_RTM','CTRL_RTM','READ_RTM','TIME_TCK','RD_DPARM', + 'RD_DPARA','WR_PARM','WR_DPARM','PARM_MOD','WR_REC','RD_REC','RD_DPAR','RDREC','WRREC','RALRM', + 'SALRM','RCVREC','PRVREC','SET_TINT','CAN_TINT','ACT_TINT','QRY_TINT','SRT_DINT','QRY_DINT', + 'CAN_DINT','MSK_FLT','DMSK_FLT','READ_ERR','DIS_IRT','EN_IRT','DIS_AIRT','EN_AIRT','RD_SINFO', + 'RDSYSST','WR_USMSG','OB_RT','C_DIAG','DP_TOPOL','UPDAT_PI','UPDAT_PO','SYNC_PI','SYNC_PO', + 'SET','RSET','DRUM','GADR_LGC','LGC_GADR','RD_LGADR','GEO_LOG','LOG_GEO','DP_PRAL','DPSYC_FR', + 'D_ACT_DP','DPNRM_DG','DPRD_DAT','DPWR_DAT','PN_IN','PN_OUT','PN_DP','WWW','IP_CONF','GETIO', + 'SETIO','GETIO_PART','SETIO_PART','GD_SND','GD_RCV','USEND','URCV','BSEND','BRCV','PUT','GET', + 'PRINT','START','STOP','RESUME','STATUS','USTATUS','CONTROL','C_CNTRL','X_SEND','X_RCV', + 'X_GET','X_PUT','X_ABORT','I_GET','I_PUT','I_ABORT','TCON','TDISCON','TSEND','TRCV','TUSEND', + 'TURCV','NOTIFY','NOTIFY_8P','ALARM','ALARM_8P','ALARM_8','AR_SEND','DIS_MSG','EN_MSG', + 'ALARM_SQ','ALARM_S','ALARM_SC','ALARM_DQ','LARM_D','READ_SI','DEL_SI','TP','TON','TOF','CTU', + 'CTD','CTUD','CONT_C','CONT_S','PULSEGEN','Analog','DIGITAL','COUNT','FREQUENC','PULSE', + 'SEND_PTP','RECV_PTP','RES_RECV','SEND_RK','FETCH_RK','SERVE_RK','H_CTRL','state' + ), + ), + 'SYMBOLS' => array( + '.', '"', '|', ';', ',', '=>', '>=', '<=', ':=', '=', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #ff6f00;', + ), + 'COMMENTS' => array( + 1 => 'color: #009600; font-style: italic;', + 'MULTI' => 'color: #009600; 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: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'NUMBERS' => GESHI_NUMBER_INT_BASIC, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '', + 2 => '' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '<?php11!!' => '!!11?>' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + ), + 'TAB_WIDTH' => 4 +); diff --git a/inc/geshi/sdlbasic.php b/vendor/easybook/geshi/geshi/sdlbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/sdlbasic.php rename to vendor/easybook/geshi/geshi/sdlbasic.php index 381161fdf64746af1a15d417631b8490085d3add..b95003fccd95beb1db2537519188907dea9734ac --- a/inc/geshi/sdlbasic.php +++ b/vendor/easybook/geshi/geshi/sdlbasic.php @@ -161,5 +161,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/smalltalk.php b/vendor/easybook/geshi/geshi/smalltalk.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/smalltalk.php rename to vendor/easybook/geshi/geshi/smalltalk.php diff --git a/inc/geshi/smarty.php b/vendor/easybook/geshi/geshi/smarty.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/smarty.php rename to vendor/easybook/geshi/geshi/smarty.php index 86e9d44c0155ffd96e8ddf11386bfaa7904fae26..883b3eb7c94296d087176d3b9fb091d7a0f0b4fd --- a/inc/geshi/smarty.php +++ b/vendor/easybook/geshi/geshi/smarty.php @@ -188,5 +188,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/spark.php b/vendor/easybook/geshi/geshi/spark.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/spark.php rename to vendor/easybook/geshi/geshi/spark.php diff --git a/inc/geshi/sparql.php b/vendor/easybook/geshi/geshi/sparql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/sparql.php rename to vendor/easybook/geshi/geshi/sparql.php diff --git a/inc/geshi/sql.php b/vendor/easybook/geshi/geshi/sql.php old mode 100644 new mode 100755 similarity index 97% rename from inc/geshi/sql.php rename to vendor/easybook/geshi/geshi/sql.php index 4d08a51fe1de61f578b23189f82c6b71018c58ee..f4d130eb94ef0506f5d7f7b139383121321c779b --- a/inc/geshi/sql.php +++ b/vendor/easybook/geshi/geshi/sql.php @@ -159,6 +159,11 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( //' + 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\.\|\#|^&])" + ) ) ); diff --git a/inc/geshi/stonescript.php b/vendor/easybook/geshi/geshi/stonescript.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/stonescript.php rename to vendor/easybook/geshi/geshi/stonescript.php diff --git a/inc/geshi/systemverilog.php b/vendor/easybook/geshi/geshi/systemverilog.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/systemverilog.php rename to vendor/easybook/geshi/geshi/systemverilog.php diff --git a/inc/geshi/tcl.php b/vendor/easybook/geshi/geshi/tcl.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/tcl.php rename to vendor/easybook/geshi/geshi/tcl.php diff --git a/inc/geshi/teraterm.php b/vendor/easybook/geshi/geshi/teraterm.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/teraterm.php rename to vendor/easybook/geshi/geshi/teraterm.php diff --git a/inc/geshi/text.php b/vendor/easybook/geshi/geshi/text.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/text.php rename to vendor/easybook/geshi/geshi/text.php index 87fb7110c2b739b30e3b0097b2e1742e4e333498..3c7f17c62da306085102cebd511cdc0ad0430828 --- a/inc/geshi/text.php +++ b/vendor/easybook/geshi/geshi/text.php @@ -80,5 +80,3 @@ $language_data = array ( ), ) ); - -?> diff --git a/inc/geshi/thinbasic.php b/vendor/easybook/geshi/geshi/thinbasic.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/thinbasic.php rename to vendor/easybook/geshi/geshi/thinbasic.php index f54959e16abf0069d99fa004266e14b45a25d393..3d2034921ff65f0199b6dad630192cda5b24424f --- a/inc/geshi/thinbasic.php +++ b/vendor/easybook/geshi/geshi/thinbasic.php @@ -864,5 +864,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/tsql.php b/vendor/easybook/geshi/geshi/tsql.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/tsql.php rename to vendor/easybook/geshi/geshi/tsql.php diff --git a/vendor/easybook/geshi/geshi/twig.php b/vendor/easybook/geshi/geshi/twig.php new file mode 100644 index 0000000000000000000000000000000000000000..cc790532c1c51547cb878fac001b6ae50404660a --- /dev/null +++ b/vendor/easybook/geshi/geshi/twig.php @@ -0,0 +1,190 @@ +<?php +/************************************************************************************* + * twig.php + * ---------- + * Author: Keyvan Akbary (keyvan@kiwwito.com) + * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/) + * Release Version: 1.0.0 + * Date Started: 2011/12/05 + * + * Twig template language file for GeSHi. + * + * CHANGES + * ------- + * 2012/09/28 (1.9.0 by José Andrés Puertas y Javier Eguiluz) + * - Added new tags, filters and functions + * - Added regexps for variables, objects and properties + * - Lots of other minor tweaks (delimites, comments, ...) + * + * 2011/12/05 (1.0.0 by Keyvan Akbary) + * - 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' => 'Twig', + 'COMMENT_SINGLE' => array('{#' => '#}'), + 'COMMENT_MULTI' => array('{#' => '#}'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + //TWIG + //Tags + 1 => array( + 'autoescape', 'endautoescape', 'block', 'endblock', 'do', 'embed', 'endembed', + 'extends', 'filter', 'endfilter', 'for', 'endfor', 'from', 'if', 'else', 'elseif', 'endif', + 'import', 'include', 'macro', 'endmacro', 'raw', 'endraw', 'sandbox', 'set', 'endset', + 'spaceless', 'endspaceless', 'use', 'verbatim', 'endverbatim', + 'trans', 'endtrans', 'transchoice', 'endtranschoice' + ), + //Filters + 2 => array( + 'abs', 'batch', 'capitalize', 'convert_encoding', 'date', 'date_modify', 'default', + 'escape', 'first', 'format', 'join', 'json_encode', 'keys', 'last', 'length', 'lower', + 'merge', 'nl2br', 'number_format', 'raw', 'replace', 'reverse', 'slice', 'sort', 'split', + 'striptags', 'title', 'trans', 'trim', 'upper', 'url_encode' + ), + //Functions + 3 => array( + 'attribute', 'block', 'constant', 'cycle', 'date', 'dump', 'include', + 'parent', 'random', 'range', 'source', 'template_from_string' + ), + //Tests + 4 => array( + 'constant', 'defined', 'divisibleby', 'empty', 'even', 'iterable', 'null', + 'odd', 'sameas' + ), + //Operators + 5 => array( + 'in', 'is', 'and', 'b-and', 'or', 'b-or', 'b-xor', 'not', 'into', + 'starts with', 'ends with', 'matches' + ), + 6 => array( + '{{', '}}', '{%', '%}' + ), + ), + 'SYMBOLS' => array( + '+', '-', '/', '/', '*', '**', //Math operators + '==', '!=', '<', '>', '>=', '<=', '===', //Logic operators + '..', '|', '~', '[', ']', '.', '?', ':', '(', ')', //Other + '=' //HTML (attributes) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + //Twig + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', //Tags + 2 => 'color: #008000;', //Filters + 3 => 'color: #0600FF;', //Functions + 4 => 'color: #804040;', //Tests + 5 => 'color: #008000;', //Operators + 6 => 'color: #008000;' // {{ and {% + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #D36900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #D36900;' + ), + 'SCRIPT' => array( + 0 => '', + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #009000;' + ), + 'REGEXPS' => array( + 0 => 'color: #00aaff;', + 1 => 'color: #00aaff;' + ) + ), + 'URLS' => array( + 1 => 'http://twig.sensiolabs.org/doc/tags/{FNAMEL}.html', + 2 => 'http://twig.sensiolabs.org/doc/filters/{FNAMEL}.html', + 3 => 'http://twig.sensiolabs.org/doc/functions/{FNAMEL}.html', + 4 => 'http://twig.sensiolabs.org/doc/tests/{FNAMEL}.html', + 5 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)", + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '' + ), + 1 => array( + GESHI_SEARCH => "\.([a-zA-Z_][a-zA-Z0-9_]*)", + GESHI_REPLACE => '.\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '{{' => '}}', + '{%' => '%}' + ), + 1 => array( + '{#' => '#}', + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + ) + ) +); diff --git a/inc/geshi/typoscript.php b/vendor/easybook/geshi/geshi/typoscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/typoscript.php rename to vendor/easybook/geshi/geshi/typoscript.php index 6751aaa8da39e30a98c51ebd13ba5d869dbbd883..25671d7288630c092b6de5922e5ca5a79a2968e7 --- a/inc/geshi/typoscript.php +++ b/vendor/easybook/geshi/geshi/typoscript.php @@ -296,5 +296,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ), ); - -?> diff --git a/inc/geshi/unicon.php b/vendor/easybook/geshi/geshi/unicon.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/unicon.php rename to vendor/easybook/geshi/geshi/unicon.php diff --git a/inc/geshi/upc.php b/vendor/easybook/geshi/geshi/upc.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/upc.php rename to vendor/easybook/geshi/geshi/upc.php diff --git a/inc/geshi/urbi.php b/vendor/easybook/geshi/geshi/urbi.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/urbi.php rename to vendor/easybook/geshi/geshi/urbi.php index a7353ea8bba93c5dbab0a23f171d03a28b08ffe0..c73e44404f0ec9aa32ff2ab1f070756f3255f154 --- a/inc/geshi/urbi.php +++ b/vendor/easybook/geshi/geshi/urbi.php @@ -196,5 +196,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4, ); - -?> diff --git a/inc/geshi/uscript.php b/vendor/easybook/geshi/geshi/uscript.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/uscript.php rename to vendor/easybook/geshi/geshi/uscript.php index 58cdb8d9e51e0000071d0f0050cb8d49065eb255..03b1d48a6f1e488cf33e050916809837b8cc4c11 --- a/inc/geshi/uscript.php +++ b/vendor/easybook/geshi/geshi/uscript.php @@ -295,5 +295,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/vala.php b/vendor/easybook/geshi/geshi/vala.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vala.php rename to vendor/easybook/geshi/geshi/vala.php index acac57e2aef4b69b435f092a534267b44acdd25a..28f153427077b661b7484496c9b56cb57277f11b --- a/inc/geshi/vala.php +++ b/vendor/easybook/geshi/geshi/vala.php @@ -147,5 +147,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/vb.php b/vendor/easybook/geshi/geshi/vb.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vb.php rename to vendor/easybook/geshi/geshi/vb.php diff --git a/inc/geshi/vbnet.php b/vendor/easybook/geshi/geshi/vbnet.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vbnet.php rename to vendor/easybook/geshi/geshi/vbnet.php diff --git a/vendor/easybook/geshi/geshi/vbscript.php b/vendor/easybook/geshi/geshi/vbscript.php new file mode 100644 index 0000000000000000000000000000000000000000..6db3bbd3f331f18203ab18fcedf5e4ffcd67c936 --- /dev/null +++ b/vendor/easybook/geshi/geshi/vbscript.php @@ -0,0 +1,153 @@ +<?php +/************************************************************************************* + * vbscript.php + * ------ + * Author: Roberto Rossi (rsoftware@altervista.org) + * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), + * Nigel McNie (http://qbnz.com/highlighter), + * Rory Prendergast (http://www.tanium.com) + * Release Version: 1.0.8.12 + * Date Started: 2012/08/20 + * + * VBScript language file for GeSHi. + * + * CHANGES + * ------- + * 2012/08/20 (1.0.0) + * - First Release + * + * TODO (updated 2004/11/27) + * ------------------------- + * + ************************************************************************************* + * + * 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' => 'VBScript', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + // Comments (either single or multiline with _ + 1 => '/\'.*(?<! _)\n/sU', + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'Empty', 'Nothing', 'Null', 'vbArray', 'vbBoolean', 'vbByte', + 'vbCr', 'vbCrLf', 'vbCurrency', 'vbDate', 'vbDouble', 'vbEmpty', + 'vbError', 'vbFirstFourDays', 'vbFirstFullWeek', 'vbFirstJan1', + 'vbFormFeed', 'vbFriday', 'vbInteger', 'vbLf', 'vbLong', 'vbMonday', + 'vbNewLine', 'vbNull', 'vbNullChar', 'vbNullString', 'vbObject', + 'vbSaturday', 'vbSingle', 'vbString', 'vbSunday', 'vbTab', + 'vbThursday', 'vbTuesday', 'vbUseSystem', 'vbUseSystemDayOfWeek', + 'vbVariant', 'vbWednesday', 'FALSE', 'TRUE' + ), + 2 => array( + 'bs', 'Array', 'Asc', 'Atn', 'CBool', 'CByte', 'CDate', 'CDbl', 'Chr', + 'CInt', 'CLng', 'Cos', 'CreateObject', 'CSng', 'CStr', 'Date', 'DateAdd', + 'DateDiff', 'DatePart', 'DateSerial', 'DateValue', 'Day', 'Eval', 'Exp', + 'Filter', 'Fix', 'FormatDateTime', 'FormatNumber', 'FormatPercent', + 'GetObject', 'Hex', 'Hour', 'InputBox', 'InStr', 'InstrRev', 'Int', + 'IsArray', 'IsDate', 'IsEmpty', 'IsNull', 'IsNumeric', 'IsObject', 'Join', + 'LBound', 'LCase', 'Left', 'Len', 'Log', 'LTrim', 'Mid', 'Minute', 'Month', + 'MonthName', 'MsgBox', 'Now', 'Oct', 'Replace', 'RGB', 'Right', 'Rnd', + 'Round', 'RTrim', 'ScriptEngine', 'ScriptEngineBuildVersion', + 'ScriptEngineMajorVersion', 'ScriptEngineMinorVersion', 'Second', + 'Sgn', 'Sin', 'Space', 'Split', 'Sqr', 'StrComp', 'String', 'StrReverse', + 'Tan', 'Time', 'TimeSerial', 'TimeValue', 'Trim', 'TypeName', 'UBound', + 'UCase', 'VarType', 'Weekday', 'WeekdayName', 'Year' + ), + 3 => array( + 'Call', 'Case', 'Const', 'Dim', 'Do', 'Each', 'Else', 'End', 'Erase', + 'Execute', 'Exit', 'For', 'Function', 'Gosub', 'Goto', 'If', 'Loop', + 'Next', 'On Error', 'Option Explicit', 'Private', 'Public', + 'Randomize', 'ReDim', 'Rem', 'Resume', 'Select', 'Set', 'Sub', 'Then', + 'Wend', 'While', 'With', 'In', 'To', 'Step' + ), + 4 => array( + 'And', 'Eqv', 'Imp', 'Is', 'Mod', 'Not', 'Or', 'Xor' + ), + ), + 'SYMBOLS' => array( + '-', '&', '*', '/', '\\', '^', '+', '<', '<=', '<>', '=', '>', '>=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #F660AB; font-weight: bold;', + 2 => 'color: #E56717; font-weight: bold;', + 3 => 'color: #8D38C9; font-weight: bold;', + 4 => 'color: #151B8D; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;' + ), + 'BRACKETS' => array( + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'SPACE_AS_WHITESPACE' => true + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER + ) + ) +); diff --git a/inc/geshi/vedit.php b/vendor/easybook/geshi/geshi/vedit.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/vedit.php rename to vendor/easybook/geshi/geshi/vedit.php diff --git a/inc/geshi/verilog.php b/vendor/easybook/geshi/geshi/verilog.php old mode 100644 new mode 100755 similarity index 61% rename from inc/geshi/verilog.php rename to vendor/easybook/geshi/geshi/verilog.php index 2bf66d1c0034c66cd66dd666e87bf7fb1e8830c5..d6ec08615860a8b9e501222a47a2fb9dc6e54481 --- a/inc/geshi/verilog.php +++ b/vendor/easybook/geshi/geshi/verilog.php @@ -2,8 +2,8 @@ /** * verilog.php * ----------- - * Author: G�nter Dannoritzer <dannoritzer@web.de> - * Copyright: (C) 2008 Guenter Dannoritzer + * Author: Günter Dannoritzer <dannoritzer@web.de> + * Copyright: (C) 2008 Günter Dannoritzer * Release Version: 1.0.8.11 * Date Started: 2008/05/28 * @@ -19,6 +19,9 @@ * TODO (updated 2008/05/29) * ------------------------- * + * 2013/01/08 + * - extended keywords to include system keywords + * ************************************************************************************* * * This file is part of GeSHi. @@ -49,22 +52,41 @@ $language_data = array ( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( // keywords - 1 => array('always', 'and', 'assign', 'begin', 'buf', 'bufif0', 'bufif1', 'case', - 'casex', 'casez', 'cmos', 'deassign', 'default', 'defparam', - 'disable', 'edge', 'else', 'end', 'endcase', 'endfunction', - 'endmodule', 'endprimitive', 'endspecify', 'endtable', 'endtask', - 'event', 'fork', 'for', 'force', 'forever', 'function', 'highz0', - 'highz1', 'if', 'ifnone', 'initial', 'inout', 'input', 'integer', - 'join', 'large', 'macromodule', 'medium', 'module', 'nand', - 'negedge', 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or', - 'output', 'parameter', 'pmos', 'posedge', 'primitive', 'pull0', - 'pull1', 'pulldown', 'pullup', 'rcmos', 'real', 'realtime', 'reg', - 'release', 'repeat', 'rnmos', 'rpmos', 'rtran', 'rtranif0', - 'rtranif1', 'scalared', 'small', 'specify', 'specparam', - 'strong0', 'strong1', 'supply0', 'supply1', 'table', 'task', - 'time', 'tran', 'tranif0', 'tranif1', 'tri', 'tri0', 'tri1', - 'triand', 'trior', 'trireg', 'vectored', 'wait', 'wand', 'weak0', - 'weak1', 'while', 'wire', 'wor', 'xnor', 'xor' + 1 => array( + 'accept_on','alias', + 'always','always_comb','always_ff','always_latch','and','assert', + 'assign','assume','automatic','before','begin','bind','bins','binsof', + 'bit','break','buf','bufif0','bufif1','byte','case','casex','casez', + 'cell','chandle','checker','class','clocking','cmos','config','const', + 'constraint','context','continue','cover','covergroup','coverpoint','cross', + 'deassign','default','defparam','design','disable','dist','do','edge','else', + 'end','endcase','endchecker','endclass','endclocking','endconfig', + 'endfunction','endgenerate','endgroup','endinterface','endmodule', + 'endpackage','endprimitive','endprogram','endproperty','endspecify', + 'endsequence','endtable','endtask','enum','event','eventually','expect', + 'export','extends','extern','final','first_match','for','force','foreach', + 'forever','fork','forkjoin','function','generate','genvar','global', + 'highz0','highz1','if','iff','ifnone','ignore_bins','illegal_bins', + 'implies','import','incdir','include','initial','inout','input','inside', + 'instance','int','integer','interface','intersect','join','join_any', + 'join_none','large','let','liblist','library','local','localparam', + 'logic','longint','macromodule','matches','medium','modport','module','nand', + 'negedge','new','nexttime','nmos','nor','noshowcancelled','not','notif0', + 'notif1','null','or','output','package','packed','parameter','pmos','posedge', + 'primitive','priority','program','property','protected','pull0','pull1', + 'pulldown','pullup','pulsestyle_ondetect','pulsestyle_onevent','pure', + 'rand','randc','randcase','randsequence','rcmos','real','realtime','ref', + 'reg','reject_on','release','repeat','restrict','return','rnmos','rpmos', + 'rtran','rtranif0','rtranif1','s_always','s_eventually','s_nexttime', + 's_until','s_until_with','scalared','sequence','shortint','shortreal', + 'showcancelled','signed','small','solve','specify','specparam','static', + 'string','strong','strong0','strong1','struct','super','supply0','supply1', + 'sync_accept_on','sync_reject_on','table','tagged','task','this','throughout', + 'time','timeprecision','timeunit','tran','tranif0','tranif1','tri','tri0', + 'tri1','triand','trior','trireg','type','typedef','union','unique','unique0', + 'unsigned','until','until_with','untyped','use','uwire','var','vectored', + 'virtual','void','wait','wait_order','wand','weak','weak0','weak1','while', + 'wildcard','wire','with','within','wor','xnor','xor' ), // system tasks 2 => array( @@ -169,5 +191,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/vhdl.php b/vendor/easybook/geshi/geshi/vhdl.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vhdl.php rename to vendor/easybook/geshi/geshi/vhdl.php index a8f37e67664f8834d52a08df5f061a504b29c04e..cc8158fcf97d9244ed96485bea4f684516a7c168 --- a/inc/geshi/vhdl.php +++ b/vendor/easybook/geshi/geshi/vhdl.php @@ -179,5 +179,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/vim.php b/vendor/easybook/geshi/geshi/vim.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/vim.php rename to vendor/easybook/geshi/geshi/vim.php index fe7e5e006df0306fb637c717421b2fa2a7f8bb48..e2e363477bc7870beef20a6d94c397626aa69d72 --- a/inc/geshi/vim.php +++ b/vendor/easybook/geshi/geshi/vim.php @@ -416,5 +416,3 @@ $language_data = array( 'SCRIPT_DELIMITERS' => array(), 'HIGHLIGHT_STRICT_BLOCK' => array() ); - -?> diff --git a/inc/geshi/visualfoxpro.php b/vendor/easybook/geshi/geshi/visualfoxpro.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/visualfoxpro.php rename to vendor/easybook/geshi/geshi/visualfoxpro.php diff --git a/inc/geshi/visualprolog.php b/vendor/easybook/geshi/geshi/visualprolog.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/visualprolog.php rename to vendor/easybook/geshi/geshi/visualprolog.php index d36f1c67ad8dfaae08b4bb0a85c609e59b02b7b5..26c438d21d8135bf01a2b3159301272955f244cd --- a/inc/geshi/visualprolog.php +++ b/vendor/easybook/geshi/geshi/visualprolog.php @@ -125,5 +125,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/whitespace.php b/vendor/easybook/geshi/geshi/whitespace.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/whitespace.php rename to vendor/easybook/geshi/geshi/whitespace.php index 58f39637639323c06ee3659708ddd57e89a84d7c..eec0be3f675e4b18ef1af4eee712135040322fd5 --- a/inc/geshi/whitespace.php +++ b/vendor/easybook/geshi/geshi/whitespace.php @@ -117,5 +117,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/inc/geshi/whois.php b/vendor/easybook/geshi/geshi/whois.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/whois.php rename to vendor/easybook/geshi/geshi/whois.php diff --git a/inc/geshi/winbatch.php b/vendor/easybook/geshi/geshi/winbatch.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/winbatch.php rename to vendor/easybook/geshi/geshi/winbatch.php diff --git a/inc/geshi/xbasic.php b/vendor/easybook/geshi/geshi/xbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/xbasic.php rename to vendor/easybook/geshi/geshi/xbasic.php diff --git a/inc/geshi/xml.php b/vendor/easybook/geshi/geshi/xml.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xml.php rename to vendor/easybook/geshi/geshi/xml.php index 6354e457ba535d81fb30bab7515e94ec3b8635aa..88d17901e8e3192cc5b71aefe16222c6158e0f53 --- a/inc/geshi/xml.php +++ b/vendor/easybook/geshi/geshi/xml.php @@ -153,5 +153,3 @@ $language_data = array ( ) ) ); - -?> diff --git a/vendor/easybook/geshi/geshi/xojo.php b/vendor/easybook/geshi/geshi/xojo.php new file mode 100644 index 0000000000000000000000000000000000000000..58fcab1031f1801252f25f2198a857f45f65c42e --- /dev/null +++ b/vendor/easybook/geshi/geshi/xojo.php @@ -0,0 +1,166 @@ +<?php +/************************************************************************************* + * xojo.php + * -------- + * Author: Dr Garry Pettet (contact@garrypettet.com) + * Copyright: (c) 2014 Dr Garry Pettet (http://garrypettet.com) + * Release Version: 1.0.0 + * Date Started: 2014/10/19 + * + * Xojo language file for GeSHi. + * + * CHANGES + * ------- + * 2014/10/19 (1.0.8.12) + * - First Release + * + * TODO (updated 2014/10/19) + * ------------------------- + * + ************************************************************************************* + * + * 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' => 'Xojo', + 'COMMENT_SINGLE' => array(1 => "'", 2 => '//', 3 => 'rem'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'NUMBERS' => array( + 1 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE, // integers + 2 => GESHI_NUMBER_FLT_NONSCI // floating point numbers + ), + 'KEYWORDS' => array( + //Keywords + 1 => array( + 'AddHandler', 'AddressOf', 'Aggregates', 'And', 'Array', 'As', 'Assigns', 'Attributes', + 'Break', 'ByRef', 'ByVal', 'Call', 'Case', 'Catch', 'Class', 'Const', 'Continue', + 'CType', 'Declare', 'Delegate', 'Dim', 'Do', 'DownTo', 'Each', 'Else', 'Elseif', 'End', + 'Enum', 'Event', 'Exception', 'Exit', 'Extends', 'False', 'Finally', 'For', + 'Function', 'Global', 'GoTo', 'Handles', 'If', 'Implements', 'In', 'Inherits', + 'Inline68K', 'Interface', 'Is', 'IsA', 'Lib', 'Loop', 'Me', 'Mod', 'Module', + 'Namespace', 'New', 'Next', 'Nil', 'Not', 'Object', 'Of', 'Optional', 'Or', + 'ParamArray', 'Private', 'Property', 'Protected', 'Public', 'Raise', + 'RaiseEvent', 'Rect', 'Redim', 'RemoveHandler', 'Return', 'Select', 'Self', 'Shared', + 'Soft', 'Static', 'Step', 'Sub', 'Super', 'Then', 'To', 'True', 'Try', + 'Until', 'Using', 'Wend', 'While', 'With', 'WeakAddressOf', 'Xor' + ), + //Data Types + 2 => array( + 'Boolean', 'CFStringRef', 'CString', 'Currency', 'Double', 'Int8', 'Int16', 'Int32', + 'Int64', 'Integer', 'OSType', 'PString', 'Ptr', 'Short', 'Single', 'String', + 'Structure', 'UInt8', 'UInt16', 'UInt32', 'UInt64', 'UShort', 'WindowPtr', + 'WString', 'XMLNodeType' + ), + //Compiler Directives + 3 => array( + '#Bad', '#Else', '#Endif', '#If', '#Pragma', '#Tag' + ), + ), + 'SYMBOLS' => array( + '+', '-', '*', '=', '/', '>', '<', '^', '(', ')', '.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF;', // keywords + 2 => 'color: #0000FF;', // primitive data types + 3 => 'color: #0000FF;', // compiler commands + ), + 'COMMENTS' => array( + 1 => 'color: #7F0000;', + 'MULTI' => 'color: #7F0000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #6500FE;' + ), + 'NUMBERS' => array( + 1 => 'color: #326598;', // integers + 2 => 'color: #006532;', // floating point numbers + ), + 'METHODS' => array( + 1 => 'color: #000000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + 1 => 'color: #326598;', // &h hex numbers + 2 => 'color: #326598;', // &b hex numbers + 3 => 'color: #326598;', // &o hex numbers + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://docs.xojo.com/index.php/{FNAMEU}', + 2 => 'http://docs.xojo.com/index.php/{FNAMEU}', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 =>'.' + ), + 'REGEXPS' => array( + 1 => array( // &h numbers + // search for &h, then any number of letters a-f or numbers 0-9 + GESHI_SEARCH => '(&h[0-9a-fA-F]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( // &b numbers + // search for &b, then any number of 0-1 digits + GESHI_SEARCH => '(&b[0-1]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( // &o octal numbers + // search for &o, then any number of 0-7 digits + GESHI_SEARCH => '(&o[0-7]*\b)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + 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/xorg_conf.php b/vendor/easybook/geshi/geshi/xorg_conf.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xorg_conf.php rename to vendor/easybook/geshi/geshi/xorg_conf.php index 99edc66523e2ca7dbc6a195d7a2c66d5ecc63c21..41e4496eeb8217441789952b7719a958efb750dd --- a/inc/geshi/xorg_conf.php +++ b/vendor/easybook/geshi/geshi/xorg_conf.php @@ -120,5 +120,3 @@ $language_data = array ( ), 'TAB_WIDTH' => 4 ); - -?> diff --git a/inc/geshi/xpp.php b/vendor/easybook/geshi/geshi/xpp.php old mode 100644 new mode 100755 similarity index 99% rename from inc/geshi/xpp.php rename to vendor/easybook/geshi/geshi/xpp.php index a06e27794f031d270edf73f0e8456d19b431627b..52db2727b971714472a85c1f22750d09a3dcbbab --- a/inc/geshi/xpp.php +++ b/vendor/easybook/geshi/geshi/xpp.php @@ -432,5 +432,3 @@ $language_data = array ( 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); - -?> diff --git a/inc/geshi/yaml.php b/vendor/easybook/geshi/geshi/yaml.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/yaml.php rename to vendor/easybook/geshi/geshi/yaml.php diff --git a/inc/geshi/z80.php b/vendor/easybook/geshi/geshi/z80.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/z80.php rename to vendor/easybook/geshi/geshi/z80.php diff --git a/inc/geshi/zxbasic.php b/vendor/easybook/geshi/geshi/zxbasic.php old mode 100644 new mode 100755 similarity index 100% rename from inc/geshi/zxbasic.php rename to vendor/easybook/geshi/geshi/zxbasic.php diff --git a/vendor/splitbrain/php-archive/.gitignore b/vendor/splitbrain/php-archive/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c6277c187bf8f14922e7322bcf90fa753e201db3 --- /dev/null +++ b/vendor/splitbrain/php-archive/.gitignore @@ -0,0 +1,8 @@ +*.iml +.idea/ +composer.phar +vendor/ +composer.lock +apigen.phar +docs/ + diff --git a/vendor/splitbrain/php-archive/LICENSE b/vendor/splitbrain/php-archive/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..66d08e433795aeb3e1b47c273c857df90aec0efe --- /dev/null +++ b/vendor/splitbrain/php-archive/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 Andreas Gohr <gohr@cosmocode.de> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/README.md b/vendor/splitbrain/php-archive/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f18764b6102d14fcdd5f9eb123c738afe35568be --- /dev/null +++ b/vendor/splitbrain/php-archive/README.md @@ -0,0 +1,70 @@ +PHPArchive - Pure PHP ZIP and TAR handling +========================================== + +This library allows to handle new ZIP and TAR archives without the need for any special PHP extensions (gz and bzip are +needed for compression). It can create new files or extract existing ones. + +To keep things simple, the modification (adding or removing files) of existing archives is not supported. + +[](https://travis-ci.org/splitbrain/php-archive) + +Install +------- + +Use composer: + +```php composer.phar require splitbrain/php-archive``` + +Usage +----- + +The usage for the Zip and Tar classes are basically the same. Here are some +examples for working with TARs to get you started. + +Check the [API docs](https://splitbrain.github.io/php-archive/) for more +info. + + +```php +require_once 'vendor/autoload.php'; +use splitbrain\PHPArchive\Tar; + +// To list the contents of an existing TAR archive, open() it and use +// contents() on it: +$tar = new Tar(); +$tar->open('myfile.tgz'); +$toc = $tar->contents(); +print_r($toc); // array of FileInfo objects + +// To extract the contents of an existing TAR archive, open() it and use +// extract() on it: +$tar = new Tar(); +$tar->open('myfile.tgz'); +$tar->extract('/tmp'); + +// To create a new TAR archive directly on the filesystem (low memory +// requirements), create() it: +$tar = new Tar(); +$tar->create('myfile.tgz'); +$tar->addFile(...); +$tar->addData(...); +... +$tar->close(); + +// To create a TAR archive directly in memory, create() it, add*() +// files and then either save() or getArchive() it: +$tar = new Tar(); +$tar->setCompression(9, Archive::COMPRESS_BZIP); +$tar->create(); +$tar->addFile(...); +$tar->addData(...); +... +$tar->save('myfile.tbz'); // compresses and saves it +echo $tar->getArchive(); // compresses and returns it +``` + +Differences between Tar and Zip: Tars are compressed as a whole, while Zips compress each file individually. Therefore +you can call ```setCompression``` before each ```addFile()``` and ```addData()``` function call. + +The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to +an archive. diff --git a/vendor/splitbrain/php-archive/composer.json b/vendor/splitbrain/php-archive/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..5ad41a8c4544df3dbb7e8bd12ec0c9c8ae56ec01 --- /dev/null +++ b/vendor/splitbrain/php-archive/composer.json @@ -0,0 +1,26 @@ +{ + "name": "splitbrain/php-archive", + "description": "Pure-PHP implementation to read and write TAR and ZIP archives", + "keywords": ["zip", "tar", "archive", "unpack", "extract", "unzip"], + "authors": [ + { + "name": "Andreas Gohr", + "email": "andi@splitbrain.org" + } + ], + "license": "MIT", + + "require": { + "php": ">=5.3.0" + }, + + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + + "autoload": { + "psr-4": { + "splitbrain\\PHPArchive\\": "src" + } + } +} diff --git a/vendor/splitbrain/php-archive/phpunit.xml b/vendor/splitbrain/php-archive/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..d7e1f24284934525fa42355c28ae3bc29fd448ef --- /dev/null +++ b/vendor/splitbrain/php-archive/phpunit.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit backupGlobals="false" + backupStaticAttributes="false" + bootstrap="vendor/autoload.php" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + syntaxCheck="false"> + <testsuites> + <testsuite name="Test Suite"> + <directory suffix=".php">./tests/</directory> + </testsuite> + </testsuites> +</phpunit> \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/src/Archive.php b/vendor/splitbrain/php-archive/src/Archive.php new file mode 100644 index 0000000000000000000000000000000000000000..d672cc6ec025af228d6a19726ab756699e64db61 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Archive.php @@ -0,0 +1,132 @@ +<?php + +namespace splitbrain\PHPArchive; + +abstract class Archive +{ + + const COMPRESS_AUTO = -1; + const COMPRESS_NONE = 0; + const COMPRESS_GZIP = 1; + const COMPRESS_BZIP = 2; + + /** + * Set the compression level and type + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use (use COMPRESS_* constants) + * @return mixed + */ + abstract public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO); + + /** + * Open an existing archive file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + abstract public function open($file); + + /** + * Read the contents of an archive + * + * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @return FileInfo[] + */ + abstract public function contents(); + + /** + * Extract an existing archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the archive file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set, only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * The archive is closed afterwards. Reopen the file with open() again if you want to do additional operations + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return array + */ + abstract public function extract($outdir, $strip = '', $exclude = '', $include = ''); + + /** + * Create a new archive file + * + * If $file is empty, the archive file will be created in memory + * + * @param string $file + */ + abstract public function create($file = ''); + + /** + * Add a file to the current archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + abstract public function addFile($file, $fileinfo = ''); + + /** + * Add a file to the current archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + abstract public function addData($fileinfo, $data); + + /** + * Close the archive, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + */ + abstract public function close(); + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + abstract public function getArchive(); + + /** + * Save the created in-memory archive data + * + * Note: It is more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param string $file + */ + abstract public function save($file); + +} + +class ArchiveIOException extends \Exception +{ +} + +class ArchiveIllegalCompressionException extends \Exception +{ +} + +class ArchiveCorruptedException extends \Exception +{ +} diff --git a/vendor/splitbrain/php-archive/src/FileInfo.php b/vendor/splitbrain/php-archive/src/FileInfo.php new file mode 100644 index 0000000000000000000000000000000000000000..612f924c34668e02c0d0d3aa6bd9c09804a66909 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/FileInfo.php @@ -0,0 +1,343 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class FileInfo + * + * stores meta data about a file in an Archive + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class FileInfo +{ + + protected $isdir = false; + protected $path = ''; + protected $size = 0; + protected $csize = 0; + protected $mtime = 0; + protected $mode = 0664; + protected $owner = ''; + protected $group = ''; + protected $uid = 0; + protected $gid = 0; + protected $comment = ''; + + /** + * initialize dynamic defaults + * + * @param string $path The path of the file, can also be set later through setPath() + */ + public function __construct($path = '') + { + $this->mtime = time(); + $this->setPath($path); + } + + /** + * Factory to build FileInfo from existing file or directory + * + * @param string $path path to a file on the local file system + * @param string $as optional path to use inside the archive + * @throws FileInfoException + * @return FileInfo + */ + public static function fromPath($path, $as = '') + { + clearstatcache(false, $path); + + if (!file_exists($path)) { + throw new FileInfoException("$path does not exist"); + } + + $stat = stat($path); + $file = new FileInfo(); + + $file->setPath($path); + $file->setIsdir(is_dir($path)); + $file->setMode(fileperms($path)); + $file->setOwner(fileowner($path)); + $file->setGroup(filegroup($path)); + $file->setSize(filesize($path)); + $file->setUid($stat['uid']); + $file->setGid($stat['gid']); + $file->setMtime($stat['mtime']); + + if ($as) { + $file->setPath($as); + } + + return $file; + } + + /** + * @return int + */ + public function getSize() + { + return $this->size; + } + + /** + * @param int $size + */ + public function setSize($size) + { + $this->size = $size; + } + + /** + * @return int + */ + public function getCompressedSize() + { + return $this->csize; + } + + /** + * @param int $csize + */ + public function setCompressedSize($csize) + { + $this->csize = $csize; + } + + /** + * @return int + */ + public function getMtime() + { + return $this->mtime; + } + + /** + * @param int $mtime + */ + public function setMtime($mtime) + { + $this->mtime = $mtime; + } + + /** + * @return int + */ + public function getGid() + { + return $this->gid; + } + + /** + * @param int $gid + */ + public function setGid($gid) + { + $this->gid = $gid; + } + + /** + * @return int + */ + public function getUid() + { + return $this->uid; + } + + /** + * @param int $uid + */ + public function setUid($uid) + { + $this->uid = $uid; + } + + /** + * @return string + */ + public function getComment() + { + return $this->comment; + } + + /** + * @param string $comment + */ + public function setComment($comment) + { + $this->comment = $comment; + } + + /** + * @return string + */ + public function getGroup() + { + return $this->group; + } + + /** + * @param string $group + */ + public function setGroup($group) + { + $this->group = $group; + } + + /** + * @return boolean + */ + public function getIsdir() + { + return $this->isdir; + } + + /** + * @param boolean $isdir + */ + public function setIsdir($isdir) + { + // default mode for directories + if ($isdir && $this->mode === 0664) { + $this->mode = 0775; + } + $this->isdir = $isdir; + } + + /** + * @return int + */ + public function getMode() + { + return $this->mode; + } + + /** + * @param int $mode + */ + public function setMode($mode) + { + $this->mode = $mode; + } + + /** + * @return string + */ + public function getOwner() + { + return $this->owner; + } + + /** + * @param string $owner + */ + public function setOwner($owner) + { + $this->owner = $owner; + } + + /** + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * @param string $path + */ + public function setPath($path) + { + $this->path = $this->cleanPath($path); + } + + /** + * Cleans up a path and removes relative parts, also strips leading slashes + * + * @param string $path + * @return string + */ + protected function cleanPath($path) + { + $path = str_replace('\\', '/', $path); + $path = explode('/', $path); + $newpath = array(); + foreach ($path as $p) { + if ($p === '' || $p === '.') { + continue; + } + if ($p === '..') { + array_pop($newpath); + continue; + } + array_push($newpath, $p); + } + return trim(implode('/', $newpath), '/'); + } + + /** + * Strip given prefix or number of path segments from the filename + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * @param int|string $strip + * @return FileInfo + */ + public function strip($strip) + { + $filename = $this->getPath(); + $striplen = strlen($strip); + if (is_int($strip)) { + // if $strip is an integer we strip this many path components + $parts = explode('/', $filename); + if (!$this->getIsdir()) { + $base = array_pop($parts); // keep filename itself + } else { + $base = ''; + } + $filename = join('/', array_slice($parts, $strip)); + if ($base) { + $filename .= "/$base"; + } + } else { + // if strip is a string, we strip a prefix here + if (substr($filename, 0, $striplen) == $strip) { + $filename = substr($filename, $striplen); + } + } + + $this->setPath($filename); + } + + /** + * Does the file match the given include and exclude expressions? + * + * Exclude rules take precedence over include rules + * + * @param string $include Regular expression of files to include + * @param string $exclude Regular expression of files to exclude + * @return bool + */ + public function match($include = '', $exclude = '') + { + $extract = true; + if ($include && !preg_match($include, $this->getPath())) { + $extract = false; + } + if ($exclude && preg_match($exclude, $this->getPath())) { + $extract = false; + } + + return $extract; + } +} + +class FileInfoException extends \Exception +{ +} \ No newline at end of file diff --git a/vendor/splitbrain/php-archive/src/Tar.php b/vendor/splitbrain/php-archive/src/Tar.php new file mode 100644 index 0000000000000000000000000000000000000000..e29c7d5a63ba4ba4f960fc749877a0494bf078bd --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Tar.php @@ -0,0 +1,659 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class Tar + * + * Creates or extracts Tar archives. Supports gz and bzip compression + * + * Long pathnames (>100 chars) are supported in POSIX ustar and GNU longlink formats. + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class Tar extends Archive +{ + + protected $file = ''; + protected $comptype = Archive::COMPRESS_AUTO; + protected $complevel = 9; + protected $fh; + protected $memory = ''; + protected $closed = true; + protected $writeaccess = false; + + /** + * Sets the compression to use + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use (use COMPRESS_* constants) + * @return mixed + */ + public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO) + { + $this->compressioncheck($type); + $this->comptype = $type; + $this->complevel = $level; + if($level == 0) $this->comptype = Archive::COMPRESS_NONE; + if($type == Archive::COMPRESS_NONE) $this->complevel = 0; + } + + /** + * Open an existing TAR file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + public function open($file) + { + $this->file = $file; + + // update compression to mach file + if ($this->comptype == Tar::COMPRESS_AUTO) { + $this->setCompression($this->complevel, $this->filetype($file)); + } + + // open file handles + if ($this->comptype === Archive::COMPRESS_GZIP) { + $this->fh = @gzopen($this->file, 'rb'); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $this->fh = @bzopen($this->file, 'r'); + } else { + $this->fh = @fopen($this->file, 'rb'); + } + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for reading: '.$this->file); + } + $this->closed = false; + } + + /** + * Read the contents of a TAR archive + * + * This function lists the files stored in the archive + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @throws ArchiveIOException + * @returns FileInfo[] + */ + public function contents() + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $result = array(); + while ($read = $this->readbytes(512)) { + $header = $this->parseHeader($read); + if (!is_array($header)) { + continue; + } + + $this->skipbytes(ceil($header['size'] / 512) * 512); + $result[] = $this->header2fileinfo($header); + } + + $this->close(); + return $result; + } + + /** + * Extract an existing TAR archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams. + * Reopen the file with open() again if you want to do additional operations + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return FileInfo[] + */ + public function extract($outdir, $strip = '', $exclude = '', $include = '') + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $outdir = rtrim($outdir, '/'); + @mkdir($outdir, 0777, true); + if (!is_dir($outdir)) { + throw new ArchiveIOException("Could not create directory '$outdir'"); + } + + $extracted = array(); + while ($dat = $this->readbytes(512)) { + // read the file header + $header = $this->parseHeader($dat); + if (!is_array($header)) { + continue; + } + $fileinfo = $this->header2fileinfo($header); + + // apply strip rules + $fileinfo->strip($strip); + + // skip unwanted files + if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) { + $this->skipbytes(ceil($header['size'] / 512) * 512); + continue; + } + + // create output directory + $output = $outdir.'/'.$fileinfo->getPath(); + $directory = ($fileinfo->getIsdir()) ? $output : dirname($output); + @mkdir($directory, 0777, true); + + // extract data + if (!$fileinfo->getIsdir()) { + $fp = fopen($output, "wb"); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$output); + } + + $size = floor($header['size'] / 512); + for ($i = 0; $i < $size; $i++) { + fwrite($fp, $this->readbytes(512), 512); + } + if (($header['size'] % 512) != 0) { + fwrite($fp, $this->readbytes(512), $header['size'] % 512); + } + + fclose($fp); + touch($output, $fileinfo->getMtime()); + chmod($output, $fileinfo->getMode()); + } else { + $this->skipbytes(ceil($header['size'] / 512) * 512); // the size is usually 0 for directories + } + + $extracted[] = $fileinfo; + } + + $this->close(); + return $extracted; + } + + /** + * Create a new TAR file + * + * If $file is empty, the tar file will be created in memory + * + * @param string $file + * @throws ArchiveIOException + */ + public function create($file = '') + { + $this->file = $file; + $this->memory = ''; + $this->fh = 0; + + if ($this->file) { + // determine compression + if ($this->comptype == Archive::COMPRESS_AUTO) { + $this->setCompression($this->complevel, $this->filetype($file)); + } + + if ($this->comptype === Archive::COMPRESS_GZIP) { + $this->fh = @gzopen($this->file, 'wb'.$this->complevel); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $this->fh = @bzopen($this->file, 'w'); + } else { + $this->fh = @fopen($this->file, 'wb'); + } + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for writing: '.$this->file); + } + } + $this->writeaccess = true; + $this->closed = false; + } + + /** + * Add a file to the current TAR archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + public function addFile($file, $fileinfo = '') + { + if (is_string($fileinfo)) { + $fileinfo = FileInfo::fromPath($file, $fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $fp = fopen($file, 'rb'); + if (!$fp) { + throw new ArchiveIOException('Could not open file for reading: '.$file); + } + + // create file header + $this->writeFileHeader($fileinfo); + + // write data + while (!feof($fp)) { + $data = fread($fp, 512); + if ($data === false) { + break; + } + if ($data === '') { + break; + } + $packed = pack("a512", $data); + $this->writebytes($packed); + } + fclose($fp); + } + + /** + * Add a file to the current TAR archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + public function addData($fileinfo, $data) + { + if (is_string($fileinfo)) { + $fileinfo = new FileInfo($fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $len = strlen($data); + $fileinfo->setSize($len); + $this->writeFileHeader($fileinfo); + + for ($s = 0; $s < $len; $s += 512) { + $this->writebytes(pack("a512", substr($data, $s, 512))); + } + } + + /** + * Add the closing footer to the archive if in write mode, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + * + * "Physically, an archive consists of a series of file entries terminated by an end-of-archive entry, which + * consists of two 512 blocks of zero bytes" + * + * @link http://www.gnu.org/software/tar/manual/html_chapter/tar_8.html#SEC134 + */ + public function close() + { + if ($this->closed) { + return; + } // we did this already + + // write footer + if ($this->writeaccess) { + $this->writebytes(pack("a512", "")); + $this->writebytes(pack("a512", "")); + } + + // close file handles + if ($this->file) { + if ($this->comptype === Archive::COMPRESS_GZIP) { + gzclose($this->fh); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + bzclose($this->fh); + } else { + fclose($this->fh); + } + + $this->file = ''; + $this->fh = 0; + } + + $this->writeaccess = false; + $this->closed = true; + } + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + public function getArchive() + { + $this->close(); + + if ($this->comptype === Archive::COMPRESS_AUTO) { + $this->comptype = Archive::COMPRESS_NONE; + } + + if ($this->comptype === Archive::COMPRESS_GZIP) { + return gzcompress($this->memory, $this->complevel); + } + if ($this->comptype === Archive::COMPRESS_BZIP) { + return bzcompress($this->memory); + } + return $this->memory; + } + + /** + * Save the created in-memory archive data + * + * Note: It more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param string $file + * @throws ArchiveIOException + */ + public function save($file) + { + if ($this->comptype === Archive::COMPRESS_AUTO) { + $this->setCompression($this->complevel, $this->filetype($file)); + } + + if (!file_put_contents($file, $this->getArchive())) { + throw new ArchiveIOException('Could not write to file: '.$file); + } + } + + /** + * Read from the open file pointer + * + * @param int $length bytes to read + * @return string + */ + protected function readbytes($length) + { + if ($this->comptype === Archive::COMPRESS_GZIP) { + return @gzread($this->fh, $length); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + return @bzread($this->fh, $length); + } else { + return @fread($this->fh, $length); + } + } + + /** + * Write to the open filepointer or memory + * + * @param string $data + * @throws ArchiveIOException + * @return int number of bytes written + */ + protected function writebytes($data) + { + if (!$this->file) { + $this->memory .= $data; + $written = strlen($data); + } elseif ($this->comptype === Archive::COMPRESS_GZIP) { + $written = @gzwrite($this->fh, $data); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + $written = @bzwrite($this->fh, $data); + } else { + $written = @fwrite($this->fh, $data); + } + if ($written === false) { + throw new ArchiveIOException('Failed to write to archive stream'); + } + return $written; + } + + /** + * Skip forward in the open file pointer + * + * This is basically a wrapper around seek() (and a workaround for bzip2) + * + * @param int $bytes seek to this position + */ + function skipbytes($bytes) + { + if ($this->comptype === Archive::COMPRESS_GZIP) { + @gzseek($this->fh, $bytes, SEEK_CUR); + } elseif ($this->comptype === Archive::COMPRESS_BZIP) { + // there is no seek in bzip2, we simply read on + // bzread allows to read a max of 8kb at once + while($bytes) { + $toread = min(8192, $bytes); + @bzread($this->fh, $toread); + $bytes -= $toread; + } + } else { + @fseek($this->fh, $bytes, SEEK_CUR); + } + } + + /** + * Write the given file metat data as header + * + * @param FileInfo $fileinfo + */ + protected function writeFileHeader(FileInfo $fileinfo) + { + $this->writeRawFileHeader( + $fileinfo->getPath(), + $fileinfo->getUid(), + $fileinfo->getGid(), + $fileinfo->getMode(), + $fileinfo->getSize(), + $fileinfo->getMtime(), + $fileinfo->getIsdir() ? '5' : '0' + ); + } + + /** + * Write a file header to the stream + * + * @param string $name + * @param int $uid + * @param int $gid + * @param int $perm + * @param int $size + * @param int $mtime + * @param string $typeflag Set to '5' for directories + */ + protected function writeRawFileHeader($name, $uid, $gid, $perm, $size, $mtime, $typeflag = '') + { + // handle filename length restrictions + $prefix = ''; + $namelen = strlen($name); + if ($namelen > 100) { + $file = basename($name); + $dir = dirname($name); + if (strlen($file) > 100 || strlen($dir) > 155) { + // we're still too large, let's use GNU longlink + $this->writeRawFileHeader('././@LongLink', 0, 0, 0, $namelen, 0, 'L'); + for ($s = 0; $s < $namelen; $s += 512) { + $this->writebytes(pack("a512", substr($name, $s, 512))); + } + $name = substr($name, 0, 100); // cut off name + } else { + // we're fine when splitting, use POSIX ustar + $prefix = $dir; + $name = $file; + } + } + + // values are needed in octal + $uid = sprintf("%6s ", decoct($uid)); + $gid = sprintf("%6s ", decoct($gid)); + $perm = sprintf("%6s ", decoct($perm)); + $size = sprintf("%11s ", decoct($size)); + $mtime = sprintf("%11s", decoct($mtime)); + + $data_first = pack("a100a8a8a8a12A12", $name, $perm, $uid, $gid, $size, $mtime); + $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $typeflag, '', 'ustar', '', '', '', '', '', $prefix, ""); + + 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->writebytes($data_first); + + $chks = pack("a8", sprintf("%6s ", decoct($chks))); + $this->writebytes($chks.$data_last); + } + + /** + * Decode the given tar file header + * + * @param string $block a 512 byte block containing the header data + * @return array|false returns false when this was a null block + * @throws ArchiveCorruptedException + */ + protected function parseHeader($block) + { + if (!$block || strlen($block) != 512) { + throw new ArchiveCorruptedException('Unexpected length of header'); + } + + // null byte blocks are ignored + if(trim($block) === '') return false; + + for ($i = 0, $chks = 0; $i < 148; $i++) { + $chks += ord($block[$i]); + } + + for ($i = 156, $chks += 256; $i < 512; $i++) { + $chks += ord($block[$i]); + } + + $header = @unpack( + "a100filename/a8perm/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix", + $block + ); + if (!$header) { + throw new ArchiveCorruptedException('Failed to parse header'); + } + + $return['checksum'] = OctDec(trim($header['checksum'])); + if ($return['checksum'] != $chks) { + throw new ArchiveCorruptedException('Header does not match it\'s checksum'); + } + + $return['filename'] = trim($header['filename']); + $return['perm'] = OctDec(trim($header['perm'])); + $return['uid'] = OctDec(trim($header['uid'])); + $return['gid'] = OctDec(trim($header['gid'])); + $return['size'] = OctDec(trim($header['size'])); + $return['mtime'] = OctDec(trim($header['mtime'])); + $return['typeflag'] = $header['typeflag']; + $return['link'] = trim($header['link']); + $return['uname'] = trim($header['uname']); + $return['gname'] = trim($header['gname']); + + // Handle ustar Posix compliant path prefixes + if (trim($header['prefix'])) { + $return['filename'] = trim($header['prefix']).'/'.$return['filename']; + } + + // Handle Long-Link entries from GNU Tar + if ($return['typeflag'] == 'L') { + // following data block(s) is the filename + $filename = trim($this->readbytes(ceil($header['size'] / 512) * 512)); + // next block is the real header + $block = $this->readbytes(512); + $return = $this->parseHeader($block); + // overwrite the filename + $return['filename'] = $filename; + } + + return $return; + } + + /** + * Creates a FileInfo object from the given parsed header + * + * @param $header + * @return FileInfo + */ + protected function header2fileinfo($header) + { + $fileinfo = new FileInfo(); + $fileinfo->setPath($header['filename']); + $fileinfo->setMode($header['perm']); + $fileinfo->setUid($header['uid']); + $fileinfo->setGid($header['gid']); + $fileinfo->setSize($header['size']); + $fileinfo->setMtime($header['mtime']); + $fileinfo->setOwner($header['uname']); + $fileinfo->setGroup($header['gname']); + $fileinfo->setIsdir((bool) $header['typeflag']); + + return $fileinfo; + } + + /** + * Checks if the given compression type is available and throws an exception if not + * + * @param $comptype + * @throws ArchiveIllegalCompressionException + */ + protected function compressioncheck($comptype) + { + if ($comptype === Archive::COMPRESS_GZIP && !function_exists('gzopen')) { + throw new ArchiveIllegalCompressionException('No gzip support available'); + } + + if ($comptype === Archive::COMPRESS_BZIP && !function_exists('bzopen')) { + throw new ArchiveIllegalCompressionException('No bzip2 support available'); + } + } + + /** + * Guesses the wanted compression from the given file + * + * Uses magic bytes for existing files, the file extension otherwise + * + * You don't need to call this yourself. It's used when you pass Archive::COMPRESS_AUTO somewhere + * + * @param string $file + * @return int + */ + public function filetype($file) + { + // for existing files, try to read the magic bytes + if(file_exists($file) && is_readable($file) && filesize($file) > 5) { + $fh = fopen($file, 'rb'); + if(!$fh) return false; + $magic = fread($fh, 5); + fclose($fh); + + if(strpos($magic, "\x42\x5a") === 0) return Archive::COMPRESS_BZIP; + if(strpos($magic, "\x1f\x8b") === 0) return Archive::COMPRESS_GZIP; + } + + // otherwise rely on file name + $file = strtolower($file); + if (substr($file, -3) == '.gz' || substr($file, -4) == '.tgz') { + return Archive::COMPRESS_GZIP; + } elseif (substr($file, -4) == '.bz2' || substr($file, -4) == '.tbz') { + return Archive::COMPRESS_BZIP; + } + + return Archive::COMPRESS_NONE; + } +} diff --git a/vendor/splitbrain/php-archive/src/Zip.php b/vendor/splitbrain/php-archive/src/Zip.php new file mode 100644 index 0000000000000000000000000000000000000000..1bc1ac1b7b24415b879608e70e4d6a03a17b4f72 --- /dev/null +++ b/vendor/splitbrain/php-archive/src/Zip.php @@ -0,0 +1,750 @@ +<?php + +namespace splitbrain\PHPArchive; + +/** + * Class Zip + * + * Creates or extracts Zip archives + * + * for specs see http://www.pkware.com/appnote + * + * @author Andreas Gohr <andi@splitbrain.org> + * @package splitbrain\PHPArchive + * @license MIT + */ +class Zip extends Archive +{ + + protected $file = ''; + protected $fh; + protected $memory = ''; + protected $closed = true; + protected $writeaccess = false; + protected $ctrl_dir; + protected $complevel = 9; + + /** + * Set the compression level. + * + * Compression Type is ignored for ZIP + * + * You can call this function before adding each file to set differen compression levels + * for each file. + * + * @param int $level Compression level (0 to 9) + * @param int $type Type of compression to use ignored for ZIP + * @return mixed + */ + public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO) + { + $this->complevel = $level; + } + + /** + * Open an existing ZIP file for reading + * + * @param string $file + * @throws ArchiveIOException + */ + public function open($file) + { + $this->file = $file; + $this->fh = @fopen($this->file, 'rb'); + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for reading: '.$this->file); + } + $this->closed = false; + } + + /** + * Read the contents of a ZIP archive + * + * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects + * + * The archive is closed afer reading the contents, for API compatibility with TAR files + * Reopen the file with open() again if you want to do additional operations + * + * @throws ArchiveIOException + * @return FileInfo[] + */ + public function contents() + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $result = array(); + + $centd = $this->readCentralDir(); + + @rewind($this->fh); + @fseek($this->fh, $centd['offset']); + + for ($i = 0; $i < $centd['entries']; $i++) { + $result[] = $this->header2fileinfo($this->readCentralFileHeader()); + } + + $this->close(); + return $result; + } + + /** + * Extract an existing ZIP archive + * + * The $strip parameter allows you to strip a certain number of path components from the filenames + * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when + * an integer is passed as $strip. + * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix, + * the prefix will be stripped. It is recommended to give prefixes with a trailing slash. + * + * By default this will extract all files found in the archive. You can restrict the output using the $include + * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If + * $include is set only files that match this expression will be extracted. Files that match the $exclude + * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against + * stripped filenames as described above. + * + * @param string $outdir the target directory for extracting + * @param int|string $strip either the number of path components or a fixed prefix to strip + * @param string $exclude a regular expression of files to exclude + * @param string $include a regular expression of files to include + * @throws ArchiveIOException + * @return FileInfo[] + */ + function extract($outdir, $strip = '', $exclude = '', $include = '') + { + if ($this->closed || !$this->file) { + throw new ArchiveIOException('Can not read from a closed archive'); + } + + $outdir = rtrim($outdir, '/'); + @mkdir($outdir, 0777, true); + + $extracted = array(); + + $cdir = $this->readCentralDir(); + $pos_entry = $cdir['offset']; // begin of the central file directory + + for ($i = 0; $i < $cdir['entries']; $i++) { + // read file header + @fseek($this->fh, $pos_entry); + $header = $this->readCentralFileHeader(); + $header['index'] = $i; + $pos_entry = ftell($this->fh); // position of the next file in central file directory + fseek($this->fh, $header['offset']); // seek to beginning of file header + $header = $this->readFileHeader($header); + $fileinfo = $this->header2fileinfo($header); + + // apply strip rules + $fileinfo->strip($strip); + + // skip unwanted files + if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) { + continue; + } + + $extracted[] = $fileinfo; + + // create output directory + $output = $outdir.'/'.$fileinfo->getPath(); + $directory = ($header['folder']) ? $output : dirname($output); + @mkdir($directory, 0777, true); + + // nothing more to do for directories + if ($fileinfo->getIsdir()) { + continue; + } + + // compressed files are written to temporary .gz file first + if ($header['compression'] == 0) { + $extractto = $output; + } else { + $extractto = $output.'.gz'; + } + + // open file for writing + $fp = fopen($extractto, "wb"); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$extractto); + } + + // prepend compression header + if ($header['compression'] != 0) { + $binary_data = pack( + 'va1a1Va1a1', + 0x8b1f, + chr($header['compression']), + chr(0x00), + time(), + chr(0x00), + chr(3) + ); + fwrite($fp, $binary_data, 10); + } + + // read the file and store it on disk + $size = $header['compressed_size']; + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($this->fh, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + + // finalize compressed file + if ($header['compression'] != 0) { + $binary_data = pack('VV', $header['crc'], $header['size']); + fwrite($fp, $binary_data, 8); + } + + // close file + fclose($fp); + + // unpack compressed file + if ($header['compression'] != 0) { + $gzp = @gzopen($extractto, 'rb'); + if (!$gzp) { + @unlink($extractto); + throw new ArchiveIOException('Failed file extracting. gzip support missing?'); + } + $fp = @fopen($output, 'wb'); + if (!$fp) { + throw new ArchiveIOException('Could not open file for writing: '.$extractto); + } + + $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); + unlink($extractto); // remove temporary gz file + } + + touch($output, $fileinfo->getMtime()); + //FIXME what about permissions? + } + + $this->close(); + return $extracted; + } + + /** + * Create a new ZIP file + * + * If $file is empty, the zip file will be created in memory + * + * @param string $file + * @throws ArchiveIOException + */ + public function create($file = '') + { + $this->file = $file; + $this->memory = ''; + $this->fh = 0; + + if ($this->file) { + $this->fh = @fopen($this->file, 'wb'); + + if (!$this->fh) { + throw new ArchiveIOException('Could not open file for writing: '.$this->file); + } + } + $this->writeaccess = true; + $this->closed = false; + $this->ctrl_dir = array(); + } + + /** + * Add a file to the current ZIP archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + + /** + * Add a file to the current archive using an existing file in the filesystem + * + * @param string $file path to the original file + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original + * @throws ArchiveIOException + */ + public function addFile($file, $fileinfo = '') + { + if (is_string($fileinfo)) { + $fileinfo = FileInfo::fromPath($file, $fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + $data = @file_get_contents($file); + if ($data === false) { + throw new ArchiveIOException('Could not open file for reading: '.$file); + } + + // FIXME could we stream writing compressed data? gzwrite on a fopen handle? + $this->addData($fileinfo, $data); + } + + /** + * Add a file to the current TAR archive using the given $data as content + * + * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data + * @param string $data binary content of the file to add + * @throws ArchiveIOException + */ + public function addData($fileinfo, $data) + { + if (is_string($fileinfo)) { + $fileinfo = new FileInfo($fileinfo); + } + + if ($this->closed) { + throw new ArchiveIOException('Archive has been closed, files can no longer be added'); + } + + // prepare info and compress data + $size = strlen($data); + $crc = crc32($data); + if ($this->complevel) { + $data = gzcompress($data, $this->complevel); + $data = substr($data, 2, -4); // strip compression headers + } + $csize = strlen($data); + $offset = $this->dataOffset(); + $name = $fileinfo->getPath(); + $time = $fileinfo->getMtime(); + + // write local file header + $this->writebytes($this->makeLocalFileHeader( + $time, + $crc, + $size, + $csize, + $name, + (bool) $this->complevel + )); + + // we store no encryption header + + // write data + $this->writebytes($data); + + // we store no data descriptor + + // add info to central file directory + $this->ctrl_dir[] = $this->makeCentralFileRecord( + $offset, + $time, + $crc, + $size, + $csize, + $name, + (bool) $this->complevel + ); + } + + /** + * Add the closing footer to the archive if in write mode, close all file handles + * + * After a call to this function no more data can be added to the archive, for + * read access no reading is allowed anymore + */ + public function close() + { + if ($this->closed) { + return; + } // we did this already + + if ($this->writeaccess) { + // write central directory + $offset = $this->dataOffset(); + $ctrldir = join('', $this->ctrl_dir); + $this->writebytes($ctrldir); + + // write end of central directory record + $this->writebytes("\x50\x4b\x05\x06"); // end of central dir signature + $this->writebytes(pack('v', 0)); // number of this disk + $this->writebytes(pack('v', 0)); // number of the disk with the start of the central directory + $this->writebytes(pack('v', + count($this->ctrl_dir))); // total number of entries in the central directory on this disk + $this->writebytes(pack('v', count($this->ctrl_dir))); // total number of entries in the central directory + $this->writebytes(pack('V', strlen($ctrldir))); // size of the central directory + $this->writebytes(pack('V', + $offset)); // offset of start of central directory with respect to the starting disk number + $this->writebytes(pack('v', 0)); // .ZIP file comment length + + $this->ctrl_dir = array(); + } + + // close file handles + if ($this->file) { + fclose($this->fh); + $this->file = ''; + $this->fh = 0; + } + + $this->writeaccess = false; + $this->closed = true; + } + + /** + * Returns the created in-memory archive data + * + * This implicitly calls close() on the Archive + */ + public function getArchive() + { + $this->close(); + + return $this->memory; + } + + /** + * Save the created in-memory archive data + * + * Note: It's more memory effective to specify the filename in the create() function and + * let the library work on the new file directly. + * + * @param $file + * @throws ArchiveIOException + */ + public function save($file) + { + if (!file_put_contents($file, $this->getArchive())) { + throw new ArchiveIOException('Could not write to file: '.$file); + } + } + + /** + * Read the central directory + * + * This key-value list contains general information about the ZIP file + * + * @return array + */ + protected function readCentralDir() + { + $size = filesize($this->file); + if ($size < 277) { + $maximum_size = $size; + } else { + $maximum_size = 277; + } + + @fseek($this->fh, $size - $maximum_size); + $pos = ftell($this->fh); + $bytes = 0x00000000; + + while ($pos < $size) { + $byte = @fread($this->fh, 1); + $bytes = (($bytes << 8) & 0xFFFFFFFF) | ord($byte); + if ($bytes == 0x504b0506) { + break; + } + $pos++; + } + + $data = unpack( + 'vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', + fread($this->fh, 18) + ); + + if ($data['comment_size'] != 0) { + $centd['comment'] = fread($this->fh, $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; + } + + /** + * Read the next central file header + * + * Assumes the current file pointer is pointing at the right position + * + * @return array + */ + protected function readCentralFileHeader() + { + $binary_data = fread($this->fh, 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($this->fh, $header['filename_len']); + } else { + $header['filename'] = ''; + } + + if ($header['extra_len'] != 0) { + $header['extra'] = fread($this->fh, $header['extra_len']); + } else { + $header['extra'] = ''; + } + + if ($header['comment_len'] != 0) { + $header['comment'] = fread($this->fh, $header['comment_len']); + } else { + $header['comment'] = ''; + } + + $header['mtime'] = $this->makeUnixTime($header['mdate'], $header['mtime']); + $header['stored_filename'] = $header['filename']; + $header['status'] = 'ok'; + if (substr($header['filename'], -1) == '/') { + $header['external'] = 0x41FF0010; + } + $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0; + + return $header; + } + + /** + * Reads the local file header + * + * This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at + * the right position already. Enhances the given central header with the data found at the local header. + * + * @param array $header the central file header read previously (see above) + * @return array + */ + protected function readFileHeader($header) + { + $binary_data = fread($this->fh, 30); + $data = unpack( + 'vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', + $binary_data + ); + + $header['filename'] = fread($this->fh, $data['filename_len']); + if ($data['extra_len'] != 0) { + $header['extra'] = fread($this->fh, $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['mtime'] = $this->makeUnixTime($data['mdate'], $data['mtime']); + + $header['stored_filename'] = $header['filename']; + $header['status'] = "ok"; + $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0; + return $header; + } + + /** + * Create fileinfo object from header data + * + * @param $header + * @return FileInfo + */ + protected function header2fileinfo($header) + { + $fileinfo = new FileInfo(); + $fileinfo->setPath($header['filename']); + $fileinfo->setSize($header['size']); + $fileinfo->setCompressedSize($header['compressed_size']); + $fileinfo->setMtime($header['mtime']); + $fileinfo->setComment($header['comment']); + $fileinfo->setIsdir($header['external'] == 0x41FF0010 || $header['external'] == 16); + return $fileinfo; + } + + /** + * Write to the open filepointer or memory + * + * @param string $data + * @throws ArchiveIOException + * @return int number of bytes written + */ + protected function writebytes($data) + { + if (!$this->file) { + $this->memory .= $data; + $written = strlen($data); + } else { + $written = @fwrite($this->fh, $data); + } + if ($written === false) { + throw new ArchiveIOException('Failed to write to archive stream'); + } + return $written; + } + + /** + * Current data pointer position + * + * @fixme might need a -1 + * @return int + */ + protected function dataOffset() + { + if ($this->file) { + return ftell($this->fh); + } else { + return strlen($this->memory); + } + } + + /** + * Create a DOS timestamp from a UNIX timestamp + * + * DOS timestamps start at 1980-01-01, earlier UNIX stamps will be set to this date + * + * @param $time + * @return int + */ + protected function makeDosTime($time) + { + $timearray = getdate($time); + 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); + } + + /** + * Create a UNIX timestamp from a DOS timestamp + * + * @param $mdate + * @param $mtime + * @return int + */ + protected function makeUnixTime($mdate = null, $mtime = null) + { + if ($mdate && $mtime) { + $year = (($mdate & 0xFE00) >> 9) + 1980; + $month = ($mdate & 0x01E0) >> 5; + $day = $mdate & 0x001F; + + $hour = ($mtime & 0xF800) >> 11; + $minute = ($mtime & 0x07E0) >> 5; + $seconde = ($mtime & 0x001F) << 1; + + $mtime = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $mtime = time(); + } + + return $mtime; + } + + /** + * Returns a local file header for the given data + * + * @param int $offset location of the local header + * @param int $ts unix timestamp + * @param int $crc CRC32 checksum of the uncompressed data + * @param int $len length of the uncompressed data + * @param int $clen length of the compressed data + * @param string $name file name + * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen + * @return string + */ + protected function makeCentralFileRecord($offset, $ts, $crc, $len, $clen, $name, $comp = null) + { + if(is_null($comp)) $comp = $len != $clen; + $comp = $comp ? 8 : 0; + $dtime = dechex($this->makeDosTime($ts)); + + $header = "\x50\x4b\x01\x02"; // central file header signature + $header .= pack('v', 14); // version made by - VFAT + $header .= pack('v', 20); // version needed to extract - 2.0 + $header .= pack('v', 0); // general purpose flag - no flags set + $header .= pack('v', $comp); // compression method - deflate|none + $header .= pack( + 'H*', + $dtime[6] . $dtime[7] . + $dtime[4] . $dtime[5] . + $dtime[2] . $dtime[3] . + $dtime[0] . $dtime[1] + ); // last mod file time and date + $header .= pack('V', $crc); // crc-32 + $header .= pack('V', $clen); // compressed size + $header .= pack('V', $len); // uncompressed size + $header .= pack('v', strlen($name)); // file name length + $header .= pack('v', 0); // extra field length + $header .= pack('v', 0); // file comment length + $header .= pack('v', 0); // disk number start + $header .= pack('v', 0); // internal file attributes + $header .= pack('V', 0); // external file attributes @todo was 0x32!? + $header .= pack('V', $offset); // relative offset of local header + $header .= $name; // file name + + return $header; + } + + /** + * Returns a local file header for the given data + * + * @param int $ts unix timestamp + * @param int $crc CRC32 checksum of the uncompressed data + * @param int $len length of the uncompressed data + * @param int $clen length of the compressed data + * @param string $name file name + * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen + * @return string + */ + protected function makeLocalFileHeader($ts, $crc, $len, $clen, $name, $comp = null) + { + if(is_null($comp)) $comp = $len != $clen; + $comp = $comp ? 8 : 0; + $dtime = dechex($this->makeDosTime($ts)); + + $header = "\x50\x4b\x03\x04"; // local file header signature + $header .= pack('v', 20); // version needed to extract - 2.0 + $header .= pack('v', 0); // general purpose flag - no flags set + $header .= pack('v', $comp); // compression method - deflate|none + $header .= pack( + 'H*', + $dtime[6] . $dtime[7] . + $dtime[4] . $dtime[5] . + $dtime[2] . $dtime[3] . + $dtime[0] . $dtime[1] + ); // last mod file time and date + $header .= pack('V', $crc); // crc-32 + $header .= pack('V', $clen); // compressed size + $header .= pack('V', $len); // uncompressed size + $header .= pack('v', strlen($name)); // file name length + $header .= pack('v', 0); // extra field length + $header .= $name; + return $header; + } +}